{"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/lib/orthographic-camera/orthographic-camera.ts","../../../../libs/soba/cameras/src/lib/perspective-camera/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import {\n  BooleanInput,\n  coerceBooleanProperty,\n  NgtPreObjectInit,\n  provideCommonCameraRef,\n  provideNgtCommonCamera,\n  startWithUndefined,\n  tapEffect,\n} from '@angular-three/core';\nimport { NgtOrthographicCamera } from '@angular-three/core/cameras';\nimport { ChangeDetectionStrategy, Component, Input, NgModule } from '@angular/core';\nimport * as THREE from 'three';\n\n@Component({\n  selector: 'ngt-soba-orthographic-camera',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtCommonCamera(NgtSobaOrthographicCamera), provideCommonCameraRef(NgtSobaOrthographicCamera)],\n})\nexport class NgtSobaOrthographicCamera extends NgtOrthographicCamera {\n  @Input() set makeDefault(makeDefault: BooleanInput) {\n    this.set({ makeDefault: coerceBooleanProperty(makeDefault) });\n  }\n\n  @Input() set manual(manual: BooleanInput) {\n    this.set({ manual: coerceBooleanProperty(manual) });\n  }\n\n  protected override get preObjectInit(): NgtPreObjectInit {\n    return (initFn) => {\n      const size = this.store.get((s) => s.size);\n      this.set((state) => ({\n        left: size.width / -2,\n        right: size.width / 2,\n        top: size.height / 2,\n        bottom: size.height / -2,\n        near: state['near'],\n        far: state['far'],\n      }));\n\n      initFn();\n    };\n  }\n\n  protected override get setOptionsTrigger$() {\n    return this.select((s) => s['manual']).pipe(startWithUndefined());\n  }\n\n  protected override postSetOptions(camera: THREE.OrthographicCamera) {\n    const manual = this.get((s) => s['manual']);\n    if (!manual) {\n      camera.updateProjectionMatrix();\n    }\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.setDefaultCamera(\n          this.select(\n            this.instance$,\n            this.select((s) => s['makeDefault'])\n          )\n        );\n      });\n    });\n  }\n\n  private readonly setDefaultCamera = this.effect(\n    tapEffect(() => {\n      const camera = this.store.get((s) => s.camera);\n      const cameraRef = this.store.get((s) => s.cameraRef);\n      const makeDefault = this.get((s) => s['makeDefault']);\n\n      if (this.instance.value && makeDefault) {\n        const oldCamera = camera;\n        this.store.set({ camera: this.instance.value });\n        cameraRef.set(this.instance.value);\n\n        return () => {\n          this.store.set({ camera: oldCamera });\n          cameraRef.set(oldCamera);\n        };\n      }\n\n      return;\n    })\n  );\n}\n\n@NgModule({\n  imports: [NgtSobaOrthographicCamera],\n  exports: [NgtSobaOrthographicCamera],\n})\nexport class NgtSobaOrthographicCameraModule {}\n","import {\n  BooleanInput,\n  coerceBooleanProperty,\n  provideCommonCameraRef,\n  provideNgtCommonCamera,\n  startWithUndefined,\n  tapEffect,\n} from '@angular-three/core';\nimport { NgtPerspectiveCamera } from '@angular-three/core/cameras';\nimport { ChangeDetectionStrategy, Component, Input, NgModule } from '@angular/core';\nimport * as THREE from 'three';\n\n@Component({\n  selector: 'ngt-soba-perspective-camera',\n  standalone: true,\n  template: `<ng-content></ng-content>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtCommonCamera(NgtSobaPerspectiveCamera), provideCommonCameraRef(NgtSobaPerspectiveCamera)],\n})\nexport class NgtSobaPerspectiveCamera extends NgtPerspectiveCamera {\n  @Input() set makeDefault(makeDefault: BooleanInput) {\n    this.set({ makeDefault: coerceBooleanProperty(makeDefault) });\n  }\n\n  @Input() set manual(manual: BooleanInput) {\n    this.set({ manual: coerceBooleanProperty(manual) });\n  }\n\n  protected override get setOptionsTrigger$() {\n    return this.select(\n      this.select((s) => s['manual']).pipe(startWithUndefined()),\n      this.store.select((s) => s.size)\n    );\n  }\n\n  protected override postSetOptions(camera: THREE.PerspectiveCamera) {\n    const manual = this.get((s) => s['manual']);\n    const size = this.store.get((s) => s.size);\n    if (!manual) {\n      camera.aspect = size.width / size.height;\n      camera.updateProjectionMatrix();\n    }\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.setDefaultCamera(\n          this.select(\n            this.instance$,\n            this.select((s) => s['makeDefault'])\n          )\n        );\n      });\n    });\n  }\n\n  private readonly setDefaultCamera = this.effect(\n    tapEffect(() => {\n      const camera = this.store.get((s) => s.camera);\n      const cameraRef = this.store.get((s) => s.cameraRef);\n      const makeDefault = this.get((s) => s['makeDefault']);\n\n      if (this.instance.value && makeDefault) {\n        const oldCamera = camera;\n        this.store.set({ camera: this.instance.value });\n        cameraRef.set(this.instance.value);\n\n        return () => {\n          this.store.set({ camera: oldCamera });\n          cameraRef.set(oldCamera);\n        };\n      }\n\n      return;\n    })\n  );\n}\n\n@NgModule({\n  imports: [NgtSobaPerspectiveCamera],\n  exports: [NgtSobaPerspectiveCamera],\n})\nexport class NgtSobaPerspectiveCameraModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAoBM,MAAO,yBAA0B,SAAQ,qBAAqB,CAAA;AAPpE,IAAA,WAAA,GAAA;;QAyDmB,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,MAAM,CAC7C,SAAS,CAAC,MAAK;AACb,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;AACrD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEtD,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,WAAW,EAAE;gBACtC,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEnC,gBAAA,OAAO,MAAK;oBACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACtC,oBAAA,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3B,iBAAC,CAAC;AACH,aAAA;YAED,OAAO;SACR,CAAC,CACH,CAAC;KACH;IArEC,IAAa,WAAW,CAAC,WAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC/D;IAED,IAAa,MAAM,CAAC,MAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrD;AAED,IAAA,IAAuB,aAAa,GAAA;QAClC,OAAO,CAAC,MAAM,KAAI;AAChB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACnB,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACrB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;AACrB,gBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;AACpB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB,gBAAA,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;AACnB,gBAAA,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;AAClB,aAAA,CAAC,CAAC,CAAC;AAEJ,YAAA,MAAM,EAAE,CAAC;AACX,SAAC,CAAC;KACH;AAED,IAAA,IAAuB,kBAAkB,GAAA;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;KACnE;AAEkB,IAAA,cAAc,CAAC,MAAgC,EAAA;AAChE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,CAAC,sBAAsB,EAAE,CAAC;AACjC,SAAA;KACF;IAEQ,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAK;gBACtB,IAAI,CAAC,gBAAgB,CACnB,IAAI,CAAC,MAAM,CACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CACrC,CACF,CAAC;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;;sHAhDU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAFzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,sBAAsB,CAAC,yBAAyB,CAAC,CAAC,iDAFvG,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAI1B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,sBAAsB,2BAA2B,EAAE,sBAAsB,2BAA2B,CAAC;iBAClH,CAAA;8BAEc,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;;MAuEK,+BAA+B,CAAA;;4HAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6HAA/B,+BAA+B,EAAA,OAAA,EAAA,CA5E/B,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAAzB,yBAAyB,CAAA,EAAA,CAAA,CAAA;AA4EzB,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,YAHhC,yBAAyB,CAAA,EAAA,CAAA,CAAA;2FAGxB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,OAAO,EAAE,CAAC,yBAAyB,CAAC;iBACrC,CAAA;;;AC5EK,MAAO,wBAAyB,SAAQ,oBAAoB,CAAA;AAPlE,IAAA,WAAA,GAAA;;QA8CmB,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,MAAM,CAC7C,SAAS,CAAC,MAAK;AACb,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;AACrD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEtD,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,WAAW,EAAE;gBACtC,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEnC,gBAAA,OAAO,MAAK;oBACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACtC,oBAAA,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3B,iBAAC,CAAC;AACH,aAAA;YAED,OAAO;SACR,CAAC,CACH,CAAC;KACH;IA1DC,IAAa,WAAW,CAAC,WAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC/D;IAED,IAAa,MAAM,CAAC,MAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrD;AAED,IAAA,IAAuB,kBAAkB,GAAA;AACvC,QAAA,OAAO,IAAI,CAAC,MAAM,CAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAC1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CACjC,CAAC;KACH;AAEkB,IAAA,cAAc,CAAC,MAA+B,EAAA;AAC/D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACzC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AACjC,SAAA;KACF;IAEQ,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAK;gBACtB,IAAI,CAAC,gBAAgB,CACnB,IAAI,CAAC,MAAM,CACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CACrC,CACF,CAAC;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;;qHArCU,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAFxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,sBAAsB,CAAC,wBAAwB,CAAC,CAAC,iDAFrG,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAI1B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,sBAAsB,0BAA0B,EAAE,sBAAsB,0BAA0B,CAAC;iBAChH,CAAA;8BAEc,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;;MA4DK,8BAA8B,CAAA;;2HAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4HAA9B,8BAA8B,EAAA,OAAA,EAAA,CAjE9B,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAAxB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAiExB,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,YAH/B,wBAAwB,CAAA,EAAA,CAAA,CAAA;2FAGvB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,OAAO,EAAE,CAAC,wBAAwB,CAAC;iBACpC,CAAA;;;ACnFD;;AAEG;;;;"}