@yuku123/z-team-component 0.2.25 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/ChangeLogView-CG-o5YP1.js +502 -0
  2. package/dist/{InvitationManagementPage-BnvfjueJ.js → InvitationManagementPage-DpA3Xlq1.js} +2 -2
  3. package/dist/{OnboardingPage-B1uHZfRm.js → OnboardingPage-DFRAwruv.js} +2 -2
  4. package/dist/{ProjectApp-C6GUGbAD.js → ProjectApp-BquB_X7K.js} +2 -2
  5. package/dist/{SystemShell-DSbSJWXv.js → SystemShell-BLXTOqFb.js} +1 -1
  6. package/dist/{api-BwXzkm3f.js → api-CX7MUpws.js} +1 -1
  7. package/dist/ctc-sso-DtJHC-2M.js +117 -0
  8. package/dist/index-BYEx4vlI.js +6652 -0
  9. package/dist/{index-C1C2qyDr.js → index-BafC42Cl.js} +96 -66
  10. package/dist/{index-mv7nvapp.js → index-BylksTyk.js} +1 -1
  11. package/dist/{index-BMRIUhOL.js → index-C2aPiQSz.js} +1 -1
  12. package/dist/{index-Jrz1Ho0h.js → index-C9BOtjtQ.js} +1 -3
  13. package/dist/index-CPF3LS0x.js +914 -0
  14. package/dist/{index-8V37FP9c.js → index-CTD7k9dP.js} +1 -1
  15. package/dist/{index-3AXvDKQz.js → index-CcTdM5kT.js} +2 -2
  16. package/dist/index-CiMxCTOS.js +8 -0
  17. package/dist/{index-DkcpD37-.js → index-DIxwe_pk.js} +1 -1
  18. package/dist/{index-CGDpGIZC.js → index-Da7ls5q6.js} +1 -1
  19. package/dist/{index-B3ikipDf.js → index-Dao4uqQd.js} +1 -1
  20. package/dist/{index-BmK_rWsV.js → index-UsGqMo11.js} +17 -9
  21. package/dist/{index-CkH1OY5_.js → index-dSnK7qcL.js} +815 -767
  22. package/dist/index.js +1 -1
  23. package/dist/pages.js +1 -1
  24. package/dist/z-team-component.css +2 -2
  25. package/package.json +1 -1
  26. package/dist/ctc-sso-B62FfkZg.js +0 -70
  27. package/dist/index-Bsh58cwF.js +0 -975
  28. package/dist/index-DK_aR-Vu.js +0 -499
  29. package/dist/index-DPnfP7Cb.js +0 -6879
