angular-three-tweakpane 4.0.0-next.115 → 4.0.0-next.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +143 -0
- package/fesm2022/angular-three-tweakpane.mjs +1168 -62
- package/fesm2022/angular-three-tweakpane.mjs.map +1 -1
- package/package.json +3 -3
- package/types/angular-three-tweakpane.d.ts +975 -0
- package/index.d.ts +0 -189
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-tweakpane.mjs","sources":["../tmp-esm2022/lib/blade.js","../tmp-esm2022/lib/debounce.js","../tmp-esm2022/lib/title.js","../tmp-esm2022/lib/folder.js","../tmp-esm2022/lib/label.js","../tmp-esm2022/lib/binding.js","../tmp-esm2022/lib/button.js","../tmp-esm2022/lib/checkbox.js","../tmp-esm2022/lib/color.js","../tmp-esm2022/lib/list.js","../tmp-esm2022/lib/number.js","../tmp-esm2022/lib/pane.js","../tmp-esm2022/lib/point.js","../tmp-esm2022/lib/text.js","../tmp-esm2022/angular-three-tweakpane.js"],"sourcesContent":["import { booleanAttribute, Directive, effect, inject, Injector, input, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TweakpaneBlade {\n constructor() {\n this.hidden = input(false, ...(ngDevMode ? [{ debugName: \"hidden\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n this.disabled = input(false, ...(ngDevMode ? [{ debugName: \"disabled\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n this.injector = inject(Injector);\n }\n get snapshot() {\n return {\n hidden: untracked(this.hidden),\n disabled: untracked(this.disabled),\n };\n }\n sync(api) {\n return effect(() => {\n const _api = api();\n if (!_api)\n return;\n _api.hidden = this.hidden();\n _api.disabled = this.disabled();\n }, { injector: this.injector });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneBlade, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneBlade, isStandalone: true, selector: \"tweakpane-blade\", inputs: { hidden: { classPropertyName: \"hidden\", publicName: \"hidden\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneBlade, decorators: [{\n type: Directive,\n args: [{ selector: 'tweakpane-blade' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL2JsYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJeEcsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFQyxXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssMENBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLDRDQUFJLFNBQVMsRUFBRSxnQkFBZ0IsT0FBN0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO1FBRWpELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FxQnBDO0lBbkJBLElBQUksUUFBUTtRQUNYLE9BQU87WUFDTixNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQTBCO1FBQzlCLE9BQU8sTUFBTSxDQUNaLEdBQUcsRUFBRTtZQUNKLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU87WUFFbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsQ0FBQyxFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDM0IsQ0FBQztJQUNILENBQUM7OEdBeEJXLGNBQWM7a0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIEluamVjdG9yLCBpbnB1dCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbGFkZUFwaSB9IGZyb20gJ3R3ZWFrcGFuZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ3R3ZWFrcGFuZS1ibGFkZScgfSlcbmV4cG9ydCBjbGFzcyBUd2Vha3BhbmVCbGFkZSB7XG5cdGhpZGRlbiA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0ZGlzYWJsZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0Z2V0IHNuYXBzaG90KCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRoaWRkZW46IHVudHJhY2tlZCh0aGlzLmhpZGRlbiksXG5cdFx0XHRkaXNhYmxlZDogdW50cmFja2VkKHRoaXMuZGlzYWJsZWQpLFxuXHRcdH07XG5cdH1cblxuXHRzeW5jKGFwaTogKCkgPT4gQmxhZGVBcGkgfCBudWxsKSB7XG5cdFx0cmV0dXJuIGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgX2FwaSA9IGFwaSgpO1xuXHRcdFx0XHRpZiAoIV9hcGkpIHJldHVybjtcblxuXHRcdFx0XHRfYXBpLmhpZGRlbiA9IHRoaXMuaGlkZGVuKCk7XG5cdFx0XHRcdF9hcGkuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKCk7XG5cdFx0XHR9LFxuXHRcdFx0eyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==","import { Directive, effect, inject, Injector, input, numberAttribute } from '@angular/core';\nimport { debounceTime, fromEventPattern } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class TweakpaneDebounce {\n constructor() {\n this.debounce = input(150, ...(ngDevMode ? [{ debugName: \"debounce\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n this.injector = inject(Injector);\n }\n sync(api, cb) {\n return effect((onCleanup) => {\n const _api = api();\n if (!_api)\n return;\n const sub = fromEventPattern((handler) => _api.on('change', handler), (handler) => _api.off('change', handler))\n .pipe(debounceTime(this.debounce()))\n .subscribe((ev) => {\n cb(ev);\n });\n onCleanup(() => {\n sub.unsubscribe();\n });\n }, { injector: this.injector });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneDebounce, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneDebounce, isStandalone: true, inputs: { debounce: { classPropertyName: \"debounce\", publicName: \"debounce\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneDebounce, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL2RlYm91bmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl0RCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRUMsYUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLDRDQUFJLFNBQVMsRUFBRSxlQUFlLE9BQTVCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxHQUFDLENBQUM7UUFFOUMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQThCcEM7SUE1QkEsSUFBSSxDQUNILEdBR1EsRUFDUixFQUFrQztRQUVsQyxPQUFPLE1BQU0sQ0FDWixDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTztZQUVsQixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FDM0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUN2QyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ3hDO2lCQUNDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQ25DLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNqQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDUixDQUFDLENBQUMsQ0FBQztZQUVKLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDM0IsQ0FBQztJQUNILENBQUM7OEdBaENXLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgSW5qZWN0b3IsIGlucHV0LCBudW1iZXJBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50UGF0dGVybiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHBDaGFuZ2VFdmVudCB9IGZyb20gJ3R3ZWFrcGFuZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFR3ZWFrcGFuZURlYm91bmNlIHtcblx0ZGVib3VuY2UgPSBpbnB1dCgxNTAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0c3luYzxUPihcblx0XHRhcGk6ICgpID0+IHtcblx0XHRcdG9uOiAoZXZOYW1lOiAnY2hhbmdlJywgY2I6IChldjogVHBDaGFuZ2VFdmVudDxUPikgPT4gdm9pZCkgPT4gdm9pZDtcblx0XHRcdG9mZjogKGV2TmFtZTogJ2NoYW5nZScsIGNiOiAoZXY6IFRwQ2hhbmdlRXZlbnQ8VD4pID0+IHZvaWQpID0+IHZvaWQ7XG5cdFx0fSB8IG51bGwsXG5cdFx0Y2I6IChldjogVHBDaGFuZ2VFdmVudDxUPikgPT4gdm9pZCxcblx0KSB7XG5cdFx0cmV0dXJuIGVmZmVjdChcblx0XHRcdChvbkNsZWFudXApID0+IHtcblx0XHRcdFx0Y29uc3QgX2FwaSA9IGFwaSgpO1xuXHRcdFx0XHRpZiAoIV9hcGkpIHJldHVybjtcblxuXHRcdFx0XHRjb25zdCBzdWIgPSBmcm9tRXZlbnRQYXR0ZXJuPFRwQ2hhbmdlRXZlbnQ8VD4+KFxuXHRcdFx0XHRcdChoYW5kbGVyKSA9PiBfYXBpLm9uKCdjaGFuZ2UnLCBoYW5kbGVyKSxcblx0XHRcdFx0XHQoaGFuZGxlcikgPT4gX2FwaS5vZmYoJ2NoYW5nZScsIGhhbmRsZXIpLFxuXHRcdFx0XHQpXG5cdFx0XHRcdFx0LnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UoKSkpXG5cdFx0XHRcdFx0LnN1YnNjcmliZSgoZXYpID0+IHtcblx0XHRcdFx0XHRcdGNiKGV2KTtcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHR7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG5cdFx0KTtcblx0fVxufVxuIl19","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TweakpaneTitle {\n constructor() {\n this.title = input('TweakPane Title', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.injector = inject(Injector);\n }\n get snapshot() {\n return untracked(this.title);\n }\n sync(api) {\n return effect(() => {\n const _api = api();\n if (!_api)\n return;\n _api.title = this.title();\n }, { injector: this.injector });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneTitle, isStandalone: true, inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneTitle, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL3RpdGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHdEYsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFQyxVQUFLLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixpREFBQyxDQUFDO1FBRXpCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FpQnBDO0lBZkEsSUFBSSxRQUFRO1FBQ1gsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBK0M7UUFDbkQsT0FBTyxNQUFNLENBQ1osR0FBRyxFQUFFO1lBQ0osTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTztZQUVsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUMzQixDQUFDO0lBQ0gsQ0FBQzs4R0FuQlcsY0FBYztrR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgSW5qZWN0b3IsIGlucHV0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVHdlYWtwYW5lVGl0bGUge1xuXHR0aXRsZSA9IGlucHV0KCdUd2Vha1BhbmUgVGl0bGUnKTtcblxuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRnZXQgc25hcHNob3QoKSB7XG5cdFx0cmV0dXJuIHVudHJhY2tlZCh0aGlzLnRpdGxlKTtcblx0fVxuXG5cdHN5bmMoYXBpOiAoKSA9PiB7IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgfSB8IG51bGwpIHtcblx0XHRyZXR1cm4gZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBfYXBpID0gYXBpKCk7XG5cdFx0XHRcdGlmICghX2FwaSkgcmV0dXJuO1xuXG5cdFx0XHRcdF9hcGkudGl0bGUgPSB0aGlzLnRpdGxlKCk7XG5cdFx0XHR9LFxuXHRcdFx0eyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==","import { computed, DestroyRef, Directive, effect, inject, linkedSignal, model, untracked } from '@angular/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneTitle } from './title';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./title\";\nimport * as i2 from \"./blade\";\nexport class TweakpaneFolder {\n constructor() {\n this.expanded = model(false, ...(ngDevMode ? [{ debugName: \"expanded\" }] : []));\n this.title = inject(TweakpaneTitle);\n this.blade = inject(TweakpaneBlade);\n this.parent = inject(TweakpaneFolder, { skipSelf: true, optional: true });\n this.parentFolder = linkedSignal(() => this.parent?.folder());\n this.folder = computed(() => {\n const parent = this.parentFolder();\n if (!parent)\n return null;\n if (!this.isSelf)\n return parent;\n return parent.addFolder({\n title: this.title.snapshot,\n expanded: untracked(this.expanded),\n disabled: this.blade.snapshot.disabled,\n hidden: this.blade.snapshot.hidden,\n });\n }, ...(ngDevMode ? [{ debugName: \"folder\" }] : []));\n this.isSelf = true;\n this.title.sync(this.folder);\n this.blade.sync(this.folder);\n effect((onCleanup) => {\n const folder = this.folder();\n if (!folder)\n return;\n const cb = (ev) => {\n this.expanded.set(ev.expanded);\n };\n folder.on('fold', cb);\n onCleanup(() => {\n folder.off('fold', cb);\n });\n });\n inject(DestroyRef).onDestroy(() => {\n this.folder()?.dispose();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneFolder, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneFolder, isStandalone: true, selector: \"tweakpane-folder\", inputs: { expanded: { classPropertyName: \"expanded\", publicName: \"expanded\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: \"expandedChange\" }, hostDirectives: [{ directive: i1.TweakpaneTitle, inputs: [\"title\", \"title\"] }, { directive: i2.TweakpaneBlade, inputs: [\"hidden\", \"hidden\", \"disabled\", \"disabled\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneFolder, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-folder',\n hostDirectives: [\n { directive: TweakpaneTitle, inputs: ['title'] },\n { directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy90d2Vha3BhbmUvc3JjL2xpYi9mb2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7O0FBU3pDLE1BQU0sT0FBTyxlQUFlO0lBdUIzQjtRQXRCQSxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztRQUVoQixVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6RCxXQUFNLEdBQTZCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUVoQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQzFCLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVE7Z0JBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNO2FBQ2xDLENBQUMsQ0FBQztRQUNKLENBQUMsa0RBQUMsQ0FBQztRQUVILFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBMEIsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDO1lBRUYsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0E1Q1csZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLGNBQWMsRUFBRTt3QkFDZixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ2hELEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUU7cUJBQzdEO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIGxpbmtlZFNpZ25hbCwgbW9kZWwsIFNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcEZvbGRFdmVudCB9IGZyb20gJ0B0d2Vha3BhbmUvY29yZSc7XG5pbXBvcnQgeyBGb2xkZXJBcGkgfSBmcm9tICd0d2Vha3BhbmUnO1xuaW1wb3J0IHsgVHdlYWtwYW5lQmxhZGUgfSBmcm9tICcuL2JsYWRlJztcbmltcG9ydCB7IFR3ZWFrcGFuZVRpdGxlIH0gZnJvbSAnLi90aXRsZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3R3ZWFrcGFuZS1mb2xkZXInLFxuXHRob3N0RGlyZWN0aXZlczogW1xuXHRcdHsgZGlyZWN0aXZlOiBUd2Vha3BhbmVUaXRsZSwgaW5wdXRzOiBbJ3RpdGxlJ10gfSxcblx0XHR7IGRpcmVjdGl2ZTogVHdlYWtwYW5lQmxhZGUsIGlucHV0czogWydoaWRkZW4nLCAnZGlzYWJsZWQnXSB9LFxuXHRdLFxufSlcbmV4cG9ydCBjbGFzcyBUd2Vha3BhbmVGb2xkZXIge1xuXHRleHBhbmRlZCA9IG1vZGVsKGZhbHNlKTtcblxuXHRwcml2YXRlIHRpdGxlID0gaW5qZWN0KFR3ZWFrcGFuZVRpdGxlKTtcblx0cHJpdmF0ZSBibGFkZSA9IGluamVjdChUd2Vha3BhbmVCbGFkZSk7XG5cdHByaXZhdGUgcGFyZW50ID0gaW5qZWN0KFR3ZWFrcGFuZUZvbGRlciwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG5cdHBhcmVudEZvbGRlciA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnBhcmVudD8uZm9sZGVyKCkpO1xuXHRmb2xkZXI6IFNpZ25hbDxGb2xkZXJBcGkgfCBudWxsPiA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudEZvbGRlcigpO1xuXHRcdGlmICghcGFyZW50KSByZXR1cm4gbnVsbDtcblxuXHRcdGlmICghdGhpcy5pc1NlbGYpIHJldHVybiBwYXJlbnQ7XG5cblx0XHRyZXR1cm4gcGFyZW50LmFkZEZvbGRlcih7XG5cdFx0XHR0aXRsZTogdGhpcy50aXRsZS5zbmFwc2hvdCxcblx0XHRcdGV4cGFuZGVkOiB1bnRyYWNrZWQodGhpcy5leHBhbmRlZCksXG5cdFx0XHRkaXNhYmxlZDogdGhpcy5ibGFkZS5zbmFwc2hvdC5kaXNhYmxlZCxcblx0XHRcdGhpZGRlbjogdGhpcy5ibGFkZS5zbmFwc2hvdC5oaWRkZW4sXG5cdFx0fSk7XG5cdH0pO1xuXG5cdGlzU2VsZiA9IHRydWU7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy50aXRsZS5zeW5jKHRoaXMuZm9sZGVyKTtcblx0XHR0aGlzLmJsYWRlLnN5bmModGhpcy5mb2xkZXIpO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGZvbGRlciA9IHRoaXMuZm9sZGVyKCk7XG5cdFx0XHRpZiAoIWZvbGRlcikgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBjYiA9IChldjogVHBGb2xkRXZlbnQ8Rm9sZGVyQXBpPikgPT4ge1xuXHRcdFx0XHR0aGlzLmV4cGFuZGVkLnNldChldi5leHBhbmRlZCk7XG5cdFx0XHR9O1xuXG5cdFx0XHRmb2xkZXIub24oJ2ZvbGQnLCBjYik7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRmb2xkZXIub2ZmKCdmb2xkJywgY2IpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMuZm9sZGVyKCk/LmRpc3Bvc2UoKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TweakpaneLabel {\n constructor() {\n this.label = input('', ...(ngDevMode ? [{ debugName: \"label\" }] : []));\n this.tag = input('', ...(ngDevMode ? [{ debugName: \"tag\" }] : []));\n this.injector = inject(Injector);\n }\n get snapshot() {\n return { label: untracked(this.label), tag: untracked(this.tag) };\n }\n sync(api) {\n return effect(() => {\n const _api = api();\n if (!_api)\n return;\n _api.label = this.label();\n if ('tag' in _api) {\n _api.tag = this.tag();\n }\n }, { injector: this.injector });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneLabel, isStandalone: true, inputs: { label: { classPropertyName: \"label\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, tag: { classPropertyName: \"tag\", publicName: \"tag\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneLabel, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL2xhYmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHdEYsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFQyxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsaURBQUMsQ0FBQztRQUNsQixRQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsK0NBQUMsQ0FBQztRQUVSLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FvQnBDO0lBbEJBLElBQUksUUFBUTtRQUNYLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBZ0U7UUFDcEUsT0FBTyxNQUFNLENBQ1osR0FBRyxFQUFFO1lBQ0osTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTztZQUVsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQzNCLENBQUM7SUFDSCxDQUFDOzhHQXZCVyxjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RvciwgaW5wdXQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBUd2Vha3BhbmVMYWJlbCB7XG5cdGxhYmVsID0gaW5wdXQoJycpO1xuXHR0YWcgPSBpbnB1dCgnJyk7XG5cblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0Z2V0IHNuYXBzaG90KCkge1xuXHRcdHJldHVybiB7IGxhYmVsOiB1bnRyYWNrZWQodGhpcy5sYWJlbCksIHRhZzogdW50cmFja2VkKHRoaXMudGFnKSB9O1xuXHR9XG5cblx0c3luYyhhcGk6ICgpID0+IHsgbGFiZWw/OiBzdHJpbmcgfCBudWxsOyB0YWc/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsKSB7XG5cdFx0cmV0dXJuIGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgX2FwaSA9IGFwaSgpO1xuXHRcdFx0XHRpZiAoIV9hcGkpIHJldHVybjtcblxuXHRcdFx0XHRfYXBpLmxhYmVsID0gdGhpcy5sYWJlbCgpO1xuXHRcdFx0XHRpZiAoJ3RhZycgaW4gX2FwaSkge1xuXHRcdFx0XHRcdF9hcGkudGFnID0gdGhpcy50YWcoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcblx0XHQpO1xuXHR9XG59XG4iXX0=","import { computed, DestroyRef, Directive, effect, inject, InjectionToken, Injector, model, signal, untracked, } from '@angular/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./blade\";\nimport * as i2 from \"./debounce\";\nimport * as i3 from \"./label\";\nexport const NGT_TWEAK_BINDING_AS_HOST = new InjectionToken('hostDirective NgtTweakBinding', { factory: () => null });\nexport function provideTweakBindingAsHost(inOut) {\n return { provide: NGT_TWEAK_BINDING_AS_HOST, useValue: inOut ?? true };\n}\nexport class TweakpaneBinding {\n get bindableObject() {\n let value = untracked(this.value);\n if (this.asHostDirective && typeof this.asHostDirective === 'object') {\n value = this.asHostDirective.in(value);\n }\n return { value };\n }\n constructor() {\n this.value = model.required(...(ngDevMode ? [{ debugName: \"value\" }] : []));\n this.debounce = inject(TweakpaneDebounce);\n this.label = inject(TweakpaneLabel);\n this.blade = inject(TweakpaneBlade);\n this.parent = inject(TweakpaneFolder);\n this.injector = inject(Injector);\n this.asHostDirective = inject(NGT_TWEAK_BINDING_AS_HOST);\n this.bindingBaseParams = computed(() => ({\n label: this.label.snapshot.label,\n tag: this.label.snapshot.tag,\n disabled: this.blade.disabled(),\n hidden: this.blade.hidden(),\n }), ...(ngDevMode ? [{ debugName: \"bindingBaseParams\" }] : []));\n this.bindingParams = signal({}, ...(ngDevMode ? [{ debugName: \"bindingParams\" }] : []));\n this.bindingApi = computed(() => {\n const parent = this.parent.folder();\n if (!parent)\n return null;\n const bindingParams = { ...this.bindingBaseParams(), ...this.bindingParams() };\n return parent.addBinding(this.bindableObject, 'value', bindingParams);\n }, ...(ngDevMode ? [{ debugName: \"bindingApi\" }] : []));\n this.blade.sync(this.bindingApi);\n this.label.sync(this.bindingApi);\n this.debounce.sync(this.bindingApi, (ev) => {\n if (this.asHostDirective && typeof this.asHostDirective === 'object') {\n this.value.set(this.asHostDirective.out(ev.value));\n }\n else {\n this.value.set(ev.value);\n }\n });\n effect((onCleanup) => {\n const bindingApi = this.bindingApi();\n if (!bindingApi)\n return;\n onCleanup(() => {\n bindingApi.dispose();\n });\n });\n inject(DestroyRef).onDestroy(() => {\n this.bindingApi()?.dispose();\n });\n }\n syncBindingParams(params) {\n return effect(() => {\n this.bindingParams.set(params());\n }, { injector: this.injector });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneBinding, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneBinding, isStandalone: true, selector: \"tweakpane-binding\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { value: \"valueChange\" }, hostDirectives: [{ directive: i1.TweakpaneBlade, inputs: [\"disabled\", \"disabled\", \"hidden\", \"hidden\"] }, { directive: i2.TweakpaneDebounce, inputs: [\"debounce\", \"debounce\"] }, { directive: i3.TweakpaneLabel, inputs: [\"label\", \"label\", \"tag\", \"tag\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneBinding, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-binding',\n hostDirectives: [\n { directive: TweakpaneBlade, inputs: ['disabled', 'hidden'] },\n { directive: TweakpaneDebounce, inputs: ['debounce'] },\n { directive: TweakpaneLabel, inputs: ['label', 'tag'] },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHdlYWtwYW5lL3NyYy9saWIvYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixjQUFjLEVBQ2QsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFFekMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBRXpELCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFFNUQsTUFBTSxVQUFVLHlCQUF5QixDQUFZLEtBQStEO0lBQ25ILE9BQU8sRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUN4RSxDQUFDO0FBVUQsTUFBTSxPQUFPLGdCQUFnQjtJQWtCNUIsSUFBWSxjQUFjO1FBQ3pCLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0RSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFXLENBQUM7UUFDbEQsQ0FB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aUIsQ0FBQyxNQUEyQjtRQUM1QyxPQUFPLE1BQU0sQ0FDWixHQUFHLEVBQUU7WUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQzNCLENBQUM7SUFDSCxDQUFDOzhHQW5FVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFSNUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixjQUFjLEVBQUU7d0JBQ2YsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTt3QkFDN0QsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ3RELEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7cUJBQ3ZEO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Y29tcHV0ZWQsXG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbmplY3Rvcixcblx0bW9kZWwsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJpbmRpbmdBcGksIEJpbmRpbmdQYXJhbXMgfSBmcm9tICdAdHdlYWtwYW5lL2NvcmUnO1xuaW1wb3J0IHsgVHdlYWtwYW5lQmxhZGUgfSBmcm9tICcuL2JsYWRlJztcbmltcG9ydCB7IFR3ZWFrcGFuZURlYm91bmNlIH0gZnJvbSAnLi9kZWJvdW5jZSc7XG5pbXBvcnQgeyBUd2Vha3BhbmVGb2xkZXIgfSBmcm9tICcuL2ZvbGRlcic7XG5pbXBvcnQgeyBUd2Vha3BhbmVMYWJlbCB9IGZyb20gJy4vbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgTkdUX1RXRUFLX0JJTkRJTkdfQVNfSE9TVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcblx0dHJ1ZSB8IHsgaW46ICh2YWx1ZTogdW5rbm93bikgPT4gdW5rbm93bjsgb3V0OiAodmFsdWU6IHVua25vd24pID0+IHVua25vd24gfSB8IG51bGxcbj4oJ2hvc3REaXJlY3RpdmUgTmd0VHdlYWtCaW5kaW5nJywgeyBmYWN0b3J5OiAoKSA9PiBudWxsIH0pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVR3ZWFrQmluZGluZ0FzSG9zdDxUSW4sIFRPdXQ+KGluT3V0PzogeyBpbjogKHZhbHVlOiBUSW4pID0+IFRPdXQ7IG91dDogKHZhbHVlOiBUT3V0KSA9PiBUSW4gfSkge1xuXHRyZXR1cm4geyBwcm92aWRlOiBOR1RfVFdFQUtfQklORElOR19BU19IT1NULCB1c2VWYWx1ZTogaW5PdXQgPz8gdHJ1ZSB9O1xufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICd0d2Vha3BhbmUtYmluZGluZycsXG5cdGhvc3REaXJlY3RpdmVzOiBbXG5cdFx0eyBkaXJlY3RpdmU6IFR3ZWFrcGFuZUJsYWRlLCBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGlkZGVuJ10gfSxcblx0XHR7IGRpcmVjdGl2ZTogVHdlYWtwYW5lRGVib3VuY2UsIGlucHV0czogWydkZWJvdW5jZSddIH0sXG5cdFx0eyBkaXJlY3RpdmU6IFR3ZWFrcGFuZUxhYmVsLCBpbnB1dHM6IFsnbGFiZWwnLCAndGFnJ10gfSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgVHdlYWtwYW5lQmluZGluZzxUVmFsdWU+IHtcblx0dmFsdWUgPSBtb2RlbC5yZXF1aXJlZDxhbnk+KCk7XG5cblx0cHJpdmF0ZSBkZWJvdW5jZSA9IGluamVjdChUd2Vha3BhbmVEZWJvdW5jZSk7XG5cdHByaXZhdGUgbGFiZWwgPSBpbmplY3QoVHdlYWtwYW5lTGFiZWwpO1xuXHRwcml2YXRlIGJsYWRlID0gaW5qZWN0KFR3ZWFrcGFuZUJsYWRlKTtcblx0cHJpdmF0ZSBwYXJlbnQgPSBpbmplY3QoVHdlYWtwYW5lRm9sZGVyKTtcblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdHByaXZhdGUgYXNIb3N0RGlyZWN0aXZlID0gaW5qZWN0KE5HVF9UV0VBS19CSU5ESU5HX0FTX0hPU1QpO1xuXG5cdHByaXZhdGUgYmluZGluZ0Jhc2VQYXJhbXMgPSBjb21wdXRlZCgoKSA9PiAoe1xuXHRcdGxhYmVsOiB0aGlzLmxhYmVsLnNuYXBzaG90LmxhYmVsLFxuXHRcdHRhZzogdGhpcy5sYWJlbC5zbmFwc2hvdC50YWcsXG5cdFx0ZGlzYWJsZWQ6IHRoaXMuYmxhZGUuZGlzYWJsZWQoKSxcblx0XHRoaWRkZW46IHRoaXMuYmxhZGUuaGlkZGVuKCksXG5cdH0pKTtcblx0cHJpdmF0ZSBiaW5kaW5nUGFyYW1zID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7fSk7XG5cblx0cHJpdmF0ZSBnZXQgYmluZGFibGVPYmplY3QoKSB7XG5cdFx0bGV0IHZhbHVlID0gdW50cmFja2VkKHRoaXMudmFsdWUpO1xuXG5cdFx0aWYgKHRoaXMuYXNIb3N0RGlyZWN0aXZlICYmIHR5cGVvZiB0aGlzLmFzSG9zdERpcmVjdGl2ZSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdHZhbHVlID0gdGhpcy5hc0hvc3REaXJlY3RpdmUuaW4odmFsdWUpIGFzIFRWYWx1ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4geyB2YWx1ZSB9O1xuXHR9XG5cblx0cHJpdmF0ZSBiaW5kaW5nQXBpID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50LmZvbGRlcigpO1xuXHRcdGlmICghcGFyZW50KSByZXR1cm4gbnVsbDtcblxuXHRcdGNvbnN0IGJpbmRpbmdQYXJhbXMgPSB7IC4uLnRoaXMuYmluZGluZ0Jhc2VQYXJhbXMoKSwgLi4udGhpcy5iaW5kaW5nUGFyYW1zKCkgfTtcblx0XHRyZXR1cm4gcGFyZW50LmFkZEJpbmRpbmcodGhpcy5iaW5kYWJsZU9iamVjdCwgJ3ZhbHVlJywgYmluZGluZ1BhcmFtcykgYXMgQmluZGluZ0FwaTx1bmtub3duLCBUVmFsdWU+O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmJsYWRlLnN5bmModGhpcy5iaW5kaW5nQXBpKTtcblx0XHR0aGlzLmxhYmVsLnN5bmModGhpcy5iaW5kaW5nQXBpKTtcblx0XHR0aGlzLmRlYm91bmNlLnN5bmModGhpcy5iaW5kaW5nQXBpLCAoZXYpID0+IHtcblx0XHRcdGlmICh0aGlzLmFzSG9zdERpcmVjdGl2ZSAmJiB0eXBlb2YgdGhpcy5hc0hvc3REaXJlY3RpdmUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdHRoaXMudmFsdWUuc2V0KHRoaXMuYXNIb3N0RGlyZWN0aXZlLm91dChldi52YWx1ZSkgYXMgVFZhbHVlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMudmFsdWUuc2V0KGV2LnZhbHVlKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBiaW5kaW5nQXBpID0gdGhpcy5iaW5kaW5nQXBpKCk7XG5cdFx0XHRpZiAoIWJpbmRpbmdBcGkpIHJldHVybjtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGJpbmRpbmdBcGkuZGlzcG9zZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMuYmluZGluZ0FwaSgpPy5kaXNwb3NlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRzeW5jQmluZGluZ1BhcmFtcyhwYXJhbXM6ICgpID0+IEJpbmRpbmdQYXJhbXMpIHtcblx0XHRyZXR1cm4gZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHR0aGlzLmJpbmRpbmdQYXJhbXMuc2V0KHBhcmFtcygpKTtcblx0XHRcdH0sXG5cdFx0XHR7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG5cdFx0KTtcblx0fVxuXG5cdC8vIGNyZWF0ZUJpbmRpbmdFZmZlY3QocGFyYW1zOiAoKSA9PiBCaW5kaW5nUGFyYW1zKSB7XG5cdC8vIFx0cmV0dXJuIGVmZmVjdChcblx0Ly8gXHRcdChvbkNsZWFudXApID0+IHtcblx0Ly8gXHRcdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQuZm9sZGVyKCk7XG5cdC8vIFx0XHRcdGlmICghcGFyZW50KSByZXR1cm47XG5cdC8vXG5cdC8vIFx0XHRcdGNvbnN0IGJpbmRpbmdQYXJhbXMgPSB7IC4uLnRoaXMuYmluZGluZ0Jhc2VQYXJhbXMoKSwgLi4ucGFyYW1zKCkgfTtcblx0Ly8gXHRcdFx0Y29uc3QgYmluZGluZyA9IHBhcmVudC5hZGRCaW5kaW5nKHRoaXMuYmluZGFibGVPYmplY3QsICd2YWx1ZScsIGJpbmRpbmdQYXJhbXMpO1xuXHQvL1xuXHQvLyBcdFx0XHR0aGlzLmJpbmRpbmdBcGkuc2V0KGJpbmRpbmcpO1xuXHQvL1xuXHQvLyBcdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHQvLyBcdFx0XHRcdGJpbmRpbmcuZGlzcG9zZSgpO1xuXHQvLyBcdFx0XHRcdHRoaXMuYmluZGluZ0FwaS5zZXQobnVsbCk7XG5cdC8vIFx0XHRcdH0pO1xuXHQvLyBcdFx0fSxcblx0Ly8gXHRcdHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcblx0Ly8gXHQpO1xuXHQvLyB9XG59XG4iXX0=","import { computed, DestroyRef, Directive, effect, inject, output } from '@angular/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\nimport { TweakpaneTitle } from './title';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./title\";\nimport * as i2 from \"./label\";\nimport * as i3 from \"./blade\";\nexport class TweakpaneButton {\n constructor() {\n this.click = output();\n this.title = inject(TweakpaneTitle);\n this.label = inject(TweakpaneLabel);\n this.blade = inject(TweakpaneBlade);\n this.parent = inject(TweakpaneFolder);\n this.buttonApi = computed(() => {\n const parent = this.parent.folder();\n if (!parent)\n return null;\n return parent.addButton({\n title: this.title.snapshot,\n hidden: this.blade.snapshot.hidden,\n disabled: this.blade.snapshot.disabled,\n label: this.label.snapshot.label,\n });\n }, ...(ngDevMode ? [{ debugName: \"buttonApi\" }] : []));\n effect((onCleanup) => {\n const buttonApi = this.buttonApi();\n if (!buttonApi)\n return;\n const boundEmit = this.click.emit.bind(this.click);\n buttonApi.on('click', boundEmit);\n onCleanup(() => {\n buttonApi.off('click', boundEmit);\n });\n });\n this.label.sync(this.buttonApi);\n this.title.sync(this.buttonApi);\n this.blade.sync(this.buttonApi);\n inject(DestroyRef).onDestroy(() => {\n this.buttonApi()?.dispose();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.7\", type: TweakpaneButton, isStandalone: true, selector: \"tweakpane-button\", outputs: { click: \"click\" }, hostDirectives: [{ directive: i1.TweakpaneTitle, inputs: [\"title\", \"title\"] }, { directive: i2.TweakpaneLabel, inputs: [\"label\", \"label\"] }, { directive: i3.TweakpaneBlade, inputs: [\"hidden\", \"hidden\", \"disabled\", \"disabled\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneButton, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-button',\n hostDirectives: [\n { directive: TweakpaneTitle, inputs: ['title'] },\n { directive: TweakpaneLabel, inputs: ['label'] },\n { directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy90d2Vha3BhbmUvc3JjL2xpYi9idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7O0FBVXpDLE1BQU0sT0FBTyxlQUFlO0lBb0IzQjtRQW5CQSxVQUFLLEdBQUcsTUFBTSxFQUEyQixDQUFDO1FBRWxDLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFakMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV6QixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUTtnQkFDdEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUs7YUFDaEMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxxREFBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFFdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUVqQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXhDVyxlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBUjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsY0FBYyxFQUFFO3dCQUNmLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDaEQsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNoRCxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFO3FCQUM3RDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRwTW91c2VFdmVudCB9IGZyb20gJ0B0d2Vha3BhbmUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25BcGkgfSBmcm9tICd0d2Vha3BhbmUnO1xuaW1wb3J0IHsgVHdlYWtwYW5lQmxhZGUgfSBmcm9tICcuL2JsYWRlJztcbmltcG9ydCB7IFR3ZWFrcGFuZUZvbGRlciB9IGZyb20gJy4vZm9sZGVyJztcbmltcG9ydCB7IFR3ZWFrcGFuZUxhYmVsIH0gZnJvbSAnLi9sYWJlbCc7XG5pbXBvcnQgeyBUd2Vha3BhbmVUaXRsZSB9IGZyb20gJy4vdGl0bGUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICd0d2Vha3BhbmUtYnV0dG9uJyxcblx0aG9zdERpcmVjdGl2ZXM6IFtcblx0XHR7IGRpcmVjdGl2ZTogVHdlYWtwYW5lVGl0bGUsIGlucHV0czogWyd0aXRsZSddIH0sXG5cdFx0eyBkaXJlY3RpdmU6IFR3ZWFrcGFuZUxhYmVsLCBpbnB1dHM6IFsnbGFiZWwnXSB9LFxuXHRcdHsgZGlyZWN0aXZlOiBUd2Vha3BhbmVCbGFkZSwgaW5wdXRzOiBbJ2hpZGRlbicsICdkaXNhYmxlZCddIH0sXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIFR3ZWFrcGFuZUJ1dHRvbiB7XG5cdGNsaWNrID0gb3V0cHV0PFRwTW91c2VFdmVudDxCdXR0b25BcGk+PigpO1xuXG5cdHByaXZhdGUgdGl0bGUgPSBpbmplY3QoVHdlYWtwYW5lVGl0bGUpO1xuXHRwcml2YXRlIGxhYmVsID0gaW5qZWN0KFR3ZWFrcGFuZUxhYmVsKTtcblx0cHJpdmF0ZSBibGFkZSA9IGluamVjdChUd2Vha3BhbmVCbGFkZSk7XG5cdHByaXZhdGUgcGFyZW50ID0gaW5qZWN0KFR3ZWFrcGFuZUZvbGRlcik7XG5cblx0cHJpdmF0ZSBidXR0b25BcGkgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQuZm9sZGVyKCk7XG5cdFx0aWYgKCFwYXJlbnQpIHJldHVybiBudWxsO1xuXG5cdFx0cmV0dXJuIHBhcmVudC5hZGRCdXR0b24oe1xuXHRcdFx0dGl0bGU6IHRoaXMudGl0bGUuc25hcHNob3QsXG5cdFx0XHRoaWRkZW46IHRoaXMuYmxhZGUuc25hcHNob3QuaGlkZGVuLFxuXHRcdFx0ZGlzYWJsZWQ6IHRoaXMuYmxhZGUuc25hcHNob3QuZGlzYWJsZWQsXG5cdFx0XHRsYWJlbDogdGhpcy5sYWJlbC5zbmFwc2hvdC5sYWJlbCxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGJ1dHRvbkFwaSA9IHRoaXMuYnV0dG9uQXBpKCk7XG5cdFx0XHRpZiAoIWJ1dHRvbkFwaSkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBib3VuZEVtaXQgPSB0aGlzLmNsaWNrLmVtaXQuYmluZCh0aGlzLmNsaWNrKTtcblx0XHRcdGJ1dHRvbkFwaS5vbignY2xpY2snLCBib3VuZEVtaXQpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRidXR0b25BcGkub2ZmKCdjbGljaycsIGJvdW5kRW1pdCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMubGFiZWwuc3luYyh0aGlzLmJ1dHRvbkFwaSk7XG5cdFx0dGhpcy50aXRsZS5zeW5jKHRoaXMuYnV0dG9uQXBpKTtcblx0XHR0aGlzLmJsYWRlLnN5bmModGhpcy5idXR0b25BcGkpO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLmJ1dHRvbkFwaSgpPy5kaXNwb3NlKCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { Directive, inject, input } from '@angular/core';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./binding\";\nexport class TweakpaneCheckbox {\n constructor() {\n this.params = input({}, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.binding = inject(TweakpaneBinding);\n this.binding.syncBindingParams(this.params);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneCheckbox, isStandalone: true, selector: \"tweakpane-checkbox\", inputs: { params: { classPropertyName: \"params\", publicName: \"params\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTweakBindingAsHost()], hostDirectives: [{ directive: i1.TweakpaneBinding, inputs: [\"value\", \"value\"], outputs: [\"valueChange\", \"valueChange\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneCheckbox, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-checkbox',\n hostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n providers: [provideTweakBindingAsHost()],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL2NoZWNrYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQU94RSxNQUFNLE9BQU8saUJBQWlCO0lBSzdCO1FBSkEsV0FBTSxHQUFHLEtBQUssQ0FBcUIsRUFBRSxrREFBQyxDQUFDO1FBRS9CLFlBQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUcxQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQVBXLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdNQUZsQixDQUFDLHlCQUF5QixFQUFFLENBQUM7OzJGQUU1QixpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDOUYsU0FBUyxFQUFFLENBQUMseUJBQXlCLEVBQUUsQ0FBQztpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dFBhcmFtcyB9IGZyb20gJ3R3ZWFrcGFuZSc7XG5pbXBvcnQgeyBUd2Vha3BhbmVCaW5kaW5nLCBwcm92aWRlVHdlYWtCaW5kaW5nQXNIb3N0IH0gZnJvbSAnLi9iaW5kaW5nJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAndHdlYWtwYW5lLWNoZWNrYm94Jyxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogVHdlYWtwYW5lQmluZGluZywgaW5wdXRzOiBbJ3ZhbHVlJ10sIG91dHB1dHM6IFsndmFsdWVDaGFuZ2UnXSB9XSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZVR3ZWFrQmluZGluZ0FzSG9zdCgpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHdlYWtwYW5lQ2hlY2tib3gge1xuXHRwYXJhbXMgPSBpbnB1dDxCb29sZWFuSW5wdXRQYXJhbXM+KHt9KTtcblxuXHRwcml2YXRlIGJpbmRpbmcgPSBpbmplY3QoVHdlYWtwYW5lQmluZGluZyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5iaW5kaW5nLnN5bmNCaW5kaW5nUGFyYW1zKHRoaXMucGFyYW1zKTtcblx0fVxufVxuIl19","import { Directive, inject, input } from '@angular/core';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./binding\";\nexport class TweakpaneColor {\n constructor() {\n this.params = input({}, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.binding = inject(TweakpaneBinding);\n this.binding.syncBindingParams(this.params);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneColor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneColor, isStandalone: true, selector: \"tweakpane-color\", inputs: { params: { classPropertyName: \"params\", publicName: \"params\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTweakBindingAsHost()], hostDirectives: [{ directive: i1.TweakpaneBinding, inputs: [\"value\", \"value\"], outputs: [\"valueChange\", \"valueChange\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneColor, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-color',\n hostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n providers: [provideTweakBindingAsHost()],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL2NvbG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQU94RSxNQUFNLE9BQU8sY0FBYztJQUsxQjtRQUpBLFdBQU0sR0FBRyxLQUFLLENBQW1CLEVBQUUsa0RBQUMsQ0FBQztRQUU3QixZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFHMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs4R0FQVyxjQUFjO2tHQUFkLGNBQWMscU1BRmYsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDOzsyRkFFNUIsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUM5RixTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3JJbnB1dFBhcmFtcyB9IGZyb20gJ3R3ZWFrcGFuZSc7XG5pbXBvcnQgeyBUd2Vha3BhbmVCaW5kaW5nLCBwcm92aWRlVHdlYWtCaW5kaW5nQXNIb3N0IH0gZnJvbSAnLi9iaW5kaW5nJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAndHdlYWtwYW5lLWNvbG9yJyxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogVHdlYWtwYW5lQmluZGluZywgaW5wdXRzOiBbJ3ZhbHVlJ10sIG91dHB1dHM6IFsndmFsdWVDaGFuZ2UnXSB9XSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZVR3ZWFrQmluZGluZ0FzSG9zdCgpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHdlYWtwYW5lQ29sb3Ige1xuXHRwYXJhbXMgPSBpbnB1dDxDb2xvcklucHV0UGFyYW1zPih7fSk7XG5cblx0cHJpdmF0ZSBiaW5kaW5nID0gaW5qZWN0KFR3ZWFrcGFuZUJpbmRpbmcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuYmluZGluZy5zeW5jQmluZGluZ1BhcmFtcyh0aGlzLnBhcmFtcyk7XG5cdH1cbn1cbiJdfQ==","import { computed, DestroyRef, Directive, effect, inject, input, model, untracked } from '@angular/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./blade\";\nimport * as i2 from \"./debounce\";\nimport * as i3 from \"./label\";\nexport class TweakpaneList {\n constructor() {\n this.value = model.required(...(ngDevMode ? [{ debugName: \"value\" }] : []));\n this.options = input.required(...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.blade = inject(TweakpaneBlade);\n this.debounce = inject(TweakpaneDebounce);\n this.label = inject(TweakpaneLabel);\n this.parent = inject(TweakpaneFolder);\n this.listOptions = computed(() => {\n const options = this.options();\n if (Array.isArray(options)) {\n return options.map((option) => ({ value: option, text: `${option}` }));\n }\n return Object.keys(options).map((key) => {\n const value = options[key];\n return { text: key, value };\n });\n }, ...(ngDevMode ? [{ debugName: \"listOptions\" }] : []));\n this.listApi = computed(() => {\n const parent = this.parent.folder();\n if (!parent)\n return null;\n return parent.addBlade({\n view: 'list',\n options: this.listOptions(),\n value: untracked(this.value),\n label: this.label.snapshot.label,\n });\n }, ...(ngDevMode ? [{ debugName: \"listApi\" }] : []));\n this.label.sync(this.listApi);\n this.blade.sync(this.listApi);\n this.debounce.sync(this.listApi, (ev) => {\n this.value.set(ev.value);\n });\n effect((onCleanup) => {\n const listApi = this.listApi();\n onCleanup(() => {\n listApi?.dispose();\n });\n });\n inject(DestroyRef).onDestroy(() => {\n this.listApi()?.dispose();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneList, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneList, isStandalone: true, selector: \"tweakpane-list\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { value: \"valueChange\" }, hostDirectives: [{ directive: i1.TweakpaneBlade, inputs: [\"hidden\", \"hidden\", \"disabled\", \"disabled\"] }, { directive: i2.TweakpaneDebounce, inputs: [\"debounce\", \"debounce\"] }, { directive: i3.TweakpaneLabel, inputs: [\"label\", \"label\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneList, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-list',\n hostDirectives: [\n { directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n { directive: TweakpaneDebounce, inputs: ['debounce'] },\n { directive: TweakpaneLabel, inputs: ['label'] },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHdlYWtwYW5lL3NyYy9saWIvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7O0FBVXpDLE1BQU0sT0FBTyxhQUFhO0lBZ0N6QjtRQS9CQSxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsZ0RBQWdCLENBQUM7UUFDdkMsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUFpRCxDQUFDO1FBRWxFLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVqQyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUM1QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQTJCLENBQUMsQ0FBQztZQUNsRyxDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN2QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBNEIsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsdURBQUMsQ0FBQztRQUNLLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFekIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSzthQUNoQyxDQUErQixDQUFDO1FBQ2xDLENBQUMsbURBQUMsQ0FBQztRQUdGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqRFcsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQVJ6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGNBQWMsRUFBRTt3QkFDZixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFO3dCQUM3RCxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDdEQsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3FCQUNoRDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICdAdHdlYWtwYW5lL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEJsYWRlQXBpIH0gZnJvbSAndHdlYWtwYW5lJztcbmltcG9ydCB7IFR3ZWFrcGFuZUJsYWRlIH0gZnJvbSAnLi9ibGFkZSc7XG5pbXBvcnQgeyBUd2Vha3BhbmVEZWJvdW5jZSB9IGZyb20gJy4vZGVib3VuY2UnO1xuaW1wb3J0IHsgVHdlYWtwYW5lRm9sZGVyIH0gZnJvbSAnLi9mb2xkZXInO1xuaW1wb3J0IHsgVHdlYWtwYW5lTGFiZWwgfSBmcm9tICcuL2xhYmVsJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAndHdlYWtwYW5lLWxpc3QnLFxuXHRob3N0RGlyZWN0aXZlczogW1xuXHRcdHsgZGlyZWN0aXZlOiBUd2Vha3BhbmVCbGFkZSwgaW5wdXRzOiBbJ2hpZGRlbicsICdkaXNhYmxlZCddIH0sXG5cdFx0eyBkaXJlY3RpdmU6IFR3ZWFrcGFuZURlYm91bmNlLCBpbnB1dHM6IFsnZGVib3VuY2UnXSB9LFxuXHRcdHsgZGlyZWN0aXZlOiBUd2Vha3BhbmVMYWJlbCwgaW5wdXRzOiBbJ2xhYmVsJ10gfSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgVHdlYWtwYW5lTGlzdDxUT3B0aW9uVmFsdWU+IHtcblx0dmFsdWUgPSBtb2RlbC5yZXF1aXJlZDxUT3B0aW9uVmFsdWU+KCk7XG5cdG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxSZWNvcmQ8c3RyaW5nLCBUT3B0aW9uVmFsdWU+IHwgVE9wdGlvblZhbHVlW10+KCk7XG5cblx0cHJpdmF0ZSBibGFkZSA9IGluamVjdChUd2Vha3BhbmVCbGFkZSk7XG5cdHByaXZhdGUgZGVib3VuY2UgPSBpbmplY3QoVHdlYWtwYW5lRGVib3VuY2UpO1xuXHRwcml2YXRlIGxhYmVsID0gaW5qZWN0KFR3ZWFrcGFuZUxhYmVsKTtcblx0cHJpdmF0ZSBwYXJlbnQgPSBpbmplY3QoVHdlYWtwYW5lRm9sZGVyKTtcblxuXHRwcml2YXRlIGxpc3RPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuXHRcdFx0cmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7IHZhbHVlOiBvcHRpb24sIHRleHQ6IGAke29wdGlvbn1gIH0pIGFzIExpc3RJdGVtPFRPcHRpb25WYWx1ZT4pO1xuXHRcdH1cblxuXHRcdHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoKGtleSkgPT4ge1xuXHRcdFx0Y29uc3QgdmFsdWUgPSBvcHRpb25zW2tleV07XG5cdFx0XHRyZXR1cm4geyB0ZXh0OiBrZXksIHZhbHVlIH0gYXMgTGlzdEl0ZW08VE9wdGlvblZhbHVlPjtcblx0XHR9KTtcblx0fSk7XG5cdHByaXZhdGUgbGlzdEFwaSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudC5mb2xkZXIoKTtcblx0XHRpZiAoIXBhcmVudCkgcmV0dXJuIG51bGw7XG5cblx0XHRyZXR1cm4gcGFyZW50LmFkZEJsYWRlKHtcblx0XHRcdHZpZXc6ICdsaXN0Jyxcblx0XHRcdG9wdGlvbnM6IHRoaXMubGlzdE9wdGlvbnMoKSxcblx0XHRcdHZhbHVlOiB1bnRyYWNrZWQodGhpcy52YWx1ZSksXG5cdFx0XHRsYWJlbDogdGhpcy5sYWJlbC5zbmFwc2hvdC5sYWJlbCxcblx0XHR9KSBhcyBMaXN0QmxhZGVBcGk8VE9wdGlvblZhbHVlPjtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5sYWJlbC5zeW5jKHRoaXMubGlzdEFwaSk7XG5cdFx0dGhpcy5ibGFkZS5zeW5jKHRoaXMubGlzdEFwaSk7XG5cdFx0dGhpcy5kZWJvdW5jZS5zeW5jKHRoaXMubGlzdEFwaSwgKGV2KSA9PiB7XG5cdFx0XHR0aGlzLnZhbHVlLnNldChldi52YWx1ZSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgbGlzdEFwaSA9IHRoaXMubGlzdEFwaSgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0bGlzdEFwaT8uZGlzcG9zZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMubGlzdEFwaSgpPy5kaXNwb3NlKCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { Directive, inject, input } from '@angular/core';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./binding\";\nexport class TweakpaneNumber {\n constructor() {\n this.params = input({}, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.binding = inject(TweakpaneBinding);\n this.binding.syncBindingParams(this.params);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneNumber, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneNumber, isStandalone: true, selector: \"tweakpane-number\", inputs: { params: { classPropertyName: \"params\", publicName: \"params\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTweakBindingAsHost()], hostDirectives: [{ directive: i1.TweakpaneBinding, inputs: [\"value\", \"value\"], outputs: [\"valueChange\", \"valueChange\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneNumber, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-number',\n hostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n providers: [provideTweakBindingAsHost()],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy90d2Vha3BhbmUvc3JjL2xpYi9udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBT3hFLE1BQU0sT0FBTyxlQUFlO0lBSzNCO1FBSkEsV0FBTSxHQUFHLEtBQUssQ0FBb0IsRUFBRSxrREFBQyxDQUFDO1FBRTlCLFlBQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUcxQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQVBXLGVBQWU7a0dBQWYsZUFBZSxzTUFGaEIsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDOzsyRkFFNUIsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUM5RixTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVtYmVySW5wdXRQYXJhbXMgfSBmcm9tICd0d2Vha3BhbmUnO1xuaW1wb3J0IHsgVHdlYWtwYW5lQmluZGluZywgcHJvdmlkZVR3ZWFrQmluZGluZ0FzSG9zdCB9IGZyb20gJy4vYmluZGluZyc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3R3ZWFrcGFuZS1udW1iZXInLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBUd2Vha3BhbmVCaW5kaW5nLCBpbnB1dHM6IFsndmFsdWUnXSwgb3V0cHV0czogWyd2YWx1ZUNoYW5nZSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlVHdlYWtCaW5kaW5nQXNIb3N0KCldLFxufSlcbmV4cG9ydCBjbGFzcyBUd2Vha3BhbmVOdW1iZXIge1xuXHRwYXJhbXMgPSBpbnB1dDxOdW1iZXJJbnB1dFBhcmFtcz4oe30pO1xuXG5cdHByaXZhdGUgYmluZGluZyA9IGluamVjdChUd2Vha3BhbmVCaW5kaW5nKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmJpbmRpbmcuc3luY0JpbmRpbmdQYXJhbXModGhpcy5wYXJhbXMpO1xuXHR9XG59XG4iXX0=","import { afterNextRender, DestroyRef, Directive, DOCUMENT, effect, inject, input, isSignal, signal, } from '@angular/core';\nimport { ClassName } from '@tweakpane/core';\nimport { Pane } from 'tweakpane';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneTitle } from './title';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./folder\";\nexport class TweakpanePane {\n constructor() {\n this.top = input('8px', ...(ngDevMode ? [{ debugName: \"top\" }] : []));\n this.right = input('8px', ...(ngDevMode ? [{ debugName: \"right\" }] : []));\n this.left = input(...(ngDevMode ? [undefined, { debugName: \"left\" }] : []));\n this.bottom = input(...(ngDevMode ? [undefined, { debugName: \"bottom\" }] : []));\n this.width = input('256px', ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n this.container = input(...(ngDevMode ? [undefined, { debugName: \"container\" }] : []));\n this.document = inject(DOCUMENT);\n this.title = inject(TweakpaneTitle, { host: true });\n this.folder = inject(TweakpaneFolder, { host: true });\n this.pane = signal(null, ...(ngDevMode ? [{ debugName: \"pane\" }] : []));\n this.folder.isSelf = false;\n afterNextRender(() => {\n const container = this.container();\n const paneOptions = {\n title: this.title.title(),\n expanded: this.folder.expanded(),\n };\n if (container) {\n const containerElement = 'nativeElement' in container ? container.nativeElement : container;\n if (containerElement) {\n this.paneContainer = this.document.createElement('div');\n this.paneContainer.classList.add(ClassName('dfw')());\n containerElement.appendChild(this.paneContainer);\n paneOptions.container = this.paneContainer;\n }\n }\n const pane = new Pane(paneOptions);\n this.pane.set(pane);\n this.folder.parentFolder.set(pane);\n });\n inject(DestroyRef).onDestroy(() => {\n const pane = this.pane();\n if (!pane)\n return;\n if (this.paneContainer) {\n this.paneContainer.remove();\n }\n pane.element.remove();\n });\n effect(() => {\n this.updateStyleEffect('top');\n });\n effect(() => {\n this.updateStyleEffect('right');\n });\n effect(() => {\n this.updateStyleEffect('left');\n });\n effect(() => {\n this.updateStyleEffect('bottom');\n });\n effect(() => {\n this.updateStyleEffect('width');\n });\n }\n updateStyleEffect(propertyName) {\n const pane = this.pane();\n if (!pane)\n return;\n const parentElement = pane.element.parentElement;\n if (!parentElement)\n return;\n const property = this[propertyName];\n if (!isSignal(property))\n return;\n const value = property();\n if (!value)\n return;\n parentElement.style.setProperty(propertyName, typeof value === 'number' ? value + 'px' : value);\n pane.refresh();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpanePane, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpanePane, isStandalone: true, selector: \"tweakpane-pane\", inputs: { top: { classPropertyName: \"top\", publicName: \"top\", isSignal: true, isRequired: false, transformFunction: null }, right: { classPropertyName: \"right\", publicName: \"right\", isSignal: true, isRequired: false, transformFunction: null }, left: { classPropertyName: \"left\", publicName: \"left\", isSignal: true, isRequired: false, transformFunction: null }, bottom: { classPropertyName: \"bottom\", publicName: \"bottom\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, container: { classPropertyName: \"container\", publicName: \"container\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.TweakpaneFolder, inputs: [\"expanded\", \"expanded\"], outputs: [\"expandedChange\", \"expandedChange\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpanePane, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-pane',\n hostDirectives: [{ directive: TweakpaneFolder, inputs: ['expanded'], outputs: ['expandedChange'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHdlYWtwYW5lL3NyYy9saWIvcGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLFVBQVUsRUFDVixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFNekMsTUFBTSxPQUFPLGFBQWE7SUFjekI7UUFiQSxRQUFHLEdBQUcsS0FBSyxDQUFrQixLQUFLLCtDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLEtBQUssQ0FBa0IsS0FBSyxpREFBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxLQUFLLDBEQUFtQixDQUFDO1FBQ2hDLFdBQU0sR0FBRyxLQUFLLDREQUFtQixDQUFDO1FBQ2xDLFVBQUssR0FBRyxLQUFLLENBQWtCLE9BQU8saURBQUMsQ0FBQztRQUN4QyxjQUFTLEdBQUcsS0FBSywrREFBaUUsQ0FBQztRQUUzRSxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRCxTQUFJLEdBQUcsTUFBTSxDQUFjLElBQUksZ0RBQUMsQ0FBQztRQUl4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QUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPO1FBRWhDLE1BQU0sS0FBSyxHQUFHLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVuQixhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQzs4R0F2RlcsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUp6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7aUJBQ25HIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdERPQ1VNRU5ULFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdGlzU2lnbmFsLFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NOYW1lIH0gZnJvbSAnQHR3ZWFrcGFuZS9jb3JlJztcbmltcG9ydCB7IFBhbmUgfSBmcm9tICd0d2Vha3BhbmUnO1xuaW1wb3J0IHsgUGFuZUNvbmZpZyB9IGZyb20gJ3R3ZWFrcGFuZS9kaXN0L3R5cGVzL3BhbmUvcGFuZS1jb25maWcnO1xuaW1wb3J0IHsgVHdlYWtwYW5lRm9sZGVyIH0gZnJvbSAnLi9mb2xkZXInO1xuaW1wb3J0IHsgVHdlYWtwYW5lVGl0bGUgfSBmcm9tICcuL3RpdGxlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAndHdlYWtwYW5lLXBhbmUnLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBUd2Vha3BhbmVGb2xkZXIsIGlucHV0czogWydleHBhbmRlZCddLCBvdXRwdXRzOiBbJ2V4cGFuZGVkQ2hhbmdlJ10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIFR3ZWFrcGFuZVBhbmUge1xuXHR0b3AgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXI+KCc4cHgnKTtcblx0cmlnaHQgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXI+KCc4cHgnKTtcblx0bGVmdCA9IGlucHV0PHN0cmluZyB8IG51bWJlcj4oKTtcblx0Ym90dG9tID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xuXHR3aWR0aCA9IGlucHV0PHN0cmluZyB8IG51bWJlcj4oJzI1NnB4Jyk7XG5cdGNvbnRhaW5lciA9IGlucHV0PEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQ+KCk7XG5cblx0cHJpdmF0ZSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cdHByaXZhdGUgdGl0bGUgPSBpbmplY3QoVHdlYWtwYW5lVGl0bGUsIHsgaG9zdDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSBmb2xkZXIgPSBpbmplY3QoVHdlYWtwYW5lRm9sZGVyLCB7IGhvc3Q6IHRydWUgfSk7XG5cdHByaXZhdGUgcGFuZSA9IHNpZ25hbDxQYW5lIHwgbnVsbD4obnVsbCk7XG5cdHByaXZhdGUgcGFuZUNvbnRhaW5lcj86IEhUTUxEaXZFbGVtZW50O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuZm9sZGVyLmlzU2VsZiA9IGZhbHNlO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyKCk7XG5cdFx0XHRjb25zdCBwYW5lT3B0aW9uczogUGFuZUNvbmZpZyA9IHtcblx0XHRcdFx0dGl0bGU6IHRoaXMudGl0bGUudGl0bGUoKSxcblx0XHRcdFx0ZXhwYW5kZWQ6IHRoaXMuZm9sZGVyLmV4cGFuZGVkKCksXG5cdFx0XHR9O1xuXG5cdFx0XHRpZiAoY29udGFpbmVyKSB7XG5cdFx0XHRcdGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSAnbmF0aXZlRWxlbWVudCcgaW4gY29udGFpbmVyID8gY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgOiBjb250YWluZXI7XG5cdFx0XHRcdGlmIChjb250YWluZXJFbGVtZW50KSB7XG5cdFx0XHRcdFx0dGhpcy5wYW5lQ29udGFpbmVyID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdFx0XHR0aGlzLnBhbmVDb250YWluZXIuY2xhc3NMaXN0LmFkZChDbGFzc05hbWUoJ2RmdycpKCkpO1xuXHRcdFx0XHRcdGNvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wYW5lQ29udGFpbmVyKTtcblx0XHRcdFx0XHRwYW5lT3B0aW9ucy5jb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcGFuZSA9IG5ldyBQYW5lKHBhbmVPcHRpb25zKTtcblxuXHRcdFx0dGhpcy5wYW5lLnNldChwYW5lKTtcblx0XHRcdHRoaXMuZm9sZGVyLnBhcmVudEZvbGRlci5zZXQocGFuZSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGNvbnN0IHBhbmUgPSB0aGlzLnBhbmUoKTtcblx0XHRcdGlmICghcGFuZSkgcmV0dXJuO1xuXG5cdFx0XHRpZiAodGhpcy5wYW5lQ29udGFpbmVyKSB7XG5cdFx0XHRcdHRoaXMucGFuZUNvbnRhaW5lci5yZW1vdmUoKTtcblx0XHRcdH1cblxuXHRcdFx0cGFuZS5lbGVtZW50LnJlbW92ZSgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMudXBkYXRlU3R5bGVFZmZlY3QoJ3RvcCcpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMudXBkYXRlU3R5bGVFZmZlY3QoJ3JpZ2h0Jyk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy51cGRhdGVTdHlsZUVmZmVjdCgnbGVmdCcpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMudXBkYXRlU3R5bGVFZmZlY3QoJ2JvdHRvbScpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMudXBkYXRlU3R5bGVFZmZlY3QoJ3dpZHRoJyk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVN0eWxlRWZmZWN0KHByb3BlcnR5TmFtZTogRXhjbHVkZTxrZXlvZiBUd2Vha3BhbmVQYW5lLCAncGFuZScgfCAndGl0bGUnIHwgJ2V4cGFuZGVkJyB8ICdjb250YWluZXInPikge1xuXHRcdGNvbnN0IHBhbmUgPSB0aGlzLnBhbmUoKTtcblx0XHRpZiAoIXBhbmUpIHJldHVybjtcblxuXHRcdGNvbnN0IHBhcmVudEVsZW1lbnQgPSBwYW5lLmVsZW1lbnQucGFyZW50RWxlbWVudDtcblx0XHRpZiAoIXBhcmVudEVsZW1lbnQpIHJldHVybjtcblxuXHRcdGNvbnN0IHByb3BlcnR5ID0gdGhpc1twcm9wZXJ0eU5hbWVdO1xuXHRcdGlmICghaXNTaWduYWwocHJvcGVydHkpKSByZXR1cm47XG5cblx0XHRjb25zdCB2YWx1ZSA9IHByb3BlcnR5KCk7XG5cdFx0aWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG5cdFx0cGFyZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSArICdweCcgOiB2YWx1ZSk7XG5cdFx0cGFuZS5yZWZyZXNoKCk7XG5cdH1cbn1cbiJdfQ==","import { Directive, inject, input } from '@angular/core';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./binding\";\nexport class TweakpanePoint {\n constructor() {\n this.params = input({}, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.binding = inject(TweakpaneBinding);\n this.binding.syncBindingParams(this.params);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpanePoint, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpanePoint, isStandalone: true, selector: \"tweakpane-point\", inputs: { params: { classPropertyName: \"params\", publicName: \"params\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n provideTweakBindingAsHost({\n in: (value) => {\n if (Array.isArray(value)) {\n const [x, y, z, w] = value;\n return { x, y, z, w };\n }\n return value;\n },\n out: (value) => {\n const { x, y, z, w } = value;\n return [x, y, z, w];\n },\n }),\n ], hostDirectives: [{ directive: i1.TweakpaneBinding, inputs: [\"value\", \"value\"], outputs: [\"valueChange\", \"valueChange\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpanePoint, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-point',\n hostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n providers: [\n provideTweakBindingAsHost({\n in: (value) => {\n if (Array.isArray(value)) {\n const [x, y, z, w] = value;\n return { x, y, z, w };\n }\n return value;\n },\n out: (value) => {\n const { x, y, z, w } = value;\n return [x, y, z, w];\n },\n }),\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvbGliL3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQXlCeEUsTUFBTSxPQUFPLGNBQWM7SUFLMUI7UUFKQSxXQUFNLEdBQUcsS0FBSyxDQUErRCxFQUFFLGtEQUFDLENBQUM7UUFFekUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRzFDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBUFcsY0FBYztrR0FBZCxjQUFjLHFNQWhCZjtZQUNWLHlCQUF5QixDQUE4RTtnQkFDdEcsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQzFCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7d0JBQzNCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsQ0FBQztvQkFDRCxPQUFPLEtBQUssQ0FBQztnQkFDZCxDQUFDO2dCQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNkLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQzdCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckIsQ0FBQzthQUNELENBQUM7U0FDRjs7MkZBRVcsY0FBYztrQkFuQjFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDOUYsU0FBUyxFQUFFO3dCQUNWLHlCQUF5QixDQUE4RTs0QkFDdEcsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0NBQ2IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0NBQzFCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7b0NBQzNCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDdkIsQ0FBQztnQ0FDRCxPQUFPLEtBQUssQ0FBQzs0QkFDZCxDQUFDOzRCQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dDQUNkLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0NBQzdCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDckIsQ0FBQzt5QkFDRCxDQUFDO3FCQUNGO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb2ludDJkSW5wdXRQYXJhbXMsIFBvaW50M2RJbnB1dFBhcmFtcywgUG9pbnQ0ZElucHV0UGFyYW1zIH0gZnJvbSAndHdlYWtwYW5lJztcbmltcG9ydCB7IFR3ZWFrcGFuZUJpbmRpbmcsIHByb3ZpZGVUd2Vha0JpbmRpbmdBc0hvc3QgfSBmcm9tICcuL2JpbmRpbmcnO1xuXG50eXBlIEFjY2VwdGFibGVUd2Vha1BvaW50VmFsdWUgPVxuXHR8IFt4OiBudW1iZXIsIHk6IG51bWJlciwgej86IG51bWJlciwgdz86IG51bWJlcl1cblx0fCB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6PzogbnVtYmVyOyB3PzogbnVtYmVyIH07XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3R3ZWFrcGFuZS1wb2ludCcsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IFR3ZWFrcGFuZUJpbmRpbmcsIGlucHV0czogWyd2YWx1ZSddLCBvdXRwdXRzOiBbJ3ZhbHVlQ2hhbmdlJ10gfV0sXG5cdHByb3ZpZGVyczogW1xuXHRcdHByb3ZpZGVUd2Vha0JpbmRpbmdBc0hvc3Q8QWNjZXB0YWJsZVR3ZWFrUG9pbnRWYWx1ZSwgeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgej86IG51bWJlcjsgdz86IG51bWJlciB9Pih7XG5cdFx0XHRpbjogKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHRcdGNvbnN0IFt4LCB5LCB6LCB3XSA9IHZhbHVlO1xuXHRcdFx0XHRcdHJldHVybiB7IHgsIHksIHosIHcgfTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHR9LFxuXHRcdFx0b3V0OiAodmFsdWUpID0+IHtcblx0XHRcdFx0Y29uc3QgeyB4LCB5LCB6LCB3IH0gPSB2YWx1ZTtcblx0XHRcdFx0cmV0dXJuIFt4LCB5LCB6LCB3XTtcblx0XHRcdH0sXG5cdFx0fSksXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIFR3ZWFrcGFuZVBvaW50IHtcblx0cGFyYW1zID0gaW5wdXQ8UG9pbnQyZElucHV0UGFyYW1zIHwgUG9pbnQzZElucHV0UGFyYW1zIHwgUG9pbnQ0ZElucHV0UGFyYW1zPih7fSk7XG5cblx0cHJpdmF0ZSBiaW5kaW5nID0gaW5qZWN0KFR3ZWFrcGFuZUJpbmRpbmcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuYmluZGluZy5zeW5jQmluZGluZ1BhcmFtcyh0aGlzLnBhcmFtcyk7XG5cdH1cbn1cbiJdfQ==","import { Directive, inject, input } from '@angular/core';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./binding\";\nexport class TweakpaneText {\n constructor() {\n this.params = input({}, ...(ngDevMode ? [{ debugName: \"params\" }] : []));\n this.binding = inject(TweakpaneBinding);\n this.binding.syncBindingParams(this.params);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneText, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TweakpaneText, isStandalone: true, selector: \"tweakpane-text\", inputs: { params: { classPropertyName: \"params\", publicName: \"params\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTweakBindingAsHost()], hostDirectives: [{ directive: i1.TweakpaneBinding, inputs: [\"value\", \"value\"], outputs: [\"valueChange\", \"valueChange\"] }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TweakpaneText, decorators: [{\n type: Directive,\n args: [{\n selector: 'tweakpane-text',\n hostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n providers: [provideTweakBindingAsHost()],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHdlYWtwYW5lL3NyYy9saWIvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFPeEUsTUFBTSxPQUFPLGFBQWE7SUFLekI7UUFKQSxXQUFNLEdBQUcsS0FBSyxDQUFvQixFQUFFLGtEQUFDLENBQUM7UUFFOUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRzFDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBUFcsYUFBYTtrR0FBYixhQUFhLG9NQUZkLENBQUMseUJBQXlCLEVBQUUsQ0FBQzs7MkZBRTVCLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDOUYsU0FBUyxFQUFFLENBQUMseUJBQXlCLEVBQUUsQ0FBQztpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0cmluZ0lucHV0UGFyYW1zIH0gZnJvbSAndHdlYWtwYW5lJztcbmltcG9ydCB7IFR3ZWFrcGFuZUJpbmRpbmcsIHByb3ZpZGVUd2Vha0JpbmRpbmdBc0hvc3QgfSBmcm9tICcuL2JpbmRpbmcnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICd0d2Vha3BhbmUtdGV4dCcsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IFR3ZWFrcGFuZUJpbmRpbmcsIGlucHV0czogWyd2YWx1ZSddLCBvdXRwdXRzOiBbJ3ZhbHVlQ2hhbmdlJ10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVUd2Vha0JpbmRpbmdBc0hvc3QoKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR3ZWFrcGFuZVRleHQge1xuXHRwYXJhbXMgPSBpbnB1dDxTdHJpbmdJbnB1dFBhcmFtcz4oe30pO1xuXG5cdHByaXZhdGUgYmluZGluZyA9IGluamVjdChUd2Vha3BhbmVCaW5kaW5nKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmJpbmRpbmcuc3luY0JpbmRpbmdQYXJhbXModGhpcy5wYXJhbXMpO1xuXHR9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS10d2Vha3BhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3R3ZWFrcGFuZS9zcmMvYW5ndWxhci10aHJlZS10d2Vha3BhbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1.TweakpaneTitle","i2.TweakpaneBlade","i1.TweakpaneBlade","i2.TweakpaneDebounce","i3.TweakpaneLabel","i2.TweakpaneLabel","i3.TweakpaneBlade","i1.TweakpaneBinding","i1.TweakpaneFolder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-tweakpane.mjs","sources":["../../../../libs/tweakpane/src/lib/anchor.ts","../../../../libs/tweakpane/src/lib/blade.ts","../../../../libs/tweakpane/src/lib/debounce.ts","../../../../libs/tweakpane/src/lib/title.ts","../../../../libs/tweakpane/src/lib/folder.ts","../../../../libs/tweakpane/src/lib/label.ts","../../../../libs/tweakpane/src/lib/binding.ts","../../../../libs/tweakpane/src/lib/button.ts","../../../../libs/tweakpane/src/lib/checkbox.ts","../../../../libs/tweakpane/src/lib/color.ts","../../../../libs/tweakpane/src/lib/list.ts","../../../../libs/tweakpane/src/lib/number.ts","../../../../libs/tweakpane/src/lib/pane.ts","../../../../libs/tweakpane/src/lib/point.ts","../../../../libs/tweakpane/src/lib/text.ts","../../../../libs/tweakpane/src/lib/tweaks.ts","../../../../libs/tweakpane/src/angular-three-tweakpane.ts"],"sourcesContent":["import { Component, ComponentRef, Directive, inject, signal, ViewContainerRef } from '@angular/core';\nimport { TweakpaneFolder } from './folder';\n\n/**\n * Directive that provides an anchor point for the `tweaks()` function to dynamically create Tweakpane controls.\n *\n * Add this directive to your `ngt-canvas` element to enable the `tweaks()` API:\n *\n * ```html\n * <ngt-canvas tweakpaneAnchor>\n * <ng-template #sceneGraph>\n * <!-- your scene -->\n * </ng-template>\n * </ngt-canvas>\n * ```\n *\n * Then use `tweaks()` in any component within the canvas:\n *\n * ```typescript\n * const controls = tweaks('Physics', {\n * gravity: { value: 9.8, min: 0, max: 20 },\n * debug: this.debugMode, // two-way binding with existing signal\n * });\n * ```\n */\n@Directive({ selector: '[tweakpaneAnchor]' })\nexport class TweakpaneAnchor {\n\t/**\n\t * The ViewContainerRef where dynamic components will be created.\n\t * Injected from the host element.\n\t */\n\tvcr = inject(ViewContainerRef);\n\n\t/**\n\t * Reference to the pane's TweakpaneFolder, set by TweakpanePane when it initializes.\n\t * This is used as the parent folder for dynamically created folders.\n\t */\n\tpaneFolder = signal<TweakpaneFolder | null>(null);\n\n\t/**\n\t * Registry of folder ComponentRefs by folder name.\n\t * Used to reuse existing folders when multiple `tweaks()` calls use the same folder name.\n\t */\n\tfolders: Record<string, ComponentRef<TweakpaneAnchorHost>> = {};\n}\n\n/**\n * A minimal host component used for dynamically creating Tweakpane controls.\n * This component serves as a host for directives like TweakpaneFolder, TweakpaneNumber, etc.\n * when using the `tweaks()` function.\n *\n * @internal\n */\n@Component({\n\tselector: 'tweakpane-anchor-host',\n\ttemplate: '',\n})\nexport class TweakpaneAnchorHost {}\n","import { booleanAttribute, Directive, effect, inject, Injector, input, untracked } from '@angular/core';\nimport { BladeApi } from 'tweakpane';\n\n/**\n * Directive that provides hidden and disabled state management for Tweakpane blades.\n *\n * This is a base directive used by other Tweakpane components to control\n * visibility and interactivity of controls.\n *\n * @example\n * ```html\n * <tweakpane-number [hidden]=\"isHidden\" [disabled]=\"isDisabled\" [(value)]=\"speed\" />\n * ```\n */\n@Directive({ selector: 'tweakpane-blade' })\nexport class TweakpaneBlade {\n\t/**\n\t * Whether the blade is hidden.\n\t * @default false\n\t */\n\thidden = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Whether the blade is disabled (non-interactive).\n\t * @default false\n\t */\n\tdisabled = input(false, { transform: booleanAttribute });\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Gets the current hidden and disabled values without tracking signal dependencies.\n\t * Useful for initial configuration when creating Tweakpane components.\n\t * @returns An object containing the current hidden and disabled states\n\t */\n\tget snapshot() {\n\t\treturn {\n\t\t\thidden: untracked(this.hidden),\n\t\t\tdisabled: untracked(this.disabled),\n\t\t};\n\t}\n\n\t/**\n\t * Synchronizes the hidden and disabled properties with a Tweakpane BladeApi.\n\t * Creates a reactive effect that updates the API's state whenever\n\t * the input values change.\n\t *\n\t * @param api - A function that returns the Tweakpane BladeApi (or null if not ready)\n\t * @returns The created effect reference\n\t */\n\tsync(api: () => BladeApi | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.hidden = this.hidden();\n\t\t\t\t_api.disabled = this.disabled();\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { Directive, effect, inject, Injector, input, numberAttribute } from '@angular/core';\nimport { debounceTime, fromEventPattern } from 'rxjs';\nimport { TpChangeEvent } from 'tweakpane';\n\n/**\n * Directive that provides debounced change event handling for Tweakpane controls.\n *\n * This is a base directive used by binding-based controls to prevent\n * excessive updates when values change rapidly (e.g., during slider dragging).\n *\n * @example\n * ```html\n * <!-- Debounce value updates by 300ms -->\n * <tweakpane-number [debounce]=\"300\" [(value)]=\"speed\" />\n * ```\n */\n@Directive()\nexport class TweakpaneDebounce {\n\t/**\n\t * The debounce delay in milliseconds before emitting value changes.\n\t * @default 150\n\t */\n\tdebounce = input(150, { transform: numberAttribute });\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Synchronizes debounced change events from a Tweakpane API with a callback.\n\t * Creates a reactive effect that subscribes to change events and debounces them.\n\t *\n\t * @typeParam T - The type of value being tracked\n\t * @param api - A function that returns the Tweakpane API object with on/off methods (or null if not ready)\n\t * @param cb - Callback function invoked with the change event after debounce delay\n\t * @returns The created effect reference\n\t */\n\tsync<T>(\n\t\tapi: () => {\n\t\t\ton: (evName: 'change', cb: (ev: TpChangeEvent<T>) => void) => void;\n\t\t\toff: (evName: 'change', cb: (ev: TpChangeEvent<T>) => void) => void;\n\t\t} | null,\n\t\tcb: (ev: TpChangeEvent<T>) => void,\n\t) {\n\t\treturn effect(\n\t\t\t(onCleanup) => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\tconst sub = fromEventPattern<TpChangeEvent<T>>(\n\t\t\t\t\t(handler) => _api.on('change', handler),\n\t\t\t\t\t(handler) => _api.off('change', handler),\n\t\t\t\t)\n\t\t\t\t\t.pipe(debounceTime(this.debounce()))\n\t\t\t\t\t.subscribe((ev) => {\n\t\t\t\t\t\tcb(ev);\n\t\t\t\t\t});\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\n\n/**\n * Directive that provides title functionality for Tweakpane components.\n *\n * This is a base directive used by other Tweakpane components (like `TweakpaneFolder`,\n * `TweakpanePane`, `TweakpaneButton`) to manage their titles reactively.\n *\n * @example\n * ```html\n * <tweakpane-folder title=\"Settings\">\n * <!-- folder contents -->\n * </tweakpane-folder>\n * ```\n */\n@Directive()\nexport class TweakpaneTitle {\n\t/**\n\t * The title text to display.\n\t * @default 'TweakPane Title'\n\t */\n\ttitle = input('TweakPane Title');\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Gets the current title value without tracking signal dependencies.\n\t * Useful for initial configuration when creating Tweakpane components.\n\t * @returns The current title string value\n\t */\n\tget snapshot() {\n\t\treturn untracked(this.title);\n\t}\n\n\t/**\n\t * Synchronizes the title property with a Tweakpane API object.\n\t * Creates a reactive effect that updates the API's title whenever\n\t * the input title changes.\n\t *\n\t * @param api - A function that returns the Tweakpane API object (or null if not ready)\n\t * @returns The created effect reference\n\t */\n\tsync(api: () => { title: string | undefined } | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.title = this.title();\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import { computed, DestroyRef, Directive, effect, inject, linkedSignal, model, Signal, untracked } from '@angular/core';\nimport { TpFoldEvent } from '@tweakpane/core';\nimport { FolderApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneTitle } from './title';\n\n/**\n * Directive for creating collapsible folders within a Tweakpane.\n *\n * Folders are used to organize controls into logical groups. They can be\n * nested within other folders or directly within a pane.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-folder title=\"Physics\" [expanded]=\"true\">\n * <tweakpane-number label=\"Gravity\" [(value)]=\"gravity\" />\n * <tweakpane-number label=\"Friction\" [(value)]=\"friction\" />\n * </tweakpane-folder>\n *\n * <tweakpane-folder title=\"Appearance\">\n * <tweakpane-color label=\"Color\" [(value)]=\"color\" />\n * </tweakpane-folder>\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-folder',\n\thostDirectives: [\n\t\t{ directive: TweakpaneTitle, inputs: ['title'] },\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t],\n})\nexport class TweakpaneFolder {\n\t/**\n\t * Whether the folder is expanded (open) or collapsed.\n\t * Supports two-way binding with `[(expanded)]`.\n\t * @default false\n\t */\n\texpanded = model(false);\n\n\tprivate title = inject(TweakpaneTitle);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder, { skipSelf: true, optional: true });\n\n\t/**\n\t * Signal containing the parent folder API.\n\t * Automatically links to the parent folder in the component hierarchy.\n\t */\n\tparentFolder = linkedSignal(() => this.parent?.folder());\n\n\t/**\n\t * Computed signal containing the Tweakpane FolderApi for this folder.\n\t * Returns null if the parent folder is not yet available.\n\t */\n\tfolder: Signal<FolderApi | null> = computed(() => {\n\t\tconst parent = this.parentFolder();\n\t\tif (!parent) return null;\n\n\t\tif (!this.isSelf) return parent;\n\n\t\treturn parent.addFolder({\n\t\t\ttitle: this.title.snapshot,\n\t\t\texpanded: untracked(this.expanded),\n\t\t\tdisabled: this.blade.snapshot.disabled,\n\t\t\thidden: this.blade.snapshot.hidden,\n\t\t});\n\t});\n\n\t/**\n\t * Internal flag indicating whether this directive creates its own folder\n\t * or reuses the parent folder. Set to `false` by `TweakpanePane`.\n\t * @internal\n\t */\n\tisSelf = true;\n\n\tconstructor() {\n\t\tthis.title.sync(this.folder);\n\t\tthis.blade.sync(this.folder);\n\n\t\teffect((onCleanup) => {\n\t\t\tconst folder = this.folder();\n\t\t\tif (!folder) return;\n\n\t\t\tconst cb = (ev: TpFoldEvent<FolderApi>) => {\n\t\t\t\tthis.expanded.set(ev.expanded);\n\t\t\t};\n\n\t\t\tfolder.on('fold', cb);\n\t\t\tonCleanup(() => {\n\t\t\t\tfolder.off('fold', cb);\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.folder()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, Injector, input, untracked } from '@angular/core';\n\n/**\n * Directive that provides label and tag functionality for Tweakpane controls.\n *\n * This is a base directive used by binding-based controls (like `TweakpaneNumber`,\n * `TweakpaneText`, `TweakpaneCheckbox`) to manage their labels and optional tags.\n *\n * @example\n * ```html\n * <tweakpane-number label=\"Speed\" tag=\"m/s\" [(value)]=\"speed\" />\n * ```\n */\n@Directive()\nexport class TweakpaneLabel {\n\t/**\n\t * The label text displayed next to the control.\n\t * @default ''\n\t */\n\tlabel = input('');\n\n\t/**\n\t * An optional tag displayed alongside the label (e.g., units like \"px\", \"m/s\").\n\t * @default ''\n\t */\n\ttag = input('');\n\n\tprivate injector = inject(Injector);\n\n\t/**\n\t * Gets the current label and tag values without tracking signal dependencies.\n\t * Useful for initial configuration when creating Tweakpane controls.\n\t * @returns An object containing the current label and tag values\n\t */\n\tget snapshot() {\n\t\treturn { label: untracked(this.label), tag: untracked(this.tag) };\n\t}\n\n\t/**\n\t * Synchronizes the label and tag properties with a Tweakpane API object.\n\t * Creates a reactive effect that updates the API's label and tag\n\t * whenever the input values change.\n\t *\n\t * @param api - A function that returns the Tweakpane API object (or null if not ready)\n\t * @returns The created effect reference\n\t */\n\tsync(api: () => { label?: string | null; tag?: string | null } | null) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tconst _api = api();\n\t\t\t\tif (!_api) return;\n\n\t\t\t\t_api.label = this.label();\n\t\t\t\tif ('tag' in _api) {\n\t\t\t\t\t_api.tag = this.tag();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n}\n","import {\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\tInjectionToken,\n\tInjector,\n\tmodel,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BindingApi, BindingParams } from '@tweakpane/core';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\n\n/**\n * Injection token used to configure value transformation when TweakpaneBinding\n * is used as a host directive.\n *\n * When set to `true`, values pass through unchanged.\n * When set to an object with `in` and `out` functions, values are transformed:\n * - `in`: Transforms the input value before binding to Tweakpane\n * - `out`: Transforms the Tweakpane value before emitting to the model\n *\n * @internal\n */\nexport const NGT_TWEAK_BINDING_AS_HOST = new InjectionToken<\n\ttrue | { in: (value: unknown) => unknown; out: (value: unknown) => unknown } | null\n>('hostDirective NgtTweakBinding', { factory: () => null });\n\n/**\n * Provides configuration for TweakpaneBinding when used as a host directive.\n *\n * @typeParam TIn - The input value type (from the component)\n * @typeParam TOut - The output value type (for Tweakpane)\n * @param inOut - Optional object containing `in` and `out` transformation functions\n * @returns A provider configuration object\n *\n * @example\n * ```typescript\n * // Simple passthrough (no transformation)\n * providers: [provideTweakBindingAsHost()]\n *\n * // With value transformation (e.g., array to object)\n * providers: [provideTweakBindingAsHost({\n * in: (value) => ({ x: value[0], y: value[1] }),\n * out: (value) => [value.x, value.y]\n * })]\n * ```\n */\nexport function provideTweakBindingAsHost<TIn, TOut>(inOut?: { in: (value: TIn) => TOut; out: (value: TOut) => TIn }) {\n\treturn { provide: NGT_TWEAK_BINDING_AS_HOST, useValue: inOut ?? true };\n}\n\n/**\n * Base directive for creating Tweakpane bindings (two-way data binding controls).\n *\n * This directive provides the core functionality for binding Angular values to\n * Tweakpane controls. It handles:\n * - Creating the binding on the parent folder\n * - Syncing label, blade, and debounce settings\n * - Value transformation when used as a host directive\n * - Automatic cleanup on destroy\n *\n * Most commonly used as a host directive by specific control types like\n * `TweakpaneNumber`, `TweakpaneText`, `TweakpaneCheckbox`, etc.\n *\n * @typeParam TValue - The type of value being bound\n *\n * @example\n * ```html\n * <!-- Direct usage (rarely needed) -->\n * <tweakpane-binding [(value)]=\"myValue\" label=\"My Value\" />\n *\n * <!-- More commonly used via specific controls -->\n * <tweakpane-number [(value)]=\"speed\" label=\"Speed\" />\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-binding',\n\thostDirectives: [\n\t\t{ directive: TweakpaneBlade, inputs: ['disabled', 'hidden'] },\n\t\t{ directive: TweakpaneDebounce, inputs: ['debounce'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label', 'tag'] },\n\t],\n})\nexport class TweakpaneBinding<TValue> {\n\t/**\n\t * The bound value. Supports two-way binding with `[(value)]`.\n\t */\n\tvalue = model.required<any>();\n\n\tprivate debounce = inject(TweakpaneDebounce);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder);\n\tprivate injector = inject(Injector);\n\tprivate asHostDirective = inject(NGT_TWEAK_BINDING_AS_HOST);\n\n\tprivate bindingBaseParams = computed(() => ({\n\t\tlabel: this.label.snapshot.label,\n\t\ttag: this.label.snapshot.tag,\n\t\tdisabled: this.blade.disabled(),\n\t\thidden: this.blade.hidden(),\n\t}));\n\tprivate bindingParams = signal<Record<string, unknown>>({});\n\n\t/**\n\t * Gets the bindable object with optional value transformation.\n\t * @returns An object with a `value` property suitable for Tweakpane binding\n\t */\n\tprivate get bindableObject() {\n\t\tlet value = untracked(this.value);\n\n\t\tif (this.asHostDirective && typeof this.asHostDirective === 'object') {\n\t\t\tvalue = this.asHostDirective.in(value) as TValue;\n\t\t}\n\n\t\treturn { value };\n\t}\n\n\tprivate bindingApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\tconst bindingParams = { ...this.bindingBaseParams(), ...this.bindingParams() };\n\t\treturn parent.addBinding(this.bindableObject, 'value', bindingParams) as BindingApi<unknown, TValue>;\n\t});\n\n\tconstructor() {\n\t\tthis.blade.sync(this.bindingApi);\n\t\tthis.label.sync(this.bindingApi);\n\t\tthis.debounce.sync(this.bindingApi, (ev) => {\n\t\t\tif (this.asHostDirective && typeof this.asHostDirective === 'object') {\n\t\t\t\tthis.value.set(this.asHostDirective.out(ev.value) as TValue);\n\t\t\t} else {\n\t\t\t\tthis.value.set(ev.value);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst bindingApi = this.bindingApi();\n\t\t\tif (!bindingApi) return;\n\t\t\tonCleanup(() => {\n\t\t\t\tbindingApi.dispose();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.bindingApi()?.dispose();\n\t\t});\n\t}\n\n\t/**\n\t * Synchronizes additional binding parameters with the Tweakpane binding.\n\t * Called by specific control directives to add control-specific parameters\n\t * (e.g., min/max for numbers, options for lists).\n\t *\n\t * @param params - A function that returns the binding parameters\n\t * @returns The created effect reference\n\t */\n\tsyncBindingParams(params: () => BindingParams) {\n\t\treturn effect(\n\t\t\t() => {\n\t\t\t\tthis.bindingParams.set(params());\n\t\t\t},\n\t\t\t{ injector: this.injector },\n\t\t);\n\t}\n\n\t// createBindingEffect(params: () => BindingParams) {\n\t// \treturn effect(\n\t// \t\t(onCleanup) => {\n\t// \t\t\tconst parent = this.parent.folder();\n\t// \t\t\tif (!parent) return;\n\t//\n\t// \t\t\tconst bindingParams = { ...this.bindingBaseParams(), ...params() };\n\t// \t\t\tconst binding = parent.addBinding(this.bindableObject, 'value', bindingParams);\n\t//\n\t// \t\t\tthis.bindingApi.set(binding);\n\t//\n\t// \t\t\tonCleanup(() => {\n\t// \t\t\t\tbinding.dispose();\n\t// \t\t\t\tthis.bindingApi.set(null);\n\t// \t\t\t});\n\t// \t\t},\n\t// \t\t{ injector: this.injector },\n\t// \t);\n\t// }\n}\n","import { computed, DestroyRef, Directive, effect, inject, output } from '@angular/core';\nimport { TpMouseEvent } from '@tweakpane/core';\nimport { ButtonApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\nimport { TweakpaneTitle } from './title';\n\n/**\n * Directive for creating a clickable button in Tweakpane.\n *\n * Buttons are used to trigger actions (like reset, randomize, etc.)\n * and emit click events when pressed.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-button title=\"Reset\" (click)=\"onReset()\" />\n * <tweakpane-button title=\"Randomize\" label=\"Action\" (click)=\"onRandomize()\" />\n * <tweakpane-button title=\"Save\" [disabled]=\"!canSave\" (click)=\"onSave()\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-button',\n\thostDirectives: [\n\t\t{ directive: TweakpaneTitle, inputs: ['title'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label'] },\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t],\n})\nexport class TweakpaneButton {\n\t/**\n\t * Event emitted when the button is clicked.\n\t * Provides the Tweakpane mouse event with the ButtonApi.\n\t */\n\tclick = output<TpMouseEvent<ButtonApi>>();\n\n\tprivate title = inject(TweakpaneTitle);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate parent = inject(TweakpaneFolder);\n\n\tprivate buttonApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\treturn parent.addButton({\n\t\t\ttitle: this.title.snapshot,\n\t\t\thidden: this.blade.snapshot.hidden,\n\t\t\tdisabled: this.blade.snapshot.disabled,\n\t\t\tlabel: this.label.snapshot.label,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst buttonApi = this.buttonApi();\n\t\t\tif (!buttonApi) return;\n\n\t\t\tconst boundEmit = this.click.emit.bind(this.click);\n\t\t\tbuttonApi.on('click', boundEmit);\n\n\t\t\tonCleanup(() => {\n\t\t\t\tbuttonApi.off('click', boundEmit);\n\t\t\t});\n\t\t});\n\n\t\tthis.label.sync(this.buttonApi);\n\t\tthis.title.sync(this.buttonApi);\n\t\tthis.blade.sync(this.buttonApi);\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.buttonApi()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { BooleanInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a boolean checkbox control in Tweakpane.\n *\n * Provides two-way binding for boolean values with a checkbox UI.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-checkbox label=\"Debug Mode\" [(value)]=\"debugMode\" />\n * <tweakpane-checkbox label=\"Wireframe\" [(value)]=\"showWireframe\" [disabled]=\"!debugMode()\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-checkbox',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneCheckbox {\n\t/**\n\t * Additional Tweakpane boolean input parameters.\n\t * @default {}\n\t */\n\tparams = input<BooleanInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { ColorInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a color picker control in Tweakpane.\n *\n * Provides two-way binding for color values (as hex strings) with a\n * color picker UI that supports RGB, HSL, and alpha.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-color label=\"Background\" [(value)]=\"backgroundColor\" />\n * <tweakpane-color label=\"Accent\" [(value)]=\"accentColor\" [params]=\"{ alpha: true }\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-color',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneColor {\n\t/**\n\t * Additional Tweakpane color input parameters.\n\t * Can include options like `alpha`, `color.type`, etc.\n\t * @default {}\n\t */\n\tparams = input<ColorInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { computed, DestroyRef, Directive, effect, inject, input, model, untracked } from '@angular/core';\nimport { ListItem } from '@tweakpane/core';\nimport { ListBladeApi } from 'tweakpane';\nimport { TweakpaneBlade } from './blade';\nimport { TweakpaneDebounce } from './debounce';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneLabel } from './label';\n\n/**\n * Directive for creating a dropdown list/select control in Tweakpane.\n *\n * Provides two-way binding for selecting from a list of options.\n * Options can be provided as an array or as a key-value object.\n *\n * @typeParam TOptionValue - The type of values in the list\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <!-- Options as array -->\n * <tweakpane-list\n * label=\"Mode\"\n * [(value)]=\"mode\"\n * [options]=\"['normal', 'debug', 'performance']\"\n * />\n *\n * <!-- Options as object (label: value mapping) -->\n * <tweakpane-list\n * label=\"Quality\"\n * [(value)]=\"quality\"\n * [options]=\"{ 'Low': 1, 'Medium': 2, 'High': 3, 'Ultra': 4 }\"\n * />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-list',\n\thostDirectives: [\n\t\t{ directive: TweakpaneBlade, inputs: ['hidden', 'disabled'] },\n\t\t{ directive: TweakpaneDebounce, inputs: ['debounce'] },\n\t\t{ directive: TweakpaneLabel, inputs: ['label'] },\n\t],\n})\nexport class TweakpaneList<TOptionValue> {\n\t/**\n\t * The currently selected value. Supports two-way binding with `[(value)]`.\n\t */\n\tvalue = model.required<TOptionValue>();\n\n\t/**\n\t * The list options. Can be:\n\t * - An array of values (labels will be stringified values)\n\t * - An object mapping display labels to values\n\t */\n\toptions = input.required<Record<string, TOptionValue> | TOptionValue[]>();\n\n\tprivate blade = inject(TweakpaneBlade);\n\tprivate debounce = inject(TweakpaneDebounce);\n\tprivate label = inject(TweakpaneLabel);\n\tprivate parent = inject(TweakpaneFolder);\n\n\tprivate listOptions = computed(() => {\n\t\tconst options = this.options();\n\t\tif (Array.isArray(options)) {\n\t\t\treturn options.map((option) => ({ value: option, text: `${option}` }) as ListItem<TOptionValue>);\n\t\t}\n\n\t\treturn Object.keys(options).map((key) => {\n\t\t\tconst value = options[key];\n\t\t\treturn { text: key, value } as ListItem<TOptionValue>;\n\t\t});\n\t});\n\tprivate listApi = computed(() => {\n\t\tconst parent = this.parent.folder();\n\t\tif (!parent) return null;\n\n\t\treturn parent.addBlade({\n\t\t\tview: 'list',\n\t\t\toptions: this.listOptions(),\n\t\t\tvalue: untracked(this.value),\n\t\t\tlabel: this.label.snapshot.label,\n\t\t}) as ListBladeApi<TOptionValue>;\n\t});\n\n\tconstructor() {\n\t\tthis.label.sync(this.listApi);\n\t\tthis.blade.sync(this.listApi);\n\t\tthis.debounce.sync(this.listApi, (ev) => {\n\t\t\tthis.value.set(ev.value);\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst listApi = this.listApi();\n\t\t\tonCleanup(() => {\n\t\t\t\tlistApi?.dispose();\n\t\t\t});\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.listApi()?.dispose();\n\t\t});\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { NumberInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a numeric input control in Tweakpane.\n *\n * Provides two-way binding for number values with optional min/max/step\n * constraints. Displays as a text input with increment buttons, or as\n * a slider if min and max are specified.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <!-- Simple number input -->\n * <tweakpane-number label=\"Count\" [(value)]=\"count\" />\n *\n * <!-- With slider (min/max defined) -->\n * <tweakpane-number\n * label=\"Speed\"\n * [(value)]=\"speed\"\n * [params]=\"{ min: 0, max: 100, step: 0.1 }\"\n * />\n *\n * <!-- With custom format -->\n * <tweakpane-number\n * label=\"Angle\"\n * [(value)]=\"angle\"\n * [params]=\"{ min: 0, max: 360, format: (v) => v.toFixed(0) + '°' }\"\n * />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-number',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneNumber {\n\t/**\n\t * Additional Tweakpane number input parameters.\n\t * Can include `min`, `max`, `step`, `format`, etc.\n\t * @default {}\n\t */\n\tparams = input<NumberInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import {\n\tafterNextRender,\n\tDestroyRef,\n\tDirective,\n\tDOCUMENT,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tisSignal,\n\tsignal,\n} from '@angular/core';\nimport { ClassName } from '@tweakpane/core';\nimport { Pane } from 'tweakpane';\nimport { PaneConfig } from 'tweakpane/dist/types/pane/pane-config';\nimport { TweakpaneAnchor } from './anchor';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneTitle } from './title';\n\n/**\n * Main Tweakpane container directive that creates the root pane element.\n *\n * This directive creates a floating Tweakpane panel that can be positioned\n * anywhere on the screen. It serves as the root container for all\n * Tweakpane controls (folders, bindings, buttons, etc.).\n *\n * @example\n * ```html\n * <!-- Basic usage with default positioning (top-right) -->\n * <tweakpane-pane title=\"Settings\">\n * <tweakpane-number label=\"Speed\" [(value)]=\"speed\" />\n * <tweakpane-checkbox label=\"Debug\" [(value)]=\"debug\" />\n * </tweakpane-pane>\n *\n * <!-- Custom positioning -->\n * <tweakpane-pane title=\"Controls\" left=\"8px\" bottom=\"8px\" [right]=\"undefined\">\n * <tweakpane-folder title=\"Physics\">\n * <tweakpane-number label=\"Gravity\" [(value)]=\"gravity\" />\n * </tweakpane-folder>\n * </tweakpane-pane>\n *\n * <!-- Embedded in a container element -->\n * <div #container></div>\n * <tweakpane-pane [container]=\"container\">\n * <!-- controls -->\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-pane',\n\thostDirectives: [{ directive: TweakpaneFolder, inputs: ['expanded'], outputs: ['expandedChange'] }],\n})\nexport class TweakpanePane {\n\t/**\n\t * CSS top position of the pane.\n\t * @default '8px'\n\t */\n\ttop = input<string | number>('8px');\n\n\t/**\n\t * CSS right position of the pane.\n\t * @default '8px'\n\t */\n\tright = input<string | number>('8px');\n\n\t/**\n\t * CSS left position of the pane.\n\t * @default undefined\n\t */\n\tleft = input<string | number>();\n\n\t/**\n\t * CSS bottom position of the pane.\n\t * @default undefined\n\t */\n\tbottom = input<string | number>();\n\n\t/**\n\t * CSS width of the pane.\n\t * @default '256px'\n\t */\n\twidth = input<string | number>('256px');\n\n\t/**\n\t * Optional container element to embed the pane into.\n\t * If not provided, the pane floats freely in the document.\n\t * Can be an HTMLElement or an Angular ElementRef.\n\t */\n\tcontainer = input<HTMLElement | ElementRef<HTMLElement | undefined> | undefined>();\n\n\tprivate document = inject(DOCUMENT);\n\tprivate title = inject(TweakpaneTitle, { host: true });\n\tprivate folder = inject(TweakpaneFolder, { host: true });\n\tprivate tweakpaneAnchor = inject(TweakpaneAnchor, { optional: true });\n\tprivate pane = signal<Pane | null>(null);\n\tprivate paneContainer?: HTMLDivElement;\n\n\tconstructor() {\n\t\tthis.folder.isSelf = false;\n\n\t\tafterNextRender(() => {\n\t\t\tconst container = this.container();\n\t\t\tconst paneOptions: PaneConfig = {\n\t\t\t\ttitle: this.title.title(),\n\t\t\t\texpanded: this.folder.expanded(),\n\t\t\t};\n\n\t\t\tif (container) {\n\t\t\t\tconst containerElement = 'nativeElement' in container ? container.nativeElement : container;\n\t\t\t\tif (containerElement) {\n\t\t\t\t\tthis.paneContainer = this.document.createElement('div');\n\t\t\t\t\tthis.paneContainer.classList.add(ClassName('dfw')());\n\t\t\t\t\tcontainerElement.appendChild(this.paneContainer);\n\t\t\t\t\tpaneOptions.container = this.paneContainer;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst pane = new Pane(paneOptions);\n\n\t\t\tthis.pane.set(pane);\n\t\t\tthis.folder.parentFolder.set(pane);\n\n\t\t\t// Set the pane's folder for tweaks() to use\n\t\t\tif (this.tweakpaneAnchor) {\n\t\t\t\tthis.tweakpaneAnchor.paneFolder.set(this.folder);\n\t\t\t}\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tconst pane = this.pane();\n\t\t\tif (!pane) return;\n\n\t\t\tif (this.paneContainer) {\n\t\t\t\tthis.paneContainer.remove();\n\t\t\t}\n\n\t\t\tpane.element.remove();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('top');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('right');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('left');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('bottom');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.updateStyleEffect('width');\n\t\t});\n\t}\n\n\t/**\n\t * Updates a CSS style property on the pane's parent element.\n\t * @param propertyName - The name of the style property to update\n\t */\n\tprivate updateStyleEffect(propertyName: Exclude<keyof TweakpanePane, 'pane' | 'title' | 'expanded' | 'container'>) {\n\t\tconst pane = this.pane();\n\t\tif (!pane) return;\n\n\t\tconst parentElement = pane.element.parentElement;\n\t\tif (!parentElement) return;\n\n\t\tconst property = this[propertyName];\n\t\tif (!isSignal(property)) return;\n\n\t\tconst value = property();\n\t\tif (!value) return;\n\n\t\tparentElement.style.setProperty(propertyName, typeof value === 'number' ? value + 'px' : value);\n\t\tpane.refresh();\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { Point2dInputParams, Point3dInputParams, Point4dInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Acceptable value formats for TweakpanePoint.\n * Can be a tuple array `[x, y, z?, w?]` or an object `{ x, y, z?, w? }`.\n */\ntype AcceptableTweakPointValue =\n\t| [x: number, y: number, z?: number, w?: number]\n\t| { x: number; y: number; z?: number; w?: number };\n\n/**\n * Directive for creating a 2D/3D/4D point input control in Tweakpane.\n *\n * Provides two-way binding for point values (as tuple arrays or objects).\n * The control displays input fields for each dimension and optionally\n * shows a 2D picker for x/y values.\n *\n * Values are accepted as arrays `[x, y, z?, w?]` and emitted in the same format.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <!-- 2D point -->\n * <tweakpane-point label=\"Position\" [(value)]=\"position2D\" />\n *\n * <!-- 3D point with custom ranges -->\n * <tweakpane-point\n * label=\"Position\"\n * [(value)]=\"position3D\"\n * [params]=\"{\n * x: { min: -10, max: 10 },\n * y: { min: 0, max: 100 },\n * z: { min: -10, max: 10 }\n * }\"\n * />\n *\n * <!-- 4D point (e.g., quaternion) -->\n * <tweakpane-point label=\"Rotation\" [(value)]=\"quaternion\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-point',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [\n\t\tprovideTweakBindingAsHost<AcceptableTweakPointValue, { x: number; y: number; z?: number; w?: number }>({\n\t\t\tin: (value) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tconst [x, y, z, w] = value;\n\t\t\t\t\treturn { x, y, z, w };\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tout: (value) => {\n\t\t\t\tconst { x, y, z, w } = value;\n\t\t\t\treturn [x, y, z, w];\n\t\t\t},\n\t\t}),\n\t],\n})\nexport class TweakpanePoint {\n\t/**\n\t * Additional Tweakpane point input parameters.\n\t * Can include per-axis configuration like `{ x: { min, max }, y: { min, max } }`.\n\t * @default {}\n\t */\n\tparams = input<Point2dInputParams | Point3dInputParams | Point4dInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { StringInputParams } from 'tweakpane';\nimport { TweakpaneBinding, provideTweakBindingAsHost } from './binding';\n\n/**\n * Directive for creating a text input control in Tweakpane.\n *\n * Provides two-way binding for string values with a text input UI.\n *\n * @example\n * ```html\n * <tweakpane-pane>\n * <tweakpane-text label=\"Name\" [(value)]=\"objectName\" />\n * <tweakpane-text label=\"Description\" [(value)]=\"description\" />\n * </tweakpane-pane>\n * ```\n */\n@Directive({\n\tselector: 'tweakpane-text',\n\thostDirectives: [{ directive: TweakpaneBinding, inputs: ['value'], outputs: ['valueChange'] }],\n\tproviders: [provideTweakBindingAsHost()],\n})\nexport class TweakpaneText {\n\t/**\n\t * Additional Tweakpane string input parameters.\n\t * @default {}\n\t */\n\tparams = input<StringInputParams>({});\n\n\tprivate binding = inject(TweakpaneBinding);\n\n\tconstructor() {\n\t\tthis.binding.syncBindingParams(this.params);\n\t}\n}\n","import {\n\ttype ComponentRef,\n\tDestroyRef,\n\teffect,\n\tinject,\n\tInjector,\n\tinputBinding,\n\tisSignal,\n\tsignal,\n\ttype Signal,\n\ttwoWayBinding,\n\tuntracked,\n\ttype ViewContainerRef,\n\ttype WritableSignal,\n} from '@angular/core';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { NumberInputParams, Point2dInputParams, Point3dInputParams, Point4dInputParams } from 'tweakpane';\nimport { TweakpaneAnchor, TweakpaneAnchorHost } from './anchor';\nimport { TweakpaneButton } from './button';\nimport { TweakpaneCheckbox } from './checkbox';\nimport { TweakpaneColor } from './color';\nimport { TweakpaneFolder } from './folder';\nimport { TweakpaneList } from './list';\nimport { TweakpaneNumber } from './number';\nimport { TweakpanePoint } from './point';\nimport { TweakpaneText } from './text';\n\n// ============================================================================\n// Config Types\n// ============================================================================\n\n/**\n * Configuration for a number input control.\n *\n * @example\n * ```typescript\n * const config = {\n * gravity: { value: 9.8, min: 0, max: 20, step: 0.1 }\n * };\n * ```\n */\nexport interface TweakNumberConfig {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: number | WritableSignal<number>;\n\t/** Minimum allowed value (enables slider display) */\n\tmin?: number;\n\t/** Maximum allowed value (enables slider display) */\n\tmax?: number;\n\t/** Step increment for the value */\n\tstep?: number;\n}\n\n/**\n * Configuration for a text input control.\n *\n * @example\n * ```typescript\n * const config = {\n * name: { value: 'Object 1' }\n * };\n * ```\n */\nexport interface TweakTextConfig {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: string | WritableSignal<string>;\n}\n\n/**\n * Configuration for a color picker control.\n *\n * @example\n * ```typescript\n * const config = {\n * background: { value: '#ff0000', color: true }\n * };\n * ```\n */\nexport interface TweakColorConfig {\n\t/** The initial color value (as hex string) or a writable signal */\n\tvalue: string | WritableSignal<string>;\n\t/** Marker to identify this as a color input (must be `true`) */\n\tcolor: true;\n}\n\n/**\n * Configuration for a checkbox/boolean control.\n *\n * @example\n * ```typescript\n * const config = {\n * enabled: { value: true }\n * };\n * ```\n */\nexport interface TweakCheckboxConfig {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: boolean | WritableSignal<boolean>;\n}\n\n/**\n * Configuration for a dropdown list/select control.\n *\n * @typeParam T - The type of option values\n *\n * @example\n * ```typescript\n * // With array of options\n * const config = {\n * mode: { value: 'normal', options: ['normal', 'debug', 'performance'] }\n * };\n *\n * // With labeled options\n * const config = {\n * quality: { value: 2, options: { 'Low': 1, 'Medium': 2, 'High': 3 } }\n * };\n * ```\n */\nexport interface TweakListConfig<T> {\n\t/** The initial value or a writable signal for two-way binding */\n\tvalue: T | WritableSignal<T>;\n\t/** Array of options or object mapping labels to values */\n\toptions: T[] | Record<string, T>;\n}\n\n/**\n * Configuration for a 2D/3D/4D point input control.\n *\n * @typeParam TVector - The tuple type for the point dimensions\n *\n * @example\n * ```typescript\n * // 2D point\n * const config = {\n * position: { value: [0, 0] as [number, number] }\n * };\n *\n * // 3D point with axis constraints\n * const config = {\n * position: {\n * value: [0, 0, 0] as [number, number, number],\n * x: { min: -10, max: 10 },\n * y: { min: 0, max: 100 },\n * z: { min: -10, max: 10 }\n * }\n * };\n * ```\n */\nexport interface TweakPointConfig<\n\tTVector extends [number, number] | [number, number, number] | [number, number, number, number] =\n\t\t| [number, number]\n\t\t| [number, number, number]\n\t\t| [number, number, number, number],\n> {\n\t/** The initial point value or a writable signal for two-way binding */\n\tvalue: TVector | WritableSignal<TVector>;\n\t/** Configuration for the X axis (min, max, step, etc.) */\n\tx?: Point2dInputParams['x'];\n\t/** Configuration for the Y axis */\n\ty?: Point2dInputParams['y'];\n\t/** Configuration for the Z axis (3D/4D points only) */\n\tz?: Point3dInputParams['z'];\n\t/** Configuration for the W axis (4D points only) */\n\tw?: Point4dInputParams['w'];\n}\n\n/**\n * Configuration for a button/action control.\n *\n * @example\n * ```typescript\n * const config = {\n * reset: { action: () => this.resetSettings(), label: 'Actions' }\n * };\n * ```\n */\nexport interface TweakButtonConfig {\n\t/** The callback function to execute when the button is clicked */\n\taction: () => void;\n\t/** Optional label displayed next to the button */\n\tlabel?: string;\n}\n\n/**\n * Configuration for a nested folder within the tweaks.\n * Created using the `tweaks.folder()` helper function.\n *\n * @typeParam T - The config type for the folder's contents\n *\n * @example\n * ```typescript\n * const config = {\n * advanced: tweaks.folder('Advanced Settings', {\n * iterations: { value: 4, min: 1, max: 10 },\n * tolerance: { value: 0.001, min: 0, max: 1 }\n * })\n * };\n * ```\n */\nexport interface TweakFolderConfig<T extends TweakConfig> {\n\t/** Internal marker to identify folder configs */\n\t__folder: true;\n\t/** The folder title displayed in the UI */\n\tname: string;\n\t/** The configuration object for controls within the folder */\n\tconfig: T;\n\t/** Whether the folder is initially expanded */\n\texpanded?: boolean;\n}\n\n/**\n * Union of all possible configuration value types for `tweaks()`.\n *\n * Includes:\n * - Primitive values (number, string, boolean)\n * - Writable signals for two-way binding\n * - Typed config objects for each control type\n */\nexport type TweakConfigValue =\n\t| number\n\t| string\n\t| boolean\n\t| WritableSignal<number>\n\t| WritableSignal<string>\n\t| WritableSignal<boolean>\n\t| TweakNumberConfig\n\t| TweakTextConfig\n\t| TweakColorConfig\n\t| TweakCheckboxConfig\n\t| TweakListConfig<unknown>\n\t| TweakPointConfig\n\t| TweakButtonConfig\n\t| TweakFolderConfig<TweakConfig>;\n\n/**\n * A configuration object for `tweaks()`.\n * Maps control names to their configuration values.\n */\nexport type TweakConfig = Record<string, TweakConfigValue>;\n\n// ============================================================================\n// Result Types (what tweaks() returns)\n// ============================================================================\n\n/**\n * Infer the signal type from a config value.\n * Always returns Signal<T> (readonly) - never WritableSignal.\n * Users can use their original WritableSignal if they need write access.\n */\ntype InferSignalType<T> =\n\t// Direct WritableSignal - return readonly Signal\n\tT extends WritableSignal<infer U>\n\t\t? Signal<U>\n\t\t: // Primitive number\n\t\t\tT extends number\n\t\t\t? Signal<number>\n\t\t\t: // Primitive string\n\t\t\t\tT extends string\n\t\t\t\t? Signal<string>\n\t\t\t\t: // Primitive boolean\n\t\t\t\t\tT extends boolean\n\t\t\t\t\t? Signal<boolean>\n\t\t\t\t\t: // Number config\n\t\t\t\t\t\tT extends TweakNumberConfig\n\t\t\t\t\t\t? Signal<number>\n\t\t\t\t\t\t: // Text config\n\t\t\t\t\t\t\tT extends TweakTextConfig\n\t\t\t\t\t\t\t? Signal<string>\n\t\t\t\t\t\t\t: // Color config\n\t\t\t\t\t\t\t\tT extends TweakColorConfig\n\t\t\t\t\t\t\t\t? Signal<string>\n\t\t\t\t\t\t\t\t: // Checkbox config\n\t\t\t\t\t\t\t\t\tT extends TweakCheckboxConfig\n\t\t\t\t\t\t\t\t\t? Signal<boolean>\n\t\t\t\t\t\t\t\t\t: // List config\n\t\t\t\t\t\t\t\t\t\tT extends TweakListConfig<infer U>\n\t\t\t\t\t\t\t\t\t\t? Signal<U>\n\t\t\t\t\t\t\t\t\t\t: // Point config\n\t\t\t\t\t\t\t\t\t\t\tT extends TweakPointConfig<infer VectorType>\n\t\t\t\t\t\t\t\t\t\t\t? Signal<VectorType>\n\t\t\t\t\t\t\t\t\t\t\t: // Button - no return value\n\t\t\t\t\t\t\t\t\t\t\t\tT extends TweakButtonConfig\n\t\t\t\t\t\t\t\t\t\t\t\t? never\n\t\t\t\t\t\t\t\t\t\t\t\t: // Folder - recurse\n\t\t\t\t\t\t\t\t\t\t\t\t\tT extends TweakFolderConfig<infer C>\n\t\t\t\t\t\t\t\t\t\t\t\t\t? TweakResult<C>\n\t\t\t\t\t\t\t\t\t\t\t\t\t: never;\n\n/**\n * The result type returned by `tweaks()` for a given configuration.\n *\n * Maps each config key to a readonly Signal of the appropriate type.\n * Button configs are excluded (they don't return values).\n *\n * @typeParam T - The configuration object type\n */\nexport type TweakResult<T extends TweakConfig> = {\n\t[K in keyof T as T[K] extends TweakButtonConfig ? never : K]: InferSignalType<T[K]>;\n};\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\n/**\n * Checks if a config value is a TweakNumberConfig.\n * @internal\n */\nfunction isNumberConfig(config: TweakConfigValue): config is TweakNumberConfig {\n\tif (typeof config !== 'object' || config === null || !('value' in config)) return false;\n\tif ('color' in config || 'options' in config || 'action' in config || '__folder' in config) return false;\n\tif ('x' in config || 'y' in config) return false;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst value = isSignal(config.value) ? untracked(config.value as Signal<any>) : config.value;\n\treturn typeof value === 'number';\n}\n\n/**\n * Checks if a config value is a TweakTextConfig.\n * @internal\n */\nfunction isTextConfig(config: TweakConfigValue): config is TweakTextConfig {\n\tif (typeof config !== 'object' || config === null || !('value' in config)) return false;\n\tif ('color' in config || 'options' in config || 'action' in config || '__folder' in config) return false;\n\tif ('min' in config || 'max' in config || 'step' in config) return false;\n\tif ('x' in config || 'y' in config) return false;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst value = isSignal(config.value) ? untracked(config.value as Signal<any>) : config.value;\n\treturn typeof value === 'string';\n}\n\n/**\n * Checks if a config value is a TweakColorConfig.\n * @internal\n */\nfunction isColorConfig(config: TweakConfigValue): config is TweakColorConfig {\n\treturn typeof config === 'object' && config !== null && 'color' in config && config.color === true;\n}\n\n/**\n * Checks if a config value is a TweakCheckboxConfig.\n * @internal\n */\nfunction isCheckboxConfig(config: TweakConfigValue): config is TweakCheckboxConfig {\n\tif (typeof config !== 'object' || config === null || !('value' in config)) return false;\n\tif ('color' in config || 'options' in config || 'action' in config || '__folder' in config) return false;\n\tif ('min' in config || 'max' in config || 'step' in config) return false;\n\tif ('x' in config || 'y' in config) return false;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst value = isSignal(config.value) ? untracked(config.value as Signal<any>) : config.value;\n\treturn typeof value === 'boolean';\n}\n\n/**\n * Checks if a config value is a TweakListConfig.\n * @internal\n */\nfunction isListConfig(config: TweakConfigValue): config is TweakListConfig<unknown> {\n\treturn typeof config === 'object' && config !== null && 'options' in config;\n}\n\n/**\n * Checks if a config value is a TweakPointConfig.\n * @internal\n */\nfunction isPointConfig(config: TweakConfigValue): config is TweakPointConfig {\n\treturn (\n\t\ttypeof config === 'object' &&\n\t\tconfig !== null &&\n\t\t'value' in config &&\n\t\t(('x' in config && 'y' in config) ||\n\t\t\t(Array.isArray(config.value) && config.value.length >= 2) ||\n\t\t\t(isSignal(config.value) && Array.isArray(untracked(config.value))))\n\t);\n}\n\n/**\n * Checks if a config value is a TweakButtonConfig.\n * @internal\n */\nfunction isButtonConfig(config: TweakConfigValue): config is TweakButtonConfig {\n\treturn typeof config === 'object' && config !== null && 'action' in config && typeof config.action === 'function';\n}\n\n/**\n * Checks if a config value is a TweakFolderConfig.\n * @internal\n */\nfunction isFolderConfig(config: TweakConfigValue): config is TweakFolderConfig<TweakConfig> {\n\treturn typeof config === 'object' && config !== null && '__folder' in config && config.__folder === true;\n}\n\n// ============================================================================\n// Helper to create folder configs\n// ============================================================================\n\n/**\n * Creates a nested folder configuration for use with `tweaks()`.\n *\n * This helper function creates a folder configuration object that can be\n * used as a value in the `tweaks()` config to organize controls into\n * collapsible groups.\n *\n * @typeParam T - The config type for the folder's contents\n * @param name - The display name/title of the folder\n * @param config - The configuration object for controls within the folder\n * @param options - Optional folder settings\n * @param options.expanded - Whether the folder starts expanded\n * @returns A folder configuration object\n *\n * @example\n * ```typescript\n * const controls = tweaks('Settings', {\n * basic: 42,\n * advanced: tweaks.folder('Advanced', {\n * iterations: { value: 4, min: 1, max: 10 },\n * tolerance: { value: 0.001, min: 0, max: 1, step: 0.001 },\n * }),\n * });\n *\n * // Access nested values\n * controls.advanced.iterations(); // Signal<number>\n * ```\n */\nfunction folder<T extends TweakConfig>(\n\tname: string,\n\tconfig: T,\n\toptions?: { expanded?: boolean },\n): TweakFolderConfig<T> {\n\treturn {\n\t\t__folder: true,\n\t\tname,\n\t\tconfig,\n\t\texpanded: options?.expanded,\n\t};\n}\n\n// ============================================================================\n// Folder Options\n// ============================================================================\n\n/**\n * Options for configuring a `tweaks()` folder.\n */\nexport interface TweakFolderOptions {\n\t/**\n\t * Whether the folder is expanded by default.\n\t * @default false\n\t */\n\texpanded?: boolean;\n\t/**\n\t * Optional injector for use outside an injection context.\n\t * Required when calling `tweaks()` from outside a constructor or field initializer.\n\t */\n\tinjector?: Injector;\n}\n\n// ============================================================================\n// Main tweaks() function\n// ============================================================================\n\n/**\n * Creates Tweakpane controls declaratively from any component within an `ngt-canvas`.\n *\n * **Prerequisites:**\n * 1. Add `tweakpaneAnchor` directive to your `ngt-canvas`:\n * ```html\n * <ngt-canvas tweakpaneAnchor>\n * ```\n * 2. Add `<tweakpane-pane>` somewhere in your scene\n *\n * @param folderName - The name of the folder to create/use\n * @param config - Configuration object defining the controls\n * @param options - Optional folder options (expanded, etc.)\n * @returns An object with signals for each control value\n *\n * @example\n * ```typescript\n * // Basic usage with primitives (creates new signals)\n * const controls = tweaks('Physics', {\n * gravity: 9.8,\n * debug: false,\n * name: 'World',\n * });\n *\n * // With config objects for more control\n * const controls = tweaks('Physics', {\n * gravity: { value: 9.8, min: 0, max: 20, step: 0.1 },\n * color: { value: '#ff0000', color: true },\n * mode: { value: 'normal', options: ['normal', 'debug', 'verbose'] },\n * });\n *\n * // Two-way binding with existing signals\n * filteringEnabled = signal(true);\n * const controls = tweaks('Settings', {\n * filteringEnabled: this.filteringEnabled, // two-way binding\n * });\n *\n * // Buttons (actions)\n * const controls = tweaks('Actions', {\n * reset: { action: () => this.reset() },\n * });\n *\n * // Nested folders\n * const controls = tweaks('Settings', {\n * basic: 42,\n * advanced: tweaks.folder('Advanced', {\n * iterations: { value: 4, min: 1, max: 10 },\n * }),\n * });\n * ```\n */\nexport function tweaks<T extends TweakConfig>(\n\tfolderName: string,\n\tconfig: T,\n\t{ injector, ...options }: TweakFolderOptions = {},\n): TweakResult<T> {\n\treturn assertInjector(tweaks, injector, () => {\n\t\tconst maybeAnchor = inject(TweakpaneAnchor, { optional: true });\n\t\tconst assertedInjector = inject(Injector);\n\t\tconst destroyRef = inject(DestroyRef);\n\n\t\tif (!maybeAnchor) {\n\t\t\tthrow new Error(\n\t\t\t\t'[NGT Tweakpane] tweaks() requires TweakpaneAnchor directive. Add `tweakpaneAnchor` to your ngt-canvas element.',\n\t\t\t);\n\t\t}\n\n\t\tconst anchor = maybeAnchor;\n\n\t\tconst result = {} as Record<string, Signal<unknown> | Record<string, Signal<unknown>>>;\n\t\tconst createdComponents: ComponentRef<TweakpaneAnchorHost>[] = [];\n\n\t\t// Process config and create controls when pane folder is ready\n\t\teffect(\n\t\t\t(onCleanup) => {\n\t\t\t\tconst paneFolder = anchor.paneFolder();\n\t\t\t\tif (!paneFolder) return;\n\n\t\t\t\t// Get or create folder for this tweaks() call\n\t\t\t\tlet folderRef = anchor.folders[folderName];\n\t\t\t\tlet folderInstance: TweakpaneFolder;\n\n\t\t\t\tif (!folderRef) {\n\t\t\t\t\t// Create folder using the directives approach\n\t\t\t\t\tfolderRef = anchor.vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\t\tinjector: Injector.create({\n\t\t\t\t\t\t\tproviders: [{ provide: TweakpaneFolder, useValue: paneFolder }],\n\t\t\t\t\t\t\tparent: assertedInjector,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: TweakpaneFolder,\n\t\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\t\tinputBinding('title', () => folderName),\n\t\t\t\t\t\t\t\t\tinputBinding('expanded', () => options?.expanded ?? false),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t\tfolderInstance = folderRef.injector.get(TweakpaneFolder);\n\t\t\t\t\tanchor.folders[folderName] = folderRef;\n\t\t\t\t\tcreatedComponents.push(folderRef);\n\t\t\t\t} else {\n\t\t\t\t\tfolderInstance = folderRef.injector.get(TweakpaneFolder);\n\t\t\t\t}\n\n\t\t\t\t// Process each config entry\n\t\t\t\tprocessConfig(config, result, folderInstance, anchor.vcr, createdComponents, anchor, assertedInjector);\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\t// Destroy created components\n\t\t\t\t\tfor (const ref of createdComponents) {\n\t\t\t\t\t\tref.destroy();\n\t\t\t\t\t}\n\t\t\t\t\tcreatedComponents.length = 0;\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: assertedInjector },\n\t\t);\n\n\t\t// Cleanup on destroy\n\t\tdestroyRef.onDestroy(() => {\n\t\t\tfor (const ref of createdComponents) {\n\t\t\t\tref.destroy();\n\t\t\t}\n\t\t});\n\n\t\treturn result as TweakResult<T>;\n\t});\n}\n\n/**\n * Attach the folder helper to tweaks for convenient access.\n * Allows usage like `tweaks.folder('Name', config)`.\n */\ntweaks.folder = folder;\n\n// ============================================================================\n// Internal: Process config and create components\n// ============================================================================\n\n/**\n * Processes a configuration object and creates the corresponding Tweakpane controls.\n * This is an internal function called by `tweaks()` to set up the UI.\n *\n * @param config - The configuration object to process\n * @param result - The result object to populate with signals\n * @param parentFolder - The parent folder to add controls to\n * @param vcr - The ViewContainerRef for creating components\n * @param createdComponents - Array to track created component refs for cleanup\n * @param anchor - The TweakpaneAnchor for folder management\n * @param parentInjector - The parent injector for dependency injection\n *\n * @internal\n */\nfunction processConfig(\n\tconfig: TweakConfig,\n\tresult: Record<string, Signal<unknown> | Record<string, Signal<unknown>>>,\n\tparentFolder: TweakpaneFolder,\n\tvcr: ViewContainerRef,\n\tcreatedComponents: ComponentRef<TweakpaneAnchorHost>[],\n\tanchor: TweakpaneAnchor,\n\tparentInjector: Injector,\n): void {\n\tconst keys = Object.keys(config);\n\n\t// Create injector with parent folder provided\n\tconst folderInjector = Injector.create({\n\t\tproviders: [{ provide: TweakpaneFolder, useValue: parentFolder }],\n\t\tparent: parentInjector,\n\t});\n\n\tfor (const key of keys) {\n\t\tconst configValue = config[key];\n\n\t\t// Handle nested folders\n\t\tif (isFolderConfig(configValue)) {\n\t\t\tconst nestedResult = {} as Record<string, Signal<unknown>>;\n\n\t\t\t// Get or create nested folder\n\t\t\tconst nestedFolderName = configValue.name;\n\t\t\tlet nestedFolderRef = anchor.folders[nestedFolderName];\n\t\t\tlet nestedFolderInstance: TweakpaneFolder;\n\n\t\t\tif (!nestedFolderRef) {\n\t\t\t\tnestedFolderRef = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneFolder,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('title', () => nestedFolderName),\n\t\t\t\t\t\t\t\tinputBinding('expanded', () => configValue.expanded ?? false),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tnestedFolderInstance = nestedFolderRef.injector.get(TweakpaneFolder);\n\t\t\t\tanchor.folders[nestedFolderName] = nestedFolderRef;\n\t\t\t\tcreatedComponents.push(nestedFolderRef);\n\t\t\t} else {\n\t\t\t\tnestedFolderInstance = nestedFolderRef.injector.get(TweakpaneFolder);\n\t\t\t}\n\n\t\t\tprocessConfig(\n\t\t\t\tconfigValue.config,\n\t\t\t\tnestedResult,\n\t\t\t\tnestedFolderInstance,\n\t\t\t\tvcr,\n\t\t\t\tcreatedComponents,\n\t\t\t\tanchor,\n\t\t\t\tfolderInjector,\n\t\t\t);\n\t\t\tresult[key] = nestedResult;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle buttons (no result signal)\n\t\tif (isButtonConfig(configValue)) {\n\t\t\tconst buttonRef = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneButton,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('title', () => key),\n\t\t\t\t\t\t\t...(configValue.label ? [inputBinding('label', () => configValue.label)] : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\t// Subscribe to click events\n\t\t\tconst buttonInstance = buttonRef.injector.get(TweakpaneButton);\n\t\t\tbuttonInstance.click.subscribe(() => {\n\t\t\t\tconfigValue.action();\n\t\t\t});\n\t\t\tcreatedComponents.push(buttonRef);\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle direct WritableSignal (two-way binding)\n\t\tif (isSignal(configValue)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tconst untrackedValue = untracked(configValue as WritableSignal<any>);\n\t\t\tconst valueType = typeof untrackedValue;\n\n\t\t\tif (valueType === 'number') {\n\t\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneNumber,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\t\ttwoWayBinding('value', configValue as WritableSignal<number>),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcreatedComponents.push(ref);\n\t\t\t\tresult[key] = (configValue as WritableSignal<number>).asReadonly();\n\t\t\t} else if (valueType === 'string') {\n\t\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneText,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\t\ttwoWayBinding('value', configValue as WritableSignal<string>),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcreatedComponents.push(ref);\n\t\t\t\tresult[key] = (configValue as WritableSignal<string>).asReadonly();\n\t\t\t} else if (valueType === 'boolean') {\n\t\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\t\tinjector: folderInjector,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: TweakpaneCheckbox,\n\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\t\ttwoWayBinding('value', configValue as WritableSignal<boolean>),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcreatedComponents.push(ref);\n\t\t\t\tresult[key] = (configValue as WritableSignal<boolean>).asReadonly();\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle primitive values (create new signal)\n\t\tif (typeof configValue === 'number') {\n\t\t\tconst valueSignal = signal(configValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneNumber,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof configValue === 'string') {\n\t\t\tconst valueSignal = signal(configValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneText,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof configValue === 'boolean') {\n\t\t\tconst valueSignal = signal(configValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneCheckbox,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Handle config objects\n\t\tif (isColorConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as string);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneColor,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isListConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value) ? untracked(configValue.value) : configValue.value;\n\t\t\tconst valueSignal = isSignal(configValue.value)\n\t\t\t\t? (configValue.value as WritableSignal<unknown>)\n\t\t\t\t: signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneList,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\tinputBinding('options', () => configValue.options),\n\t\t\t\t\t\t\ttwoWayBinding('value', valueSignal),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isPointConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value) ? untracked(configValue.value) : configValue.value;\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\t// Build params from x, y, z, w configs\n\t\t\tconst params: Point2dInputParams | Point3dInputParams | Point4dInputParams = {};\n\t\t\tif (configValue.x) (params as Point2dInputParams).x = configValue.x;\n\t\t\tif (configValue.y) (params as Point2dInputParams).y = configValue.y;\n\t\t\tif (configValue.z) (params as Point3dInputParams).z = configValue.z;\n\t\t\tif (configValue.w) (params as Point4dInputParams).w = configValue.w;\n\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpanePoint,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\tinputBinding('params', () => params),\n\t\t\t\t\t\t\ttwoWayBinding(\n\t\t\t\t\t\t\t\t'value',\n\t\t\t\t\t\t\t\tvalueSignal as WritableSignal<\n\t\t\t\t\t\t\t\t\t[number, number] | [number, number, number] | [number, number, number, number]\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isNumberConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as number);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\t// Build params\n\t\t\tconst params: NumberInputParams = {};\n\t\t\tif (configValue.min !== undefined) params.min = configValue.min;\n\t\t\tif (configValue.max !== undefined) params.max = configValue.max;\n\t\t\tif (configValue.step !== undefined) params.step = configValue.step;\n\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneNumber,\n\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\tinputBinding('label', () => key),\n\t\t\t\t\t\t\tinputBinding('params', () => params),\n\t\t\t\t\t\t\ttwoWayBinding('value', valueSignal),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isCheckboxConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as boolean);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneCheckbox,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isTextConfig(configValue)) {\n\t\t\tconst initialValue = isSignal(configValue.value)\n\t\t\t\t? untracked(configValue.value)\n\t\t\t\t: (configValue.value as string);\n\t\t\tconst valueSignal = isSignal(configValue.value) ? configValue.value : signal(initialValue);\n\t\t\tconst ref = vcr.createComponent(TweakpaneAnchorHost, {\n\t\t\t\tinjector: folderInjector,\n\t\t\t\tdirectives: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: TweakpaneText,\n\t\t\t\t\t\tbindings: [inputBinding('label', () => key), twoWayBinding('value', valueSignal)],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tcreatedComponents.push(ref);\n\t\t\tresult[key] = valueSignal.asReadonly();\n\t\t\tcontinue;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TweakpaneTitle","i2.TweakpaneBlade","i1.TweakpaneBlade","i2.TweakpaneDebounce","i3.TweakpaneLabel","i2.TweakpaneLabel","i3.TweakpaneBlade","i1.TweakpaneBinding","i1.TweakpaneFolder"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "angular-three-tweakpane",
|
|
3
|
-
"version": "4.0.0-next.
|
|
3
|
+
"version": "4.0.0-next.118",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
"tslib": "^2.7.0"
|
|
33
33
|
},
|
|
34
34
|
"module": "fesm2022/angular-three-tweakpane.mjs",
|
|
35
|
-
"typings": "
|
|
35
|
+
"typings": "types/angular-three-tweakpane.d.ts",
|
|
36
36
|
"exports": {
|
|
37
37
|
"./package.json": {
|
|
38
38
|
"default": "./package.json"
|
|
39
39
|
},
|
|
40
40
|
".": {
|
|
41
|
-
"types": "./
|
|
41
|
+
"types": "./types/angular-three-tweakpane.d.ts",
|
|
42
42
|
"default": "./fesm2022/angular-three-tweakpane.mjs"
|
|
43
43
|
}
|
|
44
44
|
},
|