{"version":3,"file":"omnedia-ngx-starry-sky.mjs","sources":["../../../projects/ngx-starry-sky/src/lib/ngx-starry-sky.component.ts","../../../projects/ngx-starry-sky/src/lib/ngx-starry-sky.component.html","../../../projects/ngx-starry-sky/src/public-api.ts","../../../projects/ngx-starry-sky/src/omnedia-ngx-starry-sky.ts"],"sourcesContent":["import {CommonModule, isPlatformBrowser} from \"@angular/common\";\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  Inject,\r\n  Input,\r\n  OnDestroy,\r\n  PLATFORM_ID,\r\n  signal,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport {ShootingStar, ShootingStarsProps, StarBackgroundProps, StarProps,} from \"./ngx-starry-sky.types\";\r\n\r\n@Component({\r\n  selector: \"om-starry-sky\",\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: \"./ngx-starry-sky.component.html\",\r\n  styleUrl: \"./ngx-starry-sky.component.scss\",\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgxStarrySkyComponent implements AfterViewInit, OnDestroy {\r\n  @ViewChild(\"OmStarrySkyCanvas\")\r\n  canvasRef!: ElementRef<HTMLCanvasElement>;\r\n\r\n  @ViewChild(\"OmStarrySkySvg\")\r\n  svgRef!: ElementRef<HTMLOrSVGElement>;\r\n\r\n  @ViewChild(\"OmStarrySkyWrapper\")\r\n  wrapperRef!: ElementRef<HTMLElement>;\r\n\r\n  @Input(\"styleClass\")\r\n  styleClass?: string;\r\n\r\n  @Input(\"disableShootingStars\")\r\n  disableShootingStars = false;\r\n\r\n  @Input(\"skyColor\")\r\n  set skyColor(color: string) {\r\n    this.style[\"--om-starry-sky-color\"] = color;\r\n  }\r\n\r\n  @Input(\"starsBackgroundConfig\")\r\n  set starsBackgroundPropsValue(props: StarBackgroundProps) {\r\n    this.starsBackgroundProps = {...this.starsBackgroundProps, ...props};\r\n  }\r\n\r\n  private starsBackgroundProps: StarBackgroundProps = {\r\n    starDensity: 0.00015,\r\n    allStarsTwinkle: true,\r\n    twinkleProbability: 0.7,\r\n    minTwinkleSpeed: 0.5,\r\n    maxTwinkleSpeed: 1,\r\n  };\r\n\r\n  @Input(\"shootingStarsConfig\")\r\n  set shootingStarsPropsValue(props: ShootingStarsProps) {\r\n    this.shootingStarsProps = {...this.shootingStarsProps, ...props};\r\n  }\r\n\r\n  shootingStarsProps: ShootingStarsProps = {\r\n    minSpeed: 10,\r\n    maxSpeed: 30,\r\n    minDelay: 1200,\r\n    maxDelay: 4200,\r\n    starColor: \"#cd8ef8\",\r\n    trailColor: \"#80dffa\",\r\n    starWidth: 10,\r\n    starHeight: 1,\r\n  };\r\n\r\n  shootingStar = signal<ShootingStar | undefined>(undefined);\r\n\r\n  style: any = {};\r\n\r\n  private stars: StarProps[] = [];\r\n\r\n  private isInView = signal(false);\r\n  private isAnimating = signal(false);\r\n  private animationFrameIdSky?: number;\r\n  private animationFrameIdShootingStar?: number;\r\n  private intersectionObserver?: IntersectionObserver;\r\n\r\n  constructor(\r\n    @Inject(PLATFORM_ID) private platformId: object\r\n  ) {\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.initStarSky();\r\n    this.initShootingStars();\r\n\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      this.intersectionObserver = new IntersectionObserver(([entry]) => {\r\n        this.renderContents(entry.isIntersecting);\r\n      });\r\n      this.intersectionObserver.observe(this.canvasRef.nativeElement);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    window.removeEventListener(\"resize\", () => this.setCanvasSize());\r\n\r\n    if (this.intersectionObserver) {\r\n      this.intersectionObserver.disconnect();\r\n    }\r\n\r\n    if (this.animationFrameIdSky) {\r\n      cancelAnimationFrame(this.animationFrameIdSky);\r\n    }\r\n\r\n    if (this.animationFrameIdShootingStar) {\r\n      cancelAnimationFrame(this.animationFrameIdShootingStar);\r\n    }\r\n  }\r\n\r\n  renderContents(isIntersecting: boolean) {\r\n    if (isIntersecting && !this.isInView()) {\r\n      this.isInView.set(true);\r\n\r\n      if (!this.isAnimating()) {\r\n        this.animationFrameIdSky = requestAnimationFrame(() =>\r\n          this.renderStarSky()\r\n        );\r\n        this.animationFrameIdShootingStar = requestAnimationFrame(() =>\r\n          this.moveShootingStar()\r\n        );\r\n      }\r\n    } else if (!isIntersecting) {\r\n      this.isInView.set(false);\r\n    }\r\n  }\r\n\r\n  private initStarSky(): void {\r\n    window.addEventListener(\"resize\", () => this.setCanvasSize());\r\n\r\n    this.setCanvasSize();\r\n    this.updateStars();\r\n    this.renderStarSky();\r\n  }\r\n\r\n  private initShootingStars(): void {\r\n    if (this.disableShootingStars) {\r\n      return;\r\n    }\r\n\r\n    this.createShootingStar();\r\n    this.moveShootingStar();\r\n  }\r\n\r\n  private renderStarSky(): void {\r\n    if (!this.isInView()) {\r\n      this.isAnimating.set(false);\r\n      return;\r\n    }\r\n\r\n    this.isAnimating.set(true);\r\n\r\n    const context = this.canvasRef.nativeElement.getContext(\"2d\");\r\n\r\n    if (!context) {\r\n      return;\r\n    }\r\n\r\n    context.clearRect(\r\n      0,\r\n      0,\r\n      this.canvasRef.nativeElement.width,\r\n      this.canvasRef.nativeElement.height\r\n    );\r\n\r\n    this.stars.forEach((star) => {\r\n      context.beginPath();\r\n      context.arc(star.x, star.y, star.radius, 0, Math.PI * 2);\r\n      context.fillStyle = `rgba(255, 255, 255, ${star.opacity})`;\r\n      context.fill();\r\n\r\n      if (star.twinkleSpeed !== null) {\r\n        star.opacity =\r\n          0.5 +\r\n          Math.abs(Math.sin((Date.now() * 0.001) / star.twinkleSpeed) * 0.5);\r\n      }\r\n    });\r\n\r\n    this.animationFrameIdSky = requestAnimationFrame(() =>\r\n      this.renderStarSky()\r\n    );\r\n  }\r\n\r\n  private updateStars(): void {\r\n    const context = this.canvasRef.nativeElement.getContext(\"2d\");\r\n\r\n    if (!context) {\r\n      return;\r\n    }\r\n\r\n    const {width, height} =\r\n      this.wrapperRef.nativeElement.getBoundingClientRect();\r\n\r\n    this.stars = this.generateStars(width, height);\r\n  }\r\n\r\n  private generateStars(width: number, height: number): StarProps[] {\r\n    const area = width * height;\r\n    const numStars = Math.floor(\r\n      area * (this.starsBackgroundProps.starDensity ?? 0.00015)\r\n    );\r\n    return Array.from({length: numStars}, () => {\r\n      const shouldTwinkle =\r\n        this.starsBackgroundProps.allStarsTwinkle ||\r\n        Math.random() < (this.starsBackgroundProps.twinkleProbability ?? 0.7);\r\n\r\n      return {\r\n        x: Math.random() * width,\r\n        y: Math.random() * height,\r\n        radius: Math.random() * 0.05 + 0.5,\r\n        opacity: Math.random() * 0.5 + 0.5,\r\n        twinkleSpeed: shouldTwinkle\r\n          ? (this.starsBackgroundProps.minTwinkleSpeed ?? 0.5) +\r\n          Math.random() *\r\n          ((this.starsBackgroundProps.maxTwinkleSpeed ?? 1) -\r\n            (this.starsBackgroundProps.minTwinkleSpeed ?? 0.5))\r\n          : null,\r\n      };\r\n    });\r\n  }\r\n\r\n  private setCanvasSize(): void {\r\n    this.canvasRef.nativeElement.width =\r\n      this.wrapperRef.nativeElement.getBoundingClientRect().width;\r\n    this.canvasRef.nativeElement.height =\r\n      this.wrapperRef.nativeElement.getBoundingClientRect().height;\r\n  }\r\n\r\n  private createShootingStar(): void {\r\n    if (this.disableShootingStars) {\r\n      return;\r\n    }\r\n\r\n    const {x, y, angle} = this.getRandomStartPoint();\r\n\r\n    const shootingStar = {\r\n      id: Date.now(),\r\n      x,\r\n      y,\r\n      angle,\r\n      scale: 1,\r\n      speed:\r\n        Math.random() *\r\n        ((this.shootingStarsProps.maxSpeed ?? 30) -\r\n          (this.shootingStarsProps.minSpeed ?? 10)) +\r\n        (this.shootingStarsProps.minSpeed ?? 10),\r\n      distance: 0,\r\n    };\r\n\r\n    this.shootingStar.set(shootingStar);\r\n\r\n    const randomDelay =\r\n      Math.random() *\r\n      ((this.shootingStarsProps.maxDelay ?? 4200) -\r\n        (this.shootingStarsProps.minDelay ?? 1200)) +\r\n      (this.shootingStarsProps.minDelay ?? 1200);\r\n\r\n    setTimeout(() => this.createShootingStar(), randomDelay);\r\n  }\r\n\r\n  private moveShootingStar(): void {\r\n    if (this.disableShootingStars) {\r\n      return;\r\n    }\r\n\r\n    if (!this.isInView()) {\r\n      this.isAnimating.set(false);\r\n      return;\r\n    }\r\n\r\n    this.isAnimating.set(true);\r\n\r\n    this.animationFrameIdShootingStar = requestAnimationFrame(() =>\r\n      this.moveShootingStar()\r\n    );\r\n\r\n    if (!this.shootingStar()) {\r\n      return;\r\n    }\r\n\r\n    const prevStar = Object.assign({}, this.shootingStar());\r\n\r\n    const newX =\r\n      prevStar.x + prevStar.speed * Math.cos((prevStar.angle * Math.PI) / 180);\r\n    const newY =\r\n      prevStar.y + prevStar.speed * Math.sin((prevStar.angle * Math.PI) / 180);\r\n    const newDistance = prevStar.distance + prevStar.speed;\r\n    const newScale = 1 + newDistance / 100;\r\n\r\n    if (\r\n      newX < -20 ||\r\n      newX > this.wrapperRef.nativeElement.offsetWidth + 20 ||\r\n      newY < -20 ||\r\n      newY > this.wrapperRef.nativeElement.offsetHeight + 20\r\n    ) {\r\n      this.shootingStar.set(undefined);\r\n      return;\r\n    }\r\n\r\n    prevStar.x = newX;\r\n    prevStar.y = newY;\r\n    prevStar.distance = newDistance;\r\n    prevStar.scale = newScale;\r\n\r\n    this.shootingStar.set(prevStar);\r\n  }\r\n\r\n  private getRandomStartPoint(): { x: number; y: number; angle: number } {\r\n    const side = Math.floor(Math.random() * 4);\r\n    const offset = Math.random() * this.wrapperRef.nativeElement.offsetWidth;\r\n\r\n    switch (side) {\r\n      case 0:\r\n        return {x: offset, y: 0, angle: 45};\r\n      case 1:\r\n        return {x: this.wrapperRef.nativeElement.offsetWidth, y: offset, angle: 135};\r\n      case 2:\r\n        return {x: offset, y: this.wrapperRef.nativeElement.offsetHeight, angle: 225};\r\n      case 3:\r\n        return {x: 0, y: offset, angle: 315};\r\n      default:\r\n        return {x: 0, y: 0, angle: 45};\r\n    }\r\n  }\r\n}\r\n","<div class=\"om-starry-sky\" [ngStyle]=\"style\" [ngClass]=\"styleClass\" #OmStarrySkyWrapper>\r\n  <div class=\"om-starry-sky-background\">\r\n    <svg #OmStarrySkySvg>\r\n      @if (shootingStar(); as star) {\r\n        <rect [attr.key]=\"star.id\" [attr.x]=\"star.x\" [attr.y]=\"star.y\"\r\n              [attr.width]=\"(shootingStarsProps.starWidth ?? 1) * (star.scale)\"\r\n              [attr.height]=\"shootingStarsProps.starHeight ?? 10\" [attr.fill]=\"'url(#gradient)'\"\r\n              [attr.transform]=\"'rotate(' + star.angle + ', ' + (star.x + (shootingStarsProps.starWidth ?? 1) * star.scale / 2) + ', ' + (star.y + (shootingStarsProps.starHeight ?? 10) / 2) + ')'\">\r\n        </rect>\r\n        <defs>\r\n          <linearGradient id=\"gradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\r\n            <stop offset=\"0%\" [style.stopColor]=\"shootingStarsProps.trailColor\" [style.stopOpacity]=\"'0'\"/>\r\n            <stop offset=\"100%\" [style.stopColor]=\"shootingStarsProps.starColor\" [style.stopOpacity]=\"'1'\"/>\r\n          </linearGradient>\r\n        </defs>\r\n      }\r\n    </svg>\r\n    <canvas #OmStarrySkyCanvas></canvas>\r\n  </div>\r\n\r\n  <ng-content></ng-content>\r\n</div>\r\n","/*\r\n * Public API Surface of ngx-starry-sky\r\n */\r\n\r\nexport * from \"./lib/ngx-starry-sky.component\";\r\nexport * from \"./lib/ngx-starry-sky.types\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}