@@ -0,0 +1,502 @@
1
+ import { jsxs as r, jsx as a, Fragment as he } from "react/jsx-runtime";
2
+ import { h as _e, j as Z, k as pe } from "./api--Fg0hL9Y.js";
3
+ import { message as q, Button as ge, DatePicker as ue, Spin as A, Empty as J, Tag as Q } from "antd";
4
+ import z from "dayjs";
5
+ import "./echarts-B1OU1xr4.js";
6
+ import { useState as p, useCallback as L, useEffect as T, useMemo as W, useRef as U } from "react";
7
+ import * as fe from "echarts/core";
8
+ const ye = "_screen_1szi2_2", ve = "_banner_1szi2_14", be = "_shareBtn_1szi2_22", Ne = "_bannerInner_1szi2_49", ze = "_bannerLeft_1szi2_56", De = "_bannerTitle_1szi2_62", Te = "_bannerSubtitle_1szi2_70", Se = "_stats_1szi2_76", we = "_statItem_1szi2_82", Ce = "_statNum_1szi2_89", Le = "_statLabel_1szi2_96", Be = "_statDivider_1szi2_101", Re = "_chartSection_1szi2_108", xe = "_chartInner_1szi2_114", Ie = "_chartHeader_1szi2_121", Ee = "_chartHeaderLeft_1szi2_129", Oe = "_chartRangeWrap_1szi2_135", He = "_rangeBtns_1szi2_142", Ae = "_rangeBtn_1szi2_142", We = "_rangeBtnActive_1szi2_166", ke = "_chartRangePicker_1szi2_179", Me = "_chartTitle_1szi2_193", Ve = "_chartSubtitle_1szi2_200", $e = "_chartBody_1szi2_206", je = "_chartLoading_1szi2_210", Pe = "_chartEmpty_1szi2_211", Ge = "_main_1szi2_221", Fe = "_timeline_1szi2_232", Ye = "_timelineHeader_1szi2_243", Ke = "_timelineScroll_1szi2_252", Xe = "_timelineItem_1szi2_258", Ze = "_timelineItemActive_1szi2_273", qe = "_timelineDot_1szi2_278", Je = "_timelineContent_1szi2_293", Qe = "_timelineTop_1szi2_298", Ue = "_versionTag_1szi2_305", et = "_versionDate_1szi2_311", tt = "_timelineSummary_1szi2_316", at = "_timelineMeta_1szi2_326", it = "_latestBadge_1szi2_332", nt = "_detail_1szi2_344", st = "_detailHeader_1szi2_355", rt = "_detailTitleRow_1szi2_361", lt = "_detailVersion_1szi2_367", ct = "_detailDate_1szi2_373", ot = "_detailSummary_1szi2_378", dt = "_detailScroll_1szi2_385", mt = "_pointGrid_1szi2_392", ht = "_pointCard_1szi2_398", _t = "_pointHead_1szi2_412", pt = "_pointTitle_1szi2_420", gt = "_pointHeadRight_1szi2_428", ut = "_committerTag_1szi2_437", ft = "_pointTag_1szi2_448", yt = "_pointDetail_1szi2_454", vt = "_loadingWrap_1szi2_462", bt = "_emptyWrap_1szi2_469", Nt = "_embedScreen_1szi2_480", e = {
9
+ screen: ye,
10
+ banner: ve,
11
+ shareBtn: be,
12
+ bannerInner: Ne,
13
+ bannerLeft: ze,
14
+ bannerTitle: De,
15
+ bannerSubtitle: Te,
16
+ stats: Se,
17
+ statItem: we,
18
+ statNum: Ce,
19
+ statLabel: Le,
20
+ statDivider: Be,
21
+ chartSection: Re,
22
+ chartInner: xe,
23
+ chartHeader: Ie,
24
+ chartHeaderLeft: Ee,
25
+ chartRangeWrap: Oe,
26
+ rangeBtns: He,
27
+ rangeBtn: Ae,
28
+ rangeBtnActive: We,
29
+ chartRangePicker: ke,
30
+ chartTitle: Me,
31
+ chartSubtitle: Ve,
32
+ chartBody: $e,
33
+ chartLoading: je,
34
+ chartEmpty: Pe,
35
+ main: Ge,
36
+ timeline: Fe,
37
+ timelineHeader: Ye,
38
+ timelineScroll: Ke,
39
+ timelineItem: Xe,
40
+ timelineItemActive: Ze,
41
+ timelineDot: qe,
42
+ timelineContent: Je,
43
+ timelineTop: Qe,
44
+ versionTag: Ue,
45
+ versionDate: et,
46
+ timelineSummary: tt,
47
+ timelineMeta: at,
48
+ latestBadge: it,
49
+ detail: nt,
50
+ detailHeader: st,
51
+ detailTitleRow: rt,
52
+ detailVersion: lt,
53
+ detailDate: ct,
54
+ detailSummary: ot,
55
+ detailScroll: dt,
56
+ pointGrid: mt,
57
+ pointCard: ht,
58
+ pointHead: _t,
59
+ pointTitle: pt,
60
+ pointHeadRight: gt,
61
+ committerTag: ut,
62
+ pointTag: ft,
63
+ pointDetail: yt,
64
+ loadingWrap: vt,
65
+ emptyWrap: bt,
66
+ embedScreen: Nt
67
+ }, zt = {
68
+ 新功能: "green",
69
+ 优化: "blue",
70
+ 修复: "orange",
71
+ 重构: "purple",
72
+ 其他: "default"
73
+ }, k = {
74
+ 新功能: "#52c41a",
75
+ 优化: "#2f70f1",
76
+ 修复: "#fa8c16",
77
+ 重构: "#722ed1",
78
+ 其他: "#8c8c8c"
79
+ }, ee = 8;
80
+ function Dt({
81
+ option: S,
82
+ height: B = 320
83
+ }) {
84
+ const v = U(null), l = U(null);
85
+ return T(() => {
86
+ if (!v.current) return;
87
+ l.current || (l.current = fe.init(v.current)), l.current.setOption(S, !0);
88
+ const u = () => {
89
+ var f;
90
+ return (f = l.current) == null ? void 0 : f.resize();
91
+ };
92
+ return window.addEventListener("resize", u), () => window.removeEventListener("resize", u);
93
+ }, [S]), T(
94
+ () => () => {
95
+ var u;
96
+ (u = l.current) == null || u.dispose(), l.current = null;
97
+ },
98
+ []
99
+ ), /* @__PURE__ */ a("div", { ref: v, style: { width: "100%", height: `${B}px` } });
100
+ }
101
+ function xt({
102
+ variant: S = "page"
103
+ }) {
104
+ const [B, v] = p(!1), [l, u] = p([]), [f, R] = p(null), [y, M] = p(null), [te, V] = p(!1), [x, ae] = p(
105
+ {}
106
+ ), [ie, $] = p(!1), [w, D] = p([
107
+ z().subtract(6, "day").startOf("day"),
108
+ z().endOf("day")
109
+ ]), [I, j] = p("7"), P = L(async () => {
110
+ v(!0);
111
+ try {
112
+ const s = [...await _e("z-team")].sort(
113
+ (c, o) => new Date(o.commitDate).getTime() - new Date(c.commitDate).getTime()
114
+ );
115
+ u(s), s.length > 0 ? R(s[0].id) : (R(null), M(null));
116
+ } catch (i) {
117
+ console.error("[ChangeLogView] load versions error:", i);
118
+ } finally {
119
+ v(!1);
120
+ }
121
+ }, []), G = L(async (i) => {
122
+ V(!0);
123
+ try {
124
+ const s = await Z(i, void 0, "z-team");
125
+ M(s);
126
+ } catch (s) {
127
+ console.error("[ChangeLogView] load detail error:", s);
128
+ } finally {
129
+ V(!1);
130
+ }
131
+ }, []);
132
+ T(() => {
133
+ P();
134
+ }, [P]), T(() => {
135
+ if (l.length === 0) return;
136
+ let i = !1;
137
+ return $(!0), Promise.all(
138
+ l.map(
139
+ (s) => Z(s.id, void 0, "z-team").catch((c) => (console.warn(
140
+ `[ChangeLogView] failed to load detail for version ${s.version}`,
141
+ c
142
+ ), null))
143
+ )
144
+ ).then((s) => {
145
+ if (i) return;
146
+ const c = {};
147
+ s.forEach((o, d) => {
148
+ o && (c[l[d].id] = o);
149
+ }), ae(c);
150
+ }).finally(() => {
151
+ i || $(!1);
152
+ }), () => {
153
+ i = !0;
154
+ };
155
+ }, [l]), T(() => {
156
+ f != null && G(f);
157
+ }, [f, G]);
158
+ const E = W(() => {
159
+ const i = l.length, s = l.reduce(
160
+ (o, d) => o + (d.pointCount ?? 0),
161
+ 0
162
+ );
163
+ let c = 0;
164
+ if (l.length >= 2) {
165
+ const o = l.map((d) => new Date(d.commitDate).getTime()).filter((d) => !Number.isNaN(d));
166
+ o.length >= 2 && (c = Math.round(
167
+ (Math.max(...o) - Math.min(...o)) / 864e5
168
+ ));
169
+ }
170
+ return { versionCount: i, pointTotal: s, spanDays: c };
171
+ }, [l]), F = W(() => {
172
+ if (!w) return l;
173
+ const [i, s] = w, c = i.startOf("day").valueOf(), o = s.endOf("day").valueOf();
174
+ return l.filter((d) => {
175
+ const b = new Date(d.commitDate).getTime();
176
+ return !Number.isNaN(b) && b >= c && b <= o;
177
+ });
178
+ }, [l, w]), { chartOption: ne, hasChartData: se } = W(() => {
179
+ const i = [...F].sort(
180
+ (t, n) => new Date(t.commitDate).getTime() - new Date(n.commitDate).getTime()
181
+ ), s = i.map((t) => t.commitDate), c = /* @__PURE__ */ new Set(), o = {};
182
+ Object.values(x).forEach((t) => {
183
+ t.items.forEach((n) => {
184
+ if (n.category ? c.add(n.category) : c.add("其他"), n.committers) {
185
+ const m = n.committers.split(",").map((h) => h.trim()).filter(Boolean);
186
+ if (m.length > 0) {
187
+ const h = 1 / m.length;
188
+ m.forEach((_) => {
189
+ o[_] = (o[_] || 0) + h;
190
+ });
191
+ }
192
+ }
193
+ });
194
+ });
195
+ const d = ["新功能", "优化", "修复", "重构", "其他"].filter(
196
+ (t) => c.has(t)
197
+ );
198
+ c.forEach((t) => {
199
+ d.includes(t) || d.push(t);
200
+ });
201
+ const b = Object.entries(o).sort((t, n) => n[1] - t[1]).map(([t]) => t), le = b.slice(0, ee), Y = b.length > ee, N = {};
202
+ d.forEach(
203
+ (t) => N[t] = new Array(s.length).fill(0)
204
+ );
205
+ const g = {};
206
+ le.forEach(
207
+ (t) => g[t] = new Array(s.length).fill(0)
208
+ ), Y && (g.其他 = new Array(s.length).fill(0)), i.forEach((t, n) => {
209
+ const m = x[t.id];
210
+ m && m.items.forEach((h) => {
211
+ const _ = h.category || "其他";
212
+ if (N[_] && (N[_][n] += 1), h.committers) {
213
+ const H = h.committers.split(",").map((C) => C.trim()).filter(Boolean);
214
+ if (H.length > 0) {
215
+ const C = 1 / H.length;
216
+ H.forEach((X) => {
217
+ g[X] ? g[X][n] += C : Y && (g.其他[n] += C);
218
+ });
219
+ }
220
+ }
221
+ });
222
+ });
223
+ const ce = i.reduce((t, n) => {
224
+ const m = t.length > 0 ? t[t.length - 1] : 0;
225
+ return t.push(m + (n.pointCount ?? 0)), t;
226
+ }, []), K = {};
227
+ d.forEach((t) => {
228
+ K[t] = N[t].reduce((n, m) => {
229
+ const h = n.length > 0 ? n[n.length - 1] : 0;
230
+ return n.push(h + m), n;
231
+ }, []);
232
+ });
233
+ const oe = [
234
+ ...d.map((t) => ({
235
+ name: t,
236
+ type: "bar",
237
+ stack: "category",
238
+ data: N[t],
239
+ itemStyle: { color: k[t] || "#8c8c8c" },
240
+ barMaxWidth: 40
241
+ })),
242
+ ...Object.keys(g).map((t) => ({
243
+ name: `@${t}`,
244
+ type: "bar",
245
+ stack: "committer",
246
+ data: g[t],
247
+ barMaxWidth: 40
248
+ })),
249
+ {
250
+ name: "要点累计",
251
+ type: "line",
252
+ yAxisIndex: 1,
253
+ data: ce,
254
+ smooth: !0,
255
+ symbol: "circle",
256
+ symbolSize: 6,
257
+ lineStyle: { color: "#2f70f1", width: 2 },
258
+ itemStyle: { color: "#2f70f1", borderWidth: 2 }
259
+ },
260
+ ...d.map((t) => ({
261
+ name: `${t}累计`,
262
+ type: "line",
263
+ yAxisIndex: 1,
264
+ data: K[t],
265
+ smooth: !0,
266
+ symbol: "circle",
267
+ symbolSize: 4,
268
+ lineStyle: {
269
+ color: k[t] || "#8c8c8c",
270
+ width: 2
271
+ },
272
+ itemStyle: { color: k[t] || "#8c8c8c" }
273
+ }))
274
+ ], de = {
275
+ tooltip: {
276
+ trigger: "axis",
277
+ axisPointer: { type: "shadow" },
278
+ backgroundColor: "rgba(255,255,255,0.96)",
279
+ borderColor: "#f0f0f0",
280
+ textStyle: { color: "#262626" },
281
+ formatter: (t) => {
282
+ if (!Array.isArray(t) || t.length === 0) return "";
283
+ let m = `<div style="font-weight:600;margin-bottom:6px;">${t[0].axisValue}</div>`;
284
+ return t.forEach((h) => {
285
+ const _ = Number(h.value) || 0;
286
+ _ > 0 && (m += `<div style="display:flex;align-items:center;gap:8px;line-height:1.8;">
287
+ <span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:${h.color};"></span>
288
+ <span style="flex:1;">${h.seriesName}</span>
289
+ <span style="font-weight:600;">${Number.isInteger(_) ? _ : _.toFixed(2)}</span>
290
+ </div>`);
291
+ }), m;
292
+ }
293
+ },
294
+ legend: {
295
+ type: "scroll",
296
+ top: 0,
297
+ left: "center",
298
+ itemGap: 16,
299
+ textStyle: { color: "#595959" }
300
+ },
301
+ grid: {
302
+ left: 16,
303
+ right: 16,
304
+ bottom: 24,
305
+ top: 48,
306
+ containLabel: !0
307
+ },
308
+ xAxis: {
309
+ type: "category",
310
+ data: s,
311
+ axisLine: { lineStyle: { color: "#d9d9d9" } },
312
+ axisLabel: {
313
+ rotate: s.length > 12 ? 30 : 0,
314
+ formatter: (t) => {
315
+ const n = new Date(t).getDay();
316
+ return n >= 1 && n <= 5 ? `{weekday|${t}}` : `{weekend|${t}}`;
317
+ },
318
+ rich: {
319
+ weekday: { color: "#262626", fontWeight: 600 },
320
+ weekend: { color: "#bfbfbf" }
321
+ }
322
+ }
323
+ },
324
+ yAxis: [
325
+ {
326
+ type: "value",
327
+ splitLine: { lineStyle: { color: "#f0f0f0" } },
328
+ axisLabel: { color: "#8c8c8c" }
329
+ },
330
+ {
331
+ type: "value",
332
+ position: "right",
333
+ splitLine: { show: !1 },
334
+ axisLabel: { color: "#2f70f1" }
335
+ }
336
+ ],
337
+ series: oe,
338
+ animationDuration: 600
339
+ }, me = i.length > 0 && (Object.values(N).some((t) => t.some((n) => n > 0)) || Object.values(g).some((t) => t.some((n) => n > 0)));
340
+ return { chartOption: de, hasChartData: me };
341
+ }, [F, x]), re = L(async () => {
342
+ const i = window.location.href;
343
+ try {
344
+ await navigator.clipboard.writeText(i), q.success("链接已复制,可直接发送");
345
+ } catch {
346
+ q.error("复制失败,请手动复制地址栏链接");
347
+ }
348
+ }, []), O = L((i) => {
349
+ j(i), D(i === "7" ? [
350
+ z().subtract(6, "day").startOf("day"),
351
+ z().endOf("day")
352
+ ] : i === "30" ? [
353
+ z().subtract(29, "day").startOf("day"),
354
+ z().endOf("day")
355
+ ] : null);
356
+ }, []);
357
+ return /* @__PURE__ */ r("div", { className: S === "embed" ? `${e.screen} ${e.embedScreen}` : e.screen, children: [
358
+ /* @__PURE__ */ r("header", { className: e.banner, children: [
359
+ /* @__PURE__ */ r("div", { className: e.bannerInner, children: [
360
+ /* @__PURE__ */ r("div", { className: e.bannerLeft, children: [
361
+ /* @__PURE__ */ a("h1", { className: e.bannerTitle, children: "Z Team 产品迭代日志" }),
362
+ /* @__PURE__ */ a("p", { className: e.bannerSubtitle, children: "每一次代码提交背后,都是产品的进化" })
363
+ ] }),
364
+ /* @__PURE__ */ r("div", { className: e.stats, children: [
365
+ /* @__PURE__ */ r("div", { className: e.statItem, children: [
366
+ /* @__PURE__ */ a("div", { className: e.statNum, children: E.versionCount }),
367
+ /* @__PURE__ */ a("div", { className: e.statLabel, children: "迭代版本" })
368
+ ] }),
369
+ /* @__PURE__ */ a("div", { className: e.statDivider }),
370
+ /* @__PURE__ */ r("div", { className: e.statItem, children: [
371
+ /* @__PURE__ */ a("div", { className: e.statNum, children: E.pointTotal }),
372
+ /* @__PURE__ */ a("div", { className: e.statLabel, children: "产品要点" })
373
+ ] }),
374
+ /* @__PURE__ */ a("div", { className: e.statDivider }),
375
+ /* @__PURE__ */ r("div", { className: e.statItem, children: [
376
+ /* @__PURE__ */ a("div", { className: e.statNum, children: E.spanDays }),
377
+ /* @__PURE__ */ a("div", { className: e.statLabel, children: "持续天数" })
378
+ ] })
379
+ ] })
380
+ ] }),
381
+ /* @__PURE__ */ a(
382
+ ge,
383
+ {
384
+ className: e.shareBtn,
385
+ type: "default",
386
+ ghost: !0,
387
+ onClick: re,
388
+ children: "分享链接"
389
+ }
390
+ )
391
+ ] }),
392
+ /* @__PURE__ */ a("section", { className: e.chartSection, children: /* @__PURE__ */ r("div", { className: e.chartInner, children: [
393
+ /* @__PURE__ */ r("div", { className: e.chartHeader, children: [
394
+ /* @__PURE__ */ r("div", { className: e.chartHeaderLeft, children: [
395
+ /* @__PURE__ */ a("h2", { className: e.chartTitle, children: "迭代节奏与贡献分布" }),
396
+ /* @__PURE__ */ a("p", { className: e.chartSubtitle, children: "两根柱:类型拆分 · 人员拆分(多人贡献均摊);折线:各类型/总量累计" })
397
+ ] }),
398
+ /* @__PURE__ */ r("div", { className: e.chartRangeWrap, children: [
399
+ /* @__PURE__ */ r("div", { className: e.rangeBtns, children: [
400
+ /* @__PURE__ */ a(
401
+ "button",
402
+ {
403
+ className: I === "7" ? e.rangeBtnActive : e.rangeBtn,
404
+ onClick: () => O("7"),
405
+ children: "近7天"
406
+ }
407
+ ),
408
+ /* @__PURE__ */ a(
409
+ "button",
410
+ {
411
+ className: I === "30" ? e.rangeBtnActive : e.rangeBtn,
412
+ onClick: () => O("30"),
413
+ children: "近30天"
414
+ }
415
+ ),
416
+ /* @__PURE__ */ a(
417
+ "button",
418
+ {
419
+ className: I === "all" ? e.rangeBtnActive : e.rangeBtn,
420
+ onClick: () => O("all"),
421
+ children: "全部"
422
+ }
423
+ )
424
+ ] }),
425
+ /* @__PURE__ */ a(
426
+ ue.RangePicker,
427
+ {
428
+ className: e.chartRangePicker,
429
+ value: w,
430
+ allowClear: !0,
431
+ placeholder: ["开始日期", "结束日期"],
432
+ onChange: (i) => {
433
+ j(""), i && i[0] && i[1] ? D([i[0], i[1]]) : D(null);
434
+ }
435
+ }
436
+ )
437
+ ] })
438
+ ] }),
439
+ /* @__PURE__ */ a("div", { className: e.chartBody, children: ie ? /* @__PURE__ */ a("div", { className: e.chartLoading, children: /* @__PURE__ */ a(A, { description: "正在生成统计图表..." }) }) : se ? /* @__PURE__ */ a(Dt, { option: ne, height: 360 }) : /* @__PURE__ */ a("div", { className: e.chartEmpty, children: "暂无足够数据生成图表" }) })
440
+ ] }) }),
441
+ /* @__PURE__ */ r("main", { className: e.main, children: [
442
+ /* @__PURE__ */ r("aside", { className: e.timeline, children: [
443
+ /* @__PURE__ */ a("div", { className: e.timelineHeader, children: /* @__PURE__ */ a("span", { children: "迭代时间线" }) }),
444
+ /* @__PURE__ */ a("div", { className: e.timelineScroll, children: B ? /* @__PURE__ */ a("div", { className: e.loadingWrap, children: /* @__PURE__ */ a(A, { description: "加载中..." }) }) : l.length === 0 ? /* @__PURE__ */ a("div", { className: e.emptyWrap, children: "暂无迭代记录" }) : l.map((i, s) => /* @__PURE__ */ r(
445
+ "div",
446
+ {
447
+ className: `${e.timelineItem} ${pe(f, i.id) ? e.timelineItemActive : ""}`,
448
+ onClick: () => R(i.id),
449
+ children: [
450
+ /* @__PURE__ */ a("div", { className: e.timelineDot }),
451
+ /* @__PURE__ */ r("div", { className: e.timelineContent, children: [
452
+ /* @__PURE__ */ r("div", { className: e.timelineTop, children: [
453
+ /* @__PURE__ */ a("span", { className: e.versionTag, children: i.version }),
454
+ /* @__PURE__ */ a("span", { className: e.versionDate, children: i.commitDate })
455
+ ] }),
456
+ i.summary && /* @__PURE__ */ a("div", { className: e.timelineSummary, title: i.summary, children: i.summary }),
457
+ /* @__PURE__ */ a("div", { className: e.timelineMeta, children: /* @__PURE__ */ r("span", { children: [
458
+ i.pointCount ?? 0,
459
+ " 条产品要点"
460
+ ] }) })
461
+ ] }),
462
+ s === 0 && /* @__PURE__ */ a("span", { className: e.latestBadge, children: "最新" })
463
+ ]
464
+ },
465
+ i.id
466
+ )) })
467
+ ] }),
468
+ /* @__PURE__ */ a("section", { className: e.detail, children: te ? /* @__PURE__ */ a("div", { className: e.loadingWrap, children: /* @__PURE__ */ a(A, { description: "加载产品要点..." }) }) : y ? /* @__PURE__ */ r(he, { children: [
469
+ /* @__PURE__ */ r("div", { className: e.detailHeader, children: [
470
+ /* @__PURE__ */ r("div", { className: e.detailTitleRow, children: [
471
+ /* @__PURE__ */ a("span", { className: e.detailVersion, children: y.version }),
472
+ /* @__PURE__ */ a("span", { className: e.detailDate, children: y.commitDate })
473
+ ] }),
474
+ y.summary && /* @__PURE__ */ a("div", { className: e.detailSummary, children: y.summary })
475
+ ] }),
476
+ /* @__PURE__ */ a("div", { className: e.detailScroll, children: y.items.length === 0 ? /* @__PURE__ */ a(J, { description: "该版本下暂无产品迭代要点" }) : /* @__PURE__ */ a("div", { className: e.pointGrid, children: y.items.map((i) => /* @__PURE__ */ r("div", { className: e.pointCard, children: [
477
+ /* @__PURE__ */ r("div", { className: e.pointHead, children: [
478
+ /* @__PURE__ */ a("span", { className: e.pointTitle, children: i.pointTitle }),
479
+ /* @__PURE__ */ r("div", { className: e.pointHeadRight, children: [
480
+ i.committers && i.committers.split(",").map((s) => /* @__PURE__ */ r(Q, { className: e.committerTag, children: [
481
+ "@",
482
+ s.trim()
483
+ ] }, s)),
484
+ i.category && /* @__PURE__ */ a(
485
+ Q,
486
+ {
487
+ className: e.pointTag,
488
+ color: zt[i.category] || "default",
489
+ children: i.category
490
+ }
491
+ )
492
+ ] })
493
+ ] }),
494
+ i.pointDetail && /* @__PURE__ */ a("div", { className: e.pointDetail, children: i.pointDetail })
495
+ ] }, i.id)) }) })
496
+ ] }) : /* @__PURE__ */ a("div", { className: e.emptyWrap, children: /* @__PURE__ */ a(J, { description: "选择左侧版本查看产品迭代要点" }) }) })
497
+ ] })
498
+ ] });
499
+ }
500
+ export {
501
+ xt as C
502
+ };
@@ -2,8 +2,8 @@ import { jsxs as i, jsx as e, Fragment as A } from "react/jsx-runtime";
2
2
  import { useState as o, useEffect as oe } from "react";
