@ionic/core 8.6.6-dev.11753284047.10e4473f → 8.6.6-dev.11753719591.13a5c65f
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-infinite-scroll.js +58 -28
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +58 -28
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +62 -29
- package/dist/docs.json +1 -30
- package/dist/esm/ion-infinite-scroll_2.entry.js +58 -28
- package/dist/html.html-data.json +0 -4
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-481190d9.entry.js +4 -0
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +11 -1
- package/dist/types/components.d.ts +0 -5
- package/hydrate/index.js +58 -28
- package/hydrate/index.mjs +58 -28
- package/package.json +1 -1
- package/dist/ionic/p-d527e961.entry.js +0 -4
|
@@ -14,7 +14,7 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
14
14
|
this.ionInfinite = createEvent(this, "ionInfinite", 7);
|
|
15
15
|
this.thrPx = 0;
|
|
16
16
|
this.thrPc = 0;
|
|
17
|
-
this.
|
|
17
|
+
this.minHeightLocked = false;
|
|
18
18
|
/**
|
|
19
19
|
* didFire exists so that ionInfinite
|
|
20
20
|
* does not fire multiple times if
|
|
@@ -54,6 +54,7 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
54
54
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
55
55
|
* when the content is re-rendered. This is useful when the content is
|
|
56
56
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
57
|
+
* @internal
|
|
57
58
|
*/
|
|
58
59
|
this.preserveRerenderScrollPosition = false;
|
|
59
60
|
this.onScroll = () => {
|
|
@@ -77,10 +78,16 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
77
78
|
if (!this.didFire) {
|
|
78
79
|
this.isLoading = true;
|
|
79
80
|
this.didFire = true;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
if (this.preserveRerenderScrollPosition) {
|
|
82
|
+
// Lock the min height of the siblings of the infinite scroll
|
|
83
|
+
// if we are preserving the rerender scroll position
|
|
84
|
+
this.lockSiblingMinHeight(true).then(() => {
|
|
85
|
+
this.ionInfinite.emit();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.ionInfinite.emit();
|
|
90
|
+
}
|
|
84
91
|
return 3;
|
|
85
92
|
}
|
|
86
93
|
}
|
|
@@ -107,12 +114,12 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
107
114
|
this.enableScrollEvents(!disabled);
|
|
108
115
|
}
|
|
109
116
|
async connectedCallback() {
|
|
110
|
-
|
|
111
|
-
if (!
|
|
117
|
+
const contentEl = findClosestIonContent(this.el);
|
|
118
|
+
if (!contentEl) {
|
|
112
119
|
printIonContentErrorMsg(this.el);
|
|
113
120
|
return;
|
|
114
121
|
}
|
|
115
|
-
this.scrollEl = await getScrollElement(
|
|
122
|
+
this.scrollEl = await getScrollElement(contentEl);
|
|
116
123
|
this.thresholdChanged();
|
|
117
124
|
this.disabledChanged();
|
|
118
125
|
if (this.position === 'top') {
|
|
@@ -127,32 +134,53 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
127
134
|
this.enableScrollEvents(false);
|
|
128
135
|
this.scrollEl = undefined;
|
|
129
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
139
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
140
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
141
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
142
|
+
*
|
|
143
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
144
|
+
* has been previously set by the user when we restore after complete is called.
|
|
145
|
+
*/
|
|
130
146
|
lockSiblingMinHeight(lock) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
// Loop through all the siblings of the infinite scroll, but ignore the infinite scroll itself
|
|
136
|
-
const siblings = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children;
|
|
137
|
-
if (siblings) {
|
|
147
|
+
return new Promise((resolve) => {
|
|
148
|
+
var _a;
|
|
149
|
+
const siblings = ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || [];
|
|
150
|
+
const writes = [];
|
|
138
151
|
for (const sibling of siblings) {
|
|
152
|
+
// Loop through all the siblings of the infinite scroll, but ignore ourself
|
|
139
153
|
if (sibling !== this.el && sibling instanceof HTMLElement) {
|
|
140
154
|
if (lock) {
|
|
141
155
|
const elementHeight = sibling.getBoundingClientRect().height;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
156
|
+
writes.push(() => {
|
|
157
|
+
if (this.minHeightLocked) {
|
|
158
|
+
// The previous min height is from us locking it before, so we can disregard it
|
|
159
|
+
// We still need to lock the min height if we're already locked, though, because
|
|
160
|
+
// the user could have triggered a new load before we've finished the previous one.
|
|
161
|
+
const previousMinHeight = sibling.style.minHeight;
|
|
162
|
+
if (previousMinHeight) {
|
|
163
|
+
sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
sibling.style.minHeight = `${elementHeight}px`;
|
|
167
|
+
});
|
|
147
168
|
}
|
|
148
169
|
else {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
170
|
+
writes.push(() => {
|
|
171
|
+
const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
|
|
172
|
+
sibling.style.minHeight = previousMinHeight || 'auto';
|
|
173
|
+
sibling.style.removeProperty('--ion-previous-min-height');
|
|
174
|
+
});
|
|
152
175
|
}
|
|
153
176
|
}
|
|
154
177
|
}
|
|
155
|
-
|
|
178
|
+
writeTask(() => {
|
|
179
|
+
writes.forEach((w) => w());
|
|
180
|
+
this.minHeightLocked = lock;
|
|
181
|
+
resolve();
|
|
182
|
+
});
|
|
183
|
+
});
|
|
156
184
|
}
|
|
157
185
|
/**
|
|
158
186
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -217,9 +245,11 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
217
245
|
}
|
|
218
246
|
// Unlock the min height of the siblings of the infinite scroll
|
|
219
247
|
// if we are preserving the rerender scroll position
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
248
|
+
if (this.preserveRerenderScrollPosition) {
|
|
249
|
+
setTimeout(async () => {
|
|
250
|
+
await this.lockSiblingMinHeight(false);
|
|
251
|
+
}, 100);
|
|
252
|
+
}
|
|
223
253
|
}
|
|
224
254
|
canStart() {
|
|
225
255
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -237,7 +267,7 @@ const InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll ext
|
|
|
237
267
|
render() {
|
|
238
268
|
const theme = getIonTheme(this);
|
|
239
269
|
const disabled = this.disabled;
|
|
240
|
-
return (h(Host, { key: '
|
|
270
|
+
return (h(Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
|
|
241
271
|
[theme]: true,
|
|
242
272
|
'infinite-scroll-loading': this.isLoading,
|
|
243
273
|
'infinite-scroll-enabled': !disabled,
|
|
@@ -17,7 +17,7 @@ const InfiniteScroll = class {
|
|
|
17
17
|
this.ionInfinite = index.createEvent(this, "ionInfinite", 7);
|
|
18
18
|
this.thrPx = 0;
|
|
19
19
|
this.thrPc = 0;
|
|
20
|
-
this.
|
|
20
|
+
this.minHeightLocked = false;
|
|
21
21
|
/**
|
|
22
22
|
* didFire exists so that ionInfinite
|
|
23
23
|
* does not fire multiple times if
|
|
@@ -57,6 +57,7 @@ const InfiniteScroll = class {
|
|
|
57
57
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
58
58
|
* when the content is re-rendered. This is useful when the content is
|
|
59
59
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
60
|
+
* @internal
|
|
60
61
|
*/
|
|
61
62
|
this.preserveRerenderScrollPosition = false;
|
|
62
63
|
this.onScroll = () => {
|
|
@@ -80,10 +81,16 @@ const InfiniteScroll = class {
|
|
|
80
81
|
if (!this.didFire) {
|
|
81
82
|
this.isLoading = true;
|
|
82
83
|
this.didFire = true;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
if (this.preserveRerenderScrollPosition) {
|
|
85
|
+
// Lock the min height of the siblings of the infinite scroll
|
|
86
|
+
// if we are preserving the rerender scroll position
|
|
87
|
+
this.lockSiblingMinHeight(true).then(() => {
|
|
88
|
+
this.ionInfinite.emit();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.ionInfinite.emit();
|
|
93
|
+
}
|
|
87
94
|
return 3;
|
|
88
95
|
}
|
|
89
96
|
}
|
|
@@ -110,12 +117,12 @@ const InfiniteScroll = class {
|
|
|
110
117
|
this.enableScrollEvents(!disabled);
|
|
111
118
|
}
|
|
112
119
|
async connectedCallback() {
|
|
113
|
-
|
|
114
|
-
if (!
|
|
120
|
+
const contentEl = index$1.findClosestIonContent(this.el);
|
|
121
|
+
if (!contentEl) {
|
|
115
122
|
index$1.printIonContentErrorMsg(this.el);
|
|
116
123
|
return;
|
|
117
124
|
}
|
|
118
|
-
this.scrollEl = await index$1.getScrollElement(
|
|
125
|
+
this.scrollEl = await index$1.getScrollElement(contentEl);
|
|
119
126
|
this.thresholdChanged();
|
|
120
127
|
this.disabledChanged();
|
|
121
128
|
if (this.position === 'top') {
|
|
@@ -130,32 +137,53 @@ const InfiniteScroll = class {
|
|
|
130
137
|
this.enableScrollEvents(false);
|
|
131
138
|
this.scrollEl = undefined;
|
|
132
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
142
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
143
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
144
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
145
|
+
*
|
|
146
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
147
|
+
* has been previously set by the user when we restore after complete is called.
|
|
148
|
+
*/
|
|
133
149
|
lockSiblingMinHeight(lock) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
// Loop through all the siblings of the infinite scroll, but ignore the infinite scroll itself
|
|
139
|
-
const siblings = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children;
|
|
140
|
-
if (siblings) {
|
|
150
|
+
return new Promise((resolve) => {
|
|
151
|
+
var _a;
|
|
152
|
+
const siblings = ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || [];
|
|
153
|
+
const writes = [];
|
|
141
154
|
for (const sibling of siblings) {
|
|
155
|
+
// Loop through all the siblings of the infinite scroll, but ignore ourself
|
|
142
156
|
if (sibling !== this.el && sibling instanceof HTMLElement) {
|
|
143
157
|
if (lock) {
|
|
144
158
|
const elementHeight = sibling.getBoundingClientRect().height;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
159
|
+
writes.push(() => {
|
|
160
|
+
if (this.minHeightLocked) {
|
|
161
|
+
// The previous min height is from us locking it before, so we can disregard it
|
|
162
|
+
// We still need to lock the min height if we're already locked, though, because
|
|
163
|
+
// the user could have triggered a new load before we've finished the previous one.
|
|
164
|
+
const previousMinHeight = sibling.style.minHeight;
|
|
165
|
+
if (previousMinHeight) {
|
|
166
|
+
sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
sibling.style.minHeight = `${elementHeight}px`;
|
|
170
|
+
});
|
|
150
171
|
}
|
|
151
172
|
else {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
173
|
+
writes.push(() => {
|
|
174
|
+
const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
|
|
175
|
+
sibling.style.minHeight = previousMinHeight || 'auto';
|
|
176
|
+
sibling.style.removeProperty('--ion-previous-min-height');
|
|
177
|
+
});
|
|
155
178
|
}
|
|
156
179
|
}
|
|
157
180
|
}
|
|
158
|
-
|
|
181
|
+
index.writeTask(() => {
|
|
182
|
+
writes.forEach((w) => w());
|
|
183
|
+
this.minHeightLocked = lock;
|
|
184
|
+
resolve();
|
|
185
|
+
});
|
|
186
|
+
});
|
|
159
187
|
}
|
|
160
188
|
/**
|
|
161
189
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -220,9 +248,11 @@ const InfiniteScroll = class {
|
|
|
220
248
|
}
|
|
221
249
|
// Unlock the min height of the siblings of the infinite scroll
|
|
222
250
|
// if we are preserving the rerender scroll position
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
251
|
+
if (this.preserveRerenderScrollPosition) {
|
|
252
|
+
setTimeout(async () => {
|
|
253
|
+
await this.lockSiblingMinHeight(false);
|
|
254
|
+
}, 100);
|
|
255
|
+
}
|
|
226
256
|
}
|
|
227
257
|
canStart() {
|
|
228
258
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -240,7 +270,7 @@ const InfiniteScroll = class {
|
|
|
240
270
|
render() {
|
|
241
271
|
const theme = index.getIonTheme(this);
|
|
242
272
|
const disabled = this.disabled;
|
|
243
|
-
return (index.h(index.Host, { key: '
|
|
273
|
+
return (index.h(index.Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
|
|
244
274
|
[theme]: true,
|
|
245
275
|
'infinite-scroll-loading': this.isLoading,
|
|
246
276
|
'infinite-scroll-enabled': !disabled,
|
|
@@ -12,7 +12,7 @@ export class InfiniteScroll {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
this.thrPx = 0;
|
|
14
14
|
this.thrPc = 0;
|
|
15
|
-
this.
|
|
15
|
+
this.minHeightLocked = false;
|
|
16
16
|
/**
|
|
17
17
|
* didFire exists so that ionInfinite
|
|
18
18
|
* does not fire multiple times if
|
|
@@ -52,6 +52,7 @@ export class InfiniteScroll {
|
|
|
52
52
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
53
53
|
* when the content is re-rendered. This is useful when the content is
|
|
54
54
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
55
|
+
* @internal
|
|
55
56
|
*/
|
|
56
57
|
this.preserveRerenderScrollPosition = false;
|
|
57
58
|
this.onScroll = () => {
|
|
@@ -75,10 +76,16 @@ export class InfiniteScroll {
|
|
|
75
76
|
if (!this.didFire) {
|
|
76
77
|
this.isLoading = true;
|
|
77
78
|
this.didFire = true;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
if (this.preserveRerenderScrollPosition) {
|
|
80
|
+
// Lock the min height of the siblings of the infinite scroll
|
|
81
|
+
// if we are preserving the rerender scroll position
|
|
82
|
+
this.lockSiblingMinHeight(true).then(() => {
|
|
83
|
+
this.ionInfinite.emit();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.ionInfinite.emit();
|
|
88
|
+
}
|
|
82
89
|
return 3;
|
|
83
90
|
}
|
|
84
91
|
}
|
|
@@ -105,12 +112,12 @@ export class InfiniteScroll {
|
|
|
105
112
|
this.enableScrollEvents(!disabled);
|
|
106
113
|
}
|
|
107
114
|
async connectedCallback() {
|
|
108
|
-
|
|
109
|
-
if (!
|
|
115
|
+
const contentEl = findClosestIonContent(this.el);
|
|
116
|
+
if (!contentEl) {
|
|
110
117
|
printIonContentErrorMsg(this.el);
|
|
111
118
|
return;
|
|
112
119
|
}
|
|
113
|
-
this.scrollEl = await getScrollElement(
|
|
120
|
+
this.scrollEl = await getScrollElement(contentEl);
|
|
114
121
|
this.thresholdChanged();
|
|
115
122
|
this.disabledChanged();
|
|
116
123
|
if (this.position === 'top') {
|
|
@@ -125,32 +132,53 @@ export class InfiniteScroll {
|
|
|
125
132
|
this.enableScrollEvents(false);
|
|
126
133
|
this.scrollEl = undefined;
|
|
127
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
137
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
138
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
139
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
140
|
+
*
|
|
141
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
142
|
+
* has been previously set by the user when we restore after complete is called.
|
|
143
|
+
*/
|
|
128
144
|
lockSiblingMinHeight(lock) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
// Loop through all the siblings of the infinite scroll, but ignore the infinite scroll itself
|
|
134
|
-
const siblings = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children;
|
|
135
|
-
if (siblings) {
|
|
145
|
+
return new Promise((resolve) => {
|
|
146
|
+
var _a;
|
|
147
|
+
const siblings = ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || [];
|
|
148
|
+
const writes = [];
|
|
136
149
|
for (const sibling of siblings) {
|
|
150
|
+
// Loop through all the siblings of the infinite scroll, but ignore ourself
|
|
137
151
|
if (sibling !== this.el && sibling instanceof HTMLElement) {
|
|
138
152
|
if (lock) {
|
|
139
153
|
const elementHeight = sibling.getBoundingClientRect().height;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
154
|
+
writes.push(() => {
|
|
155
|
+
if (this.minHeightLocked) {
|
|
156
|
+
// The previous min height is from us locking it before, so we can disregard it
|
|
157
|
+
// We still need to lock the min height if we're already locked, though, because
|
|
158
|
+
// the user could have triggered a new load before we've finished the previous one.
|
|
159
|
+
const previousMinHeight = sibling.style.minHeight;
|
|
160
|
+
if (previousMinHeight) {
|
|
161
|
+
sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
sibling.style.minHeight = `${elementHeight}px`;
|
|
165
|
+
});
|
|
145
166
|
}
|
|
146
167
|
else {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
168
|
+
writes.push(() => {
|
|
169
|
+
const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
|
|
170
|
+
sibling.style.minHeight = previousMinHeight || 'auto';
|
|
171
|
+
sibling.style.removeProperty('--ion-previous-min-height');
|
|
172
|
+
});
|
|
150
173
|
}
|
|
151
174
|
}
|
|
152
175
|
}
|
|
153
|
-
|
|
176
|
+
writeTask(() => {
|
|
177
|
+
writes.forEach((w) => w());
|
|
178
|
+
this.minHeightLocked = lock;
|
|
179
|
+
resolve();
|
|
180
|
+
});
|
|
181
|
+
});
|
|
154
182
|
}
|
|
155
183
|
/**
|
|
156
184
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -215,9 +243,11 @@ export class InfiniteScroll {
|
|
|
215
243
|
}
|
|
216
244
|
// Unlock the min height of the siblings of the infinite scroll
|
|
217
245
|
// if we are preserving the rerender scroll position
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
246
|
+
if (this.preserveRerenderScrollPosition) {
|
|
247
|
+
setTimeout(async () => {
|
|
248
|
+
await this.lockSiblingMinHeight(false);
|
|
249
|
+
}, 100);
|
|
250
|
+
}
|
|
221
251
|
}
|
|
222
252
|
canStart() {
|
|
223
253
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -235,7 +265,7 @@ export class InfiniteScroll {
|
|
|
235
265
|
render() {
|
|
236
266
|
const theme = getIonTheme(this);
|
|
237
267
|
const disabled = this.disabled;
|
|
238
|
-
return (h(Host, { key: '
|
|
268
|
+
return (h(Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
|
|
239
269
|
[theme]: true,
|
|
240
270
|
'infinite-scroll-loading': this.isLoading,
|
|
241
271
|
'infinite-scroll-enabled': !disabled,
|
|
@@ -326,7 +356,10 @@ export class InfiniteScroll {
|
|
|
326
356
|
"required": false,
|
|
327
357
|
"optional": false,
|
|
328
358
|
"docs": {
|
|
329
|
-
"tags": [
|
|
359
|
+
"tags": [{
|
|
360
|
+
"name": "internal",
|
|
361
|
+
"text": undefined
|
|
362
|
+
}],
|
|
330
363
|
"text": "If `true`, the infinite scroll will preserve the scroll position\nwhen the content is re-rendered. This is useful when the content is\nre-rendered with new keys, and the scroll position should be preserved."
|
|
331
364
|
},
|
|
332
365
|
"getter": false,
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2025-07-
|
|
2
|
+
"timestamp": "2025-07-28T16:21:57",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.33.1",
|
|
@@ -14463,35 +14463,6 @@
|
|
|
14463
14463
|
"getter": false,
|
|
14464
14464
|
"setter": false
|
|
14465
14465
|
},
|
|
14466
|
-
{
|
|
14467
|
-
"name": "preserveRerenderScrollPosition",
|
|
14468
|
-
"type": "boolean",
|
|
14469
|
-
"complexType": {
|
|
14470
|
-
"original": "boolean",
|
|
14471
|
-
"resolved": "boolean",
|
|
14472
|
-
"references": {}
|
|
14473
|
-
},
|
|
14474
|
-
"mutable": false,
|
|
14475
|
-
"attr": "preserve-rerender-scroll-position",
|
|
14476
|
-
"reflectToAttr": false,
|
|
14477
|
-
"docs": "If `true`, the infinite scroll will preserve the scroll position\nwhen the content is re-rendered. This is useful when the content is\nre-rendered with new keys, and the scroll position should be preserved.",
|
|
14478
|
-
"docsTags": [
|
|
14479
|
-
{
|
|
14480
|
-
"name": "default",
|
|
14481
|
-
"text": "false"
|
|
14482
|
-
}
|
|
14483
|
-
],
|
|
14484
|
-
"default": "false",
|
|
14485
|
-
"values": [
|
|
14486
|
-
{
|
|
14487
|
-
"type": "boolean"
|
|
14488
|
-
}
|
|
14489
|
-
],
|
|
14490
|
-
"optional": false,
|
|
14491
|
-
"required": false,
|
|
14492
|
-
"getter": false,
|
|
14493
|
-
"setter": false
|
|
14494
|
-
},
|
|
14495
14466
|
{
|
|
14496
14467
|
"name": "theme",
|
|
14497
14468
|
"type": "\"ios\" | \"md\" | \"ionic\"",
|
|
@@ -15,7 +15,7 @@ const InfiniteScroll = class {
|
|
|
15
15
|
this.ionInfinite = createEvent(this, "ionInfinite", 7);
|
|
16
16
|
this.thrPx = 0;
|
|
17
17
|
this.thrPc = 0;
|
|
18
|
-
this.
|
|
18
|
+
this.minHeightLocked = false;
|
|
19
19
|
/**
|
|
20
20
|
* didFire exists so that ionInfinite
|
|
21
21
|
* does not fire multiple times if
|
|
@@ -55,6 +55,7 @@ const InfiniteScroll = class {
|
|
|
55
55
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
56
56
|
* when the content is re-rendered. This is useful when the content is
|
|
57
57
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
58
|
+
* @internal
|
|
58
59
|
*/
|
|
59
60
|
this.preserveRerenderScrollPosition = false;
|
|
60
61
|
this.onScroll = () => {
|
|
@@ -78,10 +79,16 @@ const InfiniteScroll = class {
|
|
|
78
79
|
if (!this.didFire) {
|
|
79
80
|
this.isLoading = true;
|
|
80
81
|
this.didFire = true;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
if (this.preserveRerenderScrollPosition) {
|
|
83
|
+
// Lock the min height of the siblings of the infinite scroll
|
|
84
|
+
// if we are preserving the rerender scroll position
|
|
85
|
+
this.lockSiblingMinHeight(true).then(() => {
|
|
86
|
+
this.ionInfinite.emit();
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.ionInfinite.emit();
|
|
91
|
+
}
|
|
85
92
|
return 3;
|
|
86
93
|
}
|
|
87
94
|
}
|
|
@@ -108,12 +115,12 @@ const InfiniteScroll = class {
|
|
|
108
115
|
this.enableScrollEvents(!disabled);
|
|
109
116
|
}
|
|
110
117
|
async connectedCallback() {
|
|
111
|
-
|
|
112
|
-
if (!
|
|
118
|
+
const contentEl = findClosestIonContent(this.el);
|
|
119
|
+
if (!contentEl) {
|
|
113
120
|
printIonContentErrorMsg(this.el);
|
|
114
121
|
return;
|
|
115
122
|
}
|
|
116
|
-
this.scrollEl = await getScrollElement(
|
|
123
|
+
this.scrollEl = await getScrollElement(contentEl);
|
|
117
124
|
this.thresholdChanged();
|
|
118
125
|
this.disabledChanged();
|
|
119
126
|
if (this.position === 'top') {
|
|
@@ -128,32 +135,53 @@ const InfiniteScroll = class {
|
|
|
128
135
|
this.enableScrollEvents(false);
|
|
129
136
|
this.scrollEl = undefined;
|
|
130
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
140
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
141
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
142
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
143
|
+
*
|
|
144
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
145
|
+
* has been previously set by the user when we restore after complete is called.
|
|
146
|
+
*/
|
|
131
147
|
lockSiblingMinHeight(lock) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// Loop through all the siblings of the infinite scroll, but ignore the infinite scroll itself
|
|
137
|
-
const siblings = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children;
|
|
138
|
-
if (siblings) {
|
|
148
|
+
return new Promise((resolve) => {
|
|
149
|
+
var _a;
|
|
150
|
+
const siblings = ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || [];
|
|
151
|
+
const writes = [];
|
|
139
152
|
for (const sibling of siblings) {
|
|
153
|
+
// Loop through all the siblings of the infinite scroll, but ignore ourself
|
|
140
154
|
if (sibling !== this.el && sibling instanceof HTMLElement) {
|
|
141
155
|
if (lock) {
|
|
142
156
|
const elementHeight = sibling.getBoundingClientRect().height;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
157
|
+
writes.push(() => {
|
|
158
|
+
if (this.minHeightLocked) {
|
|
159
|
+
// The previous min height is from us locking it before, so we can disregard it
|
|
160
|
+
// We still need to lock the min height if we're already locked, though, because
|
|
161
|
+
// the user could have triggered a new load before we've finished the previous one.
|
|
162
|
+
const previousMinHeight = sibling.style.minHeight;
|
|
163
|
+
if (previousMinHeight) {
|
|
164
|
+
sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
sibling.style.minHeight = `${elementHeight}px`;
|
|
168
|
+
});
|
|
148
169
|
}
|
|
149
170
|
else {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
171
|
+
writes.push(() => {
|
|
172
|
+
const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
|
|
173
|
+
sibling.style.minHeight = previousMinHeight || 'auto';
|
|
174
|
+
sibling.style.removeProperty('--ion-previous-min-height');
|
|
175
|
+
});
|
|
153
176
|
}
|
|
154
177
|
}
|
|
155
178
|
}
|
|
156
|
-
|
|
179
|
+
writeTask(() => {
|
|
180
|
+
writes.forEach((w) => w());
|
|
181
|
+
this.minHeightLocked = lock;
|
|
182
|
+
resolve();
|
|
183
|
+
});
|
|
184
|
+
});
|
|
157
185
|
}
|
|
158
186
|
/**
|
|
159
187
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -218,9 +246,11 @@ const InfiniteScroll = class {
|
|
|
218
246
|
}
|
|
219
247
|
// Unlock the min height of the siblings of the infinite scroll
|
|
220
248
|
// if we are preserving the rerender scroll position
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
249
|
+
if (this.preserveRerenderScrollPosition) {
|
|
250
|
+
setTimeout(async () => {
|
|
251
|
+
await this.lockSiblingMinHeight(false);
|
|
252
|
+
}, 100);
|
|
253
|
+
}
|
|
224
254
|
}
|
|
225
255
|
canStart() {
|
|
226
256
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -238,7 +268,7 @@ const InfiniteScroll = class {
|
|
|
238
268
|
render() {
|
|
239
269
|
const theme = getIonTheme(this);
|
|
240
270
|
const disabled = this.disabled;
|
|
241
|
-
return (h(Host, { key: '
|
|
271
|
+
return (h(Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
|
|
242
272
|
[theme]: true,
|
|
243
273
|
'infinite-scroll-loading': this.isLoading,
|
|
244
274
|
'infinite-scroll-enabled': !disabled,
|
package/dist/html.html-data.json
CHANGED
|
@@ -3103,10 +3103,6 @@
|
|
|
3103
3103
|
}
|
|
3104
3104
|
]
|
|
3105
3105
|
},
|
|
3106
|
-
{
|
|
3107
|
-
"name": "preserve-rerender-scroll-position",
|
|
3108
|
-
"description": "If `true`, the infinite scroll will preserve the scroll position\nwhen the content is re-rendered. This is useful when the content is\nre-rendered with new keys, and the scroll position should be preserved."
|
|
3109
|
-
},
|
|
3110
3106
|
{
|
|
3111
3107
|
"name": "theme",
|
|
3112
3108
|
"description": "The theme determines the visual appearance of the component.",
|
package/dist/ionic/ionic.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import{p as e,H as o,g as t,b as n}from"./p-HOJ_eq4V.js";export{s as setNonce}from"./p-HOJ_eq4V.js";var a=e=>{const o=e.cloneNode;e.cloneNode=function(e){if("TEMPLATE"===this.nodeName)return o.call(this,e);const t=o.call(this,!1),n=this.childNodes;if(e)for(let e=0;e<n.length;e++)2!==n[e].nodeType&&t.appendChild(n[e].cloneNode(!0));return t}};(()=>{a(o.prototype);const t=import.meta.url,n={};return""!==t&&(n.resourcesUrl=new URL(".",t).href),e(n)})().then((async e=>(await t(),n(JSON.parse('[["p-2d5f9656",[[33,"ion-menu-button",{"color":[513],"disabled":[4],"menu":[1],"autoHide":[4,"auto-hide"],"type":[1],"visible":[32]},[[16,"ionMenuChange","visibilityChanged"],[16,"ionSplitPaneVisible","visibilityChanged"]]],[33,"ion-menu",{"contentId":[513,"content-id"],"menuId":[513,"menu-id"],"type":[1025],"disabled":[1028],"side":[513],"swipeGesture":[4,"swipe-gesture"],"maxEdgeStart":[2,"max-edge-start"],"isPaneVisible":[32],"isEndSide":[32],"isOpen":[64],"isActive":[64],"open":[64],"close":[64],"toggle":[64],"setOpen":[64]},[[16,"ionSplitPaneVisible","onSplitPaneChanged"],[2,"click","onBackdropClick"]],{"type":["typeChanged"],"disabled":["disabledChanged"],"side":["sideChanged"],"swipeGesture":["swipeGestureChanged"]}],[1,"ion-menu-toggle",{"menu":[1],"autoHide":[4,"auto-hide"],"visible":[32]},[[16,"ionMenuChange","visibilityChanged"],[16,"ionSplitPaneVisible","visibilityChanged"]]]]],["p-0eab9ecf",[[33,"ion-input-password-toggle",{"color":[513],"showIcon":[1,"show-icon"],"hideIcon":[1,"hide-icon"],"type":[1025]},null,{"type":["onTypeChange"]}]]],["p-b767c96a",[[33,"ion-fab-button",{"color":[513],"activated":[4],"disabled":[4],"download":[1],"href":[1],"rel":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"target":[1],"show":[4],"translucent":[4],"type":[1],"size":[1],"closeIcon":[1,"close-icon"]}],[1,"ion-fab",{"horizontal":[1],"vertical":[1],"edge":[4],"activated":[1028],"close":[64],"toggle":[64]},null,{"activated":["activatedChanged"]}],[1,"ion-fab-list",{"activated":[4],"side":[1]},null,{"activated":["activatedChanged"]}]]],["p-ccf3b065",[[32,"ion-refresher-content",{"pullingIcon":[1025,"pulling-icon"],"pullingText":[1,"pulling-text"],"refreshingSpinner":[1025,"refreshing-spinner"],"refreshingText":[1,"refreshing-text"]}],[32,"ion-refresher",{"pullMin":[2,"pull-min"],"pullMax":[2,"pull-max"],"closeDuration":[1,"close-duration"],"snapbackDuration":[1,"snapback-duration"],"pullFactor":[2,"pull-factor"],"disabled":[4],"nativeRefresher":[32],"state":[32],"complete":[64],"cancel":[64],"getProgress":[64]},null,{"disabled":["disabledChanged"]}]]],["p-ae3dad82",[[33,"ion-back-button",{"color":[513],"defaultHref":[1025,"default-href"],"disabled":[516],"icon":[1],"text":[1],"type":[1],"routerAnimation":[16,"router-animation"]}]]],["p-d2ca6a9d",[[33,"ion-toast",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"color":[513],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"cssClass":[1,"css-class"],"duration":[2],"header":[1],"hue":[1],"layout":[1],"message":[1],"keyboardClose":[4,"keyboard-close"],"position":[1],"positionAnchor":[1,"position-anchor"],"shape":[1],"buttons":[16],"translucent":[4],"animated":[4],"icon":[1],"htmlAttributes":[16,"html-attributes"],"swipeGesture":[1,"swipe-gesture"],"isOpen":[4,"is-open"],"trigger":[1],"revealContentToScreenReader":[32],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"swipeGesture":["swipeGestureChanged"],"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-4d7ac4db",[[33,"ion-card",{"color":[513],"button":[4],"type":[1],"disabled":[4],"download":[1],"href":[1],"rel":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"shape":[513],"target":[1]}],[32,"ion-card-content"],[33,"ion-card-header",{"color":[513],"translucent":[4]}],[33,"ion-card-subtitle",{"color":[513]}],[33,"ion-card-title",{"color":[513]}]]],["p-0db4cc59",[[33,"ion-item-option",{"color":[513],"disabled":[4],"download":[1],"expandable":[4],"href":[1],"hue":[1],"rel":[1],"target":[1],"type":[1],"shape":[1]}],[32,"ion-item-options",{"side":[1],"fireSwipeEvent":[64]}],[0,"ion-item-sliding",{"disabled":[4],"state":[32],"getOpenAmount":[64],"getSlidingRatio":[64],"open":[64],"close":[64],"closeOpened":[64]},null,{"disabled":["disabledChanged"]}]]],["p-208954ca",[[49,"ion-accordion",{"value":[1],"disabled":[4],"readonly":[4],"toggleIcon":[1,"toggle-icon"],"toggleIconSlot":[1,"toggle-icon-slot"],"state":[32],"isNext":[32],"isPrevious":[32]},null,{"value":["valueChanged"]}],[33,"ion-accordion-group",{"animated":[4],"multiple":[4],"value":[1025],"disabled":[4],"readonly":[4],"expand":[1],"shape":[1],"requestAccordionToggle":[64],"getAccordions":[64]},[[0,"keydown","onKeydown"]],{"value":["valueChanged"],"disabled":["disabledChanged"],"readonly":["readonlyChanged"]}]]],["p-d527e961",[[32,"ion-infinite-scroll-content",{"loadingSpinner":[1025,"loading-spinner"],"loadingText":[1,"loading-text"]}],[0,"ion-infinite-scroll",{"threshold":[1],"disabled":[4],"position":[1],"preserveRerenderScrollPosition":[4,"preserve-rerender-scroll-position"],"isLoading":[32],"complete":[64]},null,{"threshold":["thresholdChanged"],"disabled":["disabledChanged"]}]]],["p-fbd73129",[[33,"ion-reorder",null,[[2,"click","onClick"]]],[0,"ion-reorder-group",{"disabled":[4],"state":[32],"complete":[64]},null,{"disabled":["disabledChanged"]}]]],["p-08dfb85e",[[33,"ion-segment-button",{"contentId":[513,"content-id"],"disabled":[1028],"layout":[1],"type":[1],"value":[8],"checked":[32],"setFocus":[64]},null,{"value":["valueChanged"]}],[33,"ion-segment",{"color":[513],"disabled":[4],"scrollable":[4],"swipeGesture":[4,"swipe-gesture"],"value":[1032],"selectOnFocus":[4,"select-on-focus"],"activated":[32]},[[16,"ionSegmentViewScroll","handleSegmentViewScroll"],[0,"keydown","onKeyDown"]],{"color":["colorChanged"],"swipeGesture":["swipeGestureChanged"],"value":["valueChanged"],"disabled":["disabledChanged"]}]]],["p-32f9c041",[[33,"ion-chip",{"color":[513],"outline":[4],"disabled":[4],"hue":[1],"shape":[1],"size":[1]}]]],["p-1f66d38f",[[38,"ion-input",{"color":[513],"autocapitalize":[1],"autocomplete":[1],"autocorrect":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"clearInputIcon":[1,"clear-input-icon"],"clearOnEdit":[4,"clear-on-edit"],"counter":[4],"counterFormatter":[16,"counter-formatter"],"debounce":[2],"disabled":[516],"enterkeyhint":[1],"errorText":[1,"error-text"],"fill":[1],"inputmode":[1],"helperText":[1,"helper-text"],"label":[1],"labelPlacement":[1025,"label-placement"],"max":[8],"maxlength":[2],"min":[8],"minlength":[2],"multiple":[4],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[516],"required":[4],"shape":[1],"spellcheck":[4],"step":[1],"size":[1],"type":[1],"value":[1032],"hasFocus":[32],"setFocus":[64],"getInputElement":[64]},[[2,"click","onClickCapture"]],{"debounce":["debounceChanged"],"type":["onTypeChange"],"value":["valueChanged"],"dir":["onDirChanged"]}]]],["p-63766f09",[[34,"ion-searchbar",{"color":[513],"animated":[4],"autocapitalize":[1],"autocomplete":[1],"autocorrect":[1],"cancelButtonIcon":[1,"cancel-button-icon"],"cancelButtonText":[1,"cancel-button-text"],"clearIcon":[1,"clear-icon"],"debounce":[2],"disabled":[4],"inputmode":[1],"enterkeyhint":[1],"maxlength":[2],"minlength":[2],"name":[1],"placeholder":[1],"searchIcon":[8,"search-icon"],"showCancelButton":[1,"show-cancel-button"],"showClearButton":[1,"show-clear-button"],"spellcheck":[4],"type":[1],"value":[1025],"shape":[1],"size":[1],"focused":[32],"noAnimate":[32],"setFocus":[64],"getInputElement":[64]},null,{"lang":["onLangChanged"],"dir":["onDirChanged"],"debounce":["debounceChanged"],"value":["valueChanged"],"showCancelButton":["showCancelButtonChanged"]}]]],["p-1761f72f",[[33,"ion-toggle",{"color":[513],"name":[1],"checked":[1028],"disabled":[4],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"value":[1],"enableOnOffLabels":[4,"enable-on-off-labels"],"labelPlacement":[1,"label-placement"],"justify":[1],"alignment":[1],"required":[4],"activated":[32]},null,{"disabled":["disabledChanged"]}]]],["p-82796bb0",[[1,"ion-nav",{"delegate":[16],"swipeGesture":[1028,"swipe-gesture"],"animated":[4],"animation":[16],"rootParams":[16,"root-params"],"root":[1],"push":[64],"insert":[64],"insertPages":[64],"pop":[64],"popTo":[64],"popToRoot":[64],"removeIndex":[64],"setRoot":[64],"setPages":[64],"setRouteId":[64],"getRouteId":[64],"getActive":[64],"getByIndex":[64],"canGoBack":[64],"getPrevious":[64],"getLength":[64]},null,{"swipeGesture":["swipeGestureChanged"],"root":["rootChanged"]}],[0,"ion-nav-link",{"component":[1],"componentProps":[16,"component-props"],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"]}]]],["p-1984e701",[[1,"ion-tab",{"active":[1028],"delegate":[16],"tab":[1],"component":[1],"setActive":[64]},null,{"active":["changeActive"]}],[1,"ion-tabs",{"useRouter":[1028,"use-router"],"selectedTab":[32],"select":[64],"getTab":[64],"getSelected":[64],"setRouteId":[64],"getRouteId":[64]}]]],["p-dd5e8e7a",[[38,"ion-textarea",{"color":[513],"autocapitalize":[1],"autofocus":[4],"clearOnEdit":[4,"clear-on-edit"],"debounce":[2],"disabled":[4],"fill":[1],"inputmode":[1],"enterkeyhint":[1],"maxlength":[2],"minlength":[2],"name":[1],"placeholder":[1],"readonly":[4],"required":[4],"spellcheck":[4],"cols":[514],"rows":[2],"wrap":[1],"autoGrow":[516,"auto-grow"],"value":[1025],"counter":[4],"counterFormatter":[16,"counter-formatter"],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"label":[1],"labelPlacement":[1,"label-placement"],"shape":[1],"size":[1],"hasFocus":[32],"setFocus":[64],"getInputElement":[64]},[[2,"click","onClickCapture"]],{"debounce":["debounceChanged"],"value":["valueChanged"],"dir":["onDirChanged"]}]]],["p-bb85830d",[[33,"ion-backdrop",{"visible":[4],"tappable":[4],"stopPropagation":[4,"stop-propagation"]},[[2,"click","onMouseDown"]]]]],["p-1fedceb6",[[34,"ion-loading",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"message":[1],"cssClass":[1,"css-class"],"duration":[2],"backdropDismiss":[4,"backdrop-dismiss"],"showBackdrop":[4,"show-backdrop"],"spinner":[1025],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-034b2ca2",[[33,"ion-breadcrumb",{"collapsed":[4],"last":[4],"showCollapsedIndicator":[4,"show-collapsed-indicator"],"color":[1],"active":[4],"disabled":[4],"download":[1],"href":[1],"rel":[1],"separator":[4],"target":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"]}],[33,"ion-breadcrumbs",{"color":[513],"maxItems":[2,"max-items"],"itemsBeforeCollapse":[2,"items-before-collapse"],"itemsAfterCollapse":[2,"items-after-collapse"],"collapsed":[32],"activeChanged":[32]},[[0,"collapsedClick","onCollapsedClick"]],{"maxItems":["maxItemsChanged"],"itemsBeforeCollapse":["maxItemsChanged"],"itemsAfterCollapse":["maxItemsChanged"]}]]],["p-9cb0fd91",[[33,"ion-tab-button",{"disabled":[4],"download":[1],"href":[1],"rel":[1],"layout":[1025],"selected":[1028],"shape":[1],"tab":[1],"target":[1]},[[8,"ionTabBarChanged","onTabBarChanged"]]],[33,"ion-tab-bar",{"color":[513],"selectedTab":[1,"selected-tab"],"translucent":[4],"expand":[1],"shape":[1],"keyboardVisible":[32]},null,{"selectedTab":["selectedTabChanged"]}]]],["p-eebf0420",[[33,"ion-datetime-button",{"color":[513],"disabled":[516],"datetime":[1],"datetimePresentation":[32],"dateText":[32],"timeText":[32],"datetimeActive":[32],"selectedButton":[32]}]]],["p-6e6ce506",[[0,"ion-route",{"url":[1],"component":[1],"componentProps":[16,"component-props"],"beforeLeave":[16,"before-leave"],"beforeEnter":[16,"before-enter"]},null,{"url":["onUpdate"],"component":["onUpdate"],"componentProps":["onComponentProps"]}],[0,"ion-route-redirect",{"from":[1],"to":[1]},null,{"from":["propDidChange"],"to":["propDidChange"]}],[0,"ion-router",{"root":[1],"useHash":[4,"use-hash"],"canTransition":[64],"push":[64],"back":[64],"printDebug":[64],"navChanged":[64]},[[8,"popstate","onPopState"],[4,"ionBackButton","onBackButton"]]],[1,"ion-router-link",{"color":[513],"href":[1],"rel":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"target":[1]}]]],["p-3c361403",[[33,"ion-avatar",{"size":[1],"shape":[1],"disabled":[4]}],[33,"ion-badge",{"color":[513],"hue":[1],"shape":[1],"size":[1],"vertical":[1]}],[1,"ion-thumbnail"]]],["p-b2fe9962",[[1,"ion-col",{"offset":[1],"offsetXs":[1,"offset-xs"],"offsetSm":[1,"offset-sm"],"offsetMd":[1,"offset-md"],"offsetLg":[1,"offset-lg"],"offsetXl":[1,"offset-xl"],"pull":[1],"pullXs":[1,"pull-xs"],"pullSm":[1,"pull-sm"],"pullMd":[1,"pull-md"],"pullLg":[1,"pull-lg"],"pullXl":[1,"pull-xl"],"push":[1],"pushXs":[1,"push-xs"],"pushSm":[1,"push-sm"],"pushMd":[1,"push-md"],"pushLg":[1,"push-lg"],"pushXl":[1,"push-xl"],"size":[1],"sizeXs":[1,"size-xs"],"sizeSm":[1,"size-sm"],"sizeMd":[1,"size-md"],"sizeLg":[1,"size-lg"],"sizeXl":[1,"size-xl"]},[[9,"resize","onResize"]]],[1,"ion-grid",{"fixed":[4]}],[1,"ion-row"]]],["p-7049bf1c",[[33,"ion-divider",{"spacing":[513],"inset":[4]}]]],["p-a1af546a",[[1,"ion-img",{"alt":[1],"src":[1],"loadSrc":[32],"loadError":[32]},null,{"src":["srcChanged"]}]]],["p-b8431086",[[38,"ion-input-otp",{"autocapitalize":[1],"color":[513],"disabled":[516],"fill":[1],"inputmode":[1],"length":[2],"pattern":[1],"readonly":[516],"separators":[1],"shape":[1],"size":[1],"type":[1],"value":[1032],"inputValues":[32],"hasFocus":[32],"previousInputValues":[32],"setFocus":[64]},null,{"value":["valueChanged"],"separators":["processSeparators"],"length":["processSeparators"]}]]],["p-1f976fad",[[33,"ion-progress-bar",{"type":[1],"reversed":[4],"value":[2],"buffer":[2],"color":[513],"shape":[1]}]]],["p-6957ab67",[[33,"ion-range",{"color":[513],"debounce":[2],"name":[1],"label":[1],"dualKnobs":[4,"dual-knobs"],"min":[2],"max":[2],"pin":[4],"pinFormatter":[16,"pin-formatter"],"snaps":[4],"step":[2],"ticks":[4],"activeBarStart":[1026,"active-bar-start"],"disabled":[4],"value":[1026],"labelPlacement":[1,"label-placement"],"ratioA":[32],"ratioB":[32],"pressedKnob":[32]},null,{"debounce":["debounceChanged"],"min":["minChanged"],"max":["maxChanged"],"step":["stepChanged"],"activeBarStart":["activeBarStartChanged"],"disabled":["disabledChanged"],"value":["valueChanged"]}]]],["p-ae10fb4c",[[1,"ion-segment-content"]]],["p-7f1e83a4",[[33,"ion-segment-view",{"disabled":[4],"isManualScroll":[32],"setContent":[64]},[[1,"scroll","handleScroll"],[1,"touchstart","handleScrollStart"],[1,"touchend","handleTouchEnd"]]]]],["p-6f17f8ed",[[33,"ion-split-pane",{"contentId":[513,"content-id"],"disabled":[4],"when":[8],"visible":[32],"isVisible":[64]},null,{"visible":["visibleChanged"],"disabled":["updateState"],"when":["updateState"]}]]],["p-c565e353",[[1,"ion-text",{"color":[513]}]]],["p-19959eec",[[34,"ion-select-modal",{"header":[1],"multiple":[4],"options":[16]}]]],["p-f2cd0d41",[[33,"ion-datetime",{"color":[1],"name":[1],"disabled":[4],"formatOptions":[16,"format-options"],"readonly":[4],"isDateEnabled":[16,"is-date-enabled"],"showAdjacentDays":[4,"show-adjacent-days"],"min":[1025],"max":[1025],"presentation":[1],"cancelText":[1,"cancel-text"],"doneText":[1,"done-text"],"clearText":[1,"clear-text"],"yearValues":[8,"year-values"],"monthValues":[8,"month-values"],"dayValues":[8,"day-values"],"hourValues":[8,"hour-values"],"minuteValues":[8,"minute-values"],"locale":[1],"firstDayOfWeek":[2,"first-day-of-week"],"titleSelectedDatesFormatter":[16,"title-selected-dates-formatter"],"multiple":[4],"highlightedDates":[16,"highlighted-dates"],"value":[1025],"showDefaultTitle":[4,"show-default-title"],"showDefaultButtons":[4,"show-default-buttons"],"showClearButton":[4,"show-clear-button"],"showDefaultTimeLabel":[4,"show-default-time-label"],"hourCycle":[1,"hour-cycle"],"size":[1],"preferWheel":[4,"prefer-wheel"],"showMonthAndYear":[32],"activeParts":[32],"workingParts":[32],"isTimePopoverOpen":[32],"forceRenderDate":[32],"confirm":[64],"reset":[64],"cancel":[64]},null,{"formatOptions":["formatOptionsChanged"],"disabled":["disabledChanged"],"min":["minChanged"],"max":["maxChanged"],"presentation":["presentationChanged"],"yearValues":["yearValuesChanged"],"monthValues":["monthValuesChanged"],"dayValues":["dayValuesChanged"],"hourValues":["hourValuesChanged"],"minuteValues":["minuteValuesChanged"],"value":["valueChanged"]}],[34,"ion-picker-legacy",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"buttons":[16],"columns":[16],"cssClass":[1,"css-class"],"duration":[2],"showBackdrop":[4,"show-backdrop"],"backdropDismiss":[4,"backdrop-dismiss"],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"presented":[32],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64],"getColumn":[64]},null,{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}],[32,"ion-picker-legacy-column",{"col":[16]},null,{"col":["colChanged"]}]]],["p-dec5b3dc",[[34,"ion-action-sheet",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"buttons":[16],"cssClass":[1,"css-class"],"backdropDismiss":[4,"backdrop-dismiss"],"header":[1],"subHeader":[1,"sub-header"],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-3a2af867",[[34,"ion-alert",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"cssClass":[1,"css-class"],"header":[1],"subHeader":[1,"sub-header"],"message":[1],"buttons":[16],"inputs":[1040],"backdropDismiss":[4,"backdrop-dismiss"],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},[[4,"keydown","onKeydown"]],{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"],"buttons":["buttonsChanged"],"inputs":["inputsChanged"]}]]],["p-075e80e7",[[33,"ion-modal",{"hasController":[4,"has-controller"],"overlayIndex":[2,"overlay-index"],"delegate":[16],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"breakpoints":[16],"expandToScroll":[4,"expand-to-scroll"],"initialBreakpoint":[2,"initial-breakpoint"],"backdropBreakpoint":[2,"backdrop-breakpoint"],"handle":[4],"handleBehavior":[1,"handle-behavior"],"component":[1],"componentProps":[16,"component-props"],"cssClass":[1,"css-class"],"backdropDismiss":[4,"backdrop-dismiss"],"showBackdrop":[4,"show-backdrop"],"animated":[4],"presentingElement":[16,"presenting-element"],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"keepContentsMounted":[4,"keep-contents-mounted"],"focusTrap":[4,"focus-trap"],"canDismiss":[4,"can-dismiss"],"shape":[1],"presented":[32],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64],"setCurrentBreakpoint":[64],"getCurrentBreakpoint":[64]},[[9,"resize","onWindowResize"]],{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-6ea34add",[[33,"ion-picker",{"exitInputMode":[64]},[[1,"touchstart","preventTouchStartPropagation"]]]]],["p-deb1d888",[[1,"ion-picker-column",{"disabled":[4],"value":[1032],"color":[513],"numericInput":[4,"numeric-input"],"ariaLabel":[32],"isActive":[32],"scrollActiveItemIntoView":[64],"setValue":[64],"setFocus":[64]},null,{"aria-label":["ariaLabelChanged"],"value":["valueChange"]}]]],["p-db6e0330",[[33,"ion-picker-column-option",{"disabled":[4],"value":[8],"color":[513],"ariaLabel":[32]},null,{"aria-label":["onAriaLabelChange"]}]]],["p-40f4609e",[[33,"ion-popover",{"hasController":[4,"has-controller"],"delegate":[16],"overlayIndex":[2,"overlay-index"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"component":[1],"componentProps":[16,"component-props"],"keyboardClose":[4,"keyboard-close"],"cssClass":[1,"css-class"],"backdropDismiss":[4,"backdrop-dismiss"],"event":[8],"showBackdrop":[4,"show-backdrop"],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"triggerAction":[1,"trigger-action"],"trigger":[1],"size":[1],"dismissOnSelect":[4,"dismiss-on-select"],"reference":[1],"side":[1],"alignment":[1025],"arrow":[4],"isOpen":[4,"is-open"],"keyboardEvents":[4,"keyboard-events"],"focusTrap":[4,"focus-trap"],"keepContentsMounted":[4,"keep-contents-mounted"],"presented":[32],"presentFromTrigger":[64],"present":[64],"dismiss":[64],"getParentPopover":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"trigger":["onTriggerChange"],"triggerAction":["onTriggerChange"],"isOpen":["onIsOpenChange"]}]]],["p-c07d16c9",[[33,"ion-checkbox",{"color":[513],"name":[1],"checked":[1028],"indeterminate":[1028],"disabled":[4],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"value":[8],"labelPlacement":[1,"label-placement"],"justify":[1],"alignment":[1],"required":[4],"shape":[1],"size":[1],"setFocus":[64]}]]],["p-52c29f3f",[[33,"ion-item-divider",{"color":[513],"sticky":[4]}],[32,"ion-item-group"],[33,"ion-note",{"color":[513]}],[1,"ion-skeleton-text",{"animated":[4]}],[38,"ion-label",{"color":[513],"position":[1],"noAnimate":[32]},null,{"color":["colorChanged"],"position":["positionChanged"]}],[33,"ion-list-header",{"color":[513],"lines":[1]}],[33,"ion-item",{"color":[513],"button":[4],"detail":[4],"detailIcon":[1,"detail-icon"],"disabled":[516],"download":[1],"href":[1],"rel":[1],"lines":[1],"routerAnimation":[16,"router-animation"],"routerDirection":[1,"router-direction"],"target":[1],"type":[1],"multipleInputs":[32],"focusable":[32],"isInteractive":[32]},[[0,"ionColor","labelColorChanged"],[0,"ionStyle","itemStyle"]],{"button":["buttonChanged"]}],[32,"ion-list",{"lines":[1],"inset":[4],"shape":[1],"closeSlidingItems":[64]}]]],["p-4d4dcd38",[[0,"ion-app",{"setFocus":[64]}],[36,"ion-footer",{"collapse":[1],"translucent":[4],"keyboardVisible":[32]}],[1,"ion-router-outlet",{"mode":[1025],"delegate":[16],"animated":[4],"animation":[16],"swipeHandler":[16,"swipe-handler"],"commit":[64],"setRouteId":[64],"getRouteId":[64]},null,{"swipeHandler":["swipeHandlerChanged"]}],[1,"ion-content",{"color":[513],"fullscreen":[4],"fixedSlotPlacement":[1,"fixed-slot-placement"],"forceOverscroll":[1028,"force-overscroll"],"scrollX":[4,"scroll-x"],"scrollY":[4,"scroll-y"],"scrollEvents":[4,"scroll-events"],"getScrollElement":[64],"getBackgroundElement":[64],"scrollToTop":[64],"scrollToBottom":[64],"scrollByPoint":[64],"scrollToPoint":[64]},[[9,"resize","onResize"]]],[36,"ion-header",{"collapse":[1],"divider":[4],"translucent":[4]}],[33,"ion-title",{"color":[513],"size":[1]},null,{"size":["sizeChanged"]}],[33,"ion-toolbar",{"color":[513]},[[0,"ionStyle","childrenStyle"]]],[38,"ion-buttons",{"collapse":[4]}]]],["p-13c72b4e",[[33,"ion-select",{"cancelText":[1,"cancel-text"],"color":[513],"compareWith":[1,"compare-with"],"disabled":[4],"fill":[1],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"interface":[1],"interfaceOptions":[8,"interface-options"],"justify":[1],"label":[1],"labelPlacement":[1,"label-placement"],"multiple":[4],"name":[1],"okText":[1,"ok-text"],"placeholder":[1],"selectedText":[1,"selected-text"],"toggleIcon":[1,"toggle-icon"],"expandedIcon":[1,"expanded-icon"],"required":[4],"shape":[1],"size":[1],"value":[1032],"isExpanded":[32],"hasFocus":[32],"open":[64]},null,{"disabled":["styleChanged"],"isExpanded":["styleChanged"],"placeholder":["styleChanged"],"value":["styleChanged"]}],[1,"ion-select-option",{"disabled":[4],"value":[8]}],[34,"ion-select-popover",{"header":[1],"subHeader":[1,"sub-header"],"message":[1],"multiple":[4],"options":[16]}]]],["p-e89e89eb",[[33,"ion-spinner",{"color":[513],"duration":[2],"name":[1],"paused":[4],"size":[1]}]]],["p-1fd06a55",[[33,"ion-radio",{"color":[513],"name":[1],"disabled":[4],"value":[8],"labelPlacement":[1,"label-placement"],"justify":[1],"alignment":[1],"checked":[32],"buttonTabindex":[32],"setFocus":[64],"setButtonTabindex":[64]},null,{"value":["valueChanged"]}],[36,"ion-radio-group",{"allowEmptySelection":[4,"allow-empty-selection"],"compareWith":[1,"compare-with"],"name":[1],"value":[1032],"helperText":[1,"helper-text"],"errorText":[1,"error-text"],"setFocus":[64]},[[4,"keydown","onKeydown"]],{"value":["valueChanged"]}]]],["p-7ace7638",[[33,"ion-ripple-effect",{"type":[1],"addRipple":[64]}]]],["p-e4ed2971",[[33,"ion-button",{"color":[513],"buttonType":[1025,"button-type"],"disabled":[516],"expand":[513],"fill":[1537],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"download":[1],"href":[1],"rel":[1],"shape":[513],"size":[513],"strong":[4],"target":[1],"type":[1],"form":[1],"isCircle":[32]},null,{"disabled":["disabledChanged"],"aria-checked":["onAriaChanged"],"aria-label":["onAriaChanged"]}],[1,"ion-icon",{"mode":[1025],"color":[1],"ios":[1],"md":[1],"flipRtl":[4,"flip-rtl"],"name":[513],"src":[1],"icon":[8],"size":[1],"lazy":[4],"sanitize":[4],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIcon"],"src":["loadIcon"],"icon":["loadIcon"],"ios":["loadIcon"],"md":["loadIcon"]}]]]]'),e))));
|
|
4
|
+
import{p as e,H as o,g as t,b as n}from"./p-HOJ_eq4V.js";export{s as setNonce}from"./p-HOJ_eq4V.js";var a=e=>{const o=e.cloneNode;e.cloneNode=function(e){if("TEMPLATE"===this.nodeName)return o.call(this,e);const t=o.call(this,!1),n=this.childNodes;if(e)for(let e=0;e<n.length;e++)2!==n[e].nodeType&&t.appendChild(n[e].cloneNode(!0));return t}};(()=>{a(o.prototype);const t=import.meta.url,n={};return""!==t&&(n.resourcesUrl=new URL(".",t).href),e(n)})().then((async e=>(await t(),n(JSON.parse('[["p-2d5f9656",[[33,"ion-menu-button",{"color":[513],"disabled":[4],"menu":[1],"autoHide":[4,"auto-hide"],"type":[1],"visible":[32]},[[16,"ionMenuChange","visibilityChanged"],[16,"ionSplitPaneVisible","visibilityChanged"]]],[33,"ion-menu",{"contentId":[513,"content-id"],"menuId":[513,"menu-id"],"type":[1025],"disabled":[1028],"side":[513],"swipeGesture":[4,"swipe-gesture"],"maxEdgeStart":[2,"max-edge-start"],"isPaneVisible":[32],"isEndSide":[32],"isOpen":[64],"isActive":[64],"open":[64],"close":[64],"toggle":[64],"setOpen":[64]},[[16,"ionSplitPaneVisible","onSplitPaneChanged"],[2,"click","onBackdropClick"]],{"type":["typeChanged"],"disabled":["disabledChanged"],"side":["sideChanged"],"swipeGesture":["swipeGestureChanged"]}],[1,"ion-menu-toggle",{"menu":[1],"autoHide":[4,"auto-hide"],"visible":[32]},[[16,"ionMenuChange","visibilityChanged"],[16,"ionSplitPaneVisible","visibilityChanged"]]]]],["p-0eab9ecf",[[33,"ion-input-password-toggle",{"color":[513],"showIcon":[1,"show-icon"],"hideIcon":[1,"hide-icon"],"type":[1025]},null,{"type":["onTypeChange"]}]]],["p-b767c96a",[[33,"ion-fab-button",{"color":[513],"activated":[4],"disabled":[4],"download":[1],"href":[1],"rel":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"target":[1],"show":[4],"translucent":[4],"type":[1],"size":[1],"closeIcon":[1,"close-icon"]}],[1,"ion-fab",{"horizontal":[1],"vertical":[1],"edge":[4],"activated":[1028],"close":[64],"toggle":[64]},null,{"activated":["activatedChanged"]}],[1,"ion-fab-list",{"activated":[4],"side":[1]},null,{"activated":["activatedChanged"]}]]],["p-ccf3b065",[[32,"ion-refresher-content",{"pullingIcon":[1025,"pulling-icon"],"pullingText":[1,"pulling-text"],"refreshingSpinner":[1025,"refreshing-spinner"],"refreshingText":[1,"refreshing-text"]}],[32,"ion-refresher",{"pullMin":[2,"pull-min"],"pullMax":[2,"pull-max"],"closeDuration":[1,"close-duration"],"snapbackDuration":[1,"snapback-duration"],"pullFactor":[2,"pull-factor"],"disabled":[4],"nativeRefresher":[32],"state":[32],"complete":[64],"cancel":[64],"getProgress":[64]},null,{"disabled":["disabledChanged"]}]]],["p-ae3dad82",[[33,"ion-back-button",{"color":[513],"defaultHref":[1025,"default-href"],"disabled":[516],"icon":[1],"text":[1],"type":[1],"routerAnimation":[16,"router-animation"]}]]],["p-d2ca6a9d",[[33,"ion-toast",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"color":[513],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"cssClass":[1,"css-class"],"duration":[2],"header":[1],"hue":[1],"layout":[1],"message":[1],"keyboardClose":[4,"keyboard-close"],"position":[1],"positionAnchor":[1,"position-anchor"],"shape":[1],"buttons":[16],"translucent":[4],"animated":[4],"icon":[1],"htmlAttributes":[16,"html-attributes"],"swipeGesture":[1,"swipe-gesture"],"isOpen":[4,"is-open"],"trigger":[1],"revealContentToScreenReader":[32],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"swipeGesture":["swipeGestureChanged"],"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-4d7ac4db",[[33,"ion-card",{"color":[513],"button":[4],"type":[1],"disabled":[4],"download":[1],"href":[1],"rel":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"shape":[513],"target":[1]}],[32,"ion-card-content"],[33,"ion-card-header",{"color":[513],"translucent":[4]}],[33,"ion-card-subtitle",{"color":[513]}],[33,"ion-card-title",{"color":[513]}]]],["p-0db4cc59",[[33,"ion-item-option",{"color":[513],"disabled":[4],"download":[1],"expandable":[4],"href":[1],"hue":[1],"rel":[1],"target":[1],"type":[1],"shape":[1]}],[32,"ion-item-options",{"side":[1],"fireSwipeEvent":[64]}],[0,"ion-item-sliding",{"disabled":[4],"state":[32],"getOpenAmount":[64],"getSlidingRatio":[64],"open":[64],"close":[64],"closeOpened":[64]},null,{"disabled":["disabledChanged"]}]]],["p-208954ca",[[49,"ion-accordion",{"value":[1],"disabled":[4],"readonly":[4],"toggleIcon":[1,"toggle-icon"],"toggleIconSlot":[1,"toggle-icon-slot"],"state":[32],"isNext":[32],"isPrevious":[32]},null,{"value":["valueChanged"]}],[33,"ion-accordion-group",{"animated":[4],"multiple":[4],"value":[1025],"disabled":[4],"readonly":[4],"expand":[1],"shape":[1],"requestAccordionToggle":[64],"getAccordions":[64]},[[0,"keydown","onKeydown"]],{"value":["valueChanged"],"disabled":["disabledChanged"],"readonly":["readonlyChanged"]}]]],["p-481190d9",[[32,"ion-infinite-scroll-content",{"loadingSpinner":[1025,"loading-spinner"],"loadingText":[1,"loading-text"]}],[0,"ion-infinite-scroll",{"threshold":[1],"disabled":[4],"position":[1],"preserveRerenderScrollPosition":[4,"preserve-rerender-scroll-position"],"isLoading":[32],"complete":[64]},null,{"threshold":["thresholdChanged"],"disabled":["disabledChanged"]}]]],["p-fbd73129",[[33,"ion-reorder",null,[[2,"click","onClick"]]],[0,"ion-reorder-group",{"disabled":[4],"state":[32],"complete":[64]},null,{"disabled":["disabledChanged"]}]]],["p-08dfb85e",[[33,"ion-segment-button",{"contentId":[513,"content-id"],"disabled":[1028],"layout":[1],"type":[1],"value":[8],"checked":[32],"setFocus":[64]},null,{"value":["valueChanged"]}],[33,"ion-segment",{"color":[513],"disabled":[4],"scrollable":[4],"swipeGesture":[4,"swipe-gesture"],"value":[1032],"selectOnFocus":[4,"select-on-focus"],"activated":[32]},[[16,"ionSegmentViewScroll","handleSegmentViewScroll"],[0,"keydown","onKeyDown"]],{"color":["colorChanged"],"swipeGesture":["swipeGestureChanged"],"value":["valueChanged"],"disabled":["disabledChanged"]}]]],["p-32f9c041",[[33,"ion-chip",{"color":[513],"outline":[4],"disabled":[4],"hue":[1],"shape":[1],"size":[1]}]]],["p-1f66d38f",[[38,"ion-input",{"color":[513],"autocapitalize":[1],"autocomplete":[1],"autocorrect":[1],"autofocus":[4],"clearInput":[4,"clear-input"],"clearInputIcon":[1,"clear-input-icon"],"clearOnEdit":[4,"clear-on-edit"],"counter":[4],"counterFormatter":[16,"counter-formatter"],"debounce":[2],"disabled":[516],"enterkeyhint":[1],"errorText":[1,"error-text"],"fill":[1],"inputmode":[1],"helperText":[1,"helper-text"],"label":[1],"labelPlacement":[1025,"label-placement"],"max":[8],"maxlength":[2],"min":[8],"minlength":[2],"multiple":[4],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[516],"required":[4],"shape":[1],"spellcheck":[4],"step":[1],"size":[1],"type":[1],"value":[1032],"hasFocus":[32],"setFocus":[64],"getInputElement":[64]},[[2,"click","onClickCapture"]],{"debounce":["debounceChanged"],"type":["onTypeChange"],"value":["valueChanged"],"dir":["onDirChanged"]}]]],["p-63766f09",[[34,"ion-searchbar",{"color":[513],"animated":[4],"autocapitalize":[1],"autocomplete":[1],"autocorrect":[1],"cancelButtonIcon":[1,"cancel-button-icon"],"cancelButtonText":[1,"cancel-button-text"],"clearIcon":[1,"clear-icon"],"debounce":[2],"disabled":[4],"inputmode":[1],"enterkeyhint":[1],"maxlength":[2],"minlength":[2],"name":[1],"placeholder":[1],"searchIcon":[8,"search-icon"],"showCancelButton":[1,"show-cancel-button"],"showClearButton":[1,"show-clear-button"],"spellcheck":[4],"type":[1],"value":[1025],"shape":[1],"size":[1],"focused":[32],"noAnimate":[32],"setFocus":[64],"getInputElement":[64]},null,{"lang":["onLangChanged"],"dir":["onDirChanged"],"debounce":["debounceChanged"],"value":["valueChanged"],"showCancelButton":["showCancelButtonChanged"]}]]],["p-1761f72f",[[33,"ion-toggle",{"color":[513],"name":[1],"checked":[1028],"disabled":[4],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"value":[1],"enableOnOffLabels":[4,"enable-on-off-labels"],"labelPlacement":[1,"label-placement"],"justify":[1],"alignment":[1],"required":[4],"activated":[32]},null,{"disabled":["disabledChanged"]}]]],["p-82796bb0",[[1,"ion-nav",{"delegate":[16],"swipeGesture":[1028,"swipe-gesture"],"animated":[4],"animation":[16],"rootParams":[16,"root-params"],"root":[1],"push":[64],"insert":[64],"insertPages":[64],"pop":[64],"popTo":[64],"popToRoot":[64],"removeIndex":[64],"setRoot":[64],"setPages":[64],"setRouteId":[64],"getRouteId":[64],"getActive":[64],"getByIndex":[64],"canGoBack":[64],"getPrevious":[64],"getLength":[64]},null,{"swipeGesture":["swipeGestureChanged"],"root":["rootChanged"]}],[0,"ion-nav-link",{"component":[1],"componentProps":[16,"component-props"],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"]}]]],["p-1984e701",[[1,"ion-tab",{"active":[1028],"delegate":[16],"tab":[1],"component":[1],"setActive":[64]},null,{"active":["changeActive"]}],[1,"ion-tabs",{"useRouter":[1028,"use-router"],"selectedTab":[32],"select":[64],"getTab":[64],"getSelected":[64],"setRouteId":[64],"getRouteId":[64]}]]],["p-dd5e8e7a",[[38,"ion-textarea",{"color":[513],"autocapitalize":[1],"autofocus":[4],"clearOnEdit":[4,"clear-on-edit"],"debounce":[2],"disabled":[4],"fill":[1],"inputmode":[1],"enterkeyhint":[1],"maxlength":[2],"minlength":[2],"name":[1],"placeholder":[1],"readonly":[4],"required":[4],"spellcheck":[4],"cols":[514],"rows":[2],"wrap":[1],"autoGrow":[516,"auto-grow"],"value":[1025],"counter":[4],"counterFormatter":[16,"counter-formatter"],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"label":[1],"labelPlacement":[1,"label-placement"],"shape":[1],"size":[1],"hasFocus":[32],"setFocus":[64],"getInputElement":[64]},[[2,"click","onClickCapture"]],{"debounce":["debounceChanged"],"value":["valueChanged"],"dir":["onDirChanged"]}]]],["p-bb85830d",[[33,"ion-backdrop",{"visible":[4],"tappable":[4],"stopPropagation":[4,"stop-propagation"]},[[2,"click","onMouseDown"]]]]],["p-1fedceb6",[[34,"ion-loading",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"message":[1],"cssClass":[1,"css-class"],"duration":[2],"backdropDismiss":[4,"backdrop-dismiss"],"showBackdrop":[4,"show-backdrop"],"spinner":[1025],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-034b2ca2",[[33,"ion-breadcrumb",{"collapsed":[4],"last":[4],"showCollapsedIndicator":[4,"show-collapsed-indicator"],"color":[1],"active":[4],"disabled":[4],"download":[1],"href":[1],"rel":[1],"separator":[4],"target":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"]}],[33,"ion-breadcrumbs",{"color":[513],"maxItems":[2,"max-items"],"itemsBeforeCollapse":[2,"items-before-collapse"],"itemsAfterCollapse":[2,"items-after-collapse"],"collapsed":[32],"activeChanged":[32]},[[0,"collapsedClick","onCollapsedClick"]],{"maxItems":["maxItemsChanged"],"itemsBeforeCollapse":["maxItemsChanged"],"itemsAfterCollapse":["maxItemsChanged"]}]]],["p-9cb0fd91",[[33,"ion-tab-button",{"disabled":[4],"download":[1],"href":[1],"rel":[1],"layout":[1025],"selected":[1028],"shape":[1],"tab":[1],"target":[1]},[[8,"ionTabBarChanged","onTabBarChanged"]]],[33,"ion-tab-bar",{"color":[513],"selectedTab":[1,"selected-tab"],"translucent":[4],"expand":[1],"shape":[1],"keyboardVisible":[32]},null,{"selectedTab":["selectedTabChanged"]}]]],["p-eebf0420",[[33,"ion-datetime-button",{"color":[513],"disabled":[516],"datetime":[1],"datetimePresentation":[32],"dateText":[32],"timeText":[32],"datetimeActive":[32],"selectedButton":[32]}]]],["p-6e6ce506",[[0,"ion-route",{"url":[1],"component":[1],"componentProps":[16,"component-props"],"beforeLeave":[16,"before-leave"],"beforeEnter":[16,"before-enter"]},null,{"url":["onUpdate"],"component":["onUpdate"],"componentProps":["onComponentProps"]}],[0,"ion-route-redirect",{"from":[1],"to":[1]},null,{"from":["propDidChange"],"to":["propDidChange"]}],[0,"ion-router",{"root":[1],"useHash":[4,"use-hash"],"canTransition":[64],"push":[64],"back":[64],"printDebug":[64],"navChanged":[64]},[[8,"popstate","onPopState"],[4,"ionBackButton","onBackButton"]]],[1,"ion-router-link",{"color":[513],"href":[1],"rel":[1],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"target":[1]}]]],["p-3c361403",[[33,"ion-avatar",{"size":[1],"shape":[1],"disabled":[4]}],[33,"ion-badge",{"color":[513],"hue":[1],"shape":[1],"size":[1],"vertical":[1]}],[1,"ion-thumbnail"]]],["p-b2fe9962",[[1,"ion-col",{"offset":[1],"offsetXs":[1,"offset-xs"],"offsetSm":[1,"offset-sm"],"offsetMd":[1,"offset-md"],"offsetLg":[1,"offset-lg"],"offsetXl":[1,"offset-xl"],"pull":[1],"pullXs":[1,"pull-xs"],"pullSm":[1,"pull-sm"],"pullMd":[1,"pull-md"],"pullLg":[1,"pull-lg"],"pullXl":[1,"pull-xl"],"push":[1],"pushXs":[1,"push-xs"],"pushSm":[1,"push-sm"],"pushMd":[1,"push-md"],"pushLg":[1,"push-lg"],"pushXl":[1,"push-xl"],"size":[1],"sizeXs":[1,"size-xs"],"sizeSm":[1,"size-sm"],"sizeMd":[1,"size-md"],"sizeLg":[1,"size-lg"],"sizeXl":[1,"size-xl"]},[[9,"resize","onResize"]]],[1,"ion-grid",{"fixed":[4]}],[1,"ion-row"]]],["p-7049bf1c",[[33,"ion-divider",{"spacing":[513],"inset":[4]}]]],["p-a1af546a",[[1,"ion-img",{"alt":[1],"src":[1],"loadSrc":[32],"loadError":[32]},null,{"src":["srcChanged"]}]]],["p-b8431086",[[38,"ion-input-otp",{"autocapitalize":[1],"color":[513],"disabled":[516],"fill":[1],"inputmode":[1],"length":[2],"pattern":[1],"readonly":[516],"separators":[1],"shape":[1],"size":[1],"type":[1],"value":[1032],"inputValues":[32],"hasFocus":[32],"previousInputValues":[32],"setFocus":[64]},null,{"value":["valueChanged"],"separators":["processSeparators"],"length":["processSeparators"]}]]],["p-1f976fad",[[33,"ion-progress-bar",{"type":[1],"reversed":[4],"value":[2],"buffer":[2],"color":[513],"shape":[1]}]]],["p-6957ab67",[[33,"ion-range",{"color":[513],"debounce":[2],"name":[1],"label":[1],"dualKnobs":[4,"dual-knobs"],"min":[2],"max":[2],"pin":[4],"pinFormatter":[16,"pin-formatter"],"snaps":[4],"step":[2],"ticks":[4],"activeBarStart":[1026,"active-bar-start"],"disabled":[4],"value":[1026],"labelPlacement":[1,"label-placement"],"ratioA":[32],"ratioB":[32],"pressedKnob":[32]},null,{"debounce":["debounceChanged"],"min":["minChanged"],"max":["maxChanged"],"step":["stepChanged"],"activeBarStart":["activeBarStartChanged"],"disabled":["disabledChanged"],"value":["valueChanged"]}]]],["p-ae10fb4c",[[1,"ion-segment-content"]]],["p-7f1e83a4",[[33,"ion-segment-view",{"disabled":[4],"isManualScroll":[32],"setContent":[64]},[[1,"scroll","handleScroll"],[1,"touchstart","handleScrollStart"],[1,"touchend","handleTouchEnd"]]]]],["p-6f17f8ed",[[33,"ion-split-pane",{"contentId":[513,"content-id"],"disabled":[4],"when":[8],"visible":[32],"isVisible":[64]},null,{"visible":["visibleChanged"],"disabled":["updateState"],"when":["updateState"]}]]],["p-c565e353",[[1,"ion-text",{"color":[513]}]]],["p-19959eec",[[34,"ion-select-modal",{"header":[1],"multiple":[4],"options":[16]}]]],["p-f2cd0d41",[[33,"ion-datetime",{"color":[1],"name":[1],"disabled":[4],"formatOptions":[16,"format-options"],"readonly":[4],"isDateEnabled":[16,"is-date-enabled"],"showAdjacentDays":[4,"show-adjacent-days"],"min":[1025],"max":[1025],"presentation":[1],"cancelText":[1,"cancel-text"],"doneText":[1,"done-text"],"clearText":[1,"clear-text"],"yearValues":[8,"year-values"],"monthValues":[8,"month-values"],"dayValues":[8,"day-values"],"hourValues":[8,"hour-values"],"minuteValues":[8,"minute-values"],"locale":[1],"firstDayOfWeek":[2,"first-day-of-week"],"titleSelectedDatesFormatter":[16,"title-selected-dates-formatter"],"multiple":[4],"highlightedDates":[16,"highlighted-dates"],"value":[1025],"showDefaultTitle":[4,"show-default-title"],"showDefaultButtons":[4,"show-default-buttons"],"showClearButton":[4,"show-clear-button"],"showDefaultTimeLabel":[4,"show-default-time-label"],"hourCycle":[1,"hour-cycle"],"size":[1],"preferWheel":[4,"prefer-wheel"],"showMonthAndYear":[32],"activeParts":[32],"workingParts":[32],"isTimePopoverOpen":[32],"forceRenderDate":[32],"confirm":[64],"reset":[64],"cancel":[64]},null,{"formatOptions":["formatOptionsChanged"],"disabled":["disabledChanged"],"min":["minChanged"],"max":["maxChanged"],"presentation":["presentationChanged"],"yearValues":["yearValuesChanged"],"monthValues":["monthValuesChanged"],"dayValues":["dayValuesChanged"],"hourValues":["hourValuesChanged"],"minuteValues":["minuteValuesChanged"],"value":["valueChanged"]}],[34,"ion-picker-legacy",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"buttons":[16],"columns":[16],"cssClass":[1,"css-class"],"duration":[2],"showBackdrop":[4,"show-backdrop"],"backdropDismiss":[4,"backdrop-dismiss"],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"presented":[32],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64],"getColumn":[64]},null,{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}],[32,"ion-picker-legacy-column",{"col":[16]},null,{"col":["colChanged"]}]]],["p-dec5b3dc",[[34,"ion-action-sheet",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"buttons":[16],"cssClass":[1,"css-class"],"backdropDismiss":[4,"backdrop-dismiss"],"header":[1],"subHeader":[1,"sub-header"],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-3a2af867",[[34,"ion-alert",{"overlayIndex":[2,"overlay-index"],"delegate":[16],"hasController":[4,"has-controller"],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"cssClass":[1,"css-class"],"header":[1],"subHeader":[1,"sub-header"],"message":[1],"buttons":[16],"inputs":[1040],"backdropDismiss":[4,"backdrop-dismiss"],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64]},[[4,"keydown","onKeydown"]],{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"],"buttons":["buttonsChanged"],"inputs":["inputsChanged"]}]]],["p-075e80e7",[[33,"ion-modal",{"hasController":[4,"has-controller"],"overlayIndex":[2,"overlay-index"],"delegate":[16],"keyboardClose":[4,"keyboard-close"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"breakpoints":[16],"expandToScroll":[4,"expand-to-scroll"],"initialBreakpoint":[2,"initial-breakpoint"],"backdropBreakpoint":[2,"backdrop-breakpoint"],"handle":[4],"handleBehavior":[1,"handle-behavior"],"component":[1],"componentProps":[16,"component-props"],"cssClass":[1,"css-class"],"backdropDismiss":[4,"backdrop-dismiss"],"showBackdrop":[4,"show-backdrop"],"animated":[4],"presentingElement":[16,"presenting-element"],"htmlAttributes":[16,"html-attributes"],"isOpen":[4,"is-open"],"trigger":[1],"keepContentsMounted":[4,"keep-contents-mounted"],"focusTrap":[4,"focus-trap"],"canDismiss":[4,"can-dismiss"],"shape":[1],"presented":[32],"present":[64],"dismiss":[64],"onDidDismiss":[64],"onWillDismiss":[64],"setCurrentBreakpoint":[64],"getCurrentBreakpoint":[64]},[[9,"resize","onWindowResize"]],{"isOpen":["onIsOpenChange"],"trigger":["triggerChanged"]}]]],["p-6ea34add",[[33,"ion-picker",{"exitInputMode":[64]},[[1,"touchstart","preventTouchStartPropagation"]]]]],["p-deb1d888",[[1,"ion-picker-column",{"disabled":[4],"value":[1032],"color":[513],"numericInput":[4,"numeric-input"],"ariaLabel":[32],"isActive":[32],"scrollActiveItemIntoView":[64],"setValue":[64],"setFocus":[64]},null,{"aria-label":["ariaLabelChanged"],"value":["valueChange"]}]]],["p-db6e0330",[[33,"ion-picker-column-option",{"disabled":[4],"value":[8],"color":[513],"ariaLabel":[32]},null,{"aria-label":["onAriaLabelChange"]}]]],["p-40f4609e",[[33,"ion-popover",{"hasController":[4,"has-controller"],"delegate":[16],"overlayIndex":[2,"overlay-index"],"enterAnimation":[16,"enter-animation"],"leaveAnimation":[16,"leave-animation"],"component":[1],"componentProps":[16,"component-props"],"keyboardClose":[4,"keyboard-close"],"cssClass":[1,"css-class"],"backdropDismiss":[4,"backdrop-dismiss"],"event":[8],"showBackdrop":[4,"show-backdrop"],"translucent":[4],"animated":[4],"htmlAttributes":[16,"html-attributes"],"triggerAction":[1,"trigger-action"],"trigger":[1],"size":[1],"dismissOnSelect":[4,"dismiss-on-select"],"reference":[1],"side":[1],"alignment":[1025],"arrow":[4],"isOpen":[4,"is-open"],"keyboardEvents":[4,"keyboard-events"],"focusTrap":[4,"focus-trap"],"keepContentsMounted":[4,"keep-contents-mounted"],"presented":[32],"presentFromTrigger":[64],"present":[64],"dismiss":[64],"getParentPopover":[64],"onDidDismiss":[64],"onWillDismiss":[64]},null,{"trigger":["onTriggerChange"],"triggerAction":["onTriggerChange"],"isOpen":["onIsOpenChange"]}]]],["p-c07d16c9",[[33,"ion-checkbox",{"color":[513],"name":[1],"checked":[1028],"indeterminate":[1028],"disabled":[4],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"value":[8],"labelPlacement":[1,"label-placement"],"justify":[1],"alignment":[1],"required":[4],"shape":[1],"size":[1],"setFocus":[64]}]]],["p-52c29f3f",[[33,"ion-item-divider",{"color":[513],"sticky":[4]}],[32,"ion-item-group"],[33,"ion-note",{"color":[513]}],[1,"ion-skeleton-text",{"animated":[4]}],[38,"ion-label",{"color":[513],"position":[1],"noAnimate":[32]},null,{"color":["colorChanged"],"position":["positionChanged"]}],[33,"ion-list-header",{"color":[513],"lines":[1]}],[33,"ion-item",{"color":[513],"button":[4],"detail":[4],"detailIcon":[1,"detail-icon"],"disabled":[516],"download":[1],"href":[1],"rel":[1],"lines":[1],"routerAnimation":[16,"router-animation"],"routerDirection":[1,"router-direction"],"target":[1],"type":[1],"multipleInputs":[32],"focusable":[32],"isInteractive":[32]},[[0,"ionColor","labelColorChanged"],[0,"ionStyle","itemStyle"]],{"button":["buttonChanged"]}],[32,"ion-list",{"lines":[1],"inset":[4],"shape":[1],"closeSlidingItems":[64]}]]],["p-4d4dcd38",[[0,"ion-app",{"setFocus":[64]}],[36,"ion-footer",{"collapse":[1],"translucent":[4],"keyboardVisible":[32]}],[1,"ion-router-outlet",{"mode":[1025],"delegate":[16],"animated":[4],"animation":[16],"swipeHandler":[16,"swipe-handler"],"commit":[64],"setRouteId":[64],"getRouteId":[64]},null,{"swipeHandler":["swipeHandlerChanged"]}],[1,"ion-content",{"color":[513],"fullscreen":[4],"fixedSlotPlacement":[1,"fixed-slot-placement"],"forceOverscroll":[1028,"force-overscroll"],"scrollX":[4,"scroll-x"],"scrollY":[4,"scroll-y"],"scrollEvents":[4,"scroll-events"],"getScrollElement":[64],"getBackgroundElement":[64],"scrollToTop":[64],"scrollToBottom":[64],"scrollByPoint":[64],"scrollToPoint":[64]},[[9,"resize","onResize"]]],[36,"ion-header",{"collapse":[1],"divider":[4],"translucent":[4]}],[33,"ion-title",{"color":[513],"size":[1]},null,{"size":["sizeChanged"]}],[33,"ion-toolbar",{"color":[513]},[[0,"ionStyle","childrenStyle"]]],[38,"ion-buttons",{"collapse":[4]}]]],["p-13c72b4e",[[33,"ion-select",{"cancelText":[1,"cancel-text"],"color":[513],"compareWith":[1,"compare-with"],"disabled":[4],"fill":[1],"errorText":[1,"error-text"],"helperText":[1,"helper-text"],"interface":[1],"interfaceOptions":[8,"interface-options"],"justify":[1],"label":[1],"labelPlacement":[1,"label-placement"],"multiple":[4],"name":[1],"okText":[1,"ok-text"],"placeholder":[1],"selectedText":[1,"selected-text"],"toggleIcon":[1,"toggle-icon"],"expandedIcon":[1,"expanded-icon"],"required":[4],"shape":[1],"size":[1],"value":[1032],"isExpanded":[32],"hasFocus":[32],"open":[64]},null,{"disabled":["styleChanged"],"isExpanded":["styleChanged"],"placeholder":["styleChanged"],"value":["styleChanged"]}],[1,"ion-select-option",{"disabled":[4],"value":[8]}],[34,"ion-select-popover",{"header":[1],"subHeader":[1,"sub-header"],"message":[1],"multiple":[4],"options":[16]}]]],["p-e89e89eb",[[33,"ion-spinner",{"color":[513],"duration":[2],"name":[1],"paused":[4],"size":[1]}]]],["p-1fd06a55",[[33,"ion-radio",{"color":[513],"name":[1],"disabled":[4],"value":[8],"labelPlacement":[1,"label-placement"],"justify":[1],"alignment":[1],"checked":[32],"buttonTabindex":[32],"setFocus":[64],"setButtonTabindex":[64]},null,{"value":["valueChanged"]}],[36,"ion-radio-group",{"allowEmptySelection":[4,"allow-empty-selection"],"compareWith":[1,"compare-with"],"name":[1],"value":[1032],"helperText":[1,"helper-text"],"errorText":[1,"error-text"],"setFocus":[64]},[[4,"keydown","onKeydown"]],{"value":["valueChanged"]}]]],["p-7ace7638",[[33,"ion-ripple-effect",{"type":[1],"addRipple":[64]}]]],["p-e4ed2971",[[33,"ion-button",{"color":[513],"buttonType":[1025,"button-type"],"disabled":[516],"expand":[513],"fill":[1537],"routerDirection":[1,"router-direction"],"routerAnimation":[16,"router-animation"],"download":[1],"href":[1],"rel":[1],"shape":[513],"size":[513],"strong":[4],"target":[1],"type":[1],"form":[1],"isCircle":[32]},null,{"disabled":["disabledChanged"],"aria-checked":["onAriaChanged"],"aria-label":["onAriaChanged"]}],[1,"ion-icon",{"mode":[1025],"color":[1],"ios":[1],"md":[1],"flipRtl":[4,"flip-rtl"],"name":[513],"src":[1],"icon":[8],"size":[1],"lazy":[4],"sanitize":[4],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIcon"],"src":["loadIcon"],"icon":["loadIcon"],"ios":["loadIcon"],"md":["loadIcon"]}]]]]'),e))));
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import{r as i,d as n,w as t,f as e,h as s,j as o,k as l,l as r,m as c}from"./p-HOJ_eq4V.js";import{f as a,p as d,g as p}from"./p-DkXsr7m2.js";import{E as f,a as h}from"./p-BpUl-Ubc.js";import"./p-BZSKvxFv.js";import"./p-vXpMhGrs.js";const m=class{constructor(t){i(this,t),this.ionInfinite=n(this,"ionInfinite",7),this.thrPx=0,this.thrPc=0,this.minHeightLocked=!1,this.didFire=!1,this.isBusy=!1,this.isLoading=!1,this.threshold="15%",this.disabled=!1,this.position="bottom",this.preserveRerenderScrollPosition=!1,this.onScroll=()=>{const i=this.scrollEl;if(!i||!this.canStart())return 1;const n=this.el.offsetHeight;if(0===n)return 2;const t=i.scrollTop,e=i.offsetHeight,s=0!==this.thrPc?e*this.thrPc:this.thrPx;return("bottom"===this.position?i.scrollHeight-n-t-s-e:t-n-s)<0&&!this.didFire?(this.isLoading=!0,this.didFire=!0,this.preserveRerenderScrollPosition?this.lockSiblingMinHeight(!0).then((()=>{this.ionInfinite.emit()})):this.ionInfinite.emit(),3):4}}thresholdChanged(){const i=this.threshold;i.lastIndexOf("%")>-1?(this.thrPx=0,this.thrPc=parseFloat(i)/100):(this.thrPx=parseFloat(i),this.thrPc=0)}disabledChanged(){const i=this.disabled;i&&(this.isLoading=!1,this.isBusy=!1),this.enableScrollEvents(!i)}async connectedCallback(){const i=a(this.el);i?(this.scrollEl=await p(i),this.thresholdChanged(),this.disabledChanged(),"top"===this.position&&t((()=>{this.scrollEl&&(this.scrollEl.scrollTop=this.scrollEl.scrollHeight-this.scrollEl.clientHeight)}))):d(this.el)}disconnectedCallback(){this.enableScrollEvents(!1),this.scrollEl=void 0}lockSiblingMinHeight(i){return new Promise((n=>{var e;const s=(null===(e=this.el.parentElement)||void 0===e?void 0:e.children)||[],o=[];for(const n of s)if(n!==this.el&&n instanceof HTMLElement)if(i){const i=n.getBoundingClientRect().height;o.push((()=>{if(this.minHeightLocked){const i=n.style.minHeight;i&&n.style.setProperty("--ion-previous-min-height",i)}n.style.minHeight=`${i}px`}))}else o.push((()=>{const i=n.style.getPropertyValue("--ion-previous-min-height");n.style.minHeight=i||"auto",n.style.removeProperty("--ion-previous-min-height")}));t((()=>{o.forEach((i=>i())),this.minHeightLocked=i,n()}))}))}async complete(){const i=this.scrollEl;if(this.isLoading&&i){if(this.isLoading=!1,"top"===this.position){this.isBusy=!0;const n=i.scrollHeight-i.scrollTop;requestAnimationFrame((()=>{e((()=>{const e=i.scrollHeight-n;requestAnimationFrame((()=>{t((()=>{i.scrollTop=e,this.isBusy=!1,this.didFire=!1}))}))}))}))}else this.didFire=!1;this.preserveRerenderScrollPosition&&setTimeout((async()=>{await this.lockSiblingMinHeight(!1)}),100)}}canStart(){return!(this.disabled||this.isBusy||!this.scrollEl||this.isLoading)}enableScrollEvents(i){this.scrollEl&&(i?this.scrollEl.addEventListener("scroll",this.onScroll):this.scrollEl.removeEventListener("scroll",this.onScroll))}render(){const i=s(this),n=this.disabled;return o(l,{key:"d425d821fb4e52d6d05625e0d7e229e8e4f6ab9e",class:{[i]:!0,"infinite-scroll-loading":this.isLoading,"infinite-scroll-enabled":!n}})}get el(){return r(this)}static get watchers(){return{threshold:["thresholdChanged"],disabled:["disabledChanged"]}}};m.style="ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}";const g=class{constructor(n){i(this,n),this.customHTMLEnabled=c.get("innerHTMLTemplatesEnabled",f)}componentDidLoad(){if(void 0===this.loadingSpinner){const i=s(this);this.loadingSpinner=c.get("infiniteLoadingSpinner",c.get("spinner","ios"===i?"lines":"crescent"))}}renderLoadingText(){const{customHTMLEnabled:i,loadingText:n}=this;return i?o("div",{class:"infinite-loading-text",innerHTML:h(n)}):o("div",{class:"infinite-loading-text"},this.loadingText)}render(){const i=s(this);return o(l,{key:"51742937a374c43c290c20569857f617c99e1e7c",class:{[i]:!0,[`infinite-scroll-content-${i}`]:!0}},o("div",{key:"42c249b6df301004a834bb615766c38d5ab03d91",class:"infinite-loading"},this.loadingSpinner&&o("div",{key:"7cc7aab81997ef58b914e084402f45dc3abf2ce4",class:"infinite-loading-spinner"},o("ion-spinner",{key:"5c84df7096076580e0bb4926d377c2fac4f75c3d",name:this.loadingSpinner})),void 0!==this.loadingText&&this.renderLoadingText()))}};g.style={ionic:"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:4px;margin-bottom:0}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}",ios:"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:4px;margin-bottom:0}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-ios .infinite-loading-text{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-small-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}",md:"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:4px;margin-bottom:0}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}"};export{m as ion_infinite_scroll,g as ion_infinite_scroll_content}
|
|
@@ -7,7 +7,7 @@ export declare class InfiniteScroll implements ComponentInterface {
|
|
|
7
7
|
private thrPx;
|
|
8
8
|
private thrPc;
|
|
9
9
|
private scrollEl?;
|
|
10
|
-
private
|
|
10
|
+
private minHeightLocked;
|
|
11
11
|
/**
|
|
12
12
|
* didFire exists so that ionInfinite
|
|
13
13
|
* does not fire multiple times if
|
|
@@ -50,6 +50,7 @@ export declare class InfiniteScroll implements ComponentInterface {
|
|
|
50
50
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
51
51
|
* when the content is re-rendered. This is useful when the content is
|
|
52
52
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
53
|
+
* @internal
|
|
53
54
|
*/
|
|
54
55
|
preserveRerenderScrollPosition: boolean;
|
|
55
56
|
/**
|
|
@@ -62,6 +63,15 @@ export declare class InfiniteScroll implements ComponentInterface {
|
|
|
62
63
|
connectedCallback(): Promise<void>;
|
|
63
64
|
disconnectedCallback(): void;
|
|
64
65
|
private onScroll;
|
|
66
|
+
/**
|
|
67
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
68
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
69
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
70
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
71
|
+
*
|
|
72
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
73
|
+
* has been previously set by the user when we restore after complete is called.
|
|
74
|
+
*/
|
|
65
75
|
private lockSiblingMinHeight;
|
|
66
76
|
/**
|
|
67
77
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -7403,11 +7403,6 @@ declare namespace LocalJSX {
|
|
|
7403
7403
|
* @default 'bottom'
|
|
7404
7404
|
*/
|
|
7405
7405
|
"position"?: 'top' | 'bottom';
|
|
7406
|
-
/**
|
|
7407
|
-
* If `true`, the infinite scroll will preserve the scroll position when the content is re-rendered. This is useful when the content is re-rendered with new keys, and the scroll position should be preserved.
|
|
7408
|
-
* @default false
|
|
7409
|
-
*/
|
|
7410
|
-
"preserveRerenderScrollPosition"?: boolean;
|
|
7411
7406
|
/**
|
|
7412
7407
|
* The theme determines the visual appearance of the component.
|
|
7413
7408
|
*/
|
package/hydrate/index.js
CHANGED
|
@@ -16586,7 +16586,7 @@ class InfiniteScroll {
|
|
|
16586
16586
|
this.ionInfinite = createEvent(this, "ionInfinite", 7);
|
|
16587
16587
|
this.thrPx = 0;
|
|
16588
16588
|
this.thrPc = 0;
|
|
16589
|
-
this.
|
|
16589
|
+
this.minHeightLocked = false;
|
|
16590
16590
|
/**
|
|
16591
16591
|
* didFire exists so that ionInfinite
|
|
16592
16592
|
* does not fire multiple times if
|
|
@@ -16626,6 +16626,7 @@ class InfiniteScroll {
|
|
|
16626
16626
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
16627
16627
|
* when the content is re-rendered. This is useful when the content is
|
|
16628
16628
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
16629
|
+
* @internal
|
|
16629
16630
|
*/
|
|
16630
16631
|
this.preserveRerenderScrollPosition = false;
|
|
16631
16632
|
this.onScroll = () => {
|
|
@@ -16649,10 +16650,16 @@ class InfiniteScroll {
|
|
|
16649
16650
|
if (!this.didFire) {
|
|
16650
16651
|
this.isLoading = true;
|
|
16651
16652
|
this.didFire = true;
|
|
16652
|
-
|
|
16653
|
-
|
|
16654
|
-
|
|
16655
|
-
|
|
16653
|
+
if (this.preserveRerenderScrollPosition) {
|
|
16654
|
+
// Lock the min height of the siblings of the infinite scroll
|
|
16655
|
+
// if we are preserving the rerender scroll position
|
|
16656
|
+
this.lockSiblingMinHeight(true).then(() => {
|
|
16657
|
+
this.ionInfinite.emit();
|
|
16658
|
+
});
|
|
16659
|
+
}
|
|
16660
|
+
else {
|
|
16661
|
+
this.ionInfinite.emit();
|
|
16662
|
+
}
|
|
16656
16663
|
return 3;
|
|
16657
16664
|
}
|
|
16658
16665
|
}
|
|
@@ -16679,12 +16686,12 @@ class InfiniteScroll {
|
|
|
16679
16686
|
this.enableScrollEvents(!disabled);
|
|
16680
16687
|
}
|
|
16681
16688
|
async connectedCallback() {
|
|
16682
|
-
|
|
16683
|
-
if (!
|
|
16689
|
+
const contentEl = findClosestIonContent(this.el);
|
|
16690
|
+
if (!contentEl) {
|
|
16684
16691
|
printIonContentErrorMsg(this.el);
|
|
16685
16692
|
return;
|
|
16686
16693
|
}
|
|
16687
|
-
this.scrollEl = await getScrollElement(
|
|
16694
|
+
this.scrollEl = await getScrollElement(contentEl);
|
|
16688
16695
|
this.thresholdChanged();
|
|
16689
16696
|
this.disabledChanged();
|
|
16690
16697
|
if (this.position === 'top') {
|
|
@@ -16699,32 +16706,53 @@ class InfiniteScroll {
|
|
|
16699
16706
|
this.enableScrollEvents(false);
|
|
16700
16707
|
this.scrollEl = undefined;
|
|
16701
16708
|
}
|
|
16709
|
+
/**
|
|
16710
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
16711
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
16712
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
16713
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
16714
|
+
*
|
|
16715
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
16716
|
+
* has been previously set by the user when we restore after complete is called.
|
|
16717
|
+
*/
|
|
16702
16718
|
lockSiblingMinHeight(lock) {
|
|
16703
|
-
|
|
16704
|
-
|
|
16705
|
-
|
|
16706
|
-
|
|
16707
|
-
// Loop through all the siblings of the infinite scroll, but ignore the infinite scroll itself
|
|
16708
|
-
const siblings = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children;
|
|
16709
|
-
if (siblings) {
|
|
16719
|
+
return new Promise((resolve) => {
|
|
16720
|
+
var _a;
|
|
16721
|
+
const siblings = ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || [];
|
|
16722
|
+
const writes = [];
|
|
16710
16723
|
for (const sibling of siblings) {
|
|
16724
|
+
// Loop through all the siblings of the infinite scroll, but ignore ourself
|
|
16711
16725
|
if (sibling !== this.el && sibling instanceof HTMLElement) {
|
|
16712
16726
|
if (lock) {
|
|
16713
16727
|
const elementHeight = sibling.getBoundingClientRect().height;
|
|
16714
|
-
|
|
16715
|
-
|
|
16716
|
-
|
|
16717
|
-
|
|
16718
|
-
|
|
16728
|
+
writes.push(() => {
|
|
16729
|
+
if (this.minHeightLocked) {
|
|
16730
|
+
// The previous min height is from us locking it before, so we can disregard it
|
|
16731
|
+
// We still need to lock the min height if we're already locked, though, because
|
|
16732
|
+
// the user could have triggered a new load before we've finished the previous one.
|
|
16733
|
+
const previousMinHeight = sibling.style.minHeight;
|
|
16734
|
+
if (previousMinHeight) {
|
|
16735
|
+
sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
|
|
16736
|
+
}
|
|
16737
|
+
}
|
|
16738
|
+
sibling.style.minHeight = `${elementHeight}px`;
|
|
16739
|
+
});
|
|
16719
16740
|
}
|
|
16720
16741
|
else {
|
|
16721
|
-
|
|
16722
|
-
|
|
16723
|
-
|
|
16742
|
+
writes.push(() => {
|
|
16743
|
+
const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
|
|
16744
|
+
sibling.style.minHeight = previousMinHeight || 'auto';
|
|
16745
|
+
sibling.style.removeProperty('--ion-previous-min-height');
|
|
16746
|
+
});
|
|
16724
16747
|
}
|
|
16725
16748
|
}
|
|
16726
16749
|
}
|
|
16727
|
-
|
|
16750
|
+
writeTask(() => {
|
|
16751
|
+
writes.forEach((w) => w());
|
|
16752
|
+
this.minHeightLocked = lock;
|
|
16753
|
+
resolve();
|
|
16754
|
+
});
|
|
16755
|
+
});
|
|
16728
16756
|
}
|
|
16729
16757
|
/**
|
|
16730
16758
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -16789,9 +16817,11 @@ class InfiniteScroll {
|
|
|
16789
16817
|
}
|
|
16790
16818
|
// Unlock the min height of the siblings of the infinite scroll
|
|
16791
16819
|
// if we are preserving the rerender scroll position
|
|
16792
|
-
|
|
16793
|
-
|
|
16794
|
-
|
|
16820
|
+
if (this.preserveRerenderScrollPosition) {
|
|
16821
|
+
setTimeout(async () => {
|
|
16822
|
+
await this.lockSiblingMinHeight(false);
|
|
16823
|
+
}, 100);
|
|
16824
|
+
}
|
|
16795
16825
|
}
|
|
16796
16826
|
canStart() {
|
|
16797
16827
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -16809,7 +16839,7 @@ class InfiniteScroll {
|
|
|
16809
16839
|
render() {
|
|
16810
16840
|
const theme = getIonTheme(this);
|
|
16811
16841
|
const disabled = this.disabled;
|
|
16812
|
-
return (hAsync(Host, { key: '
|
|
16842
|
+
return (hAsync(Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
|
|
16813
16843
|
[theme]: true,
|
|
16814
16844
|
'infinite-scroll-loading': this.isLoading,
|
|
16815
16845
|
'infinite-scroll-enabled': !disabled,
|
package/hydrate/index.mjs
CHANGED
|
@@ -16584,7 +16584,7 @@ class InfiniteScroll {
|
|
|
16584
16584
|
this.ionInfinite = createEvent(this, "ionInfinite", 7);
|
|
16585
16585
|
this.thrPx = 0;
|
|
16586
16586
|
this.thrPc = 0;
|
|
16587
|
-
this.
|
|
16587
|
+
this.minHeightLocked = false;
|
|
16588
16588
|
/**
|
|
16589
16589
|
* didFire exists so that ionInfinite
|
|
16590
16590
|
* does not fire multiple times if
|
|
@@ -16624,6 +16624,7 @@ class InfiniteScroll {
|
|
|
16624
16624
|
* If `true`, the infinite scroll will preserve the scroll position
|
|
16625
16625
|
* when the content is re-rendered. This is useful when the content is
|
|
16626
16626
|
* re-rendered with new keys, and the scroll position should be preserved.
|
|
16627
|
+
* @internal
|
|
16627
16628
|
*/
|
|
16628
16629
|
this.preserveRerenderScrollPosition = false;
|
|
16629
16630
|
this.onScroll = () => {
|
|
@@ -16647,10 +16648,16 @@ class InfiniteScroll {
|
|
|
16647
16648
|
if (!this.didFire) {
|
|
16648
16649
|
this.isLoading = true;
|
|
16649
16650
|
this.didFire = true;
|
|
16650
|
-
|
|
16651
|
-
|
|
16652
|
-
|
|
16653
|
-
|
|
16651
|
+
if (this.preserveRerenderScrollPosition) {
|
|
16652
|
+
// Lock the min height of the siblings of the infinite scroll
|
|
16653
|
+
// if we are preserving the rerender scroll position
|
|
16654
|
+
this.lockSiblingMinHeight(true).then(() => {
|
|
16655
|
+
this.ionInfinite.emit();
|
|
16656
|
+
});
|
|
16657
|
+
}
|
|
16658
|
+
else {
|
|
16659
|
+
this.ionInfinite.emit();
|
|
16660
|
+
}
|
|
16654
16661
|
return 3;
|
|
16655
16662
|
}
|
|
16656
16663
|
}
|
|
@@ -16677,12 +16684,12 @@ class InfiniteScroll {
|
|
|
16677
16684
|
this.enableScrollEvents(!disabled);
|
|
16678
16685
|
}
|
|
16679
16686
|
async connectedCallback() {
|
|
16680
|
-
|
|
16681
|
-
if (!
|
|
16687
|
+
const contentEl = findClosestIonContent(this.el);
|
|
16688
|
+
if (!contentEl) {
|
|
16682
16689
|
printIonContentErrorMsg(this.el);
|
|
16683
16690
|
return;
|
|
16684
16691
|
}
|
|
16685
|
-
this.scrollEl = await getScrollElement(
|
|
16692
|
+
this.scrollEl = await getScrollElement(contentEl);
|
|
16686
16693
|
this.thresholdChanged();
|
|
16687
16694
|
this.disabledChanged();
|
|
16688
16695
|
if (this.position === 'top') {
|
|
@@ -16697,32 +16704,53 @@ class InfiniteScroll {
|
|
|
16697
16704
|
this.enableScrollEvents(false);
|
|
16698
16705
|
this.scrollEl = undefined;
|
|
16699
16706
|
}
|
|
16707
|
+
/**
|
|
16708
|
+
* Loop through our sibling elements and lock or unlock their min height.
|
|
16709
|
+
* This keeps our siblings, for example `ion-list`, the same height as their
|
|
16710
|
+
* content currently is, so when it loads new data and the DOM removes the old
|
|
16711
|
+
* data, the height of the container doesn't change and we don't lose our scroll position.
|
|
16712
|
+
*
|
|
16713
|
+
* We preserve existing min-height values, if they're set, so we don't erase what
|
|
16714
|
+
* has been previously set by the user when we restore after complete is called.
|
|
16715
|
+
*/
|
|
16700
16716
|
lockSiblingMinHeight(lock) {
|
|
16701
|
-
|
|
16702
|
-
|
|
16703
|
-
|
|
16704
|
-
|
|
16705
|
-
// Loop through all the siblings of the infinite scroll, but ignore the infinite scroll itself
|
|
16706
|
-
const siblings = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children;
|
|
16707
|
-
if (siblings) {
|
|
16717
|
+
return new Promise((resolve) => {
|
|
16718
|
+
var _a;
|
|
16719
|
+
const siblings = ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || [];
|
|
16720
|
+
const writes = [];
|
|
16708
16721
|
for (const sibling of siblings) {
|
|
16722
|
+
// Loop through all the siblings of the infinite scroll, but ignore ourself
|
|
16709
16723
|
if (sibling !== this.el && sibling instanceof HTMLElement) {
|
|
16710
16724
|
if (lock) {
|
|
16711
16725
|
const elementHeight = sibling.getBoundingClientRect().height;
|
|
16712
|
-
|
|
16713
|
-
|
|
16714
|
-
|
|
16715
|
-
|
|
16716
|
-
|
|
16726
|
+
writes.push(() => {
|
|
16727
|
+
if (this.minHeightLocked) {
|
|
16728
|
+
// The previous min height is from us locking it before, so we can disregard it
|
|
16729
|
+
// We still need to lock the min height if we're already locked, though, because
|
|
16730
|
+
// the user could have triggered a new load before we've finished the previous one.
|
|
16731
|
+
const previousMinHeight = sibling.style.minHeight;
|
|
16732
|
+
if (previousMinHeight) {
|
|
16733
|
+
sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
|
|
16734
|
+
}
|
|
16735
|
+
}
|
|
16736
|
+
sibling.style.minHeight = `${elementHeight}px`;
|
|
16737
|
+
});
|
|
16717
16738
|
}
|
|
16718
16739
|
else {
|
|
16719
|
-
|
|
16720
|
-
|
|
16721
|
-
|
|
16740
|
+
writes.push(() => {
|
|
16741
|
+
const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
|
|
16742
|
+
sibling.style.minHeight = previousMinHeight || 'auto';
|
|
16743
|
+
sibling.style.removeProperty('--ion-previous-min-height');
|
|
16744
|
+
});
|
|
16722
16745
|
}
|
|
16723
16746
|
}
|
|
16724
16747
|
}
|
|
16725
|
-
|
|
16748
|
+
writeTask(() => {
|
|
16749
|
+
writes.forEach((w) => w());
|
|
16750
|
+
this.minHeightLocked = lock;
|
|
16751
|
+
resolve();
|
|
16752
|
+
});
|
|
16753
|
+
});
|
|
16726
16754
|
}
|
|
16727
16755
|
/**
|
|
16728
16756
|
* Call `complete()` within the `ionInfinite` output event handler when
|
|
@@ -16787,9 +16815,11 @@ class InfiniteScroll {
|
|
|
16787
16815
|
}
|
|
16788
16816
|
// Unlock the min height of the siblings of the infinite scroll
|
|
16789
16817
|
// if we are preserving the rerender scroll position
|
|
16790
|
-
|
|
16791
|
-
|
|
16792
|
-
|
|
16818
|
+
if (this.preserveRerenderScrollPosition) {
|
|
16819
|
+
setTimeout(async () => {
|
|
16820
|
+
await this.lockSiblingMinHeight(false);
|
|
16821
|
+
}, 100);
|
|
16822
|
+
}
|
|
16793
16823
|
}
|
|
16794
16824
|
canStart() {
|
|
16795
16825
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -16807,7 +16837,7 @@ class InfiniteScroll {
|
|
|
16807
16837
|
render() {
|
|
16808
16838
|
const theme = getIonTheme(this);
|
|
16809
16839
|
const disabled = this.disabled;
|
|
16810
|
-
return (hAsync(Host, { key: '
|
|
16840
|
+
return (hAsync(Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
|
|
16811
16841
|
[theme]: true,
|
|
16812
16842
|
'infinite-scroll-loading': this.isLoading,
|
|
16813
16843
|
'infinite-scroll-enabled': !disabled,
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as i,d as n,w as t,f as e,h as s,j as o,k as l,l as r,m as c}from"./p-HOJ_eq4V.js";import{f as a,p as d,g as p}from"./p-DkXsr7m2.js";import{E as f,a as h}from"./p-BpUl-Ubc.js";import"./p-BZSKvxFv.js";import"./p-vXpMhGrs.js";const m=class{constructor(t){i(this,t),this.ionInfinite=n(this,"ionInfinite",7),this.thrPx=0,this.thrPc=0,this.contentEl=null,this.didFire=!1,this.isBusy=!1,this.isLoading=!1,this.threshold="15%",this.disabled=!1,this.position="bottom",this.preserveRerenderScrollPosition=!1,this.onScroll=()=>{const i=this.scrollEl;if(!i||!this.canStart())return 1;const n=this.el.offsetHeight;if(0===n)return 2;const t=i.scrollTop,e=i.offsetHeight,s=0!==this.thrPc?e*this.thrPc:this.thrPx;return("bottom"===this.position?i.scrollHeight-n-t-s-e:t-n-s)<0&&!this.didFire?(this.isLoading=!0,this.didFire=!0,this.lockSiblingMinHeight(!0),this.ionInfinite.emit(),3):4}}thresholdChanged(){const i=this.threshold;i.lastIndexOf("%")>-1?(this.thrPx=0,this.thrPc=parseFloat(i)/100):(this.thrPx=parseFloat(i),this.thrPc=0)}disabledChanged(){const i=this.disabled;i&&(this.isLoading=!1,this.isBusy=!1),this.enableScrollEvents(!i)}async connectedCallback(){this.contentEl=a(this.el),this.contentEl?(this.scrollEl=await p(this.contentEl),this.thresholdChanged(),this.disabledChanged(),"top"===this.position&&t((()=>{this.scrollEl&&(this.scrollEl.scrollTop=this.scrollEl.scrollHeight-this.scrollEl.clientHeight)}))):d(this.el)}disconnectedCallback(){this.enableScrollEvents(!1),this.scrollEl=void 0}lockSiblingMinHeight(i){var n;if(!this.preserveRerenderScrollPosition)return;const t=null===(n=this.el.parentElement)||void 0===n?void 0:n.children;if(t)for(const n of t)if(n!==this.el&&n instanceof HTMLElement)if(i){const i=n.getBoundingClientRect().height,t=n.style.minHeight;t&&n.style.setProperty("--ion-previous-min-height",t),n.style.minHeight=`${i}px`}else{const i=n.style.getPropertyValue("--ion-previous-min-height");n.style.minHeight=i||"auto",n.style.removeProperty("--ion-previous-min-height")}}async complete(){const i=this.scrollEl;if(this.isLoading&&i){if(this.isLoading=!1,"top"===this.position){this.isBusy=!0;const n=i.scrollHeight-i.scrollTop;requestAnimationFrame((()=>{e((()=>{const e=i.scrollHeight-n;requestAnimationFrame((()=>{t((()=>{i.scrollTop=e,this.isBusy=!1,this.didFire=!1}))}))}))}))}else this.didFire=!1;setTimeout((()=>{this.lockSiblingMinHeight(!1)}),100)}}canStart(){return!(this.disabled||this.isBusy||!this.scrollEl||this.isLoading)}enableScrollEvents(i){this.scrollEl&&(i?this.scrollEl.addEventListener("scroll",this.onScroll):this.scrollEl.removeEventListener("scroll",this.onScroll))}render(){const i=s(this),n=this.disabled;return o(l,{key:"851e5c2f35f183de2e55f78426e9ede83e133238",class:{[i]:!0,"infinite-scroll-loading":this.isLoading,"infinite-scroll-enabled":!n}})}get el(){return r(this)}static get watchers(){return{threshold:["thresholdChanged"],disabled:["disabledChanged"]}}};m.style="ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}";const g=class{constructor(n){i(this,n),this.customHTMLEnabled=c.get("innerHTMLTemplatesEnabled",f)}componentDidLoad(){if(void 0===this.loadingSpinner){const i=s(this);this.loadingSpinner=c.get("infiniteLoadingSpinner",c.get("spinner","ios"===i?"lines":"crescent"))}}renderLoadingText(){const{customHTMLEnabled:i,loadingText:n}=this;return i?o("div",{class:"infinite-loading-text",innerHTML:h(n)}):o("div",{class:"infinite-loading-text"},this.loadingText)}render(){const i=s(this);return o(l,{key:"51742937a374c43c290c20569857f617c99e1e7c",class:{[i]:!0,[`infinite-scroll-content-${i}`]:!0}},o("div",{key:"42c249b6df301004a834bb615766c38d5ab03d91",class:"infinite-loading"},this.loadingSpinner&&o("div",{key:"7cc7aab81997ef58b914e084402f45dc3abf2ce4",class:"infinite-loading-spinner"},o("ion-spinner",{key:"5c84df7096076580e0bb4926d377c2fac4f75c3d",name:this.loadingSpinner})),void 0!==this.loadingText&&this.renderLoadingText()))}};g.style={ionic:"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:4px;margin-bottom:0}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}",ios:"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:4px;margin-bottom:0}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-ios .infinite-loading-text{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-small-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}",md:"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:4px;margin-bottom:0}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}"};export{m as ion_infinite_scroll,g as ion_infinite_scroll_content}
|