@harnessio/ui 0.3.5 → 0.4.0
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/hooks.d.ts +0 -1
- package/dist/hooks.js +1 -1
- package/dist/index-5LeRFor1.js.map +1 -1
- package/dist/{index-D9zYGNBh.js → index-BcVsw9k3.js} +104 -104
- package/dist/index-BcVsw9k3.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -1
- package/dist/styles.css +2 -2
- package/package.json +3 -3
- package/dist/index-D9zYGNBh.js.map +0 -1
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { useCallback as
|
|
1
|
+
import { useCallback as E, useEffect as h, useMemo as I, useRef as T, useState as L, useLayoutEffect as re } from "react";
|
|
2
2
|
import { u as oe, g as te } from "./types-lL2O4vS0.js";
|
|
3
|
-
import { a as ae, q as
|
|
4
|
-
import { M as pe, S as
|
|
3
|
+
import { a as ae, q as se, b as ie, e as ce, g as ue, U as D, f as H, j as $, S as C, r as fe, k as le, p as de, t as me, u as ge } from "./use-debounce-search-2GsFGPkD.js";
|
|
4
|
+
import { M as pe, S as U, e as ve, a as q, b as B } from "./_MapCache-C2CWXlpA.js";
|
|
5
5
|
function ye(e) {
|
|
6
|
-
return
|
|
6
|
+
return ie(e) ? ae(e) : se(e);
|
|
7
7
|
}
|
|
8
|
-
function
|
|
8
|
+
function F(e) {
|
|
9
9
|
return ce(e, ye, ue);
|
|
10
10
|
}
|
|
11
11
|
var he = "__lodash_hash_undefined__";
|
|
12
|
-
function
|
|
12
|
+
function _e(e) {
|
|
13
13
|
return this.__data__.set(e, he), this;
|
|
14
14
|
}
|
|
15
|
-
function
|
|
15
|
+
function Ee(e) {
|
|
16
16
|
return this.__data__.has(e);
|
|
17
17
|
}
|
|
18
|
-
function
|
|
18
|
+
function w(e) {
|
|
19
19
|
var n = -1, r = e == null ? 0 : e.length;
|
|
20
20
|
for (this.__data__ = new pe(); ++n < r; )
|
|
21
21
|
this.add(e[n]);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
function
|
|
23
|
+
w.prototype.add = w.prototype.push = _e;
|
|
24
|
+
w.prototype.has = Ee;
|
|
25
|
+
function Te(e, n) {
|
|
26
26
|
for (var r = -1, t = e == null ? 0 : e.length; ++r < t; )
|
|
27
27
|
if (n(e[r], r, e))
|
|
28
28
|
return !0;
|
|
@@ -33,14 +33,14 @@ function be(e, n) {
|
|
|
33
33
|
}
|
|
34
34
|
var Ae = 1, Se = 2;
|
|
35
35
|
function Y(e, n, r, t, a, o) {
|
|
36
|
-
var c = r & Ae,
|
|
37
|
-
if (
|
|
36
|
+
var c = r & Ae, s = e.length, i = n.length;
|
|
37
|
+
if (s != i && !(c && i > s))
|
|
38
38
|
return !1;
|
|
39
39
|
var f = o.get(e), u = o.get(n);
|
|
40
40
|
if (f && u)
|
|
41
41
|
return f == n && u == e;
|
|
42
|
-
var d = -1, l = !0, p = r & Se ? new
|
|
43
|
-
for (o.set(e, n), o.set(n, e); ++d <
|
|
42
|
+
var d = -1, l = !0, p = r & Se ? new w() : void 0;
|
|
43
|
+
for (o.set(e, n), o.set(n, e); ++d < s; ) {
|
|
44
44
|
var g = e[d], v = n[d];
|
|
45
45
|
if (t)
|
|
46
46
|
var y = c ? t(v, g, d, n, e, o) : t(g, v, d, e, n, o);
|
|
@@ -51,9 +51,9 @@ function Y(e, n, r, t, a, o) {
|
|
|
51
51
|
break;
|
|
52
52
|
}
|
|
53
53
|
if (p) {
|
|
54
|
-
if (!
|
|
55
|
-
if (!be(p,
|
|
56
|
-
return p.push(
|
|
54
|
+
if (!Te(n, function(m, _) {
|
|
55
|
+
if (!be(p, _) && (g === m || a(g, m, r, t, o)))
|
|
56
|
+
return p.push(_);
|
|
57
57
|
})) {
|
|
58
58
|
l = !1;
|
|
59
59
|
break;
|
|
@@ -71,41 +71,41 @@ function Ie(e) {
|
|
|
71
71
|
r[++n] = [a, t];
|
|
72
72
|
}), r;
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function we(e) {
|
|
75
75
|
var n = -1, r = Array(e.size);
|
|
76
76
|
return e.forEach(function(t) {
|
|
77
77
|
r[++n] = t;
|
|
78
78
|
}), r;
|
|
79
79
|
}
|
|
80
|
-
var
|
|
80
|
+
var Le = 1, Ce = 2, ke = "[object Boolean]", Oe = "[object Date]", Re = "[object Error]", Pe = "[object Map]", Me = "[object Number]", xe = "[object RegExp]", Ne = "[object Set]", De = "[object String]", He = "[object Symbol]", $e = "[object ArrayBuffer]", Ue = "[object DataView]", G = U ? U.prototype : void 0, k = G ? G.valueOf : void 0;
|
|
81
81
|
function qe(e, n, r, t, a, o, c) {
|
|
82
82
|
switch (r) {
|
|
83
|
-
case
|
|
83
|
+
case Ue:
|
|
84
84
|
if (e.byteLength != n.byteLength || e.byteOffset != n.byteOffset)
|
|
85
85
|
return !1;
|
|
86
86
|
e = e.buffer, n = n.buffer;
|
|
87
|
-
case
|
|
87
|
+
case $e:
|
|
88
88
|
return !(e.byteLength != n.byteLength || !o(new D(e), new D(n)));
|
|
89
89
|
case ke:
|
|
90
|
-
case
|
|
90
|
+
case Oe:
|
|
91
91
|
case Me:
|
|
92
92
|
return ve(+e, +n);
|
|
93
|
-
case
|
|
93
|
+
case Re:
|
|
94
94
|
return e.name == n.name && e.message == n.message;
|
|
95
95
|
case xe:
|
|
96
96
|
case De:
|
|
97
97
|
return e == n + "";
|
|
98
98
|
case Pe:
|
|
99
|
-
var
|
|
99
|
+
var s = Ie;
|
|
100
100
|
case Ne:
|
|
101
|
-
var
|
|
102
|
-
if (
|
|
101
|
+
var i = t & Le;
|
|
102
|
+
if (s || (s = we), e.size != n.size && !i)
|
|
103
103
|
return !1;
|
|
104
104
|
var f = c.get(e);
|
|
105
105
|
if (f)
|
|
106
106
|
return f == n;
|
|
107
107
|
t |= Ce, c.set(e, n);
|
|
108
|
-
var u = Y(
|
|
108
|
+
var u = Y(s(e), s(n), t, a, o, c);
|
|
109
109
|
return c.delete(e), u;
|
|
110
110
|
case He:
|
|
111
111
|
if (k)
|
|
@@ -113,14 +113,14 @@ function qe(e, n, r, t, a, o, c) {
|
|
|
113
113
|
}
|
|
114
114
|
return !1;
|
|
115
115
|
}
|
|
116
|
-
var
|
|
117
|
-
function
|
|
118
|
-
var c = r &
|
|
119
|
-
if (
|
|
116
|
+
var Be = 1, Fe = Object.prototype, Ge = Fe.hasOwnProperty;
|
|
117
|
+
function Ve(e, n, r, t, a, o) {
|
|
118
|
+
var c = r & Be, s = F(e), i = s.length, f = F(n), u = f.length;
|
|
119
|
+
if (i != u && !c)
|
|
120
120
|
return !1;
|
|
121
|
-
for (var d =
|
|
122
|
-
var l =
|
|
123
|
-
if (!(c ? l in n :
|
|
121
|
+
for (var d = i; d--; ) {
|
|
122
|
+
var l = s[d];
|
|
123
|
+
if (!(c ? l in n : Ge.call(n, l)))
|
|
124
124
|
return !1;
|
|
125
125
|
}
|
|
126
126
|
var p = o.get(e), g = o.get(n);
|
|
@@ -128,12 +128,12 @@ function Ge(e, n, r, t, a, o) {
|
|
|
128
128
|
return p == n && g == e;
|
|
129
129
|
var v = !0;
|
|
130
130
|
o.set(e, n), o.set(n, e);
|
|
131
|
-
for (var y = c; ++d <
|
|
132
|
-
l =
|
|
133
|
-
var m = e[l],
|
|
131
|
+
for (var y = c; ++d < i; ) {
|
|
132
|
+
l = s[d];
|
|
133
|
+
var m = e[l], _ = n[l];
|
|
134
134
|
if (t)
|
|
135
|
-
var N = c ? t(
|
|
136
|
-
if (!(N === void 0 ? m ===
|
|
135
|
+
var N = c ? t(_, m, l, n, e, o) : t(m, _, l, e, n, o);
|
|
136
|
+
if (!(N === void 0 ? m === _ || a(m, _, r, t, o) : N)) {
|
|
137
137
|
v = !1;
|
|
138
138
|
break;
|
|
139
139
|
}
|
|
@@ -145,29 +145,29 @@ function Ge(e, n, r, t, a, o) {
|
|
|
145
145
|
}
|
|
146
146
|
return o.delete(e), o.delete(n), v;
|
|
147
147
|
}
|
|
148
|
-
var
|
|
148
|
+
var We = 1, V = "[object Arguments]", W = "[object Array]", S = "[object Object]", Qe = Object.prototype, Q = Qe.hasOwnProperty;
|
|
149
149
|
function Ye(e, n, r, t, a, o) {
|
|
150
|
-
var c = q(e),
|
|
151
|
-
|
|
152
|
-
var u =
|
|
153
|
-
if (l &&
|
|
154
|
-
if (
|
|
150
|
+
var c = q(e), s = q(n), i = c ? W : H(e), f = s ? W : H(n);
|
|
151
|
+
i = i == V ? S : i, f = f == V ? S : f;
|
|
152
|
+
var u = i == S, d = f == S, l = i == f;
|
|
153
|
+
if (l && $(e)) {
|
|
154
|
+
if (!$(n))
|
|
155
155
|
return !1;
|
|
156
156
|
c = !0, u = !1;
|
|
157
157
|
}
|
|
158
158
|
if (l && !u)
|
|
159
|
-
return o || (o = new C()), c || fe(e) ? Y(e, n, r, t, a, o) : qe(e, n,
|
|
160
|
-
if (!(r &
|
|
161
|
-
var p = u &&
|
|
159
|
+
return o || (o = new C()), c || fe(e) ? Y(e, n, r, t, a, o) : qe(e, n, i, r, t, a, o);
|
|
160
|
+
if (!(r & We)) {
|
|
161
|
+
var p = u && Q.call(e, "__wrapped__"), g = d && Q.call(n, "__wrapped__");
|
|
162
162
|
if (p || g) {
|
|
163
163
|
var v = p ? e.value() : e, y = g ? n.value() : n;
|
|
164
164
|
return o || (o = new C()), a(v, y, r, t, o);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
return l ? (o || (o = new C()),
|
|
167
|
+
return l ? (o || (o = new C()), Ve(e, n, r, t, a, o)) : !1;
|
|
168
168
|
}
|
|
169
169
|
function K(e, n, r, t, a) {
|
|
170
|
-
return e === n ? !0 : e == null || n == null || !
|
|
170
|
+
return e === n ? !0 : e == null || n == null || !B(e) && !B(n) ? e !== e && n !== n : Ye(e, n, r, t, K, a);
|
|
171
171
|
}
|
|
172
172
|
function Ke(e, n, r) {
|
|
173
173
|
r = typeof r == "function" ? r : void 0;
|
|
@@ -175,12 +175,12 @@ function Ke(e, n, r) {
|
|
|
175
175
|
return t === void 0 ? K(e, n, void 0, r) : !!t;
|
|
176
176
|
}
|
|
177
177
|
function Je() {
|
|
178
|
-
const { useSearchParams: e } = oe(), [n, r] = e(), t = n.get("query"), a =
|
|
178
|
+
const { useSearchParams: e } = oe(), [n, r] = e(), t = n.get("query"), a = E(
|
|
179
179
|
(o) => {
|
|
180
180
|
r((c) => {
|
|
181
|
-
var
|
|
182
|
-
const
|
|
183
|
-
return le(
|
|
181
|
+
var i;
|
|
182
|
+
const s = (i = o == null ? void 0 : o.target) == null ? void 0 : i.value;
|
|
183
|
+
return le(s) ? c.delete("query") : c.set("query", s), c;
|
|
184
184
|
});
|
|
185
185
|
},
|
|
186
186
|
[r]
|
|
@@ -197,7 +197,7 @@ function Xe(e, n) {
|
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
199
|
function J(e) {
|
|
200
|
-
const n =
|
|
200
|
+
const n = T();
|
|
201
201
|
return Xe(e, n.current) || (n.current = e), n.current;
|
|
202
202
|
}
|
|
203
203
|
function Ze(e, n) {
|
|
@@ -234,14 +234,14 @@ function nn({
|
|
|
234
234
|
rootMargin: a = "100px",
|
|
235
235
|
threshold: o = 0.1
|
|
236
236
|
}) {
|
|
237
|
-
const c =
|
|
237
|
+
const c = T(null), s = T(e);
|
|
238
238
|
h(() => {
|
|
239
|
-
|
|
239
|
+
s.current = e;
|
|
240
240
|
}, [e]);
|
|
241
|
-
const
|
|
241
|
+
const i = E(
|
|
242
242
|
(f) => {
|
|
243
243
|
const [u] = f;
|
|
244
|
-
u != null && u.isIntersecting && n && !r &&
|
|
244
|
+
u != null && u.isIntersecting && n && !r && s.current();
|
|
245
245
|
},
|
|
246
246
|
[n, r]
|
|
247
247
|
);
|
|
@@ -249,24 +249,24 @@ function nn({
|
|
|
249
249
|
const f = c.current;
|
|
250
250
|
if (!f || !t || !n)
|
|
251
251
|
return;
|
|
252
|
-
const u = new IntersectionObserver(
|
|
252
|
+
const u = new IntersectionObserver(i, {
|
|
253
253
|
rootMargin: a,
|
|
254
254
|
threshold: o
|
|
255
255
|
});
|
|
256
256
|
return u.observe(f), () => {
|
|
257
257
|
u.disconnect();
|
|
258
258
|
};
|
|
259
|
-
}, [t, n,
|
|
259
|
+
}, [t, n, i, a, o]), { sentinelRef: c };
|
|
260
260
|
}
|
|
261
261
|
const rn = () => {
|
|
262
|
-
const e =
|
|
262
|
+
const e = T(!1);
|
|
263
263
|
return h(() => (e.current = !0, () => {
|
|
264
264
|
e.current = !1;
|
|
265
265
|
}), []), e;
|
|
266
266
|
};
|
|
267
|
-
var Z = /* @__PURE__ */ ((e) => (e.SPACE_ID = "spaceId", e.SIDEBAR_WIDTH = "sidebarWidth", e.CURRENT_USER = "currentUser", e.DIFF_VIEW_STYLE = "DIFF_VIEW_STYLE", e.PULL_REQUEST_CREATION_OPTION = "PULL_REQUEST_CREATION_OPTION", e.
|
|
267
|
+
var Z = /* @__PURE__ */ ((e) => (e.SPACE_ID = "spaceId", e.SIDEBAR_WIDTH = "sidebarWidth", e.CURRENT_USER = "currentUser", e.DIFF_VIEW_STYLE = "DIFF_VIEW_STYLE", e.PULL_REQUEST_CREATION_OPTION = "PULL_REQUEST_CREATION_OPTION", e.PULL_REQUEST_ACTIVITY_ORDER = "PULL_REQUEST_ACTIVITY_ORDER", e))(Z || {});
|
|
268
268
|
function z(e, n) {
|
|
269
|
-
const [r, t] =
|
|
269
|
+
const [r, t] = L(() => {
|
|
270
270
|
try {
|
|
271
271
|
const o = localStorage.getItem(e);
|
|
272
272
|
return o ? JSON.parse(o) : n;
|
|
@@ -317,30 +317,30 @@ function sn({
|
|
|
317
317
|
const t = I(
|
|
318
318
|
() => r ?? n.map((u) => u.value),
|
|
319
319
|
[r, n]
|
|
320
|
-
), [a, o] = z(e, t), c = I(() => new Set(n.map((u) => u.value)), [n]),
|
|
320
|
+
), [a, o] = z(e, t), c = I(() => new Set(n.map((u) => u.value)), [n]), s = I(
|
|
321
321
|
() => a.filter((u) => c.has(u)),
|
|
322
322
|
[a, c]
|
|
323
323
|
);
|
|
324
324
|
h(() => {
|
|
325
|
-
(
|
|
326
|
-
}, [
|
|
327
|
-
const
|
|
325
|
+
(s.length !== a.length || s.some((d, l) => d !== a[l])) && o(s);
|
|
326
|
+
}, [s, a, o]);
|
|
327
|
+
const i = E(
|
|
328
328
|
(u, d) => {
|
|
329
329
|
if (d) {
|
|
330
|
-
const l =
|
|
330
|
+
const l = s.includes(u) ? s : [...s, u];
|
|
331
331
|
o(l);
|
|
332
332
|
} else {
|
|
333
|
-
const l =
|
|
333
|
+
const l = s.filter((p) => p !== u);
|
|
334
334
|
o(l);
|
|
335
335
|
}
|
|
336
336
|
},
|
|
337
|
-
[
|
|
338
|
-
), f =
|
|
337
|
+
[s, o]
|
|
338
|
+
), f = E(() => {
|
|
339
339
|
o(t);
|
|
340
340
|
}, [o, t]);
|
|
341
341
|
return {
|
|
342
|
-
visibleColumns:
|
|
343
|
-
toggleColumn:
|
|
342
|
+
visibleColumns: s,
|
|
343
|
+
toggleColumn: i,
|
|
344
344
|
resetColumns: f
|
|
345
345
|
};
|
|
346
346
|
}
|
|
@@ -349,7 +349,7 @@ function cn() {
|
|
|
349
349
|
return typeof document.hidden < "u" ? (e = "hidden", n = "visibilitychange") : typeof document.msHidden < "u" ? (e = "msHidden", n = "msvisibilitychange") : typeof document.webkitHidden < "u" && (e = "webkitHidden", n = "webkitvisibilitychange"), { hidden: e, visibilityChange: n };
|
|
350
350
|
}
|
|
351
351
|
function ee() {
|
|
352
|
-
const [e, n] =
|
|
352
|
+
const [e, n] = L(!0);
|
|
353
353
|
return h(() => {
|
|
354
354
|
const { hidden: r, visibilityChange: t } = cn();
|
|
355
355
|
function a() {
|
|
@@ -370,32 +370,32 @@ function ln(e, {
|
|
|
370
370
|
inactiveTabPollingInterval: t = fn,
|
|
371
371
|
pollOnInactiveTab: a = !1
|
|
372
372
|
}) {
|
|
373
|
-
const o =
|
|
373
|
+
const o = T(e), [c, s] = L(!1), i = ee(), f = i ? r : t;
|
|
374
374
|
return re(() => {
|
|
375
375
|
o.current = e;
|
|
376
376
|
}, [e]), h(() => {
|
|
377
|
-
if (n && !(!
|
|
377
|
+
if (n && !(!i && !a) && !c) {
|
|
378
378
|
const u = setTimeout(async () => {
|
|
379
379
|
var d;
|
|
380
|
-
|
|
380
|
+
s(!0);
|
|
381
381
|
try {
|
|
382
382
|
await ((d = o.current) == null ? void 0 : d.call(o));
|
|
383
383
|
} finally {
|
|
384
|
-
|
|
384
|
+
s(!1);
|
|
385
385
|
}
|
|
386
386
|
}, f);
|
|
387
387
|
return () => clearTimeout(u);
|
|
388
388
|
}
|
|
389
|
-
}, [f, c, a, n,
|
|
389
|
+
}, [f, c, a, n, i]), c;
|
|
390
390
|
}
|
|
391
391
|
function dn(e) {
|
|
392
392
|
const n = e.match(/lch\(\s*([\d.]+)\s+([\d.]+)\s+([\d.]+)\s*\)/i);
|
|
393
393
|
if (!n) return;
|
|
394
|
-
const r = parseFloat(n[1]), t = parseFloat(n[2]), o = parseFloat(n[3]) * Math.PI / 180, c = Math.cos(o) * t,
|
|
395
|
-
let
|
|
394
|
+
const r = parseFloat(n[1]), t = parseFloat(n[2]), o = parseFloat(n[3]) * Math.PI / 180, c = Math.cos(o) * t, s = Math.sin(o) * t;
|
|
395
|
+
let i = (r + 16) / 116, f = c / 500 + i, u = i - s / 200;
|
|
396
396
|
const d = (m) => m ** 3 > 8856e-6 ? m ** 3 : (m - 16 / 116) / 7.787;
|
|
397
|
-
f = d(f) * 0.95047,
|
|
398
|
-
let l = 3.2406 * f - 1.5372 *
|
|
397
|
+
f = d(f) * 0.95047, i = d(i) * 1, u = d(u) * 1.08883;
|
|
398
|
+
let l = 3.2406 * f - 1.5372 * i - 0.4986 * u, p = -0.9689 * f + 1.8758 * i + 0.0415 * u, g = 0.0557 * f - 0.204 * i + 1.057 * u;
|
|
399
399
|
const v = (m) => m <= 31308e-7 ? 12.92 * m : 1.055 * Math.pow(m, 1 / 2.4) - 0.055;
|
|
400
400
|
l = v(l), p = v(p), g = v(g);
|
|
401
401
|
const y = (m) => Math.round(Math.min(1, Math.max(0, m)) * 255).toString(16).padStart(2, "0");
|
|
@@ -407,18 +407,18 @@ function mn(e) {
|
|
|
407
407
|
const [r, t, a] = n.slice(0, 3).map(Number);
|
|
408
408
|
return "#" + [r, t, a].map((o) => o.toString(16).padStart(2, "0")).join("");
|
|
409
409
|
}
|
|
410
|
-
const
|
|
410
|
+
const O = [];
|
|
411
411
|
function gn(e) {
|
|
412
|
-
if (!
|
|
412
|
+
if (!O.some((r) => r.themeName === e)) {
|
|
413
413
|
const r = document.createElement("div");
|
|
414
414
|
document.body.appendChild(r);
|
|
415
415
|
const t = P(vn, r);
|
|
416
|
-
document.body.removeChild(r), t.base = e.indexOf("light") > -1 ? "vs" : "vs-dark",
|
|
416
|
+
document.body.removeChild(r), t.base = e.indexOf("light") > -1 ? "vs" : "vs-dark", O.push({
|
|
417
417
|
themeName: e,
|
|
418
418
|
themeData: t
|
|
419
419
|
});
|
|
420
420
|
}
|
|
421
|
-
return
|
|
421
|
+
return O;
|
|
422
422
|
}
|
|
423
423
|
function P(e, n) {
|
|
424
424
|
if (Array.isArray(e))
|
|
@@ -502,44 +502,44 @@ const vn = {
|
|
|
502
502
|
}
|
|
503
503
|
};
|
|
504
504
|
function yn(e, n = "html") {
|
|
505
|
-
const [r, t] =
|
|
505
|
+
const [r, t] = L(void 0);
|
|
506
506
|
return h(() => {
|
|
507
507
|
if (!e) return;
|
|
508
508
|
let a = 0;
|
|
509
509
|
const o = 5, c = 100;
|
|
510
|
-
let
|
|
511
|
-
const
|
|
510
|
+
let s;
|
|
511
|
+
const i = () => {
|
|
512
512
|
a++;
|
|
513
513
|
const u = document.querySelector(n);
|
|
514
514
|
return u ? u.className.includes(e) ? (t({
|
|
515
515
|
defaultTheme: e,
|
|
516
516
|
themes: gn(e)
|
|
517
|
-
}),
|
|
517
|
+
}), s && clearInterval(s), !0) : (a >= o && s && clearInterval(s), !1) : !1;
|
|
518
518
|
};
|
|
519
|
-
return
|
|
520
|
-
|
|
519
|
+
return i() || (s = window.setInterval(i, c)), () => {
|
|
520
|
+
s && clearInterval(s);
|
|
521
521
|
};
|
|
522
522
|
}, [n, e]), r;
|
|
523
523
|
}
|
|
524
524
|
const M = "data-theme-loader", x = "cn-on-demand-theme", ne = `link[${M}="${x}"]`;
|
|
525
|
-
function
|
|
525
|
+
function R() {
|
|
526
526
|
document.querySelectorAll(ne).forEach((e) => e.remove());
|
|
527
527
|
}
|
|
528
528
|
function hn(e, n) {
|
|
529
|
-
return { loadTheme:
|
|
529
|
+
return { loadTheme: E(
|
|
530
530
|
(t) => {
|
|
531
531
|
const a = te(t), o = document.querySelectorAll(ne);
|
|
532
532
|
if (!a)
|
|
533
|
-
return
|
|
533
|
+
return R(), Promise.resolve();
|
|
534
534
|
const c = n[a];
|
|
535
535
|
if (!c) return Promise.resolve();
|
|
536
|
-
const
|
|
537
|
-
return Array.from(o).some((
|
|
536
|
+
const s = `${e}/${c}`;
|
|
537
|
+
return Array.from(o).some((i) => i.getAttribute("href") === s) ? Promise.resolve() : new Promise((i) => {
|
|
538
538
|
const f = document.createElement("link");
|
|
539
|
-
f.rel = "stylesheet", f.href =
|
|
540
|
-
|
|
539
|
+
f.rel = "stylesheet", f.href = s, f.onload = () => {
|
|
540
|
+
R(), f.setAttribute(M, x), i();
|
|
541
541
|
}, f.onerror = () => {
|
|
542
|
-
|
|
542
|
+
R(), f.setAttribute(M, x), i();
|
|
543
543
|
}, document.head.appendChild(f);
|
|
544
544
|
});
|
|
545
545
|
},
|
|
@@ -587,4 +587,4 @@ export {
|
|
|
587
587
|
hn as o,
|
|
588
588
|
Je as u
|
|
589
589
|
};
|
|
590
|
-
//# sourceMappingURL=index-
|
|
590
|
+
//# sourceMappingURL=index-BcVsw9k3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BcVsw9k3.js","sources":["../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqualWith.js","../src/hooks/use-common-filter.tsx","../src/hooks/use-deep-compare-effect.ts","../src/hooks/use-event-listener.tsx","../src/hooks/use-infinite-scroll.ts","../src/hooks/use-is-mounted.ts","../src/hooks/use-local-storage.ts","../src/hooks/use-memory-cleanup.ts","../src/hooks/use-column-filter.tsx","../src/hooks/use-tab-visible.tsx","../src/hooks/use-polling.tsx","../src/utils/color-utils.ts","../src/utils/monaco-theme-utils.ts","../src/hooks/use-monaco-theme.ts","../src/hooks/use-theme-css-loader.ts"],"sourcesContent":["import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","import { useCallback } from 'react'\n\nimport { useRouterContext } from '@/context'\nimport { isEmpty } from 'lodash-es'\n\nfunction useCommonFilter() {\n const { useSearchParams } = useRouterContext()\n const [searchParams, setSearchParams] = useSearchParams()\n\n const searchQuery = searchParams.get('query')\n\n const handleSearch = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchParams(params => {\n const latestSearchQuery = event?.target?.value\n if (!isEmpty(latestSearchQuery)) {\n params.set('query', latestSearchQuery)\n } else params.delete('query')\n\n return params\n })\n },\n [setSearchParams]\n )\n\n return {\n query: searchQuery || undefined,\n handleSearch\n }\n}\n\nexport { useCommonFilter }\n","/**\n * Based on https://github.com/contiamo/restful-react/blob/7aa3d75694f919d0317981a128b139abe163e08e/src/util/useDeepCompareEffect.ts\n */\n\nimport React, { useEffect, useMemo, useRef } from 'react'\n\nimport { isEqualWith } from 'lodash-es'\n\n/**\n * Custom version of isEqual to handle function comparison\n */\nfunction isEqual(a: unknown, b: unknown): boolean {\n return isEqualWith(a, b, (x: unknown, y: unknown): boolean | undefined => {\n // Deal with the function comparison case\n if (typeof x === 'function' && typeof y === 'function') {\n return x.toString() === y.toString()\n }\n\n // Fallback on the method\n return undefined\n })\n}\n\nfunction useDeepCompareMemoize(value: React.DependencyList): React.DependencyList | undefined {\n const ref = useRef<React.DependencyList>()\n\n if (!isEqual(value, ref.current)) {\n ref.current = value\n }\n\n return ref.current\n}\n\n/**\n * Accepts a function that contains imperative, possibly effectful code.\n *\n * This is the deepCompare version of the `React.useEffect` hooks (that is shallowed compare)\n *\n * @param effect Imperative function that can return a cleanup function\n * @param deps If present, effect will only activate if the values in the list change.\n *\n * @see https://gist.github.com/kentcdodds/fb8540a05c43faf636dd68647747b074#gistcomment-2830503\n */\nexport function useDeepCompareEffect(effect: React.EffectCallback, deps: React.DependencyList): void {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, useDeepCompareMemoize(deps))\n}\n\n/**\n * Accepts a function that contains imperative, possibly effectful code.\n *\n * This is the deepCompare version of the `React.useMemo` hooks (that is shallowed compare)\n *\n * @param effect Imperative function that can return a useMemo value\n * @param deps If present, effect will only activate if the values in the list change.\n *\n * @see https://gist.github.com/kentcdodds/fb8540a05c43faf636dd68647747b074#gistcomment-2830503\n */\nexport function useDeepCompareMemo<T>(effect: () => T, deps: React.DependencyList): T {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(effect, useDeepCompareMemoize(deps))\n}\n","import { useEffect } from 'react'\n\nexport function useEventListener<K extends keyof HTMLElementEventMap>(\n type: K,\n listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => unknown,\n element: HTMLElement = window as unknown as HTMLElement,\n options?: boolean | AddEventListenerOptions,\n parametersCheck = () => true\n) {\n useEffect(() => {\n if (parametersCheck() && element) {\n element.addEventListener(type, listener, options)\n return () => {\n element.removeEventListener(type, listener)\n }\n }\n }, [element, type, listener, options, parametersCheck])\n}\n\nexport function useCustomEventListener<T>(\n name: string,\n listener: (event: Omit<CustomEvent, 'detail'> & { detail: T }) => void,\n parametersCheck = () => true\n) {\n useEventListener(\n name as keyof HTMLElementEventMap,\n listener as (event: Event) => void,\n window as unknown as HTMLElement,\n false,\n parametersCheck\n )\n}\n\nexport function dispatchCustomEvent<T>(name: string, detail: T) {\n window.dispatchEvent(new CustomEvent(name, { detail }))\n}\n","import { useCallback, useEffect, useRef } from 'react'\n\nexport interface UseInfiniteScrollOptions {\n /** Callback when sentinel becomes visible */\n onLoadMore: () => void | Promise<void>\n /** Whether more items are available */\n hasMore: boolean\n /** Prevents duplicate calls while loading */\n isLoading?: boolean\n /** Enable/disable the hook */\n enabled?: boolean\n /** Root margin for early triggering (default: \"100px\") */\n rootMargin?: string\n /** Intersection threshold 0-1 (default: 0.1) */\n threshold?: number\n}\n\nexport interface UseInfiniteScrollReturn {\n /** Ref to attach to sentinel element at end of list */\n sentinelRef: React.RefObject<HTMLDivElement>\n}\n\n/**\n * Hook for infinite scroll functionality using IntersectionObserver.\n * Triggers a callback when the sentinel element becomes visible in the viewport.\n *\n * @param options - Configuration options for infinite scroll behavior\n * @returns Object containing the sentinel ref to attach to a trigger element\n *\n * @example\n * ```tsx\n * function MyList() {\n * const { data, fetchNextPage, hasNextPage, isFetching } = useInfiniteQuery(...)\n *\n * const { sentinelRef } = useInfiniteScroll({\n * onLoadMore: fetchNextPage,\n * hasMore: hasNextPage ?? false,\n * isLoading: isFetching,\n * rootMargin: '200px'\n * })\n *\n * return (\n * <ScrollArea>\n * {data.pages.flat().map(item => <ListItem key={item.id} {...item} />)}\n * <div ref={sentinelRef} />\n * </ScrollArea>\n * )\n * }\n * ```\n */\nexport function useInfiniteScroll({\n onLoadMore,\n hasMore,\n isLoading = false,\n enabled = true,\n rootMargin = '100px',\n threshold = 0.1\n}: UseInfiniteScrollOptions): UseInfiniteScrollReturn {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n\n // Keep callback ref updated to avoid stale closures\n useEffect(() => {\n loadMoreRef.current = onLoadMore\n }, [onLoadMore])\n\n const handleIntersection = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const [entry] = entries\n if (entry?.isIntersecting && hasMore && !isLoading) {\n loadMoreRef.current()\n }\n },\n [hasMore, isLoading]\n )\n\n useEffect(() => {\n const sentinel = sentinelRef.current\n\n if (!sentinel || !enabled || !hasMore) {\n return\n }\n\n const observer = new IntersectionObserver(handleIntersection, {\n rootMargin,\n threshold\n })\n\n observer.observe(sentinel)\n\n return () => {\n observer.disconnect()\n }\n }, [enabled, hasMore, handleIntersection, rootMargin, threshold])\n\n return { sentinelRef }\n}\n","import { useEffect, useRef } from 'react'\n\nexport const useIsMounted = () => {\n const isMounted = useRef(false)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n return isMounted\n}\n","import { useState } from 'react'\n\nexport enum UserPreference {\n SPACE_ID = 'spaceId',\n SIDEBAR_WIDTH = 'sidebarWidth',\n CURRENT_USER = 'currentUser',\n DIFF_VIEW_STYLE = 'DIFF_VIEW_STYLE',\n PULL_REQUEST_CREATION_OPTION = 'PULL_REQUEST_CREATION_OPTION',\n PULL_REQUEST_ACTIVITY_ORDER = 'PULL_REQUEST_ACTIVITY_ORDER'\n}\n\nexport function useLocalStorage<T>(key: UserPreference | string, initialValue: T) {\n // Initialize state from localStorage or fallback to initialValue\n const [storedValue, setStoredValue] = useState<T>(() => {\n try {\n const item = localStorage.getItem(key)\n return item ? JSON.parse(item) : initialValue\n } catch (error) {\n console.error('Error reading from localStorage:', error)\n return initialValue\n }\n })\n\n // Update both state and localStorage\n const setValue = (value: T) => {\n try {\n setStoredValue(value)\n localStorage.setItem(key, JSON.stringify(value))\n } catch (error) {\n console.error('Error writing to localStorage:', error)\n }\n }\n\n return [storedValue, setValue] as const\n}\n","import { useEffect } from 'react'\n\n// Note: This is a Chrome-only API\ninterface MemoryInfo {\n usedJSHeapSize: number\n totalJSHeapSize: number\n jsHeapSizeLimit: number\n}\n\ninterface ExtendedPerformance extends Performance {\n memory?: MemoryInfo\n}\n\ndeclare global {\n interface Window {\n performance: ExtendedPerformance\n }\n}\n\nconst BYTES_TO_MB = 1024 * 1024\n\n/**\n * Checks if the browser supports performance.memory API\n */\nconst hasMemoryAPI = (): boolean => {\n try {\n return !!(window.performance && window.performance.memory)\n } catch {\n return false\n }\n}\n\n/**\n * Gets the current memory usage in MB if available\n */\nconst getMemoryUsage = (): number | null => {\n try {\n if (!hasMemoryAPI()) return null\n\n const memoryInfo = window.performance.memory\n if (!memoryInfo) return null\n\n return Math.round(memoryInfo.usedJSHeapSize / BYTES_TO_MB)\n } catch {\n return null\n }\n}\n\n/**\n * Hook to monitor memory usage and run cleanup when threshold is exceeded\n * Note: Memory monitoring only works in Chromium-based browsers\n * @param cleanupFn Function to run when memory threshold is exceeded\n * @param threshold Memory threshold in MB\n * @param interval Check interval in ms\n */\nexport const useMemoryCleanup = (cleanupFn: () => void, threshold = 1200, interval = 30000) => {\n useEffect(() => {\n if (!hasMemoryAPI()) {\n console.debug('Memory API not available - memory cleanup disabled')\n return\n }\n\n const checkMemory = () => {\n const usedMemory = getMemoryUsage()\n\n if (usedMemory !== null && usedMemory > threshold) {\n console.debug(`Memory usage (${usedMemory}MB) exceeded threshold (${threshold}MB). Running cleanup...`)\n cleanupFn()\n }\n }\n\n const intervalId = setInterval(checkMemory, interval)\n return () => clearInterval(intervalId)\n }, [cleanupFn, threshold, interval])\n}\n","import { useCallback, useEffect, useMemo } from 'react'\n\nimport { CheckboxOptions } from '@/components'\n\nimport { useLocalStorage } from './use-local-storage'\n\ninterface UseColumnFilterProps {\n /**\n * Unique key for localStorage persistence\n */\n storageKey: string\n /**\n * Available columns configuration\n */\n columns: CheckboxOptions[]\n /**\n * Default visible columns (used when no localStorage value exists)\n */\n defaultVisibleColumns?: string[]\n}\n\ninterface UseColumnFilterReturn {\n /**\n * Currently visible column identifiers\n */\n visibleColumns: string[]\n /**\n * Toggle visibility of a specific column\n */\n toggleColumn: (columnName: string, checked: boolean) => void\n /**\n * Reset to default visible columns\n */\n resetColumns: () => void\n}\n\n/**\n * Hook that manages column visibility state with localStorage persistence\n * and returns a pre-configured DataTableColumnFilterDropdown component.\n *\n * @example\n * ```tsx\n * const columns = [\n * { label: 'Name', value: 'name' },\n * { label: 'Email', value: 'email' },\n * { label: 'Status', value: 'status' }\n * ]\n *\n * const { visibleColumns, toggleColumn, resetColumns } = useColumnFilter({\n * storageKey: 'users-table-columns',\n * columns,\n * defaultVisibleColumns: ['name', 'email']\n * })\n *\n * return (\n * <div>\n * <DataTable.ColumnFilter\n * columns={columns}\n * visibleColumns={visibleColumns}\n * onCheckedChange={toggleColumn}\n * onReset={resetColumns}\n * />\n * <DataTable columns={columns} visibleColumns={visibleColumns} />\n * </div>\n * )\n * ```\n */\nexport function useColumnFilter({\n storageKey,\n columns,\n defaultVisibleColumns\n}: UseColumnFilterProps): UseColumnFilterReturn {\n // Initialize default visible columns (all columns if not specified)\n const defaultColumns = useMemo(\n () => defaultVisibleColumns ?? columns.map(col => col.value),\n [defaultVisibleColumns, columns]\n )\n\n // Persist visible columns in localStorage\n const [storedVisibleColumns, setVisibleColumns] = useLocalStorage<string[]>(storageKey, defaultColumns)\n\n // Filter out any columns that don't exist in the current columns array\n const validColumnValues = useMemo(() => new Set(columns.map(col => col.value)), [columns])\n const visibleColumns = useMemo(\n () => storedVisibleColumns.filter(col => validColumnValues.has(col)),\n [storedVisibleColumns, validColumnValues]\n )\n\n // Sync cleaned column list back to localStorage if it changed\n useEffect(() => {\n const hasChanged =\n visibleColumns.length !== storedVisibleColumns.length ||\n visibleColumns.some((col, idx) => col !== storedVisibleColumns[idx])\n if (hasChanged) {\n setVisibleColumns(visibleColumns)\n }\n }, [visibleColumns, storedVisibleColumns, setVisibleColumns])\n\n // Toggle column visibility\n const toggleColumn = useCallback(\n (columnName: string, checked: boolean) => {\n if (checked) {\n // Add column if not already present\n const newColumns = visibleColumns.includes(columnName) ? visibleColumns : [...visibleColumns, columnName]\n setVisibleColumns(newColumns)\n } else {\n // Remove column\n const newColumns = visibleColumns.filter(col => col !== columnName)\n setVisibleColumns(newColumns)\n }\n },\n [visibleColumns, setVisibleColumns]\n )\n\n // Reset to default columns\n const resetColumns = useCallback(() => {\n setVisibleColumns(defaultColumns)\n }, [setVisibleColumns, defaultColumns])\n\n return {\n visibleColumns,\n toggleColumn,\n resetColumns\n }\n}\n","import { useEffect, useState } from 'react'\n\nfunction getVisiblePropEvent(): { hidden?: string; visibilityChange?: string } {\n // Set the name of the hidden property and the change event for visibility\n let hidden: string | undefined = undefined\n let visibilityChange: string | undefined = undefined\n if (typeof document.hidden !== 'undefined') {\n // Opera 12.10 and Firefox 18 and later support\n hidden = 'hidden'\n visibilityChange = 'visibilitychange'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } else if (typeof (document as any).msHidden !== 'undefined') {\n hidden = 'msHidden'\n visibilityChange = 'msvisibilitychange'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } else if (typeof (document as any).webkitHidden !== 'undefined') {\n hidden = 'webkitHidden'\n visibilityChange = 'webkitvisibilitychange'\n }\n return { hidden, visibilityChange }\n}\n\n/**\n * Hook to detect if the current browser tab is visible or hidden.\n * Uses the Page Visibility API to track tab visibility changes.\n *\n * @returns boolean - true if tab is visible, false if hidden\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const isTabVisible = useTabVisible()\n *\n * useEffect(() => {\n * if (isTabVisible) {\n * // Resume operations when tab becomes visible\n * } else {\n * // Pause operations when tab is hidden\n * }\n * }, [isTabVisible])\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API\n */\nexport function useTabVisible(): boolean {\n const [visible, setVisibility] = useState<boolean>(true)\n\n useEffect(() => {\n const { hidden, visibilityChange } = getVisiblePropEvent()\n\n function handleVisibilityChange(): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (hidden && (document as any)[hidden]) {\n setVisibility(false)\n } else {\n setVisibility(true)\n }\n }\n\n if (\n typeof document.addEventListener === 'undefined' ||\n typeof hidden === 'undefined' ||\n typeof visibilityChange === 'undefined'\n ) {\n console.warn('The Page Visibility API is not supported')\n } else {\n // Handle page visibility change\n document.addEventListener(visibilityChange, handleVisibilityChange, false)\n return () => {\n document.removeEventListener(visibilityChange, handleVisibilityChange, false)\n }\n }\n }, [])\n\n return visible\n}\n","import { useEffect, useLayoutEffect, useRef, useState } from 'react'\n\nimport { useTabVisible } from './use-tab-visible'\n\nconst DEFAULT_POLLING_INTERVAL_IN_MS = 30_000\nconst INACTIVE_TAB_POLLING_INTERVAL_IN_MS = 60_000\n\nexport interface UsePollingOptions {\n /**\n * Polling interval in milliseconds when tab is active\n * @default 30000 (30 seconds)\n */\n pollingInterval?: number\n /**\n * Start polling based on a condition\n * @example Poll only on first page\n * @default false\n */\n startPolling?: boolean\n /**\n * Polling interval in milliseconds when tab is inactive\n * @default 60000 (60 seconds)\n */\n inactiveTabPollingInterval?: number\n /**\n * Enable polling even on inactive tabs with inactiveTabPollingInterval\n * Use with caution - needs a stop condition from userland\n * @default false\n */\n pollOnInactiveTab?: boolean\n}\n\n/**\n * Hook for polling with smart tab visibility handling.\n * Automatically adjusts polling interval based on tab visibility and ensures\n * only one request is in flight at a time.\n *\n * @param callback - Promise-returning function to be called at each polling interval (e.g., refetch)\n * @param options - Polling configuration options\n * @returns boolean - true if currently polling, false otherwise\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { refetch } = useQuery(...)\n *\n * const isPolling = usePolling(refetch, {\n * startPolling: true,\n * pollingInterval: 10000, // 10 seconds\n * pollOnInactiveTab: false\n * })\n *\n * return <div>{isPolling ? 'Polling...' : 'Idle'}</div>\n * }\n * ```\n *\n * @remarks\n * - Remembers last call and re-polls only after it's resolved\n * - Automatically pauses polling when tab is inactive (unless pollOnInactiveTab is true)\n * - Uses longer interval for inactive tabs to reduce resource usage\n */\nexport function usePolling(\n callback: () => Promise<void> | undefined,\n {\n startPolling = false,\n pollingInterval = DEFAULT_POLLING_INTERVAL_IN_MS,\n inactiveTabPollingInterval = INACTIVE_TAB_POLLING_INTERVAL_IN_MS,\n pollOnInactiveTab = false\n }: UsePollingOptions\n): boolean {\n const savedCallback = useRef(callback)\n const [isPolling, setIsPolling] = useState(false)\n const tabVisible = useTabVisible()\n const interval = tabVisible ? pollingInterval : inactiveTabPollingInterval\n\n // Remember the latest callback if it changes.\n useLayoutEffect(() => {\n savedCallback.current = callback\n }, [callback])\n\n useEffect(() => {\n // Poll only if polling condition from component is met\n if (!startPolling) return\n // Poll only if tab is visible OR pollOnInactiveTab is true\n if (!tabVisible && !pollOnInactiveTab) return\n\n // Poll only when the current request is resolved\n if (!isPolling) {\n const timerId = setTimeout(async () => {\n setIsPolling(true)\n try {\n await savedCallback.current?.()\n } finally {\n setIsPolling(false)\n }\n }, interval)\n\n return () => clearTimeout(timerId)\n }\n }, [interval, isPolling, pollOnInactiveTab, startPolling, tabVisible])\n\n return isPolling\n}\n","export function lchToHex(lch: string): string | undefined {\n const match = lch.match(/lch\\(\\s*([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\s*\\)/i)\n if (!match) return undefined\n\n const L = parseFloat(match[1])\n const C = parseFloat(match[2])\n const Hdeg = parseFloat(match[3])\n\n // LCH → LAB\n const H = (Hdeg * Math.PI) / 180\n const a = Math.cos(H) * C\n const b = Math.sin(H) * C\n\n // LAB → XYZ (D65)\n let y = (L + 16) / 116\n let x = a / 500 + y\n let z = y - b / 200\n\n const labToXyz = (n: number) => (n ** 3 > 0.008856 ? n ** 3 : (n - 16 / 116) / 7.787)\n\n x = labToXyz(x) * 0.95047\n y = labToXyz(y) * 1.0\n z = labToXyz(z) * 1.08883\n\n // XYZ → linear RGB\n let r = 3.2406 * x - 1.5372 * y - 0.4986 * z\n let g = -0.9689 * x + 1.8758 * y + 0.0415 * z\n let bVal = 0.0557 * x - 0.204 * y + 1.057 * z\n\n // Gamma correction\n const gamma = (c: number) => (c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055)\n\n r = gamma(r)\n g = gamma(g)\n bVal = gamma(bVal)\n\n // Clamp + convert to hex\n const toHex = (c: number) =>\n Math.round(Math.min(1, Math.max(0, c)) * 255)\n .toString(16)\n .padStart(2, '0')\n\n return `#${toHex(r)}${toHex(g)}${toHex(bVal)}`\n}\n\nexport function rgbToHex(colorRgb: string): string | undefined {\n const match = colorRgb.match(/\\d+/g)\n if (!match || match.length < 3) return undefined\n\n const [r, g, b] = match.slice(0, 3).map(Number)\n\n return `#` + [r, g, b].map(x => x.toString(16).padStart(2, '0')).join('')\n}\n","import { editor } from 'monaco-editor'\n\nimport { ThemeDefinition } from '@harnessio/yaml-editor'\n\nimport { lchToHex, rgbToHex } from './color-utils'\n\n/** cache for monaco themes, we crate theme only once */\nconst monacoThemeCache: ThemeDefinition[] = []\n\n/**\n * IMPORTANT:\n * it is important to call function with current theme\n * as the variables names are same for all themes,\n * only the values are different depend on the theme\n */\nexport function getMonacoThemes(currentTheme: string) {\n const exist = monacoThemeCache.some(theme => {\n return theme.themeName === currentTheme\n })\n\n if (!exist) {\n const el = document.createElement('div')\n document.body.appendChild(el)\n const themeData = replaceVarsWithHex(themeWithVariables, el)\n document.body.removeChild(el)\n\n themeData.base = currentTheme.indexOf('light') > -1 ? 'vs' : 'vs-dark'\n\n monacoThemeCache.push({\n themeName: currentTheme,\n themeData\n })\n }\n\n return monacoThemeCache\n}\n\nfunction replaceVarsWithHex<T>(obj: T, el: HTMLElement): T {\n if (Array.isArray(obj)) {\n return obj.map(item => replaceVarsWithHex(item, el)) as unknown as T\n } else if (obj && typeof obj === 'object') {\n const result: Partial<T> = {}\n for (const key in obj) {\n result[key] = replaceVarsWithHex((obj as any)[key], el)\n }\n return result as T\n } else if (typeof obj === 'string' && obj.trim().startsWith('var(')) {\n return cssVarToHex(obj, el) as unknown as T\n } else {\n return obj\n }\n}\n\nfunction cssVarToHex(varName: string, el: HTMLElement) {\n el.style.color = `${varName}`\n const colorRgbOrLch = getComputedStyle(el).color\n\n const rgb = lchToHex(colorRgbOrLch)\n if (rgb) {\n return rgb\n }\n\n return rgbToHex(colorRgbOrLch)\n}\n\nexport const themeWithVariables = {\n base: 'vs' as editor.BuiltinTheme,\n inherit: false,\n rules: [\n { token: '', foreground: 'var(--cn-comp-monaco-foreground)', background: 'var(--cn-comp-monaco-background)' },\n\n { token: 'invalid', foreground: 'var(--cn-comp-monaco-invalid-text)' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n\n { token: 'variable', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'variable.predefined', foreground: 'var(--cn-comp-monaco-constant)' },\n { token: 'constant', foreground: 'var(--cn-comp-monaco-constant)' },\n\n { token: 'comment', foreground: 'var(--cn-comp-monaco-comment)' },\n\n { token: 'number', foreground: 'var(--cn-comp-monaco-number)' },\n { token: 'number.hex', foreground: 'var(--cn-comp-monaco-number)' },\n\n { token: 'regexp', foreground: 'var(--cn-comp-monaco-constant)' },\n { token: 'annotation', foreground: 'var(--cn-comp-monaco-constant)' },\n { token: 'type', foreground: 'var(--cn-comp-monaco-tag)' },\n\n { token: 'delimiter', foreground: 'var(--cn-comp-monaco-delimiter)' },\n { token: 'delimiter.html', foreground: 'var(--cn-comp-monaco-delimiter)' },\n { token: 'delimiter.xml', foreground: 'var(--cn-comp-monaco-delimiter)' },\n\n { token: 'tag', foreground: 'var(--cn-comp-monaco-anchor)' },\n { token: 'tag.id.pug', foreground: 'var(--cn-comp-monaco-tag)' },\n { token: 'tag.class.pug', foreground: 'var(--cn-comp-monaco-tag)' },\n { token: 'meta.scss', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'metatag', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'metatag.content.html', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'metatag.html', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'metatag.xml', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'metatag.php', fontStyle: 'bold' },\n\n { token: 'key', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'string.key.json', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'string.value.json', foreground: 'var(--cn-comp-monaco-string)' },\n\n { token: 'attribute.name', foreground: 'var(--cn-comp-monaco-key)' },\n { token: 'attribute.value', foreground: 'var(--cn-comp-monaco-string)' },\n { token: 'attribute.value.number', foreground: 'var(--cn-comp-monaco-number)' },\n { token: 'attribute.value.unit', foreground: 'var(--cn-comp-monaco-number)' },\n { token: 'attribute.value.html', foreground: 'var(--cn-comp-monaco-string)' },\n { token: 'attribute.value.xml', foreground: 'var(--cn-comp-monaco-string)' },\n\n { token: 'string', foreground: 'var(--cn-comp-monaco-string)' },\n { token: 'string.html', foreground: 'var(--cn-comp-monaco-string)' },\n { token: 'string.sql', foreground: 'var(--cn-comp-monaco-string)' },\n { token: 'string.yaml', foreground: 'var(--cn-comp-monaco-string)' },\n\n { token: 'keyword', foreground: 'var(--cn-comp-monaco-boolean)' },\n { token: 'keyword.json', foreground: 'var(--cn-comp-monaco-boolean)' },\n { token: 'keyword.flow', foreground: 'var(--cn-comp-monaco-boolean)' },\n { token: 'keyword.flow.scss', foreground: 'var(--cn-comp-monaco-boolean)' },\n\n { token: 'operator.scss', foreground: 'var(--cn-comp-monaco-delimiter)' },\n { token: 'operator.sql', foreground: 'var(--cn-comp-monaco-delimiter)' },\n { token: 'operator.swift', foreground: 'var(--cn-comp-monaco-delimiter)' },\n { token: 'predefined.sql', foreground: 'var(--cn-comp-monaco-constant)' }\n ],\n\n colors: {\n 'editor.background': 'var(--cn-comp-monaco-background)',\n 'editor.foreground': 'var(--cn-comp-monaco-foreground)',\n 'editor.selectionBackground': 'var(--cn-comp-monaco-selection)',\n 'editor.lineHighlightBackground': 'var(--cn-comp-monaco-line-highlight)',\n 'editorCursor.foreground': 'var(--cn-comp-monaco-cursor)',\n 'editorWhitespace.foreground': 'var(--cn-comp-monaco-whitespace)',\n 'editorLineNumber.foreground': 'var(--cn-comp-monaco-line-number)',\n 'editorLineNumber.activeForeground': 'var(--cn-comp-monaco-foreground)',\n 'editorIndentGuide.background': 'var(--cn-comp-monaco-indent-guide)',\n 'editorIndentGuide.activeBackground': 'var(--cn-comp-monaco-indent-guide-active)',\n 'editorError.background': 'var(--cn-comp-monaco-invalid-bg)',\n 'editorError.foreground': 'var(--cn-comp-monaco-invalid-text)'\n }\n}\n","import { useEffect, useState } from 'react'\n\nimport { getMonacoThemes } from '@utils/monaco-theme-utils'\n\nimport { YamlEditorProps } from '@harnessio/yaml-editor'\n\ntype ThemeConfig = YamlEditorProps<unknown>['themeConfig']\n\nexport function useMonacoTheme(theme?: string, rootSelector = 'html'): ThemeConfig {\n const [themeConfig, setThemeConfig] = useState<ThemeConfig>(undefined)\n\n useEffect(() => {\n if (!theme) return\n\n let attempts = 0\n const maxAttempts = 5\n const intervalMs = 100\n let intervalId: number | undefined\n\n const tryApplyTheme = () => {\n attempts++\n\n const rootEl = document.querySelector(rootSelector)\n if (!rootEl) return false\n\n const htmlClass = rootEl.className\n const hasThemeClass = htmlClass.includes(theme)\n\n if (hasThemeClass) {\n setThemeConfig({\n defaultTheme: theme,\n themes: getMonacoThemes(theme)\n })\n\n if (intervalId) {\n clearInterval(intervalId)\n }\n\n return true\n }\n\n if (attempts >= maxAttempts) {\n if (intervalId) {\n clearInterval(intervalId)\n }\n }\n\n return false\n }\n\n // Execute immediately\n const appliedImmediately = tryApplyTheme()\n\n // Poll if not execute immediately\n if (!appliedImmediately) {\n intervalId = window.setInterval(tryApplyTheme, intervalMs)\n }\n\n return () => {\n if (intervalId) {\n clearInterval(intervalId)\n }\n }\n }, [rootSelector, theme])\n\n return themeConfig\n}\n","import { useCallback } from 'react'\n\nimport { getThemeCSSName, type FullTheme } from '@/context/theme/types'\n\nexport type ThemeManifest = Record<string, string>\n\nconst THEME_ATTR = 'data-theme-loader'\nconst THEME_ATTR_VALUE = 'cn-on-demand-theme'\nconst SELECTOR = `link[${THEME_ATTR}=\"${THEME_ATTR_VALUE}\"]`\n\nfunction removeAllThemeLinks(): void {\n document.querySelectorAll(SELECTOR).forEach(el => el.remove())\n}\n\nexport function useThemeCSSLoader(themesBasePath: string, manifest: ThemeManifest) {\n const loadTheme = useCallback(\n (theme: FullTheme): Promise<void> => {\n const cssName = getThemeCSSName(theme)\n const existingLinks = document.querySelectorAll(SELECTOR) as NodeListOf<HTMLLinkElement>\n\n /**\n * dark-std-std, light-std-std themes are already bundled, so no need to load them\n */\n if (!cssName) {\n removeAllThemeLinks()\n return Promise.resolve()\n }\n\n const filename = manifest[cssName]\n if (!filename) return Promise.resolve()\n\n const href = `${themesBasePath}/${filename}`\n\n if (Array.from(existingLinks).some(link => link.getAttribute('href') === href)) {\n return Promise.resolve()\n }\n\n return new Promise<void>(resolve => {\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = href\n\n link.onload = () => {\n removeAllThemeLinks()\n link.setAttribute(THEME_ATTR, THEME_ATTR_VALUE)\n resolve()\n }\n\n link.onerror = () => {\n removeAllThemeLinks()\n link.setAttribute(THEME_ATTR, THEME_ATTR_VALUE)\n resolve()\n }\n\n document.head.appendChild(link)\n })\n },\n [themesBasePath, manifest]\n )\n\n return { loadTheme }\n}\n"],"names":["keys","object","isArrayLike","arrayLikeKeys","baseKeys","getAllKeys","baseGetAllKeys","getSymbols","HASH_UNDEFINED","setCacheAdd","value","setCacheHas","SetCache","values","index","length","MapCache","arraySome","array","predicate","cacheHas","cache","key","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","other","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","result","seen","arrValue","othValue","compared","othIndex","mapToArray","map","setToArray","set","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","Symbol","symbolValueOf","equalByTag","tag","Uint8Array","eq","convert","stacked","objectProto","hasOwnProperty","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","argsTag","arrayTag","objectTag","baseIsEqualDeep","objIsArr","isArray","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","isBuffer","Stack","isTypedArray","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","isObjectLike","isEqualWith","useCommonFilter","useSearchParams","useRouterContext","searchParams","setSearchParams","searchQuery","handleSearch","useCallback","event","params","latestSearchQuery","_a","isEmpty","isEqual","a","b","x","y","useDeepCompareMemoize","ref","useRef","useDeepCompareEffect","effect","deps","useEffect","useDeepCompareMemo","useMemo","useEventListener","type","listener","element","options","parametersCheck","useCustomEventListener","name","dispatchCustomEvent","detail","useInfiniteScroll","onLoadMore","hasMore","isLoading","enabled","rootMargin","threshold","sentinelRef","loadMoreRef","handleIntersection","entries","entry","sentinel","observer","useIsMounted","isMounted","UserPreference","useLocalStorage","initialValue","storedValue","setStoredValue","useState","item","error","BYTES_TO_MB","hasMemoryAPI","getMemoryUsage","memoryInfo","useMemoryCleanup","cleanupFn","interval","intervalId","usedMemory","useColumnFilter","storageKey","columns","defaultVisibleColumns","defaultColumns","col","storedVisibleColumns","setVisibleColumns","validColumnValues","visibleColumns","idx","toggleColumn","columnName","checked","newColumns","resetColumns","getVisiblePropEvent","hidden","visibilityChange","useTabVisible","visible","setVisibility","handleVisibilityChange","DEFAULT_POLLING_INTERVAL_IN_MS","INACTIVE_TAB_POLLING_INTERVAL_IN_MS","usePolling","callback","startPolling","pollingInterval","inactiveTabPollingInterval","pollOnInactiveTab","savedCallback","isPolling","setIsPolling","tabVisible","useLayoutEffect","timerId","lchToHex","lch","match","L","C","H","z","labToXyz","n","r","g","bVal","gamma","c","toHex","rgbToHex","colorRgb","monacoThemeCache","getMonacoThemes","currentTheme","theme","el","themeData","replaceVarsWithHex","themeWithVariables","obj","cssVarToHex","varName","colorRgbOrLch","rgb","useMonacoTheme","rootSelector","themeConfig","setThemeConfig","attempts","maxAttempts","intervalMs","tryApplyTheme","rootEl","THEME_ATTR","THEME_ATTR_VALUE","SELECTOR","removeAllThemeLinks","useThemeCSSLoader","themesBasePath","manifest","cssName","getThemeCSSName","existingLinks","filename","href","link","resolve"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}
|