mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
ui: collapse advanced story time fields and story time span section
This commit is contained in:
36
style.css
36
style.css
@@ -4819,6 +4819,42 @@
|
|||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bme-node-detail-collapse {
|
||||||
|
margin: 6px 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bme-node-detail-collapse > summary {
|
||||||
|
font-size: 10px;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
color: var(--bme-on-surface-dim);
|
||||||
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bme-node-detail-collapse > summary::-webkit-details-marker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bme-node-detail-collapse > summary::before {
|
||||||
|
content: "▶";
|
||||||
|
font-size: 8px;
|
||||||
|
transition: transform 0.15s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bme-node-detail-collapse[open] > summary::before {
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bme-node-detail-collapse > .bme-node-detail-field:first-of-type {
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
/* --- Scrollbar --- */
|
/* --- Scrollbar --- */
|
||||||
.bme-tab-content::-webkit-scrollbar,
|
.bme-tab-content::-webkit-scrollbar,
|
||||||
.bme-config-sidebar::-webkit-scrollbar,
|
.bme-config-sidebar::-webkit-scrollbar,
|
||||||
|
|||||||
42
ui/panel.js
42
ui/panel.js
@@ -4082,87 +4082,97 @@ function _buildNodeDetailEditorFragment(raw, { idPrefix = "bme-detail" } = {}) {
|
|||||||
storyTime.tense,
|
storyTime.tense,
|
||||||
STORY_TIME_TENSE_OPTIONS,
|
STORY_TIME_TENSE_OPTIONS,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const storyTimeAdvanced = document.createElement("details");
|
||||||
|
storyTimeAdvanced.className = "bme-node-detail-collapse";
|
||||||
|
const storyTimeAdvancedSummary = document.createElement("summary");
|
||||||
|
storyTimeAdvancedSummary.textContent = "高级";
|
||||||
|
storyTimeAdvanced.appendChild(storyTimeAdvancedSummary);
|
||||||
_appendNodeDetailSelectInput(
|
_appendNodeDetailSelectInput(
|
||||||
fragment,
|
storyTimeAdvanced,
|
||||||
"相对关系",
|
"相对关系",
|
||||||
inputId("story-time-relation"),
|
inputId("story-time-relation"),
|
||||||
storyTime.relation,
|
storyTime.relation,
|
||||||
STORY_TIME_RELATION_OPTIONS,
|
STORY_TIME_RELATION_OPTIONS,
|
||||||
);
|
);
|
||||||
_appendNodeDetailTextInput(
|
_appendNodeDetailTextInput(
|
||||||
fragment,
|
storyTimeAdvanced,
|
||||||
"锚点标签",
|
"锚点标签",
|
||||||
inputId("story-time-anchor-label"),
|
inputId("story-time-anchor-label"),
|
||||||
storyTime.anchorLabel,
|
storyTime.anchorLabel,
|
||||||
);
|
);
|
||||||
_appendNodeDetailSelectInput(
|
_appendNodeDetailSelectInput(
|
||||||
fragment,
|
storyTimeAdvanced,
|
||||||
"置信度",
|
"置信度",
|
||||||
inputId("story-time-confidence"),
|
inputId("story-time-confidence"),
|
||||||
storyTime.confidence,
|
storyTime.confidence,
|
||||||
STORY_TIME_CONFIDENCE_OPTIONS,
|
STORY_TIME_CONFIDENCE_OPTIONS,
|
||||||
);
|
);
|
||||||
_appendNodeDetailSelectInput(
|
_appendNodeDetailSelectInput(
|
||||||
fragment,
|
storyTimeAdvanced,
|
||||||
"来源",
|
"来源",
|
||||||
inputId("story-time-source"),
|
inputId("story-time-source"),
|
||||||
storyTime.source,
|
storyTime.source,
|
||||||
STORY_TIME_SOURCE_OPTIONS,
|
STORY_TIME_SOURCE_OPTIONS,
|
||||||
);
|
);
|
||||||
_appendNodeDetailTextInput(
|
_appendNodeDetailTextInput(
|
||||||
fragment,
|
storyTimeAdvanced,
|
||||||
"段 ID",
|
"段 ID",
|
||||||
inputId("story-time-segment-id"),
|
inputId("story-time-segment-id"),
|
||||||
storyTime.segmentId,
|
storyTime.segmentId,
|
||||||
);
|
);
|
||||||
|
fragment.appendChild(storyTimeAdvanced);
|
||||||
|
|
||||||
const storyTimeSpanSection = document.createElement("div");
|
const storyTimeSpanCollapse = document.createElement("details");
|
||||||
storyTimeSpanSection.className = "bme-node-detail-section";
|
storyTimeSpanCollapse.className = "bme-node-detail-collapse";
|
||||||
storyTimeSpanSection.textContent = "剧情时间范围";
|
const storyTimeSpanSummaryEl = document.createElement("summary");
|
||||||
fragment.appendChild(storyTimeSpanSection);
|
storyTimeSpanSummaryEl.className = "bme-node-detail-section";
|
||||||
|
storyTimeSpanSummaryEl.textContent = "剧情时间范围";
|
||||||
|
storyTimeSpanCollapse.appendChild(storyTimeSpanSummaryEl);
|
||||||
_appendNodeDetailReadOnly(
|
_appendNodeDetailReadOnly(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"当前范围",
|
"当前范围",
|
||||||
_describeStoryTimeSpanDisplay(storyTimeSpan) || "—",
|
_describeStoryTimeSpanDisplay(storyTimeSpan) || "—",
|
||||||
);
|
);
|
||||||
_appendNodeDetailTextInput(
|
_appendNodeDetailTextInput(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"起点标签",
|
"起点标签",
|
||||||
inputId("story-time-span-start-label"),
|
inputId("story-time-span-start-label"),
|
||||||
storyTimeSpan.startLabel,
|
storyTimeSpan.startLabel,
|
||||||
);
|
);
|
||||||
_appendNodeDetailTextInput(
|
_appendNodeDetailTextInput(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"终点标签",
|
"终点标签",
|
||||||
inputId("story-time-span-end-label"),
|
inputId("story-time-span-end-label"),
|
||||||
storyTimeSpan.endLabel,
|
storyTimeSpan.endLabel,
|
||||||
);
|
);
|
||||||
_appendNodeDetailSelectInput(
|
_appendNodeDetailSelectInput(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"混合时间",
|
"混合时间",
|
||||||
inputId("story-time-span-mixed"),
|
inputId("story-time-span-mixed"),
|
||||||
storyTimeSpan.mixed ? "true" : "false",
|
storyTimeSpan.mixed ? "true" : "false",
|
||||||
STORY_TIME_MIXED_OPTIONS,
|
STORY_TIME_MIXED_OPTIONS,
|
||||||
);
|
);
|
||||||
_appendNodeDetailSelectInput(
|
_appendNodeDetailSelectInput(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"来源",
|
"来源",
|
||||||
inputId("story-time-span-source"),
|
inputId("story-time-span-source"),
|
||||||
storyTimeSpan.source,
|
storyTimeSpan.source,
|
||||||
STORY_TIME_SOURCE_OPTIONS,
|
STORY_TIME_SOURCE_OPTIONS,
|
||||||
);
|
);
|
||||||
_appendNodeDetailTextInput(
|
_appendNodeDetailTextInput(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"起点段 ID",
|
"起点段 ID",
|
||||||
inputId("story-time-span-start-segment-id"),
|
inputId("story-time-span-start-segment-id"),
|
||||||
storyTimeSpan.startSegmentId,
|
storyTimeSpan.startSegmentId,
|
||||||
);
|
);
|
||||||
_appendNodeDetailTextInput(
|
_appendNodeDetailTextInput(
|
||||||
fragment,
|
storyTimeSpanCollapse,
|
||||||
"终点段 ID",
|
"终点段 ID",
|
||||||
inputId("story-time-span-end-segment-id"),
|
inputId("story-time-span-end-segment-id"),
|
||||||
storyTimeSpan.endSegmentId,
|
storyTimeSpan.endSegmentId,
|
||||||
);
|
);
|
||||||
|
fragment.appendChild(storyTimeSpanCollapse);
|
||||||
|
|
||||||
_appendNodeDetailNumberInput(
|
_appendNodeDetailNumberInput(
|
||||||
fragment,
|
fragment,
|
||||||
|
|||||||
Reference in New Issue
Block a user