@drjoshcsimmons/scl 0.1.0 → 0.1.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.
Files changed (195) hide show
  1. package/dist/components/ui/alert/alert.d.ts +1 -1
  2. package/dist/components/ui/alert/alert.d.ts.map +1 -1
  3. package/dist/components/ui/badge/badge.d.ts +1 -1
  4. package/dist/components/ui/badge/badge.d.ts.map +1 -1
  5. package/dist/components/ui/button/button.d.ts +1 -1
  6. package/dist/components/ui/button/button.d.ts.map +1 -1
  7. package/dist/components/ui/combobox/combobox.d.ts +31 -0
  8. package/dist/components/ui/combobox/combobox.d.ts.map +1 -0
  9. package/dist/components/ui/combobox/index.d.ts +3 -0
  10. package/dist/components/ui/combobox/index.d.ts.map +1 -0
  11. package/dist/components/ui/command/command.d.ts +85 -0
  12. package/dist/components/ui/command/command.d.ts.map +1 -0
  13. package/dist/components/ui/command/index.d.ts +2 -0
  14. package/dist/components/ui/command/index.d.ts.map +1 -0
  15. package/dist/components/ui/dithered-image/dithered-image.d.ts +6 -2
  16. package/dist/components/ui/dithered-image/dithered-image.d.ts.map +1 -1
  17. package/dist/components/ui/dithered-image/index.d.ts +1 -1
  18. package/dist/components/ui/dithered-image/index.d.ts.map +1 -1
  19. package/dist/components/ui/form/form.d.ts +24 -0
  20. package/dist/components/ui/form/form.d.ts.map +1 -0
  21. package/dist/components/ui/form/index.d.ts +2 -0
  22. package/dist/components/ui/form/index.d.ts.map +1 -0
  23. package/dist/components/ui/progress/progress.d.ts +0 -6
  24. package/dist/components/ui/progress/progress.d.ts.map +1 -1
  25. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -1
  26. package/dist/components/ui/skeleton/skeleton.d.ts +4 -1
  27. package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -1
  28. package/dist/components/ui/statusline/statusline.d.ts.map +1 -1
  29. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts +0 -5
  30. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts.map +1 -1
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +166 -143
  34. package/dist/index10.js +30 -30
  35. package/dist/index100.js +218 -29
  36. package/dist/index101.js +646 -11
  37. package/dist/index102.js +173 -127
  38. package/dist/index103.js +4 -50
  39. package/dist/index104.js +30 -9
  40. package/dist/index105.js +6 -4
  41. package/dist/index106.js +11 -180
  42. package/dist/index107.js +19 -648
  43. package/dist/index108.js +9 -107
  44. package/dist/index109.js +38 -91
  45. package/dist/index11.js +13 -13
  46. package/dist/index110.js +18 -67
  47. package/dist/index111.js +201 -154
  48. package/dist/index112.js +20 -395
  49. package/dist/index113.js +395 -1675
  50. package/dist/index114.js +2 -278
  51. package/dist/index115.js +49 -128
  52. package/dist/index116.js +65 -32
  53. package/dist/index117.js +19 -1605
  54. package/dist/index118.js +28 -297
  55. package/dist/index119.js +5 -635
  56. package/dist/index12.js +1 -1
  57. package/dist/index120.js +2 -144
  58. package/dist/index121.js +2 -21
  59. package/dist/index122.js +5 -9
  60. package/dist/index123.js +3 -38
  61. package/dist/index124.js +24 -18
  62. package/dist/index125.js +113 -6
  63. package/dist/index126.js +15 -11
  64. package/dist/index127.js +513 -194
  65. package/dist/index128.js +128 -22
  66. package/dist/index129.js +114 -380
  67. package/dist/index13.js +132 -93
  68. package/dist/index130.js +59 -1300
  69. package/dist/index131.js +63 -612
  70. package/dist/index132.js +9 -2
  71. package/dist/index133.js +13 -52
  72. package/dist/index134.js +64 -63
  73. package/dist/index135.js +3 -24
  74. package/dist/index136.js +23 -29
  75. package/dist/index137.js +23 -5
  76. package/dist/index138.js +13 -2
  77. package/dist/index139.js +28 -2
  78. package/dist/index14.js +106 -220
  79. package/dist/index140.js +5 -5
  80. package/dist/index15.js +79 -125
  81. package/dist/index16.js +280 -17
  82. package/dist/index17.js +139 -12
  83. package/dist/index18.js +92 -22
  84. package/dist/index19.js +18 -55
  85. package/dist/index2.js +2 -2
  86. package/dist/index20.js +14 -26
  87. package/dist/index21.js +19 -33
  88. package/dist/index22.js +38 -121
  89. package/dist/index23.js +29 -22
  90. package/dist/index24.js +31 -64
  91. package/dist/index25.js +121 -15
  92. package/dist/index26.js +19 -29
  93. package/dist/index27.js +68 -77
  94. package/dist/index28.js +20 -25
  95. package/dist/index29.js +32 -88
  96. package/dist/index3.js +11 -9
  97. package/dist/index30.js +138 -38
  98. package/dist/index31.js +20 -227
  99. package/dist/index32.js +88 -18
  100. package/dist/index33.js +37 -28
  101. package/dist/index34.js +86 -22
  102. package/dist/index35.js +17 -102
  103. package/dist/index36.js +34 -65
  104. package/dist/index37.js +23 -49
  105. package/dist/index38.js +38 -99
  106. package/dist/index39.js +65 -10
  107. package/dist/index4.js +6 -6
  108. package/dist/index40.js +49 -15
  109. package/dist/index41.js +93 -2256
  110. package/dist/index42.js +10 -32
  111. package/dist/index43.js +15 -18
  112. package/dist/index44.js +2251 -225
  113. package/dist/index45.js +237 -11
  114. package/dist/index46.js +11 -73
  115. package/dist/index47.js +33 -249
  116. package/dist/index48.js +118 -9
  117. package/dist/index49.js +63 -326
  118. package/dist/index5.js +23 -23
  119. package/dist/index50.js +307 -57
  120. package/dist/index51.js +12 -241
  121. package/dist/index52.js +222 -822
  122. package/dist/index53.js +6 -3
  123. package/dist/index54.js +56 -114
  124. package/dist/index55.js +248 -219
  125. package/dist/index56.js +249 -11
  126. package/dist/index57.js +3 -5
  127. package/dist/index58.js +110 -221
  128. package/dist/index59.js +12 -260
  129. package/dist/index6.js +12 -12
  130. package/dist/index60.js +18 -12
  131. package/dist/index61.js +221 -18
  132. package/dist/index62.js +11 -530
  133. package/dist/index63.js +11 -6155
  134. package/dist/index64.js +234 -2626
  135. package/dist/index65.js +230 -292
  136. package/dist/index66.js +504 -646
  137. package/dist/index67.js +155 -824
  138. package/dist/index68.js +128 -23
  139. package/dist/index69.js +319 -311
  140. package/dist/index7.js +22 -22
  141. package/dist/index70.js +72 -4889
  142. package/dist/index71.js +408 -802
  143. package/dist/index72.js +18 -1254
  144. package/dist/index73.js +844 -518
  145. package/dist/index74.js +9 -125
  146. package/dist/index75.js +31 -161
  147. package/dist/index76.js +7 -31
  148. package/dist/index77.js +62 -429
  149. package/dist/index78.js +50 -128
  150. package/dist/index79.js +4 -81
  151. package/dist/index8.js +17 -18
  152. package/dist/index80.js +23 -64
  153. package/dist/index81.js +33 -45
  154. package/dist/index82.js +63 -21
  155. package/dist/index83.js +10 -6
  156. package/dist/index84.js +52 -49
  157. package/dist/index85.js +10 -33
  158. package/dist/index86.js +30 -11
  159. package/dist/index87.js +12 -7
  160. package/dist/index88.js +46 -30
  161. package/dist/index89.js +7 -54
  162. package/dist/index9.js +23 -31
  163. package/dist/index90.js +14 -10
  164. package/dist/index91.js +125 -4
  165. package/dist/index92.js +131 -9
  166. package/dist/index93.js +14 -6
  167. package/dist/index94.js +14 -24
  168. package/dist/index95.js +9 -69
  169. package/dist/index96.js +47 -122
  170. package/dist/index97.js +51 -216
  171. package/dist/index98.js +6 -14
  172. package/dist/index99.js +24 -53
  173. package/dist/tokens/colors.d.ts +26 -86
  174. package/dist/tokens/colors.d.ts.map +1 -1
  175. package/dist/tokens/index.d.ts +12 -84
  176. package/dist/tokens/index.d.ts.map +1 -1
  177. package/package.json +28 -23
  178. package/dist/index141.js +0 -5
  179. package/dist/index142.js +0 -26
  180. package/dist/index143.js +0 -115
  181. package/dist/index144.js +0 -18
  182. package/dist/index145.js +0 -527
  183. package/dist/index146.js +0 -130
  184. package/dist/index147.js +0 -136
  185. package/dist/index148.js +0 -67
  186. package/dist/index149.js +0 -71
  187. package/dist/index150.js +0 -11
  188. package/dist/index151.js +0 -16
  189. package/dist/index152.js +0 -68
  190. package/dist/index153.js +0 -6
  191. package/dist/index154.js +0 -25
  192. package/dist/index155.js +0 -25
  193. package/dist/index156.js +0 -15
  194. package/dist/index157.js +0 -30
  195. package/dist/index158.js +0 -7
