@progress/kendo-react-grid 16.2.0-develop.5 → 16.2.0-develop.7
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/GridClientWrapper.js +1 -1
- package/GridClientWrapper.mjs +662 -638
- package/GridComponent.js +1 -1
- package/GridComponent.mjs +154 -152
- package/VirtualScroll.d.ts +2 -0
- package/VirtualScroll.js +1 -1
- package/VirtualScroll.mjs +20 -13
- package/components/VirtualScrollOverlay.js +1 -8
- package/components/VirtualScrollOverlay.mjs +43 -41
- package/dist/cdn/js/kendo-react-grid.js +1 -1
- package/interfaces/GridScrollableSettings.d.ts +11 -2
- package/interfaces/VirtualScrollInterface.d.ts +2 -1
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +17 -17
- package/utils/proxiedScrollOverlay.d.ts +48 -0
- package/utils/proxiedScrollOverlay.js +8 -0
- package/utils/proxiedScrollOverlay.mjs +31 -0
- package/utils/wheelTouchScroll.d.ts +21 -0
- package/utils/wheelTouchScroll.js +8 -0
- package/utils/wheelTouchScroll.mjs +57 -0
|
@@ -23,11 +23,20 @@ export interface GridScrollableSettings {
|
|
|
23
23
|
* Controls the scrollbar rendering style.
|
|
24
24
|
*
|
|
25
25
|
* - `default`—Uses the native browser scrollbar (default).
|
|
26
|
-
* - `proxied`—Renders a
|
|
27
|
-
* The overlay appears on hover or scroll and hides when idle,
|
|
26
|
+
* - `proxied`—Renders a native scrollbar-based overlay on top of the content area,
|
|
28
27
|
* eliminating the white-space flash during virtual scrolling jumps.
|
|
29
28
|
*
|
|
30
29
|
* @default 'default'
|
|
31
30
|
*/
|
|
32
31
|
scrollbar?: 'default' | 'proxied';
|
|
32
|
+
/**
|
|
33
|
+
* Multiplies the scrolling distance reported by mouse-wheel and trackpad input.
|
|
34
|
+
* Applies to the `scrollable` and `virtual` modes with both scrollbar styles.
|
|
35
|
+
*
|
|
36
|
+
* Must be a positive, finite number. Values that are zero, negative, `NaN`, or `Infinity`
|
|
37
|
+
* fall back to the default.
|
|
38
|
+
*
|
|
39
|
+
* @default 1
|
|
40
|
+
*/
|
|
41
|
+
wheelMultiplier?: number;
|
|
33
42
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
import { Page } from '../paging/Page';
|
|
9
|
-
import { SyntheticEvent } from 'react';
|
|
9
|
+
import { RefObject, SyntheticEvent } from 'react';
|
|
10
10
|
import { RowHeightService } from '@progress/kendo-react-common';
|
|
11
11
|
/**
|
|
12
12
|
* @hidden
|
|
@@ -24,6 +24,7 @@ export interface VirtualScrollInterface {
|
|
|
24
24
|
tableTransform: string;
|
|
25
25
|
rowHeightService?: RowHeightService;
|
|
26
26
|
scrollbarOverlaySpacerElement: HTMLDivElement | null;
|
|
27
|
+
overlaySyncingRef: RefObject<boolean> | null;
|
|
27
28
|
reset: () => void;
|
|
28
29
|
scrollHandler(e: SyntheticEvent<HTMLDivElement>): void;
|
|
29
30
|
scrollToPosition(scrollTop: number, e: SyntheticEvent<HTMLDivElement>, deferTranslate?: boolean): void;
|
package/package-metadata.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Object.freeze({name:"@progress/kendo-react-grid",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate:
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Object.freeze({name:"@progress/kendo-react-grid",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate: 1789552554,version:"16.2.0-develop.7",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"});exports.packageMetadata=e;
|
package/package-metadata.mjs
CHANGED
|
@@ -7,7 +7,7 @@ export const packageMetadata = Object.freeze({
|
|
|
7
7
|
productName: 'KendoReact',
|
|
8
8
|
productCode: 'KENDOUIREACT',
|
|
9
9
|
productCodes: ['KENDOUIREACT'],
|
|
10
|
-
publishDate:
|
|
11
|
-
version: '16.2.0-develop.
|
|
10
|
+
publishDate: 1789552554,
|
|
11
|
+
version: '16.2.0-develop.7',
|
|
12
12
|
licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/components/my-license/'
|
|
13
13
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-react-grid",
|
|
3
|
-
"version": "16.2.0-develop.
|
|
3
|
+
"version": "16.2.0-develop.7",
|
|
4
4
|
"description": "React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package",
|
|
5
5
|
"author": "Progress",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -30,21 +30,21 @@
|
|
|
30
30
|
"@progress/kendo-drawing": "^1.25.5",
|
|
31
31
|
"@progress/kendo-file-saver": "^1.1.1",
|
|
32
32
|
"@progress/kendo-licensing": "^1.7.2",
|
|
33
|
-
"@progress/kendo-react-animation": "16.2.0-develop.
|
|
34
|
-
"@progress/kendo-react-buttons": "16.2.0-develop.
|
|
35
|
-
"@progress/kendo-react-common": "16.2.0-develop.
|
|
36
|
-
"@progress/kendo-react-data-tools": "16.2.0-develop.
|
|
37
|
-
"@progress/kendo-react-dateinputs": "16.2.0-develop.
|
|
38
|
-
"@progress/kendo-react-indicators": "16.2.0-develop.
|
|
39
|
-
"@progress/kendo-react-form": "16.2.0-develop.
|
|
40
|
-
"@progress/kendo-react-labels": "16.2.0-develop.
|
|
41
|
-
"@progress/kendo-react-dialogs": "16.2.0-develop.
|
|
42
|
-
"@progress/kendo-react-dropdowns": "16.2.0-develop.
|
|
43
|
-
"@progress/kendo-react-inputs": "16.2.0-develop.
|
|
44
|
-
"@progress/kendo-react-intl": "16.2.0-develop.
|
|
45
|
-
"@progress/kendo-react-popup": "16.2.0-develop.
|
|
46
|
-
"@progress/kendo-react-layout": "16.2.0-develop.
|
|
47
|
-
"@progress/kendo-react-conversational-ui": "16.2.0-develop.
|
|
33
|
+
"@progress/kendo-react-animation": "16.2.0-develop.7",
|
|
34
|
+
"@progress/kendo-react-buttons": "16.2.0-develop.7",
|
|
35
|
+
"@progress/kendo-react-common": "16.2.0-develop.7",
|
|
36
|
+
"@progress/kendo-react-data-tools": "16.2.0-develop.7",
|
|
37
|
+
"@progress/kendo-react-dateinputs": "16.2.0-develop.7",
|
|
38
|
+
"@progress/kendo-react-indicators": "16.2.0-develop.7",
|
|
39
|
+
"@progress/kendo-react-form": "16.2.0-develop.7",
|
|
40
|
+
"@progress/kendo-react-labels": "16.2.0-develop.7",
|
|
41
|
+
"@progress/kendo-react-dialogs": "16.2.0-develop.7",
|
|
42
|
+
"@progress/kendo-react-dropdowns": "16.2.0-develop.7",
|
|
43
|
+
"@progress/kendo-react-inputs": "16.2.0-develop.7",
|
|
44
|
+
"@progress/kendo-react-intl": "16.2.0-develop.7",
|
|
45
|
+
"@progress/kendo-react-popup": "16.2.0-develop.7",
|
|
46
|
+
"@progress/kendo-react-layout": "16.2.0-develop.7",
|
|
47
|
+
"@progress/kendo-react-conversational-ui": "16.2.0-develop.7",
|
|
48
48
|
"@progress/kendo-svg-icons": "^4.9.0 || ^5.0.0",
|
|
49
49
|
"react": "^18.0.0 || ^19.0.0",
|
|
50
50
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
"package": {
|
|
156
156
|
"productName": "KendoReact",
|
|
157
157
|
"productCode": "KENDOUIREACT",
|
|
158
|
-
"publishDate":
|
|
158
|
+
"publishDate": 1789552554,
|
|
159
159
|
"licensingDocsUrl": "https://www.telerik.com/kendo-react-ui/components/my-license/"
|
|
160
160
|
}
|
|
161
161
|
},
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { GridScrollableSettings } from '../interfaces/GridScrollableSettings';
|
|
9
|
+
import { ScrollMode } from '../ScrollMode';
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export interface ScrollableOverlaySettings {
|
|
14
|
+
overlayScrollbar: boolean;
|
|
15
|
+
wheelMultiplier: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
20
|
+
export declare function getScrollableOverlaySettings(scrollable: ScrollMode | GridScrollableSettings | undefined): ScrollableOverlaySettings;
|
|
21
|
+
/**
|
|
22
|
+
* @hidden
|
|
23
|
+
* Reports whether the proxied scrollbar overlay is currently scrolled to its bottom edge.
|
|
24
|
+
* Must be called BEFORE the overlay's spacer height is updated for a new page — its
|
|
25
|
+
* `scrollHeight` reflects the size from the PREVIOUS render, which is what "was it at the
|
|
26
|
+
* bottom" needs to check against. Only reports true when the page being applied is genuinely
|
|
27
|
+
* the last page — the overlay's own scrollTop can still read "at bottom" from a stale prior
|
|
28
|
+
* position (e.g. right after scrolling back up), which would otherwise incorrectly snap the
|
|
29
|
+
* content back down.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isOverlayAtBottom(scrollbarOverlaySpacerElement: HTMLDivElement | null, isLastPageLoad: boolean): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
export interface OverlayBottomPin {
|
|
36
|
+
scrollbarOverlay: HTMLDivElement;
|
|
37
|
+
overlayScrollTop: number;
|
|
38
|
+
contentScrollTop: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @hidden
|
|
42
|
+
* Computes the scrollTop values needed to keep the proxied scrollbar overlay pinned to the
|
|
43
|
+
* bottom, or `null` when there's no overlay/container to pin. Must be called AFTER the
|
|
44
|
+
* overlay's spacer height has been updated for the new page, so `scrollHeight` reflects the
|
|
45
|
+
* new size — pair with `isOverlayAtBottom()` (called before the resize) to decide whether to
|
|
46
|
+
* apply the result.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getOverlayBottomPin(scrollbarOverlaySpacerElement: HTMLDivElement | null, container: HTMLDivElement | null): OverlayBottomPin | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function e(i){const o=typeof i=="object"?i:void 0,t=o==null?void 0:o.wheelMultiplier;return{overlayScrollbar:(o==null?void 0:o.scrollbar)==="proxied",wheelMultiplier:typeof t=="number"&&Number.isFinite(t)&&t>0?t:1}}function l(i,o){const t=i==null?void 0:i.parentElement;return o&&!!t&&t.scrollHeight-t.clientHeight-t.scrollTop<=1}function n(i,o){const t=i==null?void 0:i.parentElement;return!t||!o?null:{scrollbarOverlay:t,overlayScrollTop:t.scrollHeight-t.clientHeight,contentScrollTop:o.scrollHeight-o.clientHeight}}exports.getOverlayBottomPin=n;exports.getScrollableOverlaySettings=e;exports.isOverlayAtBottom=l;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
function n(i) {
|
|
9
|
+
const o = typeof i == "object" ? i : void 0, t = o == null ? void 0 : o.wheelMultiplier;
|
|
10
|
+
return {
|
|
11
|
+
overlayScrollbar: (o == null ? void 0 : o.scrollbar) === "proxied",
|
|
12
|
+
wheelMultiplier: typeof t == "number" && Number.isFinite(t) && t > 0 ? t : 1
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function u(i, o) {
|
|
16
|
+
const t = i == null ? void 0 : i.parentElement;
|
|
17
|
+
return o && !!t && t.scrollHeight - t.clientHeight - t.scrollTop <= 1;
|
|
18
|
+
}
|
|
19
|
+
function l(i, o) {
|
|
20
|
+
const t = i == null ? void 0 : i.parentElement;
|
|
21
|
+
return !t || !o ? null : {
|
|
22
|
+
scrollbarOverlay: t,
|
|
23
|
+
overlayScrollTop: t.scrollHeight - t.clientHeight,
|
|
24
|
+
contentScrollTop: o.scrollHeight - o.clientHeight
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
l as getOverlayBottomPin,
|
|
29
|
+
n as getScrollableOverlaySettings,
|
|
30
|
+
u as isOverlayAtBottom
|
|
31
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export interface WheelTouchScrollOptions {
|
|
12
|
+
wheelMultiplier: number;
|
|
13
|
+
overlayRequiresCustomWheel: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
* Attaches native (non-React) wheel and touch listeners to `container` so the grid can apply a
|
|
18
|
+
* `wheelMultiplier` and/or restore scrolling when the proxied overlay hides native overflow.
|
|
19
|
+
* Returns a cleanup function that removes the listeners.
|
|
20
|
+
*/
|
|
21
|
+
export declare function attachWheelTouchScroll(container: HTMLDivElement, options: WheelTouchScrollOptions): () => void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=16,X=1,W=2,I=.95,d=.1;function b(e,S){const{wheelMultiplier:m,overlayRequiresCustomWheel:M}=S;let f;const _=()=>{var t;if(f===void 0){const i=(t=e.ownerDocument.defaultView)==null?void 0:t.getComputedStyle(e).lineHeight;f=Number.parseFloat(i||"")||A}return f},L=t=>{if(t.ctrlKey||t.metaKey||!t.deltaY&&!t.deltaX)return;const i=e.scrollTop,h=e.scrollLeft;let l=t.deltaX,s=t.deltaY;if(t.shiftKey&&!l&&(l=s,s=0),t.deltaMode===X){const c=_();l*=c,s*=c}else t.deltaMode===W&&(l*=e.clientWidth,s*=e.clientHeight);e.scrollTop+=s*m,e.scrollLeft+=l*m,(e.scrollTop!==i||e.scrollLeft!==h)&&t.preventDefault()};e.addEventListener("wheel",L,{passive:!1});let r;if(M){let t=0,i=0,h=0,l=0,s=0,c;const T=()=>{c!==void 0&&(cancelAnimationFrame(c),c=void 0)},p=()=>{e.scrollTop+=s,e.scrollLeft+=l,s*=I,l*=I,Math.abs(s)>d||Math.abs(l)>d?c=requestAnimationFrame(p):c=void 0},E=o=>{o.touches.length===1&&(T(),l=0,s=0,t=o.touches[0].clientX,i=o.touches[0].clientY,h=o.timeStamp)},n=o=>{if(o.touches.length!==1)return;const a=o.touches[0],v=t-a.clientX,g=i-a.clientY,H=Math.min(Math.max(o.timeStamp-h,1),100),Y=e.scrollTop,y=e.scrollLeft;e.scrollTop+=g,e.scrollLeft+=v,s=g/H*(1e3/60),l=v/H*(1e3/60),t=a.clientX,i=a.clientY,h=o.timeStamp,(e.scrollTop!==Y||e.scrollLeft!==y)&&o.preventDefault()},u=o=>{o.touches.length>0||(Math.abs(s)>d||Math.abs(l)>d)&&(c=requestAnimationFrame(p))};e.addEventListener("touchstart",E,{passive:!0}),e.addEventListener("touchmove",n,{passive:!1}),e.addEventListener("touchend",u,{passive:!0}),e.addEventListener("touchcancel",u,{passive:!0}),r=()=>{T(),e.removeEventListener("touchstart",E),e.removeEventListener("touchmove",n),e.removeEventListener("touchend",u),e.removeEventListener("touchcancel",u)}}return()=>{e.removeEventListener("wheel",L),r==null||r()}}exports.attachWheelTouchScroll=b;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
function O(e, n) {
|
|
9
|
+
const { wheelMultiplier: L, overlayRequiresCustomWheel: N } = n;
|
|
10
|
+
let u;
|
|
11
|
+
const v = () => {
|
|
12
|
+
var t;
|
|
13
|
+
if (u === void 0) {
|
|
14
|
+
const i = (t = e.ownerDocument.defaultView) == null ? void 0 : t.getComputedStyle(e).lineHeight;
|
|
15
|
+
u = Number.parseFloat(i || "") || 16;
|
|
16
|
+
}
|
|
17
|
+
return u;
|
|
18
|
+
}, a = (t) => {
|
|
19
|
+
if (t.ctrlKey || t.metaKey || !t.deltaY && !t.deltaX)
|
|
20
|
+
return;
|
|
21
|
+
const i = e.scrollTop, h = e.scrollLeft;
|
|
22
|
+
let l = t.deltaX, s = t.deltaY;
|
|
23
|
+
if (t.shiftKey && !l && (l = s, s = 0), t.deltaMode === 1) {
|
|
24
|
+
const c = v();
|
|
25
|
+
l *= c, s *= c;
|
|
26
|
+
} else t.deltaMode === 2 && (l *= e.clientWidth, s *= e.clientHeight);
|
|
27
|
+
e.scrollTop += s * L, e.scrollLeft += l * L, (e.scrollTop !== i || e.scrollLeft !== h) && t.preventDefault();
|
|
28
|
+
};
|
|
29
|
+
e.addEventListener("wheel", a, { passive: !1 });
|
|
30
|
+
let E;
|
|
31
|
+
if (N) {
|
|
32
|
+
let t = 0, i = 0, h = 0, l = 0, s = 0, c;
|
|
33
|
+
const I = () => {
|
|
34
|
+
c !== void 0 && (cancelAnimationFrame(c), c = void 0);
|
|
35
|
+
}, d = () => {
|
|
36
|
+
e.scrollTop += s, e.scrollLeft += l, s *= 0.95, l *= 0.95, Math.abs(s) > 0.1 || Math.abs(l) > 0.1 ? c = requestAnimationFrame(d) : c = void 0;
|
|
37
|
+
}, _ = (o) => {
|
|
38
|
+
o.touches.length === 1 && (I(), l = 0, s = 0, t = o.touches[0].clientX, i = o.touches[0].clientY, h = o.timeStamp);
|
|
39
|
+
}, f = (o) => {
|
|
40
|
+
if (o.touches.length !== 1)
|
|
41
|
+
return;
|
|
42
|
+
const r = o.touches[0], m = t - r.clientX, p = i - r.clientY, H = Math.min(Math.max(o.timeStamp - h, 1), 100), A = e.scrollTop, C = e.scrollLeft;
|
|
43
|
+
e.scrollTop += p, e.scrollLeft += m, s = p / H * (1e3 / 60), l = m / H * (1e3 / 60), t = r.clientX, i = r.clientY, h = o.timeStamp, (e.scrollTop !== A || e.scrollLeft !== C) && o.preventDefault();
|
|
44
|
+
}, T = (o) => {
|
|
45
|
+
o.touches.length > 0 || (Math.abs(s) > 0.1 || Math.abs(l) > 0.1) && (c = requestAnimationFrame(d));
|
|
46
|
+
};
|
|
47
|
+
e.addEventListener("touchstart", _, { passive: !0 }), e.addEventListener("touchmove", f, { passive: !1 }), e.addEventListener("touchend", T, { passive: !0 }), e.addEventListener("touchcancel", T, { passive: !0 }), E = () => {
|
|
48
|
+
I(), e.removeEventListener("touchstart", _), e.removeEventListener("touchmove", f), e.removeEventListener("touchend", T), e.removeEventListener("touchcancel", T);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return () => {
|
|
52
|
+
e.removeEventListener("wheel", a), E == null || E();
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
O as attachWheelTouchScroll
|
|
57
|
+
};
|