@ionic/core 8.7.18-dev.11769790854.11895f8f → 8.7.18-dev.11770316329.126ef4af
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-refresher.js +32 -3
- package/components/modal.js +12 -220
- package/components/popover.js +11 -83
- package/dist/cjs/ion-modal.cjs.entry.js +12 -220
- package/dist/cjs/ion-popover.cjs.entry.js +11 -83
- package/dist/cjs/ion-refresher_2.cjs.entry.js +32 -3
- package/dist/collection/components/modal/gestures/sheet.js +1 -3
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -3
- package/dist/collection/components/modal/modal.ios.css +4 -0
- package/dist/collection/components/modal/modal.js +7 -215
- package/dist/collection/components/modal/modal.md.css +4 -0
- package/dist/collection/components/popover/animations/ios.enter.js +5 -21
- package/dist/collection/components/popover/animations/md.enter.js +5 -30
- package/dist/collection/components/popover/utils.js +1 -32
- package/dist/collection/components/refresher/refresher.js +70 -4
- package/dist/docs.json +49 -4
- package/dist/esm/ion-modal.entry.js +12 -220
- package/dist/esm/ion-popover.entry.js +11 -83
- package/dist/esm/ion-refresher_2.entry.js +32 -3
- package/dist/html.html-data.json +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-90f2d3ff.entry.js +4 -0
- package/dist/ionic/p-91840a80.entry.js +4 -0
- package/dist/ionic/p-f9061316.entry.js +4 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +0 -47
- package/dist/types/components/popover/utils.d.ts +0 -2
- package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
- package/dist/types/components/refresher/refresher.d.ts +16 -3
- package/dist/types/components.d.ts +16 -5
- package/dist/types/interface.d.ts +1 -1
- package/hydrate/index.js +54 -305
- package/hydrate/index.mjs +54 -305
- package/package.json +2 -4
- package/dist/ionic/p-639dd543.entry.js +0 -4
- package/dist/ionic/p-ec9ca3fe.entry.js +0 -4
- package/dist/ionic/p-ef4256eb.entry.js +0 -4
|
@@ -31,7 +31,7 @@ export const iosEnterAnimation = (baseEl, opts) => {
|
|
|
31
31
|
const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);
|
|
32
32
|
const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
|
|
33
33
|
const margin = size === 'cover' ? 0 : 25;
|
|
34
|
-
const { originX, originY, top, left, bottom,
|
|
34
|
+
const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, arrowTop, arrowLeft, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, margin, results.originX, results.originY, results.referenceCoordinates, results.arrowTop, results.arrowLeft, arrowHeight);
|
|
35
35
|
const baseAnimation = createAnimation();
|
|
36
36
|
const backdropAnimation = createAnimation();
|
|
37
37
|
const contentAnimation = createAnimation();
|
|
@@ -61,35 +61,19 @@ export const iosEnterAnimation = (baseEl, opts) => {
|
|
|
61
61
|
if (addPopoverBottomClass) {
|
|
62
62
|
baseEl.classList.add('popover-bottom');
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* safe-area inset to ensure the popover doesn't overlap with system UI
|
|
68
|
-
* (status bars, home indicators, navigation bars on Android API 36+, etc.)
|
|
69
|
-
*/
|
|
70
|
-
const safeAreaTop = ' + var(--ion-safe-area-top, 0)';
|
|
71
|
-
const safeAreaBottom = ' + var(--ion-safe-area-bottom, 0)';
|
|
64
|
+
if (bottom !== undefined) {
|
|
65
|
+
contentEl.style.setProperty('bottom', `${bottom}px`);
|
|
66
|
+
}
|
|
72
67
|
const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';
|
|
73
68
|
const safeAreaRight = ' - var(--ion-safe-area-right, 0)';
|
|
74
|
-
let topValue = `${top}px`;
|
|
75
|
-
let bottomValue = bottom !== undefined ? `${bottom}px` : undefined;
|
|
76
69
|
let leftValue = `${left}px`;
|
|
77
|
-
if (checkSafeAreaTop) {
|
|
78
|
-
topValue = `${top}px${safeAreaTop}`;
|
|
79
|
-
}
|
|
80
|
-
if (checkSafeAreaBottom && bottomValue !== undefined) {
|
|
81
|
-
bottomValue = `${bottom}px${safeAreaBottom}`;
|
|
82
|
-
}
|
|
83
70
|
if (checkSafeAreaLeft) {
|
|
84
71
|
leftValue = `${left}px${safeAreaLeft}`;
|
|
85
72
|
}
|
|
86
73
|
if (checkSafeAreaRight) {
|
|
87
74
|
leftValue = `${left}px${safeAreaRight}`;
|
|
88
75
|
}
|
|
89
|
-
|
|
90
|
-
contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
|
|
91
|
-
}
|
|
92
|
-
contentEl.style.setProperty('top', `calc(${topValue} + var(--offset-y, 0))`);
|
|
76
|
+
contentEl.style.setProperty('top', `calc(${top}px + var(--offset-y, 0))`);
|
|
93
77
|
contentEl.style.setProperty('left', `calc(${leftValue} + var(--offset-x, 0))`);
|
|
94
78
|
contentEl.style.setProperty('transform-origin', `${originY} ${originX}`);
|
|
95
79
|
if (arrowEl !== null) {
|
|
@@ -28,32 +28,7 @@ export const mdEnterAnimation = (baseEl, opts) => {
|
|
|
28
28
|
};
|
|
29
29
|
const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
|
|
30
30
|
const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
|
|
31
|
-
const { originX, originY, top, left, bottom
|
|
32
|
-
/**
|
|
33
|
-
* Safe area CSS variable adjustments.
|
|
34
|
-
* When the popover is positioned near an edge, we add the corresponding
|
|
35
|
-
* safe-area inset to ensure the popover doesn't overlap with system UI
|
|
36
|
-
* (status bars, home indicators, navigation bars on Android API 36+, etc.)
|
|
37
|
-
*/
|
|
38
|
-
const safeAreaTop = ' + var(--ion-safe-area-top, 0)';
|
|
39
|
-
const safeAreaBottom = ' + var(--ion-safe-area-bottom, 0)';
|
|
40
|
-
const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';
|
|
41
|
-
const safeAreaRight = ' - var(--ion-safe-area-right, 0)';
|
|
42
|
-
let topValue = `${top}px`;
|
|
43
|
-
let bottomValue = bottom !== undefined ? `${bottom}px` : undefined;
|
|
44
|
-
let leftValue = `${left}px`;
|
|
45
|
-
if (checkSafeAreaTop) {
|
|
46
|
-
topValue = `${top}px${safeAreaTop}`;
|
|
47
|
-
}
|
|
48
|
-
if (checkSafeAreaBottom && bottomValue !== undefined) {
|
|
49
|
-
bottomValue = `${bottom}px${safeAreaBottom}`;
|
|
50
|
-
}
|
|
51
|
-
if (checkSafeAreaLeft) {
|
|
52
|
-
leftValue = `${left}px${safeAreaLeft}`;
|
|
53
|
-
}
|
|
54
|
-
if (checkSafeAreaRight) {
|
|
55
|
-
leftValue = `${left}px${safeAreaRight}`;
|
|
56
|
-
}
|
|
31
|
+
const { originX, originY, top, left, bottom } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);
|
|
57
32
|
const baseAnimation = createAnimation();
|
|
58
33
|
const backdropAnimation = createAnimation();
|
|
59
34
|
const wrapperAnimation = createAnimation();
|
|
@@ -70,13 +45,13 @@ export const mdEnterAnimation = (baseEl, opts) => {
|
|
|
70
45
|
contentAnimation
|
|
71
46
|
.addElement(contentEl)
|
|
72
47
|
.beforeStyles({
|
|
73
|
-
top: `calc(${
|
|
74
|
-
left: `calc(${
|
|
48
|
+
top: `calc(${top}px + var(--offset-y, 0px))`,
|
|
49
|
+
left: `calc(${left}px + var(--offset-x, 0px))`,
|
|
75
50
|
'transform-origin': `${originY} ${originX}`,
|
|
76
51
|
})
|
|
77
52
|
.beforeAddWrite(() => {
|
|
78
|
-
if (
|
|
79
|
-
contentEl.style.setProperty('bottom',
|
|
53
|
+
if (bottom !== undefined) {
|
|
54
|
+
contentEl.style.setProperty('bottom', `${bottom}px`);
|
|
80
55
|
}
|
|
81
56
|
})
|
|
82
57
|
.fromTo('transform', 'scale(0.8)', 'scale(1)');
|
|
@@ -648,8 +648,6 @@ export const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding
|
|
|
648
648
|
let bottom;
|
|
649
649
|
let originX = contentOriginX;
|
|
650
650
|
let originY = contentOriginY;
|
|
651
|
-
let checkSafeAreaTop = false;
|
|
652
|
-
let checkSafeAreaBottom = false;
|
|
653
651
|
let checkSafeAreaLeft = false;
|
|
654
652
|
let checkSafeAreaRight = false;
|
|
655
653
|
const triggerTop = triggerCoordinates
|
|
@@ -694,18 +692,10 @@ export const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding
|
|
|
694
692
|
* We chose 12 here so that the popover position looks a bit nicer as
|
|
695
693
|
* it is not right up against the edge of the screen.
|
|
696
694
|
*/
|
|
697
|
-
top = Math.max(
|
|
695
|
+
top = Math.max(12, triggerTop - contentHeight - triggerHeight - (arrowHeight - 1));
|
|
698
696
|
arrowTop = top + contentHeight;
|
|
699
697
|
originY = 'bottom';
|
|
700
698
|
addPopoverBottomClass = true;
|
|
701
|
-
/**
|
|
702
|
-
* If the popover is positioned near the top edge, account for safe area.
|
|
703
|
-
* This ensures the popover doesn't overlap with status bars or notches.
|
|
704
|
-
*/
|
|
705
|
-
if (top <= bodyPadding + safeAreaMargin) {
|
|
706
|
-
checkSafeAreaTop = true;
|
|
707
|
-
top = bodyPadding;
|
|
708
|
-
}
|
|
709
699
|
/**
|
|
710
700
|
* If not enough room for popover to appear
|
|
711
701
|
* above trigger, then cut it off.
|
|
@@ -713,35 +703,14 @@ export const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding
|
|
|
713
703
|
}
|
|
714
704
|
else {
|
|
715
705
|
bottom = bodyPadding;
|
|
716
|
-
/**
|
|
717
|
-
* When the popover is pinned to the bottom, account for safe area.
|
|
718
|
-
* This ensures the popover doesn't overlap with home indicators
|
|
719
|
-
* or navigation bars (e.g., Android API 36+ edge-to-edge).
|
|
720
|
-
*/
|
|
721
|
-
checkSafeAreaBottom = true;
|
|
722
706
|
}
|
|
723
707
|
}
|
|
724
|
-
/**
|
|
725
|
-
* Final check: If the popover extends into any safe-area region,
|
|
726
|
-
* ensure the corresponding flag is set regardless of side.
|
|
727
|
-
* This handles cases where a side-positioned popover (left/right)
|
|
728
|
-
* still needs bottom safe-area padding because it extends into that region.
|
|
729
|
-
*/
|
|
730
|
-
const popoverBottom = bottom !== undefined ? bodyHeight - bottom : top + contentHeight;
|
|
731
|
-
if (popoverBottom + safeAreaMargin > bodyHeight) {
|
|
732
|
-
checkSafeAreaBottom = true;
|
|
733
|
-
}
|
|
734
|
-
if (top < safeAreaMargin) {
|
|
735
|
-
checkSafeAreaTop = true;
|
|
736
|
-
}
|
|
737
708
|
return {
|
|
738
709
|
top,
|
|
739
710
|
left,
|
|
740
711
|
bottom,
|
|
741
712
|
originX,
|
|
742
713
|
originY,
|
|
743
|
-
checkSafeAreaTop,
|
|
744
|
-
checkSafeAreaBottom,
|
|
745
714
|
checkSafeAreaLeft,
|
|
746
715
|
checkSafeAreaRight,
|
|
747
716
|
arrowTop,
|
|
@@ -68,8 +68,8 @@ export class Refresher {
|
|
|
68
68
|
* than `1`. The default value is `1` which is equal to the speed of the cursor.
|
|
69
69
|
* If a negative value is passed in, the factor will be `1` instead.
|
|
70
70
|
*
|
|
71
|
-
* For example
|
|
72
|
-
* `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
|
|
71
|
+
* For example, If the value passed is `1.2` and the content is dragged by
|
|
72
|
+
* `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
|
|
73
73
|
* (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
|
|
74
74
|
* will be `8` pixels, less than the amount the cursor has moved.
|
|
75
75
|
*
|
|
@@ -119,6 +119,9 @@ export class Refresher {
|
|
|
119
119
|
this.animations = [];
|
|
120
120
|
this.progress = 0;
|
|
121
121
|
this.state = 1 /* RefresherState.Inactive */;
|
|
122
|
+
this.ionPullEnd.emit({
|
|
123
|
+
reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
|
|
124
|
+
});
|
|
122
125
|
}
|
|
123
126
|
async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {
|
|
124
127
|
this.elementToTransform = this.scrollEl;
|
|
@@ -151,6 +154,7 @@ export class Refresher {
|
|
|
151
154
|
if (!this.didStart) {
|
|
152
155
|
this.didStart = true;
|
|
153
156
|
this.ionStart.emit();
|
|
157
|
+
this.ionPullStart.emit();
|
|
154
158
|
}
|
|
155
159
|
// emit "pulling" on every move
|
|
156
160
|
if (this.pointerDown) {
|
|
@@ -226,6 +230,7 @@ export class Refresher {
|
|
|
226
230
|
this.lastVelocityY = ev.velocityY;
|
|
227
231
|
},
|
|
228
232
|
onEnd: () => {
|
|
233
|
+
const hadStarted = this.didStart;
|
|
229
234
|
this.pointerDown = false;
|
|
230
235
|
this.didStart = false;
|
|
231
236
|
if (this.needsCompletion) {
|
|
@@ -235,6 +240,13 @@ export class Refresher {
|
|
|
235
240
|
else if (this.didRefresh) {
|
|
236
241
|
readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));
|
|
237
242
|
}
|
|
243
|
+
else if (hadStarted) {
|
|
244
|
+
/**
|
|
245
|
+
* User started pulling but released before reaching the refresh threshold.
|
|
246
|
+
* Emit ionPullEnd to complete the event pair.
|
|
247
|
+
*/
|
|
248
|
+
this.ionPullEnd.emit({ reason: 'cancel' });
|
|
249
|
+
}
|
|
238
250
|
},
|
|
239
251
|
});
|
|
240
252
|
this.disabledChanged();
|
|
@@ -281,6 +293,7 @@ export class Refresher {
|
|
|
281
293
|
ev.data.animation = animation;
|
|
282
294
|
animation.progressStart(false, 0);
|
|
283
295
|
this.ionStart.emit();
|
|
296
|
+
this.ionPullStart.emit();
|
|
284
297
|
this.animations.push(animation);
|
|
285
298
|
return;
|
|
286
299
|
}
|
|
@@ -303,6 +316,7 @@ export class Refresher {
|
|
|
303
316
|
this.animations = [];
|
|
304
317
|
this.gesture.enable(true);
|
|
305
318
|
this.state = 1 /* RefresherState.Inactive */;
|
|
319
|
+
this.ionPullEnd.emit({ reason: 'cancel' });
|
|
306
320
|
});
|
|
307
321
|
return;
|
|
308
322
|
}
|
|
@@ -547,6 +561,7 @@ export class Refresher {
|
|
|
547
561
|
if (!this.didStart) {
|
|
548
562
|
this.didStart = true;
|
|
549
563
|
this.ionStart.emit();
|
|
564
|
+
this.ionPullStart.emit();
|
|
550
565
|
}
|
|
551
566
|
// emit "pulling" on every move
|
|
552
567
|
this.ionPull.emit();
|
|
@@ -590,6 +605,15 @@ export class Refresher {
|
|
|
590
605
|
* available right away.
|
|
591
606
|
*/
|
|
592
607
|
this.restoreOverflowStyle();
|
|
608
|
+
/**
|
|
609
|
+
* If ionPullStart was emitted, we need to emit ionPullEnd
|
|
610
|
+
* even though the gesture was aborted before reaching the
|
|
611
|
+
* pulling threshold.
|
|
612
|
+
*/
|
|
613
|
+
if (this.didStart) {
|
|
614
|
+
this.didStart = false;
|
|
615
|
+
this.ionPullEnd.emit({ reason: 'cancel' });
|
|
616
|
+
}
|
|
593
617
|
}
|
|
594
618
|
}
|
|
595
619
|
beginRefresh() {
|
|
@@ -636,6 +660,9 @@ export class Refresher {
|
|
|
636
660
|
if (this.contentFullscreen && this.backgroundContentEl) {
|
|
637
661
|
(_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
|
|
638
662
|
}
|
|
663
|
+
this.ionPullEnd.emit({
|
|
664
|
+
reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
|
|
665
|
+
});
|
|
639
666
|
}, 600);
|
|
640
667
|
// reset the styles on the scroll element
|
|
641
668
|
// set that the refresh is actively cancelling/completing
|
|
@@ -689,7 +716,7 @@ export class Refresher {
|
|
|
689
716
|
}
|
|
690
717
|
render() {
|
|
691
718
|
const mode = getIonMode(this);
|
|
692
|
-
return (h(Host, { key: '
|
|
719
|
+
return (h(Host, { key: 'bed0c2f44c32ecac24b7d8326ac7c7ef1d12c44f', slot: "fixed", class: {
|
|
693
720
|
[mode]: true,
|
|
694
721
|
// Used internally for styling
|
|
695
722
|
[`refresher-${mode}`]: true,
|
|
@@ -809,7 +836,7 @@ export class Refresher {
|
|
|
809
836
|
"optional": false,
|
|
810
837
|
"docs": {
|
|
811
838
|
"tags": [],
|
|
812
|
-
"text": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example
|
|
839
|
+
"text": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example, If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher."
|
|
813
840
|
},
|
|
814
841
|
"getter": false,
|
|
815
842
|
"setter": false,
|
|
@@ -888,6 +915,24 @@ export class Refresher {
|
|
|
888
915
|
"bubbles": true,
|
|
889
916
|
"cancelable": true,
|
|
890
917
|
"composed": true,
|
|
918
|
+
"docs": {
|
|
919
|
+
"tags": [{
|
|
920
|
+
"name": "deprecated",
|
|
921
|
+
"text": "Use `ionPullStart` instead."
|
|
922
|
+
}],
|
|
923
|
+
"text": "Emitted when the user begins to start pulling down.\nTODO(FW-7044): Remove this in a major release"
|
|
924
|
+
},
|
|
925
|
+
"complexType": {
|
|
926
|
+
"original": "void",
|
|
927
|
+
"resolved": "void",
|
|
928
|
+
"references": {}
|
|
929
|
+
}
|
|
930
|
+
}, {
|
|
931
|
+
"method": "ionPullStart",
|
|
932
|
+
"name": "ionPullStart",
|
|
933
|
+
"bubbles": true,
|
|
934
|
+
"cancelable": true,
|
|
935
|
+
"composed": true,
|
|
891
936
|
"docs": {
|
|
892
937
|
"tags": [],
|
|
893
938
|
"text": "Emitted when the user begins to start pulling down."
|
|
@@ -897,6 +942,27 @@ export class Refresher {
|
|
|
897
942
|
"resolved": "void",
|
|
898
943
|
"references": {}
|
|
899
944
|
}
|
|
945
|
+
}, {
|
|
946
|
+
"method": "ionPullEnd",
|
|
947
|
+
"name": "ionPullEnd",
|
|
948
|
+
"bubbles": true,
|
|
949
|
+
"cancelable": true,
|
|
950
|
+
"composed": true,
|
|
951
|
+
"docs": {
|
|
952
|
+
"tags": [],
|
|
953
|
+
"text": "Emitted when the refresher has returned to the inactive state\nafter a pull gesture. This fires whether the refresh completed\nsuccessfully or was canceled."
|
|
954
|
+
},
|
|
955
|
+
"complexType": {
|
|
956
|
+
"original": "RefresherPullEndEventDetail",
|
|
957
|
+
"resolved": "RefresherPullEndEventDetail",
|
|
958
|
+
"references": {
|
|
959
|
+
"RefresherPullEndEventDetail": {
|
|
960
|
+
"location": "import",
|
|
961
|
+
"path": "./refresher-interface",
|
|
962
|
+
"id": "src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail"
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
}
|
|
900
966
|
}];
|
|
901
967
|
}
|
|
902
968
|
static get methods() {
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-
|
|
2
|
+
"timestamp": "2026-02-05T18:33:56",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.38.0",
|
|
@@ -26514,7 +26514,7 @@
|
|
|
26514
26514
|
"mutable": false,
|
|
26515
26515
|
"attr": "pull-factor",
|
|
26516
26516
|
"reflectToAttr": false,
|
|
26517
|
-
"docs": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example
|
|
26517
|
+
"docs": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example, If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher.",
|
|
26518
26518
|
"docsTags": [
|
|
26519
26519
|
{
|
|
26520
26520
|
"name": "default",
|
|
@@ -26703,6 +26703,40 @@
|
|
|
26703
26703
|
"docs": "Emitted while the user is pulling down the content and exposing the refresher.",
|
|
26704
26704
|
"docsTags": []
|
|
26705
26705
|
},
|
|
26706
|
+
{
|
|
26707
|
+
"event": "ionPullEnd",
|
|
26708
|
+
"detail": "RefresherPullEndEventDetail",
|
|
26709
|
+
"bubbles": true,
|
|
26710
|
+
"complexType": {
|
|
26711
|
+
"original": "RefresherPullEndEventDetail",
|
|
26712
|
+
"resolved": "RefresherPullEndEventDetail",
|
|
26713
|
+
"references": {
|
|
26714
|
+
"RefresherPullEndEventDetail": {
|
|
26715
|
+
"location": "import",
|
|
26716
|
+
"path": "./refresher-interface",
|
|
26717
|
+
"id": "src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail"
|
|
26718
|
+
}
|
|
26719
|
+
}
|
|
26720
|
+
},
|
|
26721
|
+
"cancelable": true,
|
|
26722
|
+
"composed": true,
|
|
26723
|
+
"docs": "Emitted when the refresher has returned to the inactive state\nafter a pull gesture. This fires whether the refresh completed\nsuccessfully or was canceled.",
|
|
26724
|
+
"docsTags": []
|
|
26725
|
+
},
|
|
26726
|
+
{
|
|
26727
|
+
"event": "ionPullStart",
|
|
26728
|
+
"detail": "void",
|
|
26729
|
+
"bubbles": true,
|
|
26730
|
+
"complexType": {
|
|
26731
|
+
"original": "void",
|
|
26732
|
+
"resolved": "void",
|
|
26733
|
+
"references": {}
|
|
26734
|
+
},
|
|
26735
|
+
"cancelable": true,
|
|
26736
|
+
"composed": true,
|
|
26737
|
+
"docs": "Emitted when the user begins to start pulling down.",
|
|
26738
|
+
"docsTags": []
|
|
26739
|
+
},
|
|
26706
26740
|
{
|
|
26707
26741
|
"event": "ionRefresh",
|
|
26708
26742
|
"detail": "RefresherEventDetail",
|
|
@@ -26734,8 +26768,14 @@
|
|
|
26734
26768
|
},
|
|
26735
26769
|
"cancelable": true,
|
|
26736
26770
|
"composed": true,
|
|
26737
|
-
"docs": "Emitted when the user begins to start pulling down
|
|
26738
|
-
"docsTags": [
|
|
26771
|
+
"docs": "Emitted when the user begins to start pulling down.\nTODO(FW-7044): Remove this in a major release",
|
|
26772
|
+
"docsTags": [
|
|
26773
|
+
{
|
|
26774
|
+
"name": "deprecated",
|
|
26775
|
+
"text": "Use `ionPullStart` instead."
|
|
26776
|
+
}
|
|
26777
|
+
],
|
|
26778
|
+
"deprecation": "Use `ionPullStart` instead."
|
|
26739
26779
|
}
|
|
26740
26780
|
],
|
|
26741
26781
|
"listeners": [],
|
|
@@ -37551,6 +37591,11 @@
|
|
|
37551
37591
|
"docstring": "",
|
|
37552
37592
|
"path": "src/components/refresher/refresher-interface.ts"
|
|
37553
37593
|
},
|
|
37594
|
+
"src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail": {
|
|
37595
|
+
"declaration": "export interface RefresherPullEndEventDetail {\n reason: 'complete' | 'cancel';\n}",
|
|
37596
|
+
"docstring": "",
|
|
37597
|
+
"path": "src/components/refresher/refresher-interface.ts"
|
|
37598
|
+
},
|
|
37554
37599
|
"src/components/reorder-group/reorder-group-interface.ts::ItemReorderEventDetail": {
|
|
37555
37600
|
"declaration": "export interface ItemReorderEventDetail {\n from: number;\n to: number;\n complete: (data?: boolean | any[]) => any;\n}",
|
|
37556
37601
|
"docstring": "",
|