dsh-config-manager 0.1.21 → 0.1.23

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/lib/client.d.ts CHANGED
@@ -959,6 +959,8 @@ declare const zh$1: {
959
959
  readonly 'import.conflicts.useImported': "使用备份";
960
960
  readonly 'import.conflicts.review': "稍后决定";
961
961
  readonly 'import.conflicts.unresolved': "还有 {count} 项未决策";
962
+ readonly 'import.conflicts.keepCurrentAll': "全部保留当前配置";
963
+ readonly 'import.conflicts.useImportedAll': "全部使用备份配置";
962
964
  readonly 'import.paths.title': "路径映射";
963
965
  readonly 'import.paths.hint': "备份中的绝对路径在目标机器可能不存在,请为每条路径指定新位置(留空将跳过该路径)。";
964
966
  readonly 'import.paths.old': "原路径";
@@ -1058,6 +1060,9 @@ declare const zh: {
1058
1060
  readonly 'syncflow.needsReviewBadge': "需人工决策";
1059
1061
  readonly 'syncflow.empty': "远端快照与本地一致(无变更)";
1060
1062
  readonly 'syncflow.diffCount': "共 {count} 项差异";
1063
+ readonly 'syncflow.keepLocalAll': "全部保留本地";
1064
+ readonly 'syncflow.useRemoteAll': "全部采用远端";
1065
+ readonly 'syncflow.bulkHint': "批量决策仅作用于冲突项;其余差异默认自动采用。";
1061
1066
  readonly 'syncflow.conflictTitle': "冲突解决";
1062
1067
  readonly 'syncflow.conflictUseLocal': "用本地";
1063
1068
  readonly 'syncflow.conflictUseRemote': "用远端";
package/lib/client.js CHANGED
@@ -2065,7 +2065,7 @@ var RunStore = class {
2065
2065
  const runStore = new RunStore();
2066
2066
  //#endregion
2067
2067
  //#region \0config-manager-css:/home/runner/work/dsh-config-manager/dsh-config-manager/src/client/config-manager.module.css.js
2068
- const css = "._367UGW_section{height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:10px;font-size:13px;display:flex}._367UGW_sectionHeader{flex:none;align-items:center;gap:10px;display:flex}._367UGW_viewTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:1;gap:2px;display:flex}._367UGW_viewTab{color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:7px 14px;font-size:13px}._367UGW_viewTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_viewTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_sectionBody{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}._367UGW_viewBody{flex-direction:column;gap:12px;padding:4px 2px 16px;display:flex}._367UGW_sectionTitleBlock{flex-direction:column;gap:2px;display:flex}._367UGW_sectionTitle{color:var(--dsw-alias-label-primary);margin:0;font-size:15px;font-weight:700}._367UGW_sectionSubtitle{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:1.5}._367UGW_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;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}._367UGW_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}._367UGW_primaryButton:disabled{opacity:.5;cursor:default}._367UGW_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;align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:inline-flex}._367UGW_ghostButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._367UGW_ghostButton:disabled{opacity:.45;cursor:default}._367UGW_dangerButton{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}._367UGW_dangerButton:hover:not(:disabled){background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary-foreground)}._367UGW_dangerButton:disabled{opacity:.45;cursor:default}._367UGW_badge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;line-height:1.6;display:inline-block}._367UGW_badgeInfo{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_badgeOk{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_badgeWarn{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_badgeError{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.5}._367UGW_banner[data-kind=ok]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_banner[data-kind=error]{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner[data-kind=info]{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_banner[data-kind=warn]{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;flex:none;gap:10px;padding:12px;display:flex}._367UGW_field{flex-direction:column;gap:5px;display:flex}._367UGW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}._367UGW_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}._367UGW_input:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_input::placeholder{color:var(--dsw-alias-label-tertiary)}._367UGW_input:disabled{opacity:.55}._367UGW_hint{color:var(--dsw-alias-label-tertiary);font-size:11.5px;line-height:1.5}._367UGW_formError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}._367UGW_checkboxRow{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}._367UGW_checkboxRow input{flex:none;margin-top:2px}._367UGW_radioLabel{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}._367UGW_secretFields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;padding-top:4px;display:grid}._367UGW_hiddenFile{display:none}._367UGW_modeTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:2px;display:flex}._367UGW_modeTab{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px;font-size:12.5px}._367UGW_modeTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_modeTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_modeHint{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.5}._367UGW_groupList{flex-direction:column;gap:10px;display:flex}._367UGW_groupCard{gap:8px}._367UGW_groupHeader{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}._367UGW_groupLabel{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:700}._367UGW_groupNote{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_groupItems{flex-direction:column;gap:6px;display:flex}._367UGW_categoryItem{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}._367UGW_categoryName{font-weight:500}._367UGW_categoryDesc{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_optionsCard{gap:8px}._367UGW_warnList{margin:4px 0 0;padding-left:18px}._367UGW_actionRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}._367UGW_progressBlock{flex-direction:column;flex:none;gap:6px;display:flex}._367UGW_progressMeta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}._367UGW_progressLabel{font-weight:600}._367UGW_progressDetail{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}._367UGW_progressBadge{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:2px;padding:1px 8px;font-size:11px;line-height:18px;display:inline-flex}._367UGW_progressBadgeSection{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);color:var(--dsw-alias-state-business-primary)}._367UGW_progressBadgeCount{background:color-mix(in srgb, var(--dsw-alias-state-info-primary) 14%, transparent);color:var(--dsw-alias-state-info-primary)}._367UGW_progressPercent{font-variant-numeric:tabular-nums;margin-left:auto}._367UGW_progressTrack{background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;height:8px;overflow:hidden}._367UGW_progressBar{background:var(--dsw-alias-state-business-primary);border-radius:999px;height:100%;transition:width .12s linear}._367UGW_progressBarDone{background:var(--dsw-alias-state-success-primary)}._367UGW_progressIndeterminate{width:40%;animation:1s ease-in-out infinite _367UGW_dshCmIndeterminate}@keyframes _367UGW_dshCmIndeterminate{0%{margin-left:-40%}to{margin-left:100%}}._367UGW_reportView{flex-direction:column;gap:10px;display:flex}._367UGW_statRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_reportText{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:260px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}._367UGW_reportFooter{justify-content:flex-end;gap:8px;display:flex}._367UGW_rollbackBox{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-primary);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_rollbackBox ._367UGW_reportText{border-color:var(--dsw-alias-border-l2)}._367UGW_errorBanner{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_errorTitle{color:var(--dsw-alias-state-error-primary);font-size:13px;font-weight:700}._367UGW_errorReason{white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorAction{color:var(--dsw-alias-label-secondary);font-size:12.5px}._367UGW_errorActionLabel{color:var(--dsw-alias-state-business-primary)}._367UGW_errorItem{color:var(--dsw-alias-label-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorFooter{justify-content:flex-end;display:flex}._367UGW_errorList{flex-direction:column;gap:4px;display:flex}._367UGW_errorLine{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-state-error-primary);border-radius:6px;margin:0;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictList{flex-direction:column;gap:10px;display:flex}._367UGW_conflictItem{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_conflictHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_conflictId{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:600}._367UGW_severityError{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);border-radius:999px;padding:0 6px;font-size:10.5px}._367UGW_conflictDetail{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);border-radius:6px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictOptions{flex-wrap:wrap;gap:14px;display:flex}._367UGW_pathMappingList{flex-direction:column;gap:8px;display:flex}._367UGW_pathRow{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}._367UGW_pathOld,._367UGW_pathNew{flex-direction:column;gap:4px;min-width:0;display:flex}._367UGW_pathValue{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;overflow:hidden}._367UGW_pathIssueKind{color:var(--dsw-alias-state-warn-primary);font-size:10.5px}._367UGW_secretsList{flex-direction:column;gap:10px;display:flex}._367UGW_empty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:22px 12px;font-size:12.5px}._367UGW_spinnerWrap{align-items:center;gap:6px;display:inline-flex}._367UGW_spinner{border:2px solid var(--dsw-alias-state-business-primary);vertical-align:-1px;border-top-color:#0000;border-radius:50%;flex:none;width:11px;height:11px;animation:.8s linear infinite _367UGW_dshCmSpin;display:inline-block}._367UGW_spinnerLabel{color:var(--dsw-alias-label-secondary);font-size:12px}@keyframes _367UGW_dshCmSpin{to{transform:rotate(360deg)}}._367UGW_snapshotList{flex-direction:column;gap:2px;display:flex}._367UGW_snapshotRowHeader,._367UGW_snapshotRow{grid-template-columns:minmax(120px,1.2fr) minmax(140px,1.6fr) 90px 56px 56px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:grid}._367UGW_snapshotRowHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px solid var(--dsw-alias-border-l1);font-size:11px}._367UGW_snapshotRow{text-align:left;width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px}._367UGW_snapshotRow:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_snapshotRow[data-active]{border-color:var(--dsw-alias-state-business-primary);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent)}._367UGW_warnText{color:var(--dsw-alias-state-warn-primary)}._367UGW_reportList{color:var(--dsw-alias-label-primary);flex-direction:column;gap:3px;margin:8px 0 4px;padding-left:18px;font-size:12px;display:flex}._367UGW_kindTag{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;padding:1px 6px;font-size:10.5px;display:inline-block}._367UGW_planScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;height:280px;padding:2px 10px 8px;overflow-y:auto}._367UGW_planScroll ._367UGW_reportList{margin-top:6px}._367UGW_reportScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:220px;padding:2px 10px 6px;overflow-y:auto}._367UGW_reportScroll ._367UGW_reportList{margin-top:4px}._367UGW_rowActions{gap:8px;margin-top:10px;display:flex}._367UGW_diffScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:240px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}";
2068
+ const css = "._367UGW_section{height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:10px;font-size:13px;display:flex}._367UGW_sectionHeader{flex:none;align-items:center;gap:10px;display:flex}._367UGW_viewTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:1;gap:2px;display:flex}._367UGW_viewTab{color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:7px 14px;font-size:13px}._367UGW_viewTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_viewTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_sectionBody{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}._367UGW_viewBody{flex-direction:column;gap:12px;padding:4px 2px 16px;display:flex}._367UGW_sectionTitleBlock{flex-direction:column;gap:2px;display:flex}._367UGW_sectionTitle{color:var(--dsw-alias-label-primary);margin:0;font-size:15px;font-weight:700}._367UGW_sectionSubtitle{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:1.5}._367UGW_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;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}._367UGW_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}._367UGW_primaryButton:disabled{opacity:.5;cursor:default}._367UGW_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;align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:inline-flex}._367UGW_ghostButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._367UGW_ghostButton:disabled{opacity:.45;cursor:default}._367UGW_dangerButton{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 12px;font-size:12px}._367UGW_dangerButton:hover:not(:disabled){background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary-foreground)}._367UGW_dangerButton:disabled{opacity:.45;cursor:default}._367UGW_badge{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;line-height:1.6;display:inline-block}._367UGW_badgeInfo{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_badgeOk{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_badgeWarn{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_badgeError{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.5}._367UGW_banner[data-kind=ok]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}._367UGW_banner[data-kind=error]{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary)}._367UGW_banner[data-kind=info]{color:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary)}._367UGW_banner[data-kind=warn]{color:var(--dsw-alias-state-warn-primary);border-color:var(--dsw-alias-state-warn-primary)}._367UGW_card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;flex:none;gap:10px;padding:12px;display:flex}._367UGW_field{flex-direction:column;gap:5px;display:flex}._367UGW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}._367UGW_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}._367UGW_input:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_input::placeholder{color:var(--dsw-alias-label-tertiary)}._367UGW_input:disabled{opacity:.55}._367UGW_select{-webkit-appearance:none;appearance:none;color:var(--dsw-alias-label-primary);background-color:var(--dsw-specific-input-major);background-image:linear-gradient(45deg, transparent 50%, var(--dsw-alias-label-secondary) 50%), linear-gradient(135deg, var(--dsw-alias-label-secondary) 50%, transparent 50%);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background-position:calc(100% - 17px) calc(50% - 1px),calc(100% - 12px) calc(50% - 1px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:8px;outline:none;max-width:100%;padding:7px 30px 7px 10px;font-family:inherit;font-size:13px}._367UGW_select:hover:not(:disabled){border-color:var(--dsw-alias-border-l1)}._367UGW_select:focus{border-color:var(--dsw-alias-state-business-primary)}._367UGW_select:disabled{opacity:.55;cursor:default}._367UGW_select option{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}._367UGW_hint{color:var(--dsw-alias-label-tertiary);font-size:11.5px;line-height:1.5}._367UGW_formError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px}._367UGW_checkboxRow{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}._367UGW_checkboxRow input{flex:none;margin-top:2px}._367UGW_radioLabel{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}._367UGW_secretFields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;padding-top:4px;display:grid}._367UGW_hiddenFile{display:none}._367UGW_modeTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:2px;display:flex}._367UGW_modeTab{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px;font-size:12.5px}._367UGW_modeTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._367UGW_modeTab[data-active]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary);font-weight:600}._367UGW_modeHint{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.5}._367UGW_groupList{flex-direction:column;gap:10px;display:flex}._367UGW_groupCard{gap:8px}._367UGW_groupHeader{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}._367UGW_groupLabel{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:700}._367UGW_groupNote{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_groupItems{flex-direction:column;gap:6px;display:flex}._367UGW_categoryItem{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}._367UGW_categoryName{font-weight:500}._367UGW_categoryDesc{color:var(--dsw-alias-label-tertiary);font-size:11.5px}._367UGW_optionsCard{gap:8px}._367UGW_warnList{margin:4px 0 0;padding-left:18px}._367UGW_actionRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}._367UGW_progressBlock{flex-direction:column;flex:none;gap:6px;display:flex}._367UGW_progressMeta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}._367UGW_progressLabel{font-weight:600}._367UGW_progressDetail{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}._367UGW_progressBadge{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:2px;padding:1px 8px;font-size:11px;line-height:18px;display:inline-flex}._367UGW_progressBadgeSection{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);color:var(--dsw-alias-state-business-primary)}._367UGW_progressBadgeCount{background:color-mix(in srgb, var(--dsw-alias-state-info-primary) 14%, transparent);color:var(--dsw-alias-state-info-primary)}._367UGW_progressPercent{font-variant-numeric:tabular-nums;margin-left:auto}._367UGW_progressTrack{background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;height:8px;overflow:hidden}._367UGW_progressBar{background:var(--dsw-alias-state-business-primary);border-radius:999px;height:100%;transition:width .12s linear}._367UGW_progressBarDone{background:var(--dsw-alias-state-success-primary)}._367UGW_progressIndeterminate{width:40%;animation:1s ease-in-out infinite _367UGW_dshCmIndeterminate}@keyframes _367UGW_dshCmIndeterminate{0%{margin-left:-40%}to{margin-left:100%}}._367UGW_reportView{flex-direction:column;gap:10px;display:flex}._367UGW_statRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._367UGW_reportText{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:260px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}._367UGW_reportFooter{justify-content:flex-end;gap:8px;display:flex}._367UGW_rollbackBox{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-primary);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_rollbackBox ._367UGW_reportText{border-color:var(--dsw-alias-border-l2)}._367UGW_errorBanner{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_errorTitle{color:var(--dsw-alias-state-error-primary);font-size:13px;font-weight:700}._367UGW_errorReason{white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorAction{color:var(--dsw-alias-label-secondary);font-size:12.5px}._367UGW_errorActionLabel{color:var(--dsw-alias-state-business-primary)}._367UGW_errorItem{color:var(--dsw-alias-label-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}._367UGW_errorFooter{justify-content:flex-end;display:flex}._367UGW_errorList{flex-direction:column;gap:4px;display:flex}._367UGW_errorLine{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-state-error-primary);border-radius:6px;margin:0;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictList{flex-direction:column;gap:10px;display:flex}._367UGW_conflictItem{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}._367UGW_conflictHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._367UGW_conflictId{color:var(--dsw-alias-label-primary);font-size:12.5px;font-weight:600}._367UGW_severityError{color:var(--dsw-alias-state-error-primary);border:1px solid var(--dsw-alias-state-error-primary);border-radius:999px;padding:0 6px;font-size:10.5px}._367UGW_conflictDetail{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;color:var(--dsw-alias-label-secondary);border-radius:6px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}._367UGW_conflictOptions{flex-wrap:wrap;gap:14px;display:flex}._367UGW_pathMappingList{flex-direction:column;gap:8px;display:flex}._367UGW_pathRow{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}._367UGW_pathOld,._367UGW_pathNew{flex-direction:column;gap:4px;min-width:0;display:flex}._367UGW_pathValue{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;overflow:hidden}._367UGW_pathIssueKind{color:var(--dsw-alias-state-warn-primary);font-size:10.5px}._367UGW_secretsList{flex-direction:column;gap:10px;display:flex}._367UGW_empty{text-align:center;color:var(--dsw-alias-label-tertiary);padding:22px 12px;font-size:12.5px}._367UGW_spinnerWrap{align-items:center;gap:6px;display:inline-flex}._367UGW_spinner{border:2px solid var(--dsw-alias-state-business-primary);vertical-align:-1px;border-top-color:#0000;border-radius:50%;flex:none;width:11px;height:11px;animation:.8s linear infinite _367UGW_dshCmSpin;display:inline-block}._367UGW_spinnerLabel{color:var(--dsw-alias-label-secondary);font-size:12px}@keyframes _367UGW_dshCmSpin{to{transform:rotate(360deg)}}._367UGW_snapshotList{flex-direction:column;gap:2px;display:flex}._367UGW_snapshotRowHeader,._367UGW_snapshotRow{grid-template-columns:minmax(120px,1.2fr) minmax(140px,1.6fr) 90px 56px 56px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:grid}._367UGW_snapshotRowHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px solid var(--dsw-alias-border-l1);font-size:11px}._367UGW_snapshotRow{text-align:left;width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px}._367UGW_snapshotRow:hover{background:var(--dsw-alias-interactive-bg-hover)}._367UGW_snapshotRow[data-active]{border-color:var(--dsw-alias-state-business-primary);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent)}._367UGW_warnText{color:var(--dsw-alias-state-warn-primary)}._367UGW_reportList{color:var(--dsw-alias-label-primary);flex-direction:column;gap:3px;margin:8px 0 4px;padding-left:18px;font-size:12px;display:flex}._367UGW_kindTag{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;padding:1px 6px;font-size:10.5px;display:inline-block}._367UGW_planScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;height:280px;padding:2px 10px 8px;overflow-y:auto}._367UGW_planScroll ._367UGW_reportList{margin-top:6px}._367UGW_reportScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:220px;padding:2px 10px 6px;overflow-y:auto}._367UGW_reportScroll ._367UGW_reportList{margin-top:4px}._367UGW_confirmScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;max-height:280px;padding:2px 10px 6px;overflow-y:auto}._367UGW_confirmScroll ._367UGW_reportList{margin-top:4px;margin-bottom:0}._367UGW_rowActions{gap:8px;margin-top:10px;display:flex}._367UGW_diffScroll{overscroll-behavior:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);white-space:pre-wrap;word-break:break-all;max-height:240px;color:var(--dsw-alias-label-primary);border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;overflow:auto}";
2069
2069
  const tagId = "dsh-config-manager/config-manager.module.css";
2070
2070
  if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"dsh-config-manager/config-manager.module.css\"]") === null) {
2071
2071
  const tag = document.createElement("style");
@@ -2075,105 +2075,107 @@ if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"
2075
2075
  document.head.appendChild(tag);
2076
2076
  }
2077
2077
  var config_manager_module_css_default = {
2078
- "categoryItem": "_367UGW_categoryItem",
2078
+ "errorFooter": "_367UGW_errorFooter",
2079
2079
  "warnText": "_367UGW_warnText",
2080
+ "planScroll": "_367UGW_planScroll",
2080
2081
  "rowActions": "_367UGW_rowActions",
2081
- "groupLabel": "_367UGW_groupLabel",
2082
- "groupNote": "_367UGW_groupNote",
2083
- "warnList": "_367UGW_warnList",
2084
- "secretsList": "_367UGW_secretsList",
2085
- "progressBadge": "_367UGW_progressBadge",
2086
- "viewBody": "_367UGW_viewBody",
2087
- "progressPercent": "_367UGW_progressPercent",
2088
- "sectionHeader": "_367UGW_sectionHeader",
2089
- "field": "_367UGW_field",
2082
+ "dangerButton": "_367UGW_dangerButton",
2083
+ "card": "_367UGW_card",
2084
+ "groupCard": "_367UGW_groupCard",
2085
+ "errorItem": "_367UGW_errorItem",
2086
+ "formError": "_367UGW_formError",
2087
+ "pathOld": "_367UGW_pathOld",
2088
+ "errorActionLabel": "_367UGW_errorActionLabel",
2089
+ "pathValue": "_367UGW_pathValue",
2090
+ "select": "_367UGW_select",
2091
+ "sectionSubtitle": "_367UGW_sectionSubtitle",
2092
+ "sectionBody": "_367UGW_sectionBody",
2093
+ "banner": "_367UGW_banner",
2094
+ "hint": "_367UGW_hint",
2095
+ "reportView": "_367UGW_reportView",
2090
2096
  "categoryDesc": "_367UGW_categoryDesc",
2091
- "pathIssueKind": "_367UGW_pathIssueKind",
2097
+ "reportList": "_367UGW_reportList",
2098
+ "statRow": "_367UGW_statRow",
2099
+ "progressMeta": "_367UGW_progressMeta",
2092
2100
  "progressBarDone": "_367UGW_progressBarDone",
2093
- "modeTabs": "_367UGW_modeTabs",
2094
- "reportView": "_367UGW_reportView",
2101
+ "secretsList": "_367UGW_secretsList",
2095
2102
  "snapshotRow": "_367UGW_snapshotRow",
2096
- "dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
2097
- "snapshotRowHeader": "_367UGW_snapshotRowHeader",
2103
+ "confirmScroll": "_367UGW_confirmScroll",
2104
+ "errorBanner": "_367UGW_errorBanner",
2105
+ "secretFields": "_367UGW_secretFields",
2106
+ "categoryName": "_367UGW_categoryName",
2098
2107
  "errorLine": "_367UGW_errorLine",
2099
- "banner": "_367UGW_banner",
2100
- "radioLabel": "_367UGW_radioLabel",
2101
- "progressMeta": "_367UGW_progressMeta",
2102
- "groupItems": "_367UGW_groupItems",
2103
- "pathMappingList": "_367UGW_pathMappingList",
2104
- "sectionTitle": "_367UGW_sectionTitle",
2105
- "pathNew": "_367UGW_pathNew",
2106
- "reportList": "_367UGW_reportList",
2107
- "dangerButton": "_367UGW_dangerButton",
2108
- "errorReason": "_367UGW_errorReason",
2109
- "viewTab": "_367UGW_viewTab",
2110
- "conflictItem": "_367UGW_conflictItem",
2111
- "diffScroll": "_367UGW_diffScroll",
2108
+ "conflictHead": "_367UGW_conflictHead",
2112
2109
  "progressBadgeCount": "_367UGW_progressBadgeCount",
2113
- "formError": "_367UGW_formError",
2114
- "card": "_367UGW_card",
2115
- "primaryButton": "_367UGW_primaryButton",
2116
- "conflictOptions": "_367UGW_conflictOptions",
2117
- "pathRow": "_367UGW_pathRow",
2118
- "sectionBody": "_367UGW_sectionBody",
2119
- "secretFields": "_367UGW_secretFields",
2120
- "optionsCard": "_367UGW_optionsCard",
2121
- "statRow": "_367UGW_statRow",
2122
- "rollbackBox": "_367UGW_rollbackBox",
2123
- "badgeOk": "_367UGW_badgeOk",
2124
- "progressBar": "_367UGW_progressBar",
2125
- "progressLabel": "_367UGW_progressLabel",
2110
+ "snapshotRowHeader": "_367UGW_snapshotRowHeader",
2111
+ "badgeWarn": "_367UGW_badgeWarn",
2126
2112
  "badge": "_367UGW_badge",
2127
- "errorAction": "_367UGW_errorAction",
2128
- "badgeInfo": "_367UGW_badgeInfo",
2129
- "errorItem": "_367UGW_errorItem",
2130
- "conflictHead": "_367UGW_conflictHead",
2131
- "severityError": "_367UGW_severityError",
2132
- "fieldLabel": "_367UGW_fieldLabel",
2113
+ "badgeError": "_367UGW_badgeError",
2133
2114
  "actionRow": "_367UGW_actionRow",
2134
- "errorBanner": "_367UGW_errorBanner",
2135
- "empty": "_367UGW_empty",
2136
- "spinner": "_367UGW_spinner",
2137
- "kindTag": "_367UGW_kindTag",
2138
- "spinnerLabel": "_367UGW_spinnerLabel",
2139
- "input": "_367UGW_input",
2140
- "errorActionLabel": "_367UGW_errorActionLabel",
2141
- "planScroll": "_367UGW_planScroll",
2142
- "errorList": "_367UGW_errorList",
2143
- "progressDetail": "_367UGW_progressDetail",
2115
+ "dshCmSpin": "_367UGW_dshCmSpin",
2116
+ "groupLabel": "_367UGW_groupLabel",
2144
2117
  "snapshotList": "_367UGW_snapshotList",
2145
- "ghostButton": "_367UGW_ghostButton",
2146
- "hint": "_367UGW_hint",
2147
- "progressIndeterminate": "_367UGW_progressIndeterminate",
2148
- "conflictDetail": "_367UGW_conflictDetail",
2149
- "pathValue": "_367UGW_pathValue",
2150
- "badgeError": "_367UGW_badgeError",
2151
- "sectionSubtitle": "_367UGW_sectionSubtitle",
2152
- "viewTabs": "_367UGW_viewTabs",
2153
- "modeTab": "_367UGW_modeTab",
2154
- "categoryName": "_367UGW_categoryName",
2155
- "progressTrack": "_367UGW_progressTrack",
2156
- "checkboxRow": "_367UGW_checkboxRow",
2157
- "reportText": "_367UGW_reportText",
2158
- "errorFooter": "_367UGW_errorFooter",
2159
- "hiddenFile": "_367UGW_hiddenFile",
2160
- "conflictList": "_367UGW_conflictList",
2118
+ "warnList": "_367UGW_warnList",
2119
+ "progressDetail": "_367UGW_progressDetail",
2120
+ "groupNote": "_367UGW_groupNote",
2121
+ "rollbackBox": "_367UGW_rollbackBox",
2122
+ "conflictOptions": "_367UGW_conflictOptions",
2123
+ "diffScroll": "_367UGW_diffScroll",
2124
+ "spinnerWrap": "_367UGW_spinnerWrap",
2125
+ "pathMappingList": "_367UGW_pathMappingList",
2126
+ "dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
2127
+ "input": "_367UGW_input",
2128
+ "fieldLabel": "_367UGW_fieldLabel",
2161
2129
  "errorTitle": "_367UGW_errorTitle",
2162
2130
  "conflictId": "_367UGW_conflictId",
2131
+ "modeTabs": "_367UGW_modeTabs",
2132
+ "groupItems": "_367UGW_groupItems",
2133
+ "sectionTitleBlock": "_367UGW_sectionTitleBlock",
2134
+ "optionsCard": "_367UGW_optionsCard",
2163
2135
  "reportFooter": "_367UGW_reportFooter",
2164
- "pathOld": "_367UGW_pathOld",
2165
- "badgeWarn": "_367UGW_badgeWarn",
2136
+ "progressLabel": "_367UGW_progressLabel",
2137
+ "conflictItem": "_367UGW_conflictItem",
2138
+ "errorList": "_367UGW_errorList",
2166
2139
  "section": "_367UGW_section",
2140
+ "progressIndeterminate": "_367UGW_progressIndeterminate",
2141
+ "field": "_367UGW_field",
2142
+ "viewTab": "_367UGW_viewTab",
2143
+ "progressBlock": "_367UGW_progressBlock",
2144
+ "errorAction": "_367UGW_errorAction",
2145
+ "pathNew": "_367UGW_pathNew",
2146
+ "kindTag": "_367UGW_kindTag",
2147
+ "errorReason": "_367UGW_errorReason",
2148
+ "conflictList": "_367UGW_conflictList",
2149
+ "progressPercent": "_367UGW_progressPercent",
2150
+ "radioLabel": "_367UGW_radioLabel",
2151
+ "reportText": "_367UGW_reportText",
2167
2152
  "reportScroll": "_367UGW_reportScroll",
2168
- "sectionTitleBlock": "_367UGW_sectionTitleBlock",
2169
- "modeHint": "_367UGW_modeHint",
2153
+ "progressBar": "_367UGW_progressBar",
2154
+ "viewTabs": "_367UGW_viewTabs",
2155
+ "pathRow": "_367UGW_pathRow",
2156
+ "spinner": "_367UGW_spinner",
2157
+ "checkboxRow": "_367UGW_checkboxRow",
2158
+ "primaryButton": "_367UGW_primaryButton",
2159
+ "sectionTitle": "_367UGW_sectionTitle",
2160
+ "empty": "_367UGW_empty",
2170
2161
  "progressBadgeSection": "_367UGW_progressBadgeSection",
2162
+ "modeHint": "_367UGW_modeHint",
2163
+ "conflictDetail": "_367UGW_conflictDetail",
2164
+ "progressTrack": "_367UGW_progressTrack",
2165
+ "sectionHeader": "_367UGW_sectionHeader",
2166
+ "severityError": "_367UGW_severityError",
2167
+ "viewBody": "_367UGW_viewBody",
2168
+ "badgeInfo": "_367UGW_badgeInfo",
2169
+ "pathIssueKind": "_367UGW_pathIssueKind",
2170
+ "hiddenFile": "_367UGW_hiddenFile",
2171
+ "spinnerLabel": "_367UGW_spinnerLabel",
2172
+ "categoryItem": "_367UGW_categoryItem",
2173
+ "modeTab": "_367UGW_modeTab",
2174
+ "ghostButton": "_367UGW_ghostButton",
2175
+ "badgeOk": "_367UGW_badgeOk",
2171
2176
  "groupList": "_367UGW_groupList",
2172
- "groupCard": "_367UGW_groupCard",
2173
2177
  "groupHeader": "_367UGW_groupHeader",
2174
- "spinnerWrap": "_367UGW_spinnerWrap",
2175
- "dshCmSpin": "_367UGW_dshCmSpin",
2176
- "progressBlock": "_367UGW_progressBlock"
2178
+ "progressBadge": "_367UGW_progressBadge"
2177
2179
  };
2178
2180
  //#endregion
2179
2181
  //#region src/client/common/ui.tsx
@@ -2863,11 +2865,18 @@ const RESOLUTION_OPTIONS = [{
2863
2865
  value: "useImported",
2864
2866
  key: "import.conflicts.useImported"
2865
2867
  }];
2868
+ /** 批量决策全部冲突项(keepCurrent / useImported),与逐项逻辑一致地更新 tick + onChanged */
2869
+ function resolveAll(collector, resolution, setTick, onChanged) {
2870
+ for (const item of collector.conflicts) collector.resolve(item.id, resolution);
2871
+ setTick((v) => v + 1);
2872
+ onChanged();
2873
+ }
2866
2874
  /** 冲突项决策列表 */
2867
2875
  function ConflictList({ collector, t, onChanged }) {
2868
2876
  const [tick, setTick] = (0, react.useState)(0);
2869
2877
  const items = collector.viewItems();
2870
2878
  const unresolved = collector.unresolved().length;
2879
+ const hasConflicts = items.length > 0;
2871
2880
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2872
2881
  className: config_manager_module_css_default.conflictList,
2873
2882
  children: [
@@ -2875,6 +2884,24 @@ function ConflictList({ collector, t, onChanged }) {
2875
2884
  kind: "warn",
2876
2885
  children: t("import.conflicts.unresolved", { count: String(unresolved) })
2877
2886
  }),
2887
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2888
+ className: config_manager_module_css_default.actionRow,
2889
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
2890
+ variant: "ghost",
2891
+ disabled: !hasConflicts,
2892
+ onClick: () => {
2893
+ resolveAll(collector, "keepCurrent", setTick, onChanged);
2894
+ },
2895
+ children: t("import.conflicts.keepCurrentAll")
2896
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
2897
+ variant: "primary",
2898
+ disabled: !hasConflicts,
2899
+ onClick: () => {
2900
+ resolveAll(collector, "useImported", setTick, onChanged);
2901
+ },
2902
+ children: t("import.conflicts.useImportedAll")
2903
+ })]
2904
+ }),
2878
2905
  items.map((view) => {
2879
2906
  const item = view.item;
2880
2907
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -4240,6 +4267,35 @@ const CONFIRM_REVIEW_KINDS = /* @__PURE__ */ new Set([
4240
4267
  "Error",
4241
4268
  "PathMapping"
4242
4269
  ]);
4270
+ /**
4271
+ * 仅保留需人工决策的项(差异确认列表只渲染这些)。
4272
+ * 统计(summarizeConfirmItems)仍基于全量 items,不受影响。
4273
+ */
4274
+ function reviewItems(items) {
4275
+ return items.filter((it) => CONFIRM_REVIEW_KINDS.has(it.kind));
4276
+ }
4277
+ /**
4278
+ * 「全部保留本地」:所有 Conflict 项 → resolution=keepLocal、adopt=false。
4279
+ * 仅作用于 Conflict 项,非 Conflict 项的 adopt 保持默认。
4280
+ */
4281
+ function keepLocalAll(items) {
4282
+ return items.filter((it) => it.kind === "Conflict").map((it) => ({
4283
+ itemId: it.itemId,
4284
+ resolution: "keepLocal",
4285
+ adopt: false
4286
+ }));
4287
+ }
4288
+ /**
4289
+ * 「全部采用远端」:所有 Conflict 项 → resolution=useRemote、adopt=true。
4290
+ * 仅作用于 Conflict 项,非 Conflict 项的 adopt 保持默认。
4291
+ */
4292
+ function useRemoteAll(items) {
4293
+ return items.filter((it) => it.kind === "Conflict").map((it) => ({
4294
+ itemId: it.itemId,
4295
+ resolution: "useRemote",
4296
+ adopt: true
4297
+ }));
4298
+ }
4243
4299
  /** 差异确认列表摘要(按 severity 计数 + 采用数 + needsReview 徽章数据源)。 */
4244
4300
  function summarizeConfirmItems(items) {
4245
4301
  let info = 0;
@@ -4514,6 +4570,7 @@ function SyncConfirmView(props) {
4514
4570
  ...it,
4515
4571
  adopt: states[it.itemId]?.adopted ?? it.defaultAdopt
4516
4572
  }))), [items, states]);
