{"version":3,"file":"ngx-lil-gui.mjs","sources":["../../../../packages/ngx-lil-gui/src/lib/ngx-lil-gui.component.ts","../../../../packages/ngx-lil-gui/src/lib/ngx-lil-gui-color.component.ts","../../../../packages/ngx-lil-gui/src/lib/ngx-lil-gui-controller.component.ts","../../../../packages/ngx-lil-gui/src/lib/ngx-lil-gui.module.ts","../../../../packages/ngx-lil-gui/src/index.ts","../../../../packages/ngx-lil-gui/src/ngx-lil-gui.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport GUI, { ColorController, Controller } from 'lil-gui';\nimport type {\n  AnyRecord,\n  NgxLilGuiChange,\n  NgxLilGuiColorConfig,\n  NgxLilGuiConfig,\n  NgxLilGuiControllerChange,\n  NgxLilGuiControllerConfig,\n  NgxLilGuiControllerNumberConfig,\n  NgxLilGuiControllerSelectConfig,\n  NgxLilGuiFinishChange,\n} from './types';\n\n@Component({\n  selector: `\n    ngx-lil-gui:not([config]):not([object]),\n    ngx-lil-gui[config]:not([object]),\n    ngx-lil-gui[object]:not([config])\n  `,\n  template: ` <ng-content></ng-content> `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class NgxLilGui implements OnInit, OnDestroy {\n  @Input() zoneless = false;\n  @Input() self = false;\n\n  @Input() autoPlace?: boolean;\n  @Input() container?: HTMLElement | false;\n  @Input() width?: number;\n  @Input() title?: string;\n  @Input() injectStyles?: boolean;\n  @Input() touchStyles?: number;\n\n  @Input() object?: AnyRecord;\n  @Input() config?: NgxLilGuiConfig;\n\n  @Output() guiChange = new EventEmitter<NgxLilGuiChange>();\n  @Output() guiFinishChange = new EventEmitter<NgxLilGuiFinishChange>();\n  @Output() guiReady = new EventEmitter<GUI>();\n\n  #gui!: GUI;\n  #hostElement = inject<ElementRef<HTMLElement>>(ElementRef, {\n    skipSelf: true,\n  });\n  #parentGUI = inject(NgxLilGui, { skipSelf: true, optional: true });\n  #ngZone = inject(NgZone);\n\n  ngOnInit() {\n    this.zoneless = this.#parentGUI?.zoneless ?? this.zoneless;\n    this.run(() => {\n      let container: HTMLElement | undefined =\n        this.container instanceof HTMLElement\n          ? this.container\n          : this.#hostElement.nativeElement;\n\n      if (typeof this.container === 'boolean') {\n        container = undefined;\n      }\n\n      this.#gui = new GUI({\n        container,\n        touchStyles: this.touchStyles,\n        autoPlace: this.autoPlace,\n        injectStyles: this.injectStyles,\n        width: this.width,\n        title: this.title,\n        parent: this.self ? undefined : this.#parentGUI?.gui || undefined,\n      });\n\n      this.#setupEvents();\n\n      if (this.config) {\n        this.#buildGUI(this.config);\n      }\n\n      this.guiReady.emit(this.gui);\n    });\n  }\n\n  get gui(): GUI {\n    return this.#gui;\n  }\n\n  addController(\n    property: string,\n    controllerConfig?: NgxLilGuiControllerConfig[string]\n  ): Controller | undefined {\n    return this.run(() => {\n      if (this.object) {\n        const [, , ...config] = extractControllerConfig(controllerConfig);\n        return this.gui.add(this.object, property, ...config);\n      }\n      return undefined;\n    });\n  }\n\n  addColor(\n    property: string,\n    colorConfig?: NgxLilGuiColorConfig[string]\n  ): ColorController | undefined {\n    return this.run(() => {\n      if (this.object) {\n        return this.gui.addColor(\n          this.object,\n          property,\n          colorConfig?.rgbScale\n        ) as ColorController;\n      }\n\n      return undefined;\n    });\n  }\n\n  run<TReturn = void>(fn: () => TReturn): TReturn {\n    if (this.zoneless) {\n      return this.#ngZone.runOutsideAngular(() => {\n        return fn();\n      });\n    }\n\n    return fn();\n  }\n\n  ngOnDestroy() {\n    this.run(() => {\n      this.#gui.destroy();\n    });\n  }\n\n  #setupEvents() {\n    this.gui.onChange((arg0) => {\n      this.guiChange.emit({ ...arg0, gui: this.gui });\n    });\n\n    this.gui.onFinishChange((arg0) => {\n      this.guiFinishChange.emit({ ...arg0, gui: this.gui });\n    });\n  }\n\n  #buildGUI(config: NgxLilGuiConfig, gui = this.gui) {\n    const { guis, colors, object, controllers } = config as NgxLilGuiConfig;\n\n    for (const [controllerKey, controllerValue] of Object.entries(\n      controllers || {}\n    )) {\n      const [onChange, onFinishChange, ...config] =\n        extractControllerConfig(controllerValue);\n      const controller = gui.add(object, controllerKey, ...config);\n      if (onChange) {\n        controller.onChange((value: any) => {\n          onChange({ value, controller });\n        });\n      }\n\n      if (onFinishChange) {\n        controller.onFinishChange((value: any) => {\n          onFinishChange({ value, controller });\n        });\n      }\n    }\n\n    for (const [colorKey, colorValue] of Object.entries(colors || {})) {\n      const { rgbScale, onChange, onFinishChange } = colorValue;\n      const controller = gui.addColor(object, colorKey, rgbScale);\n      if (onChange) {\n        controller.onChange((value: any) => {\n          onChange({ value, controller });\n        });\n      }\n\n      if (onFinishChange) {\n        controller.onFinishChange((value: any) => {\n          onFinishChange({ value, controller });\n        });\n      }\n    }\n\n    for (const [folderKey, folderConfig] of Object.entries(guis || {})) {\n      const folder = gui.addFolder(folderKey);\n      this.#buildGUI(folderConfig, folder);\n    }\n  }\n}\n\nfunction extractControllerConfig(\n  controllerConfig?: NgxLilGuiControllerConfig[string]\n): [\n  ((arg: NgxLilGuiControllerChange) => void) | undefined,\n  ((arg: NgxLilGuiControllerChange) => void) | undefined,\n  (number | string[] | AnyRecord)?,\n  number?,\n  number?\n] {\n  const config: [\n    ((arg: NgxLilGuiControllerChange) => void) | undefined,\n    ((arg: NgxLilGuiControllerChange) => void) | undefined,\n    (number | string[] | AnyRecord)?,\n    number?,\n    number?\n  ] = [undefined, undefined];\n\n  if (controllerConfig) {\n    config[0] = controllerConfig.onChange;\n    config[1] = controllerConfig.onFinishChange;\n\n    config[2] =\n      (controllerConfig as NgxLilGuiControllerSelectConfig).collection ||\n      (controllerConfig as NgxLilGuiControllerNumberConfig).min;\n\n    config[3] = (controllerConfig as NgxLilGuiControllerNumberConfig).max;\n    config[4] = (controllerConfig as NgxLilGuiControllerNumberConfig).step;\n  }\n\n  return config;\n}\n","import {\n  Directive,\n  EventEmitter,\n  inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { ColorController } from 'lil-gui';\nimport { NgxLilGui } from './ngx-lil-gui.component';\nimport type {\n  NgxLilGuiColorConfig,\n  NgxLilGuiControllerChange,\n  NgxLilGuiControllerFinishChange,\n} from './types';\n\n@Directive({\n  selector: 'ngx-lil-gui-color',\n  standalone: true,\n})\nexport class NgxLilGuiColor implements OnInit, OnDestroy {\n  @Input({ required: true }) property!: string;\n  @Input() colorConfig?: NgxLilGuiColorConfig[string];\n\n  @Output() valueChange = new EventEmitter<NgxLilGuiControllerChange>();\n  @Output() finishChange = new EventEmitter<NgxLilGuiControllerFinishChange>();\n  @Output() colorReady = new EventEmitter<ColorController>();\n  @Output() preAdd = new EventEmitter<void>();\n\n  #colorController?: ColorController;\n\n  get colorController() {\n    return this.#colorController;\n  }\n\n  #parentGui = inject(NgxLilGui, { skipSelf: true, optional: true });\n\n  ngOnInit() {\n    if (!this.#parentGui) {\n      throw new Error('ngx-lil-gui-color must be used within a ngx-lil-gui');\n    }\n\n    this.preAdd.emit();\n\n    this.#colorController = this.#parentGui.addColor(\n      this.property,\n      this.colorConfig\n    );\n    this.#parentGui.run(() => {\n      if (this.colorController) {\n        this.colorController.updateDisplay();\n\n        this.colorController.onChange((value: any) => {\n          this.valueChange.emit({ value, controller: this.colorController! });\n        });\n        this.colorController.onFinishChange((value: any) => {\n          this.finishChange.emit({ value, controller: this.colorController! });\n        });\n        this.colorReady.emit(this.colorController!);\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.colorController) {\n      this.colorController.destroy();\n    }\n  }\n}\n","import {\n  Directive,\n  EventEmitter,\n  inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { Controller } from 'lil-gui';\nimport { NgxLilGui } from './ngx-lil-gui.component';\nimport type {\n  NgxLilGuiControllerChange,\n  NgxLilGuiControllerConfig,\n  NgxLilGuiControllerFinishChange,\n} from './types';\n\n@Directive({\n  selector: 'ngx-lil-gui-controller',\n  standalone: true,\n})\nexport class NgxLilGuiController implements OnInit, OnDestroy {\n  @Input({ required: true }) property!: string;\n  @Input() controllerConfig?: NgxLilGuiControllerConfig[string];\n\n  @Output() valueChange = new EventEmitter<NgxLilGuiControllerChange>();\n  @Output() finishChange = new EventEmitter<NgxLilGuiControllerFinishChange>();\n  @Output() controllerReady = new EventEmitter<Controller>();\n  @Output() preAdd = new EventEmitter<void>();\n\n  #controller?: Controller;\n\n  #parentGui = inject(NgxLilGui, { optional: true, skipSelf: true });\n\n  ngOnInit() {\n    if (!this.#parentGui) {\n      throw new Error(\n        'ngx-lil-gui-controller must be used within a ngx-lil-gui'\n      );\n    }\n\n    this.preAdd.emit();\n\n    this.#controller = this.#parentGui.addController(\n      this.property,\n      this.controllerConfig\n    );\n    this.#parentGui.run(() => {\n      if (this.controller) {\n        this.controller.updateDisplay();\n\n        this.controller.onChange((value: any) => {\n          this.valueChange.emit({ value, controller: this.controller! });\n        });\n        this.controller.onFinishChange((value: any) => {\n          this.finishChange.emit({ value, controller: this.controller! });\n        });\n\n        this.controllerReady.emit(this.controller);\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.controller) {\n      this.controller.destroy();\n    }\n  }\n\n  get controller(): Controller | undefined {\n    return this.#controller;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxLilGuiColor } from './ngx-lil-gui-color.component';\nimport { NgxLilGuiController } from './ngx-lil-gui-controller.component';\nimport { NgxLilGui } from './ngx-lil-gui.component';\n\n/**\n * @description Using standalone components is recommended\n */\n@NgModule({\n  imports: [NgxLilGui, NgxLilGuiController, NgxLilGuiColor],\n  exports: [NgxLilGui, NgxLilGuiController, NgxLilGuiColor],\n})\nexport class NgxLilGuiModule {}\n","/*\n * Public API Surface of ngx-lil-gui\n */\n\nexport * from './lib/ngx-lil-gui.module';\nexport * from './lib/ngx-lil-gui.component';\nexport * from './lib/ngx-lil-gui-color.component';\nexport * from './lib/ngx-lil-gui-controller.component';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}