UNPKG

@obliczeniowo/elementary

Version:
1 lines 7.56 kB
{"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';\r\nimport { ElementaryMath } from '@obliczeniowo/elementary/math';\r\nimport { Component, Input } from '@angular/core';\r\n\r\nexport enum Unit {\r\n Celsius = '°C',\r\n Fahrenheit = 'F',\r\n Kelvin = 'K'\r\n}\r\n\r\n@Component({\r\n selector: 'obl-temperature',\r\n templateUrl: './temperature.component.html',\r\n styleUrls: ['./temperature.component.scss'],\r\n standalone: false\r\n})\r\nexport class TemperatureComponent {\r\n private _value = 0;\r\n\r\n @Input() max = 100;\r\n @Input() min = 0;\r\n\r\n /**\r\n * Temperature value get\r\n */\r\n @Input()\r\n get value(): number {\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Temperature value set\r\n */\r\n set value(value) {\r\n this._value = value;\r\n this.fill = ColorHSV.createColorHSVfromRGB(\r\n new ColorRGB(0, 100, 255)).addHue(\r\n 150 * this.k()\r\n ).convertToRGB();\r\n }\r\n\r\n /**\r\n * Unit for temperature (Celsius, Fahrenheit, Kelvin)\r\n */\r\n @Input() unit = Unit.Celsius;\r\n\r\n protected readonly scaleDt = 13.23;\r\n\r\n id!: string;\r\n\r\n fill: ColorRGB = ColorHSV.createColorHSVfromRGB(new ColorRGB(0, 100, 255)).convertToRGB();\r\n\r\n get dt(): number {\r\n return 50 * (1 - this.k());\r\n }\r\n\r\n protected k(value: number = this.value): number {\r\n return (ElementaryMath.minmax(value, this.min, this.max) - this.min) / (this.max - this.min);\r\n }\r\n\r\n constructor() {\r\n this.value = 0;\r\n\r\n do {\r\n this.id = `temperature${Math.floor(Math.random() * 100000)}`;\r\n } while (document.querySelector(this.id));\r\n }\r\n\r\n yScalePos(value: number): number {\r\n return 2.645 + 0.4 + this.scaleDt * (1 - this.k(value));\r\n }\r\n}\r\n","<svg\r\n xmlns:svg=\"http://www.w3.org/2000/svg\"\r\n width=\"80\"\r\n height=\"160\"\r\n viewBox=\"0 0 10.583333 21.166667\"\r\n>\r\n <defs id=\"defs2\">\r\n <clipPath [attr.id]=\"id\">\r\n <rect [attr.y]=\"10 + dt\" x=\"3\" [attr.height]=\"67 - dt\" width=\"14\" />\r\n </clipPath>\r\n </defs>\r\n <g>\r\n <path\r\n class=\"outline\"\r\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\"\r\n />\r\n <path\r\n [attr.clip-path]=\"'url(#' + id + ')'\"\r\n transform=\"scale(0.26458333)\"\r\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\"\r\n style=\"stroke-width: 0.5; stroke-linejoin: round\"\r\n [style.fill]=\"fill.toString()\"\r\n />\r\n </g>\r\n <g>\r\n <path class=\"outline\" d=\"M 4,2.645 H 5\" />\r\n <text>\r\n <tspan\r\n class=\"text\"\r\n x=\"5.2\"\r\n [attr.y]=\"yScalePos(max)\"\r\n style=\"font-size: 1.5px; text-anchor: start; text-align: start\"\r\n >\r\n {{ max }}\r\n </tspan>\r\n </text>\r\n\r\n <path class=\"outline\" d=\"M 4,15.875 H 5\" />\r\n\r\n <text>\r\n <tspan\r\n class=\"text\"\r\n x=\"5.2\"\r\n [attr.y]=\"yScalePos(min)\"\r\n style=\"font-size: 1.5px; text-anchor: start; text-align: start\"\r\n >\r\n {{ min }}\r\n </tspan>\r\n </text>\r\n\r\n <text>\r\n <tspan\r\n class=\"text\"\r\n x=\"5\"\r\n [attr.y]=\"19\"\r\n style=\"font-size: 1.5px; text-anchor: start; text-align: start\"\r\n >\r\n {{ value.toFixed() }} {{ unit }}\r\n </tspan>\r\n </text>\r\n </g>\r\n</svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TemperatureComponent } from './components/temperature/temperature.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TemperatureComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n TemperatureComponent\r\n ]\r\n})\r\nexport class TemperatureModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}