@simon_he/vue-tui 1.1.13 → 1.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/agent.js CHANGED
@@ -14,7 +14,7 @@ import { TMermaid$1 as TMermaid, TMermaidText$1 as TMermaidText, isSimpleMermaid
14
14
  import { createIterm2InlineImageSequence, createKittyDeleteGraphicsSequence, createKittyGraphicsSequence, createKittyPlacementSequence, createTerminalGraphicPngSequence, detectTerminalGraphicsCapabilities, getTerminalGraphicsOutput, getTerminalGraphicsOutputVersion, hashTerminalGraphicsString, isSafeTerminalGraphicsSequence, normalizeTerminalGraphicSize, sanitizeTerminalFallbackText, subscribeTerminalGraphicsOutput } from "./terminal-graphics-DpSL29OQ.js";
15
15
  import { TVirtualMarkdown, createMarkdownBlockSource } from "./block-source-BGTRldY7.js";
16
16
  import "./math-image-CcUpBnW0.js";
17
- import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-DKq1YOQF.js";
17
+ import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-zAInqC2W.js";
18
18
  import { TAgentTerminalGraphic } from "./TAgentTerminalGraphic-BKDAoGoE.js";
19
19
  import { computed, defineComponent, h } from "vue";
20
20
 
@@ -6540,7 +6540,7 @@ var EMPTY_LAYOUT = Object.freeze({
6540
6540
  regions: Object.freeze([]),
6541
6541
  fixedRows: !1,
6542
6542
  rowCount: 0
6543
- }), MAX_KEYED_ROW_LAYOUT_CACHE_ENTRIES = 2048;
6543
+ }), MAX_KEYED_ROW_LAYOUT_CACHE_ENTRIES = 2048, RETAINED_ROW_LAYOUT_MARGIN_ROWS = 512;
6544
6544
  function clamp4(n, min, max) {
6545
6545
  return Math.max(min, Math.min(max, n));
6546
6546
  }
@@ -6644,7 +6644,7 @@ var TTranscriptView = (0, import_vue17.defineComponent)({
6644
6644
  "hoverRegion"
6645
6645
  ],
6646
6646
  setup(props, { emit, expose }) {
6647
- let { defaultStyle, observability } = useTerminal(), instance = (0, import_vue17.getCurrentInstance)(), rowsRef = (0, import_vue17.ref)(null), innerScrollTop = (0, import_vue17.ref)(normalizeInt2(props.defaultScrollTop)), hoveredRegion = (0, import_vue17.ref)(null), focusedRegion = (0, import_vue17.ref)(null), rowLayoutCache = /* @__PURE__ */ new Map(), keyedRowLayoutCache = /* @__PURE__ */ new Map(), previousWrappedLayout = null, previousWrappedDeps = null, canUseWrappedChangedRangeRepaint = !1, warnedLargeFlattenedRows = !1;
6647
+ let { defaultStyle, observability } = useTerminal(), instance = (0, import_vue17.getCurrentInstance)(), rowsRef = (0, import_vue17.ref)(null), innerScrollTop = (0, import_vue17.ref)(normalizeInt2(props.defaultScrollTop)), hoveredRegion = (0, import_vue17.ref)(null), focusedRegion = (0, import_vue17.ref)(null), rowLayoutCache = /* @__PURE__ */ new Map(), keyedRowLayoutCache = /* @__PURE__ */ new Map(), retainedWindow = null, previousWrappedLayout = null, previousWrappedDeps = null, canUseWrappedChangedRangeRepaint = !1, warnedLargeFlattenedRows = !1;
6648
6648
  function isScrollControlled() {
6649
6649
  return Object.prototype.hasOwnProperty.call(instance?.vnode.props ?? {}, "scrollTop");
6650
6650
  }
@@ -6700,6 +6700,18 @@ var TTranscriptView = (0, import_vue17.defineComponent)({
6700
6700
  for (let rowIndex of rowLayoutCache.keys())
6701
6701
  rowIndex >= count && rowLayoutCache.delete(rowIndex);
6702
6702
  }
6703
+ function pruneRowLayoutCacheOutsideWindow(count, top, bottom) {
6704
+ let start = Math.max(0, top - RETAINED_ROW_LAYOUT_MARGIN_ROWS), end = Math.min(count, bottom + RETAINED_ROW_LAYOUT_MARGIN_ROWS);
6705
+ if (!(retainedWindow && retainedWindow.start === start && retainedWindow.end === end)) {
6706
+ retainedWindow = { start, end };
6707
+ for (let [rowIndex, entry] of rowLayoutCache) {
6708
+ if (rowIndex >= start && rowIndex < end)
6709
+ continue;
6710
+ let identity = rowLayoutIdentityKey(entry.rowKey, entry.rowVersion);
6711
+ keyedRowLayoutCache.get(identity) === entry && keyedRowLayoutCache.delete(identity), rowLayoutCache.delete(rowIndex);
6712
+ }
6713
+ }
6714
+ }
6703
6715
  function sameWrappedDeps(a, b) {
6704
6716
  return !!a && a.width === b.width && a.baseStyle === b.baseStyle && a.hoverStyle === b.hoverStyle && a.focusStyle === b.focusStyle && a.hoverRegionId === b.hoverRegionId && a.focusedRegionId === b.focusedRegionId;
6705
6717
  }
@@ -6756,7 +6768,7 @@ var TTranscriptView = (0, import_vue17.defineComponent)({
6756
6768
  props.version, canUseWrappedChangedRangeRepaint = !1;
6757
6769
  let perfEnabled = observability.framePerf.enabled.value, perfStartedAt = perfEnabled ? framePerfNow() : 0, width = Math.max(1, Math.floor(props.w)), count = Math.max(0, normalizeInt2(props.source.rowCount()));
6758
6770
  if (!count)
6759
- return rowLayoutCache.clear(), keyedRowLayoutCache.clear(), previousWrappedLayout = null, previousWrappedDeps = null, perfEnabled && observability.framePerf.recordComponent({
6771
+ return rowLayoutCache.clear(), keyedRowLayoutCache.clear(), retainedWindow = null, previousWrappedLayout = null, previousWrappedDeps = null, perfEnabled && observability.framePerf.recordComponent({
6760
6772
  name: "TTranscriptView",
6761
6773
  id: instance?.uid == null ? void 0 : String(instance.uid),
6762
6774
  phase: "layout",
@@ -6793,6 +6805,7 @@ var TTranscriptView = (0, import_vue17.defineComponent)({
6793
6805
  let row = result.rows[0];
6794
6806
  visualRows[rowIndex] = row, regions.push(...row.hitRegions);
6795
6807
  }
6808
+ pruneRowLayoutCacheOutsideWindow(count, top, bottom);
6796
6809
  } else {
6797
6810
  let incremental = tryUpdateWrappedLayoutFromChangedRange(
6798
6811
  count,
@@ -7,7 +7,7 @@ import "./terminal-selection-4W1SJj4c.js";
7
7
  import { TView } from "./frame-mailbox-6XHw-P8Q.js";
8
8
  import "./wheel-scroll-CQ22Hcyj.js";
9
9
  import "./terminal-graphics-DpSL29OQ.js";
10
- import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, handleTLogKeymapEvent, matchesTLogKeyBinding, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultKeymap, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastKeymap, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-DKq1YOQF.js";
10
+ import { TLogLinksPanel, TLogMinimap, TLogScrollbar, TLogSearchBar, TLogSearchPager, TLogSearchResults, TLogView, TLogVirtualLinksPanel, TLogVirtualSearchResults, TTranscriptView, TVirtualList, createAppendOnlyLogStore, createTLogDensityBucketsFromMarkers, createTLogLevelPlugin, createTLogLineMatcherPlugin, createTLogLinkActionPlugin, createTLogOsc8LinkPlugin, createTLogUrlPlugin, detectTLogUrls, dispatchTLogPluginLinkAction, getTLogPluginMetadata, handleTLogKeymapEvent, matchesTLogKeyBinding, parseTLogAnnotatedText, resolveTLogLinksPanelTheme, resolveTLogMinimapTheme, resolveTLogScrollbarTheme, resolveTLogSearchBarTheme, resolveTLogSearchPagerTheme, resolveTLogSearchResultsTheme, resolveTLogViewTheme, stripTLogAnsiText, tlogDarkPreset, tlogDarkTheme, tlogDefaultKeymap, tlogDefaultPreset, tlogDefaultTheme, tlogHighContrastKeymap, tlogHighContrastPreset, tlogHighContrastTheme, toTLogExternalLinkFromVisibleLink, useTLogLinkController, useTLogRetainedIndex, useTLogSearchController, useTLogSearchResultsPage, useTLogVirtualSearchResults } from "./tlog-theme-zAInqC2W.js";
11
11
  import "./TAgentTerminalGraphic-BKDAoGoE.js";
12
12
  import { TVideo } from "./TVideo-C3gnTlFD.js";
13
13
  import { computed, defineComponent, h, inject, onBeforeUnmount, onUnmounted, ref, watch } from "vue";