@ionic/core 8.8.4-dev.11776184632.103b8351 → 8.8.4-dev.11776186452.1cc0af05
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/{p-C9d4LXRu.js → p-BObmvbuR.js} +1 -1
- package/components/p-Cm7hjN9B.js +4 -0
- package/components/{p-CvoKp7OI.js → p-DQY5lHUa.js} +1 -1
- package/components/{p-BjV_nNDy.js → p-D_uMZULz.js} +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +14 -7
- package/dist/cjs/ion-alert.cjs.entry.js +27 -31
- package/dist/cjs/ion-select-modal.cjs.entry.js +23 -9
- package/dist/cjs/ion-select_3.cjs.entry.js +27 -13
- package/dist/collection/components/action-sheet/action-sheet.js +14 -7
- package/dist/collection/components/alert/alert.js +27 -31
- package/dist/collection/components/select/select.js +3 -3
- package/dist/collection/components/select-modal/select-modal.js +23 -9
- package/dist/collection/components/select-popover/select-popover.js +24 -10
- package/dist/docs.json +5 -5
- package/dist/esm/ion-action-sheet.entry.js +14 -7
- package/dist/esm/ion-alert.entry.js +27 -31
- package/dist/esm/ion-select-modal.entry.js +23 -9
- package/dist/esm/ion-select_3.entry.js +27 -13
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-a64ae62e.entry.js → p-003b40fc.entry.js} +1 -1
- package/dist/ionic/{p-63e09af5.entry.js → p-35aa95dc.entry.js} +1 -1
- package/dist/ionic/{p-6e0ce081.entry.js → p-575061c0.entry.js} +1 -1
- package/dist/ionic/p-c3335fe0.entry.js +4 -0
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +1 -4
- package/dist/types/components/alert/alert-interface.d.ts +1 -4
- package/dist/types/components/select/select-interface.d.ts +21 -0
- package/dist/types/components/select-modal/select-modal-interface.d.ts +1 -4
- package/dist/types/components/select-popover/select-popover-interface.d.ts +1 -4
- package/hydrate/index.js +91 -60
- package/hydrate/index.mjs +91 -60
- package/package.json +1 -1
- package/components/p-BDwab5EM.js +0 -4
- package/dist/ionic/p-d45b911b.entry.js +0 -4
|
@@ -173,25 +173,7 @@ export class Alert {
|
|
|
173
173
|
this.inputType = inputTypes.values().next().value;
|
|
174
174
|
this.processedInputs = inputs.map((i, index) => {
|
|
175
175
|
var _a;
|
|
176
|
-
return ({
|
|
177
|
-
type: i.type || 'text',
|
|
178
|
-
name: i.name || `${index}`,
|
|
179
|
-
placeholder: i.placeholder || '',
|
|
180
|
-
value: i.value,
|
|
181
|
-
label: i.label,
|
|
182
|
-
checked: !!i.checked,
|
|
183
|
-
disabled: !!i.disabled,
|
|
184
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
185
|
-
handler: i.handler,
|
|
186
|
-
min: i.min,
|
|
187
|
-
max: i.max,
|
|
188
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
189
|
-
attributes: i.attributes || {},
|
|
190
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
191
|
-
startContent: i.startContent,
|
|
192
|
-
endContent: i.endContent,
|
|
193
|
-
description: i.description,
|
|
194
|
-
});
|
|
176
|
+
return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
|
|
195
177
|
});
|
|
196
178
|
}
|
|
197
179
|
connectedCallback() {
|
|
@@ -380,12 +362,19 @@ export class Alert {
|
|
|
380
362
|
return null;
|
|
381
363
|
}
|
|
382
364
|
return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
365
|
+
/**
|
|
366
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
367
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
368
|
+
* that are passed through from `ion-select` but not
|
|
369
|
+
* part of the public `AlertInput` interface.
|
|
370
|
+
*/
|
|
371
|
+
const richInput = i;
|
|
383
372
|
const optionLabelOptions = {
|
|
384
|
-
id:
|
|
385
|
-
label:
|
|
386
|
-
startContent:
|
|
387
|
-
endContent:
|
|
388
|
-
description:
|
|
373
|
+
id: richInput.id,
|
|
374
|
+
label: richInput.label,
|
|
375
|
+
startContent: richInput.startContent,
|
|
376
|
+
endContent: richInput.endContent,
|
|
377
|
+
description: richInput.description,
|
|
389
378
|
};
|
|
390
379
|
return (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), theme === 'md' && h("ion-ripple-effect", null)));
|
|
391
380
|
})));
|
|
@@ -396,12 +385,19 @@ export class Alert {
|
|
|
396
385
|
return null;
|
|
397
386
|
}
|
|
398
387
|
return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
388
|
+
/**
|
|
389
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
390
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
391
|
+
* that are passed through from `ion-select` but not
|
|
392
|
+
* part of the public `AlertInput` interface.
|
|
393
|
+
*/
|
|
394
|
+
const richInput = i;
|
|
399
395
|
const optionLabelOptions = {
|
|
400
|
-
id:
|
|
401
|
-
label:
|
|
402
|
-
startContent:
|
|
403
|
-
endContent:
|
|
404
|
-
description:
|
|
396
|
+
id: richInput.id,
|
|
397
|
+
label: richInput.label,
|
|
398
|
+
startContent: richInput.startContent,
|
|
399
|
+
endContent: richInput.endContent,
|
|
400
|
+
description: richInput.description,
|
|
405
401
|
};
|
|
406
402
|
return (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
407
403
|
})));
|
|
@@ -463,9 +459,9 @@ export class Alert {
|
|
|
463
459
|
* If neither are defined, do not set aria-labelledby.
|
|
464
460
|
*/
|
|
465
461
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
466
|
-
return (h(Host, { key: '
|
|
462
|
+
return (h(Host, { key: '643939c4af9c1a68b60eea5724f8662f13bb3f72', tabindex: "-1", style: {
|
|
467
463
|
zIndex: `${20000 + overlayIndex}`,
|
|
468
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '
|
|
464
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '4780caec3fe71a8d5f2112b8b8726d5a7de91192', tappable: this.backdropDismiss }), h("div", { key: 'cc401fcade02bfc557820d31554d5e054da79b28', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '234caa09b6e0d224bdce0de0659dcdbd668cad91', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: 'c8c72cd019eace73b622f2510e533c281267c48a', class: "alert-head" }, header && (h("h2", { key: '0d95f68560dbb67721476d184df0d8654a07959c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '6444463a2aeef3f076b0bfdfeba4387ced177826', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a92d7b54567152b57a8ccab6840e851c8fe5a47b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '3ba2cdf15219f03123f6dd884eb7a4da38549c08', tabindex: "0", "aria-hidden": "true" })));
|
|
469
465
|
}
|
|
470
466
|
static get is() { return "ion-alert"; }
|
|
471
467
|
static get encapsulation() { return "scoped"; }
|
|
@@ -945,7 +945,7 @@ export class Select {
|
|
|
945
945
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
946
946
|
*/
|
|
947
947
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
948
|
-
return (h(Host, { key: '
|
|
948
|
+
return (h(Host, { key: '460ec72063e2f484a1fd0d7605739f4cef2d8c87', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
949
949
|
[theme]: true,
|
|
950
950
|
'in-item': inItem,
|
|
951
951
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -964,7 +964,7 @@ export class Select {
|
|
|
964
964
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
965
965
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
966
966
|
[`select-size-${size}`]: size !== undefined,
|
|
967
|
-
}) }, h("label", { key: '
|
|
967
|
+
}) }, h("label", { key: 'a553837e266ce48e17687ee7ff4027f69a2eff1e', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e5071d8ee5e4078887ac27a192aa95553a9f487d', class: "select-wrapper-inner", part: "inner" },
|
|
968
968
|
/**
|
|
969
969
|
* For the ionic theme, we render the outline container here
|
|
970
970
|
* instead of higher up, so it can be positioned relative to
|
|
@@ -974,7 +974,7 @@ export class Select {
|
|
|
974
974
|
* <label> element, ensuring that clicking the label text
|
|
975
975
|
* focuses the select.
|
|
976
976
|
*/
|
|
977
|
-
theme === 'ionic' && fill === 'outline' && h("div", { key: '
|
|
977
|
+
theme === 'ionic' && fill === 'outline' && h("div", { key: '04a19d0f8deff600f354c1e2682937884e8e3673', class: "select-outline" }), h("slot", { key: '51e50dccee39355a3ac78b615e4a7a71a371a744', name: "start" }), h("div", { key: '6bf71c54ee895db920d3f98ed7bc8869d9ea3874', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '2f9ebe8996ebfc8371116ec48ca4b750b8c42e43', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'cdf1742886c636270ada0b1e5c61faff40bacdc1', class: "select-highlight" })), this.renderBottomContent()));
|
|
978
978
|
}
|
|
979
979
|
static get is() { return "ion-select"; }
|
|
980
980
|
static get encapsulation() { return "shadow"; }
|
|
@@ -62,12 +62,19 @@ export class SelectModal {
|
|
|
62
62
|
renderRadioOptions() {
|
|
63
63
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
64
64
|
return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
65
|
+
/**
|
|
66
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
67
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
68
|
+
* that are passed through from `ion-select` but not
|
|
69
|
+
* part of the public `SelectModalOption` interface.
|
|
70
|
+
*/
|
|
71
|
+
const richOption = option;
|
|
65
72
|
const optionLabelOptions = {
|
|
66
73
|
id: `modal-option-${index}`,
|
|
67
|
-
label:
|
|
68
|
-
startContent:
|
|
69
|
-
endContent:
|
|
70
|
-
description:
|
|
74
|
+
label: richOption.text,
|
|
75
|
+
startContent: richOption.startContent,
|
|
76
|
+
endContent: richOption.endContent,
|
|
77
|
+
description: richOption.description,
|
|
71
78
|
};
|
|
72
79
|
return (h("ion-item", { lines: "none", class: Object.assign({
|
|
73
80
|
// TODO FW-4784
|
|
@@ -86,12 +93,19 @@ export class SelectModal {
|
|
|
86
93
|
}
|
|
87
94
|
renderCheckboxOptions() {
|
|
88
95
|
return this.options.map((option, index) => {
|
|
96
|
+
/**
|
|
97
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
98
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
99
|
+
* that are passed through from `ion-select` but not
|
|
100
|
+
* part of the public `SelectModalOption` interface.
|
|
101
|
+
*/
|
|
102
|
+
const richOption = option;
|
|
89
103
|
const optionLabelOptions = {
|
|
90
104
|
id: `modal-option-${index}`,
|
|
91
|
-
label:
|
|
92
|
-
startContent:
|
|
93
|
-
endContent:
|
|
94
|
-
description:
|
|
105
|
+
label: richOption.text,
|
|
106
|
+
startContent: richOption.startContent,
|
|
107
|
+
endContent: richOption.endContent,
|
|
108
|
+
description: richOption.description,
|
|
95
109
|
};
|
|
96
110
|
return (h("ion-item", { class: Object.assign({
|
|
97
111
|
// TODO FW-4784
|
|
@@ -105,7 +119,7 @@ export class SelectModal {
|
|
|
105
119
|
});
|
|
106
120
|
}
|
|
107
121
|
render() {
|
|
108
|
-
return (h(Host, { key: '
|
|
122
|
+
return (h(Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, h("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && h("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), h("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, h("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, h("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
109
123
|
}
|
|
110
124
|
static get is() { return "ion-select-modal"; }
|
|
111
125
|
static get encapsulation() { return "scoped"; }
|
|
@@ -77,12 +77,19 @@ export class SelectPopover {
|
|
|
77
77
|
}
|
|
78
78
|
renderCheckboxOptions(options) {
|
|
79
79
|
return options.map((option, index) => {
|
|
80
|
+
/**
|
|
81
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
82
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
83
|
+
* that are passed through from `ion-select` but not
|
|
84
|
+
* part of the public `SelectPopoverOption` interface.
|
|
85
|
+
*/
|
|
86
|
+
const richOption = option;
|
|
80
87
|
const optionLabelOptions = {
|
|
81
88
|
id: `popover-option-${index}`,
|
|
82
|
-
label:
|
|
83
|
-
startContent:
|
|
84
|
-
endContent:
|
|
85
|
-
description:
|
|
89
|
+
label: richOption.text,
|
|
90
|
+
startContent: richOption.startContent,
|
|
91
|
+
endContent: richOption.endContent,
|
|
92
|
+
description: richOption.description,
|
|
86
93
|
};
|
|
87
94
|
return (h("ion-item", { class: Object.assign({
|
|
88
95
|
// TODO FW-4784
|
|
@@ -98,12 +105,19 @@ export class SelectPopover {
|
|
|
98
105
|
renderRadioOptions(options) {
|
|
99
106
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
100
107
|
return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
108
|
+
/**
|
|
109
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
110
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
111
|
+
* that are passed through from `ion-select` but not
|
|
112
|
+
* part of the public `SelectPopoverOption` interface.
|
|
113
|
+
*/
|
|
114
|
+
const richOption = option;
|
|
101
115
|
const optionLabelOptions = {
|
|
102
116
|
id: `popover-option-${index}`,
|
|
103
|
-
label:
|
|
104
|
-
startContent:
|
|
105
|
-
endContent:
|
|
106
|
-
description:
|
|
117
|
+
label: richOption.text,
|
|
118
|
+
startContent: richOption.startContent,
|
|
119
|
+
endContent: richOption.endContent,
|
|
120
|
+
description: richOption.description,
|
|
107
121
|
};
|
|
108
122
|
return (h("ion-item", { class: Object.assign({
|
|
109
123
|
// TODO FW-4784
|
|
@@ -124,9 +138,9 @@ export class SelectPopover {
|
|
|
124
138
|
const { header, message, options, subHeader } = this;
|
|
125
139
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
126
140
|
const theme = getIonTheme(this);
|
|
127
|
-
return (h(Host, { key: '
|
|
141
|
+
return (h(Host, { key: 'cf05dabe58fcd71a74ac46ab8cb3da7dd687068f', class: {
|
|
128
142
|
[theme]: true,
|
|
129
|
-
} }, h("ion-list", { key: '
|
|
143
|
+
} }, h("ion-list", { key: 'a8367a02dd063da5b55ab133ccfa914990e86023' }, header !== undefined && h("ion-list-header", { key: 'a5c1442720cc3e4a7c629f459c34d7a70f7ee913' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '282735c1127096b1b0bf85b3fd20f26fe4535849' }, h("ion-label", { key: '42aa5709d92f7d0232ef07d607cf4ef19f9ad633', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'f89fee59d120604bc141ec5cc0a872e9c46fd059' }, subHeader), message !== undefined && h("p", { key: '4778170bb58e781570c448d5d5d485b7ac2c9a7a' }, message)))), this.renderOptions(options))));
|
|
130
144
|
}
|
|
131
145
|
static get is() { return "ion-select-popover"; }
|
|
132
146
|
static get encapsulation() { return "scoped"; }
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-04-
|
|
2
|
+
"timestamp": "2026-04-14T17:09:53",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.43.0",
|
|
@@ -46214,7 +46214,7 @@
|
|
|
46214
46214
|
"path": "src/interface.d.ts"
|
|
46215
46215
|
},
|
|
46216
46216
|
"src/components/action-sheet/action-sheet-interface.ts::ActionSheetButton": {
|
|
46217
|
-
"declaration": "export interface ActionSheetButton<T = any> {\n text?: string
|
|
46217
|
+
"declaration": "export interface ActionSheetButton<T = any> {\n text?: string;\n role?: LiteralUnion<'cancel' | 'destructive' | 'selected', string>;\n icon?: string;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n data?: T;\n /**\n * When `disabled` is `true` the action\n * sheet button will not be interactive. Note\n * that buttons with a 'cancel' role cannot\n * be disabled as that would make it difficult for\n * users to dismiss the action sheet.\n */\n disabled?: boolean;\n}",
|
|
46218
46218
|
"docstring": "",
|
|
46219
46219
|
"path": "src/components/action-sheet/action-sheet-interface.ts"
|
|
46220
46220
|
},
|
|
@@ -46234,7 +46234,7 @@
|
|
|
46234
46234
|
"path": "src/components/alert/alert-interface.ts"
|
|
46235
46235
|
},
|
|
46236
46236
|
"src/components/alert/alert-interface.ts::AlertInput": {
|
|
46237
|
-
"declaration": "export interface AlertInput {\n type?: TextFieldTypes | 'checkbox' | 'radio' | 'textarea';\n name?: string;\n placeholder?: string;\n value?: any; // TODO(FW-2832): type\n /**\n * The label text to display next to the input, if the input type is `radio` or `checkbox`.\n */\n label?: string
|
|
46237
|
+
"declaration": "export interface AlertInput {\n type?: TextFieldTypes | 'checkbox' | 'radio' | 'textarea';\n name?: string;\n placeholder?: string;\n value?: any; // TODO(FW-2832): type\n /**\n * The label text to display next to the input, if the input type is `radio` or `checkbox`.\n */\n label?: string;\n checked?: boolean;\n disabled?: boolean;\n id?: string;\n handler?: (input: AlertInput) => void;\n min?: string | number;\n max?: string | number;\n cssClass?: string | string[];\n attributes?: { [key: string]: any };\n tabindex?: number;\n}",
|
|
46238
46238
|
"docstring": "",
|
|
46239
46239
|
"path": "src/components/alert/alert-interface.ts"
|
|
46240
46240
|
},
|
|
@@ -46599,12 +46599,12 @@
|
|
|
46599
46599
|
"path": "src/components/select/select-interface.ts"
|
|
46600
46600
|
},
|
|
46601
46601
|
"src/components/select-modal/select-modal-interface.ts::SelectModalOption": {
|
|
46602
|
-
"declaration": "export interface SelectModalOption {\n text: string
|
|
46602
|
+
"declaration": "export interface SelectModalOption {\n text: string;\n value: string;\n disabled: boolean;\n checked: boolean;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void | { [key: string]: any };\n}",
|
|
46603
46603
|
"docstring": "",
|
|
46604
46604
|
"path": "src/components/select-modal/select-modal-interface.ts"
|
|
46605
46605
|
},
|
|
46606
46606
|
"src/components/select-popover/select-popover-interface.ts::SelectPopoverOption": {
|
|
46607
|
-
"declaration": "export interface SelectPopoverOption {\n text: string
|
|
46607
|
+
"declaration": "export interface SelectPopoverOption {\n text: string;\n value: string;\n disabled: boolean;\n checked: boolean;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void | { [key: string]: any };\n}",
|
|
46608
46608
|
"docstring": "",
|
|
46609
46609
|
"path": "src/components/select-popover/select-popover-interface.ts"
|
|
46610
46610
|
},
|
|
@@ -474,12 +474,19 @@ const ActionSheet = class {
|
|
|
474
474
|
if (isRadio) {
|
|
475
475
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
476
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Cast to `SelectActionSheetButton` to access rich content
|
|
479
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
480
|
+
* that are passed through from `ion-select` but not
|
|
481
|
+
* part of the public `ActionSheetButton` interface.
|
|
482
|
+
*/
|
|
483
|
+
const richButton = b;
|
|
477
484
|
const optionLabelOptions = {
|
|
478
485
|
id: buttonId,
|
|
479
|
-
label:
|
|
480
|
-
startContent:
|
|
481
|
-
endContent:
|
|
482
|
-
description:
|
|
486
|
+
label: richButton.text,
|
|
487
|
+
startContent: richButton.startContent,
|
|
488
|
+
endContent: richButton.endContent,
|
|
489
|
+
description: richButton.description,
|
|
483
490
|
};
|
|
484
491
|
return (h("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass(b)), { 'action-sheet-selected': isActiveRadio }), onClick: () => {
|
|
485
492
|
if (isRadio) {
|
|
@@ -496,12 +503,12 @@ const ActionSheet = class {
|
|
|
496
503
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
497
504
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
498
505
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
499
|
-
return (h(Host, Object.assign({ key: '
|
|
506
|
+
return (h(Host, Object.assign({ key: '8abe5fcc3941ca61ec313b4c47608c58c8eb2815', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
500
507
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
501
|
-
}, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '
|
|
508
|
+
}, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '773948649ab8de68d0d683f5f0665c0fb94446db', tappable: this.backdropDismiss }), h("div", { key: 'a107d07dc073c088da7059d2a96f393ae9a9e494', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '7a0468225a402e3ae72048d84abb48cdb940e8ca', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '6ba6a114547440c1e746a4fbba717954bfbe2a50', class: "action-sheet-container" }, h("div", { key: '4d9c249bdcfc0ab981d187edd3d4b1397cc59f5a', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: '325c63cf2a1b081d411b3c80b65fe403e9aaa298', id: headerID, class: {
|
|
502
509
|
'action-sheet-title': true,
|
|
503
510
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
504
|
-
} }, header, this.subHeader && h("div", { key: '
|
|
511
|
+
} }, header, this.subHeader && h("div", { key: '0ef643a1d43ab6f95017b55fe07ddc00e9a0a2f0', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: '4549b06fd306ccc029b8a8c9209dafa13e4af8e3', class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({ key: 'cd33e2fed14ec36bce0c882449831fb8685c26ab' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { key: '24717a96d90e806a1daddc78685d33afee6397ec', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: '9b3162193520f3e10db8f0ca016d367787848126', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && h("ion-ripple-effect", { key: '5f6e18c24164395393d4541de1fa60cd88e0f6ea' })))))), h("div", { key: '78a306469aafada4158d434502ab02c8d1fed2d0', tabindex: "0", "aria-hidden": "true" })));
|
|
505
512
|
}
|
|
506
513
|
get el() { return getElement(this); }
|
|
507
514
|
static get watchers() { return {
|
|
@@ -269,25 +269,7 @@ const Alert = class {
|
|
|
269
269
|
this.inputType = inputTypes.values().next().value;
|
|
270
270
|
this.processedInputs = inputs.map((i, index) => {
|
|
271
271
|
var _a;
|
|
272
|
-
return ({
|
|
273
|
-
type: i.type || 'text',
|
|
274
|
-
name: i.name || `${index}`,
|
|
275
|
-
placeholder: i.placeholder || '',
|
|
276
|
-
value: i.value,
|
|
277
|
-
label: i.label,
|
|
278
|
-
checked: !!i.checked,
|
|
279
|
-
disabled: !!i.disabled,
|
|
280
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
281
|
-
handler: i.handler,
|
|
282
|
-
min: i.min,
|
|
283
|
-
max: i.max,
|
|
284
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
285
|
-
attributes: i.attributes || {},
|
|
286
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
287
|
-
startContent: i.startContent,
|
|
288
|
-
endContent: i.endContent,
|
|
289
|
-
description: i.description,
|
|
290
|
-
});
|
|
272
|
+
return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
|
|
291
273
|
});
|
|
292
274
|
}
|
|
293
275
|
connectedCallback() {
|
|
@@ -476,12 +458,19 @@ const Alert = class {
|
|
|
476
458
|
return null;
|
|
477
459
|
}
|
|
478
460
|
return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
461
|
+
/**
|
|
462
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
463
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
464
|
+
* that are passed through from `ion-select` but not
|
|
465
|
+
* part of the public `AlertInput` interface.
|
|
466
|
+
*/
|
|
467
|
+
const richInput = i;
|
|
479
468
|
const optionLabelOptions = {
|
|
480
|
-
id:
|
|
481
|
-
label:
|
|
482
|
-
startContent:
|
|
483
|
-
endContent:
|
|
484
|
-
description:
|
|
469
|
+
id: richInput.id,
|
|
470
|
+
label: richInput.label,
|
|
471
|
+
startContent: richInput.startContent,
|
|
472
|
+
endContent: richInput.endContent,
|
|
473
|
+
description: richInput.description,
|
|
485
474
|
};
|
|
486
475
|
return (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), theme === 'md' && h("ion-ripple-effect", null)));
|
|
487
476
|
})));
|
|
@@ -492,12 +481,19 @@ const Alert = class {
|
|
|
492
481
|
return null;
|
|
493
482
|
}
|
|
494
483
|
return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
484
|
+
/**
|
|
485
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
486
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
487
|
+
* that are passed through from `ion-select` but not
|
|
488
|
+
* part of the public `AlertInput` interface.
|
|
489
|
+
*/
|
|
490
|
+
const richInput = i;
|
|
495
491
|
const optionLabelOptions = {
|
|
496
|
-
id:
|
|
497
|
-
label:
|
|
498
|
-
startContent:
|
|
499
|
-
endContent:
|
|
500
|
-
description:
|
|
492
|
+
id: richInput.id,
|
|
493
|
+
label: richInput.label,
|
|
494
|
+
startContent: richInput.startContent,
|
|
495
|
+
endContent: richInput.endContent,
|
|
496
|
+
description: richInput.description,
|
|
501
497
|
};
|
|
502
498
|
return (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
503
499
|
})));
|
|
@@ -559,9 +555,9 @@ const Alert = class {
|
|
|
559
555
|
* If neither are defined, do not set aria-labelledby.
|
|
560
556
|
*/
|
|
561
557
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
562
|
-
return (h(Host, { key: '
|
|
558
|
+
return (h(Host, { key: '643939c4af9c1a68b60eea5724f8662f13bb3f72', tabindex: "-1", style: {
|
|
563
559
|
zIndex: `${20000 + overlayIndex}`,
|
|
564
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '
|
|
560
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '4780caec3fe71a8d5f2112b8b8726d5a7de91192', tappable: this.backdropDismiss }), h("div", { key: 'cc401fcade02bfc557820d31554d5e054da79b28', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '234caa09b6e0d224bdce0de0659dcdbd668cad91', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: 'c8c72cd019eace73b622f2510e533c281267c48a', class: "alert-head" }, header && (h("h2", { key: '0d95f68560dbb67721476d184df0d8654a07959c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '6444463a2aeef3f076b0bfdfeba4387ced177826', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a92d7b54567152b57a8ccab6840e851c8fe5a47b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '3ba2cdf15219f03123f6dd884eb7a4da38549c08', tabindex: "0", "aria-hidden": "true" })));
|
|
565
561
|
}
|
|
566
562
|
get el() { return getElement(this); }
|
|
567
563
|
static get watchers() { return {
|
|
@@ -74,12 +74,19 @@ const SelectModal = class {
|
|
|
74
74
|
renderRadioOptions() {
|
|
75
75
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
76
76
|
return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
77
|
+
/**
|
|
78
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
79
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
80
|
+
* that are passed through from `ion-select` but not
|
|
81
|
+
* part of the public `SelectModalOption` interface.
|
|
82
|
+
*/
|
|
83
|
+
const richOption = option;
|
|
77
84
|
const optionLabelOptions = {
|
|
78
85
|
id: `modal-option-${index}`,
|
|
79
|
-
label:
|
|
80
|
-
startContent:
|
|
81
|
-
endContent:
|
|
82
|
-
description:
|
|
86
|
+
label: richOption.text,
|
|
87
|
+
startContent: richOption.startContent,
|
|
88
|
+
endContent: richOption.endContent,
|
|
89
|
+
description: richOption.description,
|
|
83
90
|
};
|
|
84
91
|
return (h("ion-item", { lines: "none", class: Object.assign({
|
|
85
92
|
// TODO FW-4784
|
|
@@ -98,12 +105,19 @@ const SelectModal = class {
|
|
|
98
105
|
}
|
|
99
106
|
renderCheckboxOptions() {
|
|
100
107
|
return this.options.map((option, index) => {
|
|
108
|
+
/**
|
|
109
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
110
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
111
|
+
* that are passed through from `ion-select` but not
|
|
112
|
+
* part of the public `SelectModalOption` interface.
|
|
113
|
+
*/
|
|
114
|
+
const richOption = option;
|
|
101
115
|
const optionLabelOptions = {
|
|
102
116
|
id: `modal-option-${index}`,
|
|
103
|
-
label:
|
|
104
|
-
startContent:
|
|
105
|
-
endContent:
|
|
106
|
-
description:
|
|
117
|
+
label: richOption.text,
|
|
118
|
+
startContent: richOption.startContent,
|
|
119
|
+
endContent: richOption.endContent,
|
|
120
|
+
description: richOption.description,
|
|
107
121
|
};
|
|
108
122
|
return (h("ion-item", { class: Object.assign({
|
|
109
123
|
// TODO FW-4784
|
|
@@ -117,7 +131,7 @@ const SelectModal = class {
|
|
|
117
131
|
});
|
|
118
132
|
}
|
|
119
133
|
render() {
|
|
120
|
-
return (h(Host, { key: '
|
|
134
|
+
return (h(Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, h("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && h("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), h("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, h("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, h("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
121
135
|
}
|
|
122
136
|
get el() { return getElement(this); }
|
|
123
137
|
};
|
|
@@ -895,7 +895,7 @@ const Select = class {
|
|
|
895
895
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
896
896
|
*/
|
|
897
897
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
898
|
-
return (h(Host, { key: '
|
|
898
|
+
return (h(Host, { key: '460ec72063e2f484a1fd0d7605739f4cef2d8c87', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
899
899
|
[theme]: true,
|
|
900
900
|
'in-item': inItem,
|
|
901
901
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -914,7 +914,7 @@ const Select = class {
|
|
|
914
914
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
915
915
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
916
916
|
[`select-size-${size}`]: size !== undefined,
|
|
917
|
-
}) }, h("label", { key: '
|
|
917
|
+
}) }, h("label", { key: 'a553837e266ce48e17687ee7ff4027f69a2eff1e', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e5071d8ee5e4078887ac27a192aa95553a9f487d', class: "select-wrapper-inner", part: "inner" },
|
|
918
918
|
/**
|
|
919
919
|
* For the ionic theme, we render the outline container here
|
|
920
920
|
* instead of higher up, so it can be positioned relative to
|
|
@@ -924,7 +924,7 @@ const Select = class {
|
|
|
924
924
|
* <label> element, ensuring that clicking the label text
|
|
925
925
|
* focuses the select.
|
|
926
926
|
*/
|
|
927
|
-
theme === 'ionic' && fill === 'outline' && h("div", { key: '
|
|
927
|
+
theme === 'ionic' && fill === 'outline' && h("div", { key: '04a19d0f8deff600f354c1e2682937884e8e3673', class: "select-outline" }), h("slot", { key: '51e50dccee39355a3ac78b615e4a7a71a371a744', name: "start" }), h("div", { key: '6bf71c54ee895db920d3f98ed7bc8869d9ea3874', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '2f9ebe8996ebfc8371116ec48ca4b750b8c42e43', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'cdf1742886c636270ada0b1e5c61faff40bacdc1', class: "select-highlight" })), this.renderBottomContent()));
|
|
928
928
|
}
|
|
929
929
|
get el() { return getElement(this); }
|
|
930
930
|
static get watchers() { return {
|
|
@@ -1151,12 +1151,19 @@ const SelectPopover = class {
|
|
|
1151
1151
|
}
|
|
1152
1152
|
renderCheckboxOptions(options) {
|
|
1153
1153
|
return options.map((option, index) => {
|
|
1154
|
+
/**
|
|
1155
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
1156
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
1157
|
+
* that are passed through from `ion-select` but not
|
|
1158
|
+
* part of the public `SelectPopoverOption` interface.
|
|
1159
|
+
*/
|
|
1160
|
+
const richOption = option;
|
|
1154
1161
|
const optionLabelOptions = {
|
|
1155
1162
|
id: `popover-option-${index}`,
|
|
1156
|
-
label:
|
|
1157
|
-
startContent:
|
|
1158
|
-
endContent:
|
|
1159
|
-
description:
|
|
1163
|
+
label: richOption.text,
|
|
1164
|
+
startContent: richOption.startContent,
|
|
1165
|
+
endContent: richOption.endContent,
|
|
1166
|
+
description: richOption.description,
|
|
1160
1167
|
};
|
|
1161
1168
|
return (h("ion-item", { class: Object.assign({
|
|
1162
1169
|
// TODO FW-4784
|
|
@@ -1172,12 +1179,19 @@ const SelectPopover = class {
|
|
|
1172
1179
|
renderRadioOptions(options) {
|
|
1173
1180
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
1174
1181
|
return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
1182
|
+
/**
|
|
1183
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
1184
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
1185
|
+
* that are passed through from `ion-select` but not
|
|
1186
|
+
* part of the public `SelectPopoverOption` interface.
|
|
1187
|
+
*/
|
|
1188
|
+
const richOption = option;
|
|
1175
1189
|
const optionLabelOptions = {
|
|
1176
1190
|
id: `popover-option-${index}`,
|
|
1177
|
-
label:
|
|
1178
|
-
startContent:
|
|
1179
|
-
endContent:
|
|
1180
|
-
description:
|
|
1191
|
+
label: richOption.text,
|
|
1192
|
+
startContent: richOption.startContent,
|
|
1193
|
+
endContent: richOption.endContent,
|
|
1194
|
+
description: richOption.description,
|
|
1181
1195
|
};
|
|
1182
1196
|
return (h("ion-item", { class: Object.assign({
|
|
1183
1197
|
// TODO FW-4784
|
|
@@ -1198,9 +1212,9 @@ const SelectPopover = class {
|
|
|
1198
1212
|
const { header, message, options, subHeader } = this;
|
|
1199
1213
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
1200
1214
|
const theme = getIonTheme(this);
|
|
1201
|
-
return (h(Host, { key: '
|
|
1215
|
+
return (h(Host, { key: 'cf05dabe58fcd71a74ac46ab8cb3da7dd687068f', class: {
|
|
1202
1216
|
[theme]: true,
|
|
1203
|
-
} }, h("ion-list", { key: '
|
|
1217
|
+
} }, h("ion-list", { key: 'a8367a02dd063da5b55ab133ccfa914990e86023' }, header !== undefined && h("ion-list-header", { key: 'a5c1442720cc3e4a7c629f459c34d7a70f7ee913' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '282735c1127096b1b0bf85b3fd20f26fe4535849' }, h("ion-label", { key: '42aa5709d92f7d0232ef07d607cf4ef19f9ad633', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'f89fee59d120604bc141ec5cc0a872e9c46fd059' }, subHeader), message !== undefined && h("p", { key: '4778170bb58e781570c448d5d5d485b7ac2c9a7a' }, message)))), this.renderOptions(options))));
|
|
1204
1218
|
}
|
|
1205
1219
|
get el() { return getElement(this); }
|
|
1206
1220
|
};
|