@ionic/core 8.3.4-dev.11730315987.18af6259 → 8.3.4-dev.11730395663.1a0f4848
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-segment-button.js +24 -5
- package/components/ion-segment-content.d.ts +11 -0
- package/components/ion-segment-content.js +37 -0
- package/components/ion-segment-view.d.ts +11 -0
- package/components/ion-segment-view.js +140 -0
- package/components/ion-segment.js +110 -15
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +2 -2
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-textarea.js +2 -2
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +3 -3
- package/components/select-modal.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/components/title.js +2 -2
- package/components/toolbar.js +2 -2
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-content.cjs.entry.js +23 -0
- package/dist/cjs/ion-segment-view.cjs.entry.js +122 -0
- package/dist/cjs/ion-segment_2.cjs.entry.js +132 -19
- package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +2 -2
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/segment/segment.js +115 -14
- package/dist/collection/components/segment-button/segment-button.js +40 -5
- package/dist/collection/components/segment-content/segment-content.css +6 -0
- package/dist/collection/components/segment-content/segment-content.js +21 -0
- package/dist/collection/components/segment-view/segment-view-interface.js +1 -0
- package/dist/collection/components/segment-view/segment-view.ios.css +83 -0
- package/dist/collection/components/segment-view/segment-view.js +227 -0
- package/dist/collection/components/segment-view/segment-view.md.css +83 -0
- package/dist/collection/components/select/select.js +2 -2
- package/dist/collection/components/select-modal/select-modal.js +1 -1
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/docs.json +132 -1
- package/dist/esm/ion-app_8.entry.js +4 -4
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-segment-content.entry.js +19 -0
- package/dist/esm/ion-segment-view.entry.js +118 -0
- package/dist/esm/ion-segment_2.entry.js +132 -19
- package/dist/esm/ion-select-modal.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +4 -4
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +2 -2
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-segment-content.entry.js +4 -0
- package/dist/esm-es5/ion-segment-view.entry.js +4 -0
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/html.html-data.json +37 -0
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-14be4015.entry.js +4 -0
- package/dist/ionic/{p-8c357539.entry.js → p-16188af7.entry.js} +1 -1
- package/dist/ionic/p-16799667.system.entry.js +4 -0
- package/dist/ionic/p-16bfb979.system.entry.js +4 -0
- package/dist/ionic/{p-da6ce51b.system.entry.js → p-2172893e.system.entry.js} +2 -2
- package/dist/ionic/{p-5e890005.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
- package/dist/ionic/{p-2407875c.system.entry.js → p-2b838f86.system.entry.js} +1 -1
- package/dist/ionic/{p-249b6d9d.entry.js → p-312d16df.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +1 -1
- package/dist/ionic/p-424eb140.system.entry.js +4 -0
- package/dist/ionic/p-49a0e74c.entry.js +4 -0
- package/dist/ionic/{p-aa5f43c1.entry.js → p-4ec778aa.entry.js} +1 -1
- package/dist/ionic/{p-d8097686.entry.js → p-52f9cf4b.entry.js} +1 -1
- package/dist/ionic/{p-540db186.system.entry.js → p-5972efea.system.entry.js} +1 -1
- package/dist/ionic/{p-f1b9c92a.entry.js → p-5ab1b709.entry.js} +1 -1
- package/dist/ionic/{p-0de13e8e.entry.js → p-5b932840.entry.js} +1 -1
- package/dist/ionic/{p-a6827f02.entry.js → p-62af944c.entry.js} +1 -1
- package/dist/ionic/{p-cca6e227.system.entry.js → p-6a901f69.system.entry.js} +1 -1
- package/dist/ionic/p-73dc4950.entry.js +4 -0
- package/dist/ionic/{p-5e9a7134.system.entry.js → p-797eeea8.system.entry.js} +1 -1
- package/dist/ionic/{p-90d1e6e2.entry.js → p-845f8376.entry.js} +1 -1
- package/dist/ionic/{p-430f30e8.entry.js → p-95775830.entry.js} +1 -1
- package/dist/ionic/{p-e629a9fb.system.entry.js → p-975fc268.system.entry.js} +1 -1
- package/dist/ionic/{p-5663547d.entry.js → p-98ff6b32.entry.js} +1 -1
- package/dist/ionic/p-adbc4bdf.entry.js +4 -0
- package/dist/ionic/{p-9cb9edb5.system.entry.js → p-b1e1364f.system.entry.js} +1 -1
- package/dist/ionic/p-c2b74d92.system.entry.js +4 -0
- package/dist/ionic/{p-08f910f4.entry.js → p-e9a173ed.entry.js} +1 -1
- package/dist/ionic/{p-3ef0ebd1.system.entry.js → p-ebf042e0.system.entry.js} +1 -1
- package/dist/ionic/{p-471b5a49.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
- package/dist/ionic/{p-d3eaac24.entry.js → p-eedf2757.entry.js} +1 -1
- package/dist/ionic/{p-c25cf9e8.system.entry.js → p-f4bc18a1.system.entry.js} +1 -1
- package/dist/ionic/{p-2e1c94d5.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
- package/dist/types/components/segment/segment.d.ts +21 -1
- package/dist/types/components/segment-button/segment-button.d.ts +4 -0
- package/dist/types/components/segment-content/segment-content.d.ts +4 -0
- package/dist/types/components/segment-view/segment-view-interface.d.ts +4 -0
- package/dist/types/components/segment-view/segment-view.d.ts +55 -0
- package/dist/types/components.d.ts +68 -0
- package/hydrate/index.js +312 -51
- package/hydrate/index.mjs +312 -51
- package/package.json +1 -1
- package/dist/ionic/p-3254d107.entry.js +0 -4
- package/dist/ionic/p-457998b5.entry.js +0 -4
- package/dist/ionic/p-a62911e6.system.entry.js +0 -4
- package/dist/ionic/p-adcb6def.system.entry.js +0 -4
|
@@ -14,7 +14,7 @@ const Thumbnail = /*@__PURE__*/ proxyCustomElement(class Thumbnail extends HTMLE
|
|
|
14
14
|
this.__attachShadow();
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (h(Host, { key: '
|
|
17
|
+
return (h(Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: getIonMode(this) }, h("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
|
|
18
18
|
}
|
|
19
19
|
static get style() { return IonThumbnailStyle0; }
|
|
20
20
|
}, [1, "ion-thumbnail"]);
|
package/components/ion-toast.js
CHANGED
|
@@ -831,9 +831,9 @@ const Toast = /*@__PURE__*/ proxyCustomElement(class Toast extends HTMLElement {
|
|
|
831
831
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
832
832
|
printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
833
833
|
}
|
|
834
|
-
return (h(Host, Object.assign({ key: '
|
|
834
|
+
return (h(Host, Object.assign({ key: 'c05655ff06af8d0e48c2a85396b07ad942fa81b4', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
835
835
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
836
|
-
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '
|
|
836
|
+
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '9393ead4de1bf28529661d6f64049d34e18d725c', class: wrapperClass }, h("div", { key: '3e9dd73c17c337849c3f26e8d0f395b3e5ee20a7', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '5d15b18364301ad55e44e9f601014ac33181590b', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'f6dd164502637a882c5caf18445d8509b85ad6f9', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
837
837
|
}
|
|
838
838
|
get el() { return this; }
|
|
839
839
|
static get watchers() { return {
|
package/components/ion-toggle.js
CHANGED
|
@@ -161,7 +161,7 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
|
|
|
161
161
|
const value = this.getValue();
|
|
162
162
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
163
163
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
164
|
-
return (h(Host, { key: '
|
|
164
|
+
return (h(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses(color, {
|
|
165
165
|
[mode]: true,
|
|
166
166
|
'in-item': hostContext('ion-item', el),
|
|
167
167
|
'toggle-activated': activated,
|
|
@@ -171,10 +171,10 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
|
|
|
171
171
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
172
172
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
173
173
|
[`toggle-${rtl}`]: true,
|
|
174
|
-
}) }, h("label", { key: '
|
|
174
|
+
}) }, h("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
|
|
175
175
|
'label-text-wrapper': true,
|
|
176
176
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
177
|
-
}, part: "label" }, h("slot", { key: '
|
|
177
|
+
}, part: "label" }, h("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), h("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
178
178
|
}
|
|
179
179
|
get el() { return this; }
|
|
180
180
|
static get watchers() { return {
|
|
@@ -102,7 +102,7 @@ const SelectModal = /*@__PURE__*/ proxyCustomElement(class SelectModal extends H
|
|
|
102
102
|
} }, option.text))));
|
|
103
103
|
}
|
|
104
104
|
render() {
|
|
105
|
-
return (h(Host, { key: '
|
|
105
|
+
return (h(Host, { key: 'f4b92f4fc3d646f9a327e43a9622abaf69659c28', class: getIonMode(this) }, h("ion-header", { key: '11232ef496e7abd69e55cef988963a4869a7b01e' }, h("ion-toolbar", { key: 'e7c41878691a504d44c658db02807867df542588' }, this.header !== undefined && h("ion-title", { key: 'fcf9d33e0f3e0076ff14805de68848f9ef199cca' }, this.header), h("ion-buttons", { key: '748a967ae0ce68bc2fd018a6b9ebe0e4b810f6ac', slot: "end" }, h("ion-button", { key: 'f5e60791870b5085a31b7af70ed4bb3fb83eb185', onClick: () => this.closeModal() }, "Close")))), h("ion-content", { key: '159797957b6f788a9b393d91864c18db34481c68' }, h("ion-list", { key: '4124554fe8b2411637cbf02f08e50e0d8f804175' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
106
106
|
}
|
|
107
107
|
get el() { return this; }
|
|
108
108
|
static get style() { return {
|
|
@@ -117,7 +117,7 @@ const SelectPopover = /*@__PURE__*/ proxyCustomElement(class SelectPopover exten
|
|
|
117
117
|
render() {
|
|
118
118
|
const { header, message, options, subHeader } = this;
|
|
119
119
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
120
|
-
return (h(Host, { key: '
|
|
120
|
+
return (h(Host, { key: 'dd0990db4de4f175b176b27f35501dd1604ca400', class: getIonMode(this) }, h("ion-list", { key: 'cea2bc3687b8b2490a2a9ff4a1e16cd34169558e' }, header !== undefined && h("ion-list-header", { key: '194aebb53453c43f913daae45a1a3066a1708c4c' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'b706b07a3c63ad8104d2db413e210c735ec1bec9' }, h("ion-label", { key: '6e52b5b4cf6b04ff3dd5671d64264233de4190d5', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: '6ef4440d17f5db8c96c63b9aa5073f4fe4b8ad62' }, subHeader), message !== undefined && h("p", { key: 'c7b3b76c30ecd606c0e985a0258c13d3a75756e7' }, message)))), this.renderOptions(options))));
|
|
121
121
|
}
|
|
122
122
|
get el() { return this; }
|
|
123
123
|
static get style() { return {
|
package/components/spinner.js
CHANGED
|
@@ -185,7 +185,7 @@ const Spinner = /*@__PURE__*/ proxyCustomElement(class Spinner extends HTMLEleme
|
|
|
185
185
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
return (h(Host, { key: '
|
|
188
|
+
return (h(Host, { key: '9d30ee9f5aa0dd0e220da07e75d05b8b2435224d', class: createColorClasses(self.color, {
|
|
189
189
|
[mode]: true,
|
|
190
190
|
[`spinner-${spinnerName}`]: true,
|
|
191
191
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
package/components/title.js
CHANGED
|
@@ -38,11 +38,11 @@ const ToolbarTitle = /*@__PURE__*/ proxyCustomElement(class ToolbarTitle extends
|
|
|
38
38
|
render() {
|
|
39
39
|
const mode = getIonMode(this);
|
|
40
40
|
const size = this.getSize();
|
|
41
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: createColorClasses(this.color, {
|
|
42
42
|
[mode]: true,
|
|
43
43
|
[`title-${size}`]: true,
|
|
44
44
|
'title-rtl': document.dir === 'rtl',
|
|
45
|
-
}) }, h("div", { key: '
|
|
45
|
+
}) }, h("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, h("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
|
|
46
46
|
}
|
|
47
47
|
get el() { return this; }
|
|
48
48
|
static get watchers() { return {
|
package/components/toolbar.js
CHANGED
|
@@ -63,10 +63,10 @@ const Toolbar = /*@__PURE__*/ proxyCustomElement(class Toolbar extends HTMLEleme
|
|
|
63
63
|
this.childrenStyles.forEach((value) => {
|
|
64
64
|
Object.assign(childStyles, value);
|
|
65
65
|
});
|
|
66
|
-
return (h(Host, { key: '
|
|
66
|
+
return (h(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
|
|
67
67
|
[mode]: true,
|
|
68
68
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
69
|
-
})) }, h("div", { key: '
|
|
69
|
+
})) }, h("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), h("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, h("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), h("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), h("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, h("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), h("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), h("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
|
|
70
70
|
}
|
|
71
71
|
get el() { return this; }
|
|
72
72
|
static get style() { return {
|
|
@@ -1221,11 +1221,11 @@ const ToolbarTitle = class {
|
|
|
1221
1221
|
render() {
|
|
1222
1222
|
const mode = ionicGlobal.getIonMode(this);
|
|
1223
1223
|
const size = this.getSize();
|
|
1224
|
-
return (index.h(index.Host, { key: '
|
|
1224
|
+
return (index.h(index.Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: theme.createColorClasses(this.color, {
|
|
1225
1225
|
[mode]: true,
|
|
1226
1226
|
[`title-${size}`]: true,
|
|
1227
1227
|
'title-rtl': document.dir === 'rtl',
|
|
1228
|
-
}) }, index.h("div", { key: '
|
|
1228
|
+
}) }, index.h("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, index.h("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
|
|
1229
1229
|
}
|
|
1230
1230
|
get el() { return index.getElement(this); }
|
|
1231
1231
|
static get watchers() { return {
|
|
@@ -1293,10 +1293,10 @@ const Toolbar = class {
|
|
|
1293
1293
|
this.childrenStyles.forEach((value) => {
|
|
1294
1294
|
Object.assign(childStyles, value);
|
|
1295
1295
|
});
|
|
1296
|
-
return (index.h(index.Host, { key: '
|
|
1296
|
+
return (index.h(index.Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
|
|
1297
1297
|
[mode]: true,
|
|
1298
1298
|
'in-toolbar': theme.hostContext('ion-toolbar', this.el),
|
|
1299
|
-
})) }, index.h("div", { key: '
|
|
1299
|
+
})) }, index.h("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), index.h("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, index.h("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), index.h("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), index.h("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, index.h("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), index.h("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), index.h("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
|
|
1300
1300
|
}
|
|
1301
1301
|
get el() { return index.getElement(this); }
|
|
1302
1302
|
};
|
|
@@ -59,7 +59,7 @@ const Thumbnail = class {
|
|
|
59
59
|
index.registerInstance(this, hostRef);
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
62
|
-
return (index.h(index.Host, { key: '
|
|
62
|
+
return (index.h(index.Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: ionicGlobal.getIonMode(this) }, index.h("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
Thumbnail.style = IonThumbnailStyle0;
|
|
@@ -474,11 +474,11 @@ const SkeletonText = class {
|
|
|
474
474
|
const animated = this.animated && ionicGlobal.config.getBoolean('animated', true);
|
|
475
475
|
const inMedia = theme.hostContext('ion-avatar', this.el) || theme.hostContext('ion-thumbnail', this.el);
|
|
476
476
|
const mode = ionicGlobal.getIonMode(this);
|
|
477
|
-
return (index.h(index.Host, { key: '
|
|
477
|
+
return (index.h(index.Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
|
|
478
478
|
[mode]: true,
|
|
479
479
|
'skeleton-text-animated': animated,
|
|
480
480
|
'in-media': inMedia,
|
|
481
|
-
} }, index.h("span", { key: '
|
|
481
|
+
} }, index.h("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
|
|
482
482
|
}
|
|
483
483
|
get el() { return index.getElement(this); }
|
|
484
484
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-73f75efb.js');
|
|
9
|
+
|
|
10
|
+
const segmentContentCss = ":host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}";
|
|
11
|
+
const IonSegmentContentStyle0 = segmentContentCss;
|
|
12
|
+
|
|
13
|
+
const SegmentContent = class {
|
|
14
|
+
constructor(hostRef) {
|
|
15
|
+
index.registerInstance(this, hostRef);
|
|
16
|
+
}
|
|
17
|
+
render() {
|
|
18
|
+
return (index.h(index.Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, index.h("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
SegmentContent.style = IonSegmentContentStyle0;
|
|
22
|
+
|
|
23
|
+
exports.ion_segment_content = SegmentContent;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-73f75efb.js');
|
|
9
|
+
|
|
10
|
+
const segmentViewIosCss = ":host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}";
|
|
11
|
+
const IonSegmentViewIosStyle0 = segmentViewIosCss;
|
|
12
|
+
|
|
13
|
+
const segmentViewMdCss = ":host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}";
|
|
14
|
+
const IonSegmentViewMdStyle0 = segmentViewMdCss;
|
|
15
|
+
|
|
16
|
+
const SegmentView = class {
|
|
17
|
+
constructor(hostRef) {
|
|
18
|
+
index.registerInstance(this, hostRef);
|
|
19
|
+
this.ionSegmentViewScroll = index.createEvent(this, "ionSegmentViewScroll", 7);
|
|
20
|
+
this.scrollEndTimeout = null;
|
|
21
|
+
this.isTouching = false;
|
|
22
|
+
this.disabled = false;
|
|
23
|
+
this.isManualScroll = undefined;
|
|
24
|
+
}
|
|
25
|
+
handleScroll(ev) {
|
|
26
|
+
var _a;
|
|
27
|
+
const { scrollLeft, scrollWidth, clientWidth } = ev.target;
|
|
28
|
+
const scrollRatio = scrollLeft / (scrollWidth - clientWidth);
|
|
29
|
+
this.ionSegmentViewScroll.emit({
|
|
30
|
+
scrollRatio,
|
|
31
|
+
isManualScroll: (_a = this.isManualScroll) !== null && _a !== void 0 ? _a : true,
|
|
32
|
+
});
|
|
33
|
+
// Reset the timeout to check for scroll end
|
|
34
|
+
this.resetScrollEndTimeout();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Handle touch start event to know when the user is actively dragging the segment view.
|
|
38
|
+
*/
|
|
39
|
+
handleScrollStart() {
|
|
40
|
+
if (this.scrollEndTimeout) {
|
|
41
|
+
clearTimeout(this.scrollEndTimeout);
|
|
42
|
+
this.scrollEndTimeout = null;
|
|
43
|
+
}
|
|
44
|
+
this.isTouching = true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Handle touch end event to know when the user is no longer dragging the segment view.
|
|
48
|
+
*/
|
|
49
|
+
handleTouchEnd() {
|
|
50
|
+
this.isTouching = false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Reset the scroll end detection timer. This is called on every scroll event.
|
|
54
|
+
*/
|
|
55
|
+
resetScrollEndTimeout() {
|
|
56
|
+
if (this.scrollEndTimeout) {
|
|
57
|
+
clearTimeout(this.scrollEndTimeout);
|
|
58
|
+
this.scrollEndTimeout = null;
|
|
59
|
+
}
|
|
60
|
+
this.scrollEndTimeout = setTimeout(() => {
|
|
61
|
+
this.checkForScrollEnd();
|
|
62
|
+
},
|
|
63
|
+
// Setting this to a lower value may result in inconsistencies in behavior
|
|
64
|
+
// across browsers (particularly Firefox).
|
|
65
|
+
// Ideally, all of this logic is removed once the scroll end event is
|
|
66
|
+
// supported on all browsers (https://caniuse.com/?search=scrollend)
|
|
67
|
+
100);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if the scroll has ended and the user is not actively touching.
|
|
71
|
+
* If the conditions are met (active content is enabled and no active touch),
|
|
72
|
+
* reset the scroll position and emit the scroll end event.
|
|
73
|
+
*/
|
|
74
|
+
checkForScrollEnd() {
|
|
75
|
+
// Only emit scroll end event if the active content is not disabled and
|
|
76
|
+
// the user is not touching the segment view
|
|
77
|
+
if (!this.isTouching) {
|
|
78
|
+
this.isManualScroll = undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @internal
|
|
83
|
+
*
|
|
84
|
+
* This method is used to programmatically set the displayed segment content
|
|
85
|
+
* in the segment view. Calling this method will update the `value` of the
|
|
86
|
+
* corresponding segment button.
|
|
87
|
+
*
|
|
88
|
+
* @param id: The id of the segment content to display.
|
|
89
|
+
* @param smoothScroll: Whether to animate the scroll transition.
|
|
90
|
+
*/
|
|
91
|
+
async setContent(id, smoothScroll = true) {
|
|
92
|
+
const contents = this.getSegmentContents();
|
|
93
|
+
const index = contents.findIndex((content) => content.id === id);
|
|
94
|
+
if (index === -1)
|
|
95
|
+
return;
|
|
96
|
+
this.isManualScroll = false;
|
|
97
|
+
this.resetScrollEndTimeout();
|
|
98
|
+
const contentWidth = this.el.offsetWidth;
|
|
99
|
+
this.el.scrollTo({
|
|
100
|
+
top: 0,
|
|
101
|
+
left: index * contentWidth,
|
|
102
|
+
behavior: smoothScroll ? 'smooth' : 'instant',
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
getSegmentContents() {
|
|
106
|
+
return Array.from(this.el.querySelectorAll('ion-segment-content'));
|
|
107
|
+
}
|
|
108
|
+
render() {
|
|
109
|
+
const { disabled, isManualScroll } = this;
|
|
110
|
+
return (index.h(index.Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
|
|
111
|
+
'segment-view-disabled': disabled,
|
|
112
|
+
'segment-view-scroll-disabled': isManualScroll === false,
|
|
113
|
+
} }, index.h("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
|
|
114
|
+
}
|
|
115
|
+
get el() { return index.getElement(this); }
|
|
116
|
+
};
|
|
117
|
+
SegmentView.style = {
|
|
118
|
+
ios: IonSegmentViewIosStyle0,
|
|
119
|
+
md: IonSegmentViewMdStyle0
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
exports.ion_segment_view = SegmentView;
|
|
@@ -23,6 +23,7 @@ const Segment = class {
|
|
|
23
23
|
this.ionChange = index.createEvent(this, "ionChange", 7);
|
|
24
24
|
this.ionSelect = index.createEvent(this, "ionSelect", 7);
|
|
25
25
|
this.ionStyle = index.createEvent(this, "ionStyle", 7);
|
|
26
|
+
this.segmentViewEl = null;
|
|
26
27
|
this.onClick = (ev) => {
|
|
27
28
|
const current = ev.target;
|
|
28
29
|
const previous = this.checked;
|
|
@@ -37,7 +38,13 @@ const Segment = class {
|
|
|
37
38
|
if (current !== previous) {
|
|
38
39
|
this.emitValueChange();
|
|
39
40
|
}
|
|
40
|
-
if (this.
|
|
41
|
+
if (this.segmentViewEl) {
|
|
42
|
+
this.updateSegmentView();
|
|
43
|
+
if (this.scrollable && previous) {
|
|
44
|
+
this.checkButton(previous, current);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (this.scrollable || !this.swipeGesture) {
|
|
41
48
|
if (previous) {
|
|
42
49
|
this.checkButton(previous, current);
|
|
43
50
|
}
|
|
@@ -93,19 +100,49 @@ const Segment = class {
|
|
|
93
100
|
swipeGestureChanged() {
|
|
94
101
|
this.gestureChanged();
|
|
95
102
|
}
|
|
96
|
-
valueChanged(value) {
|
|
103
|
+
valueChanged(value, oldValue) {
|
|
104
|
+
// Force a value to exist if we're using a segment view
|
|
105
|
+
if (this.segmentViewEl && value === undefined) {
|
|
106
|
+
this.value = this.getButtons()[0].value;
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (oldValue !== undefined && value !== undefined) {
|
|
110
|
+
const buttons = this.getButtons();
|
|
111
|
+
const previous = buttons.find((button) => button.value === oldValue);
|
|
112
|
+
const current = buttons.find((button) => button.value === value);
|
|
113
|
+
if (previous && current) {
|
|
114
|
+
if (!this.segmentViewEl) {
|
|
115
|
+
this.checkButton(previous, current);
|
|
116
|
+
}
|
|
117
|
+
else if (this.triggerScrollOnValueChange !== false) {
|
|
118
|
+
this.updateSegmentView();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if (value !== undefined && oldValue === undefined && this.segmentViewEl) {
|
|
123
|
+
this.updateSegmentView();
|
|
124
|
+
}
|
|
97
125
|
/**
|
|
98
126
|
* `ionSelect` is emitted every time the value changes (internal or external changes).
|
|
99
127
|
* Used by `ion-segment-button` to determine if the button should be checked.
|
|
100
128
|
*/
|
|
101
129
|
this.ionSelect.emit({ value });
|
|
102
|
-
|
|
130
|
+
// The scroll listener should handle scrolling the active button into view as needed
|
|
131
|
+
if (!this.segmentViewEl) {
|
|
132
|
+
this.scrollActiveButtonIntoView();
|
|
133
|
+
}
|
|
134
|
+
this.triggerScrollOnValueChange = undefined;
|
|
103
135
|
}
|
|
104
136
|
disabledChanged() {
|
|
105
137
|
this.gestureChanged();
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
button
|
|
138
|
+
if (!this.segmentViewEl) {
|
|
139
|
+
const buttons = this.getButtons();
|
|
140
|
+
for (const button of buttons) {
|
|
141
|
+
button.disabled = this.disabled;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.segmentViewEl.disabled = this.disabled;
|
|
109
146
|
}
|
|
110
147
|
}
|
|
111
148
|
gestureChanged() {
|
|
@@ -115,6 +152,10 @@ const Segment = class {
|
|
|
115
152
|
}
|
|
116
153
|
connectedCallback() {
|
|
117
154
|
this.emitStyle();
|
|
155
|
+
this.segmentViewEl = this.getSegmentView();
|
|
156
|
+
}
|
|
157
|
+
disconnectedCallback() {
|
|
158
|
+
this.segmentViewEl = null;
|
|
118
159
|
}
|
|
119
160
|
componentWillLoad() {
|
|
120
161
|
this.emitStyle();
|
|
@@ -148,6 +189,9 @@ const Segment = class {
|
|
|
148
189
|
if (this.disabled) {
|
|
149
190
|
this.disabledChanged();
|
|
150
191
|
}
|
|
192
|
+
// Update segment view based on the initial value,
|
|
193
|
+
// but do not animate the scroll
|
|
194
|
+
this.updateSegmentView(false);
|
|
151
195
|
}
|
|
152
196
|
onStart(detail) {
|
|
153
197
|
this.valueBeforeGesture = this.value;
|
|
@@ -164,6 +208,7 @@ const Segment = class {
|
|
|
164
208
|
if (value !== undefined) {
|
|
165
209
|
if (this.valueBeforeGesture !== value) {
|
|
166
210
|
this.emitValueChange();
|
|
211
|
+
this.updateSegmentView();
|
|
167
212
|
}
|
|
168
213
|
}
|
|
169
214
|
this.valueBeforeGesture = undefined;
|
|
@@ -191,12 +236,7 @@ const Segment = class {
|
|
|
191
236
|
setActivated(activated) {
|
|
192
237
|
const buttons = this.getButtons();
|
|
193
238
|
buttons.forEach((button) => {
|
|
194
|
-
|
|
195
|
-
button.classList.add('segment-button-activated');
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
button.classList.remove('segment-button-activated');
|
|
199
|
-
}
|
|
239
|
+
button.classList.toggle('segment-button-activated', activated);
|
|
200
240
|
});
|
|
201
241
|
this.activated = activated;
|
|
202
242
|
}
|
|
@@ -247,6 +287,7 @@ const Segment = class {
|
|
|
247
287
|
currentIndicator.classList.add('segment-button-indicator-animated');
|
|
248
288
|
// Remove the transform to slide the indicator back to the button clicked
|
|
249
289
|
currentIndicator.style.setProperty('transform', '');
|
|
290
|
+
this.scrollActiveButtonIntoView(true);
|
|
250
291
|
});
|
|
251
292
|
this.value = current.value;
|
|
252
293
|
this.setCheckedClasses();
|
|
@@ -262,6 +303,60 @@ const Segment = class {
|
|
|
262
303
|
buttons[next].classList.add('segment-button-after-checked');
|
|
263
304
|
}
|
|
264
305
|
}
|
|
306
|
+
getSegmentView() {
|
|
307
|
+
const buttons = this.getButtons();
|
|
308
|
+
// Get the first button with a contentId
|
|
309
|
+
const firstContentId = buttons.find((button) => button.contentId);
|
|
310
|
+
// Get the segment content with an id matching the button's contentId
|
|
311
|
+
const segmentContent = document.querySelector(`ion-segment-content[id="${firstContentId === null || firstContentId === void 0 ? void 0 : firstContentId.contentId}"]`);
|
|
312
|
+
// Return the segment view for that matching segment content
|
|
313
|
+
return segmentContent === null || segmentContent === void 0 ? void 0 : segmentContent.closest('ion-segment-view');
|
|
314
|
+
}
|
|
315
|
+
handleSegmentViewScroll(ev) {
|
|
316
|
+
const { scrollRatio, isManualScroll } = ev.detail;
|
|
317
|
+
if (!isManualScroll) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
const dispatchedFrom = ev.target;
|
|
321
|
+
const segmentViewEl = this.segmentViewEl;
|
|
322
|
+
const segmentEl = this.el;
|
|
323
|
+
// Only update the indicator if the event was dispatched from the correct segment view
|
|
324
|
+
if (ev.composedPath().includes(segmentViewEl) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(segmentEl))) {
|
|
325
|
+
const buttons = this.getButtons();
|
|
326
|
+
// If no buttons are found or there is no value set then do nothing
|
|
327
|
+
if (!buttons.length)
|
|
328
|
+
return;
|
|
329
|
+
const index = buttons.findIndex((button) => button.value === this.value);
|
|
330
|
+
const current = buttons[index];
|
|
331
|
+
const nextIndex = Math.round(scrollRatio * (buttons.length - 1));
|
|
332
|
+
if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) {
|
|
333
|
+
this.lastNextIndex = nextIndex;
|
|
334
|
+
this.triggerScrollOnValueChange = false;
|
|
335
|
+
this.checkButton(current, buttons[nextIndex]);
|
|
336
|
+
this.emitValueChange();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Finds the related segment view and sets its current content
|
|
342
|
+
* based on the selected segment button. This method
|
|
343
|
+
* should be called on initial load of the segment,
|
|
344
|
+
* after the gesture is completed (if dragging between segments)
|
|
345
|
+
* and when a segment button is clicked directly.
|
|
346
|
+
*/
|
|
347
|
+
updateSegmentView(smoothScroll = true) {
|
|
348
|
+
const buttons = this.getButtons();
|
|
349
|
+
const button = buttons.find((btn) => btn.value === this.value);
|
|
350
|
+
// If the button does not have a contentId then there is
|
|
351
|
+
// no associated segment view to update
|
|
352
|
+
if (!(button === null || button === void 0 ? void 0 : button.contentId)) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
const segmentView = this.segmentViewEl;
|
|
356
|
+
if (segmentView) {
|
|
357
|
+
segmentView.setContent(button.contentId, smoothScroll);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
265
360
|
scrollActiveButtonIntoView(smoothScroll = true) {
|
|
266
361
|
const { scrollable, value, el } = this;
|
|
267
362
|
if (scrollable) {
|
|
@@ -444,14 +539,14 @@ const Segment = class {
|
|
|
444
539
|
}
|
|
445
540
|
render() {
|
|
446
541
|
const mode = ionicGlobal.getIonMode(this);
|
|
447
|
-
return (index.h(index.Host, { key: '
|
|
542
|
+
return (index.h(index.Host, { key: '66bd7a565ba73540b3bbe56dd23b95e59bcef9bc', role: "tablist", onClick: this.onClick, class: theme.createColorClasses(this.color, {
|
|
448
543
|
[mode]: true,
|
|
449
544
|
'in-toolbar': theme.hostContext('ion-toolbar', this.el),
|
|
450
545
|
'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
|
|
451
546
|
'segment-activated': this.activated,
|
|
452
547
|
'segment-disabled': this.disabled,
|
|
453
548
|
'segment-scrollable': this.scrollable,
|
|
454
|
-
}) }, index.h("slot", { key: '
|
|
549
|
+
}) }, index.h("slot", { key: '782c521b1a33729b8eab1c4b879bc3f2ff48ae1b', onSlotchange: this.onSlottedItemsChange })));
|
|
455
550
|
}
|
|
456
551
|
get el() { return index.getElement(this); }
|
|
457
552
|
static get watchers() { return {
|
|
@@ -491,6 +586,7 @@ const SegmentButton = class {
|
|
|
491
586
|
}
|
|
492
587
|
};
|
|
493
588
|
this.checked = false;
|
|
589
|
+
this.contentId = undefined;
|
|
494
590
|
this.disabled = false;
|
|
495
591
|
this.layout = 'icon-top';
|
|
496
592
|
this.type = 'button';
|
|
@@ -506,6 +602,26 @@ const SegmentButton = class {
|
|
|
506
602
|
helpers.addEventListener(segmentEl, 'ionSelect', this.updateState);
|
|
507
603
|
helpers.addEventListener(segmentEl, 'ionStyle', this.updateStyle);
|
|
508
604
|
}
|
|
605
|
+
// Return if there is no contentId defined
|
|
606
|
+
if (!this.contentId)
|
|
607
|
+
return;
|
|
608
|
+
// Attempt to find the Segment Content by its contentId
|
|
609
|
+
const segmentContent = document.getElementById(this.contentId);
|
|
610
|
+
// If no associated Segment Content exists, log an error and return
|
|
611
|
+
if (!segmentContent) {
|
|
612
|
+
console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
// Ensure the found element is a valid ION-SEGMENT-CONTENT
|
|
616
|
+
if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
|
|
617
|
+
console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
// Prevent buttons from being disabled when associated with segment content
|
|
621
|
+
if (this.disabled) {
|
|
622
|
+
console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
623
|
+
this.disabled = false;
|
|
624
|
+
}
|
|
509
625
|
}
|
|
510
626
|
disconnectedCallback() {
|
|
511
627
|
const segmentEl = this.segmentEl;
|
|
@@ -539,7 +655,7 @@ const SegmentButton = class {
|
|
|
539
655
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
540
656
|
const mode = ionicGlobal.getIonMode(this);
|
|
541
657
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
542
|
-
return (index.h(index.Host, { key: '
|
|
658
|
+
return (index.h(index.Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
|
|
543
659
|
[mode]: true,
|
|
544
660
|
'in-toolbar': theme.hostContext('ion-toolbar', this.el),
|
|
545
661
|
'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
|
|
@@ -555,10 +671,7 @@ const SegmentButton = class {
|
|
|
555
671
|
'ion-activatable': true,
|
|
556
672
|
'ion-activatable-instant': true,
|
|
557
673
|
'ion-focusable': true,
|
|
558
|
-
} }, index.h("button", Object.assign({ key: '
|
|
559
|
-
'segment-button-indicator': true,
|
|
560
|
-
'segment-button-indicator-animated': true,
|
|
561
|
-
} }, index.h("div", { key: 'b43124415ebd77c87285791522c5afc26a137f96', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
674
|
+
} }, index.h("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), index.h("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, index.h("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && index.h("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), index.h("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, index.h("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
562
675
|
}
|
|
563
676
|
get el() { return index.getElement(this); }
|
|
564
677
|
static get watchers() { return {
|
|
@@ -98,7 +98,7 @@ const SelectModal = class {
|
|
|
98
98
|
} }, option.text))));
|
|
99
99
|
}
|
|
100
100
|
render() {
|
|
101
|
-
return (index.h(index.Host, { key: '
|
|
101
|
+
return (index.h(index.Host, { key: 'f4b92f4fc3d646f9a327e43a9622abaf69659c28', class: ionicGlobal.getIonMode(this) }, index.h("ion-header", { key: '11232ef496e7abd69e55cef988963a4869a7b01e' }, index.h("ion-toolbar", { key: 'e7c41878691a504d44c658db02807867df542588' }, this.header !== undefined && index.h("ion-title", { key: 'fcf9d33e0f3e0076ff14805de68848f9ef199cca' }, this.header), index.h("ion-buttons", { key: '748a967ae0ce68bc2fd018a6b9ebe0e4b810f6ac', slot: "end" }, index.h("ion-button", { key: 'f5e60791870b5085a31b7af70ed4bb3fb83eb185', onClick: () => this.closeModal() }, "Close")))), index.h("ion-content", { key: '159797957b6f788a9b393d91864c18db34481c68' }, index.h("ion-list", { key: '4124554fe8b2411637cbf02f08e50e0d8f804175' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
102
102
|
}
|
|
103
103
|
get el() { return index.getElement(this); }
|
|
104
104
|
};
|