{"version":3,"file":"spinque-angular-ui-sort-toggle.mjs","sources":["../../../projects/spinque-angular-ui/sort-toggle/src/sort-toggle.component.ts","../../../projects/spinque-angular-ui/sort-toggle/src/sort-toggle.component.html","../../../projects/spinque-angular-ui/sort-toggle/spinque-angular-ui-sort-toggle.ts"],"sourcesContent":["\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Query } from '@spinque/query-api';\n\n/**\n * Button with dropdown menu that shows options, one of which can be selected.\n * Used to sort result views.\n */\n@Component({\n    selector: 'spinque-sort-toggle',\n    imports: [MatButtonModule, MatMenuModule, MatIconModule],\n    templateUrl: './sort-toggle.component.html',\n    changeDetection: ChangeDetectionStrategy.Eager,\n    styles: ['']\n})\nexport class SpinqueSortToggle {\n  @Input() options: (Query | undefined)[] = [];\n  @Input() labels: string[] = [];\n  @Input() ariaLabel?: string = 'Open sort menu'; \n  @Input() active?: number;\n  @Output() sortChange = new EventEmitter<Query>();\n\n  /**\n   * Select a given SpinqueSortOption\n   */\n  selectOption(index: number) {\n    if (this.active && this.active === index) {\n      return;\n    }\n    this.active = index;\n    this.sortChange.emit(this.options[index]);\n  }\n}\n","<button mat-stroked-button [matMenuTriggerFor]=\"menu\" [attr.aria-label]=\"ariaLabel\">\n  {{ active !== undefined ? labels[active] : '' }}\n  <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\">\n  @for (o of options; track o) {\n    <button mat-menu-item (click)=\"selectOption($index)\" (keydown.enter)=\"selectOption($index)\">\n      {{ labels[$index] }}\n    </button>\n  }\n</mat-menu>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;AAOA;;;AAGG;MAQU,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;QAQW,IAAA,CAAA,OAAO,GAA0B,EAAE;QACnC,IAAA,CAAA,MAAM,GAAa,EAAE;QACrB,IAAA,CAAA,SAAS,GAAY,gBAAgB;AAEpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAS;AAYjD,IAAA;AAVC;;AAEG;AACH,IAAA,YAAY,CAAC,KAAa,EAAA;QACxB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACxC;QACF;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C;8GAhBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,kNClB9B,saAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEc,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,6vBAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAK9C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACI,qBAAqB,EAAA,OAAA,EACtB,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAA,eAAA,EAEvC,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,saAAA,EAAA;;sBAI/C;;sBACA;;sBACA;;sBACA;;sBACA;;;AEvBH;;AAEG;;;;"}