dsh-task-ledger 0.0.116 → 0.0.118
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/client.js +25 -7
- package/dist/client.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +3 -0
- package/skill/package.json +1 -1
- package/skill/scripts/bin/ledger-darwin-arm64 +0 -0
- package/skill/scripts/bin/ledger-linux-amd64 +0 -0
- package/skill/scripts/bin/ledger-windows-amd64.exe +0 -0
package/dist/client.js
CHANGED
|
@@ -53721,6 +53721,8 @@ body[data-ds-dark-theme]{
|
|
|
53721
53721
|
opacity:0;pointer-events:none;transition:opacity var(--dtl-dur-fast) var(--dtl-ease);}
|
|
53722
53722
|
.dtl-trend__col:hover .dtl-trend__tip{opacity:1;}
|
|
53723
53723
|
.dtl-trend__tip-row{font-variant-numeric:tabular-nums;}
|
|
53724
|
+
/* 未结的拆分行:缩进 + 淡一档,读起来是「未结」的注脚 */
|
|
53725
|
+
.dtl-trend__tip-row--sub{padding-left:10px;color:var(--dtl-fg-3);}
|
|
53724
53726
|
.dtl-trend__foot{font-size:var(--dtl-font-xs);color:var(--dtl-fg-3);}
|
|
53725
53727
|
|
|
53726
53728
|
/* 任务行 = 一张卡(样式照抄 dispatch-table TaskCard:surface-1 底 + 1px 边框 + 左缘状态条;
|
|
@@ -54186,15 +54188,16 @@ body[data-ds-dark-theme]{
|
|
|
54186
54188
|
*/
|
|
54187
54189
|
const BAR_KINDS = [
|
|
54188
54190
|
"done",
|
|
54189
|
-
"
|
|
54190
|
-
"
|
|
54191
|
+
"added",
|
|
54192
|
+
"open"
|
|
54191
54193
|
];
|
|
54192
54194
|
const ZERO = {
|
|
54193
54195
|
added: 0,
|
|
54194
54196
|
done: 0,
|
|
54195
54197
|
open: 0
|
|
54196
54198
|
};
|
|
54197
|
-
|
|
54199
|
+
/** 系列名:只看我的时候「未结」就是「进行中」(我的任务必然有人接)。 */
|
|
54200
|
+
const labelKey = (kind, mine) => kind === "done" ? "chartDone" : kind === "added" ? "chartAdded" : mine ? "chartDoing" : "chartOpen";
|
|
54198
54201
|
function TrendChart(props) {
|
|
54199
54202
|
const { trend, me, t } = props;
|
|
54200
54203
|
const [mineOnly, setMineOnly] = (0, react$1.useState)(false);
|
|
@@ -54203,6 +54206,15 @@ body[data-ds-dark-theme]{
|
|
|
54203
54206
|
if (buckets.length === 0) return (0, react$1.createElement)("div", { className: "dtl-card dtl-trend" }, (0, react$1.createElement)("div", { className: "dtl-trend__foot" }, t("chartEmpty")));
|
|
54204
54207
|
/** 当前口径下这一桶的三个数:全量,或「我的」那条(没数据就是 0)。 */
|
|
54205
54208
|
const counts = (bucket) => mine ? bucket.owners[me] ?? ZERO : bucket;
|
|
54209
|
+
/** 未结拆两段:进行中 = 各人未结之和;待认领 = 未结 − 进行中。
|
|
54210
|
+
* 「只看我的」时只有进行中(我的任务必然有人接),不显示拆分行。 */
|
|
54211
|
+
const breakdown = (bucket) => {
|
|
54212
|
+
const doing = Object.values(bucket.owners).reduce((sum, cell) => sum + cell.open, 0);
|
|
54213
|
+
return {
|
|
54214
|
+
doing,
|
|
54215
|
+
waiting: Math.max(0, bucket.open - doing)
|
|
54216
|
+
};
|
|
54217
|
+
};
|
|
54206
54218
|
const peak = buckets.reduce((max, bucket) => {
|
|
54207
54219
|
const cell = counts(bucket);
|
|
54208
54220
|
return Math.max(max, cell.added, cell.done, cell.open);
|
|
@@ -54226,10 +54238,10 @@ body[data-ds-dark-theme]{
|
|
|
54226
54238
|
const column = (bucket) => (0, react$1.createElement)("div", { className: "dtl-trend__col" }, (0, react$1.createElement)("div", { className: "dtl-trend__tip" }, (0, react$1.createElement)("div", { className: "dtl-trend__tip-row" }, t("periodRange", {
|
|
54227
54239
|
from: bucket.from,
|
|
54228
54240
|
to: bucket.to
|
|
54229
|
-
})), ...BAR_KINDS.map((kind) => (0, react$1.createElement)("div", { className: "dtl-trend__tip-row" }, (0, react$1.createElement)("span", { className: `dtl-trend__dot dtl-trend__dot--${kind}` }), `${t(labelKey(kind))} ${formatCount(counts(bucket)[kind])}`))), (0, react$1.createElement)("div", { className: "dtl-trend__bars" }, ...BAR_KINDS.map((kind) => bar(bucket, kind))), (0, react$1.createElement)("div", { className: "dtl-trend__x" }, bucket.to.slice(5)));
|
|
54241
|
+
})), ...BAR_KINDS.map((kind) => (0, react$1.createElement)("div", { className: "dtl-trend__tip-row" }, (0, react$1.createElement)("span", { className: `dtl-trend__dot dtl-trend__dot--${kind}` }), `${t(labelKey(kind, mine))} ${formatCount(counts(bucket)[kind])}`)), mine ? null : (0, react$1.createElement)("div", { className: "dtl-trend__tip-row dtl-trend__tip-row--sub" }, `${t("chartOfWhich")} ${t("chartDoing")} ${formatCount(breakdown(bucket).doing)}`), mine ? null : (0, react$1.createElement)("div", { className: "dtl-trend__tip-row dtl-trend__tip-row--sub" }, `${t("chartWaiting")} ${formatCount(breakdown(bucket).waiting)}`)), (0, react$1.createElement)("div", { className: "dtl-trend__bars" }, ...BAR_KINDS.map((kind) => bar(bucket, kind))), (0, react$1.createElement)("div", { className: "dtl-trend__x" }, bucket.to.slice(5)));
|
|
54230
54242
|
const first = buckets[0];
|
|
54231
54243
|
const partial = trend.coverageFrom !== "" && trend.coverageFrom > first.from ? (0, react$1.createElement)("div", { className: "dtl-trend__foot" }, t("chartPartial", { from: trend.coverageFrom })) : null;
|
|
54232
|
-
return (0, react$1.createElement)("div", { className: "dtl-card dtl-trend" }, (0, react$1.createElement)("div", { className: "dtl-trend__legend" }, ...BAR_KINDS.map((kind) => (0, react$1.createElement)("span", null, (0, react$1.createElement)("span", { className: `dtl-trend__dot dtl-trend__dot--${kind}` }), t(labelKey(kind)))), me === null ? null : (0, react$1.createElement)("label", { className: "dtl-trend__mine" }, (0, react$1.createElement)("input", {
|
|
54244
|
+
return (0, react$1.createElement)("div", { className: "dtl-card dtl-trend" }, (0, react$1.createElement)("div", { className: "dtl-trend__legend" }, ...BAR_KINDS.map((kind) => (0, react$1.createElement)("span", null, (0, react$1.createElement)("span", { className: `dtl-trend__dot dtl-trend__dot--${kind}` }), t(labelKey(kind, mine)))), me === null ? null : (0, react$1.createElement)("label", { className: "dtl-trend__mine" }, (0, react$1.createElement)("input", {
|
|
54233
54245
|
type: "checkbox",
|
|
54234
54246
|
checked: mineOnly,
|
|
54235
54247
|
onChange: (event) => {
|
|
@@ -54522,8 +54534,8 @@ body[data-ds-dark-theme]{
|
|
|
54522
54534
|
onClick: onBack
|
|
54523
54535
|
}, `← ${t("backToConversation")}`), (0, react$1.createElement)("div", { style: titleStyle }, t("panelTitle"), (0, react$1.createElement)("span", {
|
|
54524
54536
|
style: buildTagStyle,
|
|
54525
|
-
title: `v0.0.
|
|
54526
|
-
}, `v0.0.
|
|
54537
|
+
title: `v0.0.118 · 261029-145336-423`
|
|
54538
|
+
}, `v0.0.118 261029-145336-423`))), (0, react$1.createElement)(Button, {
|
|
54527
54539
|
variant: "outline",
|
|
54528
54540
|
size: "lg",
|
|
54529
54541
|
icon: (0, react$1.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 16 }),
|
|
@@ -54614,6 +54626,9 @@ body[data-ds-dark-theme]{
|
|
|
54614
54626
|
chartEmpty: "还没有可统计的记录",
|
|
54615
54627
|
chartPartial: "{from} 起才有台账数据",
|
|
54616
54628
|
chartMine: "只看我的",
|
|
54629
|
+
chartDoing: "进行中",
|
|
54630
|
+
chartWaiting: "待认领",
|
|
54631
|
+
chartOfWhich: "其中",
|
|
54617
54632
|
periodRange: "{from} ~ {to}",
|
|
54618
54633
|
statusLabel: "状态",
|
|
54619
54634
|
statusActive: "进行中",
|
|
@@ -54700,6 +54715,9 @@ body[data-ds-dark-theme]{
|
|
|
54700
54715
|
chartEmpty: "No records to chart yet",
|
|
54701
54716
|
chartPartial: "Ledger data starts {from}",
|
|
54702
54717
|
chartMine: "Only mine",
|
|
54718
|
+
chartDoing: "In progress",
|
|
54719
|
+
chartWaiting: "Unclaimed",
|
|
54720
|
+
chartOfWhich: "of which",
|
|
54703
54721
|
periodRange: "{from} ~ {to}",
|
|
54704
54722
|
statusLabel: "Status",
|
|
54705
54723
|
statusActive: "Active",
|