{"version":3,"file":"lucca-front-ng-gauge.mjs","sources":["../../../packages/ng/gauge/gauge.component.ts","../../../packages/ng/gauge/gauge.component.html","../../../packages/ng/gauge/lucca-front-ng-gauge.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-gauge',\n\ttemplateUrl: './gauge.component.html',\n\tstyleUrl: './gauge.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [LuClass],\n})\nexport class GaugeComponent {\n\t#locale = inject(LOCALE_ID);\n\n\t/**\n\t * The progress of the gauge from 0 to 100\n\t */\n\treadonly value = input(0, { transform: numberAttribute });\n\n\t/**\n\t * Make the gauge finer\n\t */\n\treadonly thin = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Display gaugue in circular\n\t */\n\treadonly circular = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Animate the gauge component\n\t */\n\treadonly animated = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Disabled alt display (overrides alt value)\n\t */\n\treadonly noAlt = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Which palette should be used for the entire gauge.\n\t * Defaults to none (inherits parent palette)\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Defines the text alt attribute used for accessibility\n\t */\n\treadonly alt = input<string>('');\n\n\t/**\n\t * Which size should the gauge be? widht & height\n\t */\n\treadonly size = input(40, { transform: numberAttribute });\n\n\treadonly thickness = computed(() => (this.thin() ? 4 : 8));\n\n\treadonly perimeter = computed(() => (2 * Math.PI * (this.size() - this.thickness())) / 2);\n\n\treadonly fullThreshold = computed(() => this.perimeter() - this.thickness());\n\n\treadonly full = computed<boolean>(() => this.fullThreshold() < (this.perimeter() / 100) * this.value());\n\n\treadonly fullThresholdValue = computed(() => Math.floor((this.fullThreshold() / this.perimeter()) * 100));\n\n\treadonly displayValue = computed(() => {\n\t\tif (this.value() >= 100) {\n\t\t\treturn this.value();\n\t\t}\n\t\treturn this.full() ? this.fullThresholdValue() : this.value();\n\t});\n\n\treadonly defaultAlt = computed(() => new Intl.NumberFormat(this.#locale, { style: 'percent' }).format(this.value() / 100));\n\n\treadonly paletteClass = computed(() => ({\n\t\t[`palette-${this.palette()}`]: !!this.palette(),\n\t}));\n}\n","@if (circular()) {\n\t<svg\n\t\tclass=\"gauge\"\n\t\t[class]=\"paletteClass()\"\n\t\t[class.mod-thin]=\"thin()\"\n\t\t[class.is-animated]=\"animated()\"\n\t\t[class.is-zero]=\"value() === 0\"\n\t\t[attr.width]=\"size()\"\n\t\t[attr.height]=\"size()\"\n\t\t[attr.viewBox]=\"`0 0 ${size()} ${size()}`\"\n\t\t[attr.style]=\"`--components-gauge-value: ${displayValue()}; --components-gauge-circleR: ${(size() - thickness()) / 2}px`\"\n\t>\n\t\t<circle [attr.cx]=\"size() / 2\" [attr.cy]=\"size() / 2\" [attr.r]=\"(size() - thickness()) / 2\" class=\"gauge-circleBackground\" />\n\t\t<circle [attr.cx]=\"size() / 2\" [attr.cy]=\"size() / 2\" [attr.r]=\"(size() - thickness()) / 2\" class=\"gauge-circleBar\" />\n\t</svg>\n} @else {\n\t<div\n\t\tclass=\"gauge\"\n\t\t[attr.style]=\"`--components-gauge-value: ${value()}%`\"\n\t\t[class.mod-thin]=\"thin()\"\n\t\t[class]=\"paletteClass()\"\n\t\t[class.is-animated]=\"animated()\"\n\t></div>\n}\n@if (!noAlt()) {\n\t<span class=\"pr-u-mask\">{{ alt() || defaultAlt() }}</span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}