{"version":3,"file":"obliczeniowo-elementary-ball-progress-bar.mjs","sources":["../../../../projects/components/ball-progress-bar/status-bar/ball-progress-bar.component.ts","../../../../projects/components/ball-progress-bar/status-bar/ball-progress-bar.component.html","../../../../projects/components/ball-progress-bar/ball-progress-bar.module.ts","../../../../projects/components/ball-progress-bar/obliczeniowo-elementary-ball-progress-bar.ts"],"sourcesContent":["import {\r\n  Component,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  OnDestroy,\r\n  effect,\r\n  model,\r\n  input,\r\n} from '@angular/core';\r\n\r\nimport { interval } from 'rxjs';\r\nimport { ColorRGB } from '@obliczeniowo/elementary/classes';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n    selector: 'obl-ball-progress-bar',\r\n    templateUrl: './ball-progress-bar.component.html',\r\n    styleUrls: ['./ball-progress-bar.component.scss'],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            multi: true,\r\n            useExisting: BallProgressBarComponent,\r\n        },\r\n    ],\r\n    standalone: false\r\n})\r\nexport class BallProgressBarComponent\r\n  implements AfterViewInit, OnDestroy, ControlValueAccessor\r\n{\r\n  private spinnerTimer: any;\r\n  angle = 0;\r\n\r\n  private readonly pStartColor: ColorRGB = new ColorRGB(255, 200, 0);\r\n  private readonly pEndColor: ColorRGB = new ColorRGB(0, 200, 255);\r\n  /** id suffix */\r\n  protected readonly suffix = Math.floor(Math.random() * 10000000);\r\n\r\n  protected readonly clipId = 'ClipEllipseRect' + this.suffix;\r\n  protected readonly clipEllipse = 'ClipEllipse' + this.suffix;\r\n  protected readonly arrowsGradientIdA = 'arrowsGradientA' + this.suffix;\r\n  protected readonly arrowsGradientIdB = 'arrowsGradientB' + this.suffix;\r\n  protected readonly effect3dId = 'effect3did' + this.suffix;\r\n  protected readonly radialGradientId = 'radialGradientId' + this.suffix;\r\n  protected readonly radialGradientId2 = 'radialGradientId2' + this.suffix;\r\n  protected readonly radialGradientId3 = 'radialGradientId3' + this.suffix;\r\n  protected readonly effect3dClipPathId = 'effect3dClipPathId' + this.suffix;\r\n  protected readonly reflectGradientId = 'reflectGradientId' + this.suffix;\r\n  protected readonly radialGradientSubId3 =\r\n    'radialGradientSubId3' + this.suffix;\r\n\r\n  protected readonly spinningElementId = 'spinningElementId' + this.suffix;\r\n\r\n  arrowsColor = 'white';\r\n\r\n  touched = false;\r\n\r\n  onChange = (value: number) => {};\r\n\r\n  onTouched = () => {};\r\n\r\n  writeValue(value: number): void {\r\n    this.value.set(value);\r\n  }\r\n\r\n  registerOnChange(onChange: any): void {\r\n    this.onChange = onChange;\r\n  }\r\n\r\n  registerOnTouched(onTouched: any): void {\r\n    this.onTouched = onTouched;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  markAsTouched(): void {\r\n    if (!this.touched) {\r\n      this.onTouched();\r\n      this.touched = true;\r\n    }\r\n  }\r\n\r\n  value = model<number>(100);\r\n\r\n  effect3d = input<boolean>(true);\r\n\r\n  set ballFillColor(color: string) {\r\n    if (this.elementRef) {\r\n      (\r\n        this.elementRef.nativeElement.querySelector('#ballValue') as HTMLElement\r\n      ).style.fill = color;\r\n    }\r\n  }\r\n\r\n  constructor(private readonly elementRef: ElementRef<HTMLElement>) {\r\n    effect(() => {\r\n      this.set();\r\n    });\r\n\r\n    effect(() => {\r\n      this.setEffect();\r\n    });\r\n  }\r\n\r\n  protected setEffect() {\r\n    if (this.elementRef) {\r\n      const effect = this.elementRef.nativeElement.querySelector(\r\n        '#' + this.effect3dId\r\n      ) as HTMLElement;\r\n      if (effect) {\r\n        effect.style.display = this.effect3d() ? 'initial' : 'none';\r\n      }\r\n    }\r\n  }\r\n\r\n  protected set() {\r\n    const value = this.value();\r\n    this.markAsTouched();\r\n    this.onChange(value);\r\n\r\n    if (!this.elementRef) {\r\n      return;\r\n    }\r\n\r\n    (\r\n      this.elementRef.nativeElement.querySelector(\r\n        `#${this.clipId}`\r\n      ) as HTMLElement\r\n    )?.setAttribute('height', ((30 * value) / 100).toString());\r\n    (\r\n      this.elementRef.nativeElement.querySelector(\r\n        `#${this.clipId}`\r\n      ) as HTMLElement\r\n    )?.setAttribute('y', (37 - (30 * value) / 100).toString());\r\n\r\n    const color: string = ColorRGB.proportionalColor(\r\n      this.pStartColor,\r\n      this.pEndColor,\r\n      value / 100\r\n    ).toString();\r\n\r\n    this.arrowsColor = color;\r\n    this.ballFillColor = color;\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.elementRef.nativeElement\r\n      .querySelector('#ballValue')\r\n      ?.setAttribute('clip-path', `url(#${this.clipEllipse})`);\r\n    this.set();\r\n    this.setEffect();\r\n\r\n    this.spinnerTimer = interval(100).subscribe(() => {\r\n      this.angle = (this.angle + 15) % 360;\r\n\r\n      const spinner = this.elementRef.nativeElement.querySelector(\r\n        '#' + this.spinningElementId\r\n      );\r\n\r\n      if (spinner) {\r\n        spinner.setAttribute('transform', `rotate(${this.angle}, 22, 22)`);\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.spinnerTimer.unsubscribe();\r\n  }\r\n}\r\n","<svg width=\"100%\" viewBox=\"0 0 44 44\">\r\n  <defs>\r\n    <clipPath [id]=\"clipEllipse\">\r\n      <rect\r\n        [id]=\"clipId\"\r\n        width=\"30\"\r\n        height=\"30\"\r\n        x=\"7\"\r\n        y=\"7\"\r\n      />\r\n    </clipPath>\r\n    <linearGradient\r\n      [id]=\"arrowsGradientIdA\"\r\n      x1=\"-25\"\r\n      y1=\"82.565887\"\r\n      x2=\"110\"\r\n      y2=\"97.519684\"\r\n      gradientUnits=\"userSpaceOnUse\"\r\n      gradientTransform=\"matrix(0.26458333,0,0,0.26458333,7.2193457,6.784673)\"\r\n    >\r\n      <stop\r\n        style=\"stop-opacity: 1\"\r\n        [style.stopColor]=\"arrowsColor\"\r\n        offset=\"0\"\r\n      />\r\n      <stop\r\n        style=\"stop-opacity: 0\"\r\n        [style.stopColor]=\"arrowsColor\"\r\n        offset=\"1\"\r\n      />\r\n    </linearGradient>\r\n    <linearGradient\r\n      [id]=\"arrowsGradientIdB\"\r\n      x1=\"135\"\r\n      y1=\"17.519686\"\r\n      x2=\"5\"\r\n      y2=\"2.519685\"\r\n      gradientUnits=\"userSpaceOnUse\"\r\n      gradientTransform=\"matrix(0.26458333,0,0,0.26458333,7.2193457,6.784673)\"\r\n    >\r\n      <stop\r\n        style=\"stop-opacity: 1\"\r\n        [style.stopColor]=\"arrowsColor\"\r\n        offset=\"0\"\r\n      />\r\n      <stop\r\n        style=\"stop-opacity: 0\"\r\n        [style.stopColor]=\"arrowsColor\"\r\n        offset=\"1\"\r\n      />\r\n    </linearGradient>\r\n    <radialGradient\r\n      [id]=\"radialGradientId\"\r\n      gradientUnits=\"userSpaceOnUse\"\r\n      gradientTransform=\"matrix(1.1262622,-0.03022646,0.03049644,1.1363218,-40.670291,-60.03214)\"\r\n      cx=\"204.77902\"\r\n      cy=\"485.77628\"\r\n      fx=\"204.77902\"\r\n      fy=\"485.77628\"\r\n      r=\"138.66203\"\r\n    >\r\n      <stop style=\"stop-color: #ffffff; stop-opacity: 0\" offset=\"0\" />\r\n      <stop\r\n        offset=\"0.5\"\r\n        style=\"stop-color: #787878; stop-opacity: 0.09803922\"\r\n      />\r\n      <stop style=\"stop-opacity: 1\" offset=\"1\" class=\"radialEnd\" />\r\n    </radialGradient>\r\n    <radialGradient>\r\n      [id]=\"radialGradientId3\" gradientUnits=\"userSpaceOnUse\"\r\n      gradientTransform=\"matrix(0.80638073,0.7197474,-3.3469402,3.7497994,2007.9864,-1714.776)\"\r\n      cx=\"116.00802\" cy=\"593.23584\" fx=\"116.00802\" fy=\"593.23584\" r=\"139.16203\"\r\n      >\r\n      <stop offset=\"0\" style=\"stop-color: #ffffff; stop-opacity: 1\" />\r\n      <stop style=\"stop-color: #000000; stop-opacity: 0\" offset=\"1\" />\r\n    </radialGradient>\r\n\r\n    <linearGradient\r\n      [id]=\"reflectGradientId\"\r\n      gradientUnits=\"userSpaceOnUse\"\r\n      x1=\"293.89664\"\r\n      y1=\"514.65094\"\r\n      x2=\"257.98483\"\r\n      y2=\"984.18085\"\r\n    >\r\n      <stop offset=\"0\" style=\"stop-color: #ffffff; stop-opacity: 1\" />\r\n      <stop offset=\"1\" style=\"stop-color: #ffffff; stop-opacity: 0\" />\r\n    </linearGradient>\r\n    <radialGradient\r\n      [id]=\"radialGradientId2\"\r\n      gradientUnits=\"userSpaceOnUse\"\r\n      gradientTransform=\"matrix(1.7056945,-0.04577718,0.04618605,1.7209295,-95.609541,-412.17419)\"\r\n      cx=\"204.77902\"\r\n      cy=\"485.77628\"\r\n      fx=\"204.77902\"\r\n      fy=\"485.77628\"\r\n      r=\"138.66203\"\r\n    >\r\n      <stop style=\"stop-color: #ffffff; stop-opacity: 0\" offset=\"0\" />\r\n      <stop\r\n        offset=\"0.5\"\r\n        style=\"stop-color: #787878; stop-opacity: 0.09803922\"\r\n      />\r\n      <stop style=\"stop-color: #000000; stop-opacity: 1\" offset=\"1\" />\r\n    </radialGradient>\r\n  </defs>\r\n\r\n  <g inkscape:label=\"Layer 1\" inkscape:groupmode=\"layer\" id=\"layer1\">\r\n    <circle\r\n      style=\"fill: #5fbcd3; stroke: #000000; stroke-width: 0.4\"\r\n      id=\"ballValue\"\r\n      cx=\"22\"\r\n      cy=\"22\"\r\n      r=\"15\"\r\n      [attr.clipPath]=\"'url(#' + clipEllipse + ')'\"\r\n    />\r\n    <circle\r\n      style=\"\r\n        opacity: 1;\r\n        fill: none;\r\n        fill-opacity: 1;\r\n        stroke: #216778;\r\n        stroke-width: 0.39687499;\r\n        stroke-linecap: butt;\r\n        stroke-linejoin: miter;\r\n        stroke-miterlimit: 4;\r\n        stroke-dasharray: none;\r\n        stroke-dashoffset: 0;\r\n        stroke-opacity: 1;\r\n      \"\r\n      cx=\"22\"\r\n      cy=\"22\"\r\n      r=\"15\"\r\n    />\r\n    <g [id]=\"spinningElementId\">\r\n      <path\r\n        d=\"M 3.2505956,15.388802 0.60476228,22.003386 H 2.1354182 C 2.2384003,31.823541 9.4801153,40.20366 19.278045,41.653865 27.741221,42.906514 35.876479,38.657621 39.833378,31.438986 L 37.689324,30.882947 C 34.067131,37.052777 26.982536,40.630531 19.592238,39.536683 10.82957,38.239709 4.3762188,30.781912 4.2748226,22.003386 H 5.896429 Z\"\r\n        [style.fill]=\"'url(#' + arrowsGradientIdA + ')'\"\r\n        style=\"stroke-width: 0.4\"\r\n      />\r\n      <path\r\n        d=\"M 24.793987,2.3529021 C 34.591913,3.8031069 41.833628,12.18323 41.936609,22.003386 h 1.530657 l -2.645833,6.614583 -2.645834,-6.614583 h 1.621608 C 39.69581,13.224859 33.242458,5.7670596 24.479795,4.4700855 17.18015,3.3896542 10.17831,6.8670082 6.517063,12.897996 L 4.3580216,12.358494 C 7.9057261,6.0680237 14.64666,2.0866527 21.975555,2.1353442 c 0.931868,0.00619 1.873063,0.077632 2.818432,0.2175579 z\"\r\n        [style.fill]=\"'url(#' + arrowsGradientIdB + ')'\"\r\n        style=\"stroke-width: 0.4\"\r\n      />\r\n    </g>\r\n    <text\r\n      style=\"\r\n        font-size: 5.3px;\r\n        line-height: 1.25;\r\n        font-family: sans-serif;\r\n        text-align: center;\r\n        text-anchor: middle;\r\n      \"\r\n      x=\"21.857889\"\r\n      y=\"23.926239\"\r\n    >\r\n      <tspan x=\"21.857889\" y=\"23.926239\" style=\"stroke-width: 2\">\r\n        {{ value() }}\r\n      </tspan>\r\n    </text>\r\n  </g>\r\n  <g\r\n    transform=\"matrix(0.07304982,0,0,0.07304982,1.8297037,-8.2746411)\"\r\n    [id]=\"effect3dId\"\r\n  >\r\n    <circle\r\n      r=\"138.66203\"\r\n      cy=\"485.77628\"\r\n      cx=\"204.77902\"\r\n      style=\"stroke: none\"\r\n      [style.fill]=\"'url(#' + radialGradientId + ')'\"\r\n      transform=\"matrix(1.5144737,0,0,1.5144737,-34.015451,-321.25708)\"\r\n    />\r\n    <circle\r\n      r=\"138.66203\"\r\n      cy=\"485.77628\"\r\n      cx=\"204.77902\"\r\n      class=\"frame\"\r\n      transform=\"matrix(1.4188581,0,0,1.4188581,-14.435384,-274.80929)\"\r\n      style=\"fill: none; stroke-width: 7\"\r\n      [style.stroke]=\"'url(#' + radialGradientId3 + ')'\"\r\n    />\r\n    <ellipse\r\n      ry=\"80.654366\"\r\n      rx=\"232.01941\"\r\n      cy=\"836.91559\"\r\n      cx=\"265.16504\"\r\n      style=\"fill-opacity: 1; stroke: none\"\r\n      [style.fill]=\"'url(#' + reflectGradientId + ')'\"\r\n      transform=\"matrix(0.44540226,0.32889474,-0.47439668,0.64244672,634.38064,-320.42106)\"\r\n    />\r\n  </g>\r\n</svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BallProgressBarComponent } from './status-bar/ball-progress-bar.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BallProgressBarComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    BallProgressBarComponent\r\n  ]\r\n})\r\nexport class BallProgressBarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}