import { Component, ComponentInterface, Listen, Prop } from '@stencil/core'; import { Mode, SelectPopoverOption } from '../../interface'; import { createThemedClasses } from '../../utils/theme'; @Component({ tag: 'ion-select-popover', styleUrl: 'select-popover.scss', scoped: true }) export class SelectPopover implements ComponentInterface { mode!: Mode; /** Header text for the popover */ @Prop() header?: string; /** Subheader text for the popover */ @Prop() subHeader?: string; /** Text for popover body */ @Prop() message?: string; /** Array of options for the popover */ @Prop() options: SelectPopoverOption[] = []; @Listen('ionSelect') onSelect(ev: any) { const option = this.options.find(o => o.value === ev.target.value); if (option && option.handler) { option.handler(); } } hostData() { return { class: createThemedClasses(this.mode, 'select-popover') }; } render() { return ( {this.header !== undefined && {this.header}} { (this.subHeader !== undefined || this.message !== undefined) && {this.subHeader !== undefined &&

{this.subHeader}

} {this.message !== undefined &&

{this.message}

}
} {this.options.map(option => {option.text} )}
); } }