{"version":3,"file":"ngx-swinging-christmas-balls.mjs","sources":["../../../projects/ngx-swinging-christmas-balls/src/lib/ngx-swinging-christmas-balls.component.ts","../../../projects/ngx-swinging-christmas-balls/src/lib/ngx-swinging-christmas-balls.component.html","../../../projects/ngx-swinging-christmas-balls/src/lib/ngx-swinging-christmas-balls.module.ts","../../../projects/ngx-swinging-christmas-balls/src/public-api.ts","../../../projects/ngx-swinging-christmas-balls/src/ngx-swinging-christmas-balls.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'swinging-christmas-balls',\r\n  templateUrl: './ngx-swinging-christmas-balls.component.html',\r\n  styleUrls: ['./ngx-swinging-christmas-balls.component.scss']\r\n})\r\nexport class NgxSwingingChristmasBallsComponent implements OnInit {\r\n  @Input() count: number = 1;\r\n  @Input() scale: number = 1;\r\n  readonly defaultSize = {\r\n    x: 53,\r\n    y: 90\r\n  }\r\n\r\n  balls : Array<string> = [];\r\n\r\n  ngOnInit(): void {\r\n    this.balls = Array(this.count).fill('').map((x) => {\r\n      let ballScale = this.scale;\r\n      if (this.scale < 0) {\r\n        const min = 0.8;\r\n        const max = 1.2;\r\n        ballScale = Math.random() * (max - min) + min;\r\n      }\r\n      return this.getBallStyle(ballScale);\r\n    });\r\n  }\r\n\r\n  add_swinging_class(e: any) {\r\n    const target = e.target;\r\n    const targetPosX = target.offsetLeft + target.offsetWidth / 2.0;\r\n    const dir = e.x <= targetPosX ? 'right' : 'left';\r\n\r\n    const existedClass: any = Array.from(target.classList).find((x: any) => x.includes('swinging'));\r\n    if (existedClass && !existedClass.includes(dir)) {\r\n      target.style.transform = window.getComputedStyle(target).transform;\r\n      target.classList.remove(existedClass);\r\n    }\r\n\r\n    target.classList.add(`swinging-${dir}`);\r\n  }\r\n\r\n  remove_swinging_class(e: any) {\r\n    const target = e.target;\r\n    const className = Array.from(target.classList).find((x: any) => x.includes('swinging'));\r\n    target.classList.remove(className);\r\n    target.style.transform = null;\r\n  }\r\n\r\n  getBallStyle(scale : number) : string {\r\n    const size = {\r\n      x: this.defaultSize.x * scale,\r\n      y: this.defaultSize.y * scale\r\n    };\r\n    return `width: ${size.x}px; height: ${size.y}px;`;\r\n  }\r\n}\r\n","<div class=\"balls\">\r\n  <div\r\n    *ngFor=\"let ball of balls; index as i\"\r\n    [class]=\"'ball ball-' + (i % 4)\"\r\n    [style]=\"ball\"\r\n    (mouseenter)=\"add_swinging_class($event)\"\r\n    (animationend)=\"remove_swinging_class($event)\"\r\n  ></div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { NgxSwingingChristmasBallsComponent } from './ngx-swinging-christmas-balls.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NgxSwingingChristmasBallsComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    NgxSwingingChristmasBallsComponent\r\n  ]\r\n})\r\nexport class NgxSwingingChristmasBallsModule { }\r\n","/*\r\n * Public API Surface of ngx-swinging-christmas-balls\r\n */\r\n\r\nexport * from './lib/ngx-swinging-christmas-balls.component';\r\nexport * from './lib/ngx-swinging-christmas-balls.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}