3
3
  import { Form as m, message as r, Button as d, Input as B, Row as ae, Col as z, Card as v, Statistic as S, Alert as T, Space as p, Typography as se, Tabs as de, Popconfirm as F, Table as _, Tag as h, Tooltip as ce, Modal as he, Radio as O, Select as w, InputNumber as ue } from "antd";
4
4
  import { PlusOutlined as me, ClockCircleOutlined as $, CheckCircleOutlined as j, LinkOutlined as U, CopyOutlined as x, QrcodeOutlined as M, UserDeleteOutlined as K, TeamOutlined as pe, MailOutlined as q, DeleteOutlined as ye, UserAddOutlined as N, CloseCircleOutlined as W } from "@ant-design/icons";
5
- import { l as ge, b as fe, g as ve, c as we, d as xe, e as Ce, f as be } from "./api-BwXzkm3f.js";
6
- import { b as Ie, T as ke } from "./ProjectApp-C6GUGbAD.js";
5
+ import { l as ge, b as fe, g as ve, c as we, d as xe, e as Ce, f as be } from "./api-CX7MUpws.js";
6
+ import { b as Ie, T as ke } from "./ProjectApp-BquB_X7K.js";
7
7
  const { Text: c } = se, De = () => {
8
8
  const [C] = m.useForm(), [D, L] = o(!1), [y, G] = o([]), [R, H] = o([]), [J, Q] = o(null), [u, V] = o(""), [X, b] = o(!1), [Y, E] = o(!1), [a, P] = o(null), [l, Z] = o(localStorage.getItem("userInfo") && JSON.parse(localStorage.getItem("userInfo") || "{}").tenantCode || "");
9
9
  oe(() => {
@@ -3,8 +3,8 @@ import { useState as a, useMemo as oe, useEffect as W } from "react";
3
3
  import { useNavigate as le, useSearchParams as se } from "react-router-dom";
4
4
  import { Form as c, message as o, Spin as ce, Typography as de, Card as d, Tag as x, Empty as me, Row as he, Col as fe, Space as S, Avatar as ge, Pagination as pe, Button as T, Result as ue, Modal as E, Input as k, Alert as U } from "antd";
5
5
  import { RocketOutlined as q, ApartmentOutlined as ye, CheckCircleOutlined as Ce, PlusOutlined as z, KeyOutlined as m, GiftOutlined as ve, HomeOutlined as we, CrownOutlined as be } from "@ant-design/icons";
6
- import { g as xe, a as Se, s as Te, r as ke } from "./api-BwXzkm3f.js";
7
- import { a as ze } from "./ProjectApp-C6GUGbAD.js";
6
+ import { g as xe, a as Se, s as Te, r as ke } from "./api-CX7MUpws.js";
7
+ import { a as ze } from "./ProjectApp-BquB_X7K.js";
8
8
  const { Title: u, Text: O, Paragraph: Oe } = de, y = 12, Me = () => {
9
9
  const L = le(), [H] = se(), [_, I] = a(!0), [i, $] = a(null), [l, G] = a([]), [A, F] = a(0), [h, B] = a(""), [C, K] = a(1), X = oe(() => {
10
10
  const e = (C - 1) * y;
@@ -8,9 +8,9 @@ import Xe from "axios";
8
8
  const Z = (t) => {
9
9
  const a = Ct(t);
10
10
  return (r) => /* @__PURE__ */ e(Tt, { fallback: null, children: /* @__PURE__ */ e(a, { ...r }) });
11
- }, ce = Z(() => import("./index-DPnfP7Cb.js").then((t) => t.E)), Gt = Z(() => import("./index-CGDpGIZC.js")), Vt = Z(() => import("./index-bbwTcNjB.js")), Jt = Z(() => import("./index-8V37FP9c.js")), Xt = Z(() => import("./index-B3ikipDf.js")), Yt = Z(() => import("./index-D5u3BjCZ.js"));
11
+ }, ce = Z(() => import("./index-BYEx4vlI.js").then((t) => t.H)), Gt = Z(() => import("./index-Da7ls5q6.js")), Vt = Z(() => import("./index-bbwTcNjB.js")), Jt = Z(() => import("./index-CTD7k9dP.js")), Xt = Z(() => import("./index-Dao4uqQd.js")), Yt = Z(() => import("./index-D5u3BjCZ.js"));
12
12
  Z(() => import("./index-C01UUprh.js"));
13
- const Zt = Z(() => import("./index-CcFJEYgr.js")), Qt = Z(() => import("./index-BmK_rWsV.js")), en = Z(() => import("./index-BkX0I2aB.js")), tn = Z(() => import("./index-DK_aR-Vu.js")), nn = Z(() => import("./index-C1C2qyDr.js")), rn = Z(() => import("./index-BMRIUhOL.js"));
13
+ const Zt = Z(() => import("./index-CcFJEYgr.js")), Qt = Z(() => import("./index-UsGqMo11.js")), en = Z(() => import("./index-BkX0I2aB.js")), tn = Z(() => import("./index-CiMxCTOS.js")), nn = Z(() => import("./index-BafC42Cl.js")), rn = Z(() => import("./index-C2aPiQSz.js"));
14
14
  function lr({ forcedMode: t }) {
15
15
  const { pathname: a } = _t(), r = a.replace(/\/+$/, "") || "/";
16
16
  return t === "system" ? /* @__PURE__ */ e(ce, { forcedChatMode: "system" }) : t === "rpa" ? /* @__PURE__ */ e(ce, { forcedChatMode: "rpa" }) : t === "dev" ? /* @__PURE__ */ e(ce, { forcedChatMode: "dev" }) : r === "/workspace" ? /* @__PURE__ */ e(ce, {}) : r === "/workspace/phone" ? /* @__PURE__ */ e(Gt, {}) : r === "/workspace/from-ticket" ? /* @__PURE__ */ e(Vt, {}) : r === "/workspace/from-scenario" ? /* @__PURE__ */ e(Jt, {}) : r === "/workspace/build-by-form" ? /* @__PURE__ */ e(Xt, {}) : r === "/scenario" ? /* @__PURE__ */ e(Yt, {}) : r === "/admin" ? /* @__PURE__ */ e(ce, {}) : r === "/welcome" ? /* @__PURE__ */ e(Qt, {}) : r === "/portal" ? /* @__PURE__ */ e(en, {}) : r === "/chatdemo" ? /* @__PURE__ */ e(Zt, {}) : r === "/embed/chat" || r.startsWith("/embed/chat/") ? /* @__PURE__ */ e(rn, {}) : r === "/change-log" ? /* @__PURE__ */ e(tn, {}) : r === "/docs" ? /* @__PURE__ */ e(nn, {}) : /* @__PURE__ */ e(ce, {});
@@ -456,7 +456,7 @@ const je = "_shell_10jrt_6", Ee = "_main_10jrt_21", qe = "_empty_10jrt_31", Re =
456
456
  empty: qe,
457
457
  emptyIcon: Re,
458
458
  emptyText: $e
459
- }, t = (l, s) => u(() => l().then((r) => ({ default: r[s] }))), Be = t(() => import("@yuku123/z-ctc-component"), "AccountManagement"), Ue = t(() => import("@yuku123/z-ctc-component"), "ApplicationManagement"), We = t(() => import("@yuku123/z-ctc-component"), "AuditPage"), Fe = t(() => import("@yuku123/z-ctc-component"), "CtcOverview"), Ke = t(() => import("@yuku123/z-ctc-component"), "DictPage"), Ze = t(() => import("@yuku123/z-ctc-component"), "OrgPage"), Qe = t(() => import("@yuku123/z-ctc-component"), "PermissionManagement"), Ye = t(() => import("@yuku123/z-ctc-component"), "RoleManagement"), j = t(() => import("@yuku123/z-ctc-component"), "SurlManagement"), Je = t(() => import("@yuku123/z-ctc-component"), "TenantManagement"), Ve = t(() => import("@yuku123/z-agent-component"), "AgentAppList"), Xe = t(() => import("@yuku123/z-agent-component"), "AgentDashboard"), E = t(() => import("@yuku123/z-agent-component"), "AgentInstanceManager"), et = t(() => import("@yuku123/z-agent-component"), "AkManage"), tt = t(() => import("@yuku123/z-agent-component"), "BucketList"), at = t(() => import("@yuku123/z-agent-component"), "LlmManage"), nt = t(() => import("@yuku123/z-agent-component"), "McpPage"), ct = t(() => import("@yuku123/z-agent-component"), "ObjectBrowser"), lt = t(() => import("@yuku123/z-agent-component"), "ScriptCenterPage"), ot = t(() => import("@yuku123/z-agent-component"), "ScriptProductizationPage"), st = t(() => import("@yuku123/z-agent-component"), "SkillMarket"), it = t(() => import("@yuku123/z-agent-component"), "TemplateMarket"), rt = t(() => import("./index-3AXvDKQz.js"), "AgentTeamIM"), q = t(() => import("./index-3AXvDKQz.js"), "DebugPlayground"), pt = t(() => import("./index-3AXvDKQz.js"), "Overview"), R = t(() => import("./index-3AXvDKQz.js"), "Webide"), mt = u(() => import("./OnboardingPage-B1uHZfRm.js")), ut = u(() => import("./InvitationManagementPage-BnvfjueJ.js")), dt = t(() => import("@yuku123/z-config-component"), "ConfigApp"), ht = t(() => import("@yuku123/z-task-component"), "TaskApp"), bt = t(() => import("@yuku123/z-wf-component"), "WorkflowApp"), _t = t(() => import("@yuku123/z-schedule-component"), "ScheduleApp"), gt = t(() => import("@yuku123/z-mist-component"), "MistApp"), kt = t(() => import("@yuku123/z-meta-component"), "MetaApp"), yt = t(() => import("@yuku123/z-msg-component"), "MsgApp"), St = t(() => import("@yuku123/z-rpc-component"), "RpcApp"), At = u(() => import("./ProjectApp-C6GUGbAD.js").then((l) => l.l)), vt = u(() => import("./ProjectApp-C6GUGbAD.js").then((l) => l.m)), wt = u(() => import("./ProjectApp-C6GUGbAD.js").then((l) => l.k)), $ = u(() => import("@yuku123/z-qa-component"));
459
+ }, t = (l, s) => u(() => l().then((r) => ({ default: r[s] }))), Be = t(() => import("@yuku123/z-ctc-component"), "AccountManagement"), Ue = t(() => import("@yuku123/z-ctc-component"), "ApplicationManagement"), We = t(() => import("@yuku123/z-ctc-component"), "AuditPage"), Fe = t(() => import("@yuku123/z-ctc-component"), "CtcOverview"), Ke = t(() => import("@yuku123/z-ctc-component"), "DictPage"), Ze = t(() => import("@yuku123/z-ctc-component"), "OrgPage"), Qe = t(() => import("@yuku123/z-ctc-component"), "PermissionManagement"), Ye = t(() => import("@yuku123/z-ctc-component"), "RoleManagement"), j = t(() => import("@yuku123/z-ctc-component"), "SurlManagement"), Je = t(() => import("@yuku123/z-ctc-component"), "TenantManagement"), Ve = t(() => import("@yuku123/z-agent-component"), "AgentAppList"), Xe = t(() => import("@yuku123/z-agent-component"), "AgentDashboard"), E = t(() => import("@yuku123/z-agent-component"), "AgentInstanceManager"), et = t(() => import("@yuku123/z-agent-component"), "AkManage"), tt = t(() => import("@yuku123/z-agent-component"), "BucketList"), at = t(() => import("@yuku123/z-agent-component"), "LlmManage"), nt = t(() => import("@yuku123/z-agent-component"), "McpPage"), ct = t(() => import("@yuku123/z-agent-component"), "ObjectBrowser"), lt = t(() => import("@yuku123/z-agent-component"), "ScriptCenterPage"), ot = t(() => import("@yuku123/z-agent-component"), "ScriptProductizationPage"), st = t(() => import("@yuku123/z-agent-component"), "SkillMarket"), it = t(() => import("@yuku123/z-agent-component"), "TemplateMarket"), rt = t(() => import("./index-CcTdM5kT.js"), "AgentTeamIM"), q = t(() => import("./index-CcTdM5kT.js"), "DebugPlayground"), pt = t(() => import("./index-CcTdM5kT.js"), "Overview"), R = t(() => import("./index-CcTdM5kT.js"), "Webide"), mt = u(() => import("./OnboardingPage-DFRAwruv.js")), ut = u(() => import("./InvitationManagementPage-DpA3Xlq1.js")), dt = t(() => import("@yuku123/z-config-component"), "ConfigApp"), ht = t(() => import("@yuku123/z-task-component"), "TaskApp"), bt = t(() => import("@yuku123/z-wf-component"), "WorkflowApp"), _t = t(() => import("@yuku123/z-schedule-component"), "ScheduleApp"), gt = t(() => import("@yuku123/z-mist-component"), "MistApp"), kt = t(() => import("@yuku123/z-meta-component"), "MetaApp"), yt = t(() => import("@yuku123/z-msg-component"), "MsgApp"), St = t(() => import("@yuku123/z-rpc-component"), "RpcApp"), At = u(() => import("./ProjectApp-BquB_X7K.js").then((l) => l.l)), vt = u(() => import("./ProjectApp-BquB_X7K.js").then((l) => l.m)), wt = u(() => import("./ProjectApp-BquB_X7K.js").then((l) => l.k)), $ = u(() => import("@yuku123/z-qa-component"));
460
460
  function ft() {
461
461
  return /* @__PURE__ */ i("div", { className: h.empty, children: [
462
462
  /* @__PURE__ */ e("div", { className: h.emptyIcon, children: "📋" }),
@@ -1,5 +1,5 @@
1
1
  import "@yuku123/z-frontend-common";
2
- import { a } from "./ProjectApp-C6GUGbAD.js";
2
+ import { a } from "./ProjectApp-BquB_X7K.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
5
  import "antd";