{"version":3,"file":"koalarx-ui-shared-components-stepper.mjs","sources":["../../projects/koala-ui/shared/components/stepper/step-group.ts","../../projects/koala-ui/shared/components/stepper/step-item.ts","../../projects/koala-ui/shared/components/stepper/stepper.ts","../../projects/koala-ui/shared/components/stepper/koalarx-ui-shared-components-stepper.ts"],"sourcesContent":["import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({ selector: 'ul[klStepGroup]' })\nexport class StepGroup implements OnInit {\n  private readonly elementRef = inject<ElementRef<HTMLUListElement>>(\n    ElementRef<HTMLButtonElement>\n  );\n\n  ngOnInit(): void {\n    this.elementRef.nativeElement.classList.add('steps');\n  }\n}\n","import {\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  OnInit,\n  signal,\n} from '@angular/core';\nimport { generateQuerySelector } from '@koalarx/ui/shared/utils';\n\n@Directive({ selector: 'li[klStepItem]' })\nexport class StepItem implements OnInit {\n  private readonly elementRef = inject<ElementRef<HTMLLIElement>>(\n    ElementRef<HTMLButtonElement>\n  );\n\n  label = input.required<string>();\n  indexStep = signal<number>(0);\n  currentStep = input.required<number>();\n\n  constructor() {\n    effect(() => {\n      const currentStep = this.currentStep();\n      const stepIndex = this.getStepIndex();\n\n      if (stepIndex < currentStep) {\n        this.elementRef.nativeElement.classList.add('step-primary');\n        this.elementRef.nativeElement.dataset['content'] = '✓';\n      } else if (currentStep === stepIndex) {\n        this.elementRef.nativeElement.classList.add('step-primary');\n        delete this.elementRef.nativeElement.dataset['content'];\n      } else {\n        this.elementRef.nativeElement.classList.remove('step-primary');\n        delete this.elementRef.nativeElement.dataset['content'];\n      }\n    });\n  }\n\n  private getStepIndex(): number {\n    const elementSelector = generateQuerySelector(\n      this.elementRef.nativeElement\n    );\n    const elements = document.querySelectorAll(elementSelector);\n\n    let elementCountPosition = 0;\n\n    elements.forEach((el, index) => {\n      if (el === this.elementRef.nativeElement) {\n        elementCountPosition = index + 1;\n        return;\n      }\n    });\n\n    return elementCountPosition;\n  }\n\n  ngOnInit(): void {\n    this.elementRef.nativeElement.classList.add('step');\n    this.elementRef.nativeElement.innerText = this.label();\n  }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class Stepper {\n  private readonly _currentStep = signal<number>(1);\n\n  get currentStep() {\n    return this._currentStep.asReadonly();\n  }\n\n  next() {\n    this._currentStep.update((step) => step + 1);\n  }\n\n  previous() {\n    this._currentStep.update((step) => (step > 1 ? step - 1 : step));\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}