@tamagui/remove-scroll 1.130.1 → 1.130.2
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/dist/cjs/RemoveScroll.cjs +4 -1
- package/dist/cjs/RemoveScroll.js +4 -2
- package/dist/cjs/RemoveScroll.js.map +1 -1
- package/dist/cjs/disableScroll.cjs +83 -0
- package/dist/cjs/disableScroll.js +68 -0
- package/dist/cjs/disableScroll.js.map +6 -0
- package/dist/cjs/disableScroll.native.js +134 -0
- package/dist/cjs/disableScroll.native.js.map +6 -0
- package/dist/esm/RemoveScroll.js +4 -1
- package/dist/esm/RemoveScroll.js.map +1 -1
- package/dist/esm/RemoveScroll.mjs +4 -1
- package/dist/esm/RemoveScroll.mjs.map +1 -1
- package/dist/esm/disableScroll.js +52 -0
- package/dist/esm/disableScroll.js.map +6 -0
- package/dist/esm/disableScroll.mjs +60 -0
- package/dist/esm/disableScroll.mjs.map +1 -0
- package/dist/esm/disableScroll.native.js +89 -0
- package/dist/esm/disableScroll.native.js.map +1 -0
- package/dist/jsx/RemoveScroll.js +4 -1
- package/dist/jsx/RemoveScroll.js.map +1 -1
- package/dist/jsx/RemoveScroll.mjs +4 -1
- package/dist/jsx/RemoveScroll.mjs.map +1 -1
- package/dist/jsx/disableScroll.js +52 -0
- package/dist/jsx/disableScroll.js.map +6 -0
- package/dist/jsx/disableScroll.mjs +60 -0
- package/dist/jsx/disableScroll.mjs.map +1 -0
- package/dist/jsx/disableScroll.native.js +113 -0
- package/dist/jsx/disableScroll.native.js.map +6 -0
- package/package.json +2 -2
- package/src/RemoveScroll.tsx +3 -3
- package/types/disableScroll.d.ts.map +1 -0
|
@@ -35,10 +35,13 @@ __export(RemoveScroll_exports, {
|
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(RemoveScroll_exports);
|
|
37
37
|
var import_react = __toESM(require("react")),
|
|
38
|
+
import_useDisableScroll = require("./useDisableScroll.cjs"),
|
|
38
39
|
import_jsx_runtime = require("react/jsx-runtime");
|
|
39
40
|
const RemoveScroll = import_react.default.memo(props => {
|
|
40
41
|
const root = (0, import_react.useRef)(null);
|
|
41
|
-
return
|
|
42
|
+
return (0, import_useDisableScroll.useDisableScrollOutsideOf)(root, {
|
|
43
|
+
enabled: !!props.enabled
|
|
44
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
|
|
42
45
|
ref: root,
|
|
43
46
|
style: {
|
|
44
47
|
display: "contents"
|
package/dist/cjs/RemoveScroll.js
CHANGED
|
@@ -25,9 +25,11 @@ __export(RemoveScroll_exports, {
|
|
|
25
25
|
RemoveScroll: () => RemoveScroll
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(RemoveScroll_exports);
|
|
28
|
-
var import_react = __toESM(require("react")), import_jsx_runtime = require("react/jsx-runtime");
|
|
28
|
+
var import_react = __toESM(require("react")), import_useDisableScroll = require("./useDisableScroll"), import_jsx_runtime = require("react/jsx-runtime");
|
|
29
29
|
const RemoveScroll = import_react.default.memo((props) => {
|
|
30
30
|
const root = (0, import_react.useRef)(null);
|
|
31
|
-
return
|
|
31
|
+
return (0, import_useDisableScroll.useDisableScrollOutsideOf)(root, {
|
|
32
|
+
enabled: !!props.enabled
|
|
33
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { ref: root, style: { display: "contents" }, children: props.children });
|
|
32
34
|
});
|
|
33
35
|
//# sourceMappingURL=RemoveScroll.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/RemoveScroll.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B,2BAC9B,0BAA0C,+BAetC;AARG,MAAM,eAAe,aAAAA,QAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,WAAO,qBAAoB,IAAI;AAErC,gEAA0B,MAAM;AAAA,IAC9B,SAAS,EAAQ,MAAM;AAAA,EACzB,CAAC,GAGC,4CAAC,UAAK,KAAK,MAAM,OAAO,EAAE,SAAS,WAAW,GAC3C,gBAAM,UACT;AAEJ,CAAC;",
|
|
5
5
|
"names": ["React"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: !0
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
__copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
13
|
+
get: () => from[key],
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
});
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), mod);
|
|
21
|
+
var disableScroll_exports = {};
|
|
22
|
+
__export(disableScroll_exports, {
|
|
23
|
+
disableScroll: () => disableScroll
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(disableScroll_exports);
|
|
26
|
+
const canUseDOM = () => typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
27
|
+
class DisableScroll {
|
|
28
|
+
element;
|
|
29
|
+
lockToScrollPos;
|
|
30
|
+
options;
|
|
31
|
+
constructor() {
|
|
32
|
+
this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
33
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
34
|
+
disableKeys: !0,
|
|
35
|
+
disableScroll: !0,
|
|
36
|
+
disableWheel: !0,
|
|
37
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
38
|
+
// space: 32, page up: 33, page down: 34, end: 35, home: 36
|
|
39
|
+
// left: 37, up: 38, right: 39, down: 40
|
|
40
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Disable Page Scroll
|
|
44
|
+
*/
|
|
45
|
+
on(element, options) {
|
|
46
|
+
if (!canUseDOM()) return;
|
|
47
|
+
this.element = element || this.element, this.options = {
|
|
48
|
+
...this.options,
|
|
49
|
+
...options
|
|
50
|
+
};
|
|
51
|
+
const {
|
|
52
|
+
disableKeys,
|
|
53
|
+
disableScroll: disableScroll2,
|
|
54
|
+
disableWheel
|
|
55
|
+
} = this.options;
|
|
56
|
+
disableWheel && (document.addEventListener("wheel", this.handleWheel, {
|
|
57
|
+
passive: !1
|
|
58
|
+
}), document.addEventListener("touchmove", this.handleWheel, {
|
|
59
|
+
passive: !1
|
|
60
|
+
})), disableScroll2 && (this.lockToScrollPos = [this.element?.scrollLeft ?? 0, this.element?.scrollTop ?? 0], document.addEventListener("scroll", this.handleScroll, {
|
|
61
|
+
passive: !1
|
|
62
|
+
})), disableKeys && document.addEventListener("keydown", this.handleKeydown, {
|
|
63
|
+
passive: !1
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Re-enable page scrolls
|
|
68
|
+
*/
|
|
69
|
+
off() {
|
|
70
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
71
|
+
}
|
|
72
|
+
handleWheel = e => {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
};
|
|
75
|
+
handleScroll = () => {
|
|
76
|
+
window.scrollTo(...this.lockToScrollPos);
|
|
77
|
+
};
|
|
78
|
+
handleKeydown = e => {
|
|
79
|
+
let keys = this.options.keyboardKeys;
|
|
80
|
+
["INPUT", "TEXTAREA"].includes(e.target.tagName) && (keys = keys.filter(key => !this.options.authorizedInInputs.includes(key))), keys.includes(e.keyCode) && e.preventDefault();
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const disableScroll = new DisableScroll();
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
|
+
var disableScroll_exports = {};
|
|
16
|
+
__export(disableScroll_exports, {
|
|
17
|
+
disableScroll: () => disableScroll
|
|
18
|
+
});
|
|
19
|
+
module.exports = __toCommonJS(disableScroll_exports);
|
|
20
|
+
const canUseDOM = () => typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
21
|
+
class DisableScroll {
|
|
22
|
+
element;
|
|
23
|
+
lockToScrollPos;
|
|
24
|
+
options;
|
|
25
|
+
constructor() {
|
|
26
|
+
this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
27
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
28
|
+
disableKeys: !0,
|
|
29
|
+
disableScroll: !0,
|
|
30
|
+
disableWheel: !0,
|
|
31
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
32
|
+
// space: 32, page up: 33, page down: 34, end: 35, home: 36
|
|
33
|
+
// left: 37, up: 38, right: 39, down: 40
|
|
34
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Disable Page Scroll
|
|
38
|
+
*/
|
|
39
|
+
on(element, options) {
|
|
40
|
+
if (!canUseDOM()) return;
|
|
41
|
+
this.element = element || this.element, this.options = {
|
|
42
|
+
...this.options,
|
|
43
|
+
...options
|
|
44
|
+
};
|
|
45
|
+
const { disableKeys, disableScroll: disableScroll2, disableWheel } = this.options;
|
|
46
|
+
disableWheel && (document.addEventListener("wheel", this.handleWheel, { passive: !1 }), document.addEventListener("touchmove", this.handleWheel, { passive: !1 })), disableScroll2 && (this.lockToScrollPos = [this.element?.scrollLeft ?? 0, this.element?.scrollTop ?? 0], document.addEventListener("scroll", this.handleScroll, { passive: !1 })), disableKeys && document.addEventListener("keydown", this.handleKeydown, { passive: !1 });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Re-enable page scrolls
|
|
50
|
+
*/
|
|
51
|
+
off() {
|
|
52
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
53
|
+
}
|
|
54
|
+
handleWheel = (e) => {
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
};
|
|
57
|
+
handleScroll = () => {
|
|
58
|
+
window.scrollTo(...this.lockToScrollPos);
|
|
59
|
+
};
|
|
60
|
+
handleKeydown = (e) => {
|
|
61
|
+
let keys = this.options.keyboardKeys;
|
|
62
|
+
["INPUT", "TEXTAREA"].includes(
|
|
63
|
+
e.target.tagName
|
|
64
|
+
) && (keys = keys.filter((key) => !this.options.authorizedInInputs.includes(key))), keys.includes(e.keyCode) && e.preventDefault();
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const disableScroll = new DisableScroll();
|
|
68
|
+
//# sourceMappingURL=disableScroll.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/disableScroll.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,MAAM,YAAY,MAChB,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,SAAS;AAU1E,MAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EAEA,cAAc;AACZ,SAAK,UAAU,MACf,KAAK,kBAAkB,CAAC,GAAG,CAAC,GAC5B,KAAK,UAAU;AAAA,MACb,oBAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA,MACvC,aAAa;AAAA,MACb,eAAe;AAAA,MACf,cAAc;AAAA,MACd,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA;AAAA;AAAA,IAGnD,GAGI,UAAU,MACZ,KAAK,UAAU,SAAS;AAAA,EAE5B;AAAA;AAAA;AAAA;AAAA,EAKA,GAAG,SAAmB,SAA4B;AAChD,QAAI,CAAC,UAAU,EAAG;AAElB,SAAK,UAAU,WAAW,KAAK,SAC/B,KAAK,UAAU;AAAA,MACb,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AAEA,UAAM,EAAE,aAAa,eAAAA,gBAAe,aAAa,IAAI,KAAK;AAG1D,IAAI,iBACF,SAAS,iBAAiB,SAAS,KAAK,aAAa,EAAE,SAAS,GAAM,CAAC,GACvE,SAAS,iBAAiB,aAAa,KAAK,aAAa,EAAE,SAAS,GAAM,CAAC,IAIzEA,mBACF,KAAK,kBAAkB,CAAC,KAAK,SAAS,cAAc,GAAG,KAAK,SAAS,aAAa,CAAC,GACnF,SAAS,iBAAiB,UAAU,KAAK,cAAc,EAAE,SAAS,GAAM,CAAC,IAIvE,eACF,SAAS,iBAAiB,WAAW,KAAK,eAAe,EAAE,SAAS,GAAM,CAAC;AAAA,EAE/E;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AACJ,IAAK,UAAU,MAEf,SAAS,oBAAoB,SAAS,KAAK,WAAW,GACtD,SAAS,oBAAoB,aAAa,KAAK,WAAW,GAC1D,SAAS,oBAAoB,UAAU,KAAK,YAAY,GACxD,SAAS,oBAAoB,WAAW,KAAK,aAAa;AAAA,EAC5D;AAAA,EAEA,cAAc,CAAC,MAA+B;AAC5C,MAAE,eAAe;AAAA,EACnB;AAAA,EAEA,eAAe,MAAM;AACnB,WAAO,SAAS,GAAG,KAAK,eAAe;AAAA,EACzC;AAAA,EAEA,gBAAgB,CAAC,MAAqB;AACpC,QAAI,OAAO,KAAK,QAAQ;AAGxB,IACE,CAAC,SAAS,UAAU,EAAE;AAAA,MACnB,EAAE,OAAkD;AAAA,IACvD,MAEA,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,mBAAmB,SAAS,GAAG,CAAC,IAIxE,KAAK,SAAS,EAAE,OAAO,KACzB,EAAE,eAAe;AAAA,EAErB;AACF;AAEO,MAAM,gBAAgB,IAAI,cAAc;",
|
|
5
|
+
"names": ["disableScroll"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
|
+
var disableScroll_exports = {};
|
|
17
|
+
__export(disableScroll_exports, {
|
|
18
|
+
disableScroll: () => disableScroll
|
|
19
|
+
});
|
|
20
|
+
module.exports = __toCommonJS(disableScroll_exports);
|
|
21
|
+
function _class_call_check(instance, Constructor) {
|
|
22
|
+
if (!(instance instanceof Constructor))
|
|
23
|
+
throw new TypeError("Cannot call a class as a function");
|
|
24
|
+
}
|
|
25
|
+
function _defineProperties(target, props) {
|
|
26
|
+
for (var i = 0; i < props.length; i++) {
|
|
27
|
+
var descriptor = props[i];
|
|
28
|
+
descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
32
|
+
return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;
|
|
33
|
+
}
|
|
34
|
+
function _define_property(obj, key, value) {
|
|
35
|
+
return key in obj ? Object.defineProperty(obj, key, {
|
|
36
|
+
value,
|
|
37
|
+
enumerable: !0,
|
|
38
|
+
configurable: !0,
|
|
39
|
+
writable: !0
|
|
40
|
+
}) : obj[key] = value, obj;
|
|
41
|
+
}
|
|
42
|
+
var canUseDOM = function() {
|
|
43
|
+
return typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
44
|
+
}, DisableScroll = /* @__PURE__ */ function() {
|
|
45
|
+
"use strict";
|
|
46
|
+
function DisableScroll2() {
|
|
47
|
+
var _this = this;
|
|
48
|
+
_class_call_check(this, DisableScroll2), _define_property(this, "element", void 0), _define_property(this, "lockToScrollPos", void 0), _define_property(this, "options", void 0), _define_property(this, "handleWheel", function(e) {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
}), _define_property(this, "handleScroll", function() {
|
|
51
|
+
window.scrollTo(..._this.lockToScrollPos);
|
|
52
|
+
}), _define_property(this, "handleKeydown", function(e) {
|
|
53
|
+
var keys = _this.options.keyboardKeys;
|
|
54
|
+
[
|
|
55
|
+
"INPUT",
|
|
56
|
+
"TEXTAREA"
|
|
57
|
+
].includes(e.target.tagName) && (keys = keys.filter(function(key) {
|
|
58
|
+
return !_this.options.authorizedInInputs.includes(key);
|
|
59
|
+
})), keys.includes(e.keyCode) && e.preventDefault();
|
|
60
|
+
}), this.element = null, this.lockToScrollPos = [
|
|
61
|
+
0,
|
|
62
|
+
0
|
|
63
|
+
], this.options = {
|
|
64
|
+
authorizedInInputs: [
|
|
65
|
+
32,
|
|
66
|
+
37,
|
|
67
|
+
38,
|
|
68
|
+
39,
|
|
69
|
+
40
|
|
70
|
+
],
|
|
71
|
+
disableKeys: !0,
|
|
72
|
+
disableScroll: !0,
|
|
73
|
+
disableWheel: !0,
|
|
74
|
+
keyboardKeys: [
|
|
75
|
+
32,
|
|
76
|
+
33,
|
|
77
|
+
34,
|
|
78
|
+
35,
|
|
79
|
+
36,
|
|
80
|
+
37,
|
|
81
|
+
38,
|
|
82
|
+
39,
|
|
83
|
+
40
|
|
84
|
+
]
|
|
85
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
86
|
+
}
|
|
87
|
+
return _create_class(DisableScroll2, [
|
|
88
|
+
{
|
|
89
|
+
/**
|
|
90
|
+
* Disable Page Scroll
|
|
91
|
+
*/
|
|
92
|
+
key: "on",
|
|
93
|
+
value: function(element, options) {
|
|
94
|
+
if (canUseDOM()) {
|
|
95
|
+
this.element = element || this.element, this.options = {
|
|
96
|
+
...this.options,
|
|
97
|
+
...options
|
|
98
|
+
};
|
|
99
|
+
var { disableKeys, disableScroll: disableScroll2, disableWheel } = this.options;
|
|
100
|
+
if (disableWheel && (document.addEventListener("wheel", this.handleWheel, {
|
|
101
|
+
passive: !1
|
|
102
|
+
}), document.addEventListener("touchmove", this.handleWheel, {
|
|
103
|
+
passive: !1
|
|
104
|
+
})), disableScroll2) {
|
|
105
|
+
var _this_element, _this_element1, _this_element_scrollLeft, _this_element_scrollTop;
|
|
106
|
+
this.lockToScrollPos = [
|
|
107
|
+
(_this_element_scrollLeft = (_this_element = this.element) === null || _this_element === void 0 ? void 0 : _this_element.scrollLeft) !== null && _this_element_scrollLeft !== void 0 ? _this_element_scrollLeft : 0,
|
|
108
|
+
(_this_element_scrollTop = (_this_element1 = this.element) === null || _this_element1 === void 0 ? void 0 : _this_element1.scrollTop) !== null && _this_element_scrollTop !== void 0 ? _this_element_scrollTop : 0
|
|
109
|
+
], document.addEventListener("scroll", this.handleScroll, {
|
|
110
|
+
passive: !1
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
disableKeys && document.addEventListener("keydown", this.handleKeydown, {
|
|
114
|
+
passive: !1
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
/**
|
|
121
|
+
* Re-enable page scrolls
|
|
122
|
+
*/
|
|
123
|
+
key: "off",
|
|
124
|
+
value: function() {
|
|
125
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
]), DisableScroll2;
|
|
129
|
+
}(), disableScroll = new DisableScroll();
|
|
130
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
131
|
+
0 && (module.exports = {
|
|
132
|
+
disableScroll
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=disableScroll.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/disableScroll.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;AAWC,SAAA,kBAAA,UAAA,aAAA;;;;;;;;;;;;;;;;;;;;;AAED,IAAMA,YAAY,WAAA;SAChB,OAAOC,SAAW,OAAe,CAAC,CAACA,OAAOC,YAAY,CAAC,CAACD,OAAOC,SAASC;GAUpEC,gBAAN,2BAAA;;WAAMA,iBAAAA;;4BAAAA,cAAAA,GACJC,iBAAAA,MAAAA,WAAAA,MAAAA,GACAC,iBAAAA,MAAAA,mBAAAA,MAAAA,GACAC,iBAAAA,MAAAA,WAAAA,MAAAA,GAiEAC,iBAAAA,MAAAA,eAAc,SAACC,GAAAA;AACbA,QAAEC,eAAc;IAClB,CAAA,GAEAC,iBAAAA,MAAAA,gBAAe,WAAA;AACbV,aAAOW,SAAQ,GAAI,MAAKN,eAAe;IACzC,CAAA,GAEAO,iBAAAA,MAAAA,iBAAgB,SAACJ,GAAAA;AACf,UAAIK,OAAO,MAAKP,QAAQQ;AAGxB,MACE;QAAC;QAAS;QAAYC,SACnBP,EAAEQ,OAAkDC,OAAO,MAG9DJ,OAAOA,KAAKK,OAAO,SAACC,KAAAA;eAAQ,CAAC,MAAKb,QAAQc,mBAAmBL,SAASI,GAAAA;WAIpEN,KAAKE,SAASP,EAAEa,OAAO,KACzBb,EAAEC,eAAc;IAEpB,CAAA,GAtFE,KAAKL,UAAU,MACf,KAAKC,kBAAkB;MAAC;MAAG;OAC3B,KAAKC,UAAU;MACbc,oBAAoB;QAAC;QAAI;QAAI;QAAI;QAAI;;MACrCE,aAAa;MACbC,eAAe;MACfC,cAAc;MACdV,cAAc;QAAC;QAAI;QAAI;QAAI;QAAI;QAAI;QAAI;QAAI;QAAI;;IAGjD,GAGIf,UAAAA,MACF,KAAKK,UAAUH,SAASwB;;uBApBxBtB,gBAAAA;;;;;MA2BJuB,KAAAA;aAAAA,SAAGtB,SAAmBE,SAA0B;AAC9C,YAAKP,UAAAA,GAEL;eAAKK,UAAUA,WAAW,KAAKA,SAC/B,KAAKE,UAAU;YACb,GAAG,KAAKA;YACR,GAAGA;UACL;AAEA,cAAM,EAAEgB,aAAaC,eAAAA,gBAAeC,aAAY,IAAK,KAAKlB;AAS1D,cANIkB,iBACFvB,SAAS0B,iBAAiB,SAAS,KAAKpB,aAAa;YAAEqB,SAAS;UAAM,CAAA,GACtE3B,SAAS0B,iBAAiB,aAAa,KAAKpB,aAAa;YAAEqB,SAAS;UAAM,CAAA,IAIxEL,gBAAe;gBACO,eAA+B,gBAA/B,0BAA+B;AAAvD,iBAAKlB,kBAAkB;eAAC,4BAAA,gBAAA,KAAKD,aAAO,QAAZ,kBAAA,SAAA,SAAA,cAAcyB,gBAAU,QAAxB,6BAAA,SAAA,2BAA4B;eAAG,2BAAA,iBAAA,KAAKzB,aAAO,QAAZ,mBAAA,SAAA,SAAA,eAAc0B,eAAS,QAAvB,4BAAA,SAAA,0BAA2B;eAClF7B,SAAS0B,iBAAiB,UAAU,KAAKjB,cAAc;cAAEkB,SAAS;YAAM,CAAA;UAC1E;AAGA,UAAIN,eACFrB,SAAS0B,iBAAiB,WAAW,KAAKf,eAAe;YAAEgB,SAAS;UAAM,CAAA;;MAE9E;;;;;;MAKAG,KAAAA;aAAAA,WAAAA;AACE,QAAKhC,UAAAA,MAELE,SAAS+B,oBAAoB,SAAS,KAAKzB,WAAW,GACtDN,SAAS+B,oBAAoB,aAAa,KAAKzB,WAAW,GAC1DN,SAAS+B,oBAAoB,UAAU,KAAKtB,YAAY,GACxDT,SAAS+B,oBAAoB,WAAW,KAAKpB,aAAa;MAC5D;;MAlEIT;KA+FOoB,gBAAgB,IAAIpB,cAAAA;",
|
|
5
|
+
"names": ["canUseDOM", "window", "document", "createElement", "DisableScroll", "element", "lockToScrollPos", "options", "handleWheel", "e", "preventDefault", "handleScroll", "scrollTo", "handleKeydown", "keys", "keyboardKeys", "includes", "target", "tagName", "filter", "key", "authorizedInInputs", "keyCode", "disableKeys", "disableScroll", "disableWheel", "scrollingElement", "on", "addEventListener", "passive", "scrollLeft", "scrollTop", "off", "removeEventListener"]
|
|
6
|
+
}
|
package/dist/esm/RemoveScroll.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { useRef } from "react";
|
|
2
|
+
import { useDisableScrollOutsideOf } from "./useDisableScroll";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
const RemoveScroll = React.memo((props) => {
|
|
4
5
|
const root = useRef(null);
|
|
5
|
-
return
|
|
6
|
+
return useDisableScrollOutsideOf(root, {
|
|
7
|
+
enabled: !!props.enabled
|
|
8
|
+
}), /* @__PURE__ */ jsx("span", { ref: root, style: { display: "contents" }, children: props.children });
|
|
6
9
|
});
|
|
7
10
|
export {
|
|
8
11
|
RemoveScroll
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/RemoveScroll.tsx"],
|
|
4
|
-
"mappings": "AAAA,OAAO,SAAS,cAAc;
|
|
4
|
+
"mappings": "AAAA,OAAO,SAAS,cAAc;AAC9B,SAAS,iCAAiC;AAetC;AARG,MAAM,eAAe,MAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,OAAO,OAAoB,IAAI;AAErC,mCAA0B,MAAM;AAAA,IAC9B,SAAS,EAAQ,MAAM;AAAA,EACzB,CAAC,GAGC,oBAAC,UAAK,KAAK,MAAM,OAAO,EAAE,SAAS,WAAW,GAC3C,gBAAM,UACT;AAEJ,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { useRef } from "react";
|
|
2
|
+
import { useDisableScrollOutsideOf } from "./useDisableScroll.mjs";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
const RemoveScroll = React.memo(props => {
|
|
4
5
|
const root = useRef(null);
|
|
5
|
-
return
|
|
6
|
+
return useDisableScrollOutsideOf(root, {
|
|
7
|
+
enabled: !!props.enabled
|
|
8
|
+
}), /* @__PURE__ */jsx("span", {
|
|
6
9
|
ref: root,
|
|
7
10
|
style: {
|
|
8
11
|
display: "contents"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","jsx","RemoveScroll","memo","props","root","ref","style","display","children"],"sources":["../../src/RemoveScroll.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,IAASC,MAAA,QAAc;
|
|
1
|
+
{"version":3,"names":["React","useRef","useDisableScrollOutsideOf","jsx","RemoveScroll","memo","props","root","enabled","ref","style","display","children"],"sources":["../../src/RemoveScroll.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,IAASC,MAAA,QAAc;AAC9B,SAASC,yBAAA,QAAiC;AAetC,SAAAC,GAAA;AARG,MAAMC,YAAA,GAAeJ,KAAA,CAAMK,IAAA,CAAMC,KAAA,IAA6B;EACnE,MAAMC,IAAA,GAAON,MAAA,CAAoB,IAAI;EAErC,OAAAC,yBAAA,CAA0BK,IAAA,EAAM;IAC9BC,OAAA,EAAS,EAAQF,KAAA,CAAME;EACzB,CAAC,GAGC,eAAAL,GAAA,CAAC;IAAKM,GAAA,EAAKF,IAAA;IAAMG,KAAA,EAAO;MAAEC,OAAA,EAAS;IAAW;IAC3CC,QAAA,EAAAN,KAAA,CAAMM;EAAA,CACT;AAEJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const canUseDOM = () => typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
2
|
+
class DisableScroll {
|
|
3
|
+
element;
|
|
4
|
+
lockToScrollPos;
|
|
5
|
+
options;
|
|
6
|
+
constructor() {
|
|
7
|
+
this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
8
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
9
|
+
disableKeys: !0,
|
|
10
|
+
disableScroll: !0,
|
|
11
|
+
disableWheel: !0,
|
|
12
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
13
|
+
// space: 32, page up: 33, page down: 34, end: 35, home: 36
|
|
14
|
+
// left: 37, up: 38, right: 39, down: 40
|
|
15
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Disable Page Scroll
|
|
19
|
+
*/
|
|
20
|
+
on(element, options) {
|
|
21
|
+
if (!canUseDOM()) return;
|
|
22
|
+
this.element = element || this.element, this.options = {
|
|
23
|
+
...this.options,
|
|
24
|
+
...options
|
|
25
|
+
};
|
|
26
|
+
const { disableKeys, disableScroll: disableScroll2, disableWheel } = this.options;
|
|
27
|
+
disableWheel && (document.addEventListener("wheel", this.handleWheel, { passive: !1 }), document.addEventListener("touchmove", this.handleWheel, { passive: !1 })), disableScroll2 && (this.lockToScrollPos = [this.element?.scrollLeft ?? 0, this.element?.scrollTop ?? 0], document.addEventListener("scroll", this.handleScroll, { passive: !1 })), disableKeys && document.addEventListener("keydown", this.handleKeydown, { passive: !1 });
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Re-enable page scrolls
|
|
31
|
+
*/
|
|
32
|
+
off() {
|
|
33
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
34
|
+
}
|
|
35
|
+
handleWheel = (e) => {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
};
|
|
38
|
+
handleScroll = () => {
|
|
39
|
+
window.scrollTo(...this.lockToScrollPos);
|
|
40
|
+
};
|
|
41
|
+
handleKeydown = (e) => {
|
|
42
|
+
let keys = this.options.keyboardKeys;
|
|
43
|
+
["INPUT", "TEXTAREA"].includes(
|
|
44
|
+
e.target.tagName
|
|
45
|
+
) && (keys = keys.filter((key) => !this.options.authorizedInInputs.includes(key))), keys.includes(e.keyCode) && e.preventDefault();
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const disableScroll = new DisableScroll();
|
|
49
|
+
export {
|
|
50
|
+
disableScroll
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=disableScroll.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/disableScroll.ts"],
|
|
4
|
+
"mappings": "AAaA,MAAM,YAAY,MAChB,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,SAAS;AAU1E,MAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EAEA,cAAc;AACZ,SAAK,UAAU,MACf,KAAK,kBAAkB,CAAC,GAAG,CAAC,GAC5B,KAAK,UAAU;AAAA,MACb,oBAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA,MACvC,aAAa;AAAA,MACb,eAAe;AAAA,MACf,cAAc;AAAA,MACd,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA;AAAA;AAAA,IAGnD,GAGI,UAAU,MACZ,KAAK,UAAU,SAAS;AAAA,EAE5B;AAAA;AAAA;AAAA;AAAA,EAKA,GAAG,SAAmB,SAA4B;AAChD,QAAI,CAAC,UAAU,EAAG;AAElB,SAAK,UAAU,WAAW,KAAK,SAC/B,KAAK,UAAU;AAAA,MACb,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AAEA,UAAM,EAAE,aAAa,eAAAA,gBAAe,aAAa,IAAI,KAAK;AAG1D,IAAI,iBACF,SAAS,iBAAiB,SAAS,KAAK,aAAa,EAAE,SAAS,GAAM,CAAC,GACvE,SAAS,iBAAiB,aAAa,KAAK,aAAa,EAAE,SAAS,GAAM,CAAC,IAIzEA,mBACF,KAAK,kBAAkB,CAAC,KAAK,SAAS,cAAc,GAAG,KAAK,SAAS,aAAa,CAAC,GACnF,SAAS,iBAAiB,UAAU,KAAK,cAAc,EAAE,SAAS,GAAM,CAAC,IAIvE,eACF,SAAS,iBAAiB,WAAW,KAAK,eAAe,EAAE,SAAS,GAAM,CAAC;AAAA,EAE/E;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AACJ,IAAK,UAAU,MAEf,SAAS,oBAAoB,SAAS,KAAK,WAAW,GACtD,SAAS,oBAAoB,aAAa,KAAK,WAAW,GAC1D,SAAS,oBAAoB,UAAU,KAAK,YAAY,GACxD,SAAS,oBAAoB,WAAW,KAAK,aAAa;AAAA,EAC5D;AAAA,EAEA,cAAc,CAAC,MAA+B;AAC5C,MAAE,eAAe;AAAA,EACnB;AAAA,EAEA,eAAe,MAAM;AACnB,WAAO,SAAS,GAAG,KAAK,eAAe;AAAA,EACzC;AAAA,EAEA,gBAAgB,CAAC,MAAqB;AACpC,QAAI,OAAO,KAAK,QAAQ;AAGxB,IACE,CAAC,SAAS,UAAU,EAAE;AAAA,MACnB,EAAE,OAAkD;AAAA,IACvD,MAEA,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,mBAAmB,SAAS,GAAG,CAAC,IAIxE,KAAK,SAAS,EAAE,OAAO,KACzB,EAAE,eAAe;AAAA,EAErB;AACF;AAEO,MAAM,gBAAgB,IAAI,cAAc;",
|
|
5
|
+
"names": ["disableScroll"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const canUseDOM = () => typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
2
|
+
class DisableScroll {
|
|
3
|
+
element;
|
|
4
|
+
lockToScrollPos;
|
|
5
|
+
options;
|
|
6
|
+
constructor() {
|
|
7
|
+
this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
8
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
9
|
+
disableKeys: !0,
|
|
10
|
+
disableScroll: !0,
|
|
11
|
+
disableWheel: !0,
|
|
12
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
13
|
+
// space: 32, page up: 33, page down: 34, end: 35, home: 36
|
|
14
|
+
// left: 37, up: 38, right: 39, down: 40
|
|
15
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Disable Page Scroll
|
|
19
|
+
*/
|
|
20
|
+
on(element, options) {
|
|
21
|
+
if (!canUseDOM()) return;
|
|
22
|
+
this.element = element || this.element, this.options = {
|
|
23
|
+
...this.options,
|
|
24
|
+
...options
|
|
25
|
+
};
|
|
26
|
+
const {
|
|
27
|
+
disableKeys,
|
|
28
|
+
disableScroll: disableScroll2,
|
|
29
|
+
disableWheel
|
|
30
|
+
} = this.options;
|
|
31
|
+
disableWheel && (document.addEventListener("wheel", this.handleWheel, {
|
|
32
|
+
passive: !1
|
|
33
|
+
}), document.addEventListener("touchmove", this.handleWheel, {
|
|
34
|
+
passive: !1
|
|
35
|
+
})), disableScroll2 && (this.lockToScrollPos = [this.element?.scrollLeft ?? 0, this.element?.scrollTop ?? 0], document.addEventListener("scroll", this.handleScroll, {
|
|
36
|
+
passive: !1
|
|
37
|
+
})), disableKeys && document.addEventListener("keydown", this.handleKeydown, {
|
|
38
|
+
passive: !1
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Re-enable page scrolls
|
|
43
|
+
*/
|
|
44
|
+
off() {
|
|
45
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
46
|
+
}
|
|
47
|
+
handleWheel = e => {
|
|
48
|
+
e.preventDefault();
|
|
49
|
+
};
|
|
50
|
+
handleScroll = () => {
|
|
51
|
+
window.scrollTo(...this.lockToScrollPos);
|
|
52
|
+
};
|
|
53
|
+
handleKeydown = e => {
|
|
54
|
+
let keys = this.options.keyboardKeys;
|
|
55
|
+
["INPUT", "TEXTAREA"].includes(e.target.tagName) && (keys = keys.filter(key => !this.options.authorizedInInputs.includes(key))), keys.includes(e.keyCode) && e.preventDefault();
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const disableScroll = new DisableScroll();
|
|
59
|
+
export { disableScroll };
|
|
60
|
+
//# sourceMappingURL=disableScroll.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["canUseDOM","window","document","createElement","DisableScroll","element","lockToScrollPos","options","constructor","authorizedInInputs","disableKeys","disableScroll","disableWheel","keyboardKeys","scrollingElement","on","disableScroll2","addEventListener","handleWheel","passive","scrollLeft","scrollTop","handleScroll","handleKeydown","off","removeEventListener","e","preventDefault","scrollTo","keys","includes","target","tagName","filter","key","keyCode"],"sources":["../../src/disableScroll.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,SAAA,GAAYA,CAAA,KAChB,OAAOC,MAAA,GAAW,OAAe,CAAC,CAACA,MAAA,CAAOC,QAAA,IAAY,CAAC,CAACD,MAAA,CAAOC,QAAA,CAASC,aAAA;AAU1E,MAAMC,aAAA,CAAc;EAClBC,OAAA;EACAC,eAAA;EACAC,OAAA;EAEAC,YAAA,EAAc;IACZ,KAAKH,OAAA,GAAU,MACf,KAAKC,eAAA,GAAkB,CAAC,GAAG,CAAC,GAC5B,KAAKC,OAAA,GAAU;MACbE,kBAAA,EAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;MACvCC,WAAA,EAAa;MACbC,aAAA,EAAe;MACfC,YAAA,EAAc;MACdC,YAAA,EAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;MAAA;MAAA;IAGnD,GAGIb,SAAA,CAAU,MACZ,KAAKK,OAAA,GAAUH,QAAA,CAASY,gBAAA;EAE5B;EAAA;AAAA;AAAA;EAKAC,GAAGV,OAAA,EAAmBE,OAAA,EAA4B;IAChD,IAAI,CAACP,SAAA,CAAU,GAAG;IAElB,KAAKK,OAAA,GAAUA,OAAA,IAAW,KAAKA,OAAA,EAC/B,KAAKE,OAAA,GAAU;MACb,GAAG,KAAKA,OAAA;MACR,GAAGA;IACL;IAEA,MAAM;MAAEG,WAAA;MAAaC,aAAA,EAAAK,cAAA;MAAeJ;IAAa,IAAI,KAAKL,OAAA;IAGtDK,YAAA,KACFV,QAAA,CAASe,gBAAA,CAAiB,SAAS,KAAKC,WAAA,EAAa;MAAEC,OAAA,EAAS;IAAM,CAAC,GACvEjB,QAAA,CAASe,gBAAA,CAAiB,aAAa,KAAKC,WAAA,EAAa;MAAEC,OAAA,EAAS;IAAM,CAAC,IAIzEH,cAAA,KACF,KAAKV,eAAA,GAAkB,CAAC,KAAKD,OAAA,EAASe,UAAA,IAAc,GAAG,KAAKf,OAAA,EAASgB,SAAA,IAAa,CAAC,GACnFnB,QAAA,CAASe,gBAAA,CAAiB,UAAU,KAAKK,YAAA,EAAc;MAAEH,OAAA,EAAS;IAAM,CAAC,IAIvET,WAAA,IACFR,QAAA,CAASe,gBAAA,CAAiB,WAAW,KAAKM,aAAA,EAAe;MAAEJ,OAAA,EAAS;IAAM,CAAC;EAE/E;EAAA;AAAA;AAAA;EAKAK,IAAA,EAAM;IACCxB,SAAA,CAAU,MAEfE,QAAA,CAASuB,mBAAA,CAAoB,SAAS,KAAKP,WAAW,GACtDhB,QAAA,CAASuB,mBAAA,CAAoB,aAAa,KAAKP,WAAW,GAC1DhB,QAAA,CAASuB,mBAAA,CAAoB,UAAU,KAAKH,YAAY,GACxDpB,QAAA,CAASuB,mBAAA,CAAoB,WAAW,KAAKF,aAAa;EAC5D;EAEAL,WAAA,GAAeQ,CAAA,IAA+B;IAC5CA,CAAA,CAAEC,cAAA,CAAe;EACnB;EAEAL,YAAA,GAAeA,CAAA,KAAM;IACnBrB,MAAA,CAAO2B,QAAA,CAAS,GAAG,KAAKtB,eAAe;EACzC;EAEAiB,aAAA,GAAiBG,CAAA,IAAqB;IACpC,IAAIG,IAAA,GAAO,KAAKtB,OAAA,CAAQM,YAAA;IAItB,CAAC,SAAS,UAAU,EAAEiB,QAAA,CACnBJ,CAAA,CAAEK,MAAA,CAAkDC,OACvD,MAEAH,IAAA,GAAOA,IAAA,CAAKI,MAAA,CAAQC,GAAA,IAAQ,CAAC,KAAK3B,OAAA,CAAQE,kBAAA,CAAmBqB,QAAA,CAASI,GAAG,CAAC,IAIxEL,IAAA,CAAKC,QAAA,CAASJ,CAAA,CAAES,OAAO,KACzBT,CAAA,CAAEC,cAAA,CAAe;EAErB;AACF;AAEO,MAAMhB,aAAA,GAAgB,IAAIP,aAAA,CAAc","ignoreList":[]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
function _class_call_check(instance, Constructor) {
|
|
2
|
+
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
|
|
3
|
+
}
|
|
4
|
+
function _defineProperties(target, props) {
|
|
5
|
+
for (var i = 0; i < props.length; i++) {
|
|
6
|
+
var descriptor = props[i];
|
|
7
|
+
descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
11
|
+
return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;
|
|
12
|
+
}
|
|
13
|
+
function _define_property(obj, key, value) {
|
|
14
|
+
return key in obj ? Object.defineProperty(obj, key, {
|
|
15
|
+
value,
|
|
16
|
+
enumerable: !0,
|
|
17
|
+
configurable: !0,
|
|
18
|
+
writable: !0
|
|
19
|
+
}) : obj[key] = value, obj;
|
|
20
|
+
}
|
|
21
|
+
var canUseDOM = function () {
|
|
22
|
+
return typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
23
|
+
},
|
|
24
|
+
DisableScroll = /* @__PURE__ */function () {
|
|
25
|
+
"use strict";
|
|
26
|
+
|
|
27
|
+
function DisableScroll2() {
|
|
28
|
+
var _this = this;
|
|
29
|
+
_class_call_check(this, DisableScroll2), _define_property(this, "element", void 0), _define_property(this, "lockToScrollPos", void 0), _define_property(this, "options", void 0), _define_property(this, "handleWheel", function (e) {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
}), _define_property(this, "handleScroll", function () {
|
|
32
|
+
window.scrollTo(..._this.lockToScrollPos);
|
|
33
|
+
}), _define_property(this, "handleKeydown", function (e) {
|
|
34
|
+
var keys = _this.options.keyboardKeys;
|
|
35
|
+
["INPUT", "TEXTAREA"].includes(e.target.tagName) && (keys = keys.filter(function (key) {
|
|
36
|
+
return !_this.options.authorizedInInputs.includes(key);
|
|
37
|
+
})), keys.includes(e.keyCode) && e.preventDefault();
|
|
38
|
+
}), this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
39
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
40
|
+
disableKeys: !0,
|
|
41
|
+
disableScroll: !0,
|
|
42
|
+
disableWheel: !0,
|
|
43
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
44
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
45
|
+
}
|
|
46
|
+
return _create_class(DisableScroll2, [{
|
|
47
|
+
/**
|
|
48
|
+
* Disable Page Scroll
|
|
49
|
+
*/
|
|
50
|
+
key: "on",
|
|
51
|
+
value: function (element, options) {
|
|
52
|
+
if (canUseDOM()) {
|
|
53
|
+
this.element = element || this.element, this.options = {
|
|
54
|
+
...this.options,
|
|
55
|
+
...options
|
|
56
|
+
};
|
|
57
|
+
var {
|
|
58
|
+
disableKeys,
|
|
59
|
+
disableScroll: disableScroll2,
|
|
60
|
+
disableWheel
|
|
61
|
+
} = this.options;
|
|
62
|
+
if (disableWheel && (document.addEventListener("wheel", this.handleWheel, {
|
|
63
|
+
passive: !1
|
|
64
|
+
}), document.addEventListener("touchmove", this.handleWheel, {
|
|
65
|
+
passive: !1
|
|
66
|
+
})), disableScroll2) {
|
|
67
|
+
var _this_element, _this_element1, _this_element_scrollLeft, _this_element_scrollTop;
|
|
68
|
+
this.lockToScrollPos = [(_this_element_scrollLeft = (_this_element = this.element) === null || _this_element === void 0 ? void 0 : _this_element.scrollLeft) !== null && _this_element_scrollLeft !== void 0 ? _this_element_scrollLeft : 0, (_this_element_scrollTop = (_this_element1 = this.element) === null || _this_element1 === void 0 ? void 0 : _this_element1.scrollTop) !== null && _this_element_scrollTop !== void 0 ? _this_element_scrollTop : 0], document.addEventListener("scroll", this.handleScroll, {
|
|
69
|
+
passive: !1
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
disableKeys && document.addEventListener("keydown", this.handleKeydown, {
|
|
73
|
+
passive: !1
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
/**
|
|
79
|
+
* Re-enable page scrolls
|
|
80
|
+
*/
|
|
81
|
+
key: "off",
|
|
82
|
+
value: function () {
|
|
83
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
84
|
+
}
|
|
85
|
+
}]), DisableScroll2;
|
|
86
|
+
}(),
|
|
87
|
+
disableScroll = new DisableScroll();
|
|
88
|
+
export { disableScroll };
|
|
89
|
+
//# sourceMappingURL=disableScroll.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","canUseDOM","window","document","createElement","DisableScroll","DisableScroll2","_this","e","preventDefault","scrollTo","lockToScrollPos","keys","options","keyboardKeys","includes","tagName","filter","authorizedInInputs","keyCode","element"],"sources":["../../src/disableScroll.ts"],"sourcesContent":[null],"mappings":"AAaA,SAAMA,iBACJA,CAAAC,QAAO,EAAAC,WAA2B,EAAC;EAUrC,IAAM,EAAAD,QAAA,YAAcC,WAAA,GAClB,UAAAC,SAAA;AAAA;AACA,SACAC,kBAAAC,MAAA,EAAAC,KAAA;EAEA,SAAAC,CAAA,IAAc,EAAAA,CAAA,GAAAD,KAAA,CAAAE,MAAA,EAAAD,CAAA;IACZ,IAAAE,UAAK,GAAUH,KACf,CAAAC,CAAA;IACeE,UACb,CAAAC,UAAA,GAAqBD,UAAQ,CAAIC,UAAM,QAAAD,UAAA,CAAAE,YAAA,kBAAAF,UAAA,KAAAA,UAAA,CAAAG,QAAA,QAAAC,MAAA,CAAAC,cAAA,CAAAT,MAAA,EAAAI,UAAA,CAAAM,GAAA,EAAAN,UAAA;EAAA;AAC1B;AACE,SACfO,aAAcA,CAAAd,WAAA,EAAAe,UAAA,EAAAC,WAAA;EAAA,OACdD,UAAA,IAAeb,iBAAgB,CAAIF,WAAQ,CAAIiB,SAAE,EAAAF,UAAA,GAAAC,WAAA,IAAAd,iBAAA,CAAAF,WAAA,EAAAgB,WAAA,GAAAhB,WAAA;AAAA;AAAA,SAAAkB,iBAAAC,GAAA,EAAAN,GAAA,EAAAO,KAAA;EAAA,OAM/CP,GAAA,IAAAM,GAAU,GAAAR,MACP,CAAAC,cAAU,CAAAO,GAAS,EAAAN,GAAA;IAE5BO,KAAA;IAAAZ,UAAA;IAAAC,YAAA;IAAAC,QAAA;EAKA,KAAGS,GAAA,CAAAN,GAAmB,IAAAO,KAA4B,EAAAD,GAAA;AAChD;AAEA,IAAAE,SAAK,YAAAA,CAAA,EAAU;IACA,OACV,OAAKC,MAAA,YAAAA,MAAA,CAAAC,QAAA,MAAAD,MAAA,CAAAC,QAAA,CAAAC,aAAA;EAAA;EAAAC,aACL;IAAA,YACL;;IAEA,SAAMC,cAAeA,CAAA;MAGjB,IAAAC,KAAA;MAeN7B,iBAAA,OAAA4B,cAAA,GAAAR,gBAAA,2BAAAA,gBAAA,mCAAAA,gBAAA,2BAAAA,gBAAA,gCAAAU,CAAA;QAAAA,CAAA,CAAAC,cAAA;MAAA,IAAAX,gBAAA;QAAAI,MAAA,CAAAQ,QAAA,IAAAH,KAAA,CAAAI,eAAA;MAKA,IAAMb,gBAAA,kCAAAU,CAAA;QACC,IAAAI,IAAU,GAAAL,KAEf,CAAAM,OAAS,CAAAC,YAAA;QAIX,CAEA,SACI,WACJ,CAAAC,QAAA,CAAAP,CAAA,CAAAzB,MAAA,CAAAiC,OAAA,MAAAJ,IAAA,GAAAA,IAAA,CAAAK,MAAA,WAAAxB,GAAA;UAEA,QAAAc,KAAe,CAAAM,OAAM,CAAAK,kBAAA,CAAAH,QAAA,CAAAtB,GAAA;QACnB,KAAOmB,IAAA,CAAAG,QAAY,CAAAP,CAAA,CAAAW,OAAK,KAAAX,CAAA,CAAAC,cAAe;MACzC,SAAAW,OAAA,cAAAT,eAAA,IAEA,GACE,EAIG,OAAAE,OAAS;QACPK,kBAAoD,GACvD,EAEA,EAOJ,IACF,IAEa,I","ignoreList":[]}
|
package/dist/jsx/RemoveScroll.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { useRef } from "react";
|
|
2
|
+
import { useDisableScrollOutsideOf } from "./useDisableScroll";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
const RemoveScroll = React.memo((props) => {
|
|
4
5
|
const root = useRef(null);
|
|
5
|
-
return
|
|
6
|
+
return useDisableScrollOutsideOf(root, {
|
|
7
|
+
enabled: !!props.enabled
|
|
8
|
+
}), /* @__PURE__ */ jsx("span", { ref: root, style: { display: "contents" }, children: props.children });
|
|
6
9
|
});
|
|
7
10
|
export {
|
|
8
11
|
RemoveScroll
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/RemoveScroll.tsx"],
|
|
4
|
-
"mappings": "AAAA,OAAO,SAAS,cAAc;
|
|
4
|
+
"mappings": "AAAA,OAAO,SAAS,cAAc;AAC9B,SAAS,iCAAiC;AAetC;AARG,MAAM,eAAe,MAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,OAAO,OAAoB,IAAI;AAErC,mCAA0B,MAAM;AAAA,IAC9B,SAAS,EAAQ,MAAM;AAAA,EACzB,CAAC,GAGC,oBAAC,UAAK,KAAK,MAAM,OAAO,EAAE,SAAS,WAAW,GAC3C,gBAAM,UACT;AAEJ,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React, { useRef } from "react";
|
|
2
|
+
import { useDisableScrollOutsideOf } from "./useDisableScroll.mjs";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
const RemoveScroll = React.memo(props => {
|
|
4
5
|
const root = useRef(null);
|
|
5
|
-
return
|
|
6
|
+
return useDisableScrollOutsideOf(root, {
|
|
7
|
+
enabled: !!props.enabled
|
|
8
|
+
}), /* @__PURE__ */jsx("span", {
|
|
6
9
|
ref: root,
|
|
7
10
|
style: {
|
|
8
11
|
display: "contents"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","jsx","RemoveScroll","memo","props","root","ref","style","display","children"],"sources":["../../src/RemoveScroll.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,IAASC,MAAA,QAAc;
|
|
1
|
+
{"version":3,"names":["React","useRef","useDisableScrollOutsideOf","jsx","RemoveScroll","memo","props","root","enabled","ref","style","display","children"],"sources":["../../src/RemoveScroll.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,IAASC,MAAA,QAAc;AAC9B,SAASC,yBAAA,QAAiC;AAetC,SAAAC,GAAA;AARG,MAAMC,YAAA,GAAeJ,KAAA,CAAMK,IAAA,CAAMC,KAAA,IAA6B;EACnE,MAAMC,IAAA,GAAON,MAAA,CAAoB,IAAI;EAErC,OAAAC,yBAAA,CAA0BK,IAAA,EAAM;IAC9BC,OAAA,EAAS,EAAQF,KAAA,CAAME;EACzB,CAAC,GAGC,eAAAL,GAAA,CAAC;IAAKM,GAAA,EAAKF,IAAA;IAAMG,KAAA,EAAO;MAAEC,OAAA,EAAS;IAAW;IAC3CC,QAAA,EAAAN,KAAA,CAAMM;EAAA,CACT;AAEJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const canUseDOM = () => typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
2
|
+
class DisableScroll {
|
|
3
|
+
element;
|
|
4
|
+
lockToScrollPos;
|
|
5
|
+
options;
|
|
6
|
+
constructor() {
|
|
7
|
+
this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
8
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
9
|
+
disableKeys: !0,
|
|
10
|
+
disableScroll: !0,
|
|
11
|
+
disableWheel: !0,
|
|
12
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
13
|
+
// space: 32, page up: 33, page down: 34, end: 35, home: 36
|
|
14
|
+
// left: 37, up: 38, right: 39, down: 40
|
|
15
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Disable Page Scroll
|
|
19
|
+
*/
|
|
20
|
+
on(element, options) {
|
|
21
|
+
if (!canUseDOM()) return;
|
|
22
|
+
this.element = element || this.element, this.options = {
|
|
23
|
+
...this.options,
|
|
24
|
+
...options
|
|
25
|
+
};
|
|
26
|
+
const { disableKeys, disableScroll: disableScroll2, disableWheel } = this.options;
|
|
27
|
+
disableWheel && (document.addEventListener("wheel", this.handleWheel, { passive: !1 }), document.addEventListener("touchmove", this.handleWheel, { passive: !1 })), disableScroll2 && (this.lockToScrollPos = [this.element?.scrollLeft ?? 0, this.element?.scrollTop ?? 0], document.addEventListener("scroll", this.handleScroll, { passive: !1 })), disableKeys && document.addEventListener("keydown", this.handleKeydown, { passive: !1 });
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Re-enable page scrolls
|
|
31
|
+
*/
|
|
32
|
+
off() {
|
|
33
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
34
|
+
}
|
|
35
|
+
handleWheel = (e) => {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
};
|
|
38
|
+
handleScroll = () => {
|
|
39
|
+
window.scrollTo(...this.lockToScrollPos);
|
|
40
|
+
};
|
|
41
|
+
handleKeydown = (e) => {
|
|
42
|
+
let keys = this.options.keyboardKeys;
|
|
43
|
+
["INPUT", "TEXTAREA"].includes(
|
|
44
|
+
e.target.tagName
|
|
45
|
+
) && (keys = keys.filter((key) => !this.options.authorizedInInputs.includes(key))), keys.includes(e.keyCode) && e.preventDefault();
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const disableScroll = new DisableScroll();
|
|
49
|
+
export {
|
|
50
|
+
disableScroll
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=disableScroll.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/disableScroll.ts"],
|
|
4
|
+
"mappings": "AAaA,MAAM,YAAY,MAChB,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,SAAS;AAU1E,MAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EAEA,cAAc;AACZ,SAAK,UAAU,MACf,KAAK,kBAAkB,CAAC,GAAG,CAAC,GAC5B,KAAK,UAAU;AAAA,MACb,oBAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA,MACvC,aAAa;AAAA,MACb,eAAe;AAAA,MACf,cAAc;AAAA,MACd,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA;AAAA;AAAA,IAGnD,GAGI,UAAU,MACZ,KAAK,UAAU,SAAS;AAAA,EAE5B;AAAA;AAAA;AAAA;AAAA,EAKA,GAAG,SAAmB,SAA4B;AAChD,QAAI,CAAC,UAAU,EAAG;AAElB,SAAK,UAAU,WAAW,KAAK,SAC/B,KAAK,UAAU;AAAA,MACb,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AAEA,UAAM,EAAE,aAAa,eAAAA,gBAAe,aAAa,IAAI,KAAK;AAG1D,IAAI,iBACF,SAAS,iBAAiB,SAAS,KAAK,aAAa,EAAE,SAAS,GAAM,CAAC,GACvE,SAAS,iBAAiB,aAAa,KAAK,aAAa,EAAE,SAAS,GAAM,CAAC,IAIzEA,mBACF,KAAK,kBAAkB,CAAC,KAAK,SAAS,cAAc,GAAG,KAAK,SAAS,aAAa,CAAC,GACnF,SAAS,iBAAiB,UAAU,KAAK,cAAc,EAAE,SAAS,GAAM,CAAC,IAIvE,eACF,SAAS,iBAAiB,WAAW,KAAK,eAAe,EAAE,SAAS,GAAM,CAAC;AAAA,EAE/E;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AACJ,IAAK,UAAU,MAEf,SAAS,oBAAoB,SAAS,KAAK,WAAW,GACtD,SAAS,oBAAoB,aAAa,KAAK,WAAW,GAC1D,SAAS,oBAAoB,UAAU,KAAK,YAAY,GACxD,SAAS,oBAAoB,WAAW,KAAK,aAAa;AAAA,EAC5D;AAAA,EAEA,cAAc,CAAC,MAA+B;AAC5C,MAAE,eAAe;AAAA,EACnB;AAAA,EAEA,eAAe,MAAM;AACnB,WAAO,SAAS,GAAG,KAAK,eAAe;AAAA,EACzC;AAAA,EAEA,gBAAgB,CAAC,MAAqB;AACpC,QAAI,OAAO,KAAK,QAAQ;AAGxB,IACE,CAAC,SAAS,UAAU,EAAE;AAAA,MACnB,EAAE,OAAkD;AAAA,IACvD,MAEA,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,mBAAmB,SAAS,GAAG,CAAC,IAIxE,KAAK,SAAS,EAAE,OAAO,KACzB,EAAE,eAAe;AAAA,EAErB;AACF;AAEO,MAAM,gBAAgB,IAAI,cAAc;",
|
|
5
|
+
"names": ["disableScroll"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const canUseDOM = () => typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
2
|
+
class DisableScroll {
|
|
3
|
+
element;
|
|
4
|
+
lockToScrollPos;
|
|
5
|
+
options;
|
|
6
|
+
constructor() {
|
|
7
|
+
this.element = null, this.lockToScrollPos = [0, 0], this.options = {
|
|
8
|
+
authorizedInInputs: [32, 37, 38, 39, 40],
|
|
9
|
+
disableKeys: !0,
|
|
10
|
+
disableScroll: !0,
|
|
11
|
+
disableWheel: !0,
|
|
12
|
+
keyboardKeys: [32, 33, 34, 35, 36, 37, 38, 39, 40]
|
|
13
|
+
// space: 32, page up: 33, page down: 34, end: 35, home: 36
|
|
14
|
+
// left: 37, up: 38, right: 39, down: 40
|
|
15
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Disable Page Scroll
|
|
19
|
+
*/
|
|
20
|
+
on(element, options) {
|
|
21
|
+
if (!canUseDOM()) return;
|
|
22
|
+
this.element = element || this.element, this.options = {
|
|
23
|
+
...this.options,
|
|
24
|
+
...options
|
|
25
|
+
};
|
|
26
|
+
const {
|
|
27
|
+
disableKeys,
|
|
28
|
+
disableScroll: disableScroll2,
|
|
29
|
+
disableWheel
|
|
30
|
+
} = this.options;
|
|
31
|
+
disableWheel && (document.addEventListener("wheel", this.handleWheel, {
|
|
32
|
+
passive: !1
|
|
33
|
+
}), document.addEventListener("touchmove", this.handleWheel, {
|
|
34
|
+
passive: !1
|
|
35
|
+
})), disableScroll2 && (this.lockToScrollPos = [this.element?.scrollLeft ?? 0, this.element?.scrollTop ?? 0], document.addEventListener("scroll", this.handleScroll, {
|
|
36
|
+
passive: !1
|
|
37
|
+
})), disableKeys && document.addEventListener("keydown", this.handleKeydown, {
|
|
38
|
+
passive: !1
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Re-enable page scrolls
|
|
43
|
+
*/
|
|
44
|
+
off() {
|
|
45
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
46
|
+
}
|
|
47
|
+
handleWheel = e => {
|
|
48
|
+
e.preventDefault();
|
|
49
|
+
};
|
|
50
|
+
handleScroll = () => {
|
|
51
|
+
window.scrollTo(...this.lockToScrollPos);
|
|
52
|
+
};
|
|
53
|
+
handleKeydown = e => {
|
|
54
|
+
let keys = this.options.keyboardKeys;
|
|
55
|
+
["INPUT", "TEXTAREA"].includes(e.target.tagName) && (keys = keys.filter(key => !this.options.authorizedInInputs.includes(key))), keys.includes(e.keyCode) && e.preventDefault();
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const disableScroll = new DisableScroll();
|
|
59
|
+
export { disableScroll };
|
|
60
|
+
//# sourceMappingURL=disableScroll.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["canUseDOM","window","document","createElement","DisableScroll","element","lockToScrollPos","options","constructor","authorizedInInputs","disableKeys","disableScroll","disableWheel","keyboardKeys","scrollingElement","on","disableScroll2","addEventListener","handleWheel","passive","scrollLeft","scrollTop","handleScroll","handleKeydown","off","removeEventListener","e","preventDefault","scrollTo","keys","includes","target","tagName","filter","key","keyCode"],"sources":["../../src/disableScroll.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,SAAA,GAAYA,CAAA,KAChB,OAAOC,MAAA,GAAW,OAAe,CAAC,CAACA,MAAA,CAAOC,QAAA,IAAY,CAAC,CAACD,MAAA,CAAOC,QAAA,CAASC,aAAA;AAU1E,MAAMC,aAAA,CAAc;EAClBC,OAAA;EACAC,eAAA;EACAC,OAAA;EAEAC,YAAA,EAAc;IACZ,KAAKH,OAAA,GAAU,MACf,KAAKC,eAAA,GAAkB,CAAC,GAAG,CAAC,GAC5B,KAAKC,OAAA,GAAU;MACbE,kBAAA,EAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;MACvCC,WAAA,EAAa;MACbC,aAAA,EAAe;MACfC,YAAA,EAAc;MACdC,YAAA,EAAc,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;MAAA;MAAA;IAGnD,GAGIb,SAAA,CAAU,MACZ,KAAKK,OAAA,GAAUH,QAAA,CAASY,gBAAA;EAE5B;EAAA;AAAA;AAAA;EAKAC,GAAGV,OAAA,EAAmBE,OAAA,EAA4B;IAChD,IAAI,CAACP,SAAA,CAAU,GAAG;IAElB,KAAKK,OAAA,GAAUA,OAAA,IAAW,KAAKA,OAAA,EAC/B,KAAKE,OAAA,GAAU;MACb,GAAG,KAAKA,OAAA;MACR,GAAGA;IACL;IAEA,MAAM;MAAEG,WAAA;MAAaC,aAAA,EAAAK,cAAA;MAAeJ;IAAa,IAAI,KAAKL,OAAA;IAGtDK,YAAA,KACFV,QAAA,CAASe,gBAAA,CAAiB,SAAS,KAAKC,WAAA,EAAa;MAAEC,OAAA,EAAS;IAAM,CAAC,GACvEjB,QAAA,CAASe,gBAAA,CAAiB,aAAa,KAAKC,WAAA,EAAa;MAAEC,OAAA,EAAS;IAAM,CAAC,IAIzEH,cAAA,KACF,KAAKV,eAAA,GAAkB,CAAC,KAAKD,OAAA,EAASe,UAAA,IAAc,GAAG,KAAKf,OAAA,EAASgB,SAAA,IAAa,CAAC,GACnFnB,QAAA,CAASe,gBAAA,CAAiB,UAAU,KAAKK,YAAA,EAAc;MAAEH,OAAA,EAAS;IAAM,CAAC,IAIvET,WAAA,IACFR,QAAA,CAASe,gBAAA,CAAiB,WAAW,KAAKM,aAAA,EAAe;MAAEJ,OAAA,EAAS;IAAM,CAAC;EAE/E;EAAA;AAAA;AAAA;EAKAK,IAAA,EAAM;IACCxB,SAAA,CAAU,MAEfE,QAAA,CAASuB,mBAAA,CAAoB,SAAS,KAAKP,WAAW,GACtDhB,QAAA,CAASuB,mBAAA,CAAoB,aAAa,KAAKP,WAAW,GAC1DhB,QAAA,CAASuB,mBAAA,CAAoB,UAAU,KAAKH,YAAY,GACxDpB,QAAA,CAASuB,mBAAA,CAAoB,WAAW,KAAKF,aAAa;EAC5D;EAEAL,WAAA,GAAeQ,CAAA,IAA+B;IAC5CA,CAAA,CAAEC,cAAA,CAAe;EACnB;EAEAL,YAAA,GAAeA,CAAA,KAAM;IACnBrB,MAAA,CAAO2B,QAAA,CAAS,GAAG,KAAKtB,eAAe;EACzC;EAEAiB,aAAA,GAAiBG,CAAA,IAAqB;IACpC,IAAIG,IAAA,GAAO,KAAKtB,OAAA,CAAQM,YAAA;IAItB,CAAC,SAAS,UAAU,EAAEiB,QAAA,CACnBJ,CAAA,CAAEK,MAAA,CAAkDC,OACvD,MAEAH,IAAA,GAAOA,IAAA,CAAKI,MAAA,CAAQC,GAAA,IAAQ,CAAC,KAAK3B,OAAA,CAAQE,kBAAA,CAAmBqB,QAAA,CAASI,GAAG,CAAC,IAIxEL,IAAA,CAAKC,QAAA,CAASJ,CAAA,CAAES,OAAO,KACzBT,CAAA,CAAEC,cAAA,CAAe;EAErB;AACF;AAEO,MAAMhB,aAAA,GAAgB,IAAIP,aAAA,CAAc","ignoreList":[]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
function _class_call_check(instance, Constructor) {
|
|
2
|
+
if (!(instance instanceof Constructor))
|
|
3
|
+
throw new TypeError("Cannot call a class as a function");
|
|
4
|
+
}
|
|
5
|
+
function _defineProperties(target, props) {
|
|
6
|
+
for (var i = 0; i < props.length; i++) {
|
|
7
|
+
var descriptor = props[i];
|
|
8
|
+
descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
12
|
+
return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;
|
|
13
|
+
}
|
|
14
|
+
function _define_property(obj, key, value) {
|
|
15
|
+
return key in obj ? Object.defineProperty(obj, key, {
|
|
16
|
+
value,
|
|
17
|
+
enumerable: !0,
|
|
18
|
+
configurable: !0,
|
|
19
|
+
writable: !0
|
|
20
|
+
}) : obj[key] = value, obj;
|
|
21
|
+
}
|
|
22
|
+
var canUseDOM = function() {
|
|
23
|
+
return typeof window < "u" && !!window.document && !!window.document.createElement;
|
|
24
|
+
}, DisableScroll = /* @__PURE__ */ function() {
|
|
25
|
+
"use strict";
|
|
26
|
+
function DisableScroll2() {
|
|
27
|
+
var _this = this;
|
|
28
|
+
_class_call_check(this, DisableScroll2), _define_property(this, "element", void 0), _define_property(this, "lockToScrollPos", void 0), _define_property(this, "options", void 0), _define_property(this, "handleWheel", function(e) {
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
}), _define_property(this, "handleScroll", function() {
|
|
31
|
+
window.scrollTo(..._this.lockToScrollPos);
|
|
32
|
+
}), _define_property(this, "handleKeydown", function(e) {
|
|
33
|
+
var keys = _this.options.keyboardKeys;
|
|
34
|
+
[
|
|
35
|
+
"INPUT",
|
|
36
|
+
"TEXTAREA"
|
|
37
|
+
].includes(e.target.tagName) && (keys = keys.filter(function(key) {
|
|
38
|
+
return !_this.options.authorizedInInputs.includes(key);
|
|
39
|
+
})), keys.includes(e.keyCode) && e.preventDefault();
|
|
40
|
+
}), this.element = null, this.lockToScrollPos = [
|
|
41
|
+
0,
|
|
42
|
+
0
|
|
43
|
+
], this.options = {
|
|
44
|
+
authorizedInInputs: [
|
|
45
|
+
32,
|
|
46
|
+
37,
|
|
47
|
+
38,
|
|
48
|
+
39,
|
|
49
|
+
40
|
|
50
|
+
],
|
|
51
|
+
disableKeys: !0,
|
|
52
|
+
disableScroll: !0,
|
|
53
|
+
disableWheel: !0,
|
|
54
|
+
keyboardKeys: [
|
|
55
|
+
32,
|
|
56
|
+
33,
|
|
57
|
+
34,
|
|
58
|
+
35,
|
|
59
|
+
36,
|
|
60
|
+
37,
|
|
61
|
+
38,
|
|
62
|
+
39,
|
|
63
|
+
40
|
|
64
|
+
]
|
|
65
|
+
}, canUseDOM() && (this.element = document.scrollingElement);
|
|
66
|
+
}
|
|
67
|
+
return _create_class(DisableScroll2, [
|
|
68
|
+
{
|
|
69
|
+
/**
|
|
70
|
+
* Disable Page Scroll
|
|
71
|
+
*/
|
|
72
|
+
key: "on",
|
|
73
|
+
value: function(element, options) {
|
|
74
|
+
if (canUseDOM()) {
|
|
75
|
+
this.element = element || this.element, this.options = {
|
|
76
|
+
...this.options,
|
|
77
|
+
...options
|
|
78
|
+
};
|
|
79
|
+
var { disableKeys, disableScroll: disableScroll2, disableWheel } = this.options;
|
|
80
|
+
if (disableWheel && (document.addEventListener("wheel", this.handleWheel, {
|
|
81
|
+
passive: !1
|
|
82
|
+
}), document.addEventListener("touchmove", this.handleWheel, {
|
|
83
|
+
passive: !1
|
|
84
|
+
})), disableScroll2) {
|
|
85
|
+
var _this_element, _this_element1, _this_element_scrollLeft, _this_element_scrollTop;
|
|
86
|
+
this.lockToScrollPos = [
|
|
87
|
+
(_this_element_scrollLeft = (_this_element = this.element) === null || _this_element === void 0 ? void 0 : _this_element.scrollLeft) !== null && _this_element_scrollLeft !== void 0 ? _this_element_scrollLeft : 0,
|
|
88
|
+
(_this_element_scrollTop = (_this_element1 = this.element) === null || _this_element1 === void 0 ? void 0 : _this_element1.scrollTop) !== null && _this_element_scrollTop !== void 0 ? _this_element_scrollTop : 0
|
|
89
|
+
], document.addEventListener("scroll", this.handleScroll, {
|
|
90
|
+
passive: !1
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
disableKeys && document.addEventListener("keydown", this.handleKeydown, {
|
|
94
|
+
passive: !1
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
/**
|
|
101
|
+
* Re-enable page scrolls
|
|
102
|
+
*/
|
|
103
|
+
key: "off",
|
|
104
|
+
value: function() {
|
|
105
|
+
canUseDOM() && (document.removeEventListener("wheel", this.handleWheel), document.removeEventListener("touchmove", this.handleWheel), document.removeEventListener("scroll", this.handleScroll), document.removeEventListener("keydown", this.handleKeydown));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
]), DisableScroll2;
|
|
109
|
+
}(), disableScroll = new DisableScroll();
|
|
110
|
+
export {
|
|
111
|
+
disableScroll
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=disableScroll.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/disableScroll.ts"],
|
|
4
|
+
"mappings": "AAWC,SAAA,kBAAA,UAAA,aAAA;;;;;;;;;;;;;;;;;;;;;AAED,IAAMA,YAAY,WAAA;SAChB,OAAOC,SAAW,OAAe,CAAC,CAACA,OAAOC,YAAY,CAAC,CAACD,OAAOC,SAASC;GAUpEC,gBAAN,2BAAA;;WAAMA,iBAAAA;;4BAAAA,cAAAA,GACJC,iBAAAA,MAAAA,WAAAA,MAAAA,GACAC,iBAAAA,MAAAA,mBAAAA,MAAAA,GACAC,iBAAAA,MAAAA,WAAAA,MAAAA,GAiEAC,iBAAAA,MAAAA,eAAc,SAACC,GAAAA;AACbA,QAAEC,eAAc;IAClB,CAAA,GAEAC,iBAAAA,MAAAA,gBAAe,WAAA;AACbV,aAAOW,SAAQ,GAAI,MAAKN,eAAe;IACzC,CAAA,GAEAO,iBAAAA,MAAAA,iBAAgB,SAACJ,GAAAA;AACf,UAAIK,OAAO,MAAKP,QAAQQ;AAGxB,MACE;QAAC;QAAS;QAAYC,SACnBP,EAAEQ,OAAkDC,OAAO,MAG9DJ,OAAOA,KAAKK,OAAO,SAACC,KAAAA;eAAQ,CAAC,MAAKb,QAAQc,mBAAmBL,SAASI,GAAAA;WAIpEN,KAAKE,SAASP,EAAEa,OAAO,KACzBb,EAAEC,eAAc;IAEpB,CAAA,GAtFE,KAAKL,UAAU,MACf,KAAKC,kBAAkB;MAAC;MAAG;OAC3B,KAAKC,UAAU;MACbc,oBAAoB;QAAC;QAAI;QAAI;QAAI;QAAI;;MACrCE,aAAa;MACbC,eAAe;MACfC,cAAc;MACdV,cAAc;QAAC;QAAI;QAAI;QAAI;QAAI;QAAI;QAAI;QAAI;QAAI;;IAGjD,GAGIf,UAAAA,MACF,KAAKK,UAAUH,SAASwB;;uBApBxBtB,gBAAAA;;;;;MA2BJuB,KAAAA;aAAAA,SAAGtB,SAAmBE,SAA0B;AAC9C,YAAKP,UAAAA,GAEL;eAAKK,UAAUA,WAAW,KAAKA,SAC/B,KAAKE,UAAU;YACb,GAAG,KAAKA;YACR,GAAGA;UACL;AAEA,cAAM,EAAEgB,aAAaC,eAAAA,gBAAeC,aAAY,IAAK,KAAKlB;AAS1D,cANIkB,iBACFvB,SAAS0B,iBAAiB,SAAS,KAAKpB,aAAa;YAAEqB,SAAS;UAAM,CAAA,GACtE3B,SAAS0B,iBAAiB,aAAa,KAAKpB,aAAa;YAAEqB,SAAS;UAAM,CAAA,IAIxEL,gBAAe;gBACO,eAA+B,gBAA/B,0BAA+B;AAAvD,iBAAKlB,kBAAkB;eAAC,4BAAA,gBAAA,KAAKD,aAAO,QAAZ,kBAAA,SAAA,SAAA,cAAcyB,gBAAU,QAAxB,6BAAA,SAAA,2BAA4B;eAAG,2BAAA,iBAAA,KAAKzB,aAAO,QAAZ,mBAAA,SAAA,SAAA,eAAc0B,eAAS,QAAvB,4BAAA,SAAA,0BAA2B;eAClF7B,SAAS0B,iBAAiB,UAAU,KAAKjB,cAAc;cAAEkB,SAAS;YAAM,CAAA;UAC1E;AAGA,UAAIN,eACFrB,SAAS0B,iBAAiB,WAAW,KAAKf,eAAe;YAAEgB,SAAS;UAAM,CAAA;;MAE9E;;;;;;MAKAG,KAAAA;aAAAA,WAAAA;AACE,QAAKhC,UAAAA,MAELE,SAAS+B,oBAAoB,SAAS,KAAKzB,WAAW,GACtDN,SAAS+B,oBAAoB,aAAa,KAAKzB,WAAW,GAC1DN,SAAS+B,oBAAoB,UAAU,KAAKtB,YAAY,GACxDT,SAAS+B,oBAAoB,WAAW,KAAKpB,aAAa;MAC5D;;MAlEIT;KA+FOoB,gBAAgB,IAAIpB,cAAAA;",
|
|
5
|
+
"names": ["canUseDOM", "window", "document", "createElement", "DisableScroll", "element", "lockToScrollPos", "options", "handleWheel", "e", "preventDefault", "handleScroll", "scrollTo", "handleKeydown", "keys", "keyboardKeys", "includes", "target", "tagName", "filter", "key", "authorizedInInputs", "keyCode", "disableKeys", "disableScroll", "disableWheel", "scrollingElement", "on", "addEventListener", "passive", "scrollLeft", "scrollTop", "off", "removeEventListener"]
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/remove-scroll",
|
|
3
|
-
"version": "1.130.
|
|
3
|
+
"version": "1.130.2",
|
|
4
4
|
"types": "./types/index.d.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@tamagui/build": "1.130.
|
|
35
|
+
"@tamagui/build": "1.130.2",
|
|
36
36
|
"react": "*"
|
|
37
37
|
},
|
|
38
38
|
"publishConfig": {
|
package/src/RemoveScroll.tsx
CHANGED
|
@@ -9,9 +9,9 @@ export type RemoveScrollProps = {
|
|
|
9
9
|
export const RemoveScroll = React.memo((props: RemoveScrollProps) => {
|
|
10
10
|
const root = useRef<HTMLElement>(null)
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
useDisableScrollOutsideOf(root, {
|
|
13
|
+
enabled: Boolean(props.enabled),
|
|
14
|
+
})
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
17
|
<span ref={root} style={{ display: 'contents' }}>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disableScroll.d.ts","sourceRoot":"","sources":["../src/disableScroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,UAAU,OAAO;IACf,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,cAAM,aAAa;IACjB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,OAAO,EAAE,OAAO,CAAA;;IAqBhB;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IA6BhD;;OAEG;IACH,GAAG;IASH,WAAW,GAAI,GAAG,UAAU,GAAG,UAAU,UAExC;IAED,YAAY,aAEX;IAED,aAAa,GAAI,GAAG,aAAa,UAgBhC;CACF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAA"}
|