{"version":3,"file":"catrx-ui-stepper.mjs","sources":["../../../../projects/catrx/ui/stepper/src/item/stepper-item.component.ts","../../../../projects/catrx/ui/stepper/src/item/stepper-item.component.html","../../../../projects/catrx/ui/stepper/src/group/stepper-group.component.ts","../../../../projects/catrx/ui/stepper/src/group/stepper-group.component.html","../../../../projects/catrx/ui/stepper/src/cat-stepper.module.ts","../../../../projects/catrx/ui/stepper/catrx-ui-stepper.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'cat-step[label]',\n  templateUrl: './stepper-item.component.html',\n})\nexport class StepperItemComponent {\n  @Input() label: string;\n}\n","<div class=\"cat-step-item\" [innerHTML]=\"label\"></div>\n<div class=\"cat-step-item-content\">\n  <div class=\"cat-step-content\">\n    <ng-content select=\"[content]\"></ng-content>\n  </div>\n  <div class=\"cat-step-actions\">\n    <ng-content select=\"[actions]\"></ng-content>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { klDelay } from '@koalarx/utils/operators/delay';\nimport { randomString } from '@koalarx/utils/operators/string';\n\n@Component({\n  selector: 'cat-stepper',\n  templateUrl: './stepper-group.component.html',\n})\nexport class StepperGroupComponent implements OnInit {\n  @Input() direction: 'vertical' | 'horizontal' = 'horizontal';\n\n  stepperGroupId = randomString(10, {\n    lowercase: true,\n    uppercase: true,\n    numbers: false,\n    specialCharacters: false,\n  });\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      const tabs = this.getSteps();\n\n      if (tabs.length > 0) {\n        if (\n          !tabs.find((tab) => tab.children.item(0).classList.contains('active'))\n        ) {\n          tabs[0].children.item(0).classList.add('active');\n          tabs[0].children.item(1).classList.add('active');\n        }\n      }\n    }, 50);\n\n    if (document.body.clientWidth <= 980) {\n      this.direction = 'vertical';\n    }\n  }\n\n  async next() {\n    const activeStep = this.getActiveStep();\n    const tabs = this.getSteps();\n\n    await this.close(tabs[activeStep]);\n    await this.open(tabs[activeStep + 1]);\n  }\n\n  async previous() {\n    const activeStep = this.getActiveStep();\n    const tabs = this.getSteps();\n\n    await this.close(tabs[activeStep]);\n    await this.open(tabs[activeStep - 1]);\n  }\n\n  async setActiveStep(index: number, withAnimation = false) {\n    const tabs = this.getSteps();\n    for (const tab of tabs) {\n      await this.close(tab, withAnimation);\n    }\n\n    await this.open(tabs[index], withAnimation);\n  }\n\n  private async open(element: Element, withAnimation = true) {\n    element.children.item(0).classList.add('active');\n    element.children.item(1).classList.add('active');\n\n    if (withAnimation) await this.animateOpen(element);\n  }\n\n  private async animateOpen(element: Element) {\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.add('animate__animated');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.add('animate__animated');\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.add('animate__slideInDown');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.add('animate__slideInDown');\n    await klDelay(200);\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.remove('animate__animated');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.remove('animate__animated');\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.remove('animate__slideInDown');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.remove('animate__slideInDown');\n  }\n\n  private async close(element: Element, withAnimation = true) {\n    if (withAnimation && element.children.item(0).classList.contains('active'))\n      await this.animateClose(element);\n\n    element.children.item(0).classList.remove('active');\n    element.children.item(1).classList.remove('active');\n  }\n\n  private async animateClose(element: Element) {\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.add('animate__animated');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.add('animate__animated');\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.add('animate__slideOutUp');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.add('animate__slideOutUp');\n    await klDelay(200);\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.remove('animate__animated');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.remove('animate__animated');\n    element.children\n      .item(1)\n      .children.item(0)\n      .classList.remove('animate__slideOutUp');\n    element.children\n      .item(1)\n      .children.item(1)\n      .classList.remove('animate__slideOutUp');\n  }\n\n  private getSteps() {\n    const tabs = document.querySelectorAll(\n      `.cat-stepper-group-content#${this.stepperGroupId} cat-step`\n    );\n\n    if (tabs?.length > 0) {\n      const tmpTabs: Element[] = [];\n      tabs.forEach((tab) => tmpTabs.push(tab));\n\n      return tmpTabs;\n    }\n\n    return [];\n  }\n\n  private getActiveStep() {\n    const tabs = this.getSteps();\n\n    let stepActiveIndex = -1;\n\n    tabs.forEach((tab, index) => {\n      if (tab.children.item(0).classList.contains('active')) {\n        stepActiveIndex = index;\n        return;\n      }\n    });\n\n    return stepActiveIndex;\n  }\n}\n","<div\n  [id]=\"stepperGroupId\"\n  class=\"cat-stepper-group-content\"\n  [ngClass]=\"direction\"\n>\n  <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { StepperGroupComponent } from './group/stepper-group.component';\nimport { StepperItemComponent } from './item/stepper-item.component';\n\n@NgModule({\n  declarations: [StepperGroupComponent, StepperItemComponent],\n  exports: [StepperGroupComponent, StepperItemComponent],\n  imports: [CommonModule],\n})\nexport class CatStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}