<ion-button (click)="openSelect($event)" *ngIf="interface != 'modal' && icon" [disabled]="disabled">
    <ion-icon [name]="icon" [attr.aria-label]="label" slot="start">
    </ion-icon>
    <ion-badge *ngIf="badge && badge > 0" slot="start">{{badge}}</ion-badge>
    <div class="select-icon" role="presentation" aria-hidden="true">
        <div class="select-icon-inner"></div>
    </div>
</ion-button>
<ion-select *ngIf="interface != 'modal'" class="ion-text-start" [(ngModel)]="selection" (ngModelChange)="onChange.emit(selection)"
    [interface]="interface" [attr.aria-label]="label + ': ' + selection" [disabled]="disabled" [hidden]="!!icon">
    <ng-content></ng-content>
</ion-select>

<ion-button *ngIf="interface == 'modal'" aria-haspopup="listbox" [attr.aria-controls]="listboxId" [attr.aria-owns]="listboxId"
    [attr.aria-expanded]="expanded" (click)="openSelect()" [disabled]="disabled" expand="block" role="combobox">
    <ion-icon *ngIf="icon" [name]="icon" slot="start" aria-hidden="true"></ion-icon>
    <ion-badge *ngIf="badge && badge > 0" slot="start">{{badge}}</ion-badge>
    <span class="sr-only" *ngIf="label">{{ label }}:</span>
    <div class="select-text">
        <slot name="text">{{selection}}</slot>
    </div>
    <div class="select-icon" role="presentation" aria-hidden="true">
        <div class="select-icon-inner"></div>
    </div>
</ion-button>
