33 lines
1.9 KiB
JavaScript
Executable file
33 lines
1.9 KiB
JavaScript
Executable file
import { h, Host, proxyCustomElement } from '@stencil/core/internal/client';
|
|
import { b as getIonMode } from './ionic-global.js';
|
|
import { s as safeCall } from './overlays.js';
|
|
import { g as getClassMap } from './theme.js';
|
|
|
|
const selectPopoverCss = ".sc-ion-select-popover-h ion-list.sc-ion-select-popover{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-h ion-list-header.sc-ion-select-popover,.sc-ion-select-popover-h ion-label.sc-ion-select-popover{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}";
|
|
|
|
const SelectPopover = class extends HTMLElement {
|
|
constructor() {
|
|
super();
|
|
this.__registerHost();
|
|
/** Array of options for the popover */
|
|
this.options = [];
|
|
}
|
|
onSelect(ev) {
|
|
const option = this.options.find(o => o.value === ev.target.value);
|
|
if (option) {
|
|
safeCall(option.handler);
|
|
}
|
|
}
|
|
render() {
|
|
const checkedOption = this.options.find(o => o.checked);
|
|
const checkedValue = checkedOption ? checkedOption.value : undefined;
|
|
return (h(Host, { class: getIonMode(this) }, h("ion-list", null, this.header !== undefined && h("ion-list-header", null, this.header), (this.subHeader !== undefined || this.message !== undefined) &&
|
|
h("ion-item", null, h("ion-label", { class: "ion-text-wrap" }, this.subHeader !== undefined && h("h3", null, this.subHeader), this.message !== undefined && h("p", null, this.message))), h("ion-radio-group", { value: checkedValue }, this.options.map(option => h("ion-item", { class: getClassMap(option.cssClass) }, h("ion-label", null, option.text), h("ion-radio", { value: option.value, disabled: option.disabled })))))));
|
|
}
|
|
static get style() { return selectPopoverCss; }
|
|
};
|
|
|
|
const IonSelectPopover = /*@__PURE__*/proxyCustomElement(SelectPopover, [2,"ion-select-popover",{"header":[1],"subHeader":[1,"sub-header"],"message":[1],"options":[16]},[[0,"ionChange","onSelect"]]]);
|
|
|
|
export { IonSelectPopover };
|