@parallelworks/tandem-web 0.139.0 → 0.139.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/AppRoot.js +9 -8
- package/components/SettingsNav.js +6 -6
- package/components/settings.js +10 -10
- package/hostedApp.js +47 -45
- package/lib/pageTitle.js +22 -10
- package/package.json +1 -1
- package/pages/areas.js +112 -112
- package/pages/decisions.js +36 -36
- package/pages/issues.js +34 -34
- package/pages/projects.js +109 -109
- package/pages/triage.js +64 -64
- package/routes/_workspace/agents/_slug2.js +21 -21
- package/routes/_workspace/agents/index2.js +16 -16
- package/routes/_workspace/areas/_area2.js +105 -105
- package/routes/_workspace/docs/_doc2.js +185 -185
- package/routes/_workspace/graph3.js +8 -8
- package/routes/_workspace/issues/_identifier2.js +484 -484
- package/routes/_workspace/knowledge/_term2.js +166 -166
- package/routes/_workspace/knowledge/index2.js +33 -33
- package/routes/_workspace/measures3.js +18 -18
- package/routes/_workspace/notifications2.js +112 -112
- package/routes/_workspace/people/_username2.js +36 -36
- package/routes/_workspace/projects/_projectId3.js +215 -215
- package/routes/_workspace/teams/_key/cycles/_number2.js +16 -16
- package/routes/_workspace/teams/_key/cycles/index2.js +38 -38
- package/routes/_workspace/teams/_key/settings2.js +131 -131
- package/routes/_workspace2.js +394 -394
- package/routes/docs/route2.js +5 -5
- package/routes/new2.js +8 -8
- package/routes/request2._token.js +4 -4
package/pages/decisions.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { issuePath as e } from "../lib/branch.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { usePageTitle as t } from "../lib/pageTitle.js";
|
|
3
|
+
import { Link as n } from "../lib/router.js";
|
|
4
|
+
import { allDecisionsQuery as r, inboxQuery as i, myAllDecisionsQuery as a, myDecisionsQuery as o, teamsQuery as s } from "../api/queries.js";
|
|
5
|
+
import { ChevronRightIcon as c, PriorityIcon as l, usePriorityNames as u } from "../components/icons.js";
|
|
6
|
+
import { copyItem as d, useLinkItems as f } from "../lib/menus.js";
|
|
7
7
|
import { AnsweredDecision as p, DecisionCard as m } from "../components/AgentWork.js";
|
|
8
8
|
import { FavoriteStar as h } from "../components/FavoriteStar.js";
|
|
9
9
|
import { recentlyAnswered as g, saveScope as _, savedScope as v } from "../lib/decisionScope.js";
|
|
@@ -23,8 +23,8 @@ function A(e) {
|
|
|
23
23
|
}
|
|
24
24
|
return [...t.values()];
|
|
25
25
|
}
|
|
26
|
-
function j({ first:
|
|
27
|
-
let p = T("decisions"), m =
|
|
26
|
+
function j({ first: t, count: r, open: i, onToggle: a, showWorkspace: o, children: s }) {
|
|
27
|
+
let p = T("decisions"), m = f(), h = x(), g = u();
|
|
28
28
|
return /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ D("div", {
|
|
29
29
|
className: "mb-1.5 flex min-w-0 items-center gap-1 text-xs text-muted-foreground",
|
|
30
30
|
children: [
|
|
@@ -32,40 +32,40 @@ function j({ first: n, count: r, open: i, onToggle: a, showWorkspace: o, childre
|
|
|
32
32
|
type: "button",
|
|
33
33
|
onClick: a,
|
|
34
34
|
"aria-expanded": i,
|
|
35
|
-
"aria-label": p(i ? "hideDecisions" : "showDecisions", { issue:
|
|
35
|
+
"aria-label": p(i ? "hideDecisions" : "showDecisions", { issue: t.identifier }),
|
|
36
36
|
className: "-ml-1 shrink-0 rounded p-0.5 hover:bg-muted hover:text-foreground",
|
|
37
|
-
children: /* @__PURE__ */ E(
|
|
37
|
+
children: /* @__PURE__ */ E(c, { className: i ? "size-3.5 rotate-90" : "size-3.5" })
|
|
38
38
|
}),
|
|
39
|
-
/* @__PURE__ */ D(
|
|
39
|
+
/* @__PURE__ */ D(n, {
|
|
40
40
|
to: "/$workspace/issues/$identifier",
|
|
41
41
|
params: {
|
|
42
|
-
workspace:
|
|
43
|
-
identifier:
|
|
42
|
+
workspace: t.workspace,
|
|
43
|
+
identifier: t.identifier
|
|
44
44
|
},
|
|
45
|
-
onContextMenu: (
|
|
45
|
+
onContextMenu: (n) => h(n, [...m(e(t.workspace, t.identifier)), d(p("copyId"), t.identifier)]),
|
|
46
46
|
className: "flex min-w-0 items-center gap-2 hover:text-foreground",
|
|
47
47
|
children: [
|
|
48
48
|
o && /* @__PURE__ */ E("span", {
|
|
49
49
|
className: "max-w-[40%] shrink-0 truncate rounded bg-muted px-1.5 py-0.5 font-medium text-foreground",
|
|
50
|
-
children:
|
|
50
|
+
children: t.workspaceName
|
|
51
51
|
}),
|
|
52
52
|
/* @__PURE__ */ E(b, {
|
|
53
|
-
content: g[
|
|
53
|
+
content: g[t.issuePriority],
|
|
54
54
|
children: /* @__PURE__ */ D("span", {
|
|
55
55
|
className: "flex",
|
|
56
|
-
children: [/* @__PURE__ */ E(
|
|
56
|
+
children: [/* @__PURE__ */ E(l, { priority: t.issuePriority }), /* @__PURE__ */ E("span", {
|
|
57
57
|
className: "sr-only",
|
|
58
|
-
children: g[
|
|
58
|
+
children: g[t.issuePriority]
|
|
59
59
|
})]
|
|
60
60
|
})
|
|
61
61
|
}),
|
|
62
62
|
/* @__PURE__ */ E("span", {
|
|
63
63
|
className: "shrink-0 font-medium",
|
|
64
|
-
children:
|
|
64
|
+
children: t.identifier
|
|
65
65
|
}),
|
|
66
66
|
/* @__PURE__ */ E("span", {
|
|
67
67
|
className: "truncate",
|
|
68
|
-
children:
|
|
68
|
+
children: t.issueTitle
|
|
69
69
|
})
|
|
70
70
|
]
|
|
71
71
|
}),
|
|
@@ -76,19 +76,19 @@ function j({ first: n, count: r, open: i, onToggle: a, showWorkspace: o, childre
|
|
|
76
76
|
]
|
|
77
77
|
}), i && /* @__PURE__ */ E("div", {
|
|
78
78
|
className: "space-y-3",
|
|
79
|
-
children:
|
|
79
|
+
children: s
|
|
80
80
|
})] });
|
|
81
81
|
}
|
|
82
82
|
function M() {
|
|
83
|
-
let { workspace: e, key:
|
|
84
|
-
|
|
83
|
+
let { workspace: e, key: n } = S({ strict: !1 }), l = T("decisions"), u = x(), { team: d = n } = C({ strict: !1 }), { data: f } = O(s(e)), b = f.find((e) => e.key === d);
|
|
84
|
+
t(l("title"), b?.name);
|
|
85
85
|
let [M, N] = w(v), P = b ? "workspace" : M, F = P === "all", I = (e) => b ? e.filter((e) => e.identifier.startsWith(`${b.key}-`)) : e, L = (e) => {
|
|
86
86
|
N(e), _(e);
|
|
87
|
-
}, { data: R } = O(F ?
|
|
87
|
+
}, { data: R } = O(F ? o : i(e)), { data: z } = O(F ? a : r(e)), B = I(R), V = g(I(z)), [H, U] = w(/* @__PURE__ */ new Set()), [W, G] = w(!1), K = (e) => U((t) => {
|
|
88
88
|
let n = new Set(t);
|
|
89
89
|
return n.delete(e) || n.add(e), n;
|
|
90
90
|
}), q = () => k.map((e) => ({
|
|
91
|
-
label:
|
|
91
|
+
label: l(`scopes.${e}`),
|
|
92
92
|
checked: e === P,
|
|
93
93
|
onClick: () => L(e)
|
|
94
94
|
}));
|
|
@@ -99,7 +99,7 @@ function M() {
|
|
|
99
99
|
children: [
|
|
100
100
|
/* @__PURE__ */ E("h1", {
|
|
101
101
|
className: "text-sm font-semibold",
|
|
102
|
-
children: b ?
|
|
102
|
+
children: b ? l("teamTitle", { team: b.name }) : l("title")
|
|
103
103
|
}),
|
|
104
104
|
!b && /* @__PURE__ */ E(h, {
|
|
105
105
|
workspace: e,
|
|
@@ -108,20 +108,20 @@ function M() {
|
|
|
108
108
|
}),
|
|
109
109
|
/* @__PURE__ */ E("span", {
|
|
110
110
|
className: "text-xs text-muted-foreground",
|
|
111
|
-
children:
|
|
111
|
+
children: l("openCount", { count: B.length })
|
|
112
112
|
}),
|
|
113
113
|
!b && /* @__PURE__ */ E("div", {
|
|
114
114
|
className: "ml-auto",
|
|
115
115
|
children: /* @__PURE__ */ E(y, {
|
|
116
116
|
size: "sm",
|
|
117
|
-
label:
|
|
117
|
+
label: l("scope"),
|
|
118
118
|
options: k.map((e) => ({
|
|
119
119
|
value: e,
|
|
120
|
-
label:
|
|
120
|
+
label: l(`scopes.${e}`)
|
|
121
121
|
})),
|
|
122
122
|
value: P,
|
|
123
123
|
onValueChange: L,
|
|
124
|
-
onContextMenu: (e) =>
|
|
124
|
+
onContextMenu: (e) => u(e, q())
|
|
125
125
|
})
|
|
126
126
|
})
|
|
127
127
|
]
|
|
@@ -134,7 +134,7 @@ function M() {
|
|
|
134
134
|
let [t] = e, n = `open:${t.workspace}/${t.identifier}`;
|
|
135
135
|
return /* @__PURE__ */ E(j, {
|
|
136
136
|
first: t,
|
|
137
|
-
count:
|
|
137
|
+
count: l("openCount", { count: e.length }),
|
|
138
138
|
open: !H.has(n),
|
|
139
139
|
onToggle: () => K(n),
|
|
140
140
|
showWorkspace: F,
|
|
@@ -148,23 +148,23 @@ function M() {
|
|
|
148
148
|
className: "py-24 text-center",
|
|
149
149
|
children: [/* @__PURE__ */ E("p", {
|
|
150
150
|
className: "text-sm font-medium",
|
|
151
|
-
children:
|
|
151
|
+
children: l("emptyTitle")
|
|
152
152
|
}), /* @__PURE__ */ E("p", {
|
|
153
153
|
className: "mt-1 text-sm text-muted-foreground",
|
|
154
|
-
children:
|
|
154
|
+
children: l(F ? "emptyDescriptionAll" : "emptyDescription")
|
|
155
155
|
})]
|
|
156
156
|
}),
|
|
157
157
|
V.length > 0 && /* @__PURE__ */ D("section", {
|
|
158
158
|
className: "space-y-3 pt-6",
|
|
159
|
-
"aria-label":
|
|
159
|
+
"aria-label": l("recentlyAnswered"),
|
|
160
160
|
children: [/* @__PURE__ */ E("h2", { children: /* @__PURE__ */ D("button", {
|
|
161
161
|
type: "button",
|
|
162
162
|
onClick: () => G((e) => !e),
|
|
163
163
|
"aria-expanded": W,
|
|
164
164
|
className: "-ml-1 flex items-center gap-1 rounded px-1 text-base font-semibold hover:bg-muted",
|
|
165
165
|
children: [
|
|
166
|
-
/* @__PURE__ */ E(
|
|
167
|
-
|
|
166
|
+
/* @__PURE__ */ E(c, { className: W ? "size-4 rotate-90" : "size-4" }),
|
|
167
|
+
l("recentlyAnswered"),
|
|
168
168
|
/* @__PURE__ */ E("span", {
|
|
169
169
|
className: "ml-1 text-xs font-normal text-muted-foreground",
|
|
170
170
|
children: V.length
|
|
@@ -174,7 +174,7 @@ function M() {
|
|
|
174
174
|
let [t] = e, n = `answered:${t.workspace}/${t.identifier}`;
|
|
175
175
|
return /* @__PURE__ */ E(j, {
|
|
176
176
|
first: t,
|
|
177
|
-
count:
|
|
177
|
+
count: l("answeredCount", { count: e.length }),
|
|
178
178
|
open: H.has(n),
|
|
179
179
|
onToggle: () => K(n),
|
|
180
180
|
showWorkspace: F,
|
package/pages/issues.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { basePath as e } from "../lib/base.js";
|
|
2
2
|
import { ErrorMessage as t } from "../components/status.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
3
|
+
import { usePageTitle as n } from "../lib/pageTitle.js";
|
|
4
|
+
import { useNavigate as r } from "../lib/router.js";
|
|
5
|
+
import { cyclesQuery as i, issuesQuery as a, labelsQuery as ee, meQuery as te, projectsQuery as ne, statusesQuery as re, teamsQuery as ie } from "../api/queries.js";
|
|
6
|
+
import { BoardIcon as ae, ChartIcon as oe, CloseIcon as se, DownloadIcon as ce, ListViewIcon as le, SidePanelIcon as ue, UploadIcon as de, usePriorityNames as fe } from "../components/icons.js";
|
|
7
|
+
import { isViewAt as pe, viewRef as me } from "../lib/refs.js";
|
|
8
|
+
import { groupIssues as he, groupings as ge, issueFilterOf as _e, orders as ve, sortIssues as ye, views as o } from "../lib/issueList.js";
|
|
9
|
+
import { issuesHref as be } from "../lib/teamPaths.js";
|
|
10
|
+
import { usePeople as xe } from "../lib/people.js";
|
|
11
|
+
import { useIssueMenu as Se } from "../lib/issueMenu.js";
|
|
12
|
+
import { useNewIssue as Ce } from "../lib/newIssue.js";
|
|
13
|
+
import { usePaletteSelection as we } from "../lib/palette.js";
|
|
14
14
|
import { useCan as Te } from "../lib/roles.js";
|
|
15
15
|
import { ViewDialog as Ee } from "../components/ViewDialog.js";
|
|
16
16
|
import { filtersOf as De, sameFilters as Oe, useSavedViews as ke, viewSearch as Ae } from "../lib/views.js";
|
|
@@ -53,7 +53,7 @@ function b({ person: e } = {}) {
|
|
|
53
53
|
} : {
|
|
54
54
|
...w,
|
|
55
55
|
assignee: e
|
|
56
|
-
} : w, pt =
|
|
56
|
+
} : w, pt = r(), mt = (t) => e ? be(S, { ...y(t) }).replace(`/${S}/issues`, `/${S}/people/${encodeURIComponent(e)}`) : be(S, { ...t }), E = (t, n) => {
|
|
57
57
|
let { team: r, ...i } = t;
|
|
58
58
|
return pt(e ? {
|
|
59
59
|
to: "/$workspace/people/$username",
|
|
@@ -81,7 +81,7 @@ function b({ person: e } = {}) {
|
|
|
81
81
|
ht.current = (e) => E(e, !0);
|
|
82
82
|
let gt = p((e) => E(c(T, "q", e), !0));
|
|
83
83
|
gt.current = (e) => E(c(T, "q", e), !0);
|
|
84
|
-
let { data: D } = st(
|
|
84
|
+
let { data: D } = st(te), { data: O } = st(ie(S)), _t = Ce(), k = T.view ?? "active", [A, vt] = m(T.q ?? ""), j = p(null);
|
|
85
85
|
d(() => {
|
|
86
86
|
let e = setTimeout(() => {
|
|
87
87
|
(T.q ?? "") !== A && gt.current(A);
|
|
@@ -89,13 +89,13 @@ function b({ person: e } = {}) {
|
|
|
89
89
|
return () => clearTimeout(e);
|
|
90
90
|
}, [A, T.q]);
|
|
91
91
|
let { data: yt } = v({
|
|
92
|
-
...
|
|
92
|
+
...re(S, T.team ?? ""),
|
|
93
93
|
enabled: !!T.status && !!T.team
|
|
94
|
-
}), bt =
|
|
95
|
-
...
|
|
94
|
+
}), bt = _e(T, yt), { data: M, error: xt, isFetching: St } = v({
|
|
95
|
+
...a(S, bt),
|
|
96
96
|
placeholderData: ot,
|
|
97
97
|
enabled: !T.status || !T.team || !!yt
|
|
98
|
-
}), N = M?.issues ?? [], Ct =
|
|
98
|
+
}), N = M?.issues ?? [], Ct = fe(), { nameOf: wt, avatarOf: Tt } = xe(S), Et = T.saved ? {} : Xe(), P = ve.includes(T.order) ? T.order : Et.order ?? "updated", F = ge.includes(T.group) ? T.group : Et.group ?? "status", I = T.layout === "board" || !T.layout && Et.layout === "board", [Dt, Ot] = m(() => {
|
|
99
99
|
try {
|
|
100
100
|
return localStorage.getItem(Ye) !== "hidden";
|
|
101
101
|
} catch {
|
|
@@ -117,7 +117,7 @@ function b({ person: e } = {}) {
|
|
|
117
117
|
localStorage.setItem(qe, e ? "hidden" : "shown");
|
|
118
118
|
} catch {}
|
|
119
119
|
return !e;
|
|
120
|
-
}), [Nt, Pt] = m("assignees"), [L, Ft] = m(null), R = L ? N.filter((e) => He(e, L.tab).includes(L.key)) : N, z = f(() =>
|
|
120
|
+
}), [Nt, Pt] = m("assignees"), [L, Ft] = m(null), R = L ? N.filter((e) => He(e, L.tab).includes(L.key)) : N, z = f(() => he(ye(R, P), F, {
|
|
121
121
|
status: (e) => b(`groups.${e}`),
|
|
122
122
|
priority: (e) => Ct[e] ?? "",
|
|
123
123
|
person: wt,
|
|
@@ -137,7 +137,7 @@ function b({ person: e } = {}) {
|
|
|
137
137
|
wt,
|
|
138
138
|
Tt,
|
|
139
139
|
I
|
|
140
|
-
]), B = f(() => z.flatMap((e) => e.issues), [z]), [It, Lt] = m(0), V = B[Math.min(It, B.length - 1)], [H, U] = m(/* @__PURE__ */ new Set()), W = p(null), Rt =
|
|
140
|
+
]), B = f(() => z.flatMap((e) => e.issues), [z]), [It, Lt] = m(0), V = B[Math.min(It, B.length - 1)], [H, U] = m(/* @__PURE__ */ new Set()), W = p(null), Rt = Se(S), zt = Me(S, O), { people: Bt } = Le(), Vt = f(() => {
|
|
141
141
|
let e = /* @__PURE__ */ new Map();
|
|
142
142
|
for (let t of Bt) {
|
|
143
143
|
if (!t.identifier || t.username === D?.user.username) continue;
|
|
@@ -146,7 +146,7 @@ function b({ person: e } = {}) {
|
|
|
146
146
|
}
|
|
147
147
|
return e;
|
|
148
148
|
}, [Bt, D?.user.username]), Ht = nt(), Ut = f(() => B.filter((e) => H.has(e.id)), [B, H]);
|
|
149
|
-
|
|
149
|
+
we(Ut);
|
|
150
150
|
let Wt = (e) => U((t) => {
|
|
151
151
|
let n = new Set(t);
|
|
152
152
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
@@ -196,8 +196,8 @@ function b({ person: e } = {}) {
|
|
|
196
196
|
}, []), d(() => {
|
|
197
197
|
document.getElementById(`row-${V?.id}`)?.scrollIntoView({ block: "nearest" });
|
|
198
198
|
}, [V]);
|
|
199
|
-
let K = O.find((e) => e.key === T.team), q = Pe(S, T, (e) => E(Fe(T, e), !0), !!C && !T.assignee && !T.creator && !T.saved), Yt =
|
|
200
|
-
...
|
|
199
|
+
let K = O.find((e) => e.key === T.team), q = Pe(S, T, (e) => E(Fe(T, e), !0), !!C && !T.assignee && !T.creator && !T.saved), Yt = be(S, { ...c(T, "q", void 0) }), { views: Xt, create: Zt, update: Qt } = ke(S), J = Xt.find((e) => pe(e, T.saved)), { data: $t } = v(ee(S)), { data: en } = v(ne(S)), { data: tn } = v({
|
|
200
|
+
...i(S, K?.key ?? ""),
|
|
201
201
|
enabled: !!K
|
|
202
202
|
});
|
|
203
203
|
d(() => {
|
|
@@ -206,7 +206,7 @@ function b({ person: e } = {}) {
|
|
|
206
206
|
let r = en?.find((e) => e.id === T.project);
|
|
207
207
|
T.project && e.test(T.project) && r && (t.project = je(r));
|
|
208
208
|
let i = tn?.find((e) => e.id === T.cycle);
|
|
209
|
-
T.cycle && e.test(T.cycle) && i && (t.cycle = String(i.number)), T.saved && e.test(T.saved) && J && (t.saved =
|
|
209
|
+
T.cycle && e.test(T.cycle) && i && (t.cycle = String(i.number)), T.saved && e.test(T.saved) && J && (t.saved = me(J)), JSON.stringify(t) !== JSON.stringify(T) && ht.current(t);
|
|
210
210
|
}, [
|
|
211
211
|
T,
|
|
212
212
|
$t,
|
|
@@ -220,7 +220,7 @@ function b({ person: e } = {}) {
|
|
|
220
220
|
...F !== "status" && { group: F },
|
|
221
221
|
...I && { layout: "board" }
|
|
222
222
|
}), nn = J ? !Oe(J.filters, Y) : Object.keys(Y).length > 0, rn = Te(S, "create_issues", T.team ? { team: T.team } : void 0), an = Te(S, "save_views"), [on, sn] = m(!1), [cn, ln] = m(null), X = h("savedViews"), Z = D?.user.username, un = !J && !K && (!T.assigneeKind && T.assignee === Z && !T.creator || T.creator === Z && !T.assignee), Q = e ?? (un ? Z : void 0), $ = J?.name ?? K?.name ?? (e && e !== Z ? b("personIssues", { name: wt("user", e) }) : !T.assigneeKind && T.assignee === Z || T.creator === Z ? b("mine") : b("all")), dn = h("workspace");
|
|
223
|
-
|
|
223
|
+
n(...K && !J ? [dn("issues"), K.name] : [$]);
|
|
224
224
|
let fn = nn && /* @__PURE__ */ _(at, { children: [J?.canEdit && /* @__PURE__ */ g(l, {
|
|
225
225
|
type: "button",
|
|
226
226
|
size: "sm",
|
|
@@ -300,11 +300,11 @@ function b({ person: e } = {}) {
|
|
|
300
300
|
layouts: [{
|
|
301
301
|
value: "list",
|
|
302
302
|
label: b("layouts.list"),
|
|
303
|
-
icon: /* @__PURE__ */ g(
|
|
303
|
+
icon: /* @__PURE__ */ g(le, {})
|
|
304
304
|
}, {
|
|
305
305
|
value: "board",
|
|
306
306
|
label: b("layouts.board"),
|
|
307
|
-
icon: /* @__PURE__ */ g(
|
|
307
|
+
icon: /* @__PURE__ */ g(ae, {})
|
|
308
308
|
}],
|
|
309
309
|
layout: I ? "board" : "list",
|
|
310
310
|
onLayoutChange: (e) => {
|
|
@@ -315,7 +315,7 @@ function b({ person: e } = {}) {
|
|
|
315
315
|
label: b("orderBy"),
|
|
316
316
|
children: /* @__PURE__ */ g(et, {
|
|
317
317
|
value: P,
|
|
318
|
-
items:
|
|
318
|
+
items: ve.map((e) => ({
|
|
319
319
|
value: e,
|
|
320
320
|
label: b(`order.${e}`)
|
|
321
321
|
})),
|
|
@@ -329,7 +329,7 @@ function b({ person: e } = {}) {
|
|
|
329
329
|
label: b("groupBy"),
|
|
330
330
|
children: /* @__PURE__ */ g(et, {
|
|
331
331
|
value: F,
|
|
332
|
-
items:
|
|
332
|
+
items: ge.map((e) => ({
|
|
333
333
|
value: e,
|
|
334
334
|
label: b(`grouping.${e}`)
|
|
335
335
|
})),
|
|
@@ -344,7 +344,7 @@ function b({ person: e } = {}) {
|
|
|
344
344
|
/* @__PURE__ */ g(u, {
|
|
345
345
|
variant: "secondary",
|
|
346
346
|
size: "sm",
|
|
347
|
-
icon: /* @__PURE__ */ g(
|
|
347
|
+
icon: /* @__PURE__ */ g(ue, { className: "size-3.5" }),
|
|
348
348
|
label: b(Dt ? "hidePanel" : "showPanel"),
|
|
349
349
|
"aria-pressed": Dt,
|
|
350
350
|
onClick: kt,
|
|
@@ -353,7 +353,7 @@ function b({ person: e } = {}) {
|
|
|
353
353
|
/* @__PURE__ */ g(u, {
|
|
354
354
|
variant: "secondary",
|
|
355
355
|
size: "sm",
|
|
356
|
-
icon: /* @__PURE__ */ g(
|
|
356
|
+
icon: /* @__PURE__ */ g(oe, { className: "size-3.5" }),
|
|
357
357
|
label: b(At ? "hideInsights" : "showInsights"),
|
|
358
358
|
"aria-pressed": At,
|
|
359
359
|
onClick: Mt
|
|
@@ -361,14 +361,14 @@ function b({ person: e } = {}) {
|
|
|
361
361
|
/* @__PURE__ */ g(u, {
|
|
362
362
|
variant: "secondary",
|
|
363
363
|
size: "sm",
|
|
364
|
-
icon: /* @__PURE__ */ g(
|
|
364
|
+
icon: /* @__PURE__ */ g(ce, { className: "size-3.5" }),
|
|
365
365
|
label: b("exportCsv"),
|
|
366
366
|
onClick: () => ft(S, bt)
|
|
367
367
|
}),
|
|
368
368
|
T.team && rn && /* @__PURE__ */ g(u, {
|
|
369
369
|
variant: "secondary",
|
|
370
370
|
size: "sm",
|
|
371
|
-
icon: /* @__PURE__ */ g(
|
|
371
|
+
icon: /* @__PURE__ */ g(de, { className: "size-3.5" }),
|
|
372
372
|
label: b("importCsv"),
|
|
373
373
|
onClick: () => We((e, t) => ln({
|
|
374
374
|
name: e,
|
|
@@ -441,7 +441,7 @@ function b({ person: e } = {}) {
|
|
|
441
441
|
/* @__PURE__ */ g(u, {
|
|
442
442
|
size: "sm",
|
|
443
443
|
variant: "ghost",
|
|
444
|
-
icon: /* @__PURE__ */ g(
|
|
444
|
+
icon: /* @__PURE__ */ g(se, {}),
|
|
445
445
|
label: b("clear"),
|
|
446
446
|
onClick: () => U(/* @__PURE__ */ new Set())
|
|
447
447
|
})
|
|
@@ -510,7 +510,7 @@ function b({ person: e } = {}) {
|
|
|
510
510
|
});
|
|
511
511
|
}
|
|
512
512
|
function dt({ workspace: e, filtered: t, onCreate: n }) {
|
|
513
|
-
let r = h("issues.empty"), { data: i = [] } = v(
|
|
513
|
+
let r = h("issues.empty"), { data: i = [] } = v(ie(e)), a = Te(e, "manage_teams");
|
|
514
514
|
return i.some((e) => !e.archivedAt) ? /* @__PURE__ */ _("div", {
|
|
515
515
|
className: "mx-auto max-w-sm px-4 py-24 text-center",
|
|
516
516
|
children: [
|