package/dist/index118.js CHANGED
@@ -1,300 +1,31 @@
1
- import { StateEffect as L, codePointAt as y, codePointSize as b, fromCodePoint as w } from "./index131.js";
2
- const p = typeof String.prototype.normalize == "function" ? (n) => n.normalize("NFKD") : (n) => n;
3
- class x {
4
- /**
5
- Create a text cursor. The query is the search string, `from` to
6
- `to` provides the region to search.
7
-
8
- When `normalize` is given, it will be called, on both the query
9
- string and the content it is matched against, before comparing.
10
- You can, for example, create a case-insensitive search by
11
- passing `s => s.toLowerCase()`.
12
-
13
- Text is always normalized with
14
- [`.normalize("NFKD")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)
15
- (when supported).
16
- */
17
- constructor(t, e, i = 0, s = t.length, r) {
18
- this.value = { from: 0, to: 0 }, this.done = !1, this.matches = [], this.buffer = "", this.bufferPos = 0, this.iter = t.iterRange(i, s), this.bufferStart = i, this.normalize = r ? (h) => r(p(h)) : p, this.query = this.normalize(e);
19
- }
20
- peek() {
21
- if (this.bufferPos == this.buffer.length) {
22
- if (this.bufferStart += this.buffer.length, this.iter.next(), this.iter.done)
23
- return -1;
24
- this.bufferPos = 0, this.buffer = this.iter.value;
25
- }
26
- return y(this.buffer, this.bufferPos);
27
- }
28
- /**
29
- Look for the next match. Updates the iterator's
30
- [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and
31
- [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called
32
- at least once before using the cursor.
33
- */
34
- next() {
35
- for (; this.matches.length; )
36
- this.matches.pop();
37
- return this.nextOverlapping();
38
- }
39
- /**
40
- The `next` method will ignore matches that partially overlap a
41
- previous match. This method behaves like `next`, but includes
42
- such matches.
43
- */
44
- nextOverlapping() {
45
- for (; ; ) {
46
- let t = this.peek();
47
- if (t < 0)
48
- return this.done = !0, this;
49
- let e = w(t), i = this.bufferStart + this.bufferPos;
50
- this.bufferPos += b(t);
51
- let s = this.normalize(e);
52
- for (let r = 0, h = i; ; r++) {
53
- let l = s.charCodeAt(r), g = this.match(l, h);
54
- if (g)
55
- return this.value = g, this;
56
- if (r == s.length - 1)
57
- break;
58
- h == i && r < e.length && e.charCodeAt(r) == l && h++;
59
- }
60
- }
61
- }
62
- match(t, e) {
63
- let i = null;
64
- for (let s = 0; s < this.matches.length; s += 2) {
65
- let r = this.matches[s], h = !1;
66
- this.query.charCodeAt(r) == t && (r == this.query.length - 1 ? i = { from: this.matches[s + 1], to: e + 1 } : (this.matches[s]++, h = !0)), h || (this.matches.splice(s, 2), s -= 2);
67
- }
68
- return this.query.charCodeAt(0) == t && (this.query.length == 1 ? i = { from: e, to: e + 1 } : this.matches.push(1, e)), i;
69
- }
70
- }
71
- typeof Symbol < "u" && (x.prototype[Symbol.iterator] = function() {
72
- return this;
1
+ import { __rest as E, __assign as r } from "./index117.js";
2
+ import * as a from "react";
3
+ import { zeroRightClassName as I, fullWidthClassName as Z } from "./index122.js";
4
+ import { effectCar as W } from "./index123.js";
5
+ import { useMergeRefs as z } from "./index124.js";
6
+ var l = function() {
7
+ }, m = a.forwardRef(function(e, d) {
8
+ var o = a.useRef(null), n = a.useState({
9
+ onScrollCapture: l,
10
+ onWheelCapture: l,
11
+ onTouchMoveCapture: l
12
+ }), f = n[0], v = n[1], h = e.forwardProps, t = e.children, u = e.className, C = e.removeScrollBar, R = e.enabled, g = e.shards, P = e.sideCar, S = e.noRelative, b = e.noIsolation, w = e.inert, N = e.allowPinchZoom, i = e.as, M = i === void 0 ? "div" : i, _ = e.gapMode, B = E(e, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noRelative", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]), k = P, s = z([o, d]), c = r(r({}, B), f);
13
+ return a.createElement(
14
+ a.Fragment,
15
+ null,
16
+ R && a.createElement(k, { sideCar: W, removeScrollBar: C, shards: g, noRelative: S, noIsolation: b, inert: w, setCallbacks: v, allowPinchZoom: !!N, lockRef: o, gapMode: _ }),
17
+ h ? a.cloneElement(a.Children.only(t), r(r({}, c), { ref: s })) : a.createElement(M, r({}, c, { className: u, ref: s }), t)
18
+ );
73
19
  });
74
- const m = { from: -1, to: -1, match: /* @__PURE__ */ /.*/.exec("") }, f = "gm" + (/x/.unicode == null ? "" : "u");
75
- class v {
76
- /**
77
- Create a cursor that will search the given range in the given
78
- document. `query` should be the raw pattern (as you'd pass it to
79
- `new RegExp`).
80
- */
81
- constructor(t, e, i, s = 0, r = t.length) {
82
- if (this.to = r, this.curLine = "", this.done = !1, this.value = m, /\\[sWDnr]|\n|\r|\[\^/.test(e))
83
- return new d(t, e, i, s, r);
84
- this.re = new RegExp(e, f + (i != null && i.ignoreCase ? "i" : "")), this.iter = t.iter();
85
- let h = t.lineAt(s);
86
- this.curLineStart = h.from, this.matchPos = s, this.getLine(this.curLineStart);
87
- }
88
- getLine(t) {
89
- this.iter.next(t), this.iter.lineBreak ? this.curLine = "" : (this.curLine = this.iter.value, this.curLineStart + this.curLine.length > this.to && (this.curLine = this.curLine.slice(0, this.to - this.curLineStart)), this.iter.next());
90
- }
91
- nextLine() {
92
- this.curLineStart = this.curLineStart + this.curLine.length + 1, this.curLineStart > this.to ? this.curLine = "" : this.getLine(0);
93
- }
94
- /**
95
- Move to the next match, if there is one.
96
- */
97
- next() {
98
- for (let t = this.matchPos - this.curLineStart; ; ) {
99
- this.re.lastIndex = t;
100
- let e = this.matchPos <= this.to && this.re.exec(this.curLine);
101
- if (e) {
102
- let i = this.curLineStart + e.index, s = i + e[0].length;
103
- if (this.matchPos = s + (i == s ? 1 : 0), i == this.curLine.length && this.nextLine(), i < s || i > this.value.to)
104
- return this.value = { from: i, to: s, match: e }, this;
105
- t = this.matchPos - this.curLineStart;
106
- } else if (this.curLineStart + this.curLine.length < this.to)
107
- this.nextLine(), t = 0;
108
- else
109
- return this.done = !0, this;
110
- }
111
- }
112
- }
113
- const o = /* @__PURE__ */ new WeakMap();
114
- class c {
115
- constructor(t, e) {
116
- this.from = t, this.text = e;
117
- }
118
- get to() {
119
- return this.from + this.text.length;
120
- }
121
- static get(t, e, i) {
122
- let s = o.get(t);
123
- if (!s || s.from >= i || s.to <= e) {
124
- let l = new c(e, t.sliceString(e, i));
125
- return o.set(t, l), l;
126
- }
127
- if (s.from == e && s.to == i)
128
- return s;
129
- let { text: r, from: h } = s;
130
- return h > e && (r = t.sliceString(e, h) + r, h = e), s.to < i && (r += t.sliceString(s.to, i)), o.set(t, new c(h, r)), new c(e, r.slice(e - h, i - h));
131
- }
132
- }
133
- class d {
134
- constructor(t, e, i, s, r) {
135
- this.text = t, this.to = r, this.done = !1, this.value = m, this.matchPos = s, this.re = new RegExp(e, f + (i != null && i.ignoreCase ? "i" : "")), this.flat = c.get(t, s, this.chunkEnd(
136
- s + 5e3
137
- /* Base */
138
- ));
139
- }
140
- chunkEnd(t) {
141
- return t >= this.to ? this.to : this.text.lineAt(t).to;
142
- }
143
- next() {
144
- for (; ; ) {
145
- let t = this.re.lastIndex = this.matchPos - this.flat.from, e = this.re.exec(this.flat.text);
146
- if (e && !e[0] && e.index == t && (this.re.lastIndex = t + 1, e = this.re.exec(this.flat.text)), e && this.flat.to < this.to && e.index + e[0].length > this.flat.text.length - 10 && (e = null), e) {
147
- let i = this.flat.from + e.index, s = i + e[0].length;
148
- return this.value = { from: i, to: s, match: e }, this.matchPos = s + (i == s ? 1 : 0), this;
149
- } else {
150
- if (this.flat.to == this.to)
151
- return this.done = !0, this;
152
- this.flat = c.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));
153
- }
154
- }
155
- }
156
- }
157
- typeof Symbol < "u" && (v.prototype[Symbol.iterator] = d.prototype[Symbol.iterator] = function() {
158
- return this;
159
- });
160
- function M(n) {
161
- try {
162
- return new RegExp(n, f), !0;
163
- } catch {
164
- return !1;
165
- }
166
- }
167
- class E {
168
- /**
169
- Create a query object.
170
- */
171
- constructor(t) {
172
- this.search = t.search, this.caseSensitive = !!t.caseSensitive, this.regexp = !!t.regexp, this.replace = t.replace || "", this.valid = !!this.search && (!this.regexp || M(this.search)), this.unquoted = t.literal ? this.search : this.search.replace(/\\([nrt\\])/g, (e, i) => i == "n" ? `
173
- ` : i == "r" ? "\r" : i == "t" ? " " : "\\");
174
- }
175
- /**
176
- Compare this query to another query.
177
- */
178
- eq(t) {
179
- return this.search == t.search && this.replace == t.replace && this.caseSensitive == t.caseSensitive && this.regexp == t.regexp;
180
- }
181
- /**
182
- @internal
183
- */
184
- create() {
185
- return this.regexp ? new R(this) : new P(this);
186
- }
187
- /**
188
- Get a search cursor for this query, searching through the given
189
- range in the given document.
190
- */
191
- getCursor(t, e = 0, i = t.length) {
192
- return this.regexp ? u(this, t, e, i) : a(this, t, e, i);
193
- }
194
- }
195
- class S {
196
- constructor(t) {
197
- this.spec = t;
198
- }
199
- }
200
- function a(n, t, e, i) {
201
- return new x(t, n.unquoted, e, i, n.caseSensitive ? void 0 : (s) => s.toLowerCase());
202
- }
203
- class P extends S {
204
- constructor(t) {
205
- super(t);
206
- }
207
- nextMatch(t, e, i) {
208
- let s = a(this.spec, t, i, t.length).nextOverlapping();
209
- return s.done && (s = a(this.spec, t, 0, e).nextOverlapping()), s.done ? null : s.value;
210
- }
211
- // Searching in reverse is, rather than implementing inverted search
212
- // cursor, done by scanning chunk after chunk forward.
213
- prevMatchInRange(t, e, i) {
214
- for (let s = i; ; ) {
215
- let r = Math.max(e, s - 1e4 - this.spec.unquoted.length), h = a(this.spec, t, r, s), l = null;
216
- for (; !h.nextOverlapping().done; )
217
- l = h.value;
218
- if (l)
219
- return l;
220
- if (r == e)
221
- return null;
222
- s -= 1e4;
223
- }
224
- }
225
- prevMatch(t, e, i) {
226
- return this.prevMatchInRange(t, 0, e) || this.prevMatchInRange(t, i, t.length);
227
- }
228
- getReplacement(t) {
229
- return this.spec.replace;
230
- }
231
- matchAll(t, e) {
232
- let i = a(this.spec, t, 0, t.length), s = [];
233
- for (; !i.next().done; ) {
234
- if (s.length >= e)
235
- return null;
236
- s.push(i.value);
237
- }
238
- return s;
239
- }
240
- highlight(t, e, i, s) {
241
- let r = a(this.spec, t, Math.max(0, e - this.spec.unquoted.length), Math.min(i + this.spec.unquoted.length, t.length));
242
- for (; !r.next().done; )
243
- s(r.value.from, r.value.to);
244
- }
245
- }
246
- function u(n, t, e, i) {
247
- return new v(t, n.search, n.caseSensitive ? void 0 : { ignoreCase: !0 }, e, i);
248
- }
249
- class R extends S {
250
- nextMatch(t, e, i) {
251
- let s = u(this.spec, t, i, t.length).next();
252
- return s.done && (s = u(this.spec, t, 0, e).next()), s.done ? null : s.value;
253
- }
254
- prevMatchInRange(t, e, i) {
255
- for (let s = 1; ; s++) {
256
- let r = Math.max(
257
- e,
258
- i - s * 1e4
259
- /* ChunkSize */
260
- ), h = u(this.spec, t, r, i), l = null;
261
- for (; !h.next().done; )
262
- l = h.value;
263
- if (l && (r == e || l.from > r + 10))
264
- return l;
265
- if (r == e)
266
- return null;
267
- }
268
- }
269
- prevMatch(t, e, i) {
270
- return this.prevMatchInRange(t, 0, e) || this.prevMatchInRange(t, i, t.length);
271
- }
272
- getReplacement(t) {
273
- return this.spec.replace.replace(/\$([$&\d+])/g, (e, i) => i == "$" ? "$" : i == "&" ? t.match[0] : i != "0" && +i < t.match.length ? t.match[i] : e);
274
- }
275
- matchAll(t, e) {
276
- let i = u(this.spec, t, 0, t.length), s = [];
277
- for (; !i.next().done; ) {
278
- if (s.length >= e)
279
- return null;
280
- s.push(i.value);
281
- }
282
- return s;
283
- }
284
- highlight(t, e, i, s) {
285
- let r = u(this.spec, t, Math.max(
286
- 0,
287
- e - 250
288
- /* HighlightMargin */
289
- ), Math.min(i + 250, t.length));
290
- for (; !r.next().done; )
291
- s(r.value.from, r.value.to);
292
- }
293
- }
294
- const k = /* @__PURE__ */ L.define();
20
+ m.defaultProps = {
21
+ enabled: !0,
22
+ removeScrollBar: !0,
23
+ inert: !1
24
+ };
25
+ m.classNames = {
26
+ fullWidth: Z,
27
+ zeroRight: I
28
+ };
295
29
  export {
296
- v as RegExpCursor,
297
- x as SearchCursor,
298
- E as SearchQuery,
299
- k as setSearchQuery
30
+ m as RemoveScroll
300
31
  };