{"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/soba/controls/src/lib/orbit-controls/orbit-controls.ts","../../../../libs/soba/controls/src/lib/first-person-controls/first-person-controls.ts","../../../../libs/soba/controls/src/lib/fly-controls/fly-controls.ts","../../../../libs/soba/controls/src/lib/transform-controls/transform-controls.ts","../../../../libs/soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  NgtInstance,\n  NgtInstanceState,\n  NgtVector3,\n  NumberInput,\n  provideInstanceRef,\n  provideNgtInstance,\n  tapEffect,\n} from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output } from '@angular/core';\nimport { map, tap } from 'rxjs';\nimport * as THREE from 'three';\nimport { OrbitControls } from 'three-stdlib';\n\nexport interface NgtSobaOrbitControlsState extends NgtInstanceState<OrbitControls> {\n  camera?: THREE.Camera;\n  domElement?: HTMLElement;\n  enableDamping?: boolean;\n  makeDefault?: boolean;\n  regress?: boolean;\n  target?: NgtVector3;\n}\n\n@Component({\n  selector: 'ngt-soba-orbit-controls',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtInstance(NgtSobaOrbitControls), provideInstanceRef(NgtSobaOrbitControls)],\n})\nexport class NgtSobaOrbitControls extends NgtInstance<OrbitControls, NgtSobaOrbitControlsState> {\n  @Input() set enabled(enabled: BooleanInput) {\n    this.set({ enabled: coerceBooleanProperty(enabled) });\n  }\n\n  @Input() set camera(camera: THREE.Camera) {\n    this.set({ camera });\n  }\n\n  @Input() set domElement(domElement: HTMLElement) {\n    this.set({ domElement });\n  }\n\n  @Input() set makeDefault(makeDefault: BooleanInput) {\n    this.set({ makeDefault: coerceBooleanProperty(makeDefault) });\n  }\n\n  @Input() set regress(regress: BooleanInput) {\n    this.set({ regress: coerceBooleanProperty(regress) });\n  }\n\n  @Input() set target(target: NgtVector3) {\n    this.set({ target });\n  }\n\n  @Input() set enableDamping(enableDamping: BooleanInput) {\n    this.set({ enableDamping: coerceBooleanProperty(enableDamping) });\n  }\n\n  @Input() set minDistance(minDistance: NumberInput) {\n    this.set({ minDistance: coerceNumberProperty(minDistance) });\n  }\n\n  @Input() set maxDistance(maxDistance: NumberInput) {\n    this.set({ maxDistance: coerceNumberProperty(maxDistance) });\n  }\n\n  @Input() set minZoom(minZoom: NumberInput) {\n    this.set({ minZoom: coerceNumberProperty(minZoom) });\n  }\n\n  @Input() set maxZoom(maxZoom: NumberInput) {\n    this.set({ maxZoom: coerceNumberProperty(maxZoom) });\n  }\n\n  @Input() set minPolarAngle(minPolarAngle: NumberInput) {\n    this.set({ minPolarAngle: coerceNumberProperty(minPolarAngle) });\n  }\n\n  @Input() set maxPolarAngle(maxPolarAngle: NumberInput) {\n    this.set({ maxPolarAngle: coerceNumberProperty(maxPolarAngle) });\n  }\n\n  @Input() set minAzimuthAngle(minAzimuthAngle: NumberInput) {\n    this.set({ minAzimuthAngle: coerceNumberProperty(minAzimuthAngle) });\n  }\n\n  @Input() set maxAzimuthAngle(maxAzimuthAngle: NumberInput) {\n    this.set({ maxAzimuthAngle: coerceNumberProperty(maxAzimuthAngle) });\n  }\n\n  @Input() set dampingFactor(dampingFactor: NumberInput) {\n    this.set({ dampingFactor: coerceNumberProperty(dampingFactor) });\n  }\n\n  @Input() set enableZoom(enableZoom: BooleanInput) {\n    this.set({ enableZoom: coerceBooleanProperty(enableZoom) });\n  }\n\n  @Input() set zoomSpeed(zoomSpeed: NumberInput) {\n    this.set({ zoomSpeed: coerceNumberProperty(zoomSpeed) });\n  }\n\n  @Input() set enableRotate(enableRotate: BooleanInput) {\n    this.set({ enableRotate: coerceBooleanProperty(enableRotate) });\n  }\n\n  @Input() set rotateSpeed(rotateSpeed: NumberInput) {\n    this.set({ rotateSpeed: coerceNumberProperty(rotateSpeed) });\n  }\n\n  @Input() set enablePan(enablePan: BooleanInput) {\n    this.set({ enablePan: coerceBooleanProperty(enablePan) });\n  }\n\n  @Input() set panSpeed(panSpeed: NumberInput) {\n    this.set({ panSpeed: coerceNumberProperty(panSpeed) });\n  }\n\n  @Input() set screenSpacePanning(screenSpacePanning: BooleanInput) {\n    this.set({\n      screenSpacePanning: coerceBooleanProperty(screenSpacePanning),\n    });\n  }\n\n  @Input() set keyPanSpeed(keyPanSpeed: NumberInput) {\n    this.set({ keyPanSpeed: coerceNumberProperty(keyPanSpeed) });\n  }\n\n  @Input() set autoRotate(autoRotate: BooleanInput) {\n    this.set({ autoRotate: coerceBooleanProperty(autoRotate) });\n  }\n\n  @Input() set autoRotateSpeed(autoRotateSpeed: NumberInput) {\n    this.set({ autoRotateSpeed: coerceNumberProperty(autoRotateSpeed) });\n  }\n\n  @Input() set reverseOrbit(reverseOrbit: BooleanInput) {\n    this.set({ reverseOrbit: coerceBooleanProperty(reverseOrbit) });\n  }\n\n  @Input() set keys(keys: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string }) {\n    this.set({ keys });\n  }\n\n  @Input() set mouseButtons(mouseButtons: { LEFT: THREE.MOUSE; MIDDLE: THREE.MOUSE; RIGHT: THREE.MOUSE }) {\n    this.set({ mouseButtons });\n  }\n\n  @Input() set touches(touches: { ONE: THREE.TOUCH; TWO: THREE.TOUCH }) {\n    this.set({ touches });\n  }\n\n  @Output() change = new EventEmitter<THREE.Event>();\n  @Output() start = new EventEmitter<THREE.Event>();\n  @Output() end = new EventEmitter<THREE.Event>();\n\n  protected override preInit() {\n    this.set((state) => ({\n      enabled: state['enabled'] ?? true,\n      enableDamping: state.enableDamping ?? true,\n      domElement:\n        state.domElement ?? this.store.get((s) => s.events.connected) ?? this.store.get((s) => s.gl.domElement),\n    }));\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        if (!this.get((s) => s.camera)) {\n          this.set(this.store.select((s) => s.camera).pipe(map((camera) => ({ camera }))));\n        }\n\n        this.init(this.select((s) => s.camera));\n        this.setBeforeRender();\n        this.connectDomElement(\n          this.select(\n            this.instance$,\n            this.select((s) => s.domElement)\n          )\n        );\n        this.setEvents(this.instance$);\n        this.setDefaultControls(\n          this.select(\n            this.instance$,\n            this.select((s) => s.makeDefault)\n          )\n        );\n      });\n    });\n  }\n\n  private readonly init = this.effect(\n    tap(() => {\n      const camera = this.get((s) => s.camera);\n      if (camera) {\n        this.prepareInstance(new OrbitControls(camera));\n      }\n    })\n  );\n\n  private readonly setBeforeRender = this.effect<void>(\n    tapEffect(() =>\n      this.store.registerBeforeRender({\n        priority: -1,\n        callback: () => {\n          if (this.instance.value.enabled) {\n            this.instance.value.update();\n          }\n        },\n      })\n    )\n  );\n\n  private readonly connectDomElement = this.effect(\n    tapEffect(() => {\n      const domElement =\n        this.get((s) => s.domElement) ||\n        this.store.get((s) => s.events.connected) ||\n        this.store.get((s) => s.gl.domElement);\n\n      this.instance.value.connect(domElement);\n\n      return () => {\n        this.instance.value.dispose();\n      };\n    })\n  );\n\n  private readonly setEvents = this.effect(\n    tapEffect(() => {\n      const { invalidate, performance } = this.store.get();\n      const regress = this.get((s) => s.regress);\n\n      const changeCallback: (e: THREE.Event) => void = (e) => {\n        invalidate();\n        if (regress) {\n          performance.regress();\n        }\n\n        if (this.change.observed) {\n          this.change.emit(e);\n        }\n      };\n      let startCallback: (e: THREE.Event) => void;\n      let endCallback: (e: THREE.Event) => void;\n\n      this.instance.value.addEventListener('change', changeCallback);\n\n      if (this.start.observed) {\n        startCallback = (event: THREE.Event) => {\n          this.start.emit(event);\n        };\n        this.instance.value.addEventListener('start', startCallback);\n      }\n\n      if (this.end.observed) {\n        endCallback = (event: THREE.Event) => {\n          this.end.emit(event);\n        };\n        this.instance.value.addEventListener('end', endCallback);\n      }\n\n      return () => {\n        this.instance.value.removeEventListener('change', changeCallback);\n        if (endCallback) this.instance.value.removeEventListener('end', endCallback);\n        if (startCallback) this.instance.value.removeEventListener('start', startCallback);\n      };\n    })\n  );\n\n  private readonly setDefaultControls = this.effect(\n    tapEffect(() => {\n      const makeDefault = this.get((s) => s.makeDefault);\n      if (makeDefault) {\n        const oldControls = this.store.get((s) => s.controls);\n        this.store.set({ controls: this.instance.value });\n        return () => {\n          this.store.set({ controls: oldControls });\n        };\n      }\n      return;\n    })\n  );\n\n  protected override get optionFields(): Record<string, boolean> {\n    return {\n      ...super.optionFields,\n      enabled: false,\n      target: true,\n      enableDamping: false,\n      minDistance: true,\n      maxDistance: true,\n      minZoom: true,\n      maxZoom: true,\n      minPolarAngle: true,\n      maxPolarAngle: true,\n      minAzimuthAngle: true,\n      maxAzimuthAngle: true,\n      dampingFactor: true,\n      enableZoom: true,\n      zoomSpeed: true,\n      enableRotate: true,\n      rotateSpeed: true,\n      enablePan: true,\n      panSpeed: true,\n      screenSpacePanning: true,\n      keyPanSpeed: true,\n      autoRotate: true,\n      autoRotateSpeed: true,\n      reverseOrbit: true,\n      keys: true,\n      mouseButtons: true,\n      touches: true,\n    };\n  }\n}\n\n@NgModule({\n  imports: [NgtSobaOrbitControls],\n  exports: [NgtSobaOrbitControls],\n})\nexport class NgtSobaOrbitControlsModule {}\n","import {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  NgtInstance,\n  NgtInstanceState,\n  NumberInput,\n  provideInstanceRef,\n  provideNgtInstance,\n  tapEffect,\n} from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, Input, NgModule } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { FirstPersonControls } from 'three-stdlib';\n\nexport interface NgtSobaFirstPersonControlsState extends NgtInstanceState<FirstPersonControls> {\n  domElement?: HTMLElement;\n}\n\n@Component({\n  selector: 'ngt-soba-first-person-controls',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtInstance(NgtSobaFirstPersonControls), provideInstanceRef(NgtSobaFirstPersonControls)],\n})\nexport class NgtSobaFirstPersonControls extends NgtInstance<FirstPersonControls, NgtSobaFirstPersonControlsState> {\n  @Input() set domElement(domElement: HTMLElement) {\n    this.set({ domElement });\n  }\n\n  @Input() set enabled(enabled: BooleanInput) {\n    this.set({ enabled: coerceBooleanProperty(enabled) });\n  }\n\n  @Input() set movementSpeed(movementSpeed: NumberInput) {\n    this.set({ movementSpeed: coerceNumberProperty(movementSpeed) });\n  }\n\n  @Input() set lookSpeed(lookSpeed: NumberInput) {\n    this.set({ lookSpeed: coerceNumberProperty(lookSpeed) });\n  }\n\n  @Input() set lookVertical(lookVertical: BooleanInput) {\n    this.set({ lookVertical: coerceBooleanProperty(lookVertical) });\n  }\n\n  @Input() set autoForward(autoForward: BooleanInput) {\n    this.set({ autoForward: coerceBooleanProperty(autoForward) });\n  }\n\n  @Input() set activeLook(activeLook: BooleanInput) {\n    this.set({ activeLook: coerceBooleanProperty(activeLook) });\n  }\n\n  @Input() set heightSpeed(heightSpeed: BooleanInput) {\n    this.set({ heightSpeed: coerceBooleanProperty(heightSpeed) });\n  }\n\n  @Input() set heightCoef(heightCoef: NumberInput) {\n    this.set({ heightCoef: coerceNumberProperty(heightCoef) });\n  }\n\n  @Input() set heightMin(heightMin: NumberInput) {\n    this.set({ heightMin: coerceNumberProperty(heightMin) });\n  }\n\n  @Input() set heightMax(heightMax: NumberInput) {\n    this.set({ heightMax: coerceNumberProperty(heightMax) });\n  }\n\n  @Input() set constrainVertical(constrainVertical: BooleanInput) {\n    this.set({\n      constrainVertical: coerceBooleanProperty(constrainVertical),\n    });\n  }\n\n  @Input() set verticalMin(verticalMin: NumberInput) {\n    this.set({ verticalMin: coerceNumberProperty(verticalMin) });\n  }\n\n  @Input() set verticalMax(verticalMax: NumberInput) {\n    this.set({ verticalMax: coerceNumberProperty(verticalMax) });\n  }\n\n  @Input() set mouseDragOn(mouseDragOn: BooleanInput) {\n    this.set({ mouseDragOn: coerceBooleanProperty(mouseDragOn) });\n  }\n\n  protected override preInit() {\n    super.preInit();\n    this.set((state) => ({\n      enabled: state['enabled'] ?? true,\n      domElement:\n        state.domElement ?? this.store.get((s) => s.events.connected) ?? this.store.get((s) => s.gl.domElement),\n    }));\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.init(this.store.select((s) => s.camera));\n        this.setBeforeRender(this.instance$);\n      });\n    });\n  }\n\n  private readonly init = this.effect(\n    tap(() => {\n      const camera = this.store.get((s) => s.camera);\n      const domElement = this.get((s) => s.domElement);\n      this.prepareInstance(new FirstPersonControls(camera, domElement));\n    })\n  );\n\n  private readonly setBeforeRender = this.effect(\n    tapEffect(() =>\n      this.store.registerBeforeRender({\n        priority: -1,\n        callback: ({ delta }) => {\n          if (this.instance.value.enabled) {\n            this.instance.value.update(delta);\n          }\n        },\n      })\n    )\n  );\n\n  protected override get optionFields(): Record<string, boolean> {\n    return {\n      ...super.optionFields,\n      enabled: false,\n      movementSpeed: true,\n      lookSpeed: true,\n      lookVertical: true,\n      autoForward: true,\n      activeLook: true,\n      heightSpeed: true,\n      heightCoef: true,\n      heightMin: true,\n      heightMax: true,\n      constrainVertical: true,\n      verticalMin: true,\n      verticalMax: true,\n      mouseDragOn: true,\n    };\n  }\n}\n\n@NgModule({\n  imports: [NgtSobaFirstPersonControls],\n  exports: [NgtSobaFirstPersonControls],\n})\nexport class NgtSobaFirstPersonControlsModule {}\n","import {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  NgtInstance,\n  NgtInstanceState,\n  NumberInput,\n  provideInstanceRef,\n  provideNgtInstance,\n  tapEffect,\n} from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { FlyControls } from 'three-stdlib';\n\nexport interface NgtSobaFlyControlsState extends NgtInstanceState<FlyControls> {\n  domElement?: HTMLElement;\n}\n\n@Component({\n  selector: 'ngt-soba-fly-controls',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtInstance(NgtSobaFlyControls), provideInstanceRef(NgtSobaFlyControls)],\n})\nexport class NgtSobaFlyControls extends NgtInstance<FlyControls, NgtSobaFlyControlsState> {\n  @Input() set domElement(domElement: HTMLElement) {\n    this.set({ domElement });\n  }\n\n  @Input() set movementSpeed(movementSpeed: NumberInput) {\n    this.set({ movementSpeed: coerceNumberProperty(movementSpeed) });\n  }\n\n  @Input() set rollSpeed(rollSpeed: NumberInput) {\n    this.set({ rollSpeed: coerceNumberProperty(rollSpeed) });\n  }\n\n  @Input() set dragToLook(dragToLook: BooleanInput) {\n    this.set({ dragToLook: coerceBooleanProperty(dragToLook) });\n  }\n\n  @Input() set autoForward(autoForward: BooleanInput) {\n    this.set({ autoForward: coerceBooleanProperty(autoForward) });\n  }\n\n  @Output() change = new EventEmitter<THREE.Event>();\n\n  protected override preInit() {\n    super.preInit();\n    this.set((state) => ({\n      domElement:\n        state.domElement ?? this.store.get((s) => s.events.connected) ?? this.store.get((s) => s.gl.domElement),\n    }));\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.init(this.store.select((s) => s.camera));\n        this.setup(this.instance$);\n      });\n    });\n  }\n\n  private readonly init = this.effect(\n    tap(() => {\n      const camera = this.store.get((s) => s.camera);\n      const domElement = this.get((s) => s.domElement) as HTMLElement;\n      this.prepareInstance(new FlyControls(camera, domElement));\n    })\n  );\n\n  private readonly setup = this.effect(\n    tapEffect(() => {\n      const unregister = this.store.registerBeforeRender({\n        callback: ({ delta }) => {\n          this.instance.value?.update(delta);\n        },\n      });\n\n      const callback = (event: THREE.Event) => {\n        const invalidate = this.store.get((s) => s.invalidate);\n        invalidate();\n        if (this.change.observed) {\n          this.change.emit(event);\n        }\n      };\n\n      this.instance.value?.addEventListener('change', callback);\n\n      return () => {\n        unregister();\n        this.instance.value?.removeEventListener('change', callback);\n      };\n    })\n  );\n\n  protected override get optionFields(): Record<string, boolean> {\n    return {\n      ...super.optionFields,\n      movementSpeed: true,\n      rollSpeed: true,\n      dragToLook: true,\n      autoForward: true,\n    };\n  }\n}\n\n@NgModule({\n  imports: [NgtSobaFlyControls],\n  exports: [NgtSobaFlyControls],\n})\nexport class NgtSobaFlyControlsModule {}\n","import {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  is,\n  NgtObjectPassThrough,\n  NgtObjectProps,\n  NgtObjectPropsState,\n  NumberInput,\n  provideNgtObject,\n  provideObjectHostRef,\n  provideObjectRef,\n  Ref,\n  startWithUndefined,\n  tapEffect,\n} from '@angular-three/core';\nimport { NgtGroup } from '@angular-three/core/group';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  Directive,\n  EventEmitter,\n  Input,\n  NgModule,\n  Output,\n  TemplateRef,\n} from '@angular/core';\nimport { animationFrameScheduler, observeOn, pipe, tap } from 'rxjs';\nimport * as THREE from 'three';\nimport { TransformControls } from 'three-stdlib';\n\ntype ControlsProto = {\n  enabled: boolean;\n};\n\n@Directive({\n  selector: 'ng-template[ngt-soba-transform-controls-content]',\n  standalone: true,\n})\nexport class NgtSobaTransformControlsContent {\n  constructor(public templateRef: TemplateRef<{ group: Ref<THREE.Group> }>) {}\n\n  static ngTemplateContextGuard(dir: NgtSobaTransformControlsContent, ctx: any): ctx is { group: Ref<THREE.Group> } {\n    return true;\n  }\n}\n\nexport interface NgtSobaTransformControlsState extends NgtObjectPropsState<TransformControls> {\n  groupRef: Ref<THREE.Group>;\n\n  object?: THREE.Object3D | Ref<THREE.Object3D>;\n  camera?: THREE.Camera;\n\n  enabled?: boolean;\n  domElement?: HTMLElement;\n  axis?: string | null;\n  mode?: string;\n  translationSnap?: number | null;\n  rotationSnap?: number | null;\n  scaleSnap?: number | null;\n  space?: string;\n  size?: number;\n  showX?: boolean;\n  showY?: boolean;\n  showZ?: boolean;\n}\n\n@Component({\n  selector: 'ngt-soba-transform-controls',\n  standalone: true,\n  template: `\n    <ngt-group [ngtObjectPassThrough]=\"this\" [ref]=\"groupRef\">\n      <ng-container\n        *ngIf=\"content\"\n        [ngTemplateOutlet]=\"content.templateRef\"\n        [ngTemplateOutletContext]=\"{ group: groupRef }\"\n      ></ng-container>\n    </ngt-group>\n    <ng-content></ng-content>\n  `,\n  imports: [NgtGroup, NgtObjectPassThrough, NgIf, NgTemplateOutlet],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    provideNgtObject(NgtSobaTransformControls),\n    provideObjectRef(NgtSobaTransformControls, (controls) => controls.groupRef),\n    provideObjectHostRef(NgtSobaTransformControls),\n  ],\n})\nexport class NgtSobaTransformControls extends NgtObjectProps<TransformControls, NgtSobaTransformControlsState> {\n  @Input() set object(object: THREE.Object3D | Ref<THREE.Object3D>) {\n    this.set({ object });\n  }\n\n  @Input() set camera(camera: THREE.Camera) {\n    this.set({ camera });\n  }\n\n  @Input() set enabled(enabled: boolean) {\n    this.set({ enabled });\n  }\n\n  @Input() set domElement(domElement: HTMLElement) {\n    this.set({ domElement });\n  }\n\n  @Input() set axis(axis: string | null) {\n    this.set({ axis });\n  }\n\n  @Input() set mode(mode: string) {\n    this.set({ mode });\n  }\n\n  @Input() set translationSnap(translationSnap: NumberInput | null) {\n    this.set({ translationSnap: coerceNumberProperty(translationSnap) });\n  }\n\n  @Input() set rotationSnap(rotationSnap: NumberInput | null) {\n    this.set({ rotationSnap: coerceNumberProperty(rotationSnap) });\n  }\n\n  @Input() set scaleSnap(scaleSnap: NumberInput | null) {\n    this.set({ scaleSnap: coerceNumberProperty(scaleSnap) });\n  }\n\n  @Input() set space(space: string) {\n    this.set({ space });\n  }\n\n  @Input() set size(size: NumberInput) {\n    this.set({ size: coerceNumberProperty(size) });\n  }\n\n  @Input() set showX(showX: BooleanInput) {\n    this.set({ showX: coerceBooleanProperty(showX) });\n  }\n\n  @Input() set showY(showY: BooleanInput) {\n    this.set({ showY: coerceBooleanProperty(showY) });\n  }\n\n  @Input() set showZ(showZ: BooleanInput) {\n    this.set({ showZ: coerceBooleanProperty(showZ) });\n  }\n\n  @Output() change = new EventEmitter<THREE.Event>();\n  @Output() mousedown = new EventEmitter<THREE.Event>();\n  @Output() mouseup = new EventEmitter<THREE.Event>();\n  @Output() objectChange = new EventEmitter<THREE.Event>();\n\n  @ContentChild(NgtSobaTransformControlsContent)\n  content?: NgtSobaTransformControlsContent;\n\n  override shouldPassThroughRef = false;\n\n  protected override preInit() {\n    super.preInit();\n    this.set((state) => ({\n      groupRef: new Ref(),\n      enabled: state.enabled ?? true,\n      camera: state.camera ?? this.store.get((s) => s.camera),\n      domElement:\n        state.domElement ?? this.store.get((s) => s.events.connected) ?? this.store.get((s) => s.gl.domElement),\n    }));\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.init(\n          this.select(\n            this.select((s) => s.camera),\n            this.select((s) => s.domElement)\n          )\n        );\n        this.attachObject(\n          this.select(this.instance$, this.select((s) => s.object).pipe(startWithUndefined()), this.groupRef)\n        );\n        this.setDraggingEvent(\n          this.select(\n            this.instance$,\n            this.store.select((s) => s.controls)\n          )\n        );\n        this.setEvents(this.instance$);\n      });\n    });\n  }\n\n  private readonly init = this.effect(\n    tap(() => {\n      this.set((state) => ({\n        camera: state.camera ?? this.store.get((s) => s.camera),\n        domElement:\n          state.domElement ?? this.store.get((s) => s.events.connected) ?? this.store.get((s) => s.gl.domElement),\n      }));\n\n      const { camera, domElement } = this.get();\n      this.prepareInstance(new TransformControls(camera as THREE.Camera, domElement));\n    })\n  );\n\n  private readonly attachObject = this.effect(\n    pipe(\n      observeOn(animationFrameScheduler),\n      tapEffect(() => {\n        const scene = this.store.get((s) => s.scene);\n        const { groupRef, object } = this.get();\n        if (object) {\n          this.instance.value.attach(is.ref(object) ? object.value : object);\n        } else if (groupRef.value) {\n          this.instance.value.attach(groupRef.value);\n        }\n\n        if (!scene.children.some((child) => child.uuid === this.instance.value.uuid)) {\n          scene.add(this.instance.value);\n        }\n\n        return ({ complete }) => {\n          this.instance.value.detach();\n          if (complete) {\n            scene.remove(this.instance.value);\n          }\n        };\n      })\n    )\n  );\n\n  private readonly setDraggingEvent = this.effect(\n    tapEffect(() => {\n      const defaultControls = this.store.get((s) => s.controls) as unknown as ControlsProto;\n      if (defaultControls) {\n        const callback = (event: THREE.Event) => (defaultControls.enabled = !event['value']);\n        this.instance.value.addEventListener('dragging-changed', callback);\n        return () => this.instance.value.removeEventListener('dragging-changed', callback);\n      }\n      return;\n    })\n  );\n\n  private readonly setEvents = this.effect(\n    tapEffect(() => {\n      const invalidate = this.store.get((s) => s.invalidate);\n      const callback = (event: THREE.Event) => {\n        invalidate();\n        if (this.change.observed) {\n          this.change.emit(event);\n        }\n      };\n\n      this.instance.value?.addEventListener('change', callback);\n\n      const boundMouseDown = this.mousedown.emit.bind(this.mousedown);\n      const boundMouseUp = this.mouseup.emit.bind(this.mouseup);\n      const boundObjectChange = this.objectChange.emit.bind(this.objectChange);\n\n      if (this.mousedown.observed) {\n        this.instance.value?.addEventListener('mouseDown', boundMouseDown);\n      }\n\n      if (this.mouseup.observed) {\n        this.instance.value?.addEventListener('mouseUp', boundMouseUp);\n      }\n\n      if (this.objectChange.observed) {\n        this.instance.value?.addEventListener('objectChange', boundObjectChange);\n      }\n\n      return () => {\n        this.instance.value?.removeEventListener('change', callback);\n        if (this.mousedown.observed) {\n          this.instance.value?.removeEventListener('mouseDown', boundMouseDown);\n        }\n\n        if (this.mouseup.observed) {\n          this.instance.value?.removeEventListener('mouseUp', boundMouseUp);\n        }\n\n        if (this.objectChange.observed) {\n          this.instance.value?.removeEventListener('objectChange', boundObjectChange);\n        }\n      };\n    })\n  );\n\n  protected override get optionFields(): Record<string, boolean> {\n    return {\n      ...super.optionFields,\n      enabled: false,\n      axis: true,\n      mode: true,\n      translationSnap: true,\n      rotationSnap: true,\n      scaleSnap: true,\n      space: true,\n      size: true,\n      showX: true,\n      showY: true,\n      showZ: true,\n    };\n  }\n\n  get groupRef() {\n    return this.get((s) => s.groupRef);\n  }\n}\n\n@NgModule({\n  imports: [NgtSobaTransformControls, NgtSobaTransformControlsContent],\n  exports: [NgtSobaTransformControls, NgtSobaTransformControlsContent],\n})\nexport class NgtSobaTransformControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}