{"version":3,"file":"angular-three-core-primitive.mjs","sources":["../../../../libs/core/primitive/src/lib/primitive.ts","../../../../libs/core/primitive/src/angular-three-core-primitive.ts"],"sourcesContent":["import {\n  is,\n  NgtObject,\n  NgtObjectPropsState,\n  NgtPreObjectInit,\n  provideNgtObject,\n  provideObjectRef,\n  Ref,\n  tapEffect,\n} from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, Input, NgModule } from '@angular/core';\nimport { filter } from 'rxjs';\nimport * as THREE from 'three';\n\nexport interface NgtPrimitiveState extends NgtObjectPropsState {\n  object: THREE.Object3D;\n}\n\n@Component({\n  selector: 'ngt-primitive[object]',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtObject(NgtPrimitive), provideObjectRef(NgtPrimitive)],\n})\nexport class NgtPrimitive extends NgtObject<THREE.Object3D, NgtPrimitiveState> {\n  @Input() set object(object: THREE.Object3D | Ref<THREE.Object3D>) {\n    if (is.ref(object)) {\n      this.ref = object;\n      this.set({ object: object.value });\n    } else {\n      this.set({ object: object as THREE.Object3D });\n    }\n  }\n\n  get object() {\n    return this.get((s) => s.object);\n  }\n\n  private readonly object$ = this.select((s) => s.object).pipe(filter((object) => object != null));\n\n  protected override objectInitFn(): THREE.Object3D {\n    return this.object as THREE.Object3D;\n  }\n\n  protected override get preObjectInit(): NgtPreObjectInit {\n    return (initFn) => {\n      this.effect<THREE.Object3D>(\n        tapEffect(() => {\n          // TODO: determine whether we should run clean up logic if object is undefined/null\n          initFn();\n        })\n      )(this.object$);\n    };\n  }\n\n  override isPrimitive = true;\n}\n\n@NgModule({\n  imports: [NgtPrimitive],\n  exports: [NgtPrimitive],\n})\nexport class NgtPrimitiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}