{"version":3,"file":"obliczeniowo-elementary-temperature.mjs","sources":["../../../../projects/components/temperature/components/temperature/temperature.component.ts","../../../../projects/components/temperature/components/temperature/temperature.component.html","../../../../projects/components/temperature/temperature.module.ts","../../../../projects/components/temperature/obliczeniowo-elementary-temperature.ts"],"sourcesContent":["import { ColorHSV, ColorRGB } from '@obliczeniowo/elementary/classes';\nimport { ElementaryMath } from '@obliczeniowo/elementary/math';\nimport { Component, Input } from '@angular/core';\n\nexport enum Unit {\n  Celsius = '°C',\n  Fahrenheit = 'F',\n  Kelvin = 'K'\n}\n\n@Component({\n    selector: 'obl-temperature',\n    templateUrl: './temperature.component.html',\n    styleUrls: ['./temperature.component.scss'],\n    standalone: false\n})\nexport class TemperatureComponent {\n  private _value = 0;\n\n  @Input() max = 100;\n  @Input() min = 0;\n\n  /**\n   * Temperature value get\n   */\n  @Input()\n  get value(): number {\n    return this._value;\n  }\n\n  /**\n   * Temperature value set\n   */\n  set value(value) {\n    this._value = value;\n    this.fill = ColorHSV.createColorHSVfromRGB(\n      new ColorRGB(0, 100, 255)).addHue(\n        150 * this.k()\n      ).convertToRGB();\n  }\n\n  /**\n   * Unit for temperature (Celsius, Fahrenheit, Kelvin)\n   */\n  @Input() unit = Unit.Celsius;\n\n  protected readonly scaleDt = 13.23;\n\n  id!: string;\n\n  fill: ColorRGB = ColorHSV.createColorHSVfromRGB(new ColorRGB(0, 100, 255)).convertToRGB();\n\n  get dt(): number {\n    return 50 * (1 - this.k());\n  }\n\n  protected k(value: number = this.value): number {\n    return (ElementaryMath.minmax(value, this.min, this.max) - this.min) / (this.max - this.min);\n  }\n\n  constructor() {\n    this.value = 0;\n\n    do {\n      this.id = `temperature${Math.floor(Math.random() * 100000)}`;\n    } while (document.querySelector(this.id));\n  }\n\n  yScalePos(value: number): number {\n    return 2.645 + 0.4 + this.scaleDt * (1 - this.k(value));\n  }\n}\n","<svg\n  xmlns:svg=\"http://www.w3.org/2000/svg\"\n  width=\"80\"\n  height=\"160\"\n  viewBox=\"0 0 10.583333 21.166667\"\n>\n  <defs id=\"defs2\">\n    <clipPath [attr.id]=\"id\">\n      <rect [attr.y]=\"10 + dt\" x=\"3\" [attr.height]=\"67 - dt\" width=\"14\" />\n    </clipPath>\n  </defs>\n  <g>\n    <path\n      class=\"outline\"\n      d=\"m 2.6458333,1.3229166 c -0.4397375,0 -0.79375,0.3540125 -0.79375,0.79375 V 16.937467 A 1.7717633,1.7717633 0 0 0 0.87384847,18.520833 1.7717633,1.7717633 0 0 0 2.6458333,20.292818 1.7717633,1.7717633 0 0 0 4.4178182,18.520833 1.7717633,1.7717633 0 0 0 3.4395833,16.939017 V 2.1166666 c 0,-0.4397375 -0.3540125,-0.79375 -0.79375,-0.79375 z\"\n    />\n    <path\n      [attr.clip-path]=\"'url(#' + id + ')'\"\n      transform=\"scale(0.26458333)\"\n      d=\"M 10,6 C 8.8920003,6 8,6.8920003 8,8 V 64.556641 A 5.8035711,5.8035711 0 0 0 4.1972656,70 5.8035711,5.8035711 0 0 0 10,75.802734 5.8035711,5.8035711 0 0 0 15.802734,70 5.8035711,5.8035711 0 0 0 12,64.558594 V 8 C 12,6.8920003 11.108,6 10,6 Z\"\n      style=\"stroke-width: 0.5; stroke-linejoin: round\"\n      [style.fill]=\"fill.toString()\"\n    />\n  </g>\n  <g>\n    <path class=\"outline\" d=\"M 4,2.645 H 5\" />\n    <text>\n      <tspan\n        class=\"text\"\n        x=\"5.2\"\n        [attr.y]=\"yScalePos(max)\"\n        style=\"font-size: 1.5px; text-anchor: start; text-align: start\"\n      >\n        {{ max }}\n      </tspan>\n    </text>\n\n    <path class=\"outline\" d=\"M 4,15.875 H 5\" />\n\n    <text>\n      <tspan\n        class=\"text\"\n        x=\"5.2\"\n        [attr.y]=\"yScalePos(min)\"\n        style=\"font-size: 1.5px; text-anchor: start; text-align: start\"\n      >\n        {{ min }}\n      </tspan>\n    </text>\n\n    <text>\n      <tspan\n        class=\"text\"\n        x=\"5\"\n        [attr.y]=\"19\"\n        style=\"font-size: 1.5px; text-anchor: start; text-align: start\"\n      >\n        {{ value.toFixed() }} {{ unit }}\n      </tspan>\n    </text>\n  </g>\n</svg>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TemperatureComponent } from './components/temperature/temperature.component';\n\n@NgModule({\n  declarations: [\n    TemperatureComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    TemperatureComponent\n  ]\n})\nexport class TemperatureModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}