@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.
@@ -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.contentEl = null;
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
- // Lock the min height of the siblings of the infinite scroll
81
- // if we are preserving the rerender scroll position
82
- this.lockSiblingMinHeight(true);
83
- this.ionInfinite.emit();
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
- this.contentEl = findClosestIonContent(this.el);
111
- if (!this.contentEl) {
117
+ const contentEl = findClosestIonContent(this.el);
118
+ if (!contentEl) {
112
119
  printIonContentErrorMsg(this.el);
113
120
  return;
114
121
  }
115
- this.scrollEl = await getScrollElement(this.contentEl);
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
- var _a;
132
- if (!this.preserveRerenderScrollPosition) {
133
- return;
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
- const previousMinHeight = sibling.style.minHeight;
143
- if (previousMinHeight) {
144
- sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
145
- }
146
- sibling.style.minHeight = `${elementHeight}px`;
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
- const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
150
- sibling.style.minHeight = previousMinHeight || 'auto';
151
- sibling.style.removeProperty('--ion-previous-min-height');
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
- setTimeout(() => {
221
- this.lockSiblingMinHeight(false);
222
- }, 100);
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: '851e5c2f35f183de2e55f78426e9ede83e133238', class: {
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.contentEl = null;
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
- // Lock the min height of the siblings of the infinite scroll
84
- // if we are preserving the rerender scroll position
85
- this.lockSiblingMinHeight(true);
86
- this.ionInfinite.emit();
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
- this.contentEl = index$1.findClosestIonContent(this.el);
114
- if (!this.contentEl) {
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(this.contentEl);
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
- var _a;
135
- if (!this.preserveRerenderScrollPosition) {
136
- return;
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
- const previousMinHeight = sibling.style.minHeight;
146
- if (previousMinHeight) {
147
- sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
148
- }
149
- sibling.style.minHeight = `${elementHeight}px`;
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
- const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
153
- sibling.style.minHeight = previousMinHeight || 'auto';
154
- sibling.style.removeProperty('--ion-previous-min-height');
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
- setTimeout(() => {
224
- this.lockSiblingMinHeight(false);
225
- }, 100);
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: '851e5c2f35f183de2e55f78426e9ede83e133238', class: {
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.contentEl = null;
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
- // Lock the min height of the siblings of the infinite scroll
79
- // if we are preserving the rerender scroll position
80
- this.lockSiblingMinHeight(true);
81
- this.ionInfinite.emit();
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
- this.contentEl = findClosestIonContent(this.el);
109
- if (!this.contentEl) {
115
+ const contentEl = findClosestIonContent(this.el);
116
+ if (!contentEl) {
110
117
  printIonContentErrorMsg(this.el);
111
118
  return;
112
119
  }
113
- this.scrollEl = await getScrollElement(this.contentEl);
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
- var _a;
130
- if (!this.preserveRerenderScrollPosition) {
131
- return;
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
- const previousMinHeight = sibling.style.minHeight;
141
- if (previousMinHeight) {
142
- sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
143
- }
144
- sibling.style.minHeight = `${elementHeight}px`;
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
- const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
148
- sibling.style.minHeight = previousMinHeight || 'auto';
149
- sibling.style.removeProperty('--ion-previous-min-height');
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
- setTimeout(() => {
219
- this.lockSiblingMinHeight(false);
220
- }, 100);
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: '851e5c2f35f183de2e55f78426e9ede83e133238', class: {
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-23T15:22:58",
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.contentEl = null;
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
- // Lock the min height of the siblings of the infinite scroll
82
- // if we are preserving the rerender scroll position
83
- this.lockSiblingMinHeight(true);
84
- this.ionInfinite.emit();
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
- this.contentEl = findClosestIonContent(this.el);
112
- if (!this.contentEl) {
118
+ const contentEl = findClosestIonContent(this.el);
119
+ if (!contentEl) {
113
120
  printIonContentErrorMsg(this.el);
114
121
  return;
115
122
  }
116
- this.scrollEl = await getScrollElement(this.contentEl);
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
- var _a;
133
- if (!this.preserveRerenderScrollPosition) {
134
- return;
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
- const previousMinHeight = sibling.style.minHeight;
144
- if (previousMinHeight) {
145
- sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
146
- }
147
- sibling.style.minHeight = `${elementHeight}px`;
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
- const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
151
- sibling.style.minHeight = previousMinHeight || 'auto';
152
- sibling.style.removeProperty('--ion-previous-min-height');
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
- setTimeout(() => {
222
- this.lockSiblingMinHeight(false);
223
- }, 100);
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: '851e5c2f35f183de2e55f78426e9ede83e133238', class: {
271
+ return (h(Host, { key: 'd425d821fb4e52d6d05625e0d7e229e8e4f6ab9e', class: {
242
272
  [theme]: true,
243
273
  'infinite-scroll-loading': this.isLoading,
244
274
  'infinite-scroll-enabled': !disabled,
@@ -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.",
@@ -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 contentEl;
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.contentEl = null;
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
- // Lock the min height of the siblings of the infinite scroll
16653
- // if we are preserving the rerender scroll position
16654
- this.lockSiblingMinHeight(true);
16655
- this.ionInfinite.emit();
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
- this.contentEl = findClosestIonContent(this.el);
16683
- if (!this.contentEl) {
16689
+ const contentEl = findClosestIonContent(this.el);
16690
+ if (!contentEl) {
16684
16691
  printIonContentErrorMsg(this.el);
16685
16692
  return;
16686
16693
  }
16687
- this.scrollEl = await getScrollElement(this.contentEl);
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
- var _a;
16704
- if (!this.preserveRerenderScrollPosition) {
16705
- return;
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
- const previousMinHeight = sibling.style.minHeight;
16715
- if (previousMinHeight) {
16716
- sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
16717
- }
16718
- sibling.style.minHeight = `${elementHeight}px`;
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
- const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
16722
- sibling.style.minHeight = previousMinHeight || 'auto';
16723
- sibling.style.removeProperty('--ion-previous-min-height');
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
- setTimeout(() => {
16793
- this.lockSiblingMinHeight(false);
16794
- }, 100);
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: '851e5c2f35f183de2e55f78426e9ede83e133238', class: {
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.contentEl = null;
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
- // Lock the min height of the siblings of the infinite scroll
16651
- // if we are preserving the rerender scroll position
16652
- this.lockSiblingMinHeight(true);
16653
- this.ionInfinite.emit();
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
- this.contentEl = findClosestIonContent(this.el);
16681
- if (!this.contentEl) {
16687
+ const contentEl = findClosestIonContent(this.el);
16688
+ if (!contentEl) {
16682
16689
  printIonContentErrorMsg(this.el);
16683
16690
  return;
16684
16691
  }
16685
- this.scrollEl = await getScrollElement(this.contentEl);
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
- var _a;
16702
- if (!this.preserveRerenderScrollPosition) {
16703
- return;
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
- const previousMinHeight = sibling.style.minHeight;
16713
- if (previousMinHeight) {
16714
- sibling.style.setProperty('--ion-previous-min-height', previousMinHeight);
16715
- }
16716
- sibling.style.minHeight = `${elementHeight}px`;
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
- const previousMinHeight = sibling.style.getPropertyValue('--ion-previous-min-height');
16720
- sibling.style.minHeight = previousMinHeight || 'auto';
16721
- sibling.style.removeProperty('--ion-previous-min-height');
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
- setTimeout(() => {
16791
- this.lockSiblingMinHeight(false);
16792
- }, 100);
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: '851e5c2f35f183de2e55f78426e9ede83e133238', class: {
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.6.6-dev.11753284047.10e4473f",
3
+ "version": "8.6.6-dev.11753719591.13a5c65f",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -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}