UNPKG

@koalarx/ui

Version:

Koala UI is a modern and accessible component library designed to speed up interface development in Angular projects. With simple integration and clear documentation, you can easily build robust and visually appealing applications.

1 lines 5.71 kB
{"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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"}