{"version":3,"file":"obliczeniowo-elementary-dropdown-button.mjs","sources":["../../../../projects/components/dropdown-button/components/dropdown-button/dropdown-button.component.ts","../../../../projects/components/dropdown-button/components/dropdown-button/dropdown-button.component.html","../../../../projects/components/dropdown-button/dropdown-button.module.ts","../../../../projects/components/dropdown-button/obliczeniowo-elementary-dropdown-button.ts"],"sourcesContent":["import { Component, input, OnInit, TemplateRef } from '@angular/core';\nimport { Animations } from '@obliczeniowo/elementary/animations';\n\nexport interface DropdownButton {\n  matIcon?: string;\n  svgIcon?: string;\n  imgIcon?: string;\n  cb: () => void;\n}\n\n@Component({\n    selector: 'obl-dropdown-button',\n    templateUrl: './dropdown-button.component.html',\n    styleUrls: ['./dropdown-button.component.scss'],\n    animations: [\n        Animations.rotate180deg\n    ],\n    standalone: false\n})\nexport class DropdownButtonComponent implements OnInit {\n  buttons = input<DropdownButton[]>([]);\n  templateRef = input<TemplateRef<any>>();\n\n  selected: DropdownButton | undefined;\n\n  isOpen = false;\n\n  ngOnInit(): void {\n    if (this.buttons && !this.selected) {\n      this.selected = this.buttons()[0];\n    }\n  }\n\n  clicked(button: DropdownButton): void {\n    this.selected = button;\n    this.isOpen = false;\n    button.cb();\n  }\n}\n","@if (buttons().length) {\n  <div class=\"button\" cdkOverlayOrigin #dropDown=\"cdkOverlayOrigin\">\n    @if (selected) {\n      <button (click)=\"selected.cb()\">\n        <ng-container\n          *ngTemplateOutlet=\"templateRef() || img; context: { $implicit: selected }\"\n        ></ng-container>\n      </button>\n    }\n    <obl-expand-button\n      [isOpen]=\"isOpen\"\n      (click)=\"isOpen = !isOpen\"\n    ></obl-expand-button>\n  </div>\n\n  <ng-template\n    #buttonsTmpl\n    cdkConnectedOverlay\n    [cdkConnectedOverlayOrigin]=\"dropDown\"\n    [cdkConnectedOverlayOpen]=\"isOpen\"\n    (overlayOutsideClick)=\"isOpen = !isOpen\"\n  >\n    <div class=\"dropdown-buttons\">\n      @for (button of buttons(); track $index) {\n        @if (button !== selected) {\n          <button (click)=\"clicked(button)\">\n            <ng-container\n              *ngTemplateOutlet=\"\n                templateRef() || img;\n                context: { $implicit: button }\n              \"\n            ></ng-container>\n          </button>\n        }\n      }\n    </div>\n  </ng-template>\n}\n\n<ng-template #img let-button>\n  @if (button.imgIcon) {\n    <img [src]=\"button.imgIcon\" />\n  }\n</ng-template>\n","import { ButtonsModule } from '@obliczeniowo/elementary/buttons';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { DropdownButtonComponent } from './components/dropdown-button/dropdown-button.component';\n\n@NgModule({\n  declarations: [\n    DropdownButtonComponent\n  ],\n  imports: [\n    CommonModule,\n    OverlayModule,\n    ButtonsModule\n  ],\n  exports: [\n    DropdownButtonComponent\n  ]\n})\nexport class DropdownButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}