4573
+ const displayItems = (0, react.useMemo)(() => reviewItems(items), [items]);
4517
4574
  const setAdopted = (itemId, adopted) => {
4518
4575
  setStates((prev) => ({
4519
4576
  ...prev,
@@ -4538,6 +4595,24 @@ function SyncConfirmView(props) {
4538
4595
  };
4539
4596
  });
4540
4597
  };
4598
+ const applyBulkDecision = (decisions) => {
4599
+ if (decisions.length === 0) return;
4600
+ setStates((prev) => {
4601
+ const next = { ...prev };
4602
+ for (const d of decisions) {
4603
+ const existing = prev[d.itemId] ?? {
4604
+ adopted: false,
4605
+ resolution: void 0
4606
+ };
4607
+ next[d.itemId] = {
4608
+ ...existing,
4609
+ resolution: d.resolution,
4610
+ adopted: d.adopt
4611
+ };
4612
+ }
4613
+ return next;
4614
+ });
4615
+ };
4541
4616
  const runApply = async () => {
4542
4617
  const unresolved = items.find((it) => it.kind === "Conflict" && states[it.itemId]?.adopted === true && states[it.itemId]?.resolution === void 0);
4543
4618
  if (unresolved !== void 0) {
@@ -4660,41 +4735,69 @@ function SyncConfirmView(props) {
4660
4735
  className: config_manager_module_css_default.hint,
4661
4736
  children: t("syncflow.adoptHint")
4662
4737
  }),
4738
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4739
+ className: config_manager_module_css_default.actionRow,
4740
+ children: [
4741
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
4742
+ variant: "ghost",
4743
+ disabled: busy || displayItems.filter((it) => it.kind === "Conflict").length === 0,
4744
+ onClick: () => {
4745
+ applyBulkDecision(keepLocalAll(items));
4746
+ },
4747
+ children: t("syncflow.keepLocalAll")
4748
+ }),
4749
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
4750
+ variant: "primary",
4751
+ disabled: busy || displayItems.filter((it) => it.kind === "Conflict").length === 0,
4752
+ onClick: () => {
4753
+ applyBulkDecision(useRemoteAll(items));
4754
+ },
4755
+ children: t("syncflow.useRemoteAll")
4756
+ }),
4757
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4758
+ className: config_manager_module_css_default.hint,
4759
+ children: t("syncflow.bulkHint")
4760
+ })
4761
+ ]
4762
+ }),
4663
4763
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4664
- className: config_manager_module_css_default.reportList,
4665
- children: items.map((it) => {
4666
- const st = states[it.itemId] ?? { adopted: it.defaultAdopt };
4667
- const isConflict = it.kind === "Conflict";
4668
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4669
- className: config_manager_module_css_default.statRow,
4670
- children: [
4671
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4672
- className: config_manager_module_css_default.checkboxRow,
4673
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4674
- type: "checkbox",
4675
- checked: st.adopted,
4676
- disabled: busy,
4677
- onChange: (e) => {
4678
- setAdopted(it.itemId, e.target.checked);
4764
+ className: config_manager_module_css_default.confirmScroll,
4765
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4766
+ className: config_manager_module_css_default.reportList,
4767
+ children: displayItems.map((it) => {
4768
+ const st = states[it.itemId] ?? { adopted: it.defaultAdopt };
4769
+ const isConflict = it.kind === "Conflict";
4770
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4771
+ className: config_manager_module_css_default.statRow,
4772
+ children: [
4773
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4774
+ className: config_manager_module_css_default.checkboxRow,
4775
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4776
+ type: "checkbox",
4777
+ checked: st.adopted,
4778
+ disabled: busy,
4779
+ onChange: (e) => {
4780
+ setAdopted(it.itemId, e.target.checked);
4781
+ }
4782
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: kindLabel(it.kind, api.t) })]
4783
+ }),
4784
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Badge, {
4785
+ kind: it.severity === "error" ? "error" : it.severity === "warning" ? "warn" : "info",
4786
+ children: severityLabel(it.severity, api.t)
4787
+ }),
4788
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: it.description }),
4789
+ isConflict && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ConflictResolver, {
4790
+ item: it,
4791
+ resolution: st.resolution,
4792
+ busy,
4793
+ t,
4794
+ onResolve: (r) => {
4795
+ setResolution(it.itemId, r);
4679
4796
  }
4680
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: kindLabel(it.kind, api.t) })]
4681
- }),
4682
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Badge, {
4683
- kind: it.severity === "error" ? "error" : it.severity === "warning" ? "warn" : "info",
4684
- children: severityLabel(it.severity, api.t)
4685
- }),
4686
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: it.description }),
4687
- isConflict && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ConflictResolver, {
4688
- item: it,
4689
- resolution: st.resolution,
4690
- busy,
4691
- t,
4692
- onResolve: (r) => {
4693
- setResolution(it.itemId, r);
4694
- }
4695
- })
4696
- ]
4697
- }, it.itemId);
4797
+ })
4798
+ ]
4799
+ }, it.itemId);
4800
+ })
4698
4801
  })
