@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.
@@ -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 /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
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"
@@ -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 /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { ref: root, style: { display: "contents" }, children: props.children });
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,2BAgB1B;AARG,MAAM,eAAe,aAAAA,QAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,WAAO,qBAAoB,IAAI;AAMrC,SACE,4CAAC,UAAK,KAAK,MAAM,OAAO,EAAE,SAAS,WAAW,GAC3C,gBAAM,UACT;AAEJ,CAAC;",
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
+ }
@@ -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 /* @__PURE__ */ jsx("span", { ref: root, style: { display: "contents" }, children: props.children });
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;AAgB1B;AARG,MAAM,eAAe,MAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,OAAO,OAAoB,IAAI;AAMrC,SACE,oBAAC,UAAK,KAAK,MAAM,OAAO,EAAE,SAAS,WAAW,GAC3C,gBAAM,UACT;AAEJ,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 /* @__PURE__ */jsx("span", {
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;AAgB1B,SAAAC,GAAA;AARG,MAAMC,YAAA,GAAeH,KAAA,CAAMI,IAAA,CAAMC,KAAA,IAA6B;EACnE,MAAMC,IAAA,GAAOL,MAAA,CAAoB,IAAI;EAMrC,OACE,eAAAC,GAAA,CAAC;IAAKK,GAAA,EAAKD,IAAA;IAAME,KAAA,EAAO;MAAEC,OAAA,EAAS;IAAW;IAC3CC,QAAA,EAAAL,KAAA,CAAMK;EAAA,CACT;AAEJ,CAAC","ignoreList":[]}
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":[]}
@@ -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 /* @__PURE__ */ jsx("span", { ref: root, style: { display: "contents" }, children: props.children });
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;AAgB1B;AARG,MAAM,eAAe,MAAM,KAAK,CAAC,UAA6B;AACnE,QAAM,OAAO,OAAoB,IAAI;AAMrC,SACE,oBAAC,UAAK,KAAK,MAAM,OAAO,EAAE,SAAS,WAAW,GAC3C,gBAAM,UACT;AAEJ,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 /* @__PURE__ */jsx("span", {
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;AAgB1B,SAAAC,GAAA;AARG,MAAMC,YAAA,GAAeH,KAAA,CAAMI,IAAA,CAAMC,KAAA,IAA6B;EACnE,MAAMC,IAAA,GAAOL,MAAA,CAAoB,IAAI;EAMrC,OACE,eAAAC,GAAA,CAAC;IAAKK,GAAA,EAAKD,IAAA;IAAME,KAAA,EAAO;MAAEC,OAAA,EAAS;IAAW;IAC3CC,QAAA,EAAAL,KAAA,CAAMK;EAAA,CACT;AAEJ,CAAC","ignoreList":[]}
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.1",
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.1",
35
+ "@tamagui/build": "1.130.2",
36
36
  "react": "*"
37
37
  },
38
38
  "publishConfig": {
@@ -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
- // useDisableScrollOutsideOf(root, {
13
- // enabled: Boolean(props.enabled),
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"}