{"version":3,"file":"koalarx-ui-shared-components-input-field-range.mjs","sources":["../../projects/koala-ui/shared/components/input-field/range/input-range.ts","../../projects/koala-ui/shared/components/input-field/range/input-range.html","../../projects/koala-ui/shared/components/input-field/range/koalarx-ui-shared-components-input-field-range.ts"],"sourcesContent":["import {\n  afterRenderEffect,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  DestroyRef,\n  inject,\n  input,\n  linkedSignal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nexport type RangeColor =\n  | 'neutral'\n  | 'primary'\n  | 'secondary'\n  | 'accent'\n  | 'info'\n  | 'success'\n  | 'warning'\n  | 'error'\n  | 'ghost';\n\nexport type RangeSize =\n  | 'extraSmall'\n  | 'small'\n  | 'medium'\n  | 'large'\n  | 'extraLarge';\n\n@Component({\n  selector: 'kl-input-range',\n  templateUrl: './input-range.html',\n  imports: [ReactiveFormsModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputRange {\n  private destroyRef = inject(DestroyRef);\n\n  control = input.required<FormControl>();\n  min = input.required<number>();\n  max = input.required<number>();\n  step = input.required<number>();\n  hint = input<string>('');\n  color = input<RangeColor>();\n  size = input<RangeSize>();\n\n  colorClass = computed(() => {\n    switch (this.color()) {\n      case 'neutral':\n        return 'range-neutral';\n      case 'primary':\n        return 'range-primary';\n      case 'secondary':\n        return 'range-secondary';\n      case 'accent':\n        return 'range-accent';\n      case 'info':\n        return 'range-info';\n      case 'success':\n        return 'range-success';\n      case 'warning':\n        return 'range-warning';\n      case 'error':\n        return 'range-error';\n      case 'ghost':\n        return 'range-ghost';\n      default:\n        return 'range';\n    }\n  });\n\n  sizeClass = computed(() => {\n    switch (this.size()) {\n      case 'extraSmall':\n        return 'range-xs';\n      case 'small':\n        return 'range-sm';\n      case 'medium':\n        return 'range-md';\n      case 'large':\n        return 'range-lg';\n      case 'extraLarge':\n        return 'range-xl';\n      default:\n        return '';\n    }\n  });\n\n  steps = computed(() => {\n    const stepArray = [];\n\n    if (this.step() > 0) {\n      for (let i = this.min(); i <= this.max(); i += this.step()) {\n        stepArray.push(i);\n      }\n    }\n\n    return stepArray;\n  });\n\n  value = linkedSignal(() => this.control().value);\n\n  constructor() {\n    afterRenderEffect(() => {\n      this.control()\n        .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n        .subscribe((value) => {\n          this.value.set(value);\n        });\n    });\n  }\n\n  setValue(event: Event) {\n    const target = event.target as HTMLInputElement;\n    this.control().setValue(target.value);\n  }\n}\n","<div class=\"w-full\">\n  <input type=\"range\"\n    [min]=\"min()\"\n    [max]=\"max()\"\n    [value]=\"value()\"\n    class=\"range w-full\"\n    [class]=\"colorClass() + ' ' + sizeClass()\"\n    [step]=\"step()\"\n    (change)=\"setValue($event)\"\n  />\n\n  <div class=\"flex justify-between px-2.5 mt-2 text-xs\">\n    @for (step of steps(); track $index) {\n      <span>|</span>\n    }\n  </div>\n\n  <div class=\"flex justify-between px-2.5 mt-2 text-xs\">\n    @for (step of steps(); track $index) {\n      <span>{{step}}</span>\n    }\n  </div>\n</div>\n\n@if (hint()) {\n  <span class=\"hint-content\">{{hint()}}</span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}