@linxin666/dsh-client-ui-task-board 0.1.12 → 0.1.14
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/README.i18n.yaml +6 -0
- package/README.md +92 -174
- package/README.zh.md +132 -0
- package/lib/client.js +177 -108
- package/lib/client.js.map +1 -1
- package/lib/types/client/apply-guard.d.ts +25 -0
- package/lib/types/core/store.d.ts +29 -1
- package/package.json +1 -6
- package/src/client/PluginSettingsCard.tsx +30 -5
- package/src/client/apply-guard.ts +35 -0
- package/src/client/board-mount.tsx +6 -3
- package/src/client/board.module.css +2 -1
- package/src/client/index.ts +11 -0
- package/src/client/settings-card.module.css +146 -116
- package/src/client/sidebar-entry.ts +7 -0
- package/src/core/controller.ts +19 -4
- package/src/core/store.ts +41 -0
package/lib/client.js
CHANGED
|
@@ -290,6 +290,11 @@ window.__ModuleLoader__.load({
|
|
|
290
290
|
start() {
|
|
291
291
|
this.tasks = this.deps.store.load();
|
|
292
292
|
this.reconcileRunningTasks();
|
|
293
|
+
const unsubscribeExternal = this.deps.store.subscribeExternal?.(() => {
|
|
294
|
+
this.tasks = this.deps.store.load();
|
|
295
|
+
this.notify();
|
|
296
|
+
});
|
|
297
|
+
if (unsubscribeExternal !== void 0) this.disposers.push(unsubscribeExternal);
|
|
293
298
|
this.disposers.push(this.deps.sessions.list.subscribe(() => {
|
|
294
299
|
this.onSessionsChanged();
|
|
295
300
|
}));
|
|
@@ -487,16 +492,18 @@ window.__ModuleLoader__.load({
|
|
|
487
492
|
if (execution !== void 0 && this.activeExecutionIds.has(execution.id)) continue;
|
|
488
493
|
const event = await this.deps.exec.reconcile(task);
|
|
489
494
|
if (event !== void 0 && event.kind === "settled") events.push({
|
|
490
|
-
task,
|
|
495
|
+
taskId: task.id,
|
|
491
496
|
event
|
|
492
497
|
});
|
|
493
498
|
}
|
|
494
499
|
if (events.length === 0) return;
|
|
495
500
|
let changed = false;
|
|
496
|
-
for (const {
|
|
501
|
+
for (const { taskId, event } of events) {
|
|
502
|
+
const task = this.tasks.find((candidate) => candidate.id === taskId);
|
|
503
|
+
if (task === void 0) continue;
|
|
497
504
|
const next = settleExecution(task, event.executionId, event.outcome, this.now(), event.error);
|
|
498
505
|
if (next === task) continue;
|
|
499
|
-
this.tasks = this.tasks.map((candidate) => candidate.id ===
|
|
506
|
+
this.tasks = this.tasks.map((candidate) => candidate.id === taskId ? next : candidate);
|
|
500
507
|
changed = true;
|
|
501
508
|
}
|
|
502
509
|
if (changed) this.persistAndNotify();
|
|
@@ -889,13 +896,18 @@ window.__ModuleLoader__.load({
|
|
|
889
896
|
var LocalStorageTaskStore = class {
|
|
890
897
|
key;
|
|
891
898
|
storage;
|
|
899
|
+
events;
|
|
892
900
|
/**
|
|
893
901
|
* @param key - storage key for the ledger document.
|
|
894
902
|
* @param storage - storage backend (defaults to the global localStorage; tests inject fakes).
|
|
903
|
+
* @param events - storage-event target for cross-tab notifications (defaults
|
|
904
|
+
* to the browser global; undefined in non-browser runtimes, where the
|
|
905
|
+
* subscription becomes a no-op).
|
|
895
906
|
*/
|
|
896
|
-
constructor(key = DEFAULT_STORAGE_KEY, storage = globalThis.localStorage) {
|
|
907
|
+
constructor(key = DEFAULT_STORAGE_KEY, storage = globalThis.localStorage, events = typeof globalThis.addEventListener === "function" ? globalThis : void 0) {
|
|
897
908
|
this.key = key;
|
|
898
909
|
this.storage = storage;
|
|
910
|
+
this.events = events;
|
|
899
911
|
}
|
|
900
912
|
load() {
|
|
901
913
|
if (this.storage === void 0) return [];
|
|
@@ -922,8 +934,42 @@ window.__ModuleLoader__.load({
|
|
|
922
934
|
console.error("[dsh-task-board] task ledger clear failed", error);
|
|
923
935
|
}
|
|
924
936
|
}
|
|
937
|
+
/**
|
|
938
|
+
* Cross-tab change subscription (see {@link TaskStore.subscribeExternal}).
|
|
939
|
+
* The browser fires the storage event in every OTHER tab of the same origin
|
|
940
|
+
* when one tab writes; a null key means the whole storage was cleared. Both
|
|
941
|
+
* cases reload the ledger here; unrelated keys are ignored.
|
|
942
|
+
*/
|
|
943
|
+
subscribeExternal(listener) {
|
|
944
|
+
if (this.events === void 0) return () => {};
|
|
945
|
+
const onStorage = (event) => {
|
|
946
|
+
if (event.key !== null && event.key !== this.key) return;
|
|
947
|
+
listener();
|
|
948
|
+
};
|
|
949
|
+
this.events.addEventListener("storage", onStorage);
|
|
950
|
+
return () => {
|
|
951
|
+
this.events?.removeEventListener("storage", onStorage);
|
|
952
|
+
};
|
|
953
|
+
}
|
|
925
954
|
};
|
|
926
955
|
//#endregion
|
|
956
|
+
//#region src/client/apply-guard.ts
|
|
957
|
+
/** Claims the plugin apply slot. Returns true when this call won the slot. */
|
|
958
|
+
function claimTaskboardApply() {
|
|
959
|
+
if (globalThis.__dshTaskboardApplied === true) return false;
|
|
960
|
+
globalThis.__dshTaskboardApplied = true;
|
|
961
|
+
return true;
|
|
962
|
+
}
|
|
963
|
+
/**
|
|
964
|
+
* Releases the claim. Called from the client fiber cleanup so that a
|
|
965
|
+
* hot-reloaded bundle (the loader unloads the old plugin fiber and invokes
|
|
966
|
+
* the rebuilt one in the same page) can claim again instead of being
|
|
967
|
+
* silently dropped.
|
|
968
|
+
*/
|
|
969
|
+
function releaseTaskboardApply() {
|
|
970
|
+
globalThis.__dshTaskboardApplied = void 0;
|
|
971
|
+
}
|
|
972
|
+
//#endregion
|
|
927
973
|
//#region src/client/locales.ts
|
|
928
974
|
/**
|
|
929
975
|
* Task-board copy: zh-first dictionaries with an English fallback, selected
|
|
@@ -1122,8 +1168,8 @@ window.__ModuleLoader__.load({
|
|
|
1122
1168
|
return text;
|
|
1123
1169
|
}
|
|
1124
1170
|
//#endregion
|
|
1125
|
-
//#region \0dsh-css
|
|
1126
|
-
const css$1 = "[data-pane=conversation]{position:relative}[data-dsh-taskboard-view]{z-index:60;background:var(--dsw-alias-bg-base);display:none;position:absolute;inset:0}html[data-dsh-taskboard-active]:not([data-dsh-ssh-active]) [data-dsh-taskboard-view]{display:block}html[data-dsh-taskboard-active]:not([data-dsh-ssh-active]) [data-pane=conversation]>:not([data-dsh-taskboard-view]),html[data-dsh-taskboard-active]:not([data-dsh-ssh-active]) [class*=centerCol]>:not([data-dsh-taskboard-view]){display:none!important}.tHOVBW_entry{width:100%;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.tHOVBW_entry:hover{background:var(--dsw-specific-sidebar-nav-item-hover);color:var(--dsw-alias-label-primary)}.tHOVBW_entry[data-active]{background:var(--dsw-specific-sidebar-nav-item-active);color:var(--dsw-alias-label-primary);font-weight:600}.tHOVBW_entryIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.tHOVBW_entryLabel{text-overflow:ellipsis;overflow:hidden}[data-dsh-frame][data-sidebar-collapsed] .tHOVBW_entry{justify-content:center;width:100%;padding:0}[data-dsh-frame][data-sidebar-collapsed] .tHOVBW_entryLabel{display:none}.tHOVBW_board{background:var(--dsw-alias-bg-base);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex}.tHOVBW_boardHeader{flex:none;align-items:center;gap:10px;display:flex}.tHOVBW_boardTitle{color:var(--dsw-alias-label-primary);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.tHOVBW_search{min-width:120px;color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;outline:none;flex:0 260px;padding:6px 10px;font-size:13px}.tHOVBW_search::placeholder{color:var(--dsw-alias-label-tertiary)}.tHOVBW_columns{flex:1;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;min-height:0;display:grid}.tHOVBW_column{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.tHOVBW_columnHeader{flex:none;align-items:center;gap:6px;padding:10px 12px;display:flex}.tHOVBW_columnTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:13px;font-weight:700;overflow:hidden}.tHOVBW_columnCount{min-width:0;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;flex:none;padding:1px 8px;font-size:12px}.tHOVBW_statusDot{border-radius:50%;flex:none;width:8px;height:8px}.tHOVBW_statusDot[data-status=backlog]{background:var(--dsw-alias-label-tertiary)}.tHOVBW_statusDot[data-status=todo]{background:var(--dsw-alias-state-business-primary)}.tHOVBW_statusDot[data-status=running]{background:var(--dsw-alias-state-warn-primary)}.tHOVBW_statusDot[data-status=done]{background:var(--dsw-alias-state-success-primary)}.tHOVBW_statusDot[data-status=failed]{background:var(--dsw-alias-state-error-primary)}.tHOVBW_cards{flex-direction:column;flex:1;gap:8px;min-height:0;padding:2px 8px 10px;display:flex;overflow-y:auto}.tHOVBW_columnEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:24px 8px;font-size:12px}.tHOVBW_card{text-align:left;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;color:var(--dsw-alias-label-primary);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-family:inherit;transition:box-shadow .12s,border-color .12s,transform .12s;display:flex}.tHOVBW_card:hover{box-shadow:var(--dsw-shadow-lv2);border-color:var(--dsw-alias-border-l3);transform:translateY(-1px)}.tHOVBW_card[data-status=running]{border-color:var(--dsw-alias-state-warn-primary)}.tHOVBW_cardTitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.tHOVBW_cardExcerpt{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.tHOVBW_cardMeta{color:var(--dsw-alias-label-tertiary);align-items:center;gap:8px;font-size:11px;display:flex}.tHOVBW_cardTime{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tHOVBW_cardSchedule{white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;flex:none;padding:2px 6px;font-size:12px;line-height:1}.tHOVBW_cardRun{flex:none}.tHOVBW_cardRun[data-result=failed]{color:var(--dsw-alias-state-error-primary)}.tHOVBW_cardRun[data-result=succeeded]{color:var(--dsw-alias-state-success-primary)}.tHOVBW_cardSession{color:var(--dsw-alias-state-business-primary);flex:none}.tHOVBW_cardRunningLabel{color:var(--dsw-alias-state-warn-primary);font-size:11px}.tHOVBW_cardSpinner{border:2px solid var(--dsw-alias-state-warn-primary);border-top-color:#0000;border-radius:50%;flex:none;width:10px;height:10px;animation:.8s linear infinite tHOVBW_dshTbSpin}@keyframes tHOVBW_dshTbSpin{to{transform:rotate(360deg)}}.tHOVBW_primaryButton{color:var(--dsw-alias-label-primary-foreground);background:var(--dsw-alias-button-info-fill);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}.tHOVBW_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.tHOVBW_primaryButton:disabled{opacity:.5;cursor:default}.tHOVBW_ghostButton{color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}.tHOVBW_ghostButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.tHOVBW_ghostButton:disabled{opacity:.45;cursor:default}.tHOVBW_dangerButton{color:#fff;background:var(--dsw-alias-state-error-primary);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}.tHOVBW_dangerButton:hover:not(:disabled){filter:brightness(1.08)}.tHOVBW_dangerButton:active:not(:disabled){filter:brightness(.94)}.tHOVBW_dangerButton:disabled{opacity:.5;cursor:default}.tHOVBW_iconButton{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:13px;display:inline-flex}.tHOVBW_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.tHOVBW_linkButton{color:var(--dsw-alias-state-business-primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:12px}.tHOVBW_linkButton:hover{text-decoration:underline}.tHOVBW_modalBackdrop{z-index:1300;background:var(--dsw-alias-bg-mask-1);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tHOVBW_modal{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);width:min(520px,100vw - 48px);max-height:calc(100vh - 96px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);border-radius:14px;flex-direction:column;gap:12px;padding:18px;display:flex;overflow-y:auto}.tHOVBW_modalTitle{margin:0;font-size:15px;font-weight:700}.tHOVBW_confirmMessage{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.5}.tHOVBW_modalFooter{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.tHOVBW_field{flex-direction:column;gap:5px;display:flex}.tHOVBW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}.tHOVBW_input{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);resize:vertical;border-radius:8px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}.tHOVBW_input:focus{border-color:var(--dsw-alias-state-business-primary)}.tHOVBW_input::placeholder{color:var(--dsw-alias-label-tertiary)}.tHOVBW_formError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}.tHOVBW_detail{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);width:min(640px,100vw - 48px);max-height:calc(100vh - 80px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.tHOVBW_detailHeader{border-bottom:1px solid var(--dsw-alias-separator-primary);flex:none;align-items:center;gap:10px;padding:14px 18px;display:flex}.tHOVBW_detailTitle{overflow-wrap:anywhere;flex:1;margin:0;font-size:15px;font-weight:700}.tHOVBW_statusBadge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:2px 10px;font-size:12px}.tHOVBW_statusBadge[data-status=running]{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}.tHOVBW_statusBadge[data-status=done]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}.tHOVBW_statusBadge[data-status=failed]{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}.tHOVBW_detailBody{flex-direction:column;flex:1;gap:16px;padding:14px 18px;display:flex;overflow-y:auto}.tHOVBW_detailSection{flex-direction:column;gap:6px;display:flex}.tHOVBW_detailSection h4{color:var(--dsw-alias-label-tertiary);text-transform:none;margin:0;font-size:12px;font-weight:700}.tHOVBW_detailText{color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.55}.tHOVBW_scheduleToggle{color:var(--dsw-alias-label-primary);cursor:pointer;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.tHOVBW_scheduleToggle input{accent-color:var(--dsw-alias-state-business-primary)}.tHOVBW_scheduleRow{align-items:center;gap:8px;display:flex}.tHOVBW_scheduleInput{min-width:0;font-family:var(--dsw-font-markdown-code-block-small);flex:1;font-size:12.5px}.tHOVBW_scheduleInputInvalid,.tHOVBW_scheduleInputInvalid:focus{border-color:var(--dsw-alias-state-error-primary)}.tHOVBW_schedulePreset{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;outline:none;flex:none;padding:7px 8px;font-size:12.5px}.tHOVBW_scheduleMeta{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0;font-size:12px}.tHOVBW_promptBlock{font-size:12.5px;line-height:1.5;font-family:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border:1px solid var(--dsw-alias-border-l1);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;max-height:240px;margin:0;padding:10px 12px;overflow-y:auto}.tHOVBW_executionList{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tHOVBW_executionRow{border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.tHOVBW_executionBadge{color:var(--dsw-alias-state-warn-primary);background:var(--dsw-alias-state-warn-secondary);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:600}.tHOVBW_executionBadge[data-result=succeeded]{color:var(--dsw-alias-state-success-primary);background:0 0}.tHOVBW_executionBadge[data-result=failed]{color:var(--dsw-alias-state-error-primary);background:0 0}.tHOVBW_executionBadge[data-result=cancelled]{color:var(--dsw-alias-label-tertiary);background:0 0}.tHOVBW_executionTimes{color:var(--dsw-alias-label-secondary);font-size:12px}.tHOVBW_executionError{width:100%;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;font-size:12px}.tHOVBW_moveRow{flex-wrap:wrap;gap:8px;display:flex}.tHOVBW_detailFooter{border-top:1px solid var(--dsw-alias-separator-primary);flex:none;align-items:center;gap:10px;padding:12px 18px;display:flex}.tHOVBW_detailMeta{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:11px}.tHOVBW_entry:focus-visible,.tHOVBW_card:focus-visible,.tHOVBW_primaryButton:focus-visible,.tHOVBW_ghostButton:focus-visible,.tHOVBW_dangerButton:focus-visible,.tHOVBW_iconButton:focus-visible,.tHOVBW_linkButton:focus-visible,.tHOVBW_search:focus-visible,.tHOVBW_input:focus-visible,.tHOVBW_schedulePreset:focus-visible,.tHOVBW_scheduleToggle input:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.tHOVBW_entry,.tHOVBW_primaryButton,.tHOVBW_ghostButton,.tHOVBW_dangerButton,.tHOVBW_iconButton,.tHOVBW_linkButton,.tHOVBW_search,.tHOVBW_input,.tHOVBW_schedulePreset,.tHOVBW_scheduleToggle input{transition:background-color .12s,color .12s,border-color .12s,outline-color .12s,box-shadow .12s,transform .12s}.tHOVBW_card:active{box-shadow:var(--dsw-shadow-lv1);transform:translateY(0)}.tHOVBW_entry:active,.tHOVBW_primaryButton:active:not(:disabled),.tHOVBW_ghostButton:active:not(:disabled),.tHOVBW_dangerButton:active:not(:disabled),.tHOVBW_iconButton:active:not(:disabled),.tHOVBW_linkButton:active:not(:disabled){transform:translateY(1px)}.tHOVBW_entry[data-active]:hover{background:var(--dsw-specific-sidebar-nav-item-active)}.tHOVBW_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.tHOVBW_linkButton:hover:not(:disabled){text-decoration:underline}.tHOVBW_iconButton:disabled,.tHOVBW_linkButton:disabled{opacity:.45;cursor:default}.tHOVBW_search:focus,.tHOVBW_schedulePreset:focus{border-color:var(--dsw-alias-state-business-primary)}.tHOVBW_scheduleToggle input{margin:0}@media (prefers-reduced-motion:reduce){.tHOVBW_entry,.tHOVBW_card,.tHOVBW_primaryButton,.tHOVBW_ghostButton,.tHOVBW_dangerButton,.tHOVBW_iconButton,.tHOVBW_linkButton,.tHOVBW_search,.tHOVBW_input,.tHOVBW_schedulePreset,.tHOVBW_scheduleToggle input{transition:none}.tHOVBW_cardSpinner{animation:none}}";
|
|
1171
|
+
//#region \0dsh-css:packages/dsh-task-board/src/client/board.module.css.mjs
|
|
1172
|
+
const css$1 = "[data-pane=conversation],[class*=centerCol]{position:relative}[data-dsh-taskboard-view]{z-index:60;background:var(--dsw-alias-bg-base);display:none;position:absolute;inset:0}html[data-dsh-taskboard-active]:not([data-dsh-ssh-active]) [data-dsh-taskboard-view]{display:block}html[data-dsh-taskboard-active]:not([data-dsh-ssh-active]) [data-pane=conversation]>:not([data-dsh-taskboard-view]),html[data-dsh-taskboard-active]:not([data-dsh-ssh-active]) [class*=centerCol]>:not([data-dsh-taskboard-view]){display:none!important}._7D6uKa_entry{width:100%;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}._7D6uKa_entry:hover{background:var(--dsw-specific-sidebar-nav-item-hover);color:var(--dsw-alias-label-primary)}._7D6uKa_entry[data-active]{background:var(--dsw-specific-sidebar-nav-item-active);color:var(--dsw-alias-label-primary);font-weight:600}._7D6uKa_entryIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}._7D6uKa_entryLabel{text-overflow:ellipsis;overflow:hidden}[data-dsh-frame][data-sidebar-collapsed] ._7D6uKa_entry{justify-content:center;width:100%;padding:0}[data-dsh-frame][data-sidebar-collapsed] ._7D6uKa_entryLabel{display:none}._7D6uKa_board{background:var(--dsw-alias-bg-base);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex}._7D6uKa_boardHeader{flex:none;align-items:center;gap:10px;display:flex}._7D6uKa_boardTitle{color:var(--dsw-alias-label-primary);white-space:nowrap;margin:0;font-size:16px;font-weight:700}._7D6uKa_search{min-width:120px;color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;outline:none;flex:0 260px;padding:6px 10px;font-size:13px}._7D6uKa_search::placeholder{color:var(--dsw-alias-label-tertiary)}._7D6uKa_columns{flex:1;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;min-height:0;display:grid}._7D6uKa_column{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}._7D6uKa_columnHeader{flex:none;align-items:center;gap:6px;padding:10px 12px;display:flex}._7D6uKa_columnTitle{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:13px;font-weight:700;overflow:hidden}._7D6uKa_columnCount{min-width:0;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;flex:none;padding:1px 8px;font-size:12px}._7D6uKa_statusDot{border-radius:50%;flex:none;width:8px;height:8px}._7D6uKa_statusDot[data-status=backlog]{background:var(--dsw-alias-label-tertiary)}._7D6uKa_statusDot[data-status=todo]{background:var(--dsw-alias-state-business-primary)}._7D6uKa_statusDot[data-status=running]{background:var(--dsw-alias-state-warn-primary)}._7D6uKa_statusDot[data-status=done]{background:var(--dsw-alias-state-success-primary)}._7D6uKa_statusDot[data-status=failed]{background:var(--dsw-alias-state-error-primary)}._7D6uKa_cards{flex-direction:column;flex:1;gap:8px;min-height:0;padding:2px 8px 10px;display:flex;overflow-y:auto}._7D6uKa_columnEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:24px 8px;font-size:12px}._7D6uKa_card{text-align:left;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;color:var(--dsw-alias-label-primary);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-family:inherit;transition:box-shadow .12s,border-color .12s,transform .12s;display:flex}._7D6uKa_card:hover{box-shadow:var(--dsw-shadow-lv2);border-color:var(--dsw-alias-border-l3);transform:translateY(-1px)}._7D6uKa_card[data-status=running]{border-color:var(--dsw-alias-state-warn-primary)}._7D6uKa_cardTitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}._7D6uKa_cardExcerpt{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}._7D6uKa_cardMeta{color:var(--dsw-alias-label-tertiary);align-items:center;gap:8px;font-size:11px;display:flex}._7D6uKa_cardTime{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._7D6uKa_cardSchedule{white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;flex:none;padding:2px 6px;font-size:12px;line-height:1}._7D6uKa_cardRun{flex:none}._7D6uKa_cardRun[data-result=failed]{color:var(--dsw-alias-state-error-primary)}._7D6uKa_cardRun[data-result=succeeded]{color:var(--dsw-alias-state-success-primary)}._7D6uKa_cardSession{color:var(--dsw-alias-state-business-primary);flex:none}._7D6uKa_cardRunningLabel{color:var(--dsw-alias-state-warn-primary);font-size:11px}._7D6uKa_cardSpinner{border:2px solid var(--dsw-alias-state-warn-primary);border-top-color:#0000;border-radius:50%;flex:none;width:10px;height:10px;animation:.8s linear infinite _7D6uKa_dshTbSpin}@keyframes _7D6uKa_dshTbSpin{to{transform:rotate(360deg)}}._7D6uKa_primaryButton{color:var(--dsw-alias-label-primary-foreground);background:var(--dsw-alias-button-info-fill);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}._7D6uKa_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}._7D6uKa_primaryButton:disabled{opacity:.5;cursor:default}._7D6uKa_ghostButton{color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}._7D6uKa_ghostButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._7D6uKa_ghostButton:disabled{opacity:.45;cursor:default}._7D6uKa_dangerButton{color:#fff;background:var(--dsw-alias-state-error-primary);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}._7D6uKa_dangerButton:hover:not(:disabled){filter:brightness(1.08)}._7D6uKa_dangerButton:active:not(:disabled){filter:brightness(.94)}._7D6uKa_dangerButton:disabled{opacity:.5;cursor:default}._7D6uKa_iconButton{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:13px;display:inline-flex}._7D6uKa_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._7D6uKa_linkButton{color:var(--dsw-alias-state-business-primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:12px}._7D6uKa_linkButton:hover{text-decoration:underline}._7D6uKa_modalBackdrop{z-index:1300;background:var(--dsw-alias-bg-mask-1);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}._7D6uKa_modal{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);width:min(520px,100vw - 48px);max-height:calc(100vh - 96px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);border-radius:14px;flex-direction:column;gap:12px;padding:18px;display:flex;overflow-y:auto}._7D6uKa_modalTitle{margin:0;font-size:15px;font-weight:700}._7D6uKa_confirmMessage{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.5}._7D6uKa_modalFooter{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}._7D6uKa_field{flex-direction:column;gap:5px;display:flex}._7D6uKa_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}._7D6uKa_input{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);resize:vertical;border-radius:8px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}._7D6uKa_input:focus{border-color:var(--dsw-alias-state-business-primary)}._7D6uKa_input::placeholder{color:var(--dsw-alias-label-tertiary)}._7D6uKa_formError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}._7D6uKa_detail{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);width:min(640px,100vw - 48px);max-height:calc(100vh - 80px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}._7D6uKa_detailHeader{border-bottom:1px solid var(--dsw-alias-separator-primary);flex:none;align-items:center;gap:10px;padding:14px 18px;display:flex}._7D6uKa_detailTitle{overflow-wrap:anywhere;flex:1;margin:0;font-size:15px;font-weight:700}._7D6uKa_statusBadge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:2px 10px;font-size:12px}._7D6uKa_statusBadge[data-status=running]{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._7D6uKa_statusBadge[data-status=done]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._7D6uKa_statusBadge[data-status=failed]{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._7D6uKa_detailBody{flex-direction:column;flex:1;gap:16px;padding:14px 18px;display:flex;overflow-y:auto}._7D6uKa_detailSection{flex-direction:column;gap:6px;display:flex}._7D6uKa_detailSection h4{color:var(--dsw-alias-label-tertiary);text-transform:none;margin:0;font-size:12px;font-weight:700}._7D6uKa_detailText{color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.55}._7D6uKa_scheduleToggle{color:var(--dsw-alias-label-primary);cursor:pointer;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}._7D6uKa_scheduleToggle input{accent-color:var(--dsw-alias-state-business-primary)}._7D6uKa_scheduleRow{align-items:center;gap:8px;display:flex}._7D6uKa_scheduleInput{min-width:0;font-family:var(--dsw-font-markdown-code-block-small);flex:1;font-size:12.5px}._7D6uKa_scheduleInputInvalid,._7D6uKa_scheduleInputInvalid:focus{border-color:var(--dsw-alias-state-error-primary)}._7D6uKa_schedulePreset{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;outline:none;flex:none;padding:7px 8px;font-size:12.5px}._7D6uKa_scheduleMeta{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0;font-size:12px}._7D6uKa_promptBlock{font-size:12.5px;line-height:1.5;font-family:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-markdown-code-block);border:1px solid var(--dsw-alias-border-l1);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;max-height:240px;margin:0;padding:10px 12px;overflow-y:auto}._7D6uKa_executionList{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}._7D6uKa_executionRow{border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}._7D6uKa_executionBadge{color:var(--dsw-alias-state-warn-primary);background:var(--dsw-alias-state-warn-secondary);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:600}._7D6uKa_executionBadge[data-result=succeeded]{color:var(--dsw-alias-state-success-primary);background:0 0}._7D6uKa_executionBadge[data-result=failed]{color:var(--dsw-alias-state-error-primary);background:0 0}._7D6uKa_executionBadge[data-result=cancelled]{color:var(--dsw-alias-label-tertiary);background:0 0}._7D6uKa_executionTimes{color:var(--dsw-alias-label-secondary);font-size:12px}._7D6uKa_executionError{width:100%;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;font-size:12px}._7D6uKa_moveRow{flex-wrap:wrap;gap:8px;display:flex}._7D6uKa_detailFooter{border-top:1px solid var(--dsw-alias-separator-primary);flex:none;align-items:center;gap:10px;padding:12px 18px;display:flex}._7D6uKa_detailMeta{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:11px}._7D6uKa_entry:focus-visible,._7D6uKa_card:focus-visible,._7D6uKa_primaryButton:focus-visible,._7D6uKa_ghostButton:focus-visible,._7D6uKa_dangerButton:focus-visible,._7D6uKa_iconButton:focus-visible,._7D6uKa_linkButton:focus-visible,._7D6uKa_search:focus-visible,._7D6uKa_input:focus-visible,._7D6uKa_schedulePreset:focus-visible,._7D6uKa_scheduleToggle input:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}._7D6uKa_entry,._7D6uKa_primaryButton,._7D6uKa_ghostButton,._7D6uKa_dangerButton,._7D6uKa_iconButton,._7D6uKa_linkButton,._7D6uKa_search,._7D6uKa_input,._7D6uKa_schedulePreset,._7D6uKa_scheduleToggle input{transition:background-color .12s,color .12s,border-color .12s,outline-color .12s,box-shadow .12s,transform .12s}._7D6uKa_card:active{box-shadow:var(--dsw-shadow-lv1);transform:translateY(0)}._7D6uKa_entry:active,._7D6uKa_primaryButton:active:not(:disabled),._7D6uKa_ghostButton:active:not(:disabled),._7D6uKa_dangerButton:active:not(:disabled),._7D6uKa_iconButton:active:not(:disabled),._7D6uKa_linkButton:active:not(:disabled){transform:translateY(1px)}._7D6uKa_entry[data-active]:hover{background:var(--dsw-specific-sidebar-nav-item-active)}._7D6uKa_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._7D6uKa_linkButton:hover:not(:disabled){text-decoration:underline}._7D6uKa_iconButton:disabled,._7D6uKa_linkButton:disabled{opacity:.45;cursor:default}._7D6uKa_search:focus,._7D6uKa_schedulePreset:focus{border-color:var(--dsw-alias-state-business-primary)}._7D6uKa_scheduleToggle input{margin:0}@media (prefers-reduced-motion:reduce){._7D6uKa_entry,._7D6uKa_card,._7D6uKa_primaryButton,._7D6uKa_ghostButton,._7D6uKa_dangerButton,._7D6uKa_iconButton,._7D6uKa_linkButton,._7D6uKa_search,._7D6uKa_input,._7D6uKa_schedulePreset,._7D6uKa_scheduleToggle input{transition:none}._7D6uKa_cardSpinner{animation:none}}";
|
|
1127
1173
|
const tagId$1 = "@linxin666/dsh-client-ui-task-board/board.module.css";
|
|
1128
1174
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
1129
1175
|
const tag = document.createElement("style");
|
|
@@ -1133,68 +1179,68 @@ window.__ModuleLoader__.load({
|
|
|
1133
1179
|
document.head.appendChild(tag);
|
|
1134
1180
|
}
|
|
1135
1181
|
var board_module_css_default = {
|
|
1136
|
-
"board": "
|
|
1137
|
-
"boardHeader": "
|
|
1138
|
-
"boardTitle": "
|
|
1139
|
-
"card": "
|
|
1140
|
-
"cardExcerpt": "
|
|
1141
|
-
"cardMeta": "
|
|
1142
|
-
"cardRun": "
|
|
1143
|
-
"cardRunningLabel": "
|
|
1144
|
-
"cardSchedule": "
|
|
1145
|
-
"cardSession": "
|
|
1146
|
-
"cardSpinner": "
|
|
1147
|
-
"cardTime": "
|
|
1148
|
-
"cardTitle": "
|
|
1149
|
-
"cards": "
|
|
1150
|
-
"column": "
|
|
1151
|
-
"columnCount": "
|
|
1152
|
-
"columnEmpty": "
|
|
1153
|
-
"columnHeader": "
|
|
1154
|
-
"columnTitle": "
|
|
1155
|
-
"columns": "
|
|
1156
|
-
"confirmMessage": "
|
|
1157
|
-
"dangerButton": "
|
|
1158
|
-
"detail": "
|
|
1159
|
-
"detailBody": "
|
|
1160
|
-
"detailFooter": "
|
|
1161
|
-
"detailHeader": "
|
|
1162
|
-
"detailMeta": "
|
|
1163
|
-
"detailSection": "
|
|
1164
|
-
"detailText": "
|
|
1165
|
-
"detailTitle": "
|
|
1166
|
-
"dshTbSpin": "
|
|
1167
|
-
"entry": "
|
|
1168
|
-
"entryIcon": "
|
|
1169
|
-
"entryLabel": "
|
|
1170
|
-
"executionBadge": "
|
|
1171
|
-
"executionError": "
|
|
1172
|
-
"executionList": "
|
|
1173
|
-
"executionRow": "
|
|
1174
|
-
"executionTimes": "
|
|
1175
|
-
"field": "
|
|
1176
|
-
"fieldLabel": "
|
|
1177
|
-
"formError": "
|
|
1178
|
-
"ghostButton": "
|
|
1179
|
-
"iconButton": "
|
|
1180
|
-
"input": "
|
|
1181
|
-
"linkButton": "
|
|
1182
|
-
"modal": "
|
|
1183
|
-
"modalBackdrop": "
|
|
1184
|
-
"modalFooter": "
|
|
1185
|
-
"modalTitle": "
|
|
1186
|
-
"moveRow": "
|
|
1187
|
-
"primaryButton": "
|
|
1188
|
-
"promptBlock": "
|
|
1189
|
-
"scheduleInput": "
|
|
1190
|
-
"scheduleInputInvalid": "
|
|
1191
|
-
"scheduleMeta": "
|
|
1192
|
-
"schedulePreset": "
|
|
1193
|
-
"scheduleRow": "
|
|
1194
|
-
"scheduleToggle": "
|
|
1195
|
-
"search": "
|
|
1196
|
-
"statusBadge": "
|
|
1197
|
-
"statusDot": "
|
|
1182
|
+
"board": "_7D6uKa_board",
|
|
1183
|
+
"boardHeader": "_7D6uKa_boardHeader",
|
|
1184
|
+
"boardTitle": "_7D6uKa_boardTitle",
|
|
1185
|
+
"card": "_7D6uKa_card",
|
|
1186
|
+
"cardExcerpt": "_7D6uKa_cardExcerpt",
|
|
1187
|
+
"cardMeta": "_7D6uKa_cardMeta",
|
|
1188
|
+
"cardRun": "_7D6uKa_cardRun",
|
|
1189
|
+
"cardRunningLabel": "_7D6uKa_cardRunningLabel",
|
|
1190
|
+
"cardSchedule": "_7D6uKa_cardSchedule",
|
|
1191
|
+
"cardSession": "_7D6uKa_cardSession",
|
|
1192
|
+
"cardSpinner": "_7D6uKa_cardSpinner",
|
|
1193
|
+
"cardTime": "_7D6uKa_cardTime",
|
|
1194
|
+
"cardTitle": "_7D6uKa_cardTitle",
|
|
1195
|
+
"cards": "_7D6uKa_cards",
|
|
1196
|
+
"column": "_7D6uKa_column",
|
|
1197
|
+
"columnCount": "_7D6uKa_columnCount",
|
|
1198
|
+
"columnEmpty": "_7D6uKa_columnEmpty",
|
|
1199
|
+
"columnHeader": "_7D6uKa_columnHeader",
|
|
1200
|
+
"columnTitle": "_7D6uKa_columnTitle",
|
|
1201
|
+
"columns": "_7D6uKa_columns",
|
|
1202
|
+
"confirmMessage": "_7D6uKa_confirmMessage",
|
|
1203
|
+
"dangerButton": "_7D6uKa_dangerButton",
|
|
1204
|
+
"detail": "_7D6uKa_detail",
|
|
1205
|
+
"detailBody": "_7D6uKa_detailBody",
|
|
1206
|
+
"detailFooter": "_7D6uKa_detailFooter",
|
|
1207
|
+
"detailHeader": "_7D6uKa_detailHeader",
|
|
1208
|
+
"detailMeta": "_7D6uKa_detailMeta",
|
|
1209
|
+
"detailSection": "_7D6uKa_detailSection",
|
|
1210
|
+
"detailText": "_7D6uKa_detailText",
|
|
1211
|
+
"detailTitle": "_7D6uKa_detailTitle",
|
|
1212
|
+
"dshTbSpin": "_7D6uKa_dshTbSpin",
|
|
1213
|
+
"entry": "_7D6uKa_entry",
|
|
1214
|
+
"entryIcon": "_7D6uKa_entryIcon",
|
|
1215
|
+
"entryLabel": "_7D6uKa_entryLabel",
|
|
1216
|
+
"executionBadge": "_7D6uKa_executionBadge",
|
|
1217
|
+
"executionError": "_7D6uKa_executionError",
|
|
1218
|
+
"executionList": "_7D6uKa_executionList",
|
|
1219
|
+
"executionRow": "_7D6uKa_executionRow",
|
|
1220
|
+
"executionTimes": "_7D6uKa_executionTimes",
|
|
1221
|
+
"field": "_7D6uKa_field",
|
|
1222
|
+
"fieldLabel": "_7D6uKa_fieldLabel",
|
|
1223
|
+
"formError": "_7D6uKa_formError",
|
|
1224
|
+
"ghostButton": "_7D6uKa_ghostButton",
|
|
1225
|
+
"iconButton": "_7D6uKa_iconButton",
|
|
1226
|
+
"input": "_7D6uKa_input",
|
|
1227
|
+
"linkButton": "_7D6uKa_linkButton",
|
|
1228
|
+
"modal": "_7D6uKa_modal",
|
|
1229
|
+
"modalBackdrop": "_7D6uKa_modalBackdrop",
|
|
1230
|
+
"modalFooter": "_7D6uKa_modalFooter",
|
|
1231
|
+
"modalTitle": "_7D6uKa_modalTitle",
|
|
1232
|
+
"moveRow": "_7D6uKa_moveRow",
|
|
1233
|
+
"primaryButton": "_7D6uKa_primaryButton",
|
|
1234
|
+
"promptBlock": "_7D6uKa_promptBlock",
|
|
1235
|
+
"scheduleInput": "_7D6uKa_scheduleInput",
|
|
1236
|
+
"scheduleInputInvalid": "_7D6uKa_scheduleInputInvalid",
|
|
1237
|
+
"scheduleMeta": "_7D6uKa_scheduleMeta",
|
|
1238
|
+
"schedulePreset": "_7D6uKa_schedulePreset",
|
|
1239
|
+
"scheduleRow": "_7D6uKa_scheduleRow",
|
|
1240
|
+
"scheduleToggle": "_7D6uKa_scheduleToggle",
|
|
1241
|
+
"search": "_7D6uKa_search",
|
|
1242
|
+
"statusBadge": "_7D6uKa_statusBadge",
|
|
1243
|
+
"statusDot": "_7D6uKa_statusDot"
|
|
1198
1244
|
};
|
|
1199
1245
|
//#endregion
|
|
1200
1246
|
//#region src/client/board/NewTaskModal.tsx
|
|
@@ -1886,13 +1932,16 @@ window.__ModuleLoader__.load({
|
|
|
1886
1932
|
*
|
|
1887
1933
|
* The `conversation` slot is single-occupant (ui-conversation) and external
|
|
1888
1934
|
* plugins cannot declare slots, so the board takes over the center column at
|
|
1889
|
-
* the DOM level: a container is appended inside the
|
|
1890
|
-
*
|
|
1935
|
+
* the DOM level: a container is appended inside the center column
|
|
1936
|
+
* (`[class*="centerCol"]`, the dsh 0.1.0-rc.6 AppFrame layout; previously
|
|
1937
|
+
* `[data-pane="conversation"]` on older shells — the mount selector keeps both)
|
|
1938
|
+
* as an extra trailing child
|
|
1939
|
+
* React never manages, and a stylesheet
|
|
1891
1940
|
* rule hides the conversation content while the board is active. Toggling is
|
|
1892
1941
|
* a data attribute on <html> — no React involvement, so the conversation
|
|
1893
1942
|
* subtree underneath stays mounted and stateful.
|
|
1894
1943
|
*/
|
|
1895
|
-
const CONVERSATION_COLUMN_SELECTOR = "[data-pane=\"conversation\"]";
|
|
1944
|
+
const CONVERSATION_COLUMN_SELECTOR = "[data-pane=\"conversation\"], [class*=\"centerCol\"]";
|
|
1896
1945
|
const ACTIVE_ATTR = "data-dsh-taskboard-active";
|
|
1897
1946
|
/** The sibling panel's activation attribute (ssh), removed when this panel opens. */
|
|
1898
1947
|
const OTHER_ACTIVE_ATTR = "data-dsh-ssh-active";
|
|
@@ -2013,6 +2062,7 @@ window.__ModuleLoader__.load({
|
|
|
2013
2062
|
* @returns disposer removing the entry and its observers.
|
|
2014
2063
|
*/
|
|
2015
2064
|
function mountSidebarEntry(controller) {
|
|
2065
|
+
if (typeof document !== "undefined" && document.querySelector("[data-dsh-taskboard-entry]") !== null) return () => {};
|
|
2016
2066
|
const entry = createEntry(controller);
|
|
2017
2067
|
let root;
|
|
2018
2068
|
let placed = false;
|
|
@@ -2066,8 +2116,8 @@ window.__ModuleLoader__.load({
|
|
|
2066
2116
|
};
|
|
2067
2117
|
}
|
|
2068
2118
|
//#endregion
|
|
2069
|
-
//#region \0dsh-css
|
|
2070
|
-
const css = ".
|
|
2119
|
+
//#region \0dsh-css:packages/dsh-task-board/src/client/settings-card.module.css.mjs
|
|
2120
|
+
const css = ".Jh0q7G_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;list-style:none;transition:border-color .16s,background .16s}.Jh0q7G_card:hover{border-color:var(--dsw-alias-label-dimmed)}.Jh0q7G_cardOpen{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-label-dimmed)}.Jh0q7G_header{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;display:flex}.Jh0q7G_header:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.Jh0q7G_headText{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.Jh0q7G_name{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600;line-height:1.4}.Jh0q7G_description{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:1.5}.Jh0q7G_pending{white-space:nowrap;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.Jh0q7G_chevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .16s}.Jh0q7G_chevronOpen{transform:rotate(180deg)}.Jh0q7G_body{border-top:1px solid var(--dsw-alias-border-l2);margin:0 16px;padding-bottom:8px}.Jh0q7G_readOnly{color:var(--dsw-alias-label-tertiary);margin:12px 0 0;font-size:12px;line-height:1.5}.Jh0q7G_notExposed{color:var(--dsw-alias-state-warn-primary);margin:12px 0 0;font-size:12px;line-height:1.5}.Jh0q7G_footer{border-top:1px solid var(--dsw-alias-border-l2);justify-content:flex-end;align-items:center;gap:8px;padding:12px 0 4px;display:flex}.Jh0q7G_failed{min-width:0;color:var(--dsw-alias-label-error);flex:1;margin:0;font-size:12px;line-height:1.5}.Jh0q7G_discard,.Jh0q7G_save{appearance:none;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:5px 14px;font-size:13px;line-height:1.5}.Jh0q7G_discard{border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:0 0}.Jh0q7G_discard:hover:not(:disabled){color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed)}.Jh0q7G_save{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3)}.Jh0q7G_discard:disabled,.Jh0q7G_save:disabled{opacity:.4;cursor:default}.Jh0q7G_discard:focus-visible,.Jh0q7G_save:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Jh0q7G_field{flex-direction:column;gap:6px;padding:12px 0;display:flex}.Jh0q7G_field+.Jh0q7G_field{border-top:1px solid var(--dsw-alias-border-l2)}.Jh0q7G_head{align-items:center;gap:8px;display:flex}.Jh0q7G_label{min-width:0;color:var(--dsw-alias-label-primary);flex:1;font-size:13px;font-weight:500;line-height:1.5}.Jh0q7G_badges{align-items:center;gap:8px;display:inline-flex}.Jh0q7G_badge{white-space:nowrap;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.Jh0q7G_reset{font:inherit;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.5}.Jh0q7G_reset:hover:not(:disabled){color:var(--dsw-alias-label-primary)}.Jh0q7G_reset:disabled{cursor:default}.Jh0q7G_reset:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.Jh0q7G_input,.Jh0q7G_select{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);height:34px;font:inherit;color:var(--dsw-alias-label-primary);border-radius:8px;padding:0 12px;font-size:13px;line-height:1.5}.Jh0q7G_input:focus-visible,.Jh0q7G_select:focus-visible{border-color:var(--dsw-alias-brand-primary);outline:none}.Jh0q7G_input:disabled,.Jh0q7G_select:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.Jh0q7G_inputInvalid{border:1px solid var(--dsw-alias-label-error);background:var(--dsw-alias-bg-layer-3);height:34px;font:inherit;color:var(--dsw-alias-label-primary);border-radius:8px;padding:0 12px;font-size:13px;line-height:1.5}.Jh0q7G_inputInvalid:focus-visible{outline:2px solid var(--dsw-alias-label-error);outline-offset:1px;border-color:var(--dsw-alias-label-error)}.Jh0q7G_invalid{color:var(--dsw-alias-label-error);margin:0;font-size:12px;line-height:1.5}.Jh0q7G_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}@media (prefers-reduced-motion:reduce){.Jh0q7G_card,.Jh0q7G_header,.Jh0q7G_chevron,.Jh0q7G_chevronOpen,.Jh0q7G_discard,.Jh0q7G_save{transition:none}}";
|
|
2071
2121
|
const tagId = "@linxin666/dsh-client-ui-task-board/settings-card.module.css";
|
|
2072
2122
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
2073
2123
|
const tag = document.createElement("style");
|
|
@@ -2077,33 +2127,33 @@ window.__ModuleLoader__.load({
|
|
|
2077
2127
|
document.head.appendChild(tag);
|
|
2078
2128
|
}
|
|
2079
2129
|
var settings_card_module_css_default = {
|
|
2080
|
-
"badge": "
|
|
2081
|
-
"badges": "
|
|
2082
|
-
"body": "
|
|
2083
|
-
"card": "
|
|
2084
|
-
"cardOpen": "
|
|
2085
|
-
"chevron": "
|
|
2086
|
-
"chevronOpen": "
|
|
2087
|
-
"description": "
|
|
2088
|
-
"discard": "
|
|
2089
|
-
"failed": "
|
|
2090
|
-
"field": "
|
|
2091
|
-
"footer": "
|
|
2092
|
-
"head": "
|
|
2093
|
-
"headText": "
|
|
2094
|
-
"header": "
|
|
2095
|
-
"hint": "
|
|
2096
|
-
"input": "
|
|
2097
|
-
"inputInvalid": "
|
|
2098
|
-
"invalid": "
|
|
2099
|
-
"label": "
|
|
2100
|
-
"name": "
|
|
2101
|
-
"notExposed": "
|
|
2102
|
-
"pending": "
|
|
2103
|
-
"readOnly": "
|
|
2104
|
-
"reset": "
|
|
2105
|
-
"save": "
|
|
2106
|
-
"select": "
|
|
2130
|
+
"badge": "Jh0q7G_badge",
|
|
2131
|
+
"badges": "Jh0q7G_badges",
|
|
2132
|
+
"body": "Jh0q7G_body",
|
|
2133
|
+
"card": "Jh0q7G_card",
|
|
2134
|
+
"cardOpen": "Jh0q7G_cardOpen",
|
|
2135
|
+
"chevron": "Jh0q7G_chevron",
|
|
2136
|
+
"chevronOpen": "Jh0q7G_chevronOpen",
|
|
2137
|
+
"description": "Jh0q7G_description",
|
|
2138
|
+
"discard": "Jh0q7G_discard",
|
|
2139
|
+
"failed": "Jh0q7G_failed",
|
|
2140
|
+
"field": "Jh0q7G_field",
|
|
2141
|
+
"footer": "Jh0q7G_footer",
|
|
2142
|
+
"head": "Jh0q7G_head",
|
|
2143
|
+
"headText": "Jh0q7G_headText",
|
|
2144
|
+
"header": "Jh0q7G_header",
|
|
2145
|
+
"hint": "Jh0q7G_hint",
|
|
2146
|
+
"input": "Jh0q7G_input",
|
|
2147
|
+
"inputInvalid": "Jh0q7G_inputInvalid",
|
|
2148
|
+
"invalid": "Jh0q7G_invalid",
|
|
2149
|
+
"label": "Jh0q7G_label",
|
|
2150
|
+
"name": "Jh0q7G_name",
|
|
2151
|
+
"notExposed": "Jh0q7G_notExposed",
|
|
2152
|
+
"pending": "Jh0q7G_pending",
|
|
2153
|
+
"readOnly": "Jh0q7G_readOnly",
|
|
2154
|
+
"reset": "Jh0q7G_reset",
|
|
2155
|
+
"save": "Jh0q7G_save",
|
|
2156
|
+
"select": "Jh0q7G_select"
|
|
2107
2157
|
};
|
|
2108
2158
|
//#endregion
|
|
2109
2159
|
//#region src/client/PluginSettingsCard.tsx
|
|
@@ -2126,8 +2176,9 @@ window.__ModuleLoader__.load({
|
|
|
2126
2176
|
if (!state.available) return null;
|
|
2127
2177
|
const title = props.t(props.titleKey);
|
|
2128
2178
|
const blocked = !state.dirty || state.invalid || state.saving;
|
|
2179
|
+
const cardClass = open ? `${settings_card_module_css_default.cardOpen} ${settings_card_module_css_default.card}` : settings_card_module_css_default.card;
|
|
2129
2180
|
if (!state.exposed) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
2130
|
-
className:
|
|
2181
|
+
className: cardClass,
|
|
2131
2182
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
2132
2183
|
type: "button",
|
|
2133
2184
|
className: settings_card_module_css_default.header,
|
|
@@ -2145,9 +2196,17 @@ window.__ModuleLoader__.load({
|
|
|
2145
2196
|
className: settings_card_module_css_default.description,
|
|
2146
2197
|
children: props.t(props.descriptionKey)
|
|
2147
2198
|
})]
|
|
2148
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("
|
|
2149
|
-
|
|
2150
|
-
|
|
2199
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
2200
|
+
width: "14",
|
|
2201
|
+
height: "14",
|
|
2202
|
+
viewBox: "0 0 14 14",
|
|
2203
|
+
fill: "none",
|
|
2204
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2205
|
+
className: open ? `${settings_card_module_css_default.chevron} ${settings_card_module_css_default.chevronOpen}` : settings_card_module_css_default.chevron,
|
|
2206
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
2207
|
+
d: "M11.8486 5.5L11.4238 5.92383L8.69727 8.65137C8.44157 8.90706 8.21562 9.13382 8.01172 9.29785C7.79912 9.46883 7.55595 9.61756 7.25 9.66602C7.08435 9.69222 6.91565 9.69222 6.75 9.66602C6.44405 9.61756 6.20088 9.46883 5.98828 9.29785C5.78438 9.13382 5.55843 8.90706 5.30273 8.65137L2.57617 5.92383L2.15137 5.5L3 4.65137L3.42383 5.07617L6.15137 7.80273C6.42595 8.07732 6.59876 8.24849 6.74023 8.3623C6.87291 8.46904 6.92272 8.47813 6.9375 8.48047C6.97895 8.48703 7.02105 8.48703 7.0625 8.48047C7.07728 8.47813 7.12709 8.46904 7.25977 8.3623C7.40124 8.24849 7.57405 8.07732 7.84863 7.80273L10.5762 5.07617L11 4.65137L11.8486 5.5Z",
|
|
2208
|
+
fill: "currentColor"
|
|
2209
|
+
})
|
|
2151
2210
|
})]
|
|
2152
2211
|
}), open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2153
2212
|
className: settings_card_module_css_default.body,
|
|
@@ -2159,7 +2218,7 @@ window.__ModuleLoader__.load({
|
|
|
2159
2218
|
}) : null]
|
|
2160
2219
|
});
|
|
2161
2220
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
2162
|
-
className:
|
|
2221
|
+
className: cardClass,
|
|
2163
2222
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
2164
2223
|
type: "button",
|
|
2165
2224
|
className: settings_card_module_css_default.header,
|
|
@@ -2183,9 +2242,17 @@ window.__ModuleLoader__.load({
|
|
|
2183
2242
|
className: settings_card_module_css_default.pending,
|
|
2184
2243
|
children: props.t("settings.unsaved")
|
|
2185
2244
|
}) : null,
|
|
2186
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("
|
|
2187
|
-
|
|
2188
|
-
|
|
2245
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
2246
|
+
width: "14",
|
|
2247
|
+
height: "14",
|
|
2248
|
+
viewBox: "0 0 14 14",
|
|
2249
|
+
fill: "none",
|
|
2250
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2251
|
+
className: open ? `${settings_card_module_css_default.chevron} ${settings_card_module_css_default.chevronOpen}` : settings_card_module_css_default.chevron,
|
|
2252
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
2253
|
+
d: "M11.8486 5.5L11.4238 5.92383L8.69727 8.65137C8.44157 8.90706 8.21562 9.13382 8.01172 9.29785C7.79912 9.46883 7.55595 9.61756 7.25 9.66602C7.08435 9.69222 6.91565 9.69222 6.75 9.66602C6.44405 9.61756 6.20088 9.46883 5.98828 9.29785C5.78438 9.13382 5.55843 8.90706 5.30273 8.65137L2.57617 5.92383L2.15137 5.5L3 4.65137L3.42383 5.07617L6.15137 7.80273C6.42595 8.07732 6.59876 8.24849 6.74023 8.3623C6.87291 8.46904 6.92272 8.47813 6.9375 8.48047C6.97895 8.48703 7.02105 8.48703 7.0625 8.48047C7.07728 8.47813 7.12709 8.46904 7.25977 8.3623C7.40124 8.24849 7.57405 8.07732 7.84863 7.80273L10.5762 5.07617L11 4.65137L11.8486 5.5Z",
|
|
2254
|
+
fill: "currentColor"
|
|
2255
|
+
})
|
|
2189
2256
|
})
|
|
2190
2257
|
]
|
|
2191
2258
|
}), open ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2582,6 +2649,8 @@ window.__ModuleLoader__.load({
|
|
|
2582
2649
|
* @param ctx - client root context (services: sessions, workspaces).
|
|
2583
2650
|
*/
|
|
2584
2651
|
function apply(ctx) {
|
|
2652
|
+
if (!claimTaskboardApply()) return;
|
|
2653
|
+
ctx.effect(() => releaseTaskboardApply, "task-board: apply claim");
|
|
2585
2654
|
ctx.effect(() => ctx.locale.register(NS, {
|
|
2586
2655
|
zh,
|
|
2587
2656
|
en
|