4699
4802
  }),
4700
4803
  error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Banner, {
@@ -4905,6 +5008,7 @@ function SyncSettingsView({ api, t }) {
4905
5008
  } : {}
4906
5009
  });
4907
5010
  if (info.autosync === void 0) loadAutosync();
5011
+ if (info.configured && (info.repoUrl ?? "").trim() !== "") loadSnapshots(info.repoUrl);
4908
5012
  } catch (err) {
4909
5013
  patch({
4910
5014
  loading: false,
@@ -4925,10 +5029,20 @@ function SyncSettingsView({ api, t }) {
4925
5029
  patch({ error: err instanceof Error ? err.message : String(err) });
4926
5030
  }
4927
5031
  };
4928
- /** 读取远端历史快照列表(「选择历史快照」下拉数据源)。 */
4929
- const loadSnapshots = async () => {
5032
+ /**
5033
+ * 读取远端历史快照列表(「选择历史快照」下拉数据源)。
5034
+ * repoUrlOverride:挂载时仓库地址刚从 status 回填、state.repoUrl 尚未生效,
5035
+ * 直接传 info.repoUrl 避免竞态读旧值;缺省读 state.repoUrl(同步成功后的刷新路径)。
5036
+ * 无仓库地址时静默跳过(不发无效请求,下拉留空)。
5037
+ */
5038
+ const loadSnapshots = async (repoUrlOverride) => {
5039
+ const repoUrl = repoUrlOverride ?? state.repoUrl;
5040
+ if (repoUrl.trim() === "") return;
4930
5041
  try {
4931
- const res = await api.snapshotsList(payload());
5042
+ const res = await api.snapshotsList({
5043
+ ...payload(),
5044
+ repoUrl
5045
+ });
4932
5046
  patch({ snapshots: res.snapshots });
4933
5047
  } catch {}
4934
5048
  };
@@ -5343,7 +5457,7 @@ function SyncSettingsView({ api, t }) {
5343
5457
  children: t("syncflow.selectSnapshot")
5344
5458
  }),
5345
5459
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
5346
- className: config_manager_module_css_default.input,
5460
+ className: config_manager_module_css_default.select,
5347
5461
  value: state.selectedSnapshotId,
5348
5462
  disabled: state.busy !== null,
5349
5463
  onChange: (e) => {
@@ -5742,6 +5856,8 @@ const zh$1 = {
5742
5856
  "import.conflicts.useImported": "使用备份",
5743
5857
  "import.conflicts.review": "稍后决定",
5744
5858
  "import.conflicts.unresolved": "还有 {count} 项未决策",
5859
+ "import.conflicts.keepCurrentAll": "全部保留当前配置",
5860
+ "import.conflicts.useImportedAll": "全部使用备份配置",
5745
5861
  "import.paths.title": "路径映射",
5746
5862
  "import.paths.hint": "备份中的绝对路径在目标机器可能不存在,请为每条路径指定新位置(留空将跳过该路径)。",
5747
5863
  "import.paths.old": "原路径",
@@ -5853,6 +5969,8 @@ const en$1 = {
5853
5969
  "import.conflicts.useImported": "Use backup",
5854
5970
  "import.conflicts.review": "Decide later",
5855
5971
  "import.conflicts.unresolved": "{count} item(s) unresolved",
5972
+ "import.conflicts.keepCurrentAll": "Keep all current",
5973
+ "import.conflicts.useImportedAll": "Use all backup",
5856
5974
  "import.paths.title": "Path Mapping",
5857
5975
  "import.paths.hint": "Absolute paths in the backup may not exist on this machine. Map each path to a new location (leave blank to skip).",
5858
5976
  "import.paths.old": "Original path",
@@ -5950,6 +6068,9 @@ const zh = {
5950
6068
  "syncflow.needsReviewBadge": "需人工决策",
5951
6069
  "syncflow.empty": "远端快照与本地一致(无变更)",
5952
6070
  "syncflow.diffCount": "共 {count} 项差异",
6071
+ "syncflow.keepLocalAll": "全部保留本地",
6072
+ "syncflow.useRemoteAll": "全部采用远端",
6073
+ "syncflow.bulkHint": "批量决策仅作用于冲突项;其余差异默认自动采用。",
5953
6074
  "syncflow.conflictTitle": "冲突解决",
5954
6075
  "syncflow.conflictUseLocal": "用本地",
5955
6076
  "syncflow.conflictUseRemote": "用远端",
@@ -6067,6 +6188,9 @@ const en = {
6067
6188
  "syncflow.needsReviewBadge": "Needs decision",
6068
6189
  "syncflow.empty": "Remote snapshot matches local (no changes)",
6069
6190
  "syncflow.diffCount": "{count} change(s)",
6191
+ "syncflow.keepLocalAll": "Keep all local",
6192
+ "syncflow.useRemoteAll": "Adopt all remote",
6193
+ "syncflow.bulkHint": "Bulk decisions only apply to conflict items; other changes are adopted by default.",
6070
6194
  "syncflow.conflictTitle": "Resolve conflict",
6071
6195
  "syncflow.conflictUseLocal": "Use local",
6072
6196
  "syncflow.conflictUseRemote": "Use remote",