@aiquants/menu-bar 1.17.9 → 1.18.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/MenuBar.d.ts +27 -22
- package/dist/__tests__/pinEvent.test.d.ts +1 -0
- package/dist/contents/MenuContent.d.ts +0 -9
- package/dist/events/pinEvent.d.ts +44 -0
- package/dist/hooks/useMenuPinState.d.ts +21 -0
- package/dist/index.d.ts +19 -4
- package/dist/index.es.js +530 -405
- package/dist/index.umd.js +2 -2
- package/dist/styles/menu-bar.css +1 -1
- package/dist/styles/menu-bar.standalone.css +1 -1
- package/dist/types.d.ts +20 -0
- package/package.json +1 -1
- package/src/MenuBar.tsx +101 -55
- package/src/__tests__/pinEvent.test.tsx +68 -0
- package/src/components/SessionInfo.tsx +39 -23
- package/src/contents/MenuContent.tsx +12 -19
- package/src/contents/MenuList.tsx +6 -6
- package/src/elements/MenuSwitch.tsx +1 -1
- package/src/events/pinEvent.ts +129 -0
- package/src/hooks/useMenuPinState.ts +58 -0
- package/src/index.ts +27 -4
- package/src/styles/menu-bar.css +22 -29
- package/src/types.ts +23 -0
package/dist/index.es.js
CHANGED
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useLocation as
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
function
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
var n = /* @__PURE__ */ Symbol.for("react.transitional.element"),
|
|
9
|
-
function
|
|
10
|
-
var
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
for (var
|
|
14
|
-
|
|
15
|
-
} else
|
|
16
|
-
return
|
|
1
|
+
import Ee, { forwardRef as be, createElement as re, useCallback as k, useSyncExternalStore as _e, useMemo as oe, useState as J, useRef as T, useEffect as $, useLayoutEffect as xe } from "react";
|
|
2
|
+
import { useLocation as Se, Link as ge } from "react-router-dom";
|
|
3
|
+
var Z = { exports: {} }, V = {};
|
|
4
|
+
var ie;
|
|
5
|
+
function Ce() {
|
|
6
|
+
if (ie) return V;
|
|
7
|
+
ie = 1;
|
|
8
|
+
var n = /* @__PURE__ */ Symbol.for("react.transitional.element"), t = /* @__PURE__ */ Symbol.for("react.fragment");
|
|
9
|
+
function s(a, l, o) {
|
|
10
|
+
var c = null;
|
|
11
|
+
if (o !== void 0 && (c = "" + o), l.key !== void 0 && (c = "" + l.key), "key" in l) {
|
|
12
|
+
o = {};
|
|
13
|
+
for (var h in l)
|
|
14
|
+
h !== "key" && (o[h] = l[h]);
|
|
15
|
+
} else o = l;
|
|
16
|
+
return l = o.ref, {
|
|
17
17
|
$$typeof: n,
|
|
18
18
|
type: a,
|
|
19
|
-
key:
|
|
20
|
-
ref:
|
|
21
|
-
props:
|
|
19
|
+
key: c,
|
|
20
|
+
ref: l !== void 0 ? l : null,
|
|
21
|
+
props: o
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
return
|
|
24
|
+
return V.Fragment = t, V.jsx = s, V.jsxs = s, V;
|
|
25
25
|
}
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
function
|
|
29
|
-
return
|
|
26
|
+
var W = {};
|
|
27
|
+
var le;
|
|
28
|
+
function Pe() {
|
|
29
|
+
return le || (le = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
30
30
|
function n(e) {
|
|
31
31
|
if (e == null) return null;
|
|
32
32
|
if (typeof e == "function")
|
|
33
|
-
return e.$$typeof ===
|
|
33
|
+
return e.$$typeof === X ? null : e.displayName || e.name || null;
|
|
34
34
|
if (typeof e == "string") return e;
|
|
35
35
|
switch (e) {
|
|
36
36
|
case m:
|
|
37
37
|
return "Fragment";
|
|
38
38
|
case N:
|
|
39
39
|
return "Profiler";
|
|
40
|
-
case
|
|
40
|
+
case M:
|
|
41
41
|
return "StrictMode";
|
|
42
|
-
case
|
|
42
|
+
case z:
|
|
43
43
|
return "Suspense";
|
|
44
|
-
case
|
|
44
|
+
case B:
|
|
45
45
|
return "SuspenseList";
|
|
46
|
-
case
|
|
46
|
+
case Y:
|
|
47
47
|
return "Activity";
|
|
48
48
|
}
|
|
49
49
|
if (typeof e == "object")
|
|
50
50
|
switch (typeof e.tag == "number" && console.error(
|
|
51
51
|
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
52
52
|
), e.$$typeof) {
|
|
53
|
-
case
|
|
53
|
+
case i:
|
|
54
54
|
return "Portal";
|
|
55
|
-
case
|
|
55
|
+
case I:
|
|
56
56
|
return e.displayName || "Context";
|
|
57
|
-
case
|
|
57
|
+
case j:
|
|
58
58
|
return (e._context.displayName || "Context") + ".Consumer";
|
|
59
|
-
case
|
|
60
|
-
var
|
|
61
|
-
return e = e.displayName, e || (e =
|
|
62
|
-
case
|
|
63
|
-
return
|
|
64
|
-
case
|
|
65
|
-
|
|
59
|
+
case L:
|
|
60
|
+
var u = e.render;
|
|
61
|
+
return e = e.displayName, e || (e = u.displayName || u.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
|
|
62
|
+
case Q:
|
|
63
|
+
return u = e.displayName || null, u !== null ? u : n(e.type) || "Memo";
|
|
64
|
+
case D:
|
|
65
|
+
u = e._payload, e = e._init;
|
|
66
66
|
try {
|
|
67
|
-
return n(e(
|
|
67
|
+
return n(e(u));
|
|
68
68
|
} catch {
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function t(e) {
|
|
74
74
|
return "" + e;
|
|
75
75
|
}
|
|
76
|
-
function
|
|
76
|
+
function s(e) {
|
|
77
77
|
try {
|
|
78
|
-
|
|
79
|
-
var
|
|
78
|
+
t(e);
|
|
79
|
+
var u = !1;
|
|
80
80
|
} catch {
|
|
81
|
-
|
|
81
|
+
u = !0;
|
|
82
82
|
}
|
|
83
|
-
if (
|
|
84
|
-
|
|
85
|
-
var
|
|
86
|
-
return
|
|
87
|
-
|
|
83
|
+
if (u) {
|
|
84
|
+
u = console;
|
|
85
|
+
var b = u.error, g = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
86
|
+
return b.call(
|
|
87
|
+
u,
|
|
88
88
|
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
89
|
-
|
|
90
|
-
),
|
|
89
|
+
g
|
|
90
|
+
), t(e);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
function a(e) {
|
|
94
94
|
if (e === m) return "<>";
|
|
95
|
-
if (typeof e == "object" && e !== null && e.$$typeof ===
|
|
95
|
+
if (typeof e == "object" && e !== null && e.$$typeof === D)
|
|
96
96
|
return "<...>";
|
|
97
97
|
try {
|
|
98
|
-
var
|
|
99
|
-
return
|
|
98
|
+
var u = n(e);
|
|
99
|
+
return u ? "<" + u + ">" : "<...>";
|
|
100
100
|
} catch {
|
|
101
101
|
return "<...>";
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
function
|
|
105
|
-
var e =
|
|
104
|
+
function l() {
|
|
105
|
+
var e = R.A;
|
|
106
106
|
return e === null ? null : e.getOwner();
|
|
107
107
|
}
|
|
108
|
-
function
|
|
108
|
+
function o() {
|
|
109
109
|
return Error("react-stack-top-frame");
|
|
110
110
|
}
|
|
111
|
-
function
|
|
112
|
-
if (
|
|
113
|
-
var
|
|
114
|
-
if (
|
|
111
|
+
function c(e) {
|
|
112
|
+
if (F.call(e, "key")) {
|
|
113
|
+
var u = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
114
|
+
if (u && u.isReactWarning) return !1;
|
|
115
115
|
}
|
|
116
116
|
return e.key !== void 0;
|
|
117
117
|
}
|
|
118
|
-
function
|
|
119
|
-
function
|
|
120
|
-
|
|
118
|
+
function h(e, u) {
|
|
119
|
+
function b() {
|
|
120
|
+
H || (H = !0, console.error(
|
|
121
121
|
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
122
|
-
|
|
122
|
+
u
|
|
123
123
|
));
|
|
124
124
|
}
|
|
125
|
-
|
|
126
|
-
get:
|
|
125
|
+
b.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
126
|
+
get: b,
|
|
127
127
|
configurable: !0
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
-
function
|
|
130
|
+
function p() {
|
|
131
131
|
var e = n(this.type);
|
|
132
|
-
return
|
|
132
|
+
return x[e] || (x[e] = !0, console.error(
|
|
133
133
|
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
134
134
|
)), e = this.props.ref, e !== void 0 ? e : null;
|
|
135
135
|
}
|
|
136
|
-
function
|
|
137
|
-
var
|
|
136
|
+
function f(e, u, b, g, G, ee) {
|
|
137
|
+
var y = b.ref;
|
|
138
138
|
return e = {
|
|
139
|
-
$$typeof:
|
|
139
|
+
$$typeof: C,
|
|
140
140
|
type: e,
|
|
141
|
-
key:
|
|
142
|
-
props:
|
|
143
|
-
_owner:
|
|
144
|
-
}, (
|
|
141
|
+
key: u,
|
|
142
|
+
props: b,
|
|
143
|
+
_owner: g
|
|
144
|
+
}, (y !== void 0 ? y : null) !== null ? Object.defineProperty(e, "ref", {
|
|
145
145
|
enumerable: !1,
|
|
146
|
-
get:
|
|
146
|
+
get: p
|
|
147
147
|
}) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
|
|
148
148
|
configurable: !1,
|
|
149
149
|
enumerable: !1,
|
|
@@ -158,134 +158,120 @@ function Ne() {
|
|
|
158
158
|
configurable: !1,
|
|
159
159
|
enumerable: !1,
|
|
160
160
|
writable: !0,
|
|
161
|
-
value:
|
|
161
|
+
value: G
|
|
162
162
|
}), Object.defineProperty(e, "_debugTask", {
|
|
163
163
|
configurable: !1,
|
|
164
164
|
enumerable: !1,
|
|
165
165
|
writable: !0,
|
|
166
|
-
value:
|
|
166
|
+
value: ee
|
|
167
167
|
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
|
|
168
168
|
}
|
|
169
|
-
function
|
|
170
|
-
var
|
|
171
|
-
if (
|
|
172
|
-
if (
|
|
173
|
-
if (
|
|
174
|
-
for (
|
|
175
|
-
|
|
176
|
-
Object.freeze && Object.freeze(
|
|
169
|
+
function d(e, u, b, g, G, ee) {
|
|
170
|
+
var y = u.children;
|
|
171
|
+
if (y !== void 0)
|
|
172
|
+
if (g)
|
|
173
|
+
if (K(y)) {
|
|
174
|
+
for (g = 0; g < y.length; g++)
|
|
175
|
+
w(y[g]);
|
|
176
|
+
Object.freeze && Object.freeze(y);
|
|
177
177
|
} else
|
|
178
178
|
console.error(
|
|
179
179
|
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
180
180
|
);
|
|
181
|
-
else
|
|
182
|
-
if (
|
|
183
|
-
|
|
184
|
-
var
|
|
185
|
-
return
|
|
181
|
+
else w(y);
|
|
182
|
+
if (F.call(u, "key")) {
|
|
183
|
+
y = n(e);
|
|
184
|
+
var q = Object.keys(u).filter(function(Ne) {
|
|
185
|
+
return Ne !== "key";
|
|
186
186
|
});
|
|
187
|
-
|
|
187
|
+
g = 0 < q.length ? "{key: someKey, " + q.join(": ..., ") + ": ...}" : "{key: someKey}", U[y + g] || (q = 0 < q.length ? "{" + q.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
188
188
|
`A props object containing a "key" prop is being spread into JSX:
|
|
189
189
|
let props = %s;
|
|
190
190
|
<%s {...props} />
|
|
191
191
|
React keys must be passed directly to JSX without using spread:
|
|
192
192
|
let props = %s;
|
|
193
193
|
<%s key={someKey} {...props} />`,
|
|
194
|
+
g,
|
|
194
195
|
y,
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
), ne[v + y] = !0);
|
|
196
|
+
q,
|
|
197
|
+
y
|
|
198
|
+
), U[y + g] = !0);
|
|
199
199
|
}
|
|
200
|
-
if (
|
|
201
|
-
|
|
202
|
-
for (var
|
|
203
|
-
|
|
204
|
-
} else
|
|
205
|
-
return
|
|
206
|
-
|
|
200
|
+
if (y = null, b !== void 0 && (s(b), y = "" + b), c(u) && (s(u.key), y = "" + u.key), "key" in u) {
|
|
201
|
+
b = {};
|
|
202
|
+
for (var te in u)
|
|
203
|
+
te !== "key" && (b[te] = u[te]);
|
|
204
|
+
} else b = u;
|
|
205
|
+
return y && h(
|
|
206
|
+
b,
|
|
207
207
|
typeof e == "function" ? e.displayName || e.name || "Unknown" : e
|
|
208
|
-
),
|
|
208
|
+
), f(
|
|
209
209
|
e,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
210
|
+
y,
|
|
211
|
+
b,
|
|
212
|
+
l(),
|
|
213
|
+
G,
|
|
214
|
+
ee
|
|
215
215
|
);
|
|
216
216
|
}
|
|
217
|
-
function
|
|
218
|
-
|
|
217
|
+
function w(e) {
|
|
218
|
+
v(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === D && (e._payload.status === "fulfilled" ? v(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
|
|
219
219
|
}
|
|
220
|
-
function
|
|
221
|
-
return typeof e == "object" && e !== null && e.$$typeof ===
|
|
220
|
+
function v(e) {
|
|
221
|
+
return typeof e == "object" && e !== null && e.$$typeof === C;
|
|
222
222
|
}
|
|
223
|
-
var
|
|
223
|
+
var S = Ee, C = /* @__PURE__ */ Symbol.for("react.transitional.element"), i = /* @__PURE__ */ Symbol.for("react.portal"), m = /* @__PURE__ */ Symbol.for("react.fragment"), M = /* @__PURE__ */ Symbol.for("react.strict_mode"), N = /* @__PURE__ */ Symbol.for("react.profiler"), j = /* @__PURE__ */ Symbol.for("react.consumer"), I = /* @__PURE__ */ Symbol.for("react.context"), L = /* @__PURE__ */ Symbol.for("react.forward_ref"), z = /* @__PURE__ */ Symbol.for("react.suspense"), B = /* @__PURE__ */ Symbol.for("react.suspense_list"), Q = /* @__PURE__ */ Symbol.for("react.memo"), D = /* @__PURE__ */ Symbol.for("react.lazy"), Y = /* @__PURE__ */ Symbol.for("react.activity"), X = /* @__PURE__ */ Symbol.for("react.client.reference"), R = S.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, K = Array.isArray, O = console.createTask ? console.createTask : function() {
|
|
224
224
|
return null;
|
|
225
225
|
};
|
|
226
|
-
|
|
226
|
+
S = {
|
|
227
227
|
react_stack_bottom_frame: function(e) {
|
|
228
228
|
return e();
|
|
229
229
|
}
|
|
230
230
|
};
|
|
231
|
-
var
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
)(),
|
|
235
|
-
|
|
236
|
-
var
|
|
237
|
-
return
|
|
231
|
+
var H, x = {}, E = S.react_stack_bottom_frame.bind(
|
|
232
|
+
S,
|
|
233
|
+
o
|
|
234
|
+
)(), A = O(a(o)), U = {};
|
|
235
|
+
W.Fragment = m, W.jsx = function(e, u, b) {
|
|
236
|
+
var g = 1e4 > R.recentlyCreatedOwnerStacks++;
|
|
237
|
+
return d(
|
|
238
238
|
e,
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
u,
|
|
240
|
+
b,
|
|
241
241
|
!1,
|
|
242
|
-
|
|
243
|
-
|
|
242
|
+
g ? Error("react-stack-top-frame") : E,
|
|
243
|
+
g ? O(a(e)) : A
|
|
244
244
|
);
|
|
245
|
-
},
|
|
246
|
-
var
|
|
247
|
-
return
|
|
245
|
+
}, W.jsxs = function(e, u, b) {
|
|
246
|
+
var g = 1e4 > R.recentlyCreatedOwnerStacks++;
|
|
247
|
+
return d(
|
|
248
248
|
e,
|
|
249
|
-
|
|
250
|
-
|
|
249
|
+
u,
|
|
250
|
+
b,
|
|
251
251
|
!0,
|
|
252
|
-
|
|
253
|
-
|
|
252
|
+
g ? Error("react-stack-top-frame") : E,
|
|
253
|
+
g ? O(a(e)) : A
|
|
254
254
|
);
|
|
255
255
|
};
|
|
256
|
-
})()),
|
|
256
|
+
})()), W;
|
|
257
257
|
}
|
|
258
|
-
var
|
|
259
|
-
function
|
|
260
|
-
return
|
|
258
|
+
var ce;
|
|
259
|
+
function Me() {
|
|
260
|
+
return ce || (ce = 1, process.env.NODE_ENV === "production" ? Z.exports = Ce() : Z.exports = Pe()), Z.exports;
|
|
261
261
|
}
|
|
262
|
-
var
|
|
263
|
-
const
|
|
264
|
-
const { user: r, LinkComponent: o = Se } = n;
|
|
265
|
-
return /* @__PURE__ */ t.jsx("div", { className: "max-h-20 max-w-52", children: /* @__PURE__ */ t.jsx("div", { className: "flex grow flex-col", children: r ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
266
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex flex-row", children: [
|
|
267
|
-
/* @__PURE__ */ t.jsx("div", { className: "aiquants-session-photo m-1 h-14 w-14 p-0.5", children: /* @__PURE__ */ t.jsx("img", { className: "object-contain", src: r.photo || _e, "aria-label": "profile photo" }) }),
|
|
268
|
-
/* @__PURE__ */ t.jsxs("div", { className: "mx-1 flex flex-col", children: [
|
|
269
|
-
/* @__PURE__ */ t.jsx(o, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィールを編集" }),
|
|
270
|
-
/* @__PURE__ */ t.jsx(o, { className: "aiquants-session-link rounded-lg px-2 text-center text-xs", to: "/", children: "プロフィール" }),
|
|
271
|
-
/* @__PURE__ */ t.jsx(o, { className: "aiquants-session-link my-1 rounded-lg px-2 text-center text-xs", to: "https://myaccount.google.com/", children: "Google Account" })
|
|
272
|
-
] })
|
|
273
|
-
] }),
|
|
274
|
-
/* @__PURE__ */ t.jsx("div", { className: "aiquants-session-info mb-1 min-h-[1em] w-full rounded-r-lg px-2 py-0.5 text-xs", children: r.displayName })
|
|
275
|
-
] }) : /* @__PURE__ */ t.jsx("div", { className: "aiquants-session-info mb-1 min-h-[1em] w-9/12 rounded-r-lg py-0.5 pl-1 text-xs", children: "ログインはこちら" }) }) });
|
|
276
|
-
};
|
|
277
|
-
const Ce = (n) => n.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Te = (n) => n.replace(
|
|
262
|
+
var r = Me();
|
|
263
|
+
const Te = (n) => n.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Re = (n) => n.replace(
|
|
278
264
|
/^([A-Z])|[\s-_]+(\w)/g,
|
|
279
|
-
(
|
|
280
|
-
),
|
|
281
|
-
const
|
|
282
|
-
return
|
|
283
|
-
},
|
|
284
|
-
for (const
|
|
285
|
-
if (
|
|
265
|
+
(t, s, a) => a ? a.toUpperCase() : s.toLowerCase()
|
|
266
|
+
), ue = (n) => {
|
|
267
|
+
const t = Re(n);
|
|
268
|
+
return t.charAt(0).toUpperCase() + t.slice(1);
|
|
269
|
+
}, ye = (...n) => n.filter((t, s, a) => !!t && t.trim() !== "" && a.indexOf(t) === s).join(" ").trim(), Oe = (n) => {
|
|
270
|
+
for (const t in n)
|
|
271
|
+
if (t.startsWith("aria-") || t === "role" || t === "title")
|
|
286
272
|
return !0;
|
|
287
273
|
};
|
|
288
|
-
var
|
|
274
|
+
var Ae = {
|
|
289
275
|
xmlns: "http://www.w3.org/2000/svg",
|
|
290
276
|
width: 24,
|
|
291
277
|
height: 24,
|
|
@@ -296,51 +282,162 @@ var Me = {
|
|
|
296
282
|
strokeLinecap: "round",
|
|
297
283
|
strokeLinejoin: "round"
|
|
298
284
|
};
|
|
299
|
-
const
|
|
285
|
+
const Ie = be(
|
|
300
286
|
({
|
|
301
287
|
color: n = "currentColor",
|
|
302
|
-
size:
|
|
303
|
-
strokeWidth:
|
|
288
|
+
size: t = 24,
|
|
289
|
+
strokeWidth: s = 2,
|
|
304
290
|
absoluteStrokeWidth: a,
|
|
305
|
-
className:
|
|
306
|
-
children:
|
|
307
|
-
iconNode:
|
|
308
|
-
...
|
|
309
|
-
},
|
|
291
|
+
className: l = "",
|
|
292
|
+
children: o,
|
|
293
|
+
iconNode: c,
|
|
294
|
+
...h
|
|
295
|
+
}, p) => re(
|
|
310
296
|
"svg",
|
|
311
297
|
{
|
|
312
|
-
ref:
|
|
313
|
-
...
|
|
314
|
-
width:
|
|
315
|
-
height:
|
|
298
|
+
ref: p,
|
|
299
|
+
...Ae,
|
|
300
|
+
width: t,
|
|
301
|
+
height: t,
|
|
316
302
|
stroke: n,
|
|
317
|
-
strokeWidth: a ? Number(
|
|
318
|
-
className:
|
|
319
|
-
...!
|
|
320
|
-
...
|
|
303
|
+
strokeWidth: a ? Number(s) * 24 / Number(t) : s,
|
|
304
|
+
className: ye("lucide", l),
|
|
305
|
+
...!o && !Oe(h) && { "aria-hidden": "true" },
|
|
306
|
+
...h
|
|
321
307
|
},
|
|
322
308
|
[
|
|
323
|
-
...
|
|
324
|
-
...Array.isArray(
|
|
309
|
+
...c.map(([f, d]) => re(f, d)),
|
|
310
|
+
...Array.isArray(o) ? o : [o]
|
|
325
311
|
]
|
|
326
312
|
)
|
|
327
313
|
);
|
|
328
|
-
const
|
|
329
|
-
const
|
|
330
|
-
({ className: a, ...
|
|
331
|
-
ref:
|
|
332
|
-
iconNode:
|
|
333
|
-
className:
|
|
334
|
-
`lucide-${
|
|
314
|
+
const P = (n, t) => {
|
|
315
|
+
const s = be(
|
|
316
|
+
({ className: a, ...l }, o) => re(Ie, {
|
|
317
|
+
ref: o,
|
|
318
|
+
iconNode: t,
|
|
319
|
+
className: ye(
|
|
320
|
+
`lucide-${Te(ue(n))}`,
|
|
335
321
|
`lucide-${n}`,
|
|
336
322
|
a
|
|
337
323
|
),
|
|
338
|
-
...
|
|
324
|
+
...l
|
|
339
325
|
})
|
|
340
326
|
);
|
|
341
|
-
return
|
|
327
|
+
return s.displayName = ue(n), s;
|
|
342
328
|
};
|
|
343
|
-
const
|
|
329
|
+
const Le = [
|
|
330
|
+
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
331
|
+
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
332
|
+
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
333
|
+
], qe = P("external-link", Le);
|
|
334
|
+
const $e = [
|
|
335
|
+
["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
|
|
336
|
+
["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
|
|
337
|
+
], ze = P("user", $e), De = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2NiZDVlMSI+PHBhdGggZD0iTTEyIDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMCAyYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00eiIvPjwvc3ZnPg==", Ye = ({ to: n, className: t, children: s }) => /* @__PURE__ */ r.jsx("a", { href: n, className: t, children: s }), mt = (n) => {
|
|
338
|
+
const { user: t, LinkComponent: s = Ye } = n;
|
|
339
|
+
return /* @__PURE__ */ r.jsx("div", { className: "w-full", children: t ? /* @__PURE__ */ r.jsxs("div", { className: "aiquants-session-card group relative flex flex-col gap-1.5 rounded-lg border border-white/20 bg-white/10 p-2 shadow-sm transition-all duration-200 hover:border-white/30 hover:bg-white/15 dark:border-slate-700/60 dark:bg-slate-800/60 dark:hover:border-slate-600/80 dark:hover:bg-slate-800/90", children: [
|
|
340
|
+
/* @__PURE__ */ r.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
341
|
+
/* @__PURE__ */ r.jsxs("div", { className: "relative shrink-0", children: [
|
|
342
|
+
/* @__PURE__ */ r.jsx("div", { className: "h-7 w-7 overflow-hidden rounded-full border border-white/40 shadow-xs dark:border-slate-500", children: /* @__PURE__ */ r.jsx("img", { className: "h-full w-full rounded-full object-cover", src: t.photo || De, alt: t.displayName || "user profile" }) }),
|
|
343
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute -right-0.5 -bottom-0.5 h-2 w-2 rounded-full border border-slate-900 bg-emerald-400", title: "Online" })
|
|
344
|
+
] }),
|
|
345
|
+
/* @__PURE__ */ r.jsxs("div", { className: "min-w-0 flex-1 leading-tight", children: [
|
|
346
|
+
/* @__PURE__ */ r.jsx("div", { className: "truncate font-semibold text-[11px] text-white tracking-tight dark:text-slate-100", title: t.displayName, children: t.displayName }),
|
|
347
|
+
/* @__PURE__ */ r.jsx("div", { className: "mt-0.5 text-[9px] text-white/70 tracking-tight dark:text-slate-400", children: "Google Account" })
|
|
348
|
+
] })
|
|
349
|
+
] }),
|
|
350
|
+
/* @__PURE__ */ r.jsxs("div", { className: "grid grid-cols-2 gap-1 border-white/15 border-t pt-1 dark:border-slate-700/50", children: [
|
|
351
|
+
/* @__PURE__ */ r.jsxs(
|
|
352
|
+
s,
|
|
353
|
+
{
|
|
354
|
+
className: "flex items-center justify-center gap-1 rounded border border-white/15 bg-white/10 px-1.5 py-0.5 font-medium text-[10px] text-white transition-all duration-150 hover:bg-white/25 active:scale-95 dark:border-slate-600/50 dark:bg-slate-700/50 dark:text-slate-200 dark:hover:bg-slate-600/80",
|
|
355
|
+
to: "/",
|
|
356
|
+
children: [
|
|
357
|
+
/* @__PURE__ */ r.jsx(ze, { size: 10, className: "shrink-0 opacity-80" }),
|
|
358
|
+
/* @__PURE__ */ r.jsx("span", { className: "truncate", children: "プロフィール" })
|
|
359
|
+
]
|
|
360
|
+
}
|
|
361
|
+
),
|
|
362
|
+
/* @__PURE__ */ r.jsxs(
|
|
363
|
+
s,
|
|
364
|
+
{
|
|
365
|
+
className: "flex items-center justify-center gap-1 rounded border border-white/15 bg-white/10 px-1.5 py-0.5 font-medium text-[10px] text-white transition-all duration-150 hover:bg-white/25 active:scale-95 dark:border-slate-600/50 dark:bg-slate-700/50 dark:text-slate-200 dark:hover:bg-slate-600/80",
|
|
366
|
+
to: "https://myaccount.google.com/",
|
|
367
|
+
children: [
|
|
368
|
+
/* @__PURE__ */ r.jsx(qe, { size: 10, className: "shrink-0 opacity-80" }),
|
|
369
|
+
/* @__PURE__ */ r.jsx("span", { className: "truncate", children: "Google" })
|
|
370
|
+
]
|
|
371
|
+
}
|
|
372
|
+
)
|
|
373
|
+
] })
|
|
374
|
+
] }) : /* @__PURE__ */ r.jsx("div", { className: "aiquants-session-card flex items-center justify-between rounded-lg border border-white/20 bg-white/10 p-2 shadow-xs dark:border-slate-700/60 dark:bg-slate-800/60", children: /* @__PURE__ */ r.jsx("span", { className: "font-medium text-white/90 text-xs dark:text-slate-200", children: "ログインしてください" }) }) });
|
|
375
|
+
}, se = "aiquants-menu-pin-change";
|
|
376
|
+
let _ = { pinned: !1, width: 0 };
|
|
377
|
+
const ve = (n = 240) => {
|
|
378
|
+
if (typeof window > "u" || typeof document > "u")
|
|
379
|
+
return { pinned: !1, width: 0 };
|
|
380
|
+
try {
|
|
381
|
+
const t = getComputedStyle(document.documentElement).getPropertyValue("--aiquants-menu-pinned-width").trim();
|
|
382
|
+
if (t) {
|
|
383
|
+
const o = Number.parseInt(t, 10);
|
|
384
|
+
if (!Number.isNaN(o)) {
|
|
385
|
+
const c = o > 0, h = c ? o || n : 0;
|
|
386
|
+
return _.pinned === c && _.width === h || (_ = { pinned: c, width: h }), _;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
const a = localStorage.getItem("aiquants-menu-pinned") === "true", l = a ? n : 0;
|
|
390
|
+
return _.pinned === a && _.width === l || (_ = { pinned: a, width: l }), _;
|
|
391
|
+
} catch {
|
|
392
|
+
return { pinned: !1, width: 0 };
|
|
393
|
+
}
|
|
394
|
+
}, de = (n, t) => {
|
|
395
|
+
if (typeof window > "u") return;
|
|
396
|
+
const s = { pinned: n, width: t };
|
|
397
|
+
(_.pinned !== n || _.width !== t) && (_ = s);
|
|
398
|
+
const a = new CustomEvent(se, {
|
|
399
|
+
detail: s,
|
|
400
|
+
bubbles: !0,
|
|
401
|
+
cancelable: !1
|
|
402
|
+
});
|
|
403
|
+
window.dispatchEvent(a);
|
|
404
|
+
}, He = (n, t) => {
|
|
405
|
+
if (typeof window > "u")
|
|
406
|
+
return () => {
|
|
407
|
+
};
|
|
408
|
+
const { immediate: s = !0, defaultPinnedWidth: a = 240 } = t ?? {};
|
|
409
|
+
if (s) {
|
|
410
|
+
const o = ve(a);
|
|
411
|
+
n(o);
|
|
412
|
+
}
|
|
413
|
+
const l = (o) => {
|
|
414
|
+
const c = o;
|
|
415
|
+
c.detail && n(c.detail);
|
|
416
|
+
};
|
|
417
|
+
return window.addEventListener(se, l, { passive: !0 }), () => {
|
|
418
|
+
window.removeEventListener(se, l);
|
|
419
|
+
};
|
|
420
|
+
}, pt = (n) => {
|
|
421
|
+
const t = n?.defaultPinnedWidth ?? 240, s = n?.initialPinned ?? !1, a = k(
|
|
422
|
+
(c) => He(
|
|
423
|
+
() => {
|
|
424
|
+
c();
|
|
425
|
+
},
|
|
426
|
+
{ immediate: !1, defaultPinnedWidth: t }
|
|
427
|
+
),
|
|
428
|
+
[t]
|
|
429
|
+
), l = k(() => ve(t), [t]), o = k(() => ({
|
|
430
|
+
pinned: s,
|
|
431
|
+
width: s ? t : 0
|
|
432
|
+
}), [s, t]);
|
|
433
|
+
return _e(a, l, o);
|
|
434
|
+
};
|
|
435
|
+
const Ve = [
|
|
436
|
+
["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
|
|
437
|
+
["path", { d: "M21 12H9", key: "dn1m92" }],
|
|
438
|
+
["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
|
|
439
|
+
], We = P("log-out", Ve);
|
|
440
|
+
const Fe = [
|
|
344
441
|
["path", { d: "M12 17v5", key: "bb1du9" }],
|
|
345
442
|
[
|
|
346
443
|
"path",
|
|
@@ -349,8 +446,8 @@ const Ae = [
|
|
|
349
446
|
key: "1nkz8b"
|
|
350
447
|
}
|
|
351
448
|
]
|
|
352
|
-
],
|
|
353
|
-
const
|
|
449
|
+
], ke = P("pin", Fe);
|
|
450
|
+
const Ue = [
|
|
354
451
|
["path", { d: "M12 17v5", key: "bb1du9" }],
|
|
355
452
|
["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89", key: "znwnzq" }],
|
|
356
453
|
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
@@ -361,18 +458,18 @@ const Oe = [
|
|
|
361
458
|
key: "c9qhm2"
|
|
362
459
|
}
|
|
363
460
|
]
|
|
364
|
-
],
|
|
365
|
-
const
|
|
461
|
+
], we = P("pin-off", Ue);
|
|
462
|
+
const Ge = [
|
|
366
463
|
["path", { d: "M5 21v-6", key: "1hz6c0" }],
|
|
367
464
|
["path", { d: "M12 21V9", key: "uvy0l4" }],
|
|
368
465
|
["path", { d: "M19 21V3", key: "11j9sm" }]
|
|
369
|
-
],
|
|
370
|
-
const
|
|
466
|
+
], Ze = P("chart-no-axes-column-increasing", Ge);
|
|
467
|
+
const Je = [
|
|
371
468
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
372
469
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
373
470
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
374
|
-
],
|
|
375
|
-
const
|
|
471
|
+
], Be = P("download", Je);
|
|
472
|
+
const Qe = [
|
|
376
473
|
[
|
|
377
474
|
"path",
|
|
378
475
|
{
|
|
@@ -384,46 +481,46 @@ const De = [
|
|
|
384
481
|
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
385
482
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
386
483
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
387
|
-
],
|
|
388
|
-
const
|
|
484
|
+
], fe = P("file-text", Qe);
|
|
485
|
+
const Xe = [
|
|
389
486
|
["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
|
|
390
487
|
["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
|
|
391
|
-
],
|
|
392
|
-
const
|
|
488
|
+
], Ke = P("link", Xe);
|
|
489
|
+
const et = [
|
|
393
490
|
["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
|
|
394
491
|
["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
|
|
395
|
-
],
|
|
396
|
-
const
|
|
492
|
+
], tt = P("lock", et);
|
|
493
|
+
const nt = [
|
|
397
494
|
["path", { d: "M12 3v18", key: "108xh3" }],
|
|
398
495
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
399
496
|
["path", { d: "M3 9h18", key: "1pudct" }],
|
|
400
497
|
["path", { d: "M3 15h18", key: "5xshup" }]
|
|
401
|
-
],
|
|
402
|
-
report:
|
|
403
|
-
slip:
|
|
404
|
-
table:
|
|
405
|
-
chart:
|
|
406
|
-
download:
|
|
407
|
-
lock:
|
|
408
|
-
href:
|
|
409
|
-
},
|
|
410
|
-
const
|
|
411
|
-
return
|
|
412
|
-
/* @__PURE__ */
|
|
413
|
-
/* @__PURE__ */
|
|
414
|
-
] }) : /* @__PURE__ */
|
|
415
|
-
},
|
|
498
|
+
], rt = P("table", nt), st = typeof window < "u" ? xe : $, he = "aiquants-menu-scroll", je = new RegExp(/(^https?:\/\/)|(\.(html|htm)?$)/), at = {
|
|
499
|
+
report: fe,
|
|
500
|
+
slip: fe,
|
|
501
|
+
table: rt,
|
|
502
|
+
chart: Ze,
|
|
503
|
+
download: Be,
|
|
504
|
+
lock: tt,
|
|
505
|
+
href: Ke
|
|
506
|
+
}, ot = ({ mark: n, children: t }) => {
|
|
507
|
+
const s = n ? at[n] : void 0;
|
|
508
|
+
return s ? /* @__PURE__ */ r.jsxs("div", { className: "flex flex-nowrap items-center", children: [
|
|
509
|
+
/* @__PURE__ */ r.jsx(s, { className: "h-3.5 w-3.5 shrink-0" }),
|
|
510
|
+
/* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-link mx-1 hover:underline", children: t })
|
|
511
|
+
] }) : /* @__PURE__ */ r.jsx("span", { className: "mx-1 text-sky-600 hover:underline dark:text-sky-400", children: t });
|
|
512
|
+
}, ae = (n, t) => t ? {
|
|
416
513
|
menu: {
|
|
417
514
|
id: n.id,
|
|
418
515
|
title: n.title,
|
|
419
516
|
href: n.href
|
|
420
517
|
},
|
|
421
518
|
submenu: {
|
|
422
|
-
subid:
|
|
423
|
-
title:
|
|
424
|
-
href:
|
|
425
|
-
mark:
|
|
426
|
-
new:
|
|
519
|
+
subid: t.subid,
|
|
520
|
+
title: t.title,
|
|
521
|
+
href: t.href,
|
|
522
|
+
mark: t.mark,
|
|
523
|
+
new: t.new
|
|
427
524
|
}
|
|
428
525
|
} : {
|
|
429
526
|
menu: {
|
|
@@ -431,288 +528,316 @@ const He = [
|
|
|
431
528
|
title: n.title,
|
|
432
529
|
href: n.href
|
|
433
530
|
}
|
|
434
|
-
},
|
|
531
|
+
}, it = ({ item: n, parentMenu: t, onMenuSelected: s }) => {
|
|
435
532
|
if (n.href === "separator")
|
|
436
|
-
return /* @__PURE__ */
|
|
437
|
-
const a = /* @__PURE__ */
|
|
533
|
+
return /* @__PURE__ */ r.jsx("hr", { className: "aiquants-menu-separator mx-2 my-1 h-px" });
|
|
534
|
+
const a = /* @__PURE__ */ r.jsx(ot, { mark: n.mark, children: n.title }), l = {
|
|
438
535
|
onClick: () => {
|
|
439
|
-
|
|
536
|
+
s && s(ae(t, n));
|
|
440
537
|
}
|
|
441
538
|
};
|
|
442
|
-
return n.new ? /* @__PURE__ */
|
|
443
|
-
},
|
|
444
|
-
const
|
|
539
|
+
return n.new ? /* @__PURE__ */ r.jsx("a", { href: n.href, rel: "noopener noreferrer", target: "_blank", ...l, children: a }) : je.test(n.href) ? /* @__PURE__ */ r.jsx("a", { href: n.href, ...l, children: a }) : /* @__PURE__ */ r.jsx(ge, { to: n.href, ...l, children: a });
|
|
540
|
+
}, me = (n) => n ? n.split(/[?#]/)[0].replace(/(?!^\/)\/$/, "") : "", pe = (n, t) => {
|
|
541
|
+
const s = t !== "/" && t.endsWith("/") ? t.slice(0, -1) : t;
|
|
445
542
|
for (const a of n) {
|
|
446
|
-
if (
|
|
543
|
+
if (me(a.href) === s)
|
|
447
544
|
return a.id;
|
|
448
545
|
if (a.submenu) {
|
|
449
|
-
for (const
|
|
450
|
-
if (
|
|
546
|
+
for (const l of a.submenu)
|
|
547
|
+
if (me(l.href) === s)
|
|
451
548
|
return a.id;
|
|
452
549
|
}
|
|
453
550
|
}
|
|
454
551
|
return null;
|
|
455
|
-
},
|
|
456
|
-
const { menuList:
|
|
457
|
-
let
|
|
552
|
+
}, lt = (n) => {
|
|
553
|
+
const { menuList: t, onMenuSelected: s, pinnedSubmenuIds: a = [], onToggleSubmenuPin: l } = n;
|
|
554
|
+
let o = "";
|
|
458
555
|
try {
|
|
459
|
-
|
|
556
|
+
o = Se().pathname;
|
|
460
557
|
} catch {
|
|
461
|
-
typeof window < "u" && (
|
|
558
|
+
typeof window < "u" && (o = window.location.pathname);
|
|
462
559
|
}
|
|
463
|
-
const
|
|
464
|
-
|
|
465
|
-
if (
|
|
466
|
-
const
|
|
467
|
-
|
|
560
|
+
const c = oe(() => pe(t, o), [t, o]), [h, p] = J(c), f = T(o), d = T(c !== null);
|
|
561
|
+
$(() => {
|
|
562
|
+
if (f.current !== o && (f.current = o, d.current = !1), !d.current) {
|
|
563
|
+
const i = pe(t, o);
|
|
564
|
+
i !== null && (p(i), d.current = !0);
|
|
468
565
|
}
|
|
469
|
-
}, [
|
|
470
|
-
const
|
|
471
|
-
(
|
|
472
|
-
a.includes(
|
|
566
|
+
}, [o, t]);
|
|
567
|
+
const w = k(
|
|
568
|
+
(i) => {
|
|
569
|
+
a.includes(i) || p((M) => M === i ? null : i);
|
|
473
570
|
},
|
|
474
571
|
[a]
|
|
475
|
-
),
|
|
476
|
-
|
|
477
|
-
const
|
|
478
|
-
if (
|
|
572
|
+
), v = T(null);
|
|
573
|
+
st(() => {
|
|
574
|
+
const i = v.current;
|
|
575
|
+
if (i)
|
|
479
576
|
try {
|
|
480
|
-
const m = sessionStorage.getItem(
|
|
577
|
+
const m = sessionStorage.getItem(he);
|
|
481
578
|
if (m !== null) {
|
|
482
|
-
const
|
|
483
|
-
Number.isNaN(
|
|
579
|
+
const M = Number.parseFloat(m);
|
|
580
|
+
Number.isNaN(M) || (i.scrollTop = M);
|
|
484
581
|
}
|
|
485
582
|
} catch {
|
|
486
583
|
}
|
|
487
584
|
}, []);
|
|
488
|
-
const
|
|
489
|
-
const
|
|
490
|
-
if (
|
|
585
|
+
const S = k(() => {
|
|
586
|
+
const i = v.current;
|
|
587
|
+
if (i)
|
|
491
588
|
try {
|
|
492
|
-
sessionStorage.setItem(
|
|
589
|
+
sessionStorage.setItem(he, String(i.scrollTop));
|
|
493
590
|
} catch {
|
|
494
591
|
}
|
|
495
|
-
}, []),
|
|
592
|
+
}, []), C = oe(() => /* @__PURE__ */ r.jsx(r.Fragment, { children: t.map((i) => /* @__PURE__ */ r.jsx("div", { children: i.href ? /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-list-item relative mb-0.5 ml-1 flex items-center rounded-l-xl px-2.5 py-1 text-xs before:mr-2 before:inline-block before:h-2 before:w-2 before:shrink-0 before:rounded-full before:content-[''] sm:text-sm", children: je.test(i.href) ? /* @__PURE__ */ r.jsx(
|
|
496
593
|
"a",
|
|
497
594
|
{
|
|
498
|
-
href:
|
|
595
|
+
href: i.href,
|
|
499
596
|
onClick: () => {
|
|
500
|
-
|
|
597
|
+
s && s(ae(i));
|
|
501
598
|
},
|
|
502
|
-
children: /* @__PURE__ */
|
|
599
|
+
children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: i.title })
|
|
503
600
|
}
|
|
504
|
-
) : /* @__PURE__ */
|
|
505
|
-
|
|
601
|
+
) : /* @__PURE__ */ r.jsx(
|
|
602
|
+
ge,
|
|
506
603
|
{
|
|
507
|
-
to:
|
|
604
|
+
to: i.href,
|
|
508
605
|
onClick: () => {
|
|
509
|
-
|
|
606
|
+
s && s(ae(i));
|
|
510
607
|
},
|
|
511
|
-
children: /* @__PURE__ */
|
|
608
|
+
children: /* @__PURE__ */ r.jsx("span", { className: "aiquants-menu-link hover:underline", children: i.title })
|
|
512
609
|
}
|
|
513
|
-
) }) : /* @__PURE__ */
|
|
514
|
-
/* @__PURE__ */
|
|
610
|
+
) }) : /* @__PURE__ */ r.jsxs("details", { className: "aiquants-menu-accordion-details", open: i.id === h || a.includes(i.id), children: [
|
|
611
|
+
/* @__PURE__ */ r.jsxs(
|
|
515
612
|
"summary",
|
|
516
613
|
{
|
|
517
|
-
className: "aiquants-menu-list-item aiquants-menu-accordion-summary relative mb-
|
|
614
|
+
className: "aiquants-menu-list-item aiquants-menu-accordion-summary relative mb-0.5 ml-1 list-none rounded-l-xl px-2.5 py-1 text-xs outline-none before:mr-2 before:inline-block before:h-2 before:w-2 before:shrink-0 before:rounded-full before:content-[''] sm:text-sm",
|
|
518
615
|
onClick: (m) => {
|
|
519
|
-
m.preventDefault(),
|
|
616
|
+
m.preventDefault(), w(i.id);
|
|
520
617
|
},
|
|
521
618
|
onKeyDown: (m) => {
|
|
522
|
-
(m.key === "Enter" || m.key === " ") && (m.preventDefault(),
|
|
619
|
+
(m.key === "Enter" || m.key === " ") && (m.preventDefault(), w(i.id));
|
|
523
620
|
},
|
|
524
621
|
children: [
|
|
525
|
-
/* @__PURE__ */
|
|
526
|
-
/* @__PURE__ */
|
|
622
|
+
/* @__PURE__ */ r.jsx("span", { children: i.title }),
|
|
623
|
+
/* @__PURE__ */ r.jsx(
|
|
527
624
|
"button",
|
|
528
625
|
{
|
|
529
626
|
type: "button",
|
|
530
627
|
onClick: (m) => {
|
|
531
|
-
m.stopPropagation(), m.preventDefault(),
|
|
628
|
+
m.stopPropagation(), m.preventDefault(), l && l(i.id);
|
|
532
629
|
},
|
|
533
|
-
className: `aiquants-submenu-pin-button ${a.includes(
|
|
534
|
-
title: a.includes(
|
|
535
|
-
children: a.includes(
|
|
630
|
+
className: `aiquants-submenu-pin-button ${a.includes(i.id) ? "pinned" : ""}`,
|
|
631
|
+
title: a.includes(i.id) ? "ピン留め解除" : "ピン留め",
|
|
632
|
+
children: a.includes(i.id) ? /* @__PURE__ */ r.jsx(ke, { size: 13 }) : /* @__PURE__ */ r.jsx(we, { size: 13 })
|
|
536
633
|
}
|
|
537
634
|
)
|
|
538
635
|
]
|
|
539
636
|
}
|
|
540
637
|
),
|
|
541
|
-
/* @__PURE__ */
|
|
542
|
-
] }) },
|
|
543
|
-
return /* @__PURE__ */
|
|
544
|
-
},
|
|
545
|
-
const { menuList:
|
|
546
|
-
return /* @__PURE__ */
|
|
547
|
-
/* @__PURE__ */
|
|
548
|
-
/* @__PURE__ */
|
|
549
|
-
/* @__PURE__ */
|
|
550
|
-
/* @__PURE__ */
|
|
638
|
+
/* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-submenu pointer-events-auto my-0.5 mr-1 ml-3.5 rounded-lg px-2 py-1 shadow-sm", children: i.submenu.map((m) => /* @__PURE__ */ r.jsx("div", { className: "aiquants-menu-accordion-container block w-full whitespace-nowrap py-0.5 text-xs", children: /* @__PURE__ */ r.jsx(it, { item: m, parentMenu: i, onMenuSelected: s }) }, m.subid)) })
|
|
639
|
+
] }) }, i.id)) }), [t, s, h, w, a]);
|
|
640
|
+
return /* @__PURE__ */ r.jsx("div", { ref: v, onScroll: S, className: "hidden-scrollbar h-0 grow overflow-y-scroll", children: C });
|
|
641
|
+
}, ct = (n) => {
|
|
642
|
+
const { menuList: t, menuHeader: s, open: a, onMenuSelected: l, onClickSignout: o, theme: c, toggleTheme: h, isPinned: p, onTogglePin: f, pinnedSubmenuIds: d, onToggleSubmenuPin: w } = n;
|
|
643
|
+
return /* @__PURE__ */ r.jsxs("div", { className: `aiquants-menu-content fixed top-0 right-0 z-2147483642 flex min-h-dvh w-[240px] select-none flex-col transition-transform duration-500 ${a ? "aiquants-menu-translate-x-0" : "aiquants-menu-translate-x-250"}`, children: [
|
|
644
|
+
/* @__PURE__ */ r.jsx("div", { className: "flex shrink-0 flex-col justify-center border-white/15 border-b px-2.5 py-2 dark:border-slate-700/60", children: s }),
|
|
645
|
+
/* @__PURE__ */ r.jsx("div", { className: "flex grow flex-col overflow-y-auto", children: /* @__PURE__ */ r.jsx(lt, { menuList: t, onMenuSelected: l, pinnedSubmenuIds: d, onToggleSubmenuPin: w }) }),
|
|
646
|
+
/* @__PURE__ */ r.jsx("div", { className: "border-white/15 border-t px-2.5 py-1.5 dark:border-slate-700/60", children: /* @__PURE__ */ r.jsxs("div", { className: "flex items-center justify-between gap-1.5", children: [
|
|
647
|
+
/* @__PURE__ */ r.jsx(
|
|
551
648
|
"button",
|
|
552
649
|
{
|
|
553
650
|
type: "button",
|
|
554
|
-
onClick:
|
|
651
|
+
onClick: f,
|
|
555
652
|
"data-aqmb-pin-button": !0,
|
|
556
|
-
className: `flex items-center justify-center rounded-md px-
|
|
557
|
-
title:
|
|
558
|
-
"aria-label":
|
|
559
|
-
children:
|
|
653
|
+
className: `flex h-7 items-center justify-center rounded-md px-2 text-[11px] text-white shadow-2xs transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-300/60 ${p ? "bg-amber-500 hover:bg-amber-600 dark:bg-amber-600 dark:hover:bg-amber-500" : "border border-white/20 bg-white/10 hover:bg-white/20 dark:border-slate-600/60 dark:bg-slate-700/60 dark:hover:bg-slate-600"}`,
|
|
654
|
+
title: p ? "ピン留め解除" : "ピン留め",
|
|
655
|
+
"aria-label": p ? "ピン留め解除" : "ピン留め",
|
|
656
|
+
children: p ? /* @__PURE__ */ r.jsx(ke, { size: 12 }) : /* @__PURE__ */ r.jsx(we, { size: 12 })
|
|
560
657
|
}
|
|
561
658
|
),
|
|
562
|
-
/* @__PURE__ */
|
|
659
|
+
/* @__PURE__ */ r.jsx(
|
|
563
660
|
"button",
|
|
564
661
|
{
|
|
565
662
|
type: "button",
|
|
566
|
-
onClick:
|
|
663
|
+
onClick: h,
|
|
567
664
|
"data-aqmb-theme-button": !0,
|
|
568
|
-
className: "group relative flex items-center justify-center rounded-md border border-white/
|
|
569
|
-
title:
|
|
570
|
-
"aria-label":
|
|
571
|
-
children: /* @__PURE__ */
|
|
665
|
+
className: "group relative flex h-7 items-center justify-center rounded-md border border-white/20 bg-white/10 px-2 text-[11px] text-white shadow-2xs backdrop-blur-xs transition-all duration-200 hover:bg-white/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 dark:border-slate-600/60 dark:bg-slate-700/60 dark:hover:bg-slate-600",
|
|
666
|
+
title: c === "dark" ? "ライトモードに切り替え" : "ダークモードに切り替え",
|
|
667
|
+
"aria-label": c === "dark" ? "ライトモードに切り替え" : "ダークモードに切り替え",
|
|
668
|
+
children: /* @__PURE__ */ r.jsx("span", { className: "text-xs transition-transform duration-200 group-hover:scale-110", children: c === "dark" ? "🌞" : "🌙" })
|
|
572
669
|
}
|
|
573
670
|
),
|
|
574
|
-
/* @__PURE__ */
|
|
671
|
+
/* @__PURE__ */ r.jsxs(
|
|
575
672
|
"button",
|
|
576
673
|
{
|
|
577
674
|
type: "button",
|
|
578
675
|
"data-aqmb-signout-button": !0,
|
|
579
|
-
className: "aiquants-signout-button flex flex-1 items-center justify-center whitespace-nowrap rounded-md bg-red-500/90 px-
|
|
580
|
-
onClick:
|
|
581
|
-
children:
|
|
676
|
+
className: "aiquants-signout-button flex h-7 flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-md bg-red-500/90 px-2.5 font-medium text-[11px] text-white shadow-2xs transition-colors duration-200 hover:bg-red-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-red-300/60 dark:bg-red-600/90 dark:hover:bg-red-500",
|
|
677
|
+
onClick: o,
|
|
678
|
+
children: [
|
|
679
|
+
/* @__PURE__ */ r.jsx(We, { size: 11, className: "shrink-0" }),
|
|
680
|
+
/* @__PURE__ */ r.jsx("span", { children: "サインアウト" })
|
|
681
|
+
]
|
|
582
682
|
}
|
|
583
683
|
)
|
|
584
684
|
] }) })
|
|
585
685
|
] });
|
|
586
|
-
},
|
|
587
|
-
const { isOverlay:
|
|
588
|
-
return /* @__PURE__ */
|
|
589
|
-
},
|
|
590
|
-
const { open:
|
|
591
|
-
if (
|
|
592
|
-
const N =
|
|
593
|
-
|
|
686
|
+
}, ut = (n) => {
|
|
687
|
+
const { isOverlay: t, onOverlayClick: s } = n;
|
|
688
|
+
return /* @__PURE__ */ r.jsx("button", { type: "button", className: `fixed inset-0 z-2147483640 cursor-default bg-black/50 transition-opacity duration-500 ${t ? "opacity-100" : "pointer-events-none opacity-0"}`, onClick: s });
|
|
689
|
+
}, dt = (n) => {
|
|
690
|
+
const { open: t, onMenuOpen: s, onMenuClose: a, theme: l } = n, o = T(t), c = T(null), h = T(null), p = T(null), f = T(null), d = T(null), w = k(() => {
|
|
691
|
+
if (c.current && h.current && p.current && f.current && d.current) {
|
|
692
|
+
const N = l === "dark" ? "#fff" : "#000";
|
|
693
|
+
c.current.style.backgroundColor = N, c.current.style.width = "100%", c.current.style.height = "3px", c.current.style.transform = "", h.current.style.opacity = "1", h.current.style.backgroundColor = N, p.current.style.opacity = "1", p.current.style.backgroundColor = N, f.current.style.backgroundColor = N, f.current.style.width = "100%", f.current.style.height = "3px", f.current.style.transform = "", d.current.style.color = N, d.current.classList.remove("after:content-['close']"), d.current.classList.remove("after:ml-0.5"), d.current.classList.add("after:content-['menu']"), d.current.classList.add("after:-ml-0.5"), o.current = !0;
|
|
594
694
|
}
|
|
595
|
-
}, [
|
|
596
|
-
|
|
597
|
-
}, []),
|
|
598
|
-
|
|
599
|
-
}, [
|
|
600
|
-
|
|
601
|
-
}, [
|
|
602
|
-
|
|
603
|
-
}, [
|
|
695
|
+
}, [l]), v = k(() => {
|
|
696
|
+
c.current && h.current && p.current && f.current && d.current && (c.current.style.backgroundColor = "#fff", c.current.style.width = "32px", c.current.style.height = "4px", c.current.style.transform = "translateY(9px) rotate(-45deg)", h.current.style.opacity = "0", p.current.style.opacity = "0", f.current.style.backgroundColor = "#fff", f.current.style.width = "32px", f.current.style.height = "4px", f.current.style.transform = "translateY(-9px) rotate(45deg)", d.current.style.color = "#fff", d.current.classList.remove("after:content-['menu']"), d.current.classList.remove("after:-ml-0.5"), d.current.classList.add("after:content-['close']"), d.current.classList.add("after:ml-0.5"), o.current = !1);
|
|
697
|
+
}, []), S = k(() => {
|
|
698
|
+
w(), a && a();
|
|
699
|
+
}, [w, a]), C = k(() => {
|
|
700
|
+
v(), s && s();
|
|
701
|
+
}, [v, s]), i = k(() => {
|
|
702
|
+
o.current ? C() : S();
|
|
703
|
+
}, [S, C]), m = k((N) => {
|
|
604
704
|
N.currentTarget.blur();
|
|
605
|
-
}, []),
|
|
705
|
+
}, []), M = k((N) => {
|
|
606
706
|
N.preventDefault();
|
|
607
707
|
}, []);
|
|
608
|
-
return
|
|
609
|
-
|
|
610
|
-
}, [
|
|
611
|
-
/* @__PURE__ */
|
|
612
|
-
/* @__PURE__ */
|
|
613
|
-
/* @__PURE__ */
|
|
614
|
-
/* @__PURE__ */
|
|
615
|
-
/* @__PURE__ */
|
|
708
|
+
return $(() => {
|
|
709
|
+
t ? w() : v();
|
|
710
|
+
}, [t, w, v]), /* @__PURE__ */ r.jsxs("button", { type: "button", "data-aqmb-menu-switch": !0, className: "aiquants-menu-switch inline-block h-[27px] w-[27px] cursor-pointer align-middle outline-hidden", onClick: i, onFocus: m, onMouseDown: M, tabIndex: -1, children: [
|
|
711
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-0 left-0 box-border inline-block h-[3px] w-full select-none", ref: c }),
|
|
712
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-1.5 left-0 box-border inline-block h-[3px] w-full select-none", ref: h }),
|
|
713
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-3 left-0 box-border inline-block h-[3px] w-full select-none", ref: p }),
|
|
714
|
+
/* @__PURE__ */ r.jsx("span", { className: "absolute top-[18px] left-0 box-border inline-block h-[3px] w-full select-none", ref: f }),
|
|
715
|
+
/* @__PURE__ */ r.jsx("div", { className: "absolute w-full text-xs after:mt-2 after:block", ref: d })
|
|
616
716
|
] });
|
|
617
|
-
},
|
|
618
|
-
const {
|
|
717
|
+
}, ne = typeof window < "u" ? xe : $, bt = (n) => {
|
|
718
|
+
const {
|
|
719
|
+
menuList: t,
|
|
720
|
+
menuHeader: s,
|
|
721
|
+
onClickSignout: a,
|
|
722
|
+
isMenuhide: l,
|
|
723
|
+
isMenuHide: o,
|
|
724
|
+
theme: c,
|
|
725
|
+
toggleTheme: h,
|
|
726
|
+
onMenuNavigate: p,
|
|
727
|
+
isPinned: f,
|
|
728
|
+
pinnedWidth: d = 240,
|
|
729
|
+
onPinChange: w,
|
|
730
|
+
pinnedSubmenuIds: v,
|
|
731
|
+
initialPinnedSubmenuIds: S,
|
|
732
|
+
onSubmenuPinChange: C,
|
|
733
|
+
closeOnEscape: i = "auto"
|
|
734
|
+
} = n, m = o ?? l ?? !1, [M, N] = J(() => {
|
|
619
735
|
try {
|
|
620
736
|
return localStorage.getItem("aiquants-menu-pinned") === "true";
|
|
621
737
|
} catch {
|
|
622
738
|
return !1;
|
|
623
739
|
}
|
|
624
|
-
}),
|
|
625
|
-
|
|
626
|
-
|
|
740
|
+
}), j = f !== void 0 ? f : M, [I, L] = J(j);
|
|
741
|
+
$(() => {
|
|
742
|
+
j && L(!0);
|
|
743
|
+
}, [j]);
|
|
744
|
+
const [z, B] = J(() => {
|
|
745
|
+
if (S)
|
|
746
|
+
return S;
|
|
627
747
|
try {
|
|
628
|
-
const
|
|
629
|
-
if (
|
|
630
|
-
const E = JSON.parse(
|
|
748
|
+
const x = localStorage.getItem("aiquants-submenu-pinned");
|
|
749
|
+
if (x) {
|
|
750
|
+
const E = JSON.parse(x);
|
|
631
751
|
if (Array.isArray(E))
|
|
632
|
-
return E.filter((
|
|
752
|
+
return E.filter((A) => typeof A == "number");
|
|
633
753
|
}
|
|
634
754
|
} catch {
|
|
635
755
|
}
|
|
636
756
|
return [];
|
|
637
|
-
}),
|
|
638
|
-
(
|
|
639
|
-
const E =
|
|
640
|
-
if (
|
|
641
|
-
|
|
757
|
+
}), Q = v !== void 0 ? v : z, D = k(
|
|
758
|
+
(x) => {
|
|
759
|
+
const E = v !== void 0 ? v : z, A = E.includes(x) ? E.filter((U) => U !== x) : [...E, x];
|
|
760
|
+
if (v === void 0) {
|
|
761
|
+
B(A);
|
|
642
762
|
try {
|
|
643
|
-
localStorage.setItem("aiquants-submenu-pinned", JSON.stringify(
|
|
763
|
+
localStorage.setItem("aiquants-submenu-pinned", JSON.stringify(A));
|
|
644
764
|
} catch {
|
|
645
765
|
}
|
|
646
766
|
}
|
|
647
|
-
|
|
767
|
+
C && C(A);
|
|
648
768
|
},
|
|
649
|
-
[
|
|
650
|
-
);
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
document.documentElement.style.setProperty("--aiquants-menu-pinned-width",
|
|
769
|
+
[v, z, C]
|
|
770
|
+
), Y = T(w);
|
|
771
|
+
ne(() => {
|
|
772
|
+
Y.current = w;
|
|
773
|
+
}, [w]), ne(() => {
|
|
774
|
+
const x = j ? d : 0, E = `${x}px`;
|
|
775
|
+
document.documentElement.style.setProperty("--aiquants-menu-pinned-width", E), de(j, x);
|
|
776
|
+
}, [j, d]), ne(() => () => {
|
|
777
|
+
document.documentElement.style.setProperty("--aiquants-menu-pinned-width", "0px"), de(!1, 0);
|
|
656
778
|
}, []);
|
|
657
|
-
const
|
|
658
|
-
|
|
659
|
-
}, []),
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
779
|
+
const X = k(() => {
|
|
780
|
+
L(!0);
|
|
781
|
+
}, []), R = k(() => {
|
|
782
|
+
if (L(!1), f === void 0) {
|
|
783
|
+
N(!1);
|
|
784
|
+
try {
|
|
785
|
+
localStorage.removeItem("aiquants-menu-pinned");
|
|
786
|
+
} catch {
|
|
787
|
+
}
|
|
664
788
|
}
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
});
|
|
680
|
-
}, []), W = w(
|
|
681
|
-
(k) => {
|
|
682
|
-
p && p(k), x || m(!1);
|
|
789
|
+
Y.current?.(!1, 0);
|
|
790
|
+
}, [f]), F = k(() => {
|
|
791
|
+
const x = !j, E = x ? d : 0;
|
|
792
|
+
if (f === void 0) {
|
|
793
|
+
N(x);
|
|
794
|
+
try {
|
|
795
|
+
x ? localStorage.setItem("aiquants-menu-pinned", "true") : localStorage.removeItem("aiquants-menu-pinned");
|
|
796
|
+
} catch {
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
Y.current?.(x, E);
|
|
800
|
+
}, [j, f, d]), K = k(
|
|
801
|
+
(x) => {
|
|
802
|
+
p && p(x), j || L(!1);
|
|
683
803
|
},
|
|
684
|
-
[p,
|
|
685
|
-
),
|
|
686
|
-
(
|
|
687
|
-
|
|
804
|
+
[p, j]
|
|
805
|
+
), O = k(
|
|
806
|
+
(x) => {
|
|
807
|
+
x.key === "Escape" && R();
|
|
688
808
|
},
|
|
689
|
-
[
|
|
690
|
-
),
|
|
691
|
-
return
|
|
692
|
-
window.removeEventListener("keydown",
|
|
693
|
-
}), [
|
|
694
|
-
/* @__PURE__ */
|
|
695
|
-
/* @__PURE__ */
|
|
696
|
-
|
|
809
|
+
[R]
|
|
810
|
+
), H = i === !0 || i === "auto" && !j;
|
|
811
|
+
return $(() => (I && H ? window.addEventListener("keydown", O) : window.removeEventListener("keydown", O), () => {
|
|
812
|
+
window.removeEventListener("keydown", O);
|
|
813
|
+
}), [I, H, O]), m ? null : /* @__PURE__ */ r.jsxs("div", { className: `aiquants-menu-bar ${c}`, children: [
|
|
814
|
+
/* @__PURE__ */ r.jsx(dt, { onMenuClose: R, onMenuOpen: X, open: !I, theme: c }),
|
|
815
|
+
/* @__PURE__ */ r.jsx(
|
|
816
|
+
ct,
|
|
697
817
|
{
|
|
698
|
-
menuList:
|
|
699
|
-
menuHeader:
|
|
818
|
+
menuList: t,
|
|
819
|
+
menuHeader: s,
|
|
700
820
|
onClickSignout: a,
|
|
701
|
-
onMenuSelected:
|
|
702
|
-
open:
|
|
703
|
-
theme:
|
|
704
|
-
toggleTheme:
|
|
705
|
-
isPinned:
|
|
706
|
-
onTogglePin:
|
|
707
|
-
pinnedSubmenuIds:
|
|
708
|
-
onToggleSubmenuPin:
|
|
821
|
+
onMenuSelected: K,
|
|
822
|
+
open: I,
|
|
823
|
+
theme: c,
|
|
824
|
+
toggleTheme: h,
|
|
825
|
+
isPinned: j,
|
|
826
|
+
onTogglePin: F,
|
|
827
|
+
pinnedSubmenuIds: Q,
|
|
828
|
+
onToggleSubmenuPin: D
|
|
709
829
|
}
|
|
710
830
|
),
|
|
711
|
-
/* @__PURE__ */
|
|
831
|
+
/* @__PURE__ */ r.jsx(ut, { isOverlay: I && !j, onOverlayClick: R })
|
|
712
832
|
] });
|
|
713
833
|
};
|
|
714
834
|
export {
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
835
|
+
Ye as DefaultLink,
|
|
836
|
+
se as MENU_PIN_CHANGE_EVENT,
|
|
837
|
+
bt as MenuBar,
|
|
838
|
+
mt as SessionInfo,
|
|
839
|
+
de as dispatchMenuPinChange,
|
|
840
|
+
ve as getInitialPinState,
|
|
841
|
+
He as subscribeMenuPinChange,
|
|
842
|
+
pt as useMenuPinState
|
|
718
843
|
};
|