nuxt-devtools-observatory 0.1.16 → 0.1.18
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/client/dist/assets/index-B9TLcAbk.css +1 -0
- package/client/dist/assets/index-BlwWZDDl.js +17 -0
- package/client/dist/index.html +2 -2
- package/client/src/App.vue +18 -8
- package/client/src/stores/observatory.ts +33 -1
- package/client/src/views/ComposableTracker.vue +2 -2
- package/client/src/views/FetchDashboard.vue +27 -8
- package/client/src/views/RenderHeatmap.vue +3 -1
- package/client/src/views/ValueInspector.vue +10 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +74 -52
- package/dist/runtime/composables/composable-registry.js +104 -47
- package/dist/runtime/composables/fetch-registry.d.ts +10 -6
- package/dist/runtime/composables/fetch-registry.js +136 -52
- package/dist/runtime/composables/provide-inject-registry.js +12 -36
- package/dist/runtime/composables/render-registry.js +43 -20
- package/dist/runtime/composables/transition-registry.d.ts +1 -0
- package/dist/runtime/composables/transition-registry.js +15 -3
- package/dist/runtime/plugin.js +104 -79
- package/package.json +8 -7
- package/client/dist/assets/index-C04h6V_F.js +0 -17
- package/client/dist/assets/index-DgLUAI-9.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.view[data-v-4f9bcc52]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.stats-row[data-v-4f9bcc52]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.toolbar[data-v-4f9bcc52]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.split[data-v-4f9bcc52]{display:flex;gap:12px;flex:1;overflow:hidden;min-height:0}.table-wrap[data-v-4f9bcc52]{flex:1;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg)}.detail-panel[data-v-4f9bcc52]{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3)}.detail-empty[data-v-4f9bcc52]{width:280px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;border:.5px dashed var(--border);border-radius:var(--radius-lg)}.detail-header[data-v-4f9bcc52]{display:flex;align-items:center;justify-content:space-between}.meta-grid[data-v-4f9bcc52]{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:11px}.section-label[data-v-4f9bcc52]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:6px;min-height:fit-content}.payload-box[data-v-4f9bcc52]{font-family:var(--mono);font-size:11px;color:var(--text2);background:var(--bg2);border-radius:var(--radius);padding:8px 10px;overflow:auto;white-space:pre;max-height:160px}.waterfall[data-v-4f9bcc52]{flex-shrink:0;background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px}.waterfall-header[data-v-4f9bcc52]{display:flex;align-items:center;justify-content:space-between;gap:8px}.waterfall-body[data-v-4f9bcc52]{margin-top:6px}.wf-row[data-v-4f9bcc52]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.wf-track[data-v-4f9bcc52]{flex:1;position:relative;height:8px;background:var(--bg2);border-radius:2px;overflow:hidden}.wf-bar[data-v-4f9bcc52]{position:absolute;top:0;height:100%;border-radius:2px;opacity:.8}.view[data-v-0c07531b]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.toolbar[data-v-0c07531b]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.split[data-v-0c07531b]{display:flex;gap:12px;flex:1;overflow:hidden;min-height:0}.graph-area[data-v-0c07531b]{flex:1;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3)}.legend[data-v-0c07531b]{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text2);margin-bottom:12px}.canvas-stage[data-v-0c07531b]{display:flex;justify-content:center;align-items:flex-start;min-width:100%}.dot[data-v-0c07531b]{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:2px}.canvas-wrap[data-v-0c07531b]{position:relative}.edges-svg[data-v-0c07531b]{position:absolute;top:0;left:0;pointer-events:none}.edge[data-v-0c07531b]{stroke:var(--border);stroke-width:1.5}.graph-node[data-v-0c07531b]{position:absolute;display:flex;align-items:center;gap:7px;padding:0 10px;height:32px;border-radius:var(--radius);border:.5px solid var(--border);background:var(--bg3);cursor:pointer;transition:border-color .12s,background .12s;overflow:hidden;box-sizing:border-box;white-space:nowrap}.graph-node[data-v-0c07531b]:hover{border-color:var(--text3)}.graph-node.is-selected[data-v-0c07531b]{border-color:var(--node-color);background:color-mix(in srgb,var(--node-color) 8%,transparent)}.node-dot[data-v-0c07531b]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.node-label[data-v-0c07531b]{font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis}.badge-xs[data-v-0c07531b]{font-size:9px;padding:1px 4px}.detail-panel[data-v-0c07531b]{width:280px;flex-shrink:0;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3);display:flex;flex-direction:column;gap:4px;min-height:0}.detail-empty[data-v-0c07531b]{width:280px;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;border:.5px dashed var(--border);border-radius:var(--radius-lg);flex-shrink:0}.graph-empty[data-v-0c07531b]{display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--text3);font-size:12px}.detail-header[data-v-0c07531b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.section-label[data-v-0c07531b]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin:8px 0 5px}.detail-section[data-v-0c07531b]{display:flex;flex-direction:column;min-height:0}.detail-list[data-v-0c07531b]{display:flex;flex-direction:column;gap:3px;overflow:auto;max-height:220px;padding-right:2px}.provide-row[data-v-0c07531b]{display:flex;flex-direction:column;gap:4px;padding:5px 8px;background:var(--bg2);border-radius:var(--radius);margin-bottom:3px}.row-warning[data-v-0c07531b]{font-size:11px;color:var(--amber);padding:2px 0}.row-consumers[data-v-0c07531b]{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px 0}.consumer-chip[data-v-0c07531b]{font-size:10px;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--blue) 10%,var(--bg3));border:.5px solid color-mix(in srgb,var(--blue) 30%,var(--border));color:var(--text2)}.scope-badge[data-v-0c07531b]{font-size:10px;padding:1px 6px;border-radius:4px}.scope-global[data-v-0c07531b]{background:color-mix(in srgb,var(--amber) 15%,transparent);border:.5px solid color-mix(in srgb,var(--amber) 40%,var(--border));color:color-mix(in srgb,var(--amber) 80%,var(--text))}.scope-layout[data-v-0c07531b]{background:color-mix(in srgb,var(--purple) 15%,transparent);border:.5px solid color-mix(in srgb,var(--purple) 40%,var(--border));color:color-mix(in srgb,var(--purple) 80%,var(--text))}.scope-component[data-v-0c07531b]{background:var(--bg3);border:.5px solid var(--border);color:var(--text3)}.row-main[data-v-0c07531b]{display:flex;align-items:center;gap:8px;min-width:0}.row-key[data-v-0c07531b]{min-width:100px;color:var(--text2);flex-shrink:0}.row-value-preview[data-v-0c07531b]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-toggle[data-v-0c07531b]{padding:2px 8px;font-size:10px}.value-box[data-v-0c07531b]{font-family:var(--mono);font-size:11px;color:var(--text2);background:#0000001a;border-radius:var(--radius);padding:8px 10px;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:180px}.inject-row[data-v-0c07531b]{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg2);border-radius:var(--radius);margin-bottom:3px}.row-from[data-v-0c07531b]{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inject-miss[data-v-0c07531b]{background:#e24b4a14}.jump-btn[data-v-0c07531b]{font-size:10px;padding:1px 6px;border:.5px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;flex-shrink:0;font-family:var(--mono)}.jump-btn[data-v-0c07531b]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.view[data-v-bc3bc8e4]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.stats-row[data-v-bc3bc8e4]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.toolbar[data-v-bc3bc8e4]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.clear-btn[data-v-bc3bc8e4]{color:var(--text3);border-color:var(--border);flex-shrink:0}.clear-btn[data-v-bc3bc8e4]:hover{color:var(--red);border-color:var(--red);background:transparent}.list[data-v-bc3bc8e4]{flex:1;overflow:auto;display:flex;flex-direction:column;gap:5px;min-height:0}.comp-card[data-v-bc3bc8e4]{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;flex-shrink:0}.comp-card[data-v-bc3bc8e4]:hover{border-color:var(--text3)}.comp-card.leak[data-v-bc3bc8e4]{border-left:2px solid var(--red);border-radius:0 var(--radius-lg) var(--radius-lg) 0}.comp-card.expanded[data-v-bc3bc8e4]{border-color:var(--purple)}.comp-header[data-v-bc3bc8e4]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;gap:8px}.comp-identity[data-v-bc3bc8e4]{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1}.comp-name[data-v-bc3bc8e4]{font-size:12px;font-weight:500;color:var(--text);flex-shrink:0}.comp-file[data-v-bc3bc8e4]{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-meta[data-v-bc3bc8e4]{display:flex;align-items:center;gap:5px;flex-shrink:0}.refs-preview[data-v-bc3bc8e4]{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 8px;align-items:center}.ref-chip[data-v-bc3bc8e4]{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;background:var(--bg2);border:.5px solid var(--border);font-size:11px;font-family:var(--mono);max-width:220px;overflow:hidden}.ref-chip--reactive[data-v-bc3bc8e4]{border-color:color-mix(in srgb,var(--purple) 40%,var(--border));background:color-mix(in srgb,var(--purple) 8%,var(--bg2))}.ref-chip--computed[data-v-bc3bc8e4]{border-color:color-mix(in srgb,var(--blue) 40%,var(--border));background:color-mix(in srgb,var(--blue) 8%,var(--bg2))}.ref-chip-key[data-v-bc3bc8e4]{color:var(--text2);flex-shrink:0}.ref-chip-val[data-v-bc3bc8e4]{color:var(--teal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-detail[data-v-bc3bc8e4]{padding:4px 12px 12px;border-top:.5px solid var(--border);display:flex;flex-direction:column;gap:3px}.leak-banner[data-v-bc3bc8e4]{background:color-mix(in srgb,var(--red) 12%,transparent);border:.5px solid color-mix(in srgb,var(--red) 40%,var(--border));border-radius:var(--radius);padding:6px 10px;font-size:11px;color:var(--red);margin-bottom:6px;font-family:var(--mono)}.section-label[data-v-bc3bc8e4]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:6px;margin-bottom:3px}.ref-row[data-v-bc3bc8e4]{display:flex;align-items:center;gap:8px;padding:3px 0}.ref-key[data-v-bc3bc8e4]{min-width:90px;color:var(--text2);flex-shrink:0}.ref-val[data-v-bc3bc8e4]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--teal)}.lc-row[data-v-bc3bc8e4]{display:flex;align-items:center;gap:8px;padding:2px 0}.lc-dot[data-v-bc3bc8e4]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.ref-chip--shared[data-v-bc3bc8e4]{border-color:color-mix(in srgb,var(--amber) 50%,var(--border));background:color-mix(in srgb,var(--amber) 10%,var(--bg2))}.ref-chip-shared-dot[data-v-bc3bc8e4]{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-left:1px}.global-banner[data-v-bc3bc8e4]{display:flex;align-items:flex-start;gap:8px;background:color-mix(in srgb,var(--amber) 10%,transparent);border:.5px solid color-mix(in srgb,var(--amber) 40%,var(--border));border-radius:var(--radius);padding:7px 10px;font-size:11px;color:var(--text2);margin-bottom:6px}.global-dot[data-v-bc3bc8e4]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-top:3px}.badge-amber[data-v-bc3bc8e4]{background:color-mix(in srgb,var(--amber) 15%,transparent);color:color-mix(in srgb,var(--amber) 80%,var(--text));border:.5px solid color-mix(in srgb,var(--amber) 40%,var(--border))}.history-list[data-v-bc3bc8e4]{display:flex;flex-direction:column;gap:1px;background:var(--bg2);border-radius:var(--radius);padding:4px 8px;max-height:180px;overflow-y:auto}.history-row[data-v-bc3bc8e4]{display:flex;align-items:center;gap:8px;padding:2px 0;font-size:11px;font-family:var(--mono);border-bottom:.5px solid var(--border)}.history-row[data-v-bc3bc8e4]:last-child{border-bottom:none}.history-time[data-v-bc3bc8e4]{min-width:52px;color:var(--text3);flex-shrink:0}.history-key[data-v-bc3bc8e4]{min-width:80px;color:var(--text2);flex-shrink:0}.history-val[data-v-bc3bc8e4]{color:var(--amber);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.stat-card[data-v-bc3bc8e4]{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px}.stat-label[data-v-bc3bc8e4]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-bottom:4px}.stat-val[data-v-bc3bc8e4]{font-size:22px;font-weight:500;line-height:1;color:var(--text)}.ref-key--clickable[data-v-bc3bc8e4]{cursor:pointer;text-decoration:underline dotted var(--text3);text-underline-offset:2px}.ref-key--clickable[data-v-bc3bc8e4]:hover{color:var(--purple);text-decoration-color:var(--purple)}.edit-btn[data-v-bc3bc8e4]{font-size:10px;padding:1px 6px;border-radius:var(--radius);border:.5px solid var(--border);background:transparent;color:var(--text3);cursor:pointer;margin-left:auto;flex-shrink:0;font-family:var(--mono)}.edit-btn[data-v-bc3bc8e4]:hover{border-color:var(--purple);color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,transparent)}.lookup-panel[data-v-bc3bc8e4]{flex-shrink:0;border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3);overflow:hidden}.lookup-header[data-v-bc3bc8e4]{display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:.5px solid var(--border);background:var(--bg2)}.lookup-row[data-v-bc3bc8e4]{display:flex;align-items:center;gap:8px;padding:5px 12px;border-bottom:.5px solid var(--border)}.lookup-row[data-v-bc3bc8e4]:last-child{border-bottom:none}.edit-overlay[data-v-bc3bc8e4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100;display:flex;align-items:center;justify-content:center}.edit-dialog[data-v-bc3bc8e4]{background:var(--bg1, var(--bg2));border:.5px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;width:380px;max-width:92vw;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 32px #0000004d}.edit-dialog-header[data-v-bc3bc8e4]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);margin-bottom:2px}.edit-textarea[data-v-bc3bc8e4]{width:100%;font-family:var(--mono);font-size:12px;padding:8px 10px;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius);color:var(--text);resize:vertical;outline:none}.edit-textarea[data-v-bc3bc8e4]:focus{border-color:var(--purple)}.edit-error[data-v-bc3bc8e4]{color:var(--red);font-family:var(--mono)}.edit-actions[data-v-bc3bc8e4]{display:flex;gap:6px;padding-top:4px}.slide-enter-active[data-v-bc3bc8e4],.slide-leave-active[data-v-bc3bc8e4]{transition:opacity .15s,transform .15s}.slide-enter-from[data-v-bc3bc8e4],.slide-leave-to[data-v-bc3bc8e4]{opacity:0;transform:translateY(6px)}.fade-enter-active[data-v-bc3bc8e4],.fade-leave-active[data-v-bc3bc8e4]{transition:opacity .15s}.fade-enter-from[data-v-bc3bc8e4],.fade-leave-to[data-v-bc3bc8e4]{opacity:0}.jump-btn[data-v-bc3bc8e4]{font-size:10px;padding:1px 6px;border:.5px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;flex-shrink:0;font-family:var(--mono)}.jump-btn[data-v-bc3bc8e4]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.view[data-v-93bfa151]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.controls[data-v-93bfa151]{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.mode-group[data-v-93bfa151]{display:flex;gap:2px}.threshold-group[data-v-93bfa151]{display:flex;align-items:center;gap:6px}.stats-row[data-v-93bfa151]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.stat-sub[data-v-93bfa151]{margin-top:4px;font-size:11px;color:var(--text3)}.inspector[data-v-93bfa151]{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(260px,320px);gap:12px;flex:1;min-height:0}.roots-panel[data-v-93bfa151],.tree-panel[data-v-93bfa151],.detail-panel[data-v-93bfa151]{border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3);min-height:0}.roots-panel[data-v-93bfa151],.detail-panel[data-v-93bfa151]{display:flex;flex-direction:column;overflow:auto;padding:12px;gap:8px}.panel-title[data-v-93bfa151]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}.root-item[data-v-93bfa151]{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text);text-align:left}.root-item.active[data-v-93bfa151]{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 16%,var(--bg2))}.root-label[data-v-93bfa151]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root-copy[data-v-93bfa151]{display:flex;flex-direction:column;min-width:0}.root-sub[data-v-93bfa151]{font-size:11px}.root-meta[data-v-93bfa151]{color:var(--text3);font-size:11px}.tree-panel[data-v-93bfa151]{display:flex;flex-direction:column;overflow:hidden}.tree-toolbar[data-v-93bfa151]{padding:12px;border-bottom:.5px solid var(--border)}.search-input[data-v-93bfa151]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text)}.tree-frame[data-v-93bfa151]{flex:1;min-height:0;overflow:auto;padding:12px}[data-v-93bfa151] .tree-canvas{display:inline-block;min-width:100%;width:max-content}[data-v-93bfa151] .tree-node{margin-bottom:4px}[data-v-93bfa151] .tree-row{display:grid;grid-template-columns:8px 18px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;width:100%;padding:4px 8px;padding-left:calc(8px + (var(--tree-depth, 0) * 16px));border:1px solid transparent;border-radius:var(--radius);cursor:pointer;white-space:nowrap}[data-v-93bfa151] .tree-row:hover{background:var(--bg2)}[data-v-93bfa151] .tree-row.selected{background:color-mix(in srgb,var(--teal) 12%,var(--bg2));border-color:var(--teal)}[data-v-93bfa151] .tree-row.hot{box-shadow:inset 2px 0 0 var(--red)}[data-v-93bfa151] .tree-toggle{width:16px;height:16px;border:none;background:transparent;color:var(--text3);padding:0;font-size:14px;display:inline-flex;align-items:center;justify-content:center}[data-v-93bfa151] .tree-toggle:disabled{cursor:default}[data-v-93bfa151] .tree-toggle.empty{opacity:0}[data-v-93bfa151] .tree-rail{display:block;width:2px;height:14px;border-radius:999px;background:color-mix(in srgb,var(--border) 75%,transparent)}[data-v-93bfa151] .tree-copy{display:flex;align-items:center;min-width:0;gap:6px;overflow:hidden}[data-v-93bfa151] .tree-name{font-size:12px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis}[data-v-93bfa151] .tree-badges{display:flex;gap:6px;flex-shrink:0;overflow:hidden}[data-v-93bfa151] .tree-badge{border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}[data-v-93bfa151] .tree-metrics{display:flex;align-items:center;min-width:92px;justify-content:flex-end;flex-shrink:0;gap:6px}[data-v-93bfa151] .tree-metric-pill{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg2);font-size:10px;color:var(--text3)}[data-v-93bfa151] .tree-persistent-pill{display:inline-flex;align-items:center;padding:2px 8px;border:1px solid color-mix(in srgb,var(--amber) 55%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--amber) 10%,var(--bg2));font-size:10px;color:color-mix(in srgb,var(--amber) 80%,var(--text))}[data-v-93bfa151] .tree-hydration-pill{display:inline-flex;align-items:center;padding:2px 8px;border:1px solid color-mix(in srgb,var(--teal) 55%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--teal) 10%,var(--bg2));font-size:10px;color:color-mix(in srgb,var(--teal) 80%,var(--text))}[data-v-93bfa151] .tree-children{margin-left:7px;padding-left:11px;border-left:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.detail-empty[data-v-93bfa151]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text3);font-size:12px}.detail-header[data-v-93bfa151]{display:flex;align-items:center;justify-content:space-between}.meta-grid[data-v-93bfa151]{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}.detail-pill-row[data-v-93bfa151]{display:flex;flex-wrap:wrap;gap:6px}.detail-pill[data-v-93bfa151]{border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:var(--bg2);font-size:11px}.detail-pill.hot[data-v-93bfa151]{border-color:color-mix(in srgb,var(--red) 50%,var(--border));color:var(--red)}.detail-pill.persistent[data-v-93bfa151]{border-color:color-mix(in srgb,var(--amber) 55%,var(--border));color:color-mix(in srgb,var(--amber) 80%,var(--text))}.detail-pill.hydrated[data-v-93bfa151]{border-color:color-mix(in srgb,var(--teal) 55%,var(--border));color:color-mix(in srgb,var(--teal) 80%,var(--text))}.detail-pill.muted[data-v-93bfa151]{color:var(--text3);border-color:var(--border)}.section-label[data-v-93bfa151]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:8px;margin-bottom:4px}.trigger-item[data-v-93bfa151]{background:var(--bg2);border-radius:var(--radius);padding:4px 8px;margin-bottom:3px;color:var(--text2)}[data-v-93bfa151] .tree-jump-btn{display:none;padding:0 4px;border:none;background:transparent;color:var(--text3);font-size:11px;cursor:pointer;line-height:1;flex-shrink:0}[data-v-93bfa151] .tree-row:hover .tree-jump-btn,[data-v-93bfa151] .tree-row.selected .tree-jump-btn{display:inline-flex}[data-v-93bfa151] .tree-jump-btn:hover{color:var(--teal)}.jump-btn[data-v-93bfa151]{font-size:10px;padding:1px 6px;border:.5px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;flex-shrink:0;font-family:var(--mono)}.jump-btn[data-v-93bfa151]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.route-select[data-v-93bfa151]{padding:3px 7px;border:.5px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text);font-size:11px;cursor:pointer;max-width:140px}.timeline-list[data-v-93bfa151]{display:flex;flex-direction:column;gap:1px;background:var(--bg2);border-radius:var(--radius);padding:4px 8px;max-height:200px;overflow-y:auto;min-height:fit-content}.timeline-row[data-v-93bfa151]{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:11px;border-bottom:.5px solid var(--border);min-width:0;min-height:fit-content}.timeline-row[data-v-93bfa151]:last-child{border-bottom:none}.timeline-kind[data-v-93bfa151]{flex-shrink:0;font-size:10px;font-weight:500;min-width:40px}.timeline-kind.mount[data-v-93bfa151]{color:var(--teal)}.timeline-kind.update[data-v-93bfa151]{color:var(--amber)}.timeline-time[data-v-93bfa151]{flex-shrink:0;min-width:52px;color:var(--text3)}.timeline-dur[data-v-93bfa151]{flex-shrink:0;min-width:38px;color:var(--text2)}.timeline-trigger[data-v-93bfa151]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text3);flex:1;min-width:0}.timeline-route[data-v-93bfa151]{flex-shrink:0;color:var(--text3);font-size:10px}@media(max-width:1180px){.inspector[data-v-93bfa151]{grid-template-columns:minmax(200px,240px) minmax(0,1fr)}.detail-panel[data-v-93bfa151]{grid-column:1 / -1;max-height:220px}}.timeline-root[data-v-da869dac]{display:flex;flex-direction:column;height:100%;overflow:hidden}.stats-row[data-v-da869dac]{display:flex;gap:10px;padding:12px 14px 0;flex-shrink:0}.stat-card[data-v-da869dac]{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius);padding:8px 14px;min-width:72px;text-align:center}.stat-val[data-v-da869dac]{font-size:20px;font-weight:600;font-family:var(--mono);line-height:1.1}.stat-unit[data-v-da869dac]{font-size:12px;opacity:.6;margin-left:1px}.stat-label[data-v-da869dac]{font-size:10px;color:var(--text3);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.toolbar[data-v-da869dac]{display:flex;align-items:center;gap:8px;padding:10px 14px;flex-shrink:0;border-bottom:.5px solid var(--border)}.search-input[data-v-da869dac]{flex:1;max-width:260px}.filter-group[data-v-da869dac]{display:flex;gap:4px}.content-area[data-v-da869dac]{display:flex;flex:1;overflow:hidden;min-height:0}.table-pane[data-v-da869dac]{flex:1;overflow:hidden auto;min-width:0}.bar-cell[data-v-da869dac]{width:200px;padding:4px 8px}.bar-track[data-v-da869dac]{position:relative;height:8px;background:var(--bg2);border-radius:4px;overflow:hidden}.bar-fill[data-v-da869dac]{position:absolute;top:0;height:100%;min-width:3px;border-radius:4px;transition:width .15s}.detail-panel[data-v-da869dac]{width:260px;flex-shrink:0;border-left:.5px solid var(--border);overflow-y:auto;background:var(--bg3);padding:0 0 16px}.panel-header[data-v-da869dac]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:.5px solid var(--border);position:sticky;top:0;background:var(--bg3);z-index:1}.panel-title[data-v-da869dac]{font-family:var(--mono);font-size:13px;font-weight:500}.close-btn[data-v-da869dac]{border:none;background:transparent;color:var(--text3);font-size:11px;padding:2px 6px;cursor:pointer}.panel-section[data-v-da869dac]{padding:10px 14px 6px;border-bottom:.5px solid var(--border)}.panel-section-title[data-v-da869dac]{font-size:10px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}.panel-row[data-v-da869dac]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0;font-size:12px}.panel-key[data-v-da869dac]{color:var(--text3);flex-shrink:0}.panel-val[data-v-da869dac]{color:var(--text);text-align:right;word-break:break-all}.cancel-notice[data-v-da869dac],.active-notice[data-v-da869dac]{margin:10px 14px 0;font-size:11px;line-height:1.6;padding:8px 10px;border-radius:var(--radius)}.cancel-notice[data-v-da869dac]{background:#e24b4a1a;color:var(--red);border:.5px solid rgb(226 75 74 / 30%)}.active-notice[data-v-da869dac]{background:#7f77dd1a;color:var(--purple);border:.5px solid rgb(127 119 221 / 30%)}code[data-v-da869dac]{font-family:var(--mono);font-size:10px;background:#00000026;padding:1px 4px;border-radius:3px}.panel-slide-enter-active[data-v-da869dac],.panel-slide-leave-active[data-v-da869dac]{transition:transform .18s ease,opacity .18s ease}.panel-slide-enter-from[data-v-da869dac],.panel-slide-leave-to[data-v-da869dac]{transform:translate(12px);opacity:0}#app-root[data-v-12fe13bc]{display:flex;flex-direction:column;height:100vh;overflow:hidden}.tabbar[data-v-12fe13bc]{display:flex;align-items:center;gap:2px;padding:8px 12px 0;border-bottom:.5px solid var(--border);background:var(--bg3);flex-shrink:0}.tabbar-brand[data-v-12fe13bc]{font-size:11px;font-weight:500;color:var(--purple);letter-spacing:.5px;margin-right:12px;padding-bottom:8px}.tab-btn[data-v-12fe13bc]{border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text3);font-size:12px;padding:6px 12px 8px;cursor:pointer;transition:color .12s,border-color .12s;display:flex;align-items:center;gap:5px}.tab-btn[data-v-12fe13bc]:hover{color:var(--text);background:transparent}.tab-btn.active[data-v-12fe13bc]{color:var(--purple);border-bottom-color:var(--purple)}.tab-icon[data-v-12fe13bc]{font-size:10px;opacity:.6}.tab-content[data-v-12fe13bc]{flex:1;overflow:hidden;display:flex;flex-direction:column}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:13px;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}button{font-family:var(--font);font-size:12px;cursor:pointer;border:.5px solid var(--border);background:transparent;color:var(--text2);padding:4px 10px;border-radius:var(--radius);transition:background .12s}button:hover{background:var(--bg2)}button:active{transform:scale(.98)}button.active{background:#7f77dd26;color:var(--purple);border-color:var(--purple)}button.danger-active{background:#e24b4a1f;color:var(--red);border-color:var(--red)}button.success-active{background:#1d9e751f;color:var(--teal);border-color:var(--teal)}input[type=text],input[type=search]{font-family:var(--font);font-size:12px;border:.5px solid var(--border);background:var(--bg2);color:var(--text);padding:5px 10px;border-radius:var(--radius);outline:none;width:100%}input[type=text]:focus,input[type=search]:focus{border-color:var(--purple);box-shadow:0 0 0 2px #7f77dd33}input[type=range]{accent-color:var(--purple);cursor:pointer}.mono{font-family:var(--mono)}.muted{color:var(--text3)}.text-sm{font-size:11px}.text-xs{font-size:10px}.bold{font-weight:500}.badge{display:inline-block;font-size:10px;font-weight:500;padding:2px 7px;border-radius:99px;white-space:nowrap}.badge-ok{background:#1d9e7526;color:var(--teal)}.badge-err{background:#e24b4a1f;color:var(--red)}.badge-warn{background:#ef9f2726;color:var(--amber)}.badge-info{background:#378add1f;color:var(--blue)}.badge-gray{background:var(--bg2);color:var(--text3);border:.5px solid var(--border)}.badge-purple{background:#7f77dd26;color:var(--purple)}.card{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;font-size:10px;font-weight:500;color:var(--text3);padding:6px 8px;border-bottom:.5px solid var(--border);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.data-table td{padding:8px;border-bottom:.5px solid var(--border);color:var(--text);vertical-align:middle}.data-table tr:hover td{background:var(--bg2);cursor:pointer}.data-table tr.selected td{background:#7f77dd14}.stat-card{background:var(--bg2);border-radius:var(--radius);padding:10px 12px}.stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}.stat-val{font-size:20px;font-weight:500}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.flex-1{flex:1}.overflow-auto{overflow:auto}.p-3{padding:12px}.p-4{padding:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mt-2{margin-top:8px}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const r of l.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function s(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(o){if(o.ep)return;o.ep=!0;const l=s(o);fetch(o.href,l)}})();/**
|
|
2
|
+
* @vue/shared v3.5.30
|
|
3
|
+
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
|
+
* @license MIT
|
|
5
|
+
**/function Ln(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const ve={},Wt=[],lt=()=>{},Do=()=>!1,Ys=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Fn=e=>e.startsWith("onUpdate:"),$e=Object.assign,Nn=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ii=Object.prototype.hasOwnProperty,pe=(e,t)=>ii.call(e,t),ee=Array.isArray,zt=e=>ks(e)==="[object Map]",Qs=e=>ks(e)==="[object Set]",Zn=e=>ks(e)==="[object Date]",oe=e=>typeof e=="function",ye=e=>typeof e=="string",it=e=>typeof e=="symbol",he=e=>e!==null&&typeof e=="object",Ho=e=>(he(e)||oe(e))&&oe(e.then)&&oe(e.catch),Vo=Object.prototype.toString,ks=e=>Vo.call(e),ri=e=>ks(e).slice(8,-1),Uo=e=>ks(e)==="[object Object]",Rn=e=>ye(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cs=Ln(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xs=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},ai=/-\w/g,Je=Xs(e=>e.replace(ai,t=>t.slice(1).toUpperCase())),ci=/\B([A-Z])/g,jt=Xs(e=>e.replace(ci,"-$1").toLowerCase()),Bo=Xs(e=>e.charAt(0).toUpperCase()+e.slice(1)),un=Xs(e=>e?`on${Bo(e)}`:""),ot=(e,t)=>!Object.is(e,t),Ps=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Ko=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Zs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ui=e=>{const t=ye(e)?Number(e):NaN;return isNaN(t)?e:t};let eo;const en=()=>eo||(eo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ce(e){if(ee(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],o=ye(n)?hi(n):Ce(n);if(o)for(const l in o)t[l]=o[l]}return t}else if(ye(e)||he(e))return e}const di=/;(?![^(]*\))/g,fi=/:([^]+)/,pi=/\/\*[^]*?\*\//g;function hi(e){const t={};return e.replace(pi,"").split(di).forEach(s=>{if(s){const n=s.split(fi);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ne(e){let t="";if(ye(e))t=e;else if(ee(e))for(let s=0;s<e.length;s++){const n=ne(e[s]);n&&(t+=n+" ")}else if(he(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const vi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",mi=Ln(vi);function Wo(e){return!!e||e===""}function gi(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=Ss(e[n],t[n]);return s}function Ss(e,t){if(e===t)return!0;let s=Zn(e),n=Zn(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=it(e),n=it(t),s||n)return e===t;if(s=ee(e),n=ee(t),s||n)return s&&n?gi(e,t):!1;if(s=he(e),n=he(t),s||n){if(!s||!n)return!1;const o=Object.keys(e).length,l=Object.keys(t).length;if(o!==l)return!1;for(const r in e){const a=e.hasOwnProperty(r),c=t.hasOwnProperty(r);if(a&&!c||!a&&c||!Ss(e[r],t[r]))return!1}}return String(e)===String(t)}function _i(e,t){return e.findIndex(s=>Ss(s,t))}const zo=e=>!!(e&&e.__v_isRef===!0),b=e=>ye(e)?e:e==null?"":ee(e)||he(e)&&(e.toString===Vo||!oe(e.toString))?zo(e)?b(e.value):JSON.stringify(e,qo,2):String(e),qo=(e,t)=>zo(t)?qo(e,t.value):zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,o],l)=>(s[dn(n,l)+" =>"]=o,s),{})}:Qs(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>dn(s))}:it(t)?dn(t):he(t)&&!ee(t)&&!Uo(t)?String(t):t,dn=(e,t="")=>{var s;return it(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
|
|
6
|
+
* @vue/reactivity v3.5.30
|
|
7
|
+
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
8
|
+
* @license MIT
|
|
9
|
+
**/let He;class bi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=He,!t&&He&&(this.index=(He.scopes||(He.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=He;try{return He=this,t()}finally{He=s}}}on(){++this._on===1&&(this.prevScope=He,He=this)}off(){this._on>0&&--this._on===0&&(He=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function yi(){return He}let me;const fn=new WeakSet;class Jo{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,He&&He.active&&He.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,fn.has(this)&&(fn.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Yo(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,to(this),Qo(this);const t=me,s=Ge;me=this,Ge=!0;try{return this.fn()}finally{Xo(this),me=t,Ge=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Hn(t);this.deps=this.depsTail=void 0,to(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?fn.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){xn(this)&&this.run()}get dirty(){return xn(this)}}let Go=0,us,ds;function Yo(e,t=!1){if(e.flags|=8,t){e.next=ds,ds=e;return}e.next=us,us=e}function jn(){Go++}function Dn(){if(--Go>0)return;if(ds){let t=ds;for(ds=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;us;){let t=us;for(us=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function Qo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Xo(e){let t,s=e.depsTail,n=s;for(;n;){const o=n.prevDep;n.version===-1?(n===s&&(s=o),Hn(n),xi(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=o}e.deps=t,e.depsTail=s}function xn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Zo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Zo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===gs)||(e.globalVersion=gs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!xn(e))))return;e.flags|=2;const t=e.dep,s=me,n=Ge;me=e,Ge=!0;try{Qo(e);const o=e.fn(e._value);(t.version===0||ot(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{me=s,Ge=n,Xo(e),e.flags&=-3}}function Hn(e,t=!1){const{dep:s,prevSub:n,nextSub:o}=e;if(n&&(n.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let l=s.computed.deps;l;l=l.nextDep)Hn(l,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function xi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Ge=!0;const el=[];function ht(){el.push(Ge),Ge=!1}function vt(){const e=el.pop();Ge=e===void 0?!0:e}function to(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=me;me=void 0;try{t()}finally{me=s}}}let gs=0;class wi{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Vn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!me||!Ge||me===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==me)s=this.activeLink=new wi(me,this),me.deps?(s.prevDep=me.depsTail,me.depsTail.nextDep=s,me.depsTail=s):me.deps=me.depsTail=s,tl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=me.depsTail,s.nextDep=void 0,me.depsTail.nextDep=s,me.depsTail=s,me.deps===s&&(me.deps=n)}return s}trigger(t){this.version++,gs++,this.notify(t)}notify(t){jn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Dn()}}}function tl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)tl(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const wn=new WeakMap,Lt=Symbol(""),$n=Symbol(""),_s=Symbol("");function Te(e,t,s){if(Ge&&me){let n=wn.get(e);n||wn.set(e,n=new Map);let o=n.get(s);o||(n.set(s,o=new Vn),o.map=n,o.key=s),o.track()}}function dt(e,t,s,n,o,l){const r=wn.get(e);if(!r){gs++;return}const a=c=>{c&&c.trigger()};if(jn(),t==="clear")r.forEach(a);else{const c=ee(e),v=c&&Rn(s);if(c&&s==="length"){const d=Number(n);r.forEach((g,E)=>{(E==="length"||E===_s||!it(E)&&E>=d)&&a(g)})}else switch((s!==void 0||r.has(void 0))&&a(r.get(s)),v&&a(r.get(_s)),t){case"add":c?v&&a(r.get("length")):(a(r.get(Lt)),zt(e)&&a(r.get($n)));break;case"delete":c||(a(r.get(Lt)),zt(e)&&a(r.get($n)));break;case"set":zt(e)&&a(r.get(Lt));break}}Dn()}function Ht(e){const t=de(e);return t===e?t:(Te(t,"iterate",_s),ze(e)?t:t.map(Ye))}function tn(e){return Te(e=de(e),"iterate",_s),e}function st(e,t){return mt(e)?Yt(Ft(e)?Ye(t):t):Ye(t)}const $i={__proto__:null,[Symbol.iterator](){return pn(this,Symbol.iterator,e=>st(this,e))},concat(...e){return Ht(this).concat(...e.map(t=>ee(t)?Ht(t):t))},entries(){return pn(this,"entries",e=>(e[1]=st(this,e[1]),e))},every(e,t){return rt(this,"every",e,t,void 0,arguments)},filter(e,t){return rt(this,"filter",e,t,s=>s.map(n=>st(this,n)),arguments)},find(e,t){return rt(this,"find",e,t,s=>st(this,s),arguments)},findIndex(e,t){return rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return rt(this,"findLast",e,t,s=>st(this,s),arguments)},findLastIndex(e,t){return rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return hn(this,"includes",e)},indexOf(...e){return hn(this,"indexOf",e)},join(e){return Ht(this).join(e)},lastIndexOf(...e){return hn(this,"lastIndexOf",e)},map(e,t){return rt(this,"map",e,t,void 0,arguments)},pop(){return ns(this,"pop")},push(...e){return ns(this,"push",e)},reduce(e,...t){return so(this,"reduce",e,t)},reduceRight(e,...t){return so(this,"reduceRight",e,t)},shift(){return ns(this,"shift")},some(e,t){return rt(this,"some",e,t,void 0,arguments)},splice(...e){return ns(this,"splice",e)},toReversed(){return Ht(this).toReversed()},toSorted(e){return Ht(this).toSorted(e)},toSpliced(...e){return Ht(this).toSpliced(...e)},unshift(...e){return ns(this,"unshift",e)},values(){return pn(this,"values",e=>st(this,e))}};function pn(e,t,s){const n=tn(e),o=n[t]();return n!==e&&!ze(e)&&(o._next=o.next,o.next=()=>{const l=o._next();return l.done||(l.value=s(l.value)),l}),o}const Ci=Array.prototype;function rt(e,t,s,n,o,l){const r=tn(e),a=r!==e&&!ze(e),c=r[t];if(c!==Ci[t]){const g=c.apply(e,l);return a?Ye(g):g}let v=s;r!==e&&(a?v=function(g,E){return s.call(this,st(e,g),E,e)}:s.length>2&&(v=function(g,E){return s.call(this,g,E,e)}));const d=c.call(r,v,n);return a&&o?o(d):d}function so(e,t,s,n){const o=tn(e),l=o!==e&&!ze(e);let r=s,a=!1;o!==e&&(l?(a=n.length===0,r=function(v,d,g){return a&&(a=!1,v=st(e,v)),s.call(this,v,st(e,d),g,e)}):s.length>3&&(r=function(v,d,g){return s.call(this,v,d,g,e)}));const c=o[t](r,...n);return a?st(e,c):c}function hn(e,t,s){const n=de(e);Te(n,"iterate",_s);const o=n[t](...s);return(o===-1||o===!1)&&Wn(s[0])?(s[0]=de(s[0]),n[t](...s)):o}function ns(e,t,s=[]){ht(),jn();const n=de(e)[t].apply(e,s);return Dn(),vt(),n}const ki=Ln("__proto__,__v_isRef,__isVue"),sl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(it));function Si(e){it(e)||(e=String(e));const t=de(this);return Te(t,"has",e),t.hasOwnProperty(e)}class nl{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const o=this._isReadonly,l=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return l;if(s==="__v_raw")return n===(o?l?Ni:rl:l?il:ll).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=ee(t);if(!o){let c;if(r&&(c=$i[s]))return c;if(s==="hasOwnProperty")return Si}const a=Reflect.get(t,s,Ee(t)?t:n);if((it(s)?sl.has(s):ki(s))||(o||Te(t,"get",s),l))return a;if(Ee(a)){const c=r&&Rn(s)?a:a.value;return o&&he(c)?kn(c):c}return he(a)?o?kn(a):Bn(a):a}}class ol extends nl{constructor(t=!1){super(!1,t)}set(t,s,n,o){let l=t[s];const r=ee(t)&&Rn(s);if(!this._isShallow){const v=mt(l);if(!ze(n)&&!mt(n)&&(l=de(l),n=de(n)),!r&&Ee(l)&&!Ee(n))return v||(l.value=n),!0}const a=r?Number(s)<t.length:pe(t,s),c=Reflect.set(t,s,n,Ee(t)?t:o);return t===de(o)&&(a?ot(n,l)&&dt(t,"set",s,n):dt(t,"add",s,n)),c}deleteProperty(t,s){const n=pe(t,s);t[s];const o=Reflect.deleteProperty(t,s);return o&&n&&dt(t,"delete",s,void 0),o}has(t,s){const n=Reflect.has(t,s);return(!it(s)||!sl.has(s))&&Te(t,"has",s),n}ownKeys(t){return Te(t,"iterate",ee(t)?"length":Lt),Reflect.ownKeys(t)}}class Ti extends nl{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Mi=new ol,Ei=new Ti,Oi=new ol(!0);const Cn=e=>e,Os=e=>Reflect.getPrototypeOf(e);function Ai(e,t,s){return function(...n){const o=this.__v_raw,l=de(o),r=zt(l),a=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,v=o[e](...n),d=s?Cn:t?Yt:Ye;return!t&&Te(l,"iterate",c?$n:Lt),$e(Object.create(v),{next(){const{value:g,done:E}=v.next();return E?{value:g,done:E}:{value:a?[d(g[0]),d(g[1])]:d(g),done:E}}})}}function As(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ii(e,t){const s={get(o){const l=this.__v_raw,r=de(l),a=de(o);e||(ot(o,a)&&Te(r,"get",o),Te(r,"get",a));const{has:c}=Os(r),v=t?Cn:e?Yt:Ye;if(c.call(r,o))return v(l.get(o));if(c.call(r,a))return v(l.get(a));l!==r&&l.get(o)},get size(){const o=this.__v_raw;return!e&&Te(de(o),"iterate",Lt),o.size},has(o){const l=this.__v_raw,r=de(l),a=de(o);return e||(ot(o,a)&&Te(r,"has",o),Te(r,"has",a)),o===a?l.has(o):l.has(o)||l.has(a)},forEach(o,l){const r=this,a=r.__v_raw,c=de(a),v=t?Cn:e?Yt:Ye;return!e&&Te(c,"iterate",Lt),a.forEach((d,g)=>o.call(l,v(d),v(g),r))}};return $e(s,e?{add:As("add"),set:As("set"),delete:As("delete"),clear:As("clear")}:{add(o){const l=de(this),r=Os(l),a=de(o),c=!t&&!ze(o)&&!mt(o)?a:o;return r.has.call(l,c)||ot(o,c)&&r.has.call(l,o)||ot(a,c)&&r.has.call(l,a)||(l.add(c),dt(l,"add",c,c)),this},set(o,l){!t&&!ze(l)&&!mt(l)&&(l=de(l));const r=de(this),{has:a,get:c}=Os(r);let v=a.call(r,o);v||(o=de(o),v=a.call(r,o));const d=c.call(r,o);return r.set(o,l),v?ot(l,d)&&dt(r,"set",o,l):dt(r,"add",o,l),this},delete(o){const l=de(this),{has:r,get:a}=Os(l);let c=r.call(l,o);c||(o=de(o),c=r.call(l,o)),a&&a.call(l,o);const v=l.delete(o);return c&&dt(l,"delete",o,void 0),v},clear(){const o=de(this),l=o.size!==0,r=o.clear();return l&&dt(o,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=Ai(o,e,t)}),s}function Un(e,t){const s=Ii(e,t);return(n,o,l)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(pe(s,o)&&o in n?s:n,o,l)}const Pi={get:Un(!1,!1)},Li={get:Un(!1,!0)},Fi={get:Un(!0,!1)};const ll=new WeakMap,il=new WeakMap,rl=new WeakMap,Ni=new WeakMap;function Ri(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ji(e){return e.__v_skip||!Object.isExtensible(e)?0:Ri(ri(e))}function Bn(e){return mt(e)?e:Kn(e,!1,Mi,Pi,ll)}function Di(e){return Kn(e,!1,Oi,Li,il)}function kn(e){return Kn(e,!0,Ei,Fi,rl)}function Kn(e,t,s,n,o){if(!he(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=ji(e);if(l===0)return e;const r=o.get(e);if(r)return r;const a=new Proxy(e,l===2?n:s);return o.set(e,a),a}function Ft(e){return mt(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function ze(e){return!!(e&&e.__v_isShallow)}function Wn(e){return e?!!e.__v_raw:!1}function de(e){const t=e&&e.__v_raw;return t?de(t):e}function Hi(e){return!pe(e,"__v_skip")&&Object.isExtensible(e)&&Ko(e,"__v_skip",!0),e}const Ye=e=>he(e)?Bn(e):e,Yt=e=>he(e)?kn(e):e;function Ee(e){return e?e.__v_isRef===!0:!1}function ae(e){return Vi(e,!1)}function Vi(e,t){return Ee(e)?e:new Ui(e,t)}class Ui{constructor(t,s){this.dep=new Vn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:de(t),this._value=s?t:Ye(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||ze(t)||mt(t);t=n?t:de(t),ot(t,s)&&(this._rawValue=t,this._value=n?t:Ye(t),this.dep.trigger())}}function wt(e){return Ee(e)?e.value:e}const Bi={get:(e,t,s)=>t==="__v_raw"?e:wt(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const o=e[t];return Ee(o)&&!Ee(s)?(o.value=s,!0):Reflect.set(e,t,s,n)}};function al(e){return Ft(e)?e:new Proxy(e,Bi)}class Ki{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Vn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=gs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&me!==this)return Yo(this,!0),!0}get value(){const t=this.dep.track();return Zo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Wi(e,t,s=!1){let n,o;return oe(e)?n=e:(n=e.get,o=e.set),new Ki(n,o,s)}const Is={},js=new WeakMap;let Ot;function zi(e,t=!1,s=Ot){if(s){let n=js.get(s);n||js.set(s,n=[]),n.push(e)}}function qi(e,t,s=ve){const{immediate:n,deep:o,once:l,scheduler:r,augmentJob:a,call:c}=s,v=T=>o?T:ze(T)||o===!1||o===0?ft(T,1):ft(T);let d,g,E,y,x=!1,F=!1;if(Ee(e)?(g=()=>e.value,x=ze(e)):Ft(e)?(g=()=>v(e),x=!0):ee(e)?(F=!0,x=e.some(T=>Ft(T)||ze(T)),g=()=>e.map(T=>{if(Ee(T))return T.value;if(Ft(T))return v(T);if(oe(T))return c?c(T,2):T()})):oe(e)?t?g=c?()=>c(e,2):e:g=()=>{if(E){ht();try{E()}finally{vt()}}const T=Ot;Ot=d;try{return c?c(e,3,[y]):e(y)}finally{Ot=T}}:g=lt,t&&o){const T=g,D=o===!0?1/0:o;g=()=>ft(T(),D)}const J=yi(),Q=()=>{d.stop(),J&&J.active&&Nn(J.effects,d)};if(l&&t){const T=t;t=(...D)=>{T(...D),Q()}}let U=F?new Array(e.length).fill(Is):Is;const Y=T=>{if(!(!(d.flags&1)||!d.dirty&&!T))if(t){const D=d.run();if(o||x||(F?D.some((B,N)=>ot(B,U[N])):ot(D,U))){E&&E();const B=Ot;Ot=d;try{const N=[D,U===Is?void 0:F&&U[0]===Is?[]:U,y];U=D,c?c(t,3,N):t(...N)}finally{Ot=B}}}else d.run()};return a&&a(Y),d=new Jo(g),d.scheduler=r?()=>r(Y,!1):Y,y=T=>zi(T,!1,d),E=d.onStop=()=>{const T=js.get(d);if(T){if(c)c(T,4);else for(const D of T)D();js.delete(d)}},t?n?Y(!0):U=d.run():r?r(Y.bind(null,!0),!0):d.run(),Q.pause=d.pause.bind(d),Q.resume=d.resume.bind(d),Q.stop=Q,Q}function ft(e,t=1/0,s){if(t<=0||!he(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Ee(e))ft(e.value,t,s);else if(ee(e))for(let n=0;n<e.length;n++)ft(e[n],t,s);else if(Qs(e)||zt(e))e.forEach(n=>{ft(n,t,s)});else if(Uo(e)){for(const n in e)ft(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ft(e[n],t,s)}return e}/**
|
|
10
|
+
* @vue/runtime-core v3.5.30
|
|
11
|
+
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
12
|
+
* @license MIT
|
|
13
|
+
**/function Ts(e,t,s,n){try{return n?e(...n):e()}catch(o){sn(o,t,s)}}function Qe(e,t,s,n){if(oe(e)){const o=Ts(e,t,s,n);return o&&Ho(o)&&o.catch(l=>{sn(l,t,s)}),o}if(ee(e)){const o=[];for(let l=0;l<e.length;l++)o.push(Qe(e[l],t,s,n));return o}}function sn(e,t,s,n=!0){const o=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||ve;if(t){let a=t.parent;const c=t.proxy,v=`https://vuejs.org/error-reference/#runtime-${s}`;for(;a;){const d=a.ec;if(d){for(let g=0;g<d.length;g++)if(d[g](e,c,v)===!1)return}a=a.parent}if(l){ht(),Ts(l,null,10,[e,c,v]),vt();return}}Ji(e,s,o,n,r)}function Ji(e,t,s,n=!0,o=!1){if(o)throw e;console.error(e)}const Pe=[];let et=-1;const qt=[];let yt=null,Kt=0;const cl=Promise.resolve();let Ds=null;function ul(e){const t=Ds||cl;return e?t.then(this?e.bind(this):e):t}function Gi(e){let t=et+1,s=Pe.length;for(;t<s;){const n=t+s>>>1,o=Pe[n],l=bs(o);l<e||l===e&&o.flags&2?t=n+1:s=n}return t}function zn(e){if(!(e.flags&1)){const t=bs(e),s=Pe[Pe.length-1];!s||!(e.flags&2)&&t>=bs(s)?Pe.push(e):Pe.splice(Gi(t),0,e),e.flags|=1,dl()}}function dl(){Ds||(Ds=cl.then(pl))}function Yi(e){ee(e)?qt.push(...e):yt&&e.id===-1?yt.splice(Kt+1,0,e):e.flags&1||(qt.push(e),e.flags|=1),dl()}function no(e,t,s=et+1){for(;s<Pe.length;s++){const n=Pe[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;Pe.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function fl(e){if(qt.length){const t=[...new Set(qt)].sort((s,n)=>bs(s)-bs(n));if(qt.length=0,yt){yt.push(...t);return}for(yt=t,Kt=0;Kt<yt.length;Kt++){const s=yt[Kt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}yt=null,Kt=0}}const bs=e=>e.id==null?e.flags&2?-1:1/0:e.id;function pl(e){try{for(et=0;et<Pe.length;et++){const t=Pe[et];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ts(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;et<Pe.length;et++){const t=Pe[et];t&&(t.flags&=-2)}et=-1,Pe.length=0,fl(),Ds=null,(Pe.length||qt.length)&&pl()}}let We=null,hl=null;function Hs(e){const t=We;return We=e,hl=e&&e.type.__scopeId||null,t}function Vs(e,t=We,s){if(!t||e._n)return e;const n=(...o)=>{n._d&&Ks(-1);const l=Hs(t);let r;try{r=e(...o)}finally{Hs(l),n._d&&Ks(1)}return r};return n._n=!0,n._c=!0,n._d=!0,n}function Nt(e,t){if(We===null)return e;const s=an(We),n=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[l,r,a,c=ve]=t[o];l&&(oe(l)&&(l={mounted:l,updated:l}),l.deep&&ft(r),n.push({dir:l,instance:s,value:r,oldValue:void 0,arg:a,modifiers:c}))}return e}function St(e,t,s,n){const o=e.dirs,l=t&&t.dirs;for(let r=0;r<o.length;r++){const a=o[r];l&&(a.oldValue=l[r].value);let c=a.dir[n];c&&(ht(),Qe(c,s,8,[e.el,a,e,t]),vt())}}function Qi(e,t){if(Fe){let s=Fe.provides;const n=Fe.parent&&Fe.parent.provides;n===s&&(s=Fe.provides=Object.create(n)),s[e]=t}}function Ls(e,t,s=!1){const n=zl();if(n||Jt){let o=Jt?Jt._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return s&&oe(t)?t.call(n&&n.proxy):t}}const Xi=Symbol.for("v-scx"),Zi=()=>Ls(Xi);function xt(e,t,s){return vl(e,t,s)}function vl(e,t,s=ve){const{immediate:n,deep:o,flush:l,once:r}=s,a=$e({},s),c=t&&n||!t&&l!=="post";let v;if(ws){if(l==="sync"){const y=Zi();v=y.__watcherHandles||(y.__watcherHandles=[])}else if(!c){const y=()=>{};return y.stop=lt,y.resume=lt,y.pause=lt,y}}const d=Fe;a.call=(y,x,F)=>Qe(y,d,x,F);let g=!1;l==="post"?a.scheduler=y=>{De(y,d&&d.suspense)}:l!=="sync"&&(g=!0,a.scheduler=(y,x)=>{x?y():zn(y)}),a.augmentJob=y=>{t&&(y.flags|=4),g&&(y.flags|=2,d&&(y.id=d.uid,y.i=d))};const E=qi(e,t,a);return ws&&(v?v.push(E):c&&E()),E}function er(e,t,s){const n=this.proxy,o=ye(e)?e.includes(".")?ml(n,e):()=>n[e]:e.bind(n,n);let l;oe(t)?l=t:(l=t.handler,s=t);const r=Ms(this),a=vl(o,l.bind(n),s);return r(),a}function ml(e,t){const s=t.split(".");return()=>{let n=e;for(let o=0;o<s.length&&n;o++)n=n[s[o]];return n}}const tr=Symbol("_vte"),gl=e=>e.__isTeleport,tt=Symbol("_leaveCb"),os=Symbol("_enterCb");function sr(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return kl(()=>{e.isMounted=!0}),Sl(()=>{e.isUnmounting=!0}),e}const Ke=[Function,Array],_l={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ke,onEnter:Ke,onAfterEnter:Ke,onEnterCancelled:Ke,onBeforeLeave:Ke,onLeave:Ke,onAfterLeave:Ke,onLeaveCancelled:Ke,onBeforeAppear:Ke,onAppear:Ke,onAfterAppear:Ke,onAppearCancelled:Ke},bl=e=>{const t=e.subTree;return t.component?bl(t.component):t},nr={name:"BaseTransition",props:_l,setup(e,{slots:t}){const s=zl(),n=sr();return()=>{const o=t.default&&wl(t.default(),!0);if(!o||!o.length)return;const l=yl(o),r=de(e),{mode:a}=r;if(n.isLeaving)return vn(l);const c=oo(l);if(!c)return vn(l);let v=Sn(c,r,n,s,g=>v=g);c.type!==Le&&ys(c,v);let d=s.subTree&&oo(s.subTree);if(d&&d.type!==Le&&!It(d,c)&&bl(s).type!==Le){let g=Sn(d,r,n,s);if(ys(d,g),a==="out-in"&&c.type!==Le)return n.isLeaving=!0,g.afterLeave=()=>{n.isLeaving=!1,s.job.flags&8||s.update(),delete g.afterLeave,d=void 0},vn(l);a==="in-out"&&c.type!==Le?g.delayLeave=(E,y,x)=>{const F=xl(n,d);F[String(d.key)]=d,E[tt]=()=>{y(),E[tt]=void 0,delete v.delayedLeave,d=void 0},v.delayedLeave=()=>{x(),delete v.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return l}}};function yl(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Le){t=s;break}}return t}const or=nr;function xl(e,t){const{leavingVNodes:s}=e;let n=s.get(t.type);return n||(n=Object.create(null),s.set(t.type,n)),n}function Sn(e,t,s,n,o){const{appear:l,mode:r,persisted:a=!1,onBeforeEnter:c,onEnter:v,onAfterEnter:d,onEnterCancelled:g,onBeforeLeave:E,onLeave:y,onAfterLeave:x,onLeaveCancelled:F,onBeforeAppear:J,onAppear:Q,onAfterAppear:U,onAppearCancelled:Y}=t,T=String(e.key),D=xl(s,e),B=(C,le)=>{C&&Qe(C,n,9,le)},N=(C,le)=>{const w=le[1];B(C,le),ee(C)?C.every(m=>m.length<=1)&&w():C.length<=1&&w()},O={mode:r,persisted:a,beforeEnter(C){let le=c;if(!s.isMounted)if(l)le=J||c;else return;C[tt]&&C[tt](!0);const w=D[T];w&&It(e,w)&&w.el[tt]&&w.el[tt](),B(le,[C])},enter(C){if(D[T]===e)return;let le=v,w=d,m=g;if(!s.isMounted)if(l)le=Q||v,w=U||d,m=Y||g;else return;let _=!1;C[os]=ie=>{_||(_=!0,ie?B(m,[C]):B(w,[C]),O.delayedLeave&&O.delayedLeave(),C[os]=void 0)};const G=C[os].bind(null,!1);le?N(le,[C,G]):G()},leave(C,le){const w=String(e.key);if(C[os]&&C[os](!0),s.isUnmounting)return le();B(E,[C]);let m=!1;C[tt]=G=>{m||(m=!0,le(),G?B(F,[C]):B(x,[C]),C[tt]=void 0,D[w]===e&&delete D[w])};const _=C[tt].bind(null,!1);D[w]=e,y?N(y,[C,_]):_()},clone(C){const le=Sn(C,t,s,n,o);return o&&o(le),le}};return O}function vn(e){if(nn(e))return e=$t(e),e.children=null,e}function oo(e){if(!nn(e))return gl(e.type)&&e.children?yl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&oe(s.default))return s.default()}}function ys(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ys(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function wl(e,t=!1,s){let n=[],o=0;for(let l=0;l<e.length;l++){let r=e[l];const a=s==null?r.key:String(s)+String(r.key!=null?r.key:l);r.type===ce?(r.patchFlag&128&&o++,n=n.concat(wl(r.children,t,a))):(t||r.type!==Le)&&n.push(a!=null?$t(r,{key:a}):r)}if(o>1)for(let l=0;l<n.length;l++)n[l].patchFlag=-2;return n}function Rt(e,t){return oe(e)?$e({name:e.name},t,{setup:e}):e}function $l(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function lo(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const Us=new WeakMap;function fs(e,t,s,n,o=!1){if(ee(e)){e.forEach((F,J)=>fs(F,t&&(ee(t)?t[J]:t),s,n,o));return}if(ps(n)&&!o){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&fs(e,t,s,n.component.subTree);return}const l=n.shapeFlag&4?an(n.component):n.el,r=o?null:l,{i:a,r:c}=e,v=t&&t.r,d=a.refs===ve?a.refs={}:a.refs,g=a.setupState,E=de(g),y=g===ve?Do:F=>lo(d,F)?!1:pe(E,F),x=(F,J)=>!(J&&lo(d,J));if(v!=null&&v!==c){if(io(t),ye(v))d[v]=null,y(v)&&(g[v]=null);else if(Ee(v)){const F=t;x(v,F.k)&&(v.value=null),F.k&&(d[F.k]=null)}}if(oe(c))Ts(c,a,12,[r,d]);else{const F=ye(c),J=Ee(c);if(F||J){const Q=()=>{if(e.f){const U=F?y(c)?g[c]:d[c]:x()||!e.k?c.value:d[e.k];if(o)ee(U)&&Nn(U,l);else if(ee(U))U.includes(l)||U.push(l);else if(F)d[c]=[l],y(c)&&(g[c]=d[c]);else{const Y=[l];x(c,e.k)&&(c.value=Y),e.k&&(d[e.k]=Y)}}else F?(d[c]=r,y(c)&&(g[c]=r)):J&&(x(c,e.k)&&(c.value=r),e.k&&(d[e.k]=r))};if(r){const U=()=>{Q(),Us.delete(e)};U.id=-1,Us.set(e,U),De(U,s)}else io(e),Q()}}}function io(e){const t=Us.get(e);t&&(t.flags|=8,Us.delete(e))}en().requestIdleCallback;en().cancelIdleCallback;const ps=e=>!!e.type.__asyncLoader,nn=e=>e.type.__isKeepAlive;function lr(e,t){Cl(e,"a",t)}function ir(e,t){Cl(e,"da",t)}function Cl(e,t,s=Fe){const n=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(on(t,n,s),s){let o=s.parent;for(;o&&o.parent;)nn(o.parent.vnode)&&rr(n,t,s,o),o=o.parent}}function rr(e,t,s,n){const o=on(t,e,n,!0);qn(()=>{Nn(n[t],o)},s)}function on(e,t,s=Fe,n=!1){if(s){const o=s[e]||(s[e]=[]),l=t.__weh||(t.__weh=(...r)=>{ht();const a=Ms(s),c=Qe(t,s,e,r);return a(),vt(),c});return n?o.unshift(l):o.push(l),l}}const gt=e=>(t,s=Fe)=>{(!ws||e==="sp")&&on(e,(...n)=>t(...n),s)},ar=gt("bm"),kl=gt("m"),cr=gt("bu"),ur=gt("u"),Sl=gt("bum"),qn=gt("um"),dr=gt("sp"),fr=gt("rtg"),pr=gt("rtc");function hr(e,t=Fe){on("ec",e,t)}const vr=Symbol.for("v-ndc");function be(e,t,s,n){let o;const l=s,r=ee(e);if(r||ye(e)){const a=r&&Ft(e);let c=!1,v=!1;a&&(c=!ze(e),v=mt(e),e=tn(e)),o=new Array(e.length);for(let d=0,g=e.length;d<g;d++)o[d]=t(c?v?Yt(Ye(e[d])):Ye(e[d]):e[d],d,void 0,l)}else if(typeof e=="number"){o=new Array(e);for(let a=0;a<e;a++)o[a]=t(a+1,a,void 0,l)}else if(he(e))if(e[Symbol.iterator])o=Array.from(e,(a,c)=>t(a,c,void 0,l));else{const a=Object.keys(e);o=new Array(a.length);for(let c=0,v=a.length;c<v;c++){const d=a[c];o[c]=t(e[d],d,c,l)}}else o=[];return o}const Tn=e=>e?ql(e)?an(e):Tn(e.parent):null,hs=$e(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Tn(e.parent),$root:e=>Tn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ml(e),$forceUpdate:e=>e.f||(e.f=()=>{zn(e.update)}),$nextTick:e=>e.n||(e.n=ul.bind(e.proxy)),$watch:e=>er.bind(e)}),mn=(e,t)=>e!==ve&&!e.__isScriptSetup&&pe(e,t),mr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:o,props:l,accessCache:r,type:a,appContext:c}=e;if(t[0]!=="$"){const E=r[t];if(E!==void 0)switch(E){case 1:return n[t];case 2:return o[t];case 4:return s[t];case 3:return l[t]}else{if(mn(n,t))return r[t]=1,n[t];if(o!==ve&&pe(o,t))return r[t]=2,o[t];if(pe(l,t))return r[t]=3,l[t];if(s!==ve&&pe(s,t))return r[t]=4,s[t];Mn&&(r[t]=0)}}const v=hs[t];let d,g;if(v)return t==="$attrs"&&Te(e.attrs,"get",""),v(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(s!==ve&&pe(s,t))return r[t]=4,s[t];if(g=c.config.globalProperties,pe(g,t))return g[t]},set({_:e},t,s){const{data:n,setupState:o,ctx:l}=e;return mn(o,t)?(o[t]=s,!0):n!==ve&&pe(n,t)?(n[t]=s,!0):pe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:o,props:l,type:r}},a){let c;return!!(s[a]||e!==ve&&a[0]!=="$"&&pe(e,a)||mn(t,a)||pe(l,a)||pe(n,a)||pe(hs,a)||pe(o.config.globalProperties,a)||(c=r.__cssModules)&&c[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:pe(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function ro(e){return ee(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Mn=!0;function gr(e){const t=Ml(e),s=e.proxy,n=e.ctx;Mn=!1,t.beforeCreate&&ao(t.beforeCreate,e,"bc");const{data:o,computed:l,methods:r,watch:a,provide:c,inject:v,created:d,beforeMount:g,mounted:E,beforeUpdate:y,updated:x,activated:F,deactivated:J,beforeDestroy:Q,beforeUnmount:U,destroyed:Y,unmounted:T,render:D,renderTracked:B,renderTriggered:N,errorCaptured:O,serverPrefetch:C,expose:le,inheritAttrs:w,components:m,directives:_,filters:G}=t;if(v&&_r(v,n,null),r)for(const R in r){const Z=r[R];oe(Z)&&(n[R]=Z.bind(s))}if(o){const R=o.call(s,s);he(R)&&(e.data=Bn(R))}if(Mn=!0,l)for(const R in l){const Z=l[R],ge=oe(Z)?Z.bind(s,s):oe(Z.get)?Z.get.bind(s,s):lt,_e=!oe(Z)&&oe(Z.set)?Z.set.bind(s):lt,Oe=re({get:ge,set:_e});Object.defineProperty(n,R,{enumerable:!0,configurable:!0,get:()=>Oe.value,set:Ne=>Oe.value=Ne})}if(a)for(const R in a)Tl(a[R],n,s,R);if(c){const R=oe(c)?c.call(s):c;Reflect.ownKeys(R).forEach(Z=>{Qi(Z,R[Z])})}d&&ao(d,e,"c");function ue(R,Z){ee(Z)?Z.forEach(ge=>R(ge.bind(s))):Z&&R(Z.bind(s))}if(ue(ar,g),ue(kl,E),ue(cr,y),ue(ur,x),ue(lr,F),ue(ir,J),ue(hr,O),ue(pr,B),ue(fr,N),ue(Sl,U),ue(qn,T),ue(dr,C),ee(le))if(le.length){const R=e.exposed||(e.exposed={});le.forEach(Z=>{Object.defineProperty(R,Z,{get:()=>s[Z],set:ge=>s[Z]=ge,enumerable:!0})})}else e.exposed||(e.exposed={});D&&e.render===lt&&(e.render=D),w!=null&&(e.inheritAttrs=w),m&&(e.components=m),_&&(e.directives=_),C&&$l(e)}function _r(e,t,s=lt){ee(e)&&(e=En(e));for(const n in e){const o=e[n];let l;he(o)?"default"in o?l=Ls(o.from||n,o.default,!0):l=Ls(o.from||n):l=Ls(o),Ee(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:r=>l.value=r}):t[n]=l}}function ao(e,t,s){Qe(ee(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Tl(e,t,s,n){let o=n.includes(".")?ml(s,n):()=>s[n];if(ye(e)){const l=t[e];oe(l)&&xt(o,l)}else if(oe(e))xt(o,e.bind(s));else if(he(e))if(ee(e))e.forEach(l=>Tl(l,t,s,n));else{const l=oe(e.handler)?e.handler.bind(s):t[e.handler];oe(l)&&xt(o,l,e)}}function Ml(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:o,optionsCache:l,config:{optionMergeStrategies:r}}=e.appContext,a=l.get(t);let c;return a?c=a:!o.length&&!s&&!n?c=t:(c={},o.length&&o.forEach(v=>Bs(c,v,r,!0)),Bs(c,t,r)),he(t)&&l.set(t,c),c}function Bs(e,t,s,n=!1){const{mixins:o,extends:l}=t;l&&Bs(e,l,s,!0),o&&o.forEach(r=>Bs(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const a=br[r]||s&&s[r];e[r]=a?a(e[r],t[r]):t[r]}return e}const br={data:co,props:uo,emits:uo,methods:as,computed:as,beforeCreate:Ie,created:Ie,beforeMount:Ie,mounted:Ie,beforeUpdate:Ie,updated:Ie,beforeDestroy:Ie,beforeUnmount:Ie,destroyed:Ie,unmounted:Ie,activated:Ie,deactivated:Ie,errorCaptured:Ie,serverPrefetch:Ie,components:as,directives:as,watch:xr,provide:co,inject:yr};function co(e,t){return t?e?function(){return $e(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function yr(e,t){return as(En(e),En(t))}function En(e){if(ee(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function Ie(e,t){return e?[...new Set([].concat(e,t))]:t}function as(e,t){return e?$e(Object.create(null),e,t):t}function uo(e,t){return e?ee(e)&&ee(t)?[...new Set([...e,...t])]:$e(Object.create(null),ro(e),ro(t??{})):t}function xr(e,t){if(!e)return t;if(!t)return e;const s=$e(Object.create(null),e);for(const n in t)s[n]=Ie(e[n],t[n]);return s}function El(){return{app:null,config:{isNativeTag:Do,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let wr=0;function $r(e,t){return function(n,o=null){oe(n)||(n=$e({},n)),o!=null&&!he(o)&&(o=null);const l=El(),r=new WeakSet,a=[];let c=!1;const v=l.app={_uid:wr++,_component:n,_props:o,_container:null,_context:l,_instance:null,version:ta,get config(){return l.config},set config(d){},use(d,...g){return r.has(d)||(d&&oe(d.install)?(r.add(d),d.install(v,...g)):oe(d)&&(r.add(d),d(v,...g))),v},mixin(d){return l.mixins.includes(d)||l.mixins.push(d),v},component(d,g){return g?(l.components[d]=g,v):l.components[d]},directive(d,g){return g?(l.directives[d]=g,v):l.directives[d]},mount(d,g,E){if(!c){const y=v._ceVNode||ke(n,o);return y.appContext=l,E===!0?E="svg":E===!1&&(E=void 0),e(y,d,E),c=!0,v._container=d,d.__vue_app__=v,an(y.component)}},onUnmount(d){a.push(d)},unmount(){c&&(Qe(a,v._instance,16),e(null,v._container),delete v._container.__vue_app__)},provide(d,g){return l.provides[d]=g,v},runWithContext(d){const g=Jt;Jt=v;try{return d()}finally{Jt=g}}};return v}}let Jt=null;const Cr=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${jt(t)}Modifiers`];function kr(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||ve;let o=s;const l=t.startsWith("update:"),r=l&&Cr(n,t.slice(7));r&&(r.trim&&(o=s.map(d=>ye(d)?d.trim():d)),r.number&&(o=s.map(Zs)));let a,c=n[a=un(t)]||n[a=un(Je(t))];!c&&l&&(c=n[a=un(jt(t))]),c&&Qe(c,e,6,o);const v=n[a+"Once"];if(v){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Qe(v,e,6,o)}}const Sr=new WeakMap;function Ol(e,t,s=!1){const n=s?Sr:t.emitsCache,o=n.get(e);if(o!==void 0)return o;const l=e.emits;let r={},a=!1;if(!oe(e)){const c=v=>{const d=Ol(v,t,!0);d&&(a=!0,$e(r,d))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!l&&!a?(he(e)&&n.set(e,null),null):(ee(l)?l.forEach(c=>r[c]=null):$e(r,l),he(e)&&n.set(e,r),r)}function ln(e,t){return!e||!Ys(t)?!1:(t=t.slice(2).replace(/Once$/,""),pe(e,t[0].toLowerCase()+t.slice(1))||pe(e,jt(t))||pe(e,t))}function fo(e){const{type:t,vnode:s,proxy:n,withProxy:o,propsOptions:[l],slots:r,attrs:a,emit:c,render:v,renderCache:d,props:g,data:E,setupState:y,ctx:x,inheritAttrs:F}=e,J=Hs(e);let Q,U;try{if(s.shapeFlag&4){const T=o||n,D=T;Q=nt(v.call(D,T,d,g,y,E,x)),U=a}else{const T=t;Q=nt(T.length>1?T(g,{attrs:a,slots:r,emit:c}):T(g,null)),U=t.props?a:Tr(a)}}catch(T){vs.length=0,sn(T,e,1),Q=ke(Le)}let Y=Q;if(U&&F!==!1){const T=Object.keys(U),{shapeFlag:D}=Y;T.length&&D&7&&(l&&T.some(Fn)&&(U=Mr(U,l)),Y=$t(Y,U,!1,!0))}return s.dirs&&(Y=$t(Y,null,!1,!0),Y.dirs=Y.dirs?Y.dirs.concat(s.dirs):s.dirs),s.transition&&ys(Y,s.transition),Q=Y,Hs(J),Q}const Tr=e=>{let t;for(const s in e)(s==="class"||s==="style"||Ys(s))&&((t||(t={}))[s]=e[s]);return t},Mr=(e,t)=>{const s={};for(const n in e)(!Fn(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Er(e,t,s){const{props:n,children:o,component:l}=e,{props:r,children:a,patchFlag:c}=t,v=l.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?po(n,r,v):!!r;if(c&8){const d=t.dynamicProps;for(let g=0;g<d.length;g++){const E=d[g];if(Al(r,n,E)&&!ln(v,E))return!0}}}else return(o||a)&&(!a||!a.$stable)?!0:n===r?!1:n?r?po(n,r,v):!0:!!r;return!1}function po(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let o=0;o<n.length;o++){const l=n[o];if(Al(t,e,l)&&!ln(s,l))return!0}return!1}function Al(e,t,s){const n=e[s],o=t[s];return s==="style"&&he(n)&&he(o)?!Ss(n,o):n!==o}function Or({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Il={},Pl=()=>Object.create(Il),Ll=e=>Object.getPrototypeOf(e)===Il;function Ar(e,t,s,n=!1){const o={},l=Pl();e.propsDefaults=Object.create(null),Fl(e,t,o,l);for(const r in e.propsOptions[0])r in o||(o[r]=void 0);s?e.props=n?o:Di(o):e.type.props?e.props=o:e.props=l,e.attrs=l}function Ir(e,t,s,n){const{props:o,attrs:l,vnode:{patchFlag:r}}=e,a=de(o),[c]=e.propsOptions;let v=!1;if((n||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let g=0;g<d.length;g++){let E=d[g];if(ln(e.emitsOptions,E))continue;const y=t[E];if(c)if(pe(l,E))y!==l[E]&&(l[E]=y,v=!0);else{const x=Je(E);o[x]=On(c,a,x,y,e,!1)}else y!==l[E]&&(l[E]=y,v=!0)}}}else{Fl(e,t,o,l)&&(v=!0);let d;for(const g in a)(!t||!pe(t,g)&&((d=jt(g))===g||!pe(t,d)))&&(c?s&&(s[g]!==void 0||s[d]!==void 0)&&(o[g]=On(c,a,g,void 0,e,!0)):delete o[g]);if(l!==a)for(const g in l)(!t||!pe(t,g))&&(delete l[g],v=!0)}v&&dt(e.attrs,"set","")}function Fl(e,t,s,n){const[o,l]=e.propsOptions;let r=!1,a;if(t)for(let c in t){if(cs(c))continue;const v=t[c];let d;o&&pe(o,d=Je(c))?!l||!l.includes(d)?s[d]=v:(a||(a={}))[d]=v:ln(e.emitsOptions,c)||(!(c in n)||v!==n[c])&&(n[c]=v,r=!0)}if(l){const c=de(s),v=a||ve;for(let d=0;d<l.length;d++){const g=l[d];s[g]=On(o,c,g,v[g],e,!pe(v,g))}}return r}function On(e,t,s,n,o,l){const r=e[s];if(r!=null){const a=pe(r,"default");if(a&&n===void 0){const c=r.default;if(r.type!==Function&&!r.skipFactory&&oe(c)){const{propsDefaults:v}=o;if(s in v)n=v[s];else{const d=Ms(o);n=v[s]=c.call(null,t),d()}}else n=c;o.ce&&o.ce._setProp(s,n)}r[0]&&(l&&!a?n=!1:r[1]&&(n===""||n===jt(s))&&(n=!0))}return n}const Pr=new WeakMap;function Nl(e,t,s=!1){const n=s?Pr:t.propsCache,o=n.get(e);if(o)return o;const l=e.props,r={},a=[];let c=!1;if(!oe(e)){const d=g=>{c=!0;const[E,y]=Nl(g,t,!0);$e(r,E),y&&a.push(...y)};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!c)return he(e)&&n.set(e,Wt),Wt;if(ee(l))for(let d=0;d<l.length;d++){const g=Je(l[d]);ho(g)&&(r[g]=ve)}else if(l)for(const d in l){const g=Je(d);if(ho(g)){const E=l[d],y=r[g]=ee(E)||oe(E)?{type:E}:$e({},E),x=y.type;let F=!1,J=!0;if(ee(x))for(let Q=0;Q<x.length;++Q){const U=x[Q],Y=oe(U)&&U.name;if(Y==="Boolean"){F=!0;break}else Y==="String"&&(J=!1)}else F=oe(x)&&x.name==="Boolean";y[0]=F,y[1]=J,(F||pe(y,"default"))&&a.push(g)}}const v=[r,a];return he(e)&&n.set(e,v),v}function ho(e){return e[0]!=="$"&&!cs(e)}const Jn=e=>e==="_"||e==="_ctx"||e==="$stable",Gn=e=>ee(e)?e.map(nt):[nt(e)],Lr=(e,t,s)=>{if(t._n)return t;const n=Vs((...o)=>Gn(t(...o)),s);return n._c=!1,n},Rl=(e,t,s)=>{const n=e._ctx;for(const o in e){if(Jn(o))continue;const l=e[o];if(oe(l))t[o]=Lr(o,l,n);else if(l!=null){const r=Gn(l);t[o]=()=>r}}},jl=(e,t)=>{const s=Gn(t);e.slots.default=()=>s},Dl=(e,t,s)=>{for(const n in t)(s||!Jn(n))&&(e[n]=t[n])},Fr=(e,t,s)=>{const n=e.slots=Pl();if(e.vnode.shapeFlag&32){const o=t._;o?(Dl(n,t,s),s&&Ko(n,"_",o,!0)):Rl(t,n)}else t&&jl(e,t)},Nr=(e,t,s)=>{const{vnode:n,slots:o}=e;let l=!0,r=ve;if(n.shapeFlag&32){const a=t._;a?s&&a===1?l=!1:Dl(o,t,s):(l=!t.$stable,Rl(t,o)),r=t}else t&&(jl(e,t),r={default:1});if(l)for(const a in o)!Jn(a)&&r[a]==null&&delete o[a]},De=Vr;function Rr(e){return jr(e)}function jr(e,t){const s=en();s.__VUE__=!0;const{insert:n,remove:o,patchProp:l,createElement:r,createText:a,createComment:c,setText:v,setElementText:d,parentNode:g,nextSibling:E,setScopeId:y=lt,insertStaticContent:x}=e,F=(u,h,$,L=null,A=null,I=null,K=void 0,H=null,j=!!h.dynamicChildren)=>{if(u===h)return;u&&!It(u,h)&&(L=Ct(u),Ne(u,A,I,!0),u=null),h.patchFlag===-2&&(j=!1,h.dynamicChildren=null);const{type:P,ref:X,shapeFlag:W}=h;switch(P){case rn:J(u,h,$,L);break;case Le:Q(u,h,$,L);break;case Fs:u==null&&U(h,$,L,K);break;case ce:m(u,h,$,L,A,I,K,H,j);break;default:W&1?D(u,h,$,L,A,I,K,H,j):W&6?_(u,h,$,L,A,I,K,H,j):(W&64||W&128)&&P.process(u,h,$,L,A,I,K,H,j,te)}X!=null&&A?fs(X,u&&u.ref,I,h||u,!h):X==null&&u&&u.ref!=null&&fs(u.ref,null,I,u,!0)},J=(u,h,$,L)=>{if(u==null)n(h.el=a(h.children),$,L);else{const A=h.el=u.el;h.children!==u.children&&v(A,h.children)}},Q=(u,h,$,L)=>{u==null?n(h.el=c(h.children||""),$,L):h.el=u.el},U=(u,h,$,L)=>{[u.el,u.anchor]=x(u.children,h,$,L,u.el,u.anchor)},Y=({el:u,anchor:h},$,L)=>{let A;for(;u&&u!==h;)A=E(u),n(u,$,L),u=A;n(h,$,L)},T=({el:u,anchor:h})=>{let $;for(;u&&u!==h;)$=E(u),o(u),u=$;o(h)},D=(u,h,$,L,A,I,K,H,j)=>{if(h.type==="svg"?K="svg":h.type==="math"&&(K="mathml"),u==null)B(h,$,L,A,I,K,H,j);else{const P=u.el&&u.el._isVueCE?u.el:null;try{P&&P._beginPatch(),C(u,h,A,I,K,H,j)}finally{P&&P._endPatch()}}},B=(u,h,$,L,A,I,K,H)=>{let j,P;const{props:X,shapeFlag:W,transition:f,dirs:p}=u;if(j=u.el=r(u.type,I,X&&X.is,X),W&8?d(j,u.children):W&16&&O(u.children,j,null,L,A,gn(u,I),K,H),p&&St(u,null,L,"created"),N(j,u,u.scopeId,K,L),X){for(const q in X)q!=="value"&&!cs(q)&&l(j,q,null,X[q],I,L);"value"in X&&l(j,"value",null,X.value,I),(P=X.onVnodeBeforeMount)&&Ze(P,L,u)}p&&St(u,null,L,"beforeMount");const k=Dr(A,f);k&&f.beforeEnter(j),n(j,h,$),((P=X&&X.onVnodeMounted)||k||p)&&De(()=>{P&&Ze(P,L,u),k&&f.enter(j),p&&St(u,null,L,"mounted")},A)},N=(u,h,$,L,A)=>{if($&&y(u,$),L)for(let I=0;I<L.length;I++)y(u,L[I]);if(A){let I=A.subTree;if(h===I||Bl(I.type)&&(I.ssContent===h||I.ssFallback===h)){const K=A.vnode;N(u,K,K.scopeId,K.slotScopeIds,A.parent)}}},O=(u,h,$,L,A,I,K,H,j=0)=>{for(let P=j;P<u.length;P++){const X=u[P]=H?ut(u[P]):nt(u[P]);F(null,X,h,$,L,A,I,K,H)}},C=(u,h,$,L,A,I,K)=>{const H=h.el=u.el;let{patchFlag:j,dynamicChildren:P,dirs:X}=h;j|=u.patchFlag&16;const W=u.props||ve,f=h.props||ve;let p;if($&&Tt($,!1),(p=f.onVnodeBeforeUpdate)&&Ze(p,$,h,u),X&&St(h,u,$,"beforeUpdate"),$&&Tt($,!0),(W.innerHTML&&f.innerHTML==null||W.textContent&&f.textContent==null)&&d(H,""),P?le(u.dynamicChildren,P,H,$,L,gn(h,A),I):K||Z(u,h,H,null,$,L,gn(h,A),I,!1),j>0){if(j&16)w(H,W,f,$,A);else if(j&2&&W.class!==f.class&&l(H,"class",null,f.class,A),j&4&&l(H,"style",W.style,f.style,A),j&8){const k=h.dynamicProps;for(let q=0;q<k.length;q++){const V=k[q],z=W[V],fe=f[V];(fe!==z||V==="value")&&l(H,V,z,fe,A,$)}}j&1&&u.children!==h.children&&d(H,h.children)}else!K&&P==null&&w(H,W,f,$,A);((p=f.onVnodeUpdated)||X)&&De(()=>{p&&Ze(p,$,h,u),X&&St(h,u,$,"updated")},L)},le=(u,h,$,L,A,I,K)=>{for(let H=0;H<h.length;H++){const j=u[H],P=h[H],X=j.el&&(j.type===ce||!It(j,P)||j.shapeFlag&198)?g(j.el):$;F(j,P,X,null,L,A,I,K,!0)}},w=(u,h,$,L,A)=>{if(h!==$){if(h!==ve)for(const I in h)!cs(I)&&!(I in $)&&l(u,I,h[I],null,A,L);for(const I in $){if(cs(I))continue;const K=$[I],H=h[I];K!==H&&I!=="value"&&l(u,I,H,K,A,L)}"value"in $&&l(u,"value",h.value,$.value,A)}},m=(u,h,$,L,A,I,K,H,j)=>{const P=h.el=u?u.el:a(""),X=h.anchor=u?u.anchor:a("");let{patchFlag:W,dynamicChildren:f,slotScopeIds:p}=h;p&&(H=H?H.concat(p):p),u==null?(n(P,$,L),n(X,$,L),O(h.children||[],$,X,A,I,K,H,j)):W>0&&W&64&&f&&u.dynamicChildren&&u.dynamicChildren.length===f.length?(le(u.dynamicChildren,f,$,A,I,K,H),(h.key!=null||A&&h===A.subTree)&&Hl(u,h,!0)):Z(u,h,$,X,A,I,K,H,j)},_=(u,h,$,L,A,I,K,H,j)=>{h.slotScopeIds=H,u==null?h.shapeFlag&512?A.ctx.activate(h,$,L,K,j):G(h,$,L,A,I,K,j):ie(u,h,j)},G=(u,h,$,L,A,I,K)=>{const H=u.component=Gr(u,L,A);if(nn(u)&&(H.ctx.renderer=te),Yr(H,!1,K),H.asyncDep){if(A&&A.registerDep(H,ue,K),!u.el){const j=H.subTree=ke(Le);Q(null,j,h,$),u.placeholder=j.el}}else ue(H,u,h,$,A,I,K)},ie=(u,h,$)=>{const L=h.component=u.component;if(Er(u,h,$))if(L.asyncDep&&!L.asyncResolved){R(L,h,$);return}else L.next=h,L.update();else h.el=u.el,L.vnode=h},ue=(u,h,$,L,A,I,K)=>{const H=()=>{if(u.isMounted){let{next:W,bu:f,u:p,parent:k,vnode:q}=u;{const Be=Vl(u);if(Be){W&&(W.el=q.el,R(u,W,K)),Be.asyncDep.then(()=>{De(()=>{u.isUnmounted||P()},A)});return}}let V=W,z;Tt(u,!1),W?(W.el=q.el,R(u,W,K)):W=q,f&&Ps(f),(z=W.props&&W.props.onVnodeBeforeUpdate)&&Ze(z,k,W,q),Tt(u,!0);const fe=fo(u),xe=u.subTree;u.subTree=fe,F(xe,fe,g(xe.el),Ct(xe),u,A,I),W.el=fe.el,V===null&&Or(u,fe.el),p&&De(p,A),(z=W.props&&W.props.onVnodeUpdated)&&De(()=>Ze(z,k,W,q),A)}else{let W;const{el:f,props:p}=h,{bm:k,m:q,parent:V,root:z,type:fe}=u,xe=ps(h);Tt(u,!1),k&&Ps(k),!xe&&(W=p&&p.onVnodeBeforeMount)&&Ze(W,V,h),Tt(u,!0);{z.ce&&z.ce._hasShadowRoot()&&z.ce._injectChildStyle(fe,u.parent?u.parent.type:void 0);const Be=u.subTree=fo(u);F(null,Be,$,L,u,A,I),h.el=Be.el}if(q&&De(q,A),!xe&&(W=p&&p.onVnodeMounted)){const Be=h;De(()=>Ze(W,V,Be),A)}(h.shapeFlag&256||V&&ps(V.vnode)&&V.vnode.shapeFlag&256)&&u.a&&De(u.a,A),u.isMounted=!0,h=$=L=null}};u.scope.on();const j=u.effect=new Jo(H);u.scope.off();const P=u.update=j.run.bind(j),X=u.job=j.runIfDirty.bind(j);X.i=u,X.id=u.uid,j.scheduler=()=>zn(X),Tt(u,!0),P()},R=(u,h,$)=>{h.component=u;const L=u.vnode.props;u.vnode=h,u.next=null,Ir(u,h.props,L,$),Nr(u,h.children,$),ht(),no(u),vt()},Z=(u,h,$,L,A,I,K,H,j=!1)=>{const P=u&&u.children,X=u?u.shapeFlag:0,W=h.children,{patchFlag:f,shapeFlag:p}=h;if(f>0){if(f&128){_e(P,W,$,L,A,I,K,H,j);return}else if(f&256){ge(P,W,$,L,A,I,K,H,j);return}}p&8?(X&16&&Xe(P,A,I),W!==P&&d($,W)):X&16?p&16?_e(P,W,$,L,A,I,K,H,j):Xe(P,A,I,!0):(X&8&&d($,""),p&16&&O(W,$,L,A,I,K,H,j))},ge=(u,h,$,L,A,I,K,H,j)=>{u=u||Wt,h=h||Wt;const P=u.length,X=h.length,W=Math.min(P,X);let f;for(f=0;f<W;f++){const p=h[f]=j?ut(h[f]):nt(h[f]);F(u[f],p,$,null,A,I,K,H,j)}P>X?Xe(u,A,I,!0,!1,W):O(h,$,L,A,I,K,H,j,W)},_e=(u,h,$,L,A,I,K,H,j)=>{let P=0;const X=h.length;let W=u.length-1,f=X-1;for(;P<=W&&P<=f;){const p=u[P],k=h[P]=j?ut(h[P]):nt(h[P]);if(It(p,k))F(p,k,$,null,A,I,K,H,j);else break;P++}for(;P<=W&&P<=f;){const p=u[W],k=h[f]=j?ut(h[f]):nt(h[f]);if(It(p,k))F(p,k,$,null,A,I,K,H,j);else break;W--,f--}if(P>W){if(P<=f){const p=f+1,k=p<X?h[p].el:L;for(;P<=f;)F(null,h[P]=j?ut(h[P]):nt(h[P]),$,k,A,I,K,H,j),P++}}else if(P>f)for(;P<=W;)Ne(u[P],A,I,!0),P++;else{const p=P,k=P,q=new Map;for(P=k;P<=f;P++){const Ae=h[P]=j?ut(h[P]):nt(h[P]);Ae.key!=null&&q.set(Ae.key,P)}let V,z=0;const fe=f-k+1;let xe=!1,Be=0;const kt=new Array(fe);for(P=0;P<fe;P++)kt[P]=0;for(P=p;P<=W;P++){const Ae=u[P];if(z>=fe){Ne(Ae,A,I,!0);continue}let Ve;if(Ae.key!=null)Ve=q.get(Ae.key);else for(V=k;V<=f;V++)if(kt[V-k]===0&&It(Ae,h[V])){Ve=V;break}Ve===void 0?Ne(Ae,A,I,!0):(kt[Ve-k]=P+1,Ve>=Be?Be=Ve:xe=!0,F(Ae,h[Ve],$,null,A,I,K,H,j),z++)}const _t=xe?Hr(kt):Wt;for(V=_t.length-1,P=fe-1;P>=0;P--){const Ae=k+P,Ve=h[Ae],ts=h[Ae+1],ss=Ae+1<X?ts.el||Ul(ts):L;kt[P]===0?F(null,Ve,$,ss,A,I,K,H,j):xe&&(V<0||P!==_t[V]?Oe(Ve,$,ss,2):V--)}}},Oe=(u,h,$,L,A=null)=>{const{el:I,type:K,transition:H,children:j,shapeFlag:P}=u;if(P&6){Oe(u.component.subTree,h,$,L);return}if(P&128){u.suspense.move(h,$,L);return}if(P&64){K.move(u,h,$,te);return}if(K===ce){n(I,h,$);for(let W=0;W<j.length;W++)Oe(j[W],h,$,L);n(u.anchor,h,$);return}if(K===Fs){Y(u,h,$);return}if(L!==2&&P&1&&H)if(L===0)H.beforeEnter(I),n(I,h,$),De(()=>H.enter(I),A);else{const{leave:W,delayLeave:f,afterLeave:p}=H,k=()=>{u.ctx.isUnmounted?o(I):n(I,h,$)},q=()=>{I._isLeaving&&I[tt](!0),W(I,()=>{k(),p&&p()})};f?f(I,k,q):q()}else n(I,h,$)},Ne=(u,h,$,L=!1,A=!1)=>{const{type:I,props:K,ref:H,children:j,dynamicChildren:P,shapeFlag:X,patchFlag:W,dirs:f,cacheIndex:p}=u;if(W===-2&&(A=!1),H!=null&&(ht(),fs(H,null,$,u,!0),vt()),p!=null&&(h.renderCache[p]=void 0),X&256){h.ctx.deactivate(u);return}const k=X&1&&f,q=!ps(u);let V;if(q&&(V=K&&K.onVnodeBeforeUnmount)&&Ze(V,h,u),X&6)we(u.component,$,L);else{if(X&128){u.suspense.unmount($,L);return}k&&St(u,null,h,"beforeUnmount"),X&64?u.type.remove(u,h,$,te,L):P&&!P.hasOnce&&(I!==ce||W>0&&W&64)?Xe(P,h,$,!1,!0):(I===ce&&W&384||!A&&X&16)&&Xe(j,h,$),L&&Re(u)}(q&&(V=K&&K.onVnodeUnmounted)||k)&&De(()=>{V&&Ze(V,h,u),k&&St(u,null,h,"unmounted")},$)},Re=u=>{const{type:h,el:$,anchor:L,transition:A}=u;if(h===ce){qe($,L);return}if(h===Fs){T(u);return}const I=()=>{o($),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(u.shapeFlag&1&&A&&!A.persisted){const{leave:K,delayLeave:H}=A,j=()=>K($,I);H?H(u.el,I,j):j()}else I()},qe=(u,h)=>{let $;for(;u!==h;)$=E(u),o(u),u=$;o(h)},we=(u,h,$)=>{const{bum:L,scope:A,job:I,subTree:K,um:H,m:j,a:P}=u;vo(j),vo(P),L&&Ps(L),A.stop(),I&&(I.flags|=8,Ne(K,u,h,$)),H&&De(H,h),De(()=>{u.isUnmounted=!0},h)},Xe=(u,h,$,L=!1,A=!1,I=0)=>{for(let K=I;K<u.length;K++)Ne(u[K],h,$,L,A)},Ct=u=>{if(u.shapeFlag&6)return Ct(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const h=E(u.anchor||u.el),$=h&&h[tr];return $?E($):h};let Dt=!1;const Es=(u,h,$)=>{let L;u==null?h._vnode&&(Ne(h._vnode,null,null,!0),L=h._vnode.component):F(h._vnode||null,u,h,null,null,null,$),h._vnode=u,Dt||(Dt=!0,no(L),fl(),Dt=!1)},te={p:F,um:Ne,m:Oe,r:Re,mt:G,mc:O,pc:Z,pbc:le,n:Ct,o:e};return{render:Es,hydrate:void 0,createApp:$r(Es)}}function gn({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function Tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Dr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Hl(e,t,s=!1){const n=e.children,o=t.children;if(ee(n)&&ee(o))for(let l=0;l<n.length;l++){const r=n[l];let a=o[l];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=o[l]=ut(o[l]),a.el=r.el),!s&&a.patchFlag!==-2&&Hl(r,a)),a.type===rn&&(a.patchFlag===-1&&(a=o[l]=ut(a)),a.el=r.el),a.type===Le&&!a.el&&(a.el=r.el)}}function Hr(e){const t=e.slice(),s=[0];let n,o,l,r,a;const c=e.length;for(n=0;n<c;n++){const v=e[n];if(v!==0){if(o=s[s.length-1],e[o]<v){t[n]=o,s.push(n);continue}for(l=0,r=s.length-1;l<r;)a=l+r>>1,e[s[a]]<v?l=a+1:r=a;v<e[s[l]]&&(l>0&&(t[n]=s[l-1]),s[l]=n)}}for(l=s.length,r=s[l-1];l-- >0;)s[l]=r,r=t[r];return s}function Vl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Vl(t)}function vo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Ul(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Ul(t.subTree):null}const Bl=e=>e.__isSuspense;function Vr(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):Yi(e)}const ce=Symbol.for("v-fgt"),rn=Symbol.for("v-txt"),Le=Symbol.for("v-cmt"),Fs=Symbol.for("v-stc"),vs=[];let Ue=null;function S(e=!1){vs.push(Ue=e?null:[])}function Ur(){vs.pop(),Ue=vs[vs.length-1]||null}let xs=1;function Ks(e,t=!1){xs+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Kl(e){return e.dynamicChildren=xs>0?Ue||Wt:null,Ur(),xs>0&&Ue&&Ue.push(e),e}function M(e,t,s,n,o,l){return Kl(i(e,t,s,n,o,l,!0))}function At(e,t,s,n,o){return Kl(ke(e,t,s,n,o,!0))}function Ws(e){return e?e.__v_isVNode===!0:!1}function It(e,t){return e.type===t.type&&e.key===t.key}const Wl=({key:e})=>e??null,Ns=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?ye(e)||Ee(e)||oe(e)?{i:We,r:e,k:t,f:!!s}:e:null);function i(e,t=null,s=null,n=0,o=null,l=e===ce?0:1,r=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Wl(t),ref:t&&Ns(t),scopeId:hl,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:We};return a?(Yn(c,s),l&128&&e.normalize(c)):s&&(c.shapeFlag|=ye(s)?8:16),xs>0&&!r&&Ue&&(c.patchFlag>0||l&6)&&c.patchFlag!==32&&Ue.push(c),c}const ke=Br;function Br(e,t=null,s=null,n=0,o=null,l=!1){if((!e||e===vr)&&(e=Le),Ws(e)){const a=$t(e,t,!0);return s&&Yn(a,s),xs>0&&!l&&Ue&&(a.shapeFlag&6?Ue[Ue.indexOf(e)]=a:Ue.push(a)),a.patchFlag=-2,a}if(ea(e)&&(e=e.__vccOpts),t){t=Kr(t);let{class:a,style:c}=t;a&&!ye(a)&&(t.class=ne(a)),he(c)&&(Wn(c)&&!ee(c)&&(c=$e({},c)),t.style=Ce(c))}const r=ye(e)?1:Bl(e)?128:gl(e)?64:he(e)?4:oe(e)?2:0;return i(e,t,s,n,o,r,l,!0)}function Kr(e){return e?Wn(e)||Ll(e)?$e({},e):e:null}function $t(e,t,s=!1,n=!1){const{props:o,ref:l,patchFlag:r,children:a,transition:c}=e,v=t?zr(o||{},t):o,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:v,key:v&&Wl(v),ref:t&&t.ref?s&&l?ee(l)?l.concat(Ns(t)):[l,Ns(t)]:Ns(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ce?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&$t(e.ssContent),ssFallback:e.ssFallback&&$t(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&ys(d,c.clone(d)),d}function Me(e=" ",t=0){return ke(rn,null,e,t)}function Wr(e,t){const s=ke(Fs,null,e);return s.staticCount=t,s}function se(e="",t=!1){return t?(S(),At(Le,null,e)):ke(Le,null,e)}function nt(e){return e==null||typeof e=="boolean"?ke(Le):ee(e)?ke(ce,null,e.slice()):Ws(e)?ut(e):ke(rn,null,String(e))}function ut(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:$t(e)}function Yn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ee(t))s=16;else if(typeof t=="object")if(n&65){const o=t.default;o&&(o._c&&(o._d=!1),Yn(e,o()),o._c&&(o._d=!0));return}else{s=32;const o=t._;!o&&!Ll(t)?t._ctx=We:o===3&&We&&(We.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:We},s=32):(t=String(t),n&64?(s=16,t=[Me(t)]):s=8);e.children=t,e.shapeFlag|=s}function zr(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const o in n)if(o==="class")t.class!==n.class&&(t.class=ne([t.class,n.class]));else if(o==="style")t.style=Ce([t.style,n.style]);else if(Ys(o)){const l=t[o],r=n[o];r&&l!==r&&!(ee(l)&&l.includes(r))&&(t[o]=l?[].concat(l,r):r)}else o!==""&&(t[o]=n[o])}return t}function Ze(e,t,s,n=null){Qe(e,t,7,[s,n])}const qr=El();let Jr=0;function Gr(e,t,s){const n=e.type,o=(t?t.appContext:e.appContext)||qr,l={uid:Jr++,vnode:e,type:n,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new bi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Nl(n,o),emitsOptions:Ol(n,o),emit:null,emitted:null,propsDefaults:ve,inheritAttrs:n.inheritAttrs,ctx:ve,data:ve,props:ve,attrs:ve,slots:ve,refs:ve,setupState:ve,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=kr.bind(null,l),e.ce&&e.ce(l),l}let Fe=null;const zl=()=>Fe||We;let zs,An;{const e=en(),t=(s,n)=>{let o;return(o=e[s])||(o=e[s]=[]),o.push(n),l=>{o.length>1?o.forEach(r=>r(l)):o[0](l)}};zs=t("__VUE_INSTANCE_SETTERS__",s=>Fe=s),An=t("__VUE_SSR_SETTERS__",s=>ws=s)}const Ms=e=>{const t=Fe;return zs(e),e.scope.on(),()=>{e.scope.off(),zs(t)}},mo=()=>{Fe&&Fe.scope.off(),zs(null)};function ql(e){return e.vnode.shapeFlag&4}let ws=!1;function Yr(e,t=!1,s=!1){t&&An(t);const{props:n,children:o}=e.vnode,l=ql(e);Ar(e,n,l,t),Fr(e,o,s||t);const r=l?Qr(e,t):void 0;return t&&An(!1),r}function Qr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,mr);const{setup:n}=s;if(n){ht();const o=e.setupContext=n.length>1?Zr(e):null,l=Ms(e),r=Ts(n,e,0,[e.props,o]),a=Ho(r);if(vt(),l(),(a||e.sp)&&!ps(e)&&$l(e),a){if(r.then(mo,mo),t)return r.then(c=>{go(e,c)}).catch(c=>{sn(c,e,0)});e.asyncDep=r}else go(e,r)}else Jl(e)}function go(e,t,s){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:he(t)&&(e.setupState=al(t)),Jl(e)}function Jl(e,t,s){const n=e.type;e.render||(e.render=n.render||lt);{const o=Ms(e);ht();try{gr(e)}finally{vt(),o()}}}const Xr={get(e,t){return Te(e,"get",""),e[t]}};function Zr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Xr),slots:e.slots,emit:e.emit,expose:t}}function an(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(al(Hi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in hs)return hs[s](e)},has(t,s){return s in t||s in hs}})):e.proxy}function ea(e){return oe(e)&&"__vccOpts"in e}const re=(e,t)=>Wi(e,t,ws);function Se(e,t,s){try{Ks(-1);const n=arguments.length;return n===2?he(t)&&!ee(t)?Ws(t)?ke(e,null,[t]):ke(e,t):ke(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&Ws(s)&&(s=[s]),ke(e,t,s))}finally{Ks(1)}}const ta="3.5.30";/**
|
|
14
|
+
* @vue/runtime-dom v3.5.30
|
|
15
|
+
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
16
|
+
* @license MIT
|
|
17
|
+
**/let In;const _o=typeof window<"u"&&window.trustedTypes;if(_o)try{In=_o.createPolicy("vue",{createHTML:e=>e})}catch{}const Gl=In?e=>In.createHTML(e):e=>e,sa="http://www.w3.org/2000/svg",na="http://www.w3.org/1998/Math/MathML",ct=typeof document<"u"?document:null,bo=ct&&ct.createElement("template"),oa={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const o=t==="svg"?ct.createElementNS(sa,e):t==="mathml"?ct.createElementNS(na,e):s?ct.createElement(e,{is:s}):ct.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>ct.createTextNode(e),createComment:e=>ct.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ct.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,o,l){const r=s?s.previousSibling:t.lastChild;if(o&&(o===l||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),s),!(o===l||!(o=o.nextSibling)););else{bo.innerHTML=Gl(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const a=bo.content;if(n==="svg"||n==="mathml"){const c=a.firstChild;for(;c.firstChild;)a.appendChild(c.firstChild);a.removeChild(c)}t.insertBefore(a,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},bt="transition",ls="animation",$s=Symbol("_vtc"),Yl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},la=$e({},_l,Yl),ia=e=>(e.displayName="Transition",e.props=la,e),Pn=ia((e,{slots:t})=>Se(or,ra(e),t)),Mt=(e,t=[])=>{ee(e)?e.forEach(s=>s(...t)):e&&e(...t)},yo=e=>e?ee(e)?e.some(t=>t.length>1):e.length>1:!1;function ra(e){const t={};for(const m in e)m in Yl||(t[m]=e[m]);if(e.css===!1)return t;const{name:s="v",type:n,duration:o,enterFromClass:l=`${s}-enter-from`,enterActiveClass:r=`${s}-enter-active`,enterToClass:a=`${s}-enter-to`,appearFromClass:c=l,appearActiveClass:v=r,appearToClass:d=a,leaveFromClass:g=`${s}-leave-from`,leaveActiveClass:E=`${s}-leave-active`,leaveToClass:y=`${s}-leave-to`}=e,x=aa(o),F=x&&x[0],J=x&&x[1],{onBeforeEnter:Q,onEnter:U,onEnterCancelled:Y,onLeave:T,onLeaveCancelled:D,onBeforeAppear:B=Q,onAppear:N=U,onAppearCancelled:O=Y}=t,C=(m,_,G,ie)=>{m._enterCancelled=ie,Et(m,_?d:a),Et(m,_?v:r),G&&G()},le=(m,_)=>{m._isLeaving=!1,Et(m,g),Et(m,y),Et(m,E),_&&_()},w=m=>(_,G)=>{const ie=m?N:U,ue=()=>C(_,m,G);Mt(ie,[_,ue]),xo(()=>{Et(_,m?c:l),at(_,m?d:a),yo(ie)||wo(_,n,F,ue)})};return $e(t,{onBeforeEnter(m){Mt(Q,[m]),at(m,l),at(m,r)},onBeforeAppear(m){Mt(B,[m]),at(m,c),at(m,v)},onEnter:w(!1),onAppear:w(!0),onLeave(m,_){m._isLeaving=!0;const G=()=>le(m,_);at(m,g),m._enterCancelled?(at(m,E),ko(m)):(ko(m),at(m,E)),xo(()=>{m._isLeaving&&(Et(m,g),at(m,y),yo(T)||wo(m,n,J,G))}),Mt(T,[m,G])},onEnterCancelled(m){C(m,!1,void 0,!0),Mt(Y,[m])},onAppearCancelled(m){C(m,!0,void 0,!0),Mt(O,[m])},onLeaveCancelled(m){le(m),Mt(D,[m])}})}function aa(e){if(e==null)return null;if(he(e))return[_n(e.enter),_n(e.leave)];{const t=_n(e);return[t,t]}}function _n(e){return ui(e)}function at(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.add(s)),(e[$s]||(e[$s]=new Set)).add(t)}function Et(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const s=e[$s];s&&(s.delete(t),s.size||(e[$s]=void 0))}function xo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ca=0;function wo(e,t,s,n){const o=e._endId=++ca,l=()=>{o===e._endId&&n()};if(s!=null)return setTimeout(l,s);const{type:r,timeout:a,propCount:c}=ua(e,t);if(!r)return n();const v=r+"end";let d=0;const g=()=>{e.removeEventListener(v,E),l()},E=y=>{y.target===e&&++d>=c&&g()};setTimeout(()=>{d<c&&g()},a+1),e.addEventListener(v,E)}function ua(e,t){const s=window.getComputedStyle(e),n=x=>(s[x]||"").split(", "),o=n(`${bt}Delay`),l=n(`${bt}Duration`),r=$o(o,l),a=n(`${ls}Delay`),c=n(`${ls}Duration`),v=$o(a,c);let d=null,g=0,E=0;t===bt?r>0&&(d=bt,g=r,E=l.length):t===ls?v>0&&(d=ls,g=v,E=c.length):(g=Math.max(r,v),d=g>0?r>v?bt:ls:null,E=d?d===bt?l.length:c.length:0);const y=d===bt&&/\b(?:transform|all)(?:,|$)/.test(n(`${bt}Property`).toString());return{type:d,timeout:g,propCount:E,hasTransform:y}}function $o(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((s,n)=>Co(s)+Co(e[n])))}function Co(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ko(e){return(e?e.ownerDocument:document).body.offsetHeight}function da(e,t,s){const n=e[$s];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const So=Symbol("_vod"),fa=Symbol("_vsh"),pa=Symbol(""),ha=/(?:^|;)\s*display\s*:/;function va(e,t,s){const n=e.style,o=ye(s);let l=!1;if(s&&!o){if(t)if(ye(t))for(const r of t.split(";")){const a=r.slice(0,r.indexOf(":")).trim();s[a]==null&&Rs(n,a,"")}else for(const r in t)s[r]==null&&Rs(n,r,"");for(const r in s)r==="display"&&(l=!0),Rs(n,r,s[r])}else if(o){if(t!==s){const r=n[pa];r&&(s+=";"+r),n.cssText=s,l=ha.test(s)}}else t&&e.removeAttribute("style");So in e&&(e[So]=l?n.display:"",e[fa]&&(n.display="none"))}const To=/\s*!important$/;function Rs(e,t,s){if(ee(s))s.forEach(n=>Rs(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=ma(e,t);To.test(s)?e.setProperty(jt(n),s.replace(To,""),"important"):e[n]=s}}const Mo=["Webkit","Moz","ms"],bn={};function ma(e,t){const s=bn[t];if(s)return s;let n=Je(t);if(n!=="filter"&&n in e)return bn[t]=n;n=Bo(n);for(let o=0;o<Mo.length;o++){const l=Mo[o]+n;if(l in e)return bn[t]=l}return t}const Eo="http://www.w3.org/1999/xlink";function Oo(e,t,s,n,o,l=mi(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(Eo,t.slice(6,t.length)):e.setAttributeNS(Eo,t,s):s==null||l&&!Wo(s)?e.removeAttribute(t):e.setAttribute(t,l?"":it(s)?String(s):s)}function Ao(e,t,s,n,o){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?Gl(s):s);return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const a=l==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(a!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let r=!1;if(s===""||s==null){const a=typeof e[t];a==="boolean"?s=Wo(s):s==null&&a==="string"?(s="",r=!0):a==="number"&&(s=0,r=!0)}try{e[t]=s}catch{}r&&e.removeAttribute(o||t)}function Pt(e,t,s,n){e.addEventListener(t,s,n)}function ga(e,t,s,n){e.removeEventListener(t,s,n)}const Io=Symbol("_vei");function _a(e,t,s,n,o=null){const l=e[Io]||(e[Io]={}),r=l[t];if(n&&r)r.value=n;else{const[a,c]=ba(t);if(n){const v=l[t]=wa(n,o);Pt(e,a,v,c)}else r&&(ga(e,a,r,c),l[t]=void 0)}}const Po=/(?:Once|Passive|Capture)$/;function ba(e){let t;if(Po.test(e)){t={};let n;for(;n=e.match(Po);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):jt(e.slice(2)),t]}let yn=0;const ya=Promise.resolve(),xa=()=>yn||(ya.then(()=>yn=0),yn=Date.now());function wa(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Qe($a(n,s.value),t,5,[n])};return s.value=e,s.attached=xa(),s}function $a(e,t){if(ee(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>o=>!o._stopped&&n&&n(o))}else return t}const Lo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ca=(e,t,s,n,o,l)=>{const r=o==="svg";t==="class"?da(e,n,r):t==="style"?va(e,s,n):Ys(t)?Fn(t)||_a(e,t,s,n,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ka(e,t,n,r))?(Ao(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Oo(e,t,n,r,l,t!=="value")):e._isVueCE&&(Sa(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ye(n)))?Ao(e,Je(t),n,l,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Oo(e,t,n,r))};function ka(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Lo(t)&&oe(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Lo(t)&&ye(s)?!1:t in e}function Sa(e,t){const s=e._def.props;if(!s)return!1;const n=Je(t);return Array.isArray(s)?s.some(o=>Je(o)===n):Object.keys(s).some(o=>Je(o)===n)}const qs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ee(t)?s=>Ps(t,s):t};function Ta(e){e.target.composing=!0}function Fo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gt=Symbol("_assign");function No(e,t,s){return t&&(e=e.trim()),s&&(e=Zs(e)),e}const Qt={created(e,{modifiers:{lazy:t,trim:s,number:n}},o){e[Gt]=qs(o);const l=n||o.props&&o.props.type==="number";Pt(e,t?"change":"input",r=>{r.target.composing||e[Gt](No(e.value,s,l))}),(s||l)&&Pt(e,"change",()=>{e.value=No(e.value,s,l)}),t||(Pt(e,"compositionstart",Ta),Pt(e,"compositionend",Fo),Pt(e,"change",Fo))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:o,number:l}},r){if(e[Gt]=qs(r),e.composing)return;const a=(l||e.type==="number")&&!/^0\d/.test(e.value)?Zs(e.value):e.value,c=t??"";a!==c&&(document.activeElement===e&&e.type!=="range"&&(n&&t===s||o&&e.value.trim()===c)||(e.value=c))}},Ma={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const o=Qs(t);Pt(e,"change",()=>{const l=Array.prototype.filter.call(e.options,r=>r.selected).map(r=>s?Zs(Js(r)):Js(r));e[Gt](e.multiple?o?new Set(l):l:l[0]),e._assigning=!0,ul(()=>{e._assigning=!1})}),e[Gt]=qs(n)},mounted(e,{value:t}){Ro(e,t)},beforeUpdate(e,t,s){e[Gt]=qs(s)},updated(e,{value:t}){e._assigning||Ro(e,t)}};function Ro(e,t){const s=e.multiple,n=ee(t);if(!(s&&!n&&!Qs(t))){for(let o=0,l=e.options.length;o<l;o++){const r=e.options[o],a=Js(r);if(s)if(n){const c=typeof a;c==="string"||c==="number"?r.selected=t.some(v=>String(v)===String(a)):r.selected=_i(t,a)>-1}else r.selected=t.has(a);else if(Ss(Js(r),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Js(e){return"_value"in e?e._value:e.value}const Ea=["ctrl","shift","alt","meta"],Oa={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ea.some(s=>e[`${s}Key`]&&!t.includes(s))},is=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((o,...l)=>{for(let r=0;r<t.length;r++){const a=Oa[t[r]];if(a&&a(o,t))return}return e(o,...l)}))},Aa=$e({patchProp:Ca},oa);let jo;function Ia(){return jo||(jo=Rr(Aa))}const Pa=((...e)=>{const t=Ia().createApp(...e),{mount:s}=t;return t.mount=n=>{const o=Fa(n);if(!o)return;const l=t._component;!oe(l)&&!l.render&&!l.template&&(l.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=s(o,!1,La(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t});function La(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Fa(e){return ye(e)?document.querySelector(e):e}const Ql=500,Xl=ae([]),Zl=ae({provides:[],injects:[]}),Qn=ae([]),ei=ae([]),ti=ae([]),si=ae(!1),ni=ae({});let Gs=!1,Xt="*",pt=null;function rs(e){return e?e.map(t=>({...t})):[]}function Na(e){return e?e.map(t=>({...t})):[]}function Ra(){if(typeof document>"u")return"";if(document.referrer)try{return new URL(document.referrer).origin}catch{}return""}function Cs(){var e;Xt&&((e=window.top)==null||e.postMessage({type:"observatory:request"},Xt))}function oi(e){var s;if(((s=e.data)==null?void 0:s.type)!=="observatory:snapshot"||Xt&&e.origin!==Xt)return;const t=e.data.data;Xl.value=rs(t.fetch),Zl.value=t.provideInject?{provides:rs(t.provideInject.provides),injects:rs(t.provideInject.injects)}:{provides:[],injects:[]},Qn.value=rs(t.composables),ei.value=Na(t.renders),ti.value=rs(t.transitions),ni.value=t.features||{},si.value=!0}function li(){document.visibilityState==="hidden"?pt!==null&&(window.clearInterval(pt),pt=null):pt===null&&Gs&&(pt=window.setInterval(Cs,Ql),Cs())}function ja(){Gs||typeof window>"u"||(Gs=!0,Xt=Ra(),window.addEventListener("message",oi),document.addEventListener("visibilitychange",li),pt=window.setInterval(Cs,Ql),Cs())}function Da(){pt!==null&&(window.clearInterval(pt),pt=null),window.removeEventListener("message",oi),document.removeEventListener("visibilitychange",li),Gs=!1}function ms(){return Xt}function Ha(){Qn.value=[]}function Zt(){return ja(),{fetch:Xl,provideInject:Zl,composables:Qn,renders:ei,transitions:ti,features:ni,connected:si,refresh:Cs,clearComposables:Ha}}const Va={class:"view"},Ua={class:"stats-row"},Ba={class:"stat-card"},Ka={class:"stat-val"},Wa={class:"stat-card"},za={class:"stat-val",style:{color:"var(--teal)"}},qa={class:"stat-card"},Ja={class:"stat-val",style:{color:"var(--amber)"}},Ga={class:"stat-card"},Ya={class:"stat-val",style:{color:"var(--red)"}},Qa={class:"toolbar"},Xa={class:"split"},Za={class:"table-wrap"},ec={class:"data-table"},tc=["onClick"],sc={class:"mono",style:{"font-size":"11px",color:"var(--text2)"}},nc=["title"],oc={class:"muted text-sm"},lc={class:"mono text-sm"},ic={style:{height:"4px",background:"var(--bg2)","border-radius":"2px",overflow:"hidden"}},rc={key:0},ac={colspan:"7",style:{"text-align":"center",color:"var(--text3)",padding:"24px"}},cc={key:0,class:"detail-panel"},uc={class:"detail-header"},dc={class:"mono bold",style:{"font-size":"12px"}},fc={class:"flex gap-2"},pc={class:"meta-grid"},hc={class:"muted text-sm"},vc={class:"mono text-sm",style:{"word-break":"break-all"}},mc={class:"payload-box"},gc={class:"mono text-sm muted"},_c={key:1,class:"detail-empty"},bc={class:"waterfall"},yc={class:"waterfall-header"},xc={key:0,class:"waterfall-body"},wc={class:"mono muted text-sm",style:{width:"140px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","flex-shrink":"0"}},$c={class:"wf-track"},Cc={class:"mono muted text-sm",style:{width:"44px","text-align":"right","flex-shrink":"0"}},kc=Rt({__name:"FetchDashboard",setup(e){const{fetch:t,connected:s}=Zt(),n=ae("all"),o=ae(""),l=ae(null),r=ae(!0),a=re(()=>{const T=[...t.value].sort((B,N)=>B.startTime-N.startTime),D=T.length>0?T[0].startTime:0;return T.map(B=>({...B,startOffset:Math.max(0,B.startTime-D)}))}),c=re(()=>a.value.find(T=>T.id===l.value)??null),v=re(()=>({ok:a.value.filter(T=>T.status==="ok"||T.status==="cached").length,pending:a.value.filter(T=>T.status==="pending").length,error:a.value.filter(T=>T.status==="error").length})),d=re(()=>a.value.filter(T=>{if(n.value!=="all"&&T.status!==n.value)return!1;const D=o.value.toLowerCase();return!(D&&!T.key.toLowerCase().includes(D)&&!T.url.toLowerCase().includes(D))})),g=re(()=>{if(!c.value)return[];const T=c.value;return[["url",T.url],["status",T.status],["origin",T.origin],["duration",T.ms!=null?`${T.ms}ms`:"—"],["size",T.size?Y(T.size):"—"],["cached",T.cached?"yes":"no"]]}),E=re(()=>{if(!c.value)return"";const T=c.value.payload;if(T===void 0)return"(no payload captured yet)";try{return JSON.stringify(T,null,2)}catch{return String(T)}});function y(T){return{ok:"badge-ok",error:"badge-err",pending:"badge-warn",cached:"badge-gray"}[T]??"badge-gray"}function x(T){return{ok:"var(--teal)",error:"var(--red)",pending:"var(--amber)",cached:"var(--border)"}[T]??"var(--border)"}function F(T){const D=a.value.filter(N=>N.ms!=null).map(N=>N.ms),B=D.length>0?Math.max(...D,1):1;return T.ms!=null?Math.max(4,Math.round(T.ms/B*100)):4}function J(){const T=a.value.filter(B=>B.ms!=null);return T.length>0?Math.max(...T.map(B=>B.startOffset+B.ms),1):1}function Q(T){const D=J();return Math.min(98,Math.round(T.startOffset/D*100))}function U(T){if(T.ms==null)return 2;const D=J(),B=Q(T);return Math.min(100-B,Math.max(2,Math.round(T.ms/D*100)))}function Y(T){return T<1024?`${T}B`:`${(T/1024).toFixed(1)}KB`}return(T,D)=>(S(),M("div",Va,[i("div",Ua,[i("div",Ba,[D[7]||(D[7]=i("div",{class:"stat-label"},"total",-1)),i("div",Ka,b(a.value.length),1)]),i("div",Wa,[D[8]||(D[8]=i("div",{class:"stat-label"},"success",-1)),i("div",za,b(v.value.ok),1)]),i("div",qa,[D[9]||(D[9]=i("div",{class:"stat-label"},"pending",-1)),i("div",Ja,b(v.value.pending),1)]),i("div",Ga,[D[10]||(D[10]=i("div",{class:"stat-label"},"error",-1)),i("div",Ya,b(v.value.error),1)])]),i("div",Qa,[i("button",{class:ne({active:n.value==="all"}),onClick:D[0]||(D[0]=B=>n.value="all")},"all",2),i("button",{class:ne({"danger-active":n.value==="error"}),onClick:D[1]||(D[1]=B=>n.value="error")},"errors",2),i("button",{class:ne({active:n.value==="pending"}),onClick:D[2]||(D[2]=B=>n.value="pending")},"pending",2),i("button",{class:ne({active:n.value==="cached"}),onClick:D[3]||(D[3]=B=>n.value="cached")},"cached",2),Nt(i("input",{"onUpdate:modelValue":D[4]||(D[4]=B=>o.value=B),type:"search",placeholder:"search key or url…",style:{"max-width":"240px","margin-left":"auto"}},null,512),[[Qt,o.value]])]),i("div",Xa,[i("div",Za,[i("table",ec,[D[11]||(D[11]=i("thead",null,[i("tr",null,[i("th",null,"key"),i("th",null,"url"),i("th",null,"status"),i("th",null,"origin"),i("th",null,"size"),i("th",null,"time"),i("th",{style:{"min-width":"80px"}},"bar")])],-1)),i("tbody",null,[(S(!0),M(ce,null,be(d.value,B=>{var N;return S(),M("tr",{key:B.id,class:ne({selected:((N=c.value)==null?void 0:N.id)===B.id}),onClick:O=>l.value=B.id},[i("td",null,[i("span",sc,b(B.key),1)]),i("td",null,[i("span",{class:"mono",style:{"font-size":"11px","max-width":"200px",display:"block",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},title:B.url},b(B.url),9,nc)]),i("td",null,[i("span",{class:ne(["badge",y(B.status)])},b(B.status),3)]),i("td",null,[i("span",{class:ne(["badge",B.origin==="ssr"?"badge-info":"badge-gray"])},b(B.origin),3)]),i("td",oc,b(B.size?Y(B.size):"—"),1),i("td",lc,b(B.ms!=null?`${B.ms}ms`:"—"),1),i("td",null,[i("div",ic,[i("div",{style:Ce({width:`${F(B)}%`,background:x(B.status),height:"100%",borderRadius:"2px"})},null,4)])])],10,tc)}),128)),d.value.length?se("",!0):(S(),M("tr",rc,[i("td",ac,b(wt(s)?"No fetches recorded yet.":"Waiting for connection to the Nuxt app…"),1)]))])])]),c.value?(S(),M("div",cc,[i("div",uc,[i("span",dc,b(c.value.key),1),i("div",fc,[i("button",{onClick:D[5]||(D[5]=B=>l.value=null)},"×")])]),i("div",pc,[(S(!0),M(ce,null,be(g.value,([B,N])=>(S(),M(ce,{key:B},[i("span",hc,b(B),1),i("span",vc,b(N),1)],64))),128))]),D[12]||(D[12]=i("div",{class:"section-label"},"payload",-1)),i("pre",mc,b(E.value),1),D[13]||(D[13]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"source",-1)),i("div",gc,b(c.value.file)+":"+b(c.value.line),1)])):(S(),M("div",_c,"select a call to inspect"))]),i("div",bc,[i("div",yc,[D[14]||(D[14]=i("div",{class:"section-label",style:{"margin-top":"0","margin-bottom":"0"}},"waterfall",-1)),i("button",{class:ne({active:r.value}),onClick:D[6]||(D[6]=B=>r.value=!r.value)},b(r.value?"hide":"show"),3)]),r.value?(S(),M("div",xc,[(S(!0),M(ce,null,be(a.value,B=>(S(),M("div",{key:B.id,class:"wf-row"},[i("span",wc,b(B.key),1),i("div",$c,[i("div",{class:"wf-bar",style:Ce({left:`${Q(B)}%`,width:`${Math.max(2,U(B))}%`,background:x(B.status)})},null,4)]),i("span",Cc,b(B.ms!=null?`${B.ms}ms`:"—"),1)]))),128))])):se("",!0)])]))}}),es=(e,t)=>{const s=e.__vccOpts||e;for(const[n,o]of t)s[n]=o;return s},Sc=es(kc,[["__scopeId","data-v-4f9bcc52"]]),Tc={class:"view"},Mc={class:"toolbar"},Ec=["onClick"],Oc={class:"split"},Ac={class:"graph-area"},Ic={key:0,class:"canvas-stage"},Pc=["width","height","viewBox"],Lc=["d"],Fc=["onClick"],Nc={class:"mono node-label"},Rc={key:0,class:"badge badge-ok badge-xs"},jc={key:1,class:"badge badge-err badge-xs"},Dc={key:1,class:"graph-empty"},Hc={key:0,class:"detail-panel"},Vc={class:"detail-header"},Uc={class:"mono bold",style:{"font-size":"12px"}},Bc={key:0,class:"detail-section"},Kc={class:"section-label"},Wc={class:"detail-list"},zc={class:"row-main"},qc={class:"mono text-sm row-key"},Jc=["title"],Gc=["onClick"],Yc={key:0,class:"row-warning"},Qc={key:1,class:"row-consumers"},Xc={key:0,class:"muted text-sm"},Zc={key:2,class:"muted text-sm",style:{padding:"2px 0","font-size":"11px"}},eu={key:3,class:"value-box"},tu={class:"section-label"},su={class:"detail-list"},nu={class:"mono text-sm row-key"},ou={key:0,class:"badge badge-ok"},lu={key:1,class:"badge badge-err"},iu=["title"],ru={key:2,class:"muted text-sm",style:{"margin-top":"8px"}},au={key:1,class:"detail-empty"},Vt=140,Ut=32,cu=72,Bt=18,uu=Rt({__name:"ProvideInjectGraph",setup(e){const{provideInject:t,connected:s}=Zt();function n(w){return w.injects.some(m=>!m.ok)?"var(--red)":w.type==="both"?"var(--blue)":w.type==="provider"?"var(--teal)":"var(--text3)"}function o(w,m){return m==="all"?!0:m==="warn"?w.injects.some(_=>!_.ok):m==="shadow"?w.provides.some(_=>_.isShadowing):w.provides.some(_=>_.key===m)||w.injects.some(_=>_.key===m)}function l(w,m){if(!m)return!0;const _=m.toLowerCase();return w.label.toLowerCase().includes(_)||w.componentName.toLowerCase().includes(_)||w.provides.some(G=>G.key.toLowerCase().includes(_))||w.injects.some(G=>G.key.toLowerCase().includes(_))}function r(w){let m=0;const _=[w];for(;_.length;){const G=_.pop();G.children.length===0?m++:_.push(...G.children)}return m}function a(w){if(typeof w=="string")return w;try{return JSON.stringify(w)}catch{return String(w)}}function c(w){return typeof w=="object"&&w!==null}function v(w){if(w===null)return"null";if(Array.isArray(w))return`Array(${w.length})`;if(typeof w=="object"){const m=Object.keys(w);return m.length?`{ ${m.join(", ")} }`:"{}"}return a(w)}function d(w){if(!c(w))return a(w);try{return JSON.stringify(w,null,2)}catch{return a(w)}}function g(w,m,_){return`${w}:${m}:${_}`}function E(w){return w.split("/").pop()??w}function y(w){var _;if(!w||w==="unknown")return;const m=ms();m&&((_=window.top)==null||_.postMessage({type:"observatory:open-in-editor",file:w},m))}function x(w){return String(w.componentUid)}const F=re(()=>{const w=new Map,m=new Map;function _(R){const Z=x(R),ge=w.get(Z);if(ge)return ge;const _e={id:Z,label:E(R.componentFile),componentName:R.componentName??E(R.componentFile),componentFile:R.componentFile,type:"consumer",provides:[],injects:[],children:[]};return w.set(Z,_e),m.set(Z,R.parentUid!==void 0?String(R.parentUid):null),_e}const G=new Map;for(const R of t.value.injects){const Z=G.get(R.key)??[];Z.push(R),G.set(R.key,Z)}const ie=new Map;for(const R of t.value.provides)ie.set(R.componentUid,R.componentName);for(const R of t.value.injects)ie.set(R.componentUid,R.componentName);for(const R of t.value.provides){const Z=_(R),ge=G.get(R.key)??[];Z.provides.push({key:R.key,val:v(R.valueSnapshot),raw:R.valueSnapshot,reactive:R.isReactive,complex:c(R.valueSnapshot),scope:R.scope??"component",isShadowing:R.isShadowing??!1,consumerUids:ge.map(_e=>_e.componentUid),consumerNames:ge.map(_e=>_e.componentName)})}for(const R of t.value.injects)_(R).injects.push({key:R.key,from:R.resolvedFromFile??null,fromName:R.resolvedFromUid!==void 0?ie.get(R.resolvedFromUid)??null:null,ok:R.resolved});for(const R of w.values())R.injects.some(Z=>!Z.ok)?R.type="error":R.provides.length&&R.injects.length?R.type="both":R.provides.length?R.type="provider":R.type="consumer";const ue=[];for(const[R,Z]of w.entries()){const ge=m.get(R),_e=ge?w.get(ge):void 0;_e?_e.children.push(Z):ue.push(Z)}return ue}),J=ae("all"),Q=ae(""),U=ae(null),Y=ae(new Set);xt(U,()=>{Y.value=new Set});function T(w){const m=new Set(Y.value);m.has(w)?m.delete(w):m.add(w),Y.value=m}const D=re(()=>{const w=new Set,m=[...F.value];for(;m.length;){const _=m.pop();_.provides.forEach(G=>w.add(G.key)),_.injects.forEach(G=>w.add(G.key)),m.push(..._.children)}return[...w]}),B=re(()=>{function w(m){const _=[],G=[m];for(;G.length;){const ue=G.pop();_.push(ue);for(let R=ue.children.length-1;R>=0;R--)G.push(ue.children[R])}const ie=new Map;for(let ue=_.length-1;ue>=0;ue--){const R=_[ue],Z=R.children.map(_e=>ie.get(_e)??null).filter(_e=>_e!==null);!(o(R,J.value)&&l(R,Q.value))&&!Z.length?ie.set(R,null):ie.set(R,{...R,children:Z})}return ie.get(m)??null}return F.value.map(w).filter(Boolean)});xt([B,U],([w,m])=>{if(!m)return;const _=new Set,G=[...w];for(;G.length;){const ie=G.pop();_.add(ie.id),G.push(...ie.children)}_.has(m.id)||(U.value=null)});const N=re(()=>{const w=[],m=Bt;let _=m;for(const G of B.value){const ie=[{node:G,depth:0,slotLeft:_,parentId:null}];for(;ie.length;){const{node:R,depth:Z,slotLeft:ge,parentId:_e}=ie.pop(),Ne=r(R)*(Vt+Bt)-Bt;w.push({data:R,parentId:_e,x:Math.round(ge+Ne/2),y:Math.round(m+Z*(Ut+cu)+Ut/2)});let Re=ge;const qe=[];for(const we of R.children){const Xe=r(we);qe.push({node:we,depth:Z+1,slotLeft:Re,parentId:R.id}),Re+=Xe*(Vt+Bt)}for(let we=qe.length-1;we>=0;we--)ie.push(qe[we])}const ue=r(G);_+=ue*(Vt+Bt)+Bt*2}return w}),O=re(()=>N.value.reduce((w,m)=>Math.max(w,m.x+Vt/2+20),520)),C=re(()=>N.value.reduce((w,m)=>Math.max(w,m.y+Ut/2+20),200)),le=re(()=>{const w=new Map(N.value.map(m=>[m.data.id,m]));return N.value.filter(m=>m.parentId!==null).map(m=>{const _=w.get(m.parentId);return{id:`${_.data.id}--${m.data.id}`,x1:_.x,y1:_.y+Ut/2,x2:m.x,y2:m.y-Ut/2}})});return(w,m)=>(S(),M("div",Tc,[i("div",Mc,[i("button",{class:ne({active:J.value==="all"}),onClick:m[0]||(m[0]=_=>J.value="all")},"all keys",2),(S(!0),M(ce,null,be(D.value,_=>(S(),M("button",{key:_,style:{"font-family":"var(--mono)"},class:ne({active:J.value===_}),onClick:G=>J.value=_},b(_),11,Ec))),128)),i("button",{style:{"margin-left":"auto"},class:ne({"danger-active":J.value==="shadow"}),onClick:m[1]||(m[1]=_=>J.value=J.value==="shadow"?"all":"shadow")}," shadowed ",2),i("button",{class:ne({"danger-active":J.value==="warn"}),onClick:m[2]||(m[2]=_=>J.value=J.value==="warn"?"all":"warn")}," warnings ",2),Nt(i("input",{"onUpdate:modelValue":m[3]||(m[3]=_=>Q.value=_),type:"search",placeholder:"search component or key…",style:{"max-width":"200px"}},null,512),[[Qt,Q.value]])]),i("div",Oc,[i("div",Ac,[m[6]||(m[6]=Wr('<div class="legend" data-v-0c07531b><span class="dot" style="background:var(--teal);" data-v-0c07531b></span><span data-v-0c07531b>provides</span><span class="dot" style="background:var(--blue);" data-v-0c07531b></span><span data-v-0c07531b>both</span><span class="dot" style="background:var(--text3);" data-v-0c07531b></span><span data-v-0c07531b>injects</span><span class="dot" style="background:var(--red);" data-v-0c07531b></span><span data-v-0c07531b>missing provider</span></div>',1)),N.value.length?(S(),M("div",Ic,[i("div",{class:"canvas-wrap",style:Ce({width:`${O.value}px`,height:`${C.value}px`})},[(S(),M("svg",{class:"edges-svg",width:O.value,height:C.value,viewBox:`0 0 ${O.value} ${C.value}`},[(S(!0),M(ce,null,be(le.value,_=>(S(),M("path",{key:_.id,d:`M ${_.x1},${_.y1} C ${_.x1},${(_.y1+_.y2)/2} ${_.x2},${(_.y1+_.y2)/2} ${_.x2},${_.y2}`,class:"edge",fill:"none"},null,8,Lc))),128))],8,Pc)),(S(!0),M(ce,null,be(N.value,_=>{var G;return S(),M("div",{key:_.data.id,class:ne(["graph-node",{"is-selected":((G=U.value)==null?void 0:G.id)===_.data.id}]),style:Ce({left:`${_.x-Vt/2}px`,top:`${_.y-Ut/2}px`,width:`${Vt}px`,"--node-color":n(_.data)}),onClick:ie=>U.value=_.data},[i("span",{class:"node-dot",style:Ce({background:n(_.data)})},null,4),i("span",Nc,b(_.data.label),1),_.data.provides.length?(S(),M("span",Rc," +"+b(_.data.provides.length),1)):se("",!0),_.data.injects.some(ie=>!ie.ok)?(S(),M("span",jc,"!")):se("",!0)],14,Fc)}),128))],4)])):(S(),M("div",Dc,b(wt(s)?"No components match the current provide/inject filter.":"Waiting for connection to the Nuxt app…"),1))]),U.value?(S(),M("div",Hc,[i("div",Vc,[i("span",Uc,b(U.value.label),1),U.value.componentFile&&U.value.componentFile!=="unknown"?(S(),M("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:m[4]||(m[4]=_=>y(U.value.componentFile))}," open ↗ ")):se("",!0),i("button",{onClick:m[5]||(m[5]=_=>U.value=null)},"×")]),U.value.provides.length?(S(),M("div",Bc,[i("div",Kc,"provides ("+b(U.value.provides.length)+")",1),i("div",Wc,[(S(!0),M(ce,null,be(U.value.provides,(_,G)=>(S(),M("div",{key:g(U.value.id,_.key,G),class:"provide-row"},[i("div",zc,[i("span",qc,b(_.key),1),i("span",{class:"mono text-sm muted row-value-preview",title:_.val},b(_.val),9,Jc),i("span",{class:ne(["badge scope-badge",`scope-${_.scope}`])},b(_.scope),3),i("span",{class:ne(["badge",_.reactive?"badge-ok":"badge-gray"])},b(_.reactive?"reactive":"static"),3),_.complex?(S(),M("button",{key:0,class:"row-toggle mono",onClick:ie=>T(g(U.value.id,_.key,G))},b(Y.value.has(g(U.value.id,_.key,G))?"hide":"view"),9,Gc)):se("",!0)]),_.isShadowing?(S(),M("div",Yc,"shadows a parent provide with the same key")):se("",!0),_.consumerNames.length?(S(),M("div",Qc,[m[7]||(m[7]=i("span",{class:"muted text-sm"},"used by:",-1)),(S(!0),M(ce,null,be(_.consumerNames,ie=>(S(),M("span",{key:ie,class:"consumer-chip mono"},b(ie),1))),128)),_.consumerNames.length?se("",!0):(S(),M("span",Xc,"no consumers"))])):(S(),M("div",Zc,"no consumers detected")),_.complex&&Y.value.has(g(U.value.id,_.key,G))?(S(),M("pre",eu,b(d(_.raw)),1)):se("",!0)]))),128))])])):se("",!0),U.value.injects.length?(S(),M("div",{key:1,class:"detail-section",style:Ce({marginTop:U.value.provides.length?"10px":"0"})},[i("div",tu,"injects ("+b(U.value.injects.length)+")",1),i("div",su,[(S(!0),M(ce,null,be(U.value.injects,_=>(S(),M("div",{key:_.key,class:ne(["inject-row",{"inject-miss":!_.ok}])},[i("span",nu,b(_.key),1),_.ok?(S(),M("span",ou,"resolved")):(S(),M("span",lu,"no provider")),i("span",{class:ne(["mono text-sm row-from",_.fromName?"":"muted"]),title:_.from??"undefined"},b(_.fromName??_.from??"undefined"),11,iu)],2))),128))])],4)):se("",!0),!U.value.provides.length&&!U.value.injects.length?(S(),M("div",ru," no provide/inject in this component ")):se("",!0)])):(S(),M("div",au,b(wt(s)?"Click a node to inspect.":"Waiting for connection to the Nuxt app…"),1))])]))}}),du=es(uu,[["__scopeId","data-v-0c07531b"]]),fu={class:"view"},pu={class:"stats-row"},hu={class:"stat-card"},vu={class:"stat-val"},mu={class:"stat-card"},gu={class:"stat-val",style:{color:"var(--teal)"}},_u={class:"stat-card"},bu={class:"stat-val",style:{color:"var(--red)"}},yu={class:"stat-card"},xu={class:"stat-val"},wu={class:"toolbar"},$u={class:"list"},Cu=["onClick"],ku={class:"comp-header"},Su={class:"comp-identity"},Tu={class:"comp-name mono"},Mu={class:"comp-file muted mono"},Eu={class:"comp-meta"},Ou={key:0,class:"badge badge-warn"},Au={key:1,class:"badge badge-warn"},Iu={key:2,class:"badge badge-err"},Pu={key:3,class:"badge badge-ok"},Lu={key:4,class:"badge badge-gray"},Fu={key:0,class:"refs-preview"},Nu=["title"],Ru={class:"ref-chip-key"},ju={class:"ref-chip-val"},Du={key:0,class:"ref-chip-shared-dot",title:"global"},Hu={key:0,class:"muted text-sm"},Vu={key:0,class:"leak-banner"},Uu={key:1,class:"global-banner"},Bu={key:2,class:"muted text-sm",style:{padding:"2px 0 6px"}},Ku=["title","onClick"],Wu={class:"mono text-sm ref-val"},zu={key:0,class:"badge badge-amber text-xs"},qu=["onClick"],Ju={class:"section-label",style:{"margin-top":"10px"}},Gu={class:"muted",style:{"font-weight":"400","text-transform":"none","letter-spacing":"0"}},Yu={class:"history-list"},Qu={class:"history-time mono muted"},Xu={class:"history-key mono"},Zu={class:"history-val mono"},ed={key:0,class:"muted text-sm",style:{padding:"2px 0"}},td={class:"muted text-sm",style:{"min-width":"120px"}},sd={class:"lc-row"},nd={class:"mono text-sm"},od={class:"lc-row"},ld={class:"mono text-sm muted"},id={class:"lc-row"},rd={class:"mono text-sm muted",style:{display:"flex","align-items":"center",gap:"6px"}},ad=["onClick"],cd={class:"lc-row"},ud={class:"mono text-sm muted"},dd={class:"lc-row"},fd={class:"mono text-sm"},pd={class:"lc-row"},hd={class:"mono text-sm"},vd={key:0,class:"muted text-sm",style:{padding:"16px 0"}},md={key:0,class:"lookup-panel"},gd={class:"lookup-header"},_d={class:"mono text-sm"},bd={class:"muted text-sm"},yd={key:0,class:"muted text-sm",style:{padding:"6px 0"}},xd={class:"mono text-sm"},wd={class:"muted text-sm"},$d={class:"muted text-sm",style:{"margin-left":"auto"}},Cd={class:"edit-dialog"},kd={class:"edit-dialog-header"},Sd={class:"mono"},Td={key:0,class:"edit-error text-sm"},Md={class:"edit-actions"},Ed=Rt({__name:"ComposableTracker",setup(e){const{composables:t,connected:s,clearComposables:n}=Zt();function o(){var O;const N=ms();N&&(n(),(O=window.top)==null||O.postMessage({type:"observatory:clear-composables"},N))}function l(N){if(N===null)return"null";if(N===void 0)return"undefined";if(typeof N=="string")return`"${N}"`;if(typeof N=="object")try{const O=JSON.stringify(N);return O.length>80?O.slice(0,80)+"…":O}catch{return String(N)}return String(N)}function r(N){return N.split("/").pop()??N}function a(N){var C;if(!N||N==="unknown")return;const O=ms();O&&((C=window.top)==null||C.postMessage({type:"observatory:open-in-editor",file:N},O))}const c=ae("all"),v=ae(""),d=ae(null),g=re(()=>t.value),E=re(()=>({mounted:g.value.filter(N=>N.status==="mounted").length,leaks:g.value.filter(N=>N.leak).length})),y=re(()=>g.value.filter(N=>{if(c.value==="leak"&&!N.leak||c.value==="mounted"&&N.status!=="mounted"||c.value==="unmounted"&&N.status!=="unmounted")return!1;const O=v.value.toLowerCase();if(O){const C=N.name.toLowerCase().includes(O),le=N.componentFile.toLowerCase().includes(O),w=Object.keys(N.refs).some(_=>_.toLowerCase().includes(O)),m=Object.values(N.refs).some(_=>{try{return String(JSON.stringify(_.value)).toLowerCase().includes(O)}catch{return!1}});if(!C&&!le&&!w&&!m)return!1}return!0}));function x(N){return[{label:"onMounted",ok:N.lifecycle.hasOnMounted,status:N.lifecycle.hasOnMounted?"registered":"not used"},{label:"onUnmounted",ok:N.lifecycle.hasOnUnmounted,status:N.lifecycle.hasOnUnmounted?"registered":"missing"},{label:"watchers cleaned",ok:N.lifecycle.watchersCleaned,status:N.lifecycle.watchersCleaned?"all stopped":"NOT stopped"},{label:"intervals cleared",ok:N.lifecycle.intervalsCleaned,status:N.lifecycle.intervalsCleaned?"all cleared":"NOT cleared"}]}function F(N){return N==="computed"?"badge-info":N==="reactive"?"badge-purple":"badge-gray"}const J=ae(null),Q=re(()=>{if(!J.value)return[];const N=J.value;return g.value.filter(O=>N in O.refs)});function U(N){J.value=J.value===N?null:N}const Y=ae(null),T=ae("");function D(N,O,C){T.value="",Y.value={id:N,key:O,rawValue:JSON.stringify(C,null,2)}}function B(){var C;if(!Y.value)return;let N;try{N=JSON.parse(Y.value.rawValue),T.value=""}catch(le){T.value=`Invalid JSON: ${le.message}`;return}const O=ms();O&&((C=window.top)==null||C.postMessage({type:"observatory:edit-composable",id:Y.value.id,key:Y.value.key,value:N},O),Y.value=null)}return(N,O)=>(S(),M("div",fu,[i("div",pu,[i("div",hu,[O[11]||(O[11]=i("div",{class:"stat-label"},"total",-1)),i("div",vu,b(g.value.length),1)]),i("div",mu,[O[12]||(O[12]=i("div",{class:"stat-label"},"mounted",-1)),i("div",gu,b(E.value.mounted),1)]),i("div",_u,[O[13]||(O[13]=i("div",{class:"stat-label"},"leaks",-1)),i("div",bu,b(E.value.leaks),1)]),i("div",yu,[O[14]||(O[14]=i("div",{class:"stat-label"},"instances",-1)),i("div",xu,b(g.value.length),1)])]),i("div",wu,[i("button",{class:ne({active:c.value==="all"}),onClick:O[0]||(O[0]=C=>c.value="all")},"all",2),i("button",{class:ne({active:c.value==="mounted"}),onClick:O[1]||(O[1]=C=>c.value="mounted")},"mounted",2),i("button",{class:ne({"danger-active":c.value==="leak"}),onClick:O[2]||(O[2]=C=>c.value="leak")},"leaks only",2),i("button",{class:ne({active:c.value==="unmounted"}),onClick:O[3]||(O[3]=C=>c.value="unmounted")},"unmounted",2),Nt(i("input",{"onUpdate:modelValue":O[4]||(O[4]=C=>v.value=C),type:"search",placeholder:"search name, file, or ref…",style:{"max-width":"220px","margin-left":"auto"}},null,512),[[Qt,v.value]]),i("button",{class:"clear-btn",title:"Clear session history",onClick:o},"clear")]),i("div",$u,[(S(!0),M(ce,null,be(y.value,C=>{var le;return S(),M("div",{key:C.id,class:ne(["comp-card",{leak:C.leak,expanded:d.value===C.id}]),onClick:w=>d.value=d.value===C.id?null:C.id},[i("div",ku,[i("div",Su,[i("span",Tu,b(C.name),1),i("span",Mu,b(r(C.componentFile)),1)]),i("div",Eu,[C.watcherCount>0&&!C.leak?(S(),M("span",Ou,b(C.watcherCount)+"w",1)):se("",!0),C.intervalCount>0&&!C.leak?(S(),M("span",Au,b(C.intervalCount)+"t",1)):se("",!0),C.leak?(S(),M("span",Iu,"leak")):C.status==="mounted"?(S(),M("span",Pu,"mounted")):(S(),M("span",Lu,"unmounted"))])]),Object.keys(C.refs).length?(S(),M("div",Fu,[(S(!0),M(ce,null,be(Object.entries(C.refs).slice(0,3),([w,m])=>{var _,G,ie;return S(),M("span",{key:w,class:ne(["ref-chip",{"ref-chip--reactive":m.type==="reactive","ref-chip--computed":m.type==="computed","ref-chip--shared":(_=C.sharedKeys)==null?void 0:_.includes(w)}]),title:(G=C.sharedKeys)!=null&&G.includes(w)?"shared global state":""},[i("span",Ru,b(w),1),i("span",ju,b(l(m.value)),1),(ie=C.sharedKeys)!=null&&ie.includes(w)?(S(),M("span",Du)):se("",!0)],10,Nu)}),128)),Object.keys(C.refs).length>3?(S(),M("span",Hu," +"+b(Object.keys(C.refs).length-3)+" more ",1)):se("",!0)])):se("",!0),d.value===C.id?(S(),M("div",{key:1,class:"comp-detail",onClick:O[5]||(O[5]=is(()=>{},["stop"]))},[C.leak?(S(),M("div",Vu,b(C.leakReason),1)):se("",!0),(le=C.sharedKeys)!=null&&le.length?(S(),M("div",Uu,[O[16]||(O[16]=i("span",{class:"global-dot"},null,-1)),i("span",null,[O[15]||(O[15]=i("strong",null,"global state",-1)),Me(" — "+b(C.sharedKeys.join(", "))+" "+b(C.sharedKeys.length===1?"is":"are")+" shared across all instances of "+b(C.name),1)])])):se("",!0),O[24]||(O[24]=i("div",{class:"section-label"},"reactive state",-1)),Object.keys(C.refs).length?se("",!0):(S(),M("div",Bu," no tracked state returned ")),(S(!0),M(ce,null,be(Object.entries(C.refs),([w,m])=>{var _;return S(),M("div",{key:w,class:"ref-row"},[i("span",{class:"mono text-sm ref-key ref-key--clickable",title:`click to see all instances exposing '${w}'`,onClick:is(G=>U(w),["stop"])},b(w),9,Ku),i("span",Wu,b(l(m.value)),1),i("span",{class:ne(["badge text-xs",F(m.type)])},b(m.type),3),(_=C.sharedKeys)!=null&&_.includes(w)?(S(),M("span",zu,"global")):se("",!0),m.type==="ref"?(S(),M("button",{key:1,class:"edit-btn",title:"Edit value",onClick:is(G=>D(C.id,w,m.value),["stop"])}," edit ",8,qu)):se("",!0)])}),128)),C.history&&C.history.length?(S(),M(ce,{key:3},[i("div",Ju,[O[17]||(O[17]=Me(" change history ",-1)),i("span",Gu," ("+b(C.history.length)+" events) ",1)]),i("div",Yu,[(S(!0),M(ce,null,be([...C.history].reverse().slice(0,20),(w,m)=>(S(),M("div",{key:m,class:"history-row"},[i("span",Qu,"+"+b((w.t/1e3).toFixed(2))+"s",1),i("span",Xu,b(w.key),1),i("span",Zu,b(l(w.value)),1)]))),128)),C.history.length>20?(S(),M("div",ed," … "+b(C.history.length-20)+" earlier events ",1)):se("",!0)])],64)):se("",!0),O[25]||(O[25]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"lifecycle",-1)),(S(!0),M(ce,null,be(x(C),w=>(S(),M("div",{key:w.label,class:"lc-row"},[i("span",{class:"lc-dot",style:Ce({background:w.ok?"var(--teal)":"var(--red)"})},null,4),i("span",td,b(w.label),1),i("span",{class:"text-sm",style:Ce({color:w.ok?"var(--teal)":"var(--red)"})},b(w.status),5)]))),128)),O[26]||(O[26]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"context",-1)),i("div",sd,[O[18]||(O[18]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"component",-1)),i("span",nd,b(r(C.componentFile)),1)]),i("div",od,[O[19]||(O[19]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"uid",-1)),i("span",ld,b(C.componentUid),1)]),i("div",id,[O[20]||(O[20]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"defined in",-1)),i("span",rd,[Me(b(C.file)+":"+b(C.line)+" ",1),i("button",{class:"jump-btn",title:"Open in editor",onClick:is(w=>a(C.file),["stop"])},"open ↗",8,ad)])]),i("div",cd,[O[21]||(O[21]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"route",-1)),i("span",ud,b(C.route),1)]),i("div",dd,[O[22]||(O[22]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"watchers",-1)),i("span",fd,b(C.watcherCount),1)]),i("div",pd,[O[23]||(O[23]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"intervals",-1)),i("span",hd,b(C.intervalCount),1)])])):se("",!0)],10,Cu)}),128)),y.value.length?se("",!0):(S(),M("div",vd,b(wt(s)?"No composables recorded yet.":"Waiting for connection to the Nuxt app…"),1))]),ke(Pn,{name:"slide"},{default:Vs(()=>[J.value?(S(),M("div",md,[i("div",gd,[i("span",_d,b(J.value),1),i("span",bd,"— "+b(Q.value.length)+" instance"+b(Q.value.length!==1?"s":""),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:O[6]||(O[6]=C=>J.value=null)},"✕")]),Q.value.length?se("",!0):(S(),M("div",yd,"No mounted instances expose this key.")),(S(!0),M(ce,null,be(Q.value,C=>(S(),M("div",{key:C.id,class:"lookup-row"},[i("span",xd,b(C.name),1),i("span",wd,b(r(C.componentFile)),1),i("span",$d,b(C.route),1)]))),128))])):se("",!0)]),_:1}),ke(Pn,{name:"fade"},{default:Vs(()=>[Y.value?(S(),M("div",{key:0,class:"edit-overlay",onClick:O[10]||(O[10]=is(C=>Y.value=null,["self"]))},[i("div",Cd,[i("div",kd,[O[27]||(O[27]=Me(" edit ",-1)),i("span",Sd,b(Y.value.key),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:O[7]||(O[7]=C=>Y.value=null)},"✕")]),O[28]||(O[28]=i("p",{class:"muted text-sm",style:{padding:"4px 0 8px"}},[Me(" Value applied immediately to the live ref. Only "),i("span",{class:"mono"},"ref"),Me(" values are writable. ")],-1)),Nt(i("textarea",{"onUpdate:modelValue":O[8]||(O[8]=C=>Y.value.rawValue=C),class:"edit-textarea",rows:"6",spellcheck:"false"},null,512),[[Qt,Y.value.rawValue]]),T.value?(S(),M("div",Td,b(T.value),1)):se("",!0),i("div",Md,[i("button",{onClick:B},"apply"),i("button",{class:"clear-btn",onClick:O[9]||(O[9]=C=>Y.value=null)},"cancel")])])])):se("",!0)]),_:1})]))}}),Od=es(Ed,[["__scopeId","data-v-bc3bc8e4"]]),Ad={class:"view"},Id={class:"controls"},Pd={class:"mode-group"},Ld={class:"threshold-group"},Fd=["min","max","step"],Nd={class:"mono text-sm"},Rd=["value"],jd={class:"stats-row"},Dd={class:"stat-card"},Hd={class:"stat-val"},Vd={class:"stat-card"},Ud={class:"stat-val"},Bd={class:"stat-card"},Kd={class:"stat-val",style:{color:"var(--red)"}},Wd={class:"stat-card"},zd={class:"stat-val"},qd={class:"inspector"},Jd={class:"roots-panel"},Gd=["onClick"],Yd={class:"root-copy"},Qd={class:"root-label mono"},Xd={class:"root-sub muted mono"},Zd={class:"root-meta mono"},ef={key:0,class:"detail-empty"},tf={class:"tree-panel"},sf={class:"tree-toolbar"},nf=["value"],of={class:"tree-frame"},lf={class:"tree-canvas"},rf={key:0,class:"detail-empty"},af={class:"detail-panel"},cf={class:"detail-header"},uf={class:"mono bold",style:{"font-size":"12px"}},df={class:"detail-pill-row"},ff={class:"detail-pill mono"},pf={class:"detail-pill mono muted"},hf={key:0,class:"detail-pill mono"},vf={key:1,class:"detail-pill mono persistent"},mf={key:2,class:"detail-pill mono hydrated"},gf={class:"detail-pill mono"},_f={class:"meta-grid"},bf={class:"mono text-sm"},yf={class:"mono text-sm"},xf={class:"mono text-sm muted",style:{display:"flex","align-items":"center",gap:"6px"}},wf={class:"mono text-sm"},$f={class:"mono text-sm"},Cf={class:"mono text-sm"},kf={class:"meta-grid"},Sf={class:"mono text-sm"},Tf={class:"mono text-sm"},Mf={class:"mono text-sm"},Ef={class:"mono text-sm"},Of={class:"mono text-sm"},Af={class:"mono text-sm"},If={class:"mono text-sm"},Pf={key:0,class:"muted text-sm"},Lf={class:"section-label",style:{"margin-top":"8px"}},Ff={class:"muted",style:{"font-weight":"400","text-transform":"none","letter-spacing":"0"}},Nf={key:1,class:"muted text-sm"},Rf={key:2,class:"timeline-list"},jf={class:"timeline-time mono muted"},Df={class:"timeline-dur mono"},Hf={key:0,class:"timeline-trigger mono muted"},Vf={class:"timeline-route mono muted",style:{"margin-left":"auto"}},Uf={key:0,class:"muted text-sm",style:{padding:"2px 0"}},Bf={key:1,class:"detail-empty"},Kf=Rt({__name:"RenderHeatmap",setup(e){const t=Rt({name:"TreeNode",props:{node:Object,mode:String,threshold:Number,selected:String,expandedIds:Object},emits:["select","toggle"],setup(f,{emit:p}){function k(z){return f.mode==="count"?z.rerenders+z.mountCount:z.avgMs}function q(z){return k(z)>=f.threshold}function V(z){return{selected:f.selected===z.id,hot:q(z)}}return()=>{var Ve,ts,ss;const z=f.node,fe=((Ve=f.expandedIds)==null?void 0:Ve.has(z.id))??!1,xe=z.children.length>0,Be=f.mode==="count"?`${z.rerenders+z.mountCount}`:`${z.avgMs.toFixed(1)}ms`,kt=f.mode==="count"?"renders":"avg",_t=[],Ae=(ts=z.element)==null?void 0:ts.toLowerCase();if(z.element&&z.element!==z.label&&!["div","span","p"].includes(Ae??"")&&_t.push(z.element),z.file!=="unknown"){const je=((ss=z.file.split("/").pop())==null?void 0:ss.replace(/\.vue$/i,""))??z.file;je!==z.label&&!_t.includes(je)&&_t.push(je)}return Se("div",{class:"tree-node"},[Se("div",{class:["tree-row",V(z)],style:{"--tree-depth":String(z.depth)},onClick:je=>{je.stopPropagation(),p("select",z)}},[Se("span",{class:"tree-rail","aria-hidden":"true"}),Se("button",{class:["tree-toggle",{empty:!xe}],disabled:!xe,onClick:je=>{je.stopPropagation(),xe&&p("toggle",z.id)}},xe?fe?"⌄":"›":""),Se("div",{class:"tree-copy"},[Se("span",{class:"tree-name mono",title:z.label},z.label),_t.length?Se("div",{class:"tree-badges"},_t.slice(0,1).map(je=>Se("span",{class:"tree-badge mono",title:je},je))):null]),Se("div",{class:"tree-metrics mono"},[z.isPersistent?Se("span",{class:"tree-persistent-pill",title:"Layout / persistent component — survives navigation"},"persistent"):null,z.isHydrationMount?Se("span",{class:"tree-hydration-pill",title:"First mount was SSR hydration — not a user-triggered render"},"hydrated"):null,Se("span",{class:"tree-metric-pill"},`${Be} ${kt}`),z.file&&z.file!=="unknown"?Se("button",{class:"tree-jump-btn",title:`Open ${z.file} in editor`,onClick:je=>{je.stopPropagation(),j(z.file)}},"↗"):null])]),fe&&xe?Se("div",{class:"tree-children"},z.children.map(je=>Se(t,{node:je,mode:f.mode,threshold:f.threshold,selected:f.selected,expandedIds:f.expandedIds,onSelect:cn=>p("select",cn),onToggle:cn=>p("toggle",cn)}))):null])}}}),{renders:s,connected:n}=Zt(),o=ae("count"),l=ae(""),r=ae(3),a=ae(16),c=re({get:()=>o.value==="count"?r.value:a.value,set:f=>{o.value==="count"?r.value=f:a.value=f}}),v=ae(!1),d=ae(!1),g=ae(""),E=ae(null),y=ae(null),x=ae(new Set),F=ae([]),J=ae(!1);function Q(f){var k;if(f.name&&f.name!=="unknown"&&!/^Component#\d+$/.test(f.name))return f.name;if(f.element)return f.element;const p=(k=f.file.split("/").pop())==null?void 0:k.replace(/\.vue$/i,"");return p&&p!=="unknown"?p:f.name&&f.name!=="unknown"?f.name:`Component#${f.uid}`}function U(f){return`${f.type}: ${f.key}`}function Y(f){const p=new Map;for(const V of f)p.set(String(V.uid),{id:String(V.uid),label:Q(V),file:V.file,element:V.element,depth:0,path:[],rerenders:V.rerenders??0,mountCount:V.mountCount??1,avgMs:V.avgMs,triggers:V.triggers.map(U),timeline:V.timeline??[],children:[],parentId:V.parentUid!==void 0?String(V.parentUid):void 0,isPersistent:!!V.isPersistent,isHydrationMount:!!V.isHydrationMount,route:V.route??"/"});const k=[];for(const V of f){const z=p.get(String(V.uid));if(!z)continue;const fe=V.parentUid!==void 0?p.get(String(V.parentUid)):void 0;fe?(z.parentLabel=fe.label,fe.children.push(z)):k.push(z)}function q(V,z=[],fe=0){V.depth=fe,V.path=[...z,V.label],V.children.forEach(xe=>q(xe,V.path,fe+1))}return k.forEach(V=>q(V)),k}function T(f){const p=[];function k(q){p.push(q),q.children.forEach(k)}return f.forEach(k),p}function D(f){return 1+f.children.reduce((p,k)=>p+D(k),0)}function B(f,p=new Set){return p.add(f.id),f.children.forEach(k=>B(k,p)),p}function N(f,p,k=[]){const q=[...k,f.id];if(f.id===p)return q;for(const V of f.children){const z=N(V,p,q);if(z)return z}return null}function O(f){if(m(f))return f;for(const p of f.children){const k=O(p);if(k)return k}return null}function C(f){if(!f)return new Set;const p=new Set;function k(q){q.children.length>0&&(p.add(q.id),q.children.forEach(k))}return k(f),p}function le(f,p){const k=C(f);if(!f||!p)return k;function q(V){const z=V.children.some(xe=>q(xe)),fe=_(V,p);return z&&k.add(V.id),fe||z}return q(f),k}function w(f){return o.value==="count"?f.rerenders+f.mountCount:f.avgMs}function m(f){return w(f)>=c.value}function _(f,p){if(!p)return!0;const k=p.toLowerCase();return f.label.toLowerCase().includes(k)||f.file.toLowerCase().includes(k)||f.path.some(q=>q.toLowerCase().includes(k))||f.triggers.some(q=>q.toLowerCase().includes(k))}function G(f,p){return p?_(f,p)||f.children.some(k=>G(k,p)):!0}function ie(f){return m(f)||f.children.some(p=>ie(p))}function ue(f){return!l.value||f.route===l.value?!0:f.timeline.some(p=>p.route===l.value)}function R(f){return ue(f)||f.children.some(p=>R(p))}function Z(f,p){const k=G(f,p),q=!v.value||ie(f),V=!l.value||R(f);return k&&q&&V}function ge(f,p){const k=f.children.map(fe=>ge(fe,p)).filter(fe=>fe!==null),q=!p||_(f,p)||k.length>0,V=!v.value||m(f)||k.length>0,z=!l.value||ue(f)||k.length>0;return!q||!V||!z?null:{...f,children:k}}const _e=re(()=>d.value?F.value:s.value),Oe=re(()=>Y(_e.value)),Ne=re(()=>new Map(Oe.value.map(f=>[f.id,f]))),Re=re(()=>T(Oe.value)),qe=re(()=>{const f=g.value.trim();return Oe.value.filter(p=>Z(p,f))}),we=re(()=>y.value?qe.value.find(f=>f.id===y.value)??Ne.value.get(y.value)??null:qe.value[0]??Oe.value[0]??null),Xe=re(()=>{const f=g.value.trim();return we.value?ge(we.value,f):null}),Ct=re(()=>Xe.value?[Xe.value]:[]),Dt=re(()=>qe.value.map((f,p)=>({id:f.id,label:`App ${p+1}`,meta:`${D(f)} nodes`,root:f}))),Es=re(()=>{const f=new Set;for(const p of Re.value){p.route&&f.add(p.route);for(const k of p.timeline)k.route&&f.add(k.route)}return[...f].sort()}),te=re(()=>Re.value.find(f=>f.id===E.value)??null),Xn=re(()=>Re.value.reduce((f,p)=>f+p.rerenders+p.mountCount,0)),u=re(()=>Re.value.filter(f=>m(f)).length),h=re(()=>{const f=Re.value.filter(p=>p.avgMs>0);return f.length?(f.reduce((p,k)=>p+k.avgMs,0)/f.length).toFixed(1):"0.0"});xt(Oe,f=>{if(!f.length){y.value=null,E.value=null,x.value=new Set,J.value=!1;return}const p=new Set(f.map(V=>V.id));(!y.value||!p.has(y.value))&&(y.value=f[0].id),E.value&&!Re.value.some(V=>V.id===E.value)&&(E.value=null);const k=new Set(Re.value.map(V=>V.id)),q=new Set([...x.value].filter(V=>k.has(V)));if(!J.value){x.value=C(we.value),J.value=!0;return}!g.value.trim()&&E.value&&we.value&&(N(we.value,E.value)??[]).forEach(z=>q.add(z)),x.value=q},{immediate:!0}),xt(g,f=>{if(!we.value)return;const p=f.trim();if(p){x.value=le(we.value,p);return}if(E.value){const k=N(we.value,E.value);x.value=k?new Set(k):C(we.value);return}x.value=C(we.value)}),xt([v,c,o,qe],()=>{if(!v.value)return;const f=qe.value[0]??null;if(!f){E.value=null;return}const p=O(f);if(!p){E.value=null;return}y.value=f.id,E.value!==p.id&&(E.value=p.id),x.value=new Set(N(f,p.id)??[f.id])});function $(f){E.value=f.id;const p=Oe.value.find(k=>B(k).has(f.id));p&&(y.value=p.id,x.value=new Set(N(p,f.id)??[p.id]))}function L(f){const p=new Set(x.value);p.has(f)?p.delete(f):p.add(f),x.value=p}function A(f){y.value=f.id,x.value=C(f),J.value=!0}function I(f){const p=f.target;g.value=(p==null?void 0:p.value)??""}function K(){if(d.value){d.value=!1,F.value=[];return}F.value=JSON.parse(JSON.stringify(s.value)),d.value=!0}function H(f){var p;return((p=f.split("/").pop())==null?void 0:p.replace(/\.vue$/i,""))??f}function j(f){var k;if(!f||f==="unknown")return;const p=ms();p&&((k=window.top)==null||k.postMessage({type:"observatory:open-in-editor",file:f},p))}function P(f){return f.path.join(" / ")}function X(f){return f<1?"<1ms":`${f.toFixed(1)}ms`}function W(f){return`+${(f/1e3).toFixed(2)}s`}return(f,p)=>(S(),M("div",Ad,[i("div",Id,[i("div",Pd,[i("button",{class:ne({active:o.value==="count"}),onClick:p[0]||(p[0]=k=>o.value="count")},"render count",2),i("button",{class:ne({active:o.value==="time"}),onClick:p[1]||(p[1]=k=>o.value="time")},"render time",2)]),i("div",Ld,[p[7]||(p[7]=i("span",{class:"muted text-sm"},"threshold",-1)),Nt(i("input",{"onUpdate:modelValue":p[2]||(p[2]=k=>c.value=k),type:"range",min:o.value==="count"?2:4,max:o.value==="count"?20:100,step:o.value==="count"?1:4,style:{width:"90px"}},null,8,Fd),[[Qt,c.value,void 0,{number:!0}]]),i("span",Nd,b(c.value)+b(o.value==="count"?"+ renders":"ms+"),1)]),i("button",{class:ne({active:v.value}),onClick:p[3]||(p[3]=k=>v.value=!v.value)},"hot only",2),Nt(i("select",{"onUpdate:modelValue":p[4]||(p[4]=k=>l.value=k),class:"route-select mono text-sm",title:"Filter by route"},[p[8]||(p[8]=i("option",{value:""},"all routes",-1)),(S(!0),M(ce,null,be(Es.value,k=>(S(),M("option",{key:k,value:k},b(k),9,Rd))),128))],512),[[Ma,l.value]]),i("button",{class:ne({active:d.value}),style:{"margin-left":"auto"},onClick:K},b(d.value?"unfreeze":"freeze snapshot"),3)]),i("div",jd,[i("div",Dd,[p[9]||(p[9]=i("div",{class:"stat-label"},"components",-1)),i("div",Hd,b(Re.value.length),1)]),i("div",Vd,[p[10]||(p[10]=i("div",{class:"stat-label"},"total renders",-1)),i("div",Ud,b(Xn.value),1)]),i("div",Bd,[p[11]||(p[11]=i("div",{class:"stat-label"},"hot",-1)),i("div",Kd,b(u.value),1)]),i("div",Wd,[p[12]||(p[12]=i("div",{class:"stat-label"},"avg time",-1)),i("div",zd,b(h.value)+"ms",1)])]),i("div",qd,[i("aside",Jd,[p[13]||(p[13]=i("div",{class:"panel-title"},"apps",-1)),(S(!0),M(ce,null,be(Dt.value,k=>(S(),M("button",{key:k.id,class:ne(["root-item",{active:y.value===k.id}]),onClick:q=>A(k.root)},[i("div",Yd,[i("span",Qd,b(k.label),1),i("span",Xd,b(k.root.label),1)]),i("span",Zd,b(k.meta),1)],10,Gd))),128)),Dt.value.length?se("",!0):(S(),M("div",ef,"no apps match"))]),i("section",tf,[i("div",sf,[i("input",{value:g.value,class:"search-input mono",placeholder:"Find components...",onInput:I},null,40,nf)]),i("div",of,[i("div",lf,[(S(!0),M(ce,null,be(Ct.value,k=>{var q;return S(),At(wt(t),{key:k.id,node:k,mode:o.value,threshold:c.value,selected:(q=te.value)==null?void 0:q.id,"expanded-ids":x.value,onSelect:$,onToggle:L},null,8,["node","mode","threshold","selected","expanded-ids"])}),128))]),Ct.value.length?se("",!0):(S(),M("div",rf,b(wt(n)?"No render activity recorded yet.":"Waiting for connection to the Nuxt app…"),1))])]),i("aside",af,[te.value?(S(),M(ce,{key:0},[i("div",cf,[i("span",uf,b(te.value.label),1),i("button",{onClick:p[5]||(p[5]=k=>E.value=null)},"×")]),i("div",df,[i("span",ff,b(te.value.rerenders+te.value.mountCount)+" render"+b(te.value.rerenders+te.value.mountCount!==1?"s":""),1),i("span",pf,b(te.value.mountCount)+" mount"+b(te.value.mountCount!==1?"s":""),1),te.value.rerenders?(S(),M("span",hf,b(te.value.rerenders)+" re-render"+b(te.value.rerenders!==1?"s":""),1)):se("",!0),te.value.isPersistent?(S(),M("span",vf,"persistent")):se("",!0),te.value.isHydrationMount?(S(),M("span",mf,"hydrated")):se("",!0),i("span",gf,b(te.value.avgMs.toFixed(1))+"ms avg",1),i("span",{class:ne(["detail-pill mono",{hot:m(te.value)}])},b(m(te.value)?"hot":"cool"),3)]),p[29]||(p[29]=i("div",{class:"section-label"},"identity",-1)),i("div",_f,[p[14]||(p[14]=i("span",{class:"muted text-sm"},"label",-1)),i("span",bf,b(te.value.label),1),p[15]||(p[15]=i("span",{class:"muted text-sm"},"path",-1)),i("span",yf,b(P(te.value)),1),p[16]||(p[16]=i("span",{class:"muted text-sm"},"file",-1)),i("span",xf,[Me(b(te.value.file)+" ",1),te.value.file&&te.value.file!=="unknown"?(S(),M("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:p[6]||(p[6]=k=>j(te.value.file))}," open ↗ ")):se("",!0)]),p[17]||(p[17]=i("span",{class:"muted text-sm"},"file name",-1)),i("span",wf,b(H(te.value.file)),1),p[18]||(p[18]=i("span",{class:"muted text-sm"},"parent",-1)),i("span",$f,b(te.value.parentLabel??"none"),1),p[19]||(p[19]=i("span",{class:"muted text-sm"},"children",-1)),i("span",Cf,b(te.value.children.length),1)]),p[30]||(p[30]=i("div",{class:"section-label"},"rendering",-1)),i("div",kf,[p[20]||(p[20]=i("span",{class:"muted text-sm"},"total renders",-1)),i("span",Sf,b(te.value.rerenders+te.value.mountCount),1),p[21]||(p[21]=i("span",{class:"muted text-sm"},"re-renders",-1)),i("span",Tf,b(te.value.rerenders),1),p[22]||(p[22]=i("span",{class:"muted text-sm"},"mounts",-1)),i("span",Mf,b(te.value.mountCount),1),p[23]||(p[23]=i("span",{class:"muted text-sm"},"persistent",-1)),i("span",{class:"mono text-sm",style:Ce({color:te.value.isPersistent?"var(--amber)":"inherit"})},b(te.value.isPersistent?"yes — survives navigation":"no"),5),p[24]||(p[24]=i("span",{class:"muted text-sm"},"hydration mount",-1)),i("span",Ef,b(te.value.isHydrationMount?"yes — SSR hydrated":"no"),1),p[25]||(p[25]=i("span",{class:"muted text-sm"},"avg render time",-1)),i("span",Of,b(te.value.avgMs.toFixed(1))+"ms",1),p[26]||(p[26]=i("span",{class:"muted text-sm"},"threshold",-1)),i("span",Af,b(c.value)+b(o.value==="count"?"+ renders":"ms+"),1),p[27]||(p[27]=i("span",{class:"muted text-sm"},"mode",-1)),i("span",If,b(o.value==="count"?"re-render count":"render time"),1)]),p[31]||(p[31]=i("div",{class:"section-label"},"triggers",-1)),(S(!0),M(ce,null,be(te.value.triggers,k=>(S(),M("div",{key:k,class:"trigger-item mono text-sm"},b(k),1))),128)),te.value.triggers.length?se("",!0):(S(),M("div",Pf,"no triggers recorded")),i("div",Lf,[p[28]||(p[28]=Me(" render timeline ",-1)),i("span",Ff," ("+b(te.value.timeline.length)+") ",1)]),te.value.timeline.length?(S(),M("div",Rf,[(S(!0),M(ce,null,be([...te.value.timeline].reverse().slice(0,30),(k,q)=>(S(),M("div",{key:q,class:"timeline-row"},[i("span",{class:ne(["timeline-kind mono",k.kind])},b(k.kind),3),i("span",jf,b(W(k.t)),1),i("span",Df,b(X(k.durationMs)),1),k.triggerKey?(S(),M("span",Hf,b(k.triggerKey),1)):se("",!0),i("span",Vf,b(k.route),1)]))),128)),te.value.timeline.length>30?(S(),M("div",Uf," … "+b(te.value.timeline.length-30)+" earlier events ",1)):se("",!0)])):(S(),M("div",Nf,"no timeline events yet"))],64)):(S(),M("div",Bf,"click a component to inspect"))])])]))}}),Wf=es(Kf,[["__scopeId","data-v-93bfa151"]]),zf={class:"timeline-root"},qf={class:"stats-row"},Jf={class:"stat-card"},Gf={class:"stat-val"},Yf={class:"stat-card"},Qf={class:"stat-val",style:{color:"var(--purple)"}},Xf={class:"stat-card"},Zf={class:"stat-val",style:{color:"var(--red)"}},ep={class:"stat-card"},tp={class:"stat-val"},sp={class:"toolbar"},np={class:"filter-group"},op={class:"content-area"},lp={class:"data-table"},ip=["onClick"],rp={class:"mono",style:{"font-size":"11px","font-weight":"500"}},ap={class:"mono",style:{"font-size":"11px",color:"var(--text2)"}},cp={class:"muted",style:{"font-size":"11px"}},up={class:"bar-cell"},dp={class:"bar-track"},fp={key:0},pp={colspan:"6",style:{"text-align":"center",color:"var(--text3)",padding:"24px"}},hp={key:0,class:"detail-panel"},vp={class:"panel-header"},mp={class:"panel-title"},gp={class:"panel-section"},_p={class:"panel-row"},bp={class:"panel-row"},yp={class:"panel-row"},xp={class:"panel-val mono"},wp={key:0,class:"panel-row"},$p={class:"panel-val mono"},Cp={class:"panel-section"},kp={class:"panel-row"},Sp={class:"panel-val mono"},Tp={class:"panel-row"},Mp={class:"panel-val mono"},Ep={class:"panel-row"},Op={class:"panel-val mono",style:{"font-weight":"500"}},Ap={class:"panel-section"},Ip={class:"panel-row"},Pp={class:"panel-row"},Lp={key:0,class:"cancel-notice"},Fp={key:1,class:"active-notice"},Np=Rt({__name:"TransitionTimeline",setup(e){const{transitions:t,connected:s}=Zt(),n=ae("all"),o=ae(""),l=ae(null),r=re(()=>{let y=[...t.value];if(o.value){const x=o.value.toLowerCase();y=y.filter(F=>F.transitionName.toLowerCase().includes(x)||F.parentComponent.toLowerCase().includes(x))}return n.value==="cancelled"?y=y.filter(x=>x.cancelled||x.phase==="interrupted"):n.value==="active"?y=y.filter(x=>x.phase==="entering"||x.phase==="leaving"):n.value==="completed"&&(y=y.filter(x=>x.phase==="entered"||x.phase==="left")),y.sort((x,F)=>{const J=x.endTime??x.startTime;return(F.endTime??F.startTime)-J})}),a=re(()=>({total:t.value.length,active:t.value.filter(y=>y.phase==="entering"||y.phase==="leaving").length,cancelled:t.value.filter(y=>y.cancelled||y.phase==="interrupted").length,avgMs:(()=>{const y=t.value.filter(x=>x.durationMs!==void 0);return y.length?Math.round(y.reduce((x,F)=>x+(F.durationMs??0),0)/y.length):0})()})),c=re(()=>{const y=r.value;if(!y.length)return[];const x=y.reduce((Q,U)=>Math.min(Q,U.startTime),y[0].startTime),F=y.reduce((Q,U)=>Math.max(Q,U.endTime??U.startTime+400),0),J=Math.max(F-x,1);return y.map(Q=>({left:(Q.startTime-x)/J*100,width:((Q.endTime??Q.startTime+80)-Q.startTime)/J*100}))});function v(y){return y==="entering"||y==="leaving"?"#7f77dd":y==="entered"?"#1d9e75":y==="left"?"#378add":y==="enter-cancelled"||y==="leave-cancelled"?"#e24b4a":y==="interrupted"?"#e09a3a":"#888"}function d(y){return y==="entering"||y==="leaving"?"badge-purple":y==="entered"||y==="left"?"badge-ok":y.includes("cancelled")?"badge-err":y==="interrupted"?"badge-warn":"badge-gray"}function g(y){return y.appear?"✦ appear":y.direction==="enter"?"→ enter":"← leave"}function E(y){return y.appear?"var(--amber)":y.direction==="enter"?"var(--teal)":"var(--blue)"}return(y,x)=>(S(),M("div",zf,[i("div",qf,[i("div",Jf,[i("div",Gf,b(a.value.total),1),x[6]||(x[6]=i("div",{class:"stat-label"},"total",-1))]),i("div",Yf,[i("div",Qf,b(a.value.active),1),x[7]||(x[7]=i("div",{class:"stat-label"},"active",-1))]),i("div",Xf,[i("div",Zf,b(a.value.cancelled),1),x[8]||(x[8]=i("div",{class:"stat-label"},"cancelled",-1))]),i("div",ep,[i("div",tp,[Me(b(a.value.avgMs)+" ",1),x[9]||(x[9]=i("span",{class:"stat-unit"},"ms",-1))]),x[10]||(x[10]=i("div",{class:"stat-label"},"avg duration",-1))])]),i("div",sp,[Nt(i("input",{"onUpdate:modelValue":x[0]||(x[0]=F=>o.value=F),type:"search",placeholder:"filter by name or component…",class:"search-input"},null,512),[[Qt,o.value]]),i("div",np,[i("button",{class:ne({active:n.value==="all"}),onClick:x[1]||(x[1]=F=>n.value="all")},"All",2),i("button",{class:ne({active:n.value==="active"}),onClick:x[2]||(x[2]=F=>n.value="active")},"Active",2),i("button",{class:ne({active:n.value==="completed"}),onClick:x[3]||(x[3]=F=>n.value="completed")},"Completed",2),i("button",{class:ne({active:n.value==="cancelled","danger-active":n.value==="cancelled"}),onClick:x[4]||(x[4]=F=>n.value="cancelled")}," Cancelled ",2)])]),i("div",op,[i("div",{class:ne(["table-pane",{"has-panel":l.value}])},[i("table",lp,[x[11]||(x[11]=i("thead",null,[i("tr",null,[i("th",{style:{width:"110px"}},"NAME"),i("th",{style:{width:"80px"}},"DIR"),i("th",{style:{width:"90px"}},"PHASE"),i("th",{style:{width:"70px"}},"DURATION"),i("th",null,"COMPONENT"),i("th",null,"TIMELINE")])],-1)),i("tbody",null,[(S(!0),M(ce,null,be(r.value,(F,J)=>{var Q,U,Y;return S(),M("tr",{key:F.id,class:ne({selected:((Q=l.value)==null?void 0:Q.id)===F.id}),onClick:T=>{var D;return l.value=((D=l.value)==null?void 0:D.id)===F.id?null:F}},[i("td",null,[i("span",rp,b(F.transitionName),1)]),i("td",null,[i("span",{class:"mono",style:Ce([{"font-size":"11px"},{color:E(F)}])},b(g(F)),5)]),i("td",null,[i("span",{class:ne(["badge",d(F.phase)])},b(F.phase),3)]),i("td",ap,b(F.durationMs!==void 0?F.durationMs+"ms":"—"),1),i("td",cp,b(F.parentComponent),1),i("td",up,[i("div",dp,[i("div",{class:"bar-fill",style:Ce({left:((U=c.value[J])==null?void 0:U.left)+"%",width:Math.max(((Y=c.value[J])==null?void 0:Y.width)??1,1)+"%",background:v(F.phase),opacity:F.phase==="entering"||F.phase==="leaving"?"0.55":"1"})},null,4)])])],10,ip)}),128)),r.value.length?se("",!0):(S(),M("tr",fp,[i("td",pp,b(wt(s)?"No transitions recorded yet — trigger one on the page.":"Waiting for connection to the Nuxt app…"),1)]))])])],2),ke(Pn,{name:"panel-slide"},{default:Vs(()=>[l.value?(S(),M("aside",hp,[i("div",vp,[i("span",mp,b(l.value.transitionName),1),i("button",{class:"close-btn",onClick:x[5]||(x[5]=F=>l.value=null)},"✕")]),i("div",gp,[i("div",_p,[x[12]||(x[12]=i("span",{class:"panel-key"},"Direction",-1)),i("span",{class:"panel-val",style:Ce({color:E(l.value)})},b(g(l.value)),5)]),i("div",bp,[x[13]||(x[13]=i("span",{class:"panel-key"},"Phase",-1)),i("span",{class:ne(["badge",d(l.value.phase)])},b(l.value.phase),3)]),i("div",yp,[x[14]||(x[14]=i("span",{class:"panel-key"},"Component",-1)),i("span",xp,b(l.value.parentComponent),1)]),l.value.mode?(S(),M("div",wp,[x[15]||(x[15]=i("span",{class:"panel-key"},"Mode",-1)),i("span",$p,b(l.value.mode),1)])):se("",!0)]),i("div",Cp,[x[19]||(x[19]=i("div",{class:"panel-section-title"},"Timing",-1)),i("div",kp,[x[16]||(x[16]=i("span",{class:"panel-key"},"Start",-1)),i("span",Sp,b(l.value.startTime.toFixed(2))+"ms",1)]),i("div",Tp,[x[17]||(x[17]=i("span",{class:"panel-key"},"End",-1)),i("span",Mp,b(l.value.endTime!==void 0?l.value.endTime.toFixed(2)+"ms":"—"),1)]),i("div",Ep,[x[18]||(x[18]=i("span",{class:"panel-key"},"Duration",-1)),i("span",Op,b(l.value.durationMs!==void 0?l.value.durationMs+"ms":l.value.phase==="interrupted"?"interrupted":"in progress"),1)])]),i("div",Ap,[x[22]||(x[22]=i("div",{class:"panel-section-title"},"Flags",-1)),i("div",Ip,[x[20]||(x[20]=i("span",{class:"panel-key"},"Appear",-1)),i("span",{class:"panel-val",style:Ce({color:l.value.appear?"var(--amber)":"var(--text3)"})},b(l.value.appear?"yes":"no"),5)]),i("div",Pp,[x[21]||(x[21]=i("span",{class:"panel-key"},"Cancelled",-1)),i("span",{class:"panel-val",style:Ce({color:l.value.cancelled?"var(--red)":"var(--text3)"})},b(l.value.cancelled?"yes":"no"),5)])]),l.value.cancelled?(S(),M("div",Lp,[...x[23]||(x[23]=[Me(" This transition was cancelled mid-flight. The element may be stuck in a partial animation state if the interruption was not handled with ",-1),i("code",null,"onEnterCancelled",-1),Me(" / ",-1),i("code",null,"onLeaveCancelled",-1),Me(" . ",-1)])])):se("",!0),l.value.phase==="entering"||l.value.phase==="leaving"?(S(),M("div",Fp,[...x[24]||(x[24]=[Me(" Transition is currently in progress. If it stays in this state longer than expected, the ",-1),i("code",null,"done()",-1),Me(" callback may not be getting called (JS-mode transition stall). ",-1)])])):se("",!0)])):se("",!0)]),_:1})])]))}}),Rp=es(Np,[["__scopeId","data-v-da869dac"]]),jp={id:"app-root"},Dp={class:"tabbar"},Hp=["onClick"],Vp={class:"tab-icon"},Up={class:"tab-content"},Bp=Rt({__name:"App",setup(e){const t={fetch:"fetch",provide:"provide",composables:"composable",heatmap:"heatmap",transitions:"transitions"},s=window.location.pathname.split("/").filter(Boolean).pop()??"",n=ae(t[s]??"fetch"),{features:o}=Zt();qn(()=>{Da()});const l=re(()=>{const r=o.value||{};return[r.fetchDashboard&&{id:"fetch",label:"useFetch",icon:"⬡"},r.provideInjectGraph&&{id:"provide",label:"provide/inject",icon:"⬡"},r.composableTracker&&{id:"composable",label:"Composables",icon:"⬡"},r.renderHeatmap&&{id:"heatmap",label:"Heatmap",icon:"⬡"},r.transitionTracker&&{id:"transitions",label:"Transitions",icon:"⬡"}].filter(a=>!!a)});return(r,a)=>(S(),M("div",jp,[i("nav",Dp,[a[0]||(a[0]=i("div",{class:"tabbar-brand"},"observatory",-1)),(S(!0),M(ce,null,be(l.value,c=>(S(),M("button",{key:c.id,class:ne(["tab-btn",{active:n.value===c.id}]),onClick:v=>n.value=c.id},[i("span",Vp,b(c.icon),1),Me(" "+b(c.label),1)],10,Hp))),128))]),i("main",Up,[n.value==="fetch"?(S(),At(Sc,{key:0})):n.value==="provide"?(S(),At(du,{key:1})):n.value==="composable"?(S(),At(Od,{key:2})):n.value==="heatmap"?(S(),At(Wf,{key:3})):n.value==="transitions"?(S(),At(Rp,{key:4})):se("",!0)])]))}}),Kp=es(Bp,[["__scopeId","data-v-12fe13bc"]]);Pa(Kp).mount("#app");
|
package/client/dist/index.html
CHANGED
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
body { font-family: var(--font); background: var(--bg); color: var(--text); font-size: 13px; }
|
|
39
39
|
#app { height: 100vh; display: flex; flex-direction: column; }
|
|
40
40
|
</style>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
42
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-BlwWZDDl.js"></script>
|
|
42
|
+
<link rel="stylesheet" crossorigin href="/assets/index-B9TLcAbk.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|
|
45
45
|
<div id="app"></div>
|
package/client/src/App.vue
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { ref } from 'vue'
|
|
2
|
+
import { ref, computed, onUnmounted } from 'vue'
|
|
3
|
+
import { useObservatoryData, stopObservatoryPolling } from './stores/observatory'
|
|
3
4
|
import FetchDashboard from './views/FetchDashboard.vue'
|
|
4
5
|
import ProvideInjectGraph from './views/ProvideInjectGraph.vue'
|
|
5
6
|
import ComposableTracker from './views/ComposableTracker.vue'
|
|
@@ -17,13 +18,22 @@ const pathMap: Record<string, string> = {
|
|
|
17
18
|
const segment = window.location.pathname.split('/').filter(Boolean).pop() ?? ''
|
|
18
19
|
const activeTab = ref(pathMap[segment] ?? 'fetch')
|
|
19
20
|
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
const { features } = useObservatoryData()
|
|
22
|
+
|
|
23
|
+
onUnmounted(() => {
|
|
24
|
+
stopObservatoryPolling()
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
const tabs = computed(() => {
|
|
28
|
+
const f = features.value || {}
|
|
29
|
+
return [
|
|
30
|
+
f.fetchDashboard && { id: 'fetch', label: 'useFetch', icon: '⬡' },
|
|
31
|
+
f.provideInjectGraph && { id: 'provide', label: 'provide/inject', icon: '⬡' },
|
|
32
|
+
f.composableTracker && { id: 'composable', label: 'Composables', icon: '⬡' },
|
|
33
|
+
f.renderHeatmap && { id: 'heatmap', label: 'Heatmap', icon: '⬡' },
|
|
34
|
+
f.transitionTracker && { id: 'transitions', label: 'Transitions', icon: '⬡' },
|
|
35
|
+
].filter((tab): tab is { id: string; label: string; icon: string } => Boolean(tab))
|
|
36
|
+
})
|
|
27
37
|
</script>
|
|
28
38
|
|
|
29
39
|
<template>
|
|
@@ -127,6 +127,13 @@ interface ObservatorySnapshot {
|
|
|
127
127
|
composables?: ComposableEntry[]
|
|
128
128
|
renders?: RenderEntry[]
|
|
129
129
|
transitions?: TransitionEntry[]
|
|
130
|
+
features?: {
|
|
131
|
+
fetchDashboard?: boolean
|
|
132
|
+
provideInjectGraph?: boolean
|
|
133
|
+
composableTracker?: boolean
|
|
134
|
+
renderHeatmap?: boolean
|
|
135
|
+
transitionTracker?: boolean
|
|
136
|
+
}
|
|
130
137
|
}
|
|
131
138
|
|
|
132
139
|
const fetchEntries = ref<FetchEntry[]>([])
|
|
@@ -135,6 +142,7 @@ const composables = ref<ComposableEntry[]>([])
|
|
|
135
142
|
const renders = ref<RenderEntry[]>([])
|
|
136
143
|
const transitions = ref<TransitionEntry[]>([])
|
|
137
144
|
const connected = ref(false)
|
|
145
|
+
const features = ref<ObservatorySnapshot['features']>({})
|
|
138
146
|
|
|
139
147
|
let started = false
|
|
140
148
|
// parentOrigin is only used for the outgoing postMessage target. We always
|
|
@@ -171,7 +179,10 @@ function getParentOrigin(): string {
|
|
|
171
179
|
}
|
|
172
180
|
|
|
173
181
|
function requestSnapshot() {
|
|
174
|
-
if (!parentOrigin)
|
|
182
|
+
if (!parentOrigin) {
|
|
183
|
+
return
|
|
184
|
+
}
|
|
185
|
+
|
|
175
186
|
window.top?.postMessage({ type: 'observatory:request' }, parentOrigin)
|
|
176
187
|
}
|
|
177
188
|
|
|
@@ -198,9 +209,27 @@ function onMessage(event: MessageEvent) {
|
|
|
198
209
|
composables.value = cloneArray(data.composables)
|
|
199
210
|
renders.value = normalizeRenderEntries(data.renders)
|
|
200
211
|
transitions.value = cloneArray(data.transitions)
|
|
212
|
+
features.value = data.features || {}
|
|
201
213
|
connected.value = true
|
|
202
214
|
}
|
|
203
215
|
|
|
216
|
+
function onVisibilityChange() {
|
|
217
|
+
if (document.visibilityState === 'hidden') {
|
|
218
|
+
// Tab is no longer visible — pause polling to avoid triggering
|
|
219
|
+
// buildSnapshot() in the parent app for results nobody is looking at.
|
|
220
|
+
if (pollIntervalId !== null) {
|
|
221
|
+
window.clearInterval(pollIntervalId)
|
|
222
|
+
pollIntervalId = null
|
|
223
|
+
}
|
|
224
|
+
} else {
|
|
225
|
+
// Tab became visible again — resume polling and request immediately.
|
|
226
|
+
if (pollIntervalId === null && started) {
|
|
227
|
+
pollIntervalId = window.setInterval(requestSnapshot, POLL_MS)
|
|
228
|
+
requestSnapshot()
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
204
233
|
function ensureStarted() {
|
|
205
234
|
if (started || typeof window === 'undefined') {
|
|
206
235
|
return
|
|
@@ -209,6 +238,7 @@ function ensureStarted() {
|
|
|
209
238
|
started = true
|
|
210
239
|
parentOrigin = getParentOrigin()
|
|
211
240
|
window.addEventListener('message', onMessage)
|
|
241
|
+
document.addEventListener('visibilitychange', onVisibilityChange)
|
|
212
242
|
pollIntervalId = window.setInterval(requestSnapshot, POLL_MS)
|
|
213
243
|
requestSnapshot()
|
|
214
244
|
}
|
|
@@ -224,6 +254,7 @@ export function stopObservatoryPolling() {
|
|
|
224
254
|
pollIntervalId = null
|
|
225
255
|
}
|
|
226
256
|
window.removeEventListener('message', onMessage)
|
|
257
|
+
document.removeEventListener('visibilitychange', onVisibilityChange)
|
|
227
258
|
started = false
|
|
228
259
|
}
|
|
229
260
|
|
|
@@ -244,6 +275,7 @@ export function useObservatoryData() {
|
|
|
244
275
|
composables,
|
|
245
276
|
renders,
|
|
246
277
|
transitions,
|
|
278
|
+
features,
|
|
247
279
|
connected,
|
|
248
280
|
refresh: requestSnapshot,
|
|
249
281
|
clearComposables,
|
|
@@ -781,7 +781,7 @@ function applyEdit() {
|
|
|
781
781
|
.edit-overlay {
|
|
782
782
|
position: fixed;
|
|
783
783
|
inset: 0;
|
|
784
|
-
background:
|
|
784
|
+
background: rgb(0 0 0 / 40%);
|
|
785
785
|
z-index: 100;
|
|
786
786
|
display: flex;
|
|
787
787
|
align-items: center;
|
|
@@ -798,7 +798,7 @@ function applyEdit() {
|
|
|
798
798
|
display: flex;
|
|
799
799
|
flex-direction: column;
|
|
800
800
|
gap: 6px;
|
|
801
|
-
box-shadow: 0 8px 32px
|
|
801
|
+
box-shadow: 0 8px 32px rgb(0 0 0 / 30%);
|
|
802
802
|
}
|
|
803
803
|
|
|
804
804
|
.edit-dialog-header {
|