@vscode/component-explorer 0.1.1-6 → 0.1.1-8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Explorer.d.ts +5 -1
- package/dist/components/Explorer.d.ts.map +1 -1
- package/dist/components/ExplorerModel.d.ts +29 -2
- package/dist/components/ExplorerModel.d.ts.map +1 -1
- package/dist/components/FixtureScreenshotView.d.ts +12 -0
- package/dist/components/FixtureScreenshotView.d.ts.map +1 -0
- package/dist/components/PreviewArea.d.ts.map +1 -1
- package/dist/components/ScreenshotComparisonRow.d.ts +12 -0
- package/dist/components/ScreenshotComparisonRow.d.ts.map +1 -0
- package/dist/components/TitleBar.d.ts.map +1 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/core/CliRuntime.d.ts.map +1 -1
- package/dist/daemon/DaemonConfig.d.ts +19 -0
- package/dist/daemon/DaemonConfig.d.ts.map +1 -0
- package/dist/daemon/DaemonModel.d.ts +57 -0
- package/dist/daemon/DaemonModel.d.ts.map +1 -0
- package/dist/daemon/index.d.ts +5 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2249 -7462
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/DisplayMode.ts","../src/core/PropertySchema.ts","../src/core/ComponentDefinition.ts","../src/core/defineFixture.ts","../src/core/FixtureNode.ts","../../../external/vscode-observables/observables/dist/observableInternal/logging/logging.js","../../../external/vscode-observables/observables/dist/observableInternal/debugLocation.js","../../../external/vscode-observables/observables/dist/observableInternal/debugName.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js","../../../external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js","../../../external/vscode-observables/observables/dist/disposables.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/derived.js","../../../external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js","../../../external/vscode-observables/observables/dist/observableInternal/base.js","../../../external/vscode-observables/observables/dist/observableInternal/transaction.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js","../../../external/vscode-observables/observables/dist/observableInternal/utils/utils.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/rpc.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/debuggerRpc.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/utils.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/devToolsLogger.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js","../../../external/vscode-observables/observables/dist/observableInternal/index.js","../src/core/FixtureRegistry.ts","../src/core/CliRuntime.ts","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js","../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js","../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/index.js","../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../external/vscode-observables/observables-react/dist/ManualChangesHandler.js","../../../external/vscode-observables/observables-react/dist/IPropertyTransformer.js","../../../external/vscode-observables/observables-react/dist/utils.js","../../../external/vscode-observables/observables-react/dist/viewModel.js","../../../external/vscode-observables/observables-react/dist/obsView.js","../../../external/vscode-observables/observables-react/dist/view.js","../../../external/vscode-observables/observables-react/dist/viewWithModel.js","../../../external/vscode-observables/observables-react/dist/Value.js","../../../external/vscode-observables/observables-react/dist/di.js","../src/components/types.ts","../src/lib/localStorageObservable.ts","../src/components/ExplorerModel.ts","../src/components/styles.ts","../src/components/TitleBarButton.tsx","../src/components/icons.tsx","../src/components/TitleBar.tsx","../src/components/TreeView.tsx","../src/components/LeftSidebar.tsx","../src/components/RightSidebar.tsx","../src/components/FixturePreviewItem.tsx","../src/lib/fixtureSizeCache.ts","../src/components/PreviewArea.tsx","../src/components/Explorer.tsx","../src/index.ts"],"sourcesContent":["/**\n * Disposable resource that can be cleaned up.\n */\nexport interface Disposable {\n dispose(): void;\n}\n\n/**\n * Style definition for shadow DOM injection.\n */\nexport type StyleDefinition =\n | { readonly type: 'css'; readonly content: string }\n | { readonly type: 'url'; readonly href: string }\n | { readonly type: 'adopted'; readonly sheet: CSSStyleSheet };\n\n/**\n * Display mode for a component.\n */\nexport type DisplayMode = PageMode | ComponentMode;\n\n/**\n * Page mode - component fills a viewport with device presets.\n */\nexport interface PageMode {\n readonly type: 'page';\n /**\n * Device presets or custom viewport sizes.\n * When viewing, user can switch between these.\n */\n readonly viewports: ViewportPreset[];\n}\n\n/**\n * Component mode - renders at natural size.\n */\nexport interface ComponentMode {\n readonly type: 'component';\n}\n\n/**\n * Viewport preset - either a named preset or custom dimensions.\n */\nexport type ViewportPreset =\n | ViewportPresetName\n | { readonly name: string; readonly width: number; readonly height: number };\n\nexport type ViewportPresetName = 'mobile' | 'tablet' | 'desktop';\n\n/**\n * Standard viewport dimensions for presets.\n */\nexport const VIEWPORT_SIZES: Record<ViewportPresetName, { readonly width: number; readonly height: number }> = {\n mobile: { width: 390, height: 844 },\n tablet: { width: 768, height: 1024 },\n desktop: { width: 1440, height: 900 },\n};\n\n/**\n * Resolves a viewport preset to actual dimensions.\n */\nexport function resolveViewport(preset: ViewportPreset): { name: string; width: number; height: number } {\n if (typeof preset === 'string') {\n return { name: preset, ...VIEWPORT_SIZES[preset] };\n }\n return preset;\n}\n","/**\n * Schema for a component property.\n * Defines the type, name, and default value of a configurable property.\n */\nexport type PropertySchema =\n | BooleanProperty\n | StringProperty\n | NumberProperty\n | EnumProperty;\n\nexport interface BooleanProperty {\n readonly type: 'boolean';\n readonly name: string;\n readonly defaultValue: boolean;\n readonly description?: string;\n}\n\nexport interface StringProperty {\n readonly type: 'string';\n readonly name: string;\n readonly defaultValue: string;\n readonly description?: string;\n /** If true, render as multiline textarea */\n readonly multiline?: boolean;\n}\n\nexport interface NumberProperty {\n readonly type: 'number';\n readonly name: string;\n readonly defaultValue: number;\n readonly description?: string;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n}\n\nexport interface EnumProperty {\n readonly type: 'enum';\n readonly name: string;\n readonly defaultValue: string;\n readonly description?: string;\n readonly options: readonly string[];\n}\n\n/**\n * Gets the default values for a list of property schemas.\n */\nexport function getDefaultPropertyValues(properties: readonly PropertySchema[]): Record<string, unknown> {\n const values: Record<string, unknown> = {};\n for (const prop of properties) {\n values[prop.name] = prop.defaultValue;\n }\n return values;\n}\n","import type { Disposable, DisplayMode, StyleDefinition } from './DisplayMode.js';\nimport type { PropertySchema } from './PropertySchema.js';\nimport type { DefineFixtureOptions, FixtureGroupEntry, singleFixtureBrand, fixtureGroupBrand, fixtureVariantsBrand } from './defineFixture.js';\n\n/**\n * Definition of a component fixture.\n * Components can render React, plain HTML, or any other UI library.\n */\nexport interface ComponentDefinition {\n /** Unique identifier within the fixture file */\n readonly id: string;\n\n /** Display name shown in the tree */\n readonly name: string;\n\n /** Optional description for documentation */\n readonly description?: string;\n\n /** How to isolate this component from other components */\n readonly isolation: 'iframe' | 'shadow-dom';\n\n /** How to display: page (device viewport) or component (natural size) */\n readonly displayMode: DisplayMode;\n\n /**\n * Stylesheets to inject into shadow root (for shadow-dom isolation).\n * Ignored when isolation is 'iframe'.\n */\n readonly styles?: readonly StyleDefinition[];\n\n /** Background pattern for the preview canvas: 'light' (default) or 'dark' for dark transparent pattern */\n readonly background: 'light' | 'dark';\n\n /** Property schema for the component */\n readonly properties: readonly PropertySchema[];\n\n /**\n * Render the component into the container.\n * Returns a disposable for cleanup (e.g., unmounting React).\n */\n render(container: HTMLElement, props: Record<string, unknown>): Disposable;\n}\n\n/**\n * A single fixture export created by defineFixture().\n */\nexport interface SingleFixtureExport {\n readonly [singleFixtureBrand]: true;\n readonly _options: DefineFixtureOptions;\n readonly _createDefinition: (id: string, name: string) => ComponentDefinition;\n}\n\n/**\n * A fixture group export created by defineFixtureGroup().\n */\nexport interface FixtureGroupExport {\n readonly [fixtureGroupBrand]: true;\n readonly _entries: { [key: string]: FixtureGroupEntry };\n}\n\n/**\n * A fixture variants export created by defineFixtureVariants().\n * Variants are rendered horizontally by default and have a distinct icon.\n */\nexport interface FixtureVariantsExport {\n readonly [fixtureVariantsBrand]: true;\n readonly _variants: { [key: string]: SingleFixtureExport };\n}\n\n/**\n * Fixture export type - a single fixture, a group, or variants.\n */\nexport type FixtureExport = SingleFixtureExport | FixtureGroupExport | FixtureVariantsExport;\n\n/**\n * Type guard for checking if a value is a ComponentDefinition.\n * @deprecated Use isSingleFixture or isFixtureGroup from defineFixture.ts instead\n */\nexport function isComponentDefinition(value: unknown): value is ComponentDefinition {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'render' in value &&\n typeof (value as ComponentDefinition).render === 'function' &&\n 'id' in value &&\n 'name' in value\n );\n}\n","import type { FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, ComponentDefinition } from './ComponentDefinition.js';\nimport type { DisplayMode, Disposable, StyleDefinition } from './DisplayMode.js';\nimport type { PropertySchema } from './PropertySchema.js';\n\n/**\n * Options for defining a single component fixture.\n */\nexport interface DefineFixtureOptions {\n /** Optional description for documentation */\n description?: string;\n\n /** How to isolate: 'iframe' for full isolation, 'shadow-dom' (default) for lighter isolation */\n isolation?: 'iframe' | 'shadow-dom';\n\n /** Display mode: defaults to { type: 'component' } */\n displayMode?: DisplayMode;\n\n /** Styles to inject (for shadow-dom isolation) */\n styles?: StyleDefinition[];\n\n /** Background pattern for the preview canvas: 'light' (default) or 'dark' for dark transparent pattern */\n background?: 'light' | 'dark';\n\n /** Property definitions */\n properties?: PropertySchema[];\n\n /** Render function */\n render: (container: HTMLElement, props: Record<string, unknown>) => Disposable;\n}\n\n/** @deprecated Use DefineFixtureOptions instead */\nexport type DefineComponentOptions = DefineFixtureOptions;\n\n/** Brand symbol to identify single fixtures */\nexport const singleFixtureBrand = Symbol('singleFixture');\n\n/** Brand symbol to identify fixture groups */\nexport const fixtureGroupBrand = Symbol('fixtureGroup');\n\n/** Brand symbol to identify fixture variants */\nexport const fixtureVariantsBrand = Symbol('fixtureVariants');\n\n/**\n * Type guard for SingleFixtureExport.\n */\nexport function isSingleFixture(value: FixtureExport): value is SingleFixtureExport {\n return typeof value === 'object' && value !== null && singleFixtureBrand in value;\n}\n\n/**\n * Type guard for FixtureGroupExport.\n */\nexport function isFixtureGroup(value: FixtureExport): value is FixtureGroupExport {\n return typeof value === 'object' && value !== null && fixtureGroupBrand in value;\n}\n\n/**\n * Type guard for FixtureVariantsExport.\n */\nexport function isFixtureVariants(value: FixtureExport): value is FixtureVariantsExport {\n return typeof value === 'object' && value !== null && fixtureVariantsBrand in value;\n}\n\n/**\n * Creates the component definition from options (without id/name which are set at tree-building time).\n */\nfunction createComponentDefinition(\n options: DefineFixtureOptions,\n id: string,\n name: string\n): ComponentDefinition {\n return {\n id,\n name,\n description: options.description,\n isolation: options.isolation ?? 'shadow-dom',\n displayMode: options.displayMode ?? { type: 'component' },\n styles: options.styles,\n background: options.background ?? 'light',\n properties: options.properties ?? [],\n render: options.render,\n };\n}\n\n/**\n * Defines a single fixture.\n * \n * @example\n * ```ts\n * export default defineFixture({\n * properties: [\n * { type: 'string', name: 'label', defaultValue: 'Click me' },\n * ],\n * render: (container, props) => {\n * container.innerHTML = `<button>${props.label}</button>`;\n * return { dispose: () => { container.innerHTML = ''; } };\n * },\n * });\n * ```\n */\nexport function defineFixture(options: DefineFixtureOptions): SingleFixtureExport {\n return {\n [singleFixtureBrand]: true,\n _options: options,\n _createDefinition: (id: string, name: string) => createComponentDefinition(options, id, name),\n };\n}\n\n/**\n * Group entry: either a single fixture, a nested group, or variants.\n */\nexport type FixtureGroupEntry = SingleFixtureExport | FixtureGroupExport | FixtureVariantsExport;\n\n/**\n * Input for defineFixtureGroup.\n */\nexport type FixtureGroupInput = { [key: string]: FixtureGroupEntry };\n\n/**\n * Input for defineFixtureVariants (only single fixtures, no nesting).\n */\nexport type FixtureVariantsInput = { [key: string]: SingleFixtureExport };\n\n/**\n * Defines a group of fixtures with support for nesting.\n * \n * @example\n * ```ts\n * export default defineFixtureGroup({\n * Primary: defineFixture({\n * render: (container) => { ... },\n * }),\n * Variants: defineFixtureGroup({\n * Small: defineFixture({ ... }),\n * Large: defineFixture({ ... }),\n * }),\n * });\n * ```\n */\nexport function defineFixtureGroup(group: FixtureGroupInput): FixtureGroupExport {\n return {\n [fixtureGroupBrand]: true,\n _entries: group,\n };\n}\n\n/**\n * Defines a group of fixture variants (no nesting allowed).\n * Variants are rendered horizontally by default and have a distinct icon in the tree.\n * \n * @example\n * ```ts\n * export default defineFixtureGroup({\n * Button: defineFixtureVariants({\n * Small: defineFixture({ ... }),\n * Medium: defineFixture({ ... }),\n * Large: defineFixture({ ... }),\n * }),\n * });\n * ```\n */\nexport function defineFixtureVariants(variants: FixtureVariantsInput): FixtureVariantsExport {\n return {\n [fixtureVariantsBrand]: true,\n _variants: variants,\n };\n}\n","import type { ComponentDefinition, FixtureExport } from './ComponentDefinition.js';\nimport { isSingleFixture, isFixtureGroup, isFixtureVariants } from './defineFixture.js';\n\n/**\n * A node in the fixture tree.\n * Can be a folder (with children), variants (with children, horizontal layout), or a component leaf.\n */\nexport interface FixtureNode {\n /** Unique identifier (path segments joined by '/') */\n readonly id: string;\n\n /** Display name */\n readonly name: string;\n\n /** Node type: folder for groups, variants for horizontal variant display, component for leaves */\n readonly type: 'folder' | 'variants' | 'component';\n\n /** Children (for folders and variants) */\n readonly children?: readonly FixtureNode[];\n\n /** Component definition (only for component nodes) */\n readonly component?: ComponentDefinition;\n}\n\n/**\n * Creates a fixture tree from a map of fixture exports.\n * @param fixtures Map of fixture file path to exported fixture object\n */\nexport function createFixtureTree(fixtures: Map<string, FixtureExport>): FixtureNode {\n const root: MutableFixtureNode = {\n id: '',\n name: 'Components',\n type: 'folder',\n children: [],\n };\n\n for (const [filePath, fixtureExport] of fixtures) {\n // Extract folder name from file path (e.g., 'components/Button.fixture.tsx' -> 'Button')\n const baseName = extractBaseName(filePath);\n addFixtureExportToTree(root, [baseName], fixtureExport);\n }\n\n return root;\n}\n\ninterface MutableFixtureNode {\n id: string;\n name: string;\n type: 'folder' | 'variants' | 'component';\n children?: MutableFixtureNode[];\n component?: ComponentDefinition;\n}\n\nfunction extractBaseName(filePath: string): string {\n const fileName = filePath.split('/').pop() ?? filePath;\n // Remove .fixture.tsx, .fixture.ts, .fixture.jsx, .fixture.js\n return fileName.replace(/\\.fixture\\.(tsx?|jsx?)$/, '');\n}\n\nfunction addFixtureExportToTree(\n parent: MutableFixtureNode,\n pathSegments: string[],\n fixtureExport: FixtureExport\n): void {\n if (isSingleFixture(fixtureExport)) {\n // Single fixture - add as leaf\n const id = pathSegments.join('/');\n const name = pathSegments[pathSegments.length - 1];\n const componentNode: MutableFixtureNode = {\n id,\n name,\n type: 'component',\n component: fixtureExport._createDefinition(id, name),\n };\n if (!parent.children) {\n parent.children = [];\n }\n parent.children.push(componentNode);\n } else if (isFixtureGroup(fixtureExport)) {\n // Fixture group - create or find folder and recurse\n const folderName = pathSegments[pathSegments.length - 1];\n const folderId = pathSegments.join('/');\n \n // Find or create the folder\n let folder = parent.children?.find(\n (c) => c.type === 'folder' && c.name === folderName\n );\n \n if (!folder) {\n folder = {\n id: folderId,\n name: folderName,\n type: 'folder',\n children: [],\n };\n if (!parent.children) {\n parent.children = [];\n }\n parent.children.push(folder);\n }\n\n // Add each entry in the group\n for (const [key, entry] of Object.entries(fixtureExport._entries)) {\n addFixtureExportToTree(folder, [...pathSegments, key], entry);\n }\n } else if (isFixtureVariants(fixtureExport)) {\n // Fixture variants - create variants node with children\n const variantsName = pathSegments[pathSegments.length - 1];\n const variantsId = pathSegments.join('/');\n \n const variantsNode: MutableFixtureNode = {\n id: variantsId,\n name: variantsName,\n type: 'variants',\n children: [],\n };\n \n if (!parent.children) {\n parent.children = [];\n }\n parent.children.push(variantsNode);\n\n // Add each variant as a child component\n for (const [key, variant] of Object.entries(fixtureExport._variants)) {\n const childPath = [...pathSegments, key];\n const childId = childPath.join('/');\n const componentNode: MutableFixtureNode = {\n id: childId,\n name: key,\n type: 'component',\n component: variant._createDefinition(childId, key),\n };\n variantsNode.children!.push(componentNode);\n }\n }\n}\n\n/**\n * Finds a node in the tree by path.\n */\nexport function findNodeByPath(root: FixtureNode, path: string[]): FixtureNode | undefined {\n if (path.length === 0) {\n return root;\n }\n\n let current: FixtureNode | undefined = root;\n \n for (const segment of path) {\n if (!current || !current.children) {\n return undefined;\n }\n current = current.children.find((c) => c.name === segment);\n }\n\n return current;\n}\n\n/**\n * Collects all component nodes from a subtree.\n */\nexport function collectComponents(node: FixtureNode): ComponentDefinition[] {\n if (node.type === 'component' && node.component) {\n return [node.component];\n }\n\n const components: ComponentDefinition[] = [];\n for (const child of node.children ?? []) {\n components.push(...collectComponents(child));\n }\n return components;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet globalObservableLogger;\nfunction addLogger(logger) {\n if (!globalObservableLogger) {\n globalObservableLogger = logger;\n }\n else if (globalObservableLogger instanceof ComposedLogger) {\n globalObservableLogger.loggers.push(logger);\n }\n else {\n globalObservableLogger = new ComposedLogger([globalObservableLogger, logger]);\n }\n}\nfunction getLogger() {\n return globalObservableLogger;\n}\nlet globalObservableLoggerFn = undefined;\nfunction setLogObservableFn(fn) {\n globalObservableLoggerFn = fn;\n}\nfunction logObservable(obs) {\n if (globalObservableLoggerFn) {\n globalObservableLoggerFn(obs);\n }\n}\nclass ComposedLogger {\n constructor(loggers) {\n this.loggers = loggers;\n }\n handleObservableCreated(observable, location) {\n for (const logger of this.loggers) {\n logger.handleObservableCreated(observable, location);\n }\n }\n handleOnListenerCountChanged(observable, newCount) {\n for (const logger of this.loggers) {\n logger.handleOnListenerCountChanged(observable, newCount);\n }\n }\n handleObservableUpdated(observable, info) {\n for (const logger of this.loggers) {\n logger.handleObservableUpdated(observable, info);\n }\n }\n handleAutorunCreated(autorun, location) {\n for (const logger of this.loggers) {\n logger.handleAutorunCreated(autorun, location);\n }\n }\n handleAutorunDisposed(autorun) {\n for (const logger of this.loggers) {\n logger.handleAutorunDisposed(autorun);\n }\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n for (const logger of this.loggers) {\n logger.handleAutorunDependencyChanged(autorun, observable, change);\n }\n }\n handleAutorunStarted(autorun) {\n for (const logger of this.loggers) {\n logger.handleAutorunStarted(autorun);\n }\n }\n handleAutorunFinished(autorun) {\n for (const logger of this.loggers) {\n logger.handleAutorunFinished(autorun);\n }\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n for (const logger of this.loggers) {\n logger.handleDerivedDependencyChanged(derived, observable, change);\n }\n }\n handleDerivedCleared(observable) {\n for (const logger of this.loggers) {\n logger.handleDerivedCleared(observable);\n }\n }\n handleBeginTransaction(transaction) {\n for (const logger of this.loggers) {\n logger.handleBeginTransaction(transaction);\n }\n }\n handleEndTransaction(transaction) {\n for (const logger of this.loggers) {\n logger.handleEndTransaction(transaction);\n }\n }\n}\n\nexport { addLogger, getLogger, logObservable, setLogObservableFn };\n//# sourceMappingURL=logging.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar DebugLocation;\n(function (DebugLocation) {\n let enabled = false;\n function enable() {\n enabled = true;\n }\n DebugLocation.enable = enable;\n function ofCaller() {\n return ofNthCaller(1);\n }\n DebugLocation.ofCaller = ofCaller;\n function ofNthCaller(n) {\n if (!enabled) {\n return undefined;\n }\n const Err = Error; // For the monaco editor checks, which don't have the nodejs types.\n const l = Err.stackTraceLimit;\n Err.stackTraceLimit = 3;\n const stack = new Error().stack;\n Err.stackTraceLimit = l;\n return DebugLocationImpl.fromStack(stack, n + 1);\n }\n DebugLocation.ofNthCaller = ofNthCaller;\n})(DebugLocation || (DebugLocation = {}));\nclass DebugLocationImpl {\n static fromStack(stack, parentIdx) {\n const lines = stack.split('\\n');\n const location = parseLine(lines[parentIdx + 1]);\n if (location) {\n return new DebugLocationImpl(location.fileName, location.line, location.column, location.id);\n }\n else {\n return undefined;\n }\n }\n constructor(fileName, line, column, id) {\n this.fileName = fileName;\n this.line = line;\n this.column = column;\n this.id = id;\n }\n}\nfunction parseLine(stackLine) {\n if (!stackLine) {\n return undefined;\n }\n const match = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n if (match) {\n return {\n fileName: match[1],\n line: parseInt(match[2]),\n column: parseInt(match[3]),\n id: stackLine,\n };\n }\n const match2 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n if (match2) {\n return {\n fileName: match2[1],\n line: parseInt(match2[2]),\n column: parseInt(match2[3]),\n id: stackLine,\n };\n }\n return undefined;\n}\n\nexport { DebugLocation };\n//# sourceMappingURL=debugLocation.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DebugNameData {\n constructor(owner, debugNameSource, referenceFn) {\n this.owner = owner;\n this.debugNameSource = debugNameSource;\n this.referenceFn = referenceFn;\n }\n getDebugName(target) {\n return getDebugName(target, this);\n }\n}\nconst countPerName = new Map();\nconst cachedDebugName = new WeakMap();\nfunction getDebugName(target, data) {\n const cached = cachedDebugName.get(target);\n if (cached) {\n return cached;\n }\n const dbgName = computeDebugName(target, data);\n if (dbgName) {\n let count = countPerName.get(dbgName) ?? 0;\n count++;\n countPerName.set(dbgName, count);\n const result = count === 1 ? dbgName : `${dbgName}#${count}`;\n cachedDebugName.set(target, result);\n return result;\n }\n return undefined;\n}\nfunction computeDebugName(self, data) {\n const cached = cachedDebugName.get(self);\n if (cached) {\n return cached;\n }\n const ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n let result;\n const debugNameSource = data.debugNameSource;\n if (debugNameSource !== undefined) {\n if (typeof debugNameSource === 'function') {\n result = debugNameSource();\n if (result !== undefined) {\n return ownerStr + result;\n }\n }\n else {\n return ownerStr + debugNameSource;\n }\n }\n const referenceFn = data.referenceFn;\n if (referenceFn !== undefined) {\n result = getFunctionName(referenceFn);\n if (result !== undefined) {\n return ownerStr + result;\n }\n }\n if (data.owner !== undefined) {\n const key = findKey(data.owner, self);\n if (key !== undefined) {\n return ownerStr + key;\n }\n }\n return undefined;\n}\nfunction findKey(obj, value) {\n for (const key in obj) {\n if (obj[key] === value) {\n return key;\n }\n }\n return undefined;\n}\nconst countPerClassName = new Map();\nconst ownerId = new WeakMap();\nfunction formatOwner(owner) {\n const id = ownerId.get(owner);\n if (id) {\n return id;\n }\n const className = getClassName(owner) ?? 'Object';\n let count = countPerClassName.get(className) ?? 0;\n count++;\n countPerClassName.set(className, count);\n const result = count === 1 ? className : `${className}#${count}`;\n ownerId.set(owner, result);\n return result;\n}\nfunction getClassName(obj) {\n const ctor = obj.constructor;\n if (ctor) {\n if (ctor.name === 'Object') {\n return undefined;\n }\n return ctor.name;\n }\n return undefined;\n}\nfunction getFunctionName(fn) {\n const fnSrc = fn.toString();\n // Pattern: /** @description ... */\n const regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n const match = regexp.exec(fnSrc);\n const result = match ? match[1] : undefined;\n return result?.trim();\n}\n\nexport { DebugNameData, getClassName, getDebugName, getFunctionName };\n//# sourceMappingURL=debugName.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DebugLocation } from '../debugLocation.js';\nimport { getFunctionName } from '../debugName.js';\nimport { getLogger, logObservable } from '../logging/logging.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet _derived;\n/**\n * @internal\n * This is to allow splitting files.\n*/\nfunction _setDerivedOpts(derived) {\n _derived = derived;\n}\nlet _recomputeInitiallyAndOnChange;\nfunction _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange) {\n _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange;\n}\nlet _keepObserved;\nfunction _setKeepObserved(keepObserved) {\n _keepObserved = keepObserved;\n}\nlet _debugGetDependencyGraph;\nfunction _setDebugGetDependencyGraph(debugGetDependencyGraph) {\n _debugGetDependencyGraph = debugGetDependencyGraph;\n}\nclass ConvenientObservable {\n get TChange() { return null; }\n reportChanges() {\n this.get();\n }\n /** @sealed */\n read(reader) {\n if (reader) {\n return reader.readObservable(this);\n }\n else {\n return this.get();\n }\n }\n map(fnOrOwner, fnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n const owner = fnOrUndefined === undefined ? undefined : fnOrOwner;\n const fn = fnOrUndefined === undefined ? fnOrOwner : fnOrUndefined;\n return _derived({\n owner,\n debugName: () => {\n const name = getFunctionName(fn);\n if (name !== undefined) {\n return name;\n }\n // regexp to match `x => x.y` or `x => x?.y` where x and y can be arbitrary identifiers (uses backref):\n const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n const match = regexp.exec(fn.toString());\n if (match) {\n return `${this.debugName}.${match[2]}`;\n }\n if (!owner) {\n return `${this.debugName} (mapped)`;\n }\n return undefined;\n },\n debugReferenceFn: fn,\n }, (reader) => fn(this.read(reader), reader), debugLocation);\n }\n /**\n * @sealed\n * Converts an observable of an observable value into a direct observable of the value.\n */\n flatten() {\n return _derived({\n owner: undefined,\n debugName: () => `${this.debugName} (flattened)`,\n }, (reader) => this.read(reader).read(reader));\n }\n recomputeInitiallyAndOnChange(store, handleValue) {\n store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n return this;\n }\n /**\n * Ensures that this observable is observed. This keeps the cache alive.\n * However, in case of deriveds, it does not force eager evaluation (only when the value is read/get).\n * Use `recomputeInitiallyAndOnChange` for eager evaluation.\n */\n keepObserved(store) {\n store.add(_keepObserved(this));\n return this;\n }\n get debugValue() {\n return this.get();\n }\n debugGetDependencyGraph() {\n return _debugGetDependencyGraph(this);\n }\n}\nclass BaseObservable extends ConvenientObservable {\n constructor(debugLocation) {\n super();\n this._observers = new Set();\n getLogger()?.handleObservableCreated(this, debugLocation);\n }\n addObserver(observer) {\n const len = this._observers.size;\n this._observers.add(observer);\n if (len === 0) {\n this.onFirstObserverAdded();\n }\n if (len !== this._observers.size) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n removeObserver(observer) {\n const deleted = this._observers.delete(observer);\n if (deleted && this._observers.size === 0) {\n this.onLastObserverRemoved();\n }\n if (deleted) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n onFirstObserverAdded() { }\n onLastObserverRemoved() { }\n log() {\n const hadLogger = !!getLogger();\n logObservable(this);\n if (!hadLogger) {\n getLogger()?.handleObservableCreated(this, DebugLocation.ofCaller());\n }\n return this;\n }\n debugGetObservers() {\n return this._observers;\n }\n}\n\nexport { BaseObservable, ConvenientObservable, _setDebugGetDependencyGraph, _setDerivedOpts, _setKeepObserved, _setRecomputeInitiallyAndOnChange };\n//# sourceMappingURL=baseObservable.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction toDisposable(fn) {\n return {\n dispose: fn\n };\n}\nclass BugIndicatingError extends Error {\n constructor(message) {\n super(message || 'An unexpected bug occurred.');\n Object.setPrototypeOf(this, BugIndicatingError.prototype);\n // Because we know for sure only buggy code throws this,\n // we definitely want to break here and fix the bug.\n // eslint-disable-next-line no-debugger\n // debugger;\n }\n}\nfunction onBugIndicatingError(error) {\n // debugger;\n throw error;\n}\nfunction onUnexpectedError(error) {\n console.error('Unexpected error:', error);\n}\n/**\n * Compares two items for equality using strict equality.\n*/\nconst strictEquals = (a, b) => a === b;\nfunction isDefined(arg) {\n return arg !== undefined && arg !== null;\n}\n\nexport { BugIndicatingError, isDefined, onBugIndicatingError, onUnexpectedError, strictEquals, toDisposable };\n//# sourceMappingURL=deps.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DisposableStore {\n constructor() {\n this.disposables = [];\n this._isDisposed = false;\n }\n get isDisposed() { return this._isDisposed; }\n dispose() {\n this.clear();\n this._isDisposed = true;\n }\n add(disposable) {\n if (disposable) {\n this.disposables.push(disposable);\n }\n return disposable;\n }\n remove(disposable) {\n if (!disposable) {\n return disposable;\n }\n const index = this.disposables.indexOf(disposable);\n if (index !== -1) {\n this.disposables.splice(index, 1);\n }\n return disposable;\n }\n clear() {\n for (const disposable of this.disposables) {\n disposable.dispose();\n }\n this.disposables = [];\n }\n leakItems() {\n this.disposables = [];\n }\n}\nclass Disposable {\n constructor() {\n this._store = new DisposableStore();\n }\n dispose() {\n this._store.dispose();\n }\n _register(t) {\n this._store.add(t);\n return t;\n }\n _registerOrDispose(t) {\n if (t) {\n if (this._store.isDisposed) {\n t.dispose();\n }\n else {\n this._store.add(t);\n }\n }\n return t;\n }\n}\n\nexport { Disposable, DisposableStore };\n//# sourceMappingURL=disposables.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BaseObservable } from './baseObservable.js';\nimport { BugIndicatingError, onBugIndicatingError } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction derivedStateToString(state) {\n switch (state) {\n case 0 /* DerivedState.initial */: return 'initial';\n case 1 /* DerivedState.dependenciesMightHaveChanged */: return 'dependenciesMightHaveChanged';\n case 2 /* DerivedState.stale */: return 'stale';\n case 3 /* DerivedState.upToDate */: return 'upToDate';\n default: return '<unknown>';\n }\n}\nclass Derived extends BaseObservable {\n get debugName() {\n return this._debugNameData.getDebugName(this) ?? '(anonymous)';\n }\n constructor(_debugNameData, _computeFn, _changeTracker, _handleLastObserverRemoved = undefined, _equalityComparator, debugLocation) {\n super(debugLocation);\n this._debugNameData = _debugNameData;\n this._computeFn = _computeFn;\n this._changeTracker = _changeTracker;\n this._handleLastObserverRemoved = _handleLastObserverRemoved;\n this._equalityComparator = _equalityComparator;\n this._state = 0 /* DerivedState.initial */;\n this._value = undefined;\n this._updateCount = 0;\n this._dependencies = new Set();\n this._dependenciesToBeRemoved = new Set();\n this._changeSummary = undefined;\n this._isUpdating = false;\n this._isComputing = false;\n this._didReportChange = false;\n this._isInBeforeUpdate = false;\n this._isReaderValid = false;\n this._store = undefined;\n this._delayedStore = undefined;\n this._removedObserverToCallEndUpdateOn = null;\n this._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n }\n onLastObserverRemoved() {\n /**\n * We are not tracking changes anymore, thus we have to assume\n * that our cache is invalid.\n */\n this._state = 0 /* DerivedState.initial */;\n this._value = undefined;\n getLogger()?.handleDerivedCleared(this);\n for (const d of this._dependencies) {\n d.removeObserver(this);\n }\n this._dependencies.clear();\n if (this._store !== undefined) {\n this._store.dispose();\n this._store = undefined;\n }\n if (this._delayedStore !== undefined) {\n this._delayedStore.dispose();\n this._delayedStore = undefined;\n }\n this._handleLastObserverRemoved?.();\n }\n get() {\n const checkEnabled = false; // TODO set to true\n if (this._isComputing && checkEnabled) {\n // investigate why this fails in the diff editor!\n throw new BugIndicatingError('Cyclic deriveds are not supported yet!');\n }\n if (this._observers.size === 0) {\n let result;\n // Without observers, we don't know when to clean up stuff.\n // Thus, we don't cache anything to prevent memory leaks.\n try {\n this._isReaderValid = true;\n let changeSummary = undefined;\n if (this._changeTracker) {\n changeSummary = this._changeTracker.createChangeSummary(undefined);\n this._changeTracker.beforeUpdate?.(this, changeSummary);\n }\n result = this._computeFn(this, changeSummary);\n }\n finally {\n this._isReaderValid = false;\n }\n // Clear new dependencies\n this.onLastObserverRemoved();\n return result;\n }\n else {\n do {\n // We might not get a notification for a dependency that changed while it is updating,\n // thus we also have to ask all our depedencies if they changed in this case.\n if (this._state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n for (const d of this._dependencies) {\n /** might call {@link handleChange} indirectly, which could make us stale */\n d.reportChanges();\n if (this._state === 2 /* DerivedState.stale */) {\n // The other dependencies will refresh on demand, so early break\n break;\n }\n }\n }\n // We called report changes of all dependencies.\n // If we are still not stale, we can assume to be up to date again.\n if (this._state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n this._state = 3 /* DerivedState.upToDate */;\n }\n if (this._state !== 3 /* DerivedState.upToDate */) {\n this._recompute();\n }\n // In case recomputation changed one of our dependencies, we need to recompute again.\n } while (this._state !== 3 /* DerivedState.upToDate */);\n return this._value;\n }\n }\n _recompute() {\n let didChange = false;\n this._isComputing = true;\n this._didReportChange = false;\n const emptySet = this._dependenciesToBeRemoved;\n this._dependenciesToBeRemoved = this._dependencies;\n this._dependencies = emptySet;\n try {\n const changeSummary = this._changeSummary;\n this._isReaderValid = true;\n if (this._changeTracker) {\n this._isInBeforeUpdate = true;\n this._changeTracker.beforeUpdate?.(this, changeSummary);\n this._isInBeforeUpdate = false;\n this._changeSummary = this._changeTracker?.createChangeSummary(changeSummary);\n }\n const hadValue = this._state !== 0 /* DerivedState.initial */;\n const oldValue = this._value;\n this._state = 3 /* DerivedState.upToDate */;\n const delayedStore = this._delayedStore;\n if (delayedStore !== undefined) {\n this._delayedStore = undefined;\n }\n try {\n if (this._store !== undefined) {\n this._store.dispose();\n this._store = undefined;\n }\n /** might call {@link handleChange} indirectly, which could invalidate us */\n this._value = this._computeFn(this, changeSummary);\n }\n finally {\n this._isReaderValid = false;\n // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n // Thus, we only unsubscribe from observables that are definitely not read anymore.\n for (const o of this._dependenciesToBeRemoved) {\n o.removeObserver(this);\n }\n this._dependenciesToBeRemoved.clear();\n if (delayedStore !== undefined) {\n delayedStore.dispose();\n }\n }\n didChange = this._didReportChange || (hadValue && !(this._equalityComparator(oldValue, this._value)));\n getLogger()?.handleObservableUpdated(this, {\n oldValue,\n newValue: this._value,\n change: undefined,\n didChange,\n hadValue,\n });\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n this._isComputing = false;\n if (!this._didReportChange && didChange) {\n for (const r of this._observers) {\n r.handleChange(this, undefined);\n }\n }\n else {\n this._didReportChange = false;\n }\n }\n toString() {\n return `LazyDerived<${this.debugName}>`;\n }\n // IObserver Implementation\n beginUpdate(_observable) {\n if (this._isUpdating) {\n throw new BugIndicatingError('Cyclic deriveds are not supported yet!');\n }\n this._updateCount++;\n this._isUpdating = true;\n try {\n const propagateBeginUpdate = this._updateCount === 1;\n if (this._state === 3 /* DerivedState.upToDate */) {\n this._state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n // If we propagate begin update, that will already signal a possible change.\n if (!propagateBeginUpdate) {\n for (const r of this._observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n if (propagateBeginUpdate) {\n for (const r of this._observers) {\n r.beginUpdate(this); // This signals a possible change\n }\n }\n }\n finally {\n this._isUpdating = false;\n }\n }\n endUpdate(_observable) {\n this._updateCount--;\n if (this._updateCount === 0) {\n // End update could change the observer list.\n const observers = [...this._observers];\n for (const r of observers) {\n r.endUpdate(this);\n }\n if (this._removedObserverToCallEndUpdateOn) {\n const observers = [...this._removedObserverToCallEndUpdateOn];\n this._removedObserverToCallEndUpdateOn = null;\n for (const r of observers) {\n r.endUpdate(this);\n }\n }\n }\n }\n handlePossibleChange(observable) {\n // In all other states, observers already know that we might have changed.\n if (this._state === 3 /* DerivedState.upToDate */ && this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable)) {\n this._state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n for (const r of this._observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n handleChange(observable, change) {\n if (this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable) || this._isInBeforeUpdate) {\n getLogger()?.handleDerivedDependencyChanged(this, observable, change);\n let shouldReact = false;\n try {\n shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n changedObservable: observable,\n change,\n didChange: (o) => o === observable,\n }, this._changeSummary) : true;\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n const wasUpToDate = this._state === 3 /* DerivedState.upToDate */;\n if (shouldReact && (this._state === 1 /* DerivedState.dependenciesMightHaveChanged */ || wasUpToDate)) {\n this._state = 2 /* DerivedState.stale */;\n if (wasUpToDate) {\n for (const r of this._observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n }\n }\n // IReader Implementation\n _ensureReaderValid() {\n if (!this._isReaderValid) {\n throw new BugIndicatingError('The reader object cannot be used outside its compute function!');\n }\n }\n readObservable(observable) {\n this._ensureReaderValid();\n // Subscribe before getting the value to enable caching\n observable.addObserver(this);\n /** This might call {@link handleChange} indirectly, which could invalidate us */\n const value = observable.get();\n // Which is why we only add the observable to the dependencies now.\n this._dependencies.add(observable);\n this._dependenciesToBeRemoved.delete(observable);\n return value;\n }\n reportChange(change) {\n this._ensureReaderValid();\n this._didReportChange = true;\n // TODO add logging\n for (const r of this._observers) {\n r.handleChange(this, change);\n }\n }\n get store() {\n this._ensureReaderValid();\n if (this._store === undefined) {\n this._store = new DisposableStore();\n }\n return this._store;\n }\n get delayedStore() {\n this._ensureReaderValid();\n if (this._delayedStore === undefined) {\n this._delayedStore = new DisposableStore();\n }\n return this._delayedStore;\n }\n addObserver(observer) {\n const shouldCallBeginUpdate = !this._observers.has(observer) && this._updateCount > 0;\n super.addObserver(observer);\n if (shouldCallBeginUpdate) {\n if (this._removedObserverToCallEndUpdateOn && this._removedObserverToCallEndUpdateOn.has(observer)) {\n this._removedObserverToCallEndUpdateOn.delete(observer);\n }\n else {\n observer.beginUpdate(this);\n }\n }\n }\n removeObserver(observer) {\n if (this._observers.has(observer) && this._updateCount > 0) {\n if (!this._removedObserverToCallEndUpdateOn) {\n this._removedObserverToCallEndUpdateOn = new Set();\n }\n this._removedObserverToCallEndUpdateOn.add(observer);\n }\n super.removeObserver(observer);\n }\n debugGetState() {\n return {\n state: this._state,\n stateStr: derivedStateToString(this._state),\n updateCount: this._updateCount,\n isComputing: this._isComputing,\n dependencies: this._dependencies,\n value: this._value,\n };\n }\n debugSetValue(newValue) {\n this._value = newValue;\n }\n debugRecompute() {\n if (!this._isComputing) {\n this._recompute();\n }\n else {\n this._state = 2 /* DerivedState.stale */;\n }\n }\n setValue(newValue, tx, change) {\n this._value = newValue;\n const observers = this._observers;\n tx.updateObserver(this, this);\n for (const d of observers) {\n d.handleChange(this, change);\n }\n }\n}\nclass DerivedWithSetter extends Derived {\n constructor(debugNameData, computeFn, changeTracker, handleLastObserverRemoved = undefined, equalityComparator, set, debugLocation) {\n super(debugNameData, computeFn, changeTracker, handleLastObserverRemoved, equalityComparator, debugLocation);\n this.set = set;\n }\n}\n\nexport { Derived, DerivedWithSetter };\n//# sourceMappingURL=derivedImpl.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { strictEquals } from '../commonFacade/deps.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DebugNameData } from '../debugName.js';\nimport { _setDerivedOpts } from './baseObservable.js';\nimport { Derived, DerivedWithSetter } from './derivedImpl.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction derived(computeFnOrOwner, computeFn, debugLocation = DebugLocation.ofCaller()) {\n if (computeFn !== undefined) {\n return new Derived(new DebugNameData(computeFnOrOwner, undefined, computeFn), computeFn, undefined, undefined, strictEquals, debugLocation);\n }\n return new Derived(new DebugNameData(undefined, undefined, computeFnOrOwner), computeFnOrOwner, undefined, undefined, strictEquals, debugLocation);\n}\nfunction derivedWithSetter(owner, computeFn, setter, debugLocation = DebugLocation.ofCaller()) {\n return new DerivedWithSetter(new DebugNameData(owner, undefined, computeFn), computeFn, undefined, undefined, strictEquals, setter, debugLocation);\n}\nfunction derivedOpts(options, computeFn, debugLocation = DebugLocation.ofCaller()) {\n return new Derived(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn), computeFn, undefined, options.onLastObserverRemoved, options.equalsFn ?? strictEquals, debugLocation);\n}\n_setDerivedOpts(derivedOpts);\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nfunction derivedHandleChanges(options, computeFn, debugLocation = DebugLocation.ofCaller()) {\n return new Derived(new DebugNameData(options.owner, options.debugName, undefined), computeFn, options.changeTracker, undefined, options.equalityComparer ?? strictEquals, debugLocation);\n}\nfunction derivedWithStore(computeFnOrOwner, computeFnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n let computeFn;\n let owner;\n if (computeFnOrUndefined === undefined) {\n computeFn = computeFnOrOwner;\n owner = undefined;\n }\n else {\n owner = computeFnOrOwner;\n computeFn = computeFnOrUndefined;\n }\n // Intentionally re-assigned in case an inactive observable is re-used later\n // eslint-disable-next-line local/code-no-potentially-unsafe-disposables\n let store = new DisposableStore();\n return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n if (store.isDisposed) {\n store = new DisposableStore();\n }\n else {\n store.clear();\n }\n return computeFn(r, store);\n }, undefined, () => store.dispose(), strictEquals, debugLocation);\n}\nfunction derivedDisposable(computeFnOrOwner, computeFnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n let computeFn;\n let owner;\n if (computeFnOrUndefined === undefined) {\n computeFn = computeFnOrOwner;\n owner = undefined;\n }\n else {\n owner = computeFnOrOwner;\n computeFn = computeFnOrUndefined;\n }\n let store = undefined;\n return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n if (!store) {\n store = new DisposableStore();\n }\n else {\n store.clear();\n }\n const result = computeFn(r);\n if (result) {\n store.add(result);\n }\n return result;\n }, undefined, () => {\n if (store) {\n store.dispose();\n store = undefined;\n }\n }, strictEquals, debugLocation);\n}\n\nexport { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore };\n//# sourceMappingURL=derived.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onBugIndicatingError, BugIndicatingError } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction autorunStateToString(state) {\n switch (state) {\n case 1 /* AutorunState.dependenciesMightHaveChanged */: return 'dependenciesMightHaveChanged';\n case 2 /* AutorunState.stale */: return 'stale';\n case 3 /* AutorunState.upToDate */: return 'upToDate';\n default: return '<unknown>';\n }\n}\nclass AutorunObserver {\n get debugName() {\n return this._debugNameData.getDebugName(this) ?? '(anonymous)';\n }\n constructor(_debugNameData, _runFn, _changeTracker, debugLocation) {\n this._debugNameData = _debugNameData;\n this._runFn = _runFn;\n this._changeTracker = _changeTracker;\n this._state = 2 /* AutorunState.stale */;\n this._updateCount = 0;\n this._disposed = false;\n this._dependencies = new Set();\n this._dependenciesToBeRemoved = new Set();\n this._isRunning = false;\n this._store = undefined;\n this._delayedStore = undefined;\n this._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n getLogger()?.handleAutorunCreated(this, debugLocation);\n this._run();\n }\n dispose() {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const o of this._dependencies) {\n o.removeObserver(this); // Warning: external call!\n }\n this._dependencies.clear();\n if (this._store !== undefined) {\n this._store.dispose();\n }\n if (this._delayedStore !== undefined) {\n this._delayedStore.dispose();\n }\n getLogger()?.handleAutorunDisposed(this);\n }\n _run() {\n const emptySet = this._dependenciesToBeRemoved;\n this._dependenciesToBeRemoved = this._dependencies;\n this._dependencies = emptySet;\n this._state = 3 /* AutorunState.upToDate */;\n try {\n if (!this._disposed) {\n getLogger()?.handleAutorunStarted(this);\n const changeSummary = this._changeSummary;\n const delayedStore = this._delayedStore;\n if (delayedStore !== undefined) {\n this._delayedStore = undefined;\n }\n try {\n this._isRunning = true;\n if (this._changeTracker) {\n this._changeTracker.beforeUpdate?.(this, changeSummary);\n this._changeSummary = this._changeTracker.createChangeSummary(changeSummary); // Warning: external call!\n }\n if (this._store !== undefined) {\n this._store.dispose();\n this._store = undefined;\n }\n this._runFn(this, changeSummary); // Warning: external call!\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n finally {\n this._isRunning = false;\n if (delayedStore !== undefined) {\n delayedStore.dispose();\n }\n }\n }\n }\n finally {\n if (!this._disposed) {\n getLogger()?.handleAutorunFinished(this);\n }\n // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n // Thus, we only unsubscribe from observables that are definitely not read anymore.\n for (const o of this._dependenciesToBeRemoved) {\n o.removeObserver(this); // Warning: external call!\n }\n this._dependenciesToBeRemoved.clear();\n }\n }\n toString() {\n return `Autorun<${this.debugName}>`;\n }\n // IObserver implementation\n beginUpdate(_observable) {\n if (this._state === 3 /* AutorunState.upToDate */) {\n this._state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n }\n this._updateCount++;\n }\n endUpdate(_observable) {\n try {\n if (this._updateCount === 1) {\n do {\n if (this._state === 1 /* AutorunState.dependenciesMightHaveChanged */) {\n this._state = 3 /* AutorunState.upToDate */;\n for (const d of this._dependencies) {\n d.reportChanges(); // Warning: external call!\n if (this._state === 2 /* AutorunState.stale */) {\n // The other dependencies will refresh on demand\n break;\n }\n }\n }\n if (this._state !== 3 /* AutorunState.upToDate */) {\n this._run(); // Warning: indirect external call!\n }\n } while (this._state !== 3 /* AutorunState.upToDate */);\n }\n }\n finally {\n this._updateCount--;\n }\n }\n handlePossibleChange(observable) {\n if (this._state === 3 /* AutorunState.upToDate */ && this._isDependency(observable)) {\n this._state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n }\n }\n handleChange(observable, change) {\n if (this._isDependency(observable)) {\n getLogger()?.handleAutorunDependencyChanged(this, observable, change);\n try {\n // Warning: external call!\n const shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n changedObservable: observable,\n change,\n didChange: (o) => o === observable,\n }, this._changeSummary) : true;\n if (shouldReact) {\n this._state = 2 /* AutorunState.stale */;\n }\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n }\n }\n _isDependency(observable) {\n return this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);\n }\n // IReader implementation\n _ensureNoRunning() {\n if (!this._isRunning) {\n throw new BugIndicatingError('The reader object cannot be used outside its compute function!');\n }\n }\n readObservable(observable) {\n this._ensureNoRunning();\n // In case the run action disposes the autorun\n if (this._disposed) {\n return observable.get(); // warning: external call!\n }\n observable.addObserver(this); // warning: external call!\n const value = observable.get(); // warning: external call!\n this._dependencies.add(observable);\n this._dependenciesToBeRemoved.delete(observable);\n return value;\n }\n get store() {\n this._ensureNoRunning();\n if (this._disposed) {\n throw new BugIndicatingError('Cannot access store after dispose');\n }\n if (this._store === undefined) {\n this._store = new DisposableStore();\n }\n return this._store;\n }\n get delayedStore() {\n this._ensureNoRunning();\n if (this._disposed) {\n throw new BugIndicatingError('Cannot access store after dispose');\n }\n if (this._delayedStore === undefined) {\n this._delayedStore = new DisposableStore();\n }\n return this._delayedStore;\n }\n debugGetState() {\n return {\n isRunning: this._isRunning,\n updateCount: this._updateCount,\n dependencies: this._dependencies,\n state: this._state,\n stateStr: autorunStateToString(this._state),\n };\n }\n debugRerun() {\n if (!this._isRunning) {\n this._run();\n }\n else {\n this._state = 2 /* AutorunState.stale */;\n }\n }\n}\n\nexport { AutorunObserver };\n//# sourceMappingURL=autorunImpl.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from './commonFacade/deps.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * This function is used to indicate that the caller recovered from an error that indicates a bug.\n*/\nfunction handleBugIndicatingErrorRecovery(message) {\n const err = new Error('BugIndicatingErrorRecovery: ' + message);\n onUnexpectedError(err);\n console.error('recovered from an error that indicates a bug', err);\n}\n\nexport { handleBugIndicatingErrorRecovery };\n//# sourceMappingURL=base.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { handleBugIndicatingErrorRecovery } from './base.js';\nimport { getFunctionName } from './debugName.js';\nimport { getLogger } from './logging/logging.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Starts a transaction in which many observables can be changed at once.\n * {@link fn} should start with a JS Doc using `@description` to give the transaction a debug name.\n * Reaction run on demand or when the transaction ends.\n */\nfunction transaction(fn, getDebugName) {\n const tx = new TransactionImpl(fn, getDebugName);\n try {\n fn(tx);\n }\n finally {\n tx.finish();\n }\n}\nlet _globalTransaction = undefined;\nfunction globalTransaction(fn) {\n if (_globalTransaction) {\n fn(_globalTransaction);\n }\n else {\n const tx = new TransactionImpl(fn, undefined);\n _globalTransaction = tx;\n try {\n fn(tx);\n }\n finally {\n tx.finish(); // During finish, more actions might be added to the transaction.\n // Which is why we only clear the global transaction after finish.\n _globalTransaction = undefined;\n }\n }\n}\n/** @deprecated */\nasync function asyncTransaction(fn, getDebugName) {\n const tx = new TransactionImpl(fn, getDebugName);\n try {\n await fn(tx);\n }\n finally {\n tx.finish();\n }\n}\n/**\n * Allows to chain transactions.\n */\nfunction subtransaction(tx, fn, getDebugName) {\n if (!tx) {\n transaction(fn, getDebugName);\n }\n else {\n fn(tx);\n }\n}\nclass TransactionImpl {\n constructor(_fn, _getDebugName) {\n this._fn = _fn;\n this._getDebugName = _getDebugName;\n this._updatingObservers = [];\n getLogger()?.handleBeginTransaction(this);\n }\n getDebugName() {\n if (this._getDebugName) {\n return this._getDebugName();\n }\n return getFunctionName(this._fn);\n }\n updateObserver(observer, observable) {\n if (!this._updatingObservers) {\n // This happens when a transaction is used in a callback or async function.\n // If an async transaction is used, make sure the promise awaits all users of the transaction (e.g. no race).\n handleBugIndicatingErrorRecovery('Transaction already finished!');\n // Error recovery\n transaction(tx => {\n tx.updateObserver(observer, observable);\n });\n return;\n }\n // When this gets called while finish is active, they will still get considered\n this._updatingObservers.push({ observer, observable });\n observer.beginUpdate(observable);\n }\n finish() {\n const updatingObservers = this._updatingObservers;\n if (!updatingObservers) {\n handleBugIndicatingErrorRecovery('transaction.finish() has already been called!');\n return;\n }\n for (let i = 0; i < updatingObservers.length; i++) {\n const { observer, observable } = updatingObservers[i];\n observer.endUpdate(observable);\n }\n // Prevent anyone from updating observers from now on.\n this._updatingObservers = null;\n getLogger()?.handleEndTransaction(this);\n }\n debugGetUpdatingObservers() {\n return this._updatingObservers;\n }\n}\n\nexport { TransactionImpl, asyncTransaction, globalTransaction, subtransaction, transaction };\n//# sourceMappingURL=transaction.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TransactionImpl } from '../transaction.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { strictEquals } from '../commonFacade/deps.js';\nimport { DebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction observableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {\n let debugNameData;\n if (typeof nameOrOwner === 'string') {\n debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n }\n else {\n debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n }\n return new ObservableValue(debugNameData, initialValue, strictEquals, debugLocation);\n}\nclass ObservableValue extends BaseObservable {\n get debugName() {\n return this._debugNameData.getDebugName(this) ?? 'ObservableValue';\n }\n constructor(_debugNameData, initialValue, _equalityComparator, debugLocation) {\n super(debugLocation);\n this._debugNameData = _debugNameData;\n this._equalityComparator = _equalityComparator;\n this._value = initialValue;\n getLogger()?.handleObservableUpdated(this, { hadValue: false, newValue: initialValue, change: undefined, didChange: true, oldValue: undefined });\n }\n get() {\n return this._value;\n }\n set(value, tx, change) {\n if (change === undefined && this._equalityComparator(this._value, value)) {\n return;\n }\n let _tx;\n if (!tx) {\n tx = _tx = new TransactionImpl(() => { }, () => `Setting ${this.debugName}`);\n }\n try {\n const oldValue = this._value;\n this._setValue(value);\n getLogger()?.handleObservableUpdated(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });\n for (const observer of this._observers) {\n tx.updateObserver(observer, this);\n observer.handleChange(this, change);\n }\n }\n finally {\n if (_tx) {\n _tx.finish();\n }\n }\n }\n toString() {\n return `${this.debugName}: ${this._value}`;\n }\n _setValue(newValue) {\n this._value = newValue;\n }\n debugGetState() {\n return {\n value: this._value,\n };\n }\n debugSetValue(value) {\n this._value = value;\n }\n}\n/**\n * A disposable observable. When disposed, its value is also disposed.\n * When a new value is set, the previous value is disposed.\n */\nfunction disposableObservableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {\n let debugNameData;\n if (typeof nameOrOwner === 'string') {\n debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n }\n else {\n debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n }\n return new DisposableObservableValue(debugNameData, initialValue, strictEquals, debugLocation);\n}\nclass DisposableObservableValue extends ObservableValue {\n _setValue(newValue) {\n if (this._value === newValue) {\n return;\n }\n if (this._value) {\n this._value.dispose();\n }\n this._value = newValue;\n }\n dispose() {\n this._value?.dispose();\n }\n}\n\nexport { DisposableObservableValue, ObservableValue, disposableObservableValue, observableValue };\n//# sourceMappingURL=observableValue.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { subtransaction } from '../transaction.js';\nimport { strictEquals } from '../commonFacade/deps.js';\nimport { DebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction observableFromEvent(...args) {\n let owner;\n let event;\n let getValue;\n let debugLocation;\n if (args.length === 2) {\n [event, getValue] = args;\n }\n else {\n [owner, event, getValue, debugLocation] = args;\n }\n return new FromEventObservable(new DebugNameData(owner, undefined, getValue), event, getValue, () => FromEventObservable.globalTransaction, strictEquals, debugLocation ?? DebugLocation.ofCaller());\n}\nfunction observableFromEventOpts(options, event, getValue, debugLocation = DebugLocation.ofCaller()) {\n return new FromEventObservable(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue), event, getValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation);\n}\nclass FromEventObservable extends BaseObservable {\n constructor(_debugNameData, event, _getValue, _getTransaction, _equalityComparator, debugLocation) {\n super(debugLocation);\n this._debugNameData = _debugNameData;\n this.event = event;\n this._getValue = _getValue;\n this._getTransaction = _getTransaction;\n this._equalityComparator = _equalityComparator;\n this._hasValue = false;\n this.handleEvent = (args) => {\n const newValue = this._getValue(args);\n const oldValue = this._value;\n const didChange = !this._hasValue || !(this._equalityComparator(oldValue, newValue));\n let didRunTransaction = false;\n if (didChange) {\n this._value = newValue;\n if (this._hasValue) {\n didRunTransaction = true;\n subtransaction(this._getTransaction(), (tx) => {\n getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n for (const o of this._observers) {\n tx.updateObserver(o, this);\n o.handleChange(this, undefined);\n }\n }, () => {\n const name = this.getDebugName();\n return 'Event fired' + (name ? `: ${name}` : '');\n });\n }\n this._hasValue = true;\n }\n if (!didRunTransaction) {\n getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n }\n };\n }\n getDebugName() {\n return this._debugNameData.getDebugName(this);\n }\n get debugName() {\n const name = this.getDebugName();\n return 'From Event' + (name ? `: ${name}` : '');\n }\n onFirstObserverAdded() {\n this._subscription = this.event(this.handleEvent);\n }\n onLastObserverRemoved() {\n this._subscription.dispose();\n this._subscription = undefined;\n this._hasValue = false;\n this._value = undefined;\n }\n get() {\n if (this._subscription) {\n if (!this._hasValue) {\n this.handleEvent(undefined);\n }\n return this._value;\n }\n else {\n // no cache, as there are no subscribers to keep it updated\n const value = this._getValue(undefined);\n return value;\n }\n }\n debugSetValue(value) {\n this._value = value;\n }\n debugGetState() {\n return { value: this._value, hasValue: this._hasValue };\n }\n}\n(function (observableFromEvent) {\n observableFromEvent.Observer = FromEventObservable;\n function batchEventsGlobally(tx, fn) {\n let didSet = false;\n if (FromEventObservable.globalTransaction === undefined) {\n FromEventObservable.globalTransaction = tx;\n didSet = true;\n }\n try {\n fn();\n }\n finally {\n if (didSet) {\n FromEventObservable.globalTransaction = undefined;\n }\n }\n }\n observableFromEvent.batchEventsGlobally = batchEventsGlobally;\n})(observableFromEvent || (observableFromEvent = {}));\n\nexport { FromEventObservable, observableFromEvent, observableFromEventOpts };\n//# sourceMappingURL=observableFromEvent.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorun } from '../reactions/autorun.js';\nimport { transaction } from '../transaction.js';\nimport { observableValue } from '../observables/observableValue.js';\nimport { toDisposable } from '../commonFacade/deps.js';\nimport { derivedOpts, derived } from '../observables/derived.js';\nimport { observableFromEvent } from '../observables/observableFromEvent.js';\nimport { observableSignal } from '../observables/observableSignal.js';\nimport { _setKeepObserved, _setRecomputeInitiallyAndOnChange } from '../observables/baseObservable.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction observableFromPromise(promise) {\n const observable = observableValue('promiseValue', {});\n promise.then((value) => {\n observable.set({ value }, undefined);\n });\n return observable;\n}\nfunction signalFromObservable(owner, observable) {\n return derivedOpts({\n owner,\n equalsFn: () => false,\n }, reader => {\n observable.read(reader);\n });\n}\n/**\n * @deprecated Use `debouncedObservable` instead.\n */\nfunction debouncedObservableDeprecated(observable, debounceMs, disposableStore) {\n const debouncedObservable = observableValue('debounced', undefined);\n let timeout = undefined;\n disposableStore.add(autorun(reader => {\n /** @description debounce */\n const value = observable.read(reader);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n transaction(tx => {\n debouncedObservable.set(value, tx);\n });\n }, debounceMs);\n }));\n return debouncedObservable;\n}\n/**\n * Creates an observable that debounces the input observable.\n */\nfunction debouncedObservable(observable, debounceMs) {\n let hasValue = false;\n let lastValue;\n let timeout = undefined;\n return observableFromEvent(cb => {\n const d = autorun(reader => {\n const value = observable.read(reader);\n if (!hasValue) {\n hasValue = true;\n lastValue = value;\n }\n else {\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n lastValue = value;\n cb();\n }, debounceMs);\n }\n });\n return {\n dispose() {\n d.dispose();\n hasValue = false;\n lastValue = undefined;\n },\n };\n }, () => {\n if (hasValue) {\n return lastValue;\n }\n else {\n return observable.get();\n }\n });\n}\nfunction wasEventTriggeredRecently(event, timeoutMs, disposableStore) {\n const observable = observableValue('triggeredRecently', false);\n let timeout = undefined;\n disposableStore.add(event(() => {\n observable.set(true, undefined);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n observable.set(false, undefined);\n }, timeoutMs);\n }));\n return observable;\n}\n/**\n * This makes sure the observable is being observed and keeps its cache alive.\n */\nfunction keepObserved(observable) {\n const o = new KeepAliveObserver(false, undefined);\n observable.addObserver(o);\n return toDisposable(() => {\n observable.removeObserver(o);\n });\n}\n_setKeepObserved(keepObserved);\n/**\n * This converts the given observable into an autorun.\n */\nfunction recomputeInitiallyAndOnChange(observable, handleValue) {\n const o = new KeepAliveObserver(true, handleValue);\n observable.addObserver(o);\n try {\n o.beginUpdate(observable);\n }\n finally {\n o.endUpdate(observable);\n }\n return toDisposable(() => {\n observable.removeObserver(o);\n });\n}\n_setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);\nclass KeepAliveObserver {\n constructor(_forceRecompute, _handleValue) {\n this._forceRecompute = _forceRecompute;\n this._handleValue = _handleValue;\n this._counter = 0;\n }\n beginUpdate(observable) {\n this._counter++;\n }\n endUpdate(observable) {\n if (this._counter === 1 && this._forceRecompute) {\n if (this._handleValue) {\n this._handleValue(observable.get());\n }\n else {\n observable.reportChanges();\n }\n }\n this._counter--;\n }\n handlePossibleChange(observable) {\n // NO OP\n }\n handleChange(observable, change) {\n // NO OP\n }\n}\nfunction derivedObservableWithCache(owner, computeFn) {\n let lastValue = undefined;\n const observable = derivedOpts({ owner, debugReferenceFn: computeFn }, reader => {\n lastValue = computeFn(reader, lastValue);\n return lastValue;\n });\n return observable;\n}\nfunction derivedObservableWithWritableCache(owner, computeFn) {\n let lastValue = undefined;\n const onChange = observableSignal('derivedObservableWithWritableCache');\n const observable = derived(owner, reader => {\n onChange.read(reader);\n lastValue = computeFn(reader, lastValue);\n return lastValue;\n });\n return Object.assign(observable, {\n clearCache: (tx) => {\n lastValue = undefined;\n onChange.trigger(tx);\n },\n setCache: (newValue, tx) => {\n lastValue = newValue;\n onChange.trigger(tx);\n }\n });\n}\n/**\n * When the items array changes, referential equal items are not mapped again.\n */\nfunction mapObservableArrayCached(owner, items, map, keySelector) {\n let m = new ArrayMap(map, keySelector);\n const self = derivedOpts({\n debugReferenceFn: map,\n owner,\n onLastObserverRemoved: () => {\n m.dispose();\n m = new ArrayMap(map);\n }\n }, (reader) => {\n m.setItems(items.read(reader));\n return m.getItems();\n });\n return self;\n}\nclass ArrayMap {\n constructor(_map, _keySelector) {\n this._map = _map;\n this._keySelector = _keySelector;\n this._cache = new Map();\n this._items = [];\n }\n dispose() {\n this._cache.forEach(entry => entry.store.dispose());\n this._cache.clear();\n }\n setItems(items) {\n const newItems = [];\n const itemsToRemove = new Set(this._cache.keys());\n for (const item of items) {\n const key = this._keySelector ? this._keySelector(item) : item;\n let entry = this._cache.get(key);\n if (!entry) {\n const store = new DisposableStore();\n const out = this._map(item, store);\n entry = { out, store };\n this._cache.set(key, entry);\n }\n else {\n itemsToRemove.delete(key);\n }\n newItems.push(entry.out);\n }\n for (const item of itemsToRemove) {\n const entry = this._cache.get(item);\n entry.store.dispose();\n this._cache.delete(item);\n }\n this._items = newItems;\n }\n getItems() {\n return this._items;\n }\n}\n\nexport { KeepAliveObserver, debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently };\n//# sourceMappingURL=utils.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet consoleObservableLogger;\nfunction logObservableToConsole(obs) {\n if (!consoleObservableLogger) {\n consoleObservableLogger = new ConsoleObservableLogger();\n addLogger(consoleObservableLogger);\n }\n consoleObservableLogger.addFilteredObj(obs);\n}\nclass ConsoleObservableLogger {\n constructor() {\n this.indentation = 0;\n this.changedObservablesSets = new WeakMap();\n }\n addFilteredObj(obj) {\n if (!this._filteredObjects) {\n this._filteredObjects = new Set();\n }\n this._filteredObjects.add(obj);\n }\n _isIncluded(obj) {\n return this._filteredObjects?.has(obj) ?? true;\n }\n textToConsoleArgs(text) {\n return consoleTextToArgs([\n normalText(repeat('| ', this.indentation)),\n text,\n ]);\n }\n formatInfo(info) {\n if (!info.hadValue) {\n return [\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n normalText(` (initial)`),\n ];\n }\n return info.didChange\n ? [\n normalText(` `),\n styled(formatValue(info.oldValue, 70), {\n color: 'red',\n strikeThrough: true,\n }),\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n ]\n : [normalText(` (unchanged)`)];\n }\n handleObservableCreated(observable) {\n if (observable instanceof Derived) {\n const derived = observable;\n this.changedObservablesSets.set(derived, new Set());\n }\n }\n handleOnListenerCountChanged(observable, newCount) {\n }\n handleObservableUpdated(observable, info) {\n if (!this._isIncluded(observable)) {\n return;\n }\n if (observable instanceof Derived) {\n this._handleDerivedRecomputed(observable, info);\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('observable value changed'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n ]));\n }\n formatChanges(changes) {\n if (changes.size === 0) {\n return undefined;\n }\n return styled(' (changed deps: ' +\n [...changes].map((o) => o.debugName).join(', ') +\n ')', { color: 'gray' });\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n if (!this._isIncluded(derived)) {\n return;\n }\n this.changedObservablesSets.get(derived)?.add(observable);\n }\n _handleDerivedRecomputed(derived, info) {\n if (!this._isIncluded(derived)) {\n return;\n }\n const changedObservables = this.changedObservablesSets.get(derived);\n if (!changedObservables) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('derived recomputed'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n this.formatChanges(changedObservables),\n { data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n ]));\n changedObservables.clear();\n }\n handleDerivedCleared(derived) {\n if (!this._isIncluded(derived)) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('derived cleared'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ]));\n }\n handleFromEventObservableTriggered(observable, info) {\n if (!this._isIncluded(observable)) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('observable from event triggered'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n { data: [{ fn: observable._getValue }] }\n ]));\n }\n handleAutorunCreated(autorun) {\n if (!this._isIncluded(autorun)) {\n return;\n }\n this.changedObservablesSets.set(autorun, new Set());\n }\n handleAutorunDisposed(autorun) {\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n if (!this._isIncluded(autorun)) {\n return;\n }\n this.changedObservablesSets.get(autorun).add(observable);\n }\n handleAutorunStarted(autorun) {\n const changedObservables = this.changedObservablesSets.get(autorun);\n if (!changedObservables) {\n return;\n }\n if (this._isIncluded(autorun)) {\n console.log(...this.textToConsoleArgs([\n formatKind('autorun'),\n styled(autorun.debugName, { color: 'BlueViolet' }),\n this.formatChanges(changedObservables),\n { data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n ]));\n }\n changedObservables.clear();\n this.indentation++;\n }\n handleAutorunFinished(autorun) {\n this.indentation--;\n }\n handleBeginTransaction(transaction) {\n let transactionName = transaction.getDebugName();\n if (transactionName === undefined) {\n transactionName = '';\n }\n if (this._isIncluded(transaction)) {\n console.log(...this.textToConsoleArgs([\n formatKind('transaction'),\n styled(transactionName, { color: 'BlueViolet' }),\n { data: [{ fn: transaction._fn }] }\n ]));\n }\n this.indentation++;\n }\n handleEndTransaction() {\n this.indentation--;\n }\n}\nfunction consoleTextToArgs(text) {\n const styles = new Array();\n const data = [];\n let firstArg = '';\n function process(t) {\n if ('length' in t) {\n for (const item of t) {\n if (item) {\n process(item);\n }\n }\n }\n else if ('text' in t) {\n firstArg += `%c${t.text}`;\n styles.push(t.style);\n if (t.data) {\n data.push(...t.data);\n }\n }\n else if ('data' in t) {\n data.push(...t.data);\n }\n }\n process(text);\n const result = [firstArg, ...styles];\n result.push(...data);\n return result;\n}\nfunction normalText(text) {\n return styled(text, { color: 'black' });\n}\nfunction formatKind(kind) {\n return styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(text, options = {\n color: 'black',\n}) {\n function objToCss(styleObj) {\n return Object.entries(styleObj).reduce((styleString, [propName, propValue]) => {\n return `${styleString}${propName}:${propValue};`;\n }, '');\n }\n const style = {\n color: options.color,\n };\n if (options.strikeThrough) {\n style['text-decoration'] = 'line-through';\n }\n if (options.bold) {\n style['font-weight'] = 'bold';\n }\n return {\n text,\n style: objToCss(style),\n };\n}\nfunction formatValue(value, availableLen) {\n switch (typeof value) {\n case 'number':\n return '' + value;\n case 'string':\n if (value.length + 2 <= availableLen) {\n return `\"${value}\"`;\n }\n return `\"${value.substr(0, availableLen - 7)}\"+...`;\n case 'boolean':\n return value ? 'true' : 'false';\n case 'undefined':\n return 'undefined';\n case 'object':\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return formatArray(value, availableLen);\n }\n return formatObject(value, availableLen);\n case 'symbol':\n return value.toString();\n case 'function':\n return `[[Function${value.name ? ' ' + value.name : ''}]]`;\n default:\n return '' + value;\n }\n}\nfunction formatArray(value, availableLen) {\n let result = '[ ';\n let first = true;\n for (const val of value) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${formatValue(val, availableLen - result.length)}`;\n }\n result += ' ]';\n return result;\n}\nfunction formatObject(value, availableLen) {\n if (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n const val = value.toString();\n if (val.length <= availableLen) {\n return val;\n }\n return val.substring(0, availableLen - 3) + '...';\n }\n const className = getClassName(value);\n let result = className ? className + '(' : '{ ';\n let first = true;\n for (const [key, val] of Object.entries(value)) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${key}: ${formatValue(val, availableLen - result.length)}`;\n }\n result += className ? ')' : ' }';\n return result;\n}\nfunction repeat(str, count) {\n let result = '';\n for (let i = 1; i <= count; i++) {\n result += str;\n }\n return result;\n}\nfunction padStr(str, length) {\n while (str.length < length) {\n str += ' ';\n }\n return str;\n}\n\nexport { ConsoleObservableLogger, formatValue, logObservableToConsole };\n//# sourceMappingURL=consoleObservableLogger.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass SimpleTypedRpcConnection {\n static createHost(channelFactory, getHandler) {\n return new SimpleTypedRpcConnection(channelFactory, getHandler);\n }\n static createClient(channelFactory, getHandler) {\n return new SimpleTypedRpcConnection(channelFactory, getHandler);\n }\n constructor(_channelFactory, _getHandler) {\n this._channelFactory = _channelFactory;\n this._getHandler = _getHandler;\n this._channel = this._channelFactory({\n handleNotification: (notificationData) => {\n const m = notificationData;\n const fn = this._getHandler().notifications[m[0]];\n if (!fn) {\n throw new Error(`Unknown notification \"${m[0]}\"!`);\n }\n fn(...m[1]);\n },\n handleRequest: (requestData) => {\n const m = requestData;\n try {\n const result = this._getHandler().requests[m[0]](...m[1]);\n return { type: 'result', value: result };\n }\n catch (e) {\n return { type: 'error', value: e };\n }\n },\n });\n const requests = new Proxy({}, {\n get: (target, key) => {\n return async (...args) => {\n const result = await this._channel.sendRequest([key, args]);\n if (result.type === 'error') {\n throw result.value;\n }\n else {\n return result.value;\n }\n };\n }\n });\n const notifications = new Proxy({}, {\n get: (target, key) => {\n return (...args) => {\n this._channel.sendNotification([key, args]);\n };\n }\n });\n this.api = { notifications: notifications, requests: requests };\n }\n}\n\nexport { SimpleTypedRpcConnection };\n//# sourceMappingURL=rpc.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SimpleTypedRpcConnection } from './rpc.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction registerDebugChannel(channelId, createClient) {\n const g = globalThis;\n let queuedNotifications = [];\n let curHost = undefined;\n const { channel, handler } = createChannelFactoryFromDebugChannel({\n sendNotification: (data) => {\n if (curHost) {\n curHost.sendNotification(data);\n }\n else {\n queuedNotifications.push(data);\n }\n },\n });\n let curClient = undefined;\n (g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {\n curClient = createClient();\n curHost = host;\n for (const n of queuedNotifications) {\n host.sendNotification(n);\n }\n queuedNotifications = [];\n return handler;\n };\n return SimpleTypedRpcConnection.createClient(channel, () => {\n if (!curClient) {\n throw new Error('Not supported');\n }\n return curClient;\n });\n}\nfunction createChannelFactoryFromDebugChannel(host) {\n let h;\n const channel = (handler) => {\n h = handler;\n return {\n sendNotification: data => {\n host.sendNotification(data);\n },\n sendRequest: data => {\n throw new Error('not supported');\n },\n };\n };\n return {\n channel: channel,\n handler: {\n handleRequest: (data) => {\n if (data.type === 'notification') {\n return h?.handleNotification(data.data);\n }\n else {\n return h?.handleRequest(data.data);\n }\n },\n },\n };\n}\n\nexport { registerDebugChannel };\n//# sourceMappingURL=debuggerRpc.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass Throttler {\n constructor() {\n this._timeout = undefined;\n }\n throttle(fn, timeoutMs) {\n if (this._timeout === undefined) {\n this._timeout = setTimeout(() => {\n this._timeout = undefined;\n fn();\n }, timeoutMs);\n }\n }\n dispose() {\n if (this._timeout !== undefined) {\n clearTimeout(this._timeout);\n }\n }\n}\nfunction deepAssign(target, source) {\n for (const key in source) {\n if (!!target[key] && typeof target[key] === 'object' && !!source[key] && typeof source[key] === 'object') {\n deepAssign(target[key], source[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n}\nfunction deepAssignDeleteNulls(target, source) {\n for (const key in source) {\n if (source[key] === null) {\n delete target[key];\n }\n else if (!!target[key] && typeof target[key] === 'object' && !!source[key] && typeof source[key] === 'object') {\n deepAssignDeleteNulls(target[key], source[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n}\n\nexport { Throttler, deepAssign, deepAssignDeleteNulls };\n//# sourceMappingURL=utils.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AutorunObserver } from '../../reactions/autorunImpl.js';\nimport { formatValue } from '../consoleObservableLogger.js';\nimport { registerDebugChannel } from './debuggerRpc.js';\nimport { Throttler, deepAssignDeleteNulls, deepAssign } from './utils.js';\nimport { FromEventObservable } from '../../observables/observableFromEvent.js';\nimport { onUnexpectedError, BugIndicatingError, isDefined } from '../../commonFacade/deps.js';\nimport { Derived } from '../../observables/derivedImpl.js';\nimport { ObservableValue } from '../../observables/observableValue.js';\nimport { DebugLocation } from '../../debugLocation.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DevToolsLogger {\n static getInstance() {\n if (DevToolsLogger._instance === undefined) {\n DevToolsLogger._instance = new DevToolsLogger();\n }\n return DevToolsLogger._instance;\n }\n getTransactionState() {\n const affected = [];\n const txs = [...this._activeTransactions];\n if (txs.length === 0) {\n return undefined;\n }\n const observerQueue = txs.flatMap(t => t.debugGetUpdatingObservers() ?? []).map(o => o.observer);\n const processedObservers = new Set();\n while (observerQueue.length > 0) {\n const observer = observerQueue.shift();\n if (processedObservers.has(observer)) {\n continue;\n }\n processedObservers.add(observer);\n const state = this._getInfo(observer, d => {\n if (!processedObservers.has(d)) {\n observerQueue.push(d);\n }\n });\n if (state) {\n affected.push(state);\n }\n }\n return { names: txs.map(t => t.getDebugName() ?? 'tx'), affected };\n }\n _getObservableInfo(observable) {\n const info = this._instanceInfos.get(observable);\n if (!info) {\n onUnexpectedError(new BugIndicatingError('No info found'));\n return undefined;\n }\n return info;\n }\n _getAutorunInfo(autorun) {\n const info = this._instanceInfos.get(autorun);\n if (!info) {\n onUnexpectedError(new BugIndicatingError('No info found'));\n return undefined;\n }\n return info;\n }\n _getInfo(observer, queue) {\n if (observer instanceof Derived) {\n const observersToUpdate = [...observer.debugGetObservers()];\n for (const o of observersToUpdate) {\n queue(o);\n }\n const info = this._getObservableInfo(observer);\n if (!info) {\n return;\n }\n const observerState = observer.debugGetState();\n const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: observerState.updateCount };\n const changedDependencies = [...info.changedObservables].map(o => this._instanceInfos.get(o)?.instanceId).filter(isDefined);\n if (observerState.isComputing) {\n return { ...base, type: 'observable/derived', state: 'updating', changedDependencies, initialComputation: false };\n }\n switch (observerState.state) {\n case 0 /* DerivedState.initial */:\n return { ...base, type: 'observable/derived', state: 'noValue' };\n case 3 /* DerivedState.upToDate */:\n return { ...base, type: 'observable/derived', state: 'upToDate' };\n case 2 /* DerivedState.stale */:\n return { ...base, type: 'observable/derived', state: 'stale', changedDependencies };\n case 1 /* DerivedState.dependenciesMightHaveChanged */:\n return { ...base, type: 'observable/derived', state: 'possiblyStale' };\n }\n }\n else if (observer instanceof AutorunObserver) {\n const info = this._getAutorunInfo(observer);\n if (!info) {\n return undefined;\n }\n const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: info.updateCount };\n const changedDependencies = [...info.changedObservables].map(o => this._instanceInfos.get(o).instanceId);\n if (observer.debugGetState().isRunning) {\n return { ...base, type: 'autorun', state: 'updating', changedDependencies };\n }\n switch (observer.debugGetState().state) {\n case 3 /* AutorunState.upToDate */:\n return { ...base, type: 'autorun', state: 'upToDate' };\n case 2 /* AutorunState.stale */:\n return { ...base, type: 'autorun', state: 'stale', changedDependencies };\n case 1 /* AutorunState.dependenciesMightHaveChanged */:\n return { ...base, type: 'autorun', state: 'possiblyStale' };\n }\n }\n return undefined;\n }\n _formatObservable(obs) {\n const info = this._getObservableInfo(obs);\n if (!info) {\n return undefined;\n }\n return { name: obs.debugName, instanceId: info.instanceId };\n }\n _formatObserver(obs) {\n if (obs instanceof Derived) {\n return { name: obs.toString(), instanceId: this._getObservableInfo(obs)?.instanceId };\n }\n const autorunInfo = this._getAutorunInfo(obs);\n if (autorunInfo) {\n return { name: obs.toString(), instanceId: autorunInfo.instanceId };\n }\n return undefined;\n }\n constructor() {\n this._declarationId = 0;\n this._instanceId = 0;\n this._declarations = new Map();\n this._instanceInfos = new WeakMap();\n this._aliveInstances = new Map();\n this._activeTransactions = new Set();\n this._channel = registerDebugChannel('observableDevTools', () => {\n return {\n notifications: {\n setDeclarationIdFilter: declarationIds => {\n },\n logObservableValue: (observableId) => {\n console.log('logObservableValue', observableId);\n },\n flushUpdates: () => {\n this._flushUpdates();\n },\n resetUpdates: () => {\n this._pendingChanges = null;\n this._channel.api.notifications.handleChange(this._fullState, true);\n },\n },\n requests: {\n getDeclarations: () => {\n const result = {};\n for (const decl of this._declarations.values()) {\n result[decl.id] = decl;\n }\n return { decls: result };\n },\n getSummarizedInstances: () => {\n return null;\n },\n getObservableValueInfo: instanceId => {\n const obs = this._aliveInstances.get(instanceId);\n return {\n observers: [...obs.debugGetObservers()].map(d => this._formatObserver(d)).filter(isDefined),\n };\n },\n getDerivedInfo: instanceId => {\n const d = this._aliveInstances.get(instanceId);\n return {\n dependencies: [...d.debugGetState().dependencies].map(d => this._formatObservable(d)).filter(isDefined),\n observers: [...d.debugGetObservers()].map(d => this._formatObserver(d)).filter(isDefined),\n };\n },\n getAutorunInfo: instanceId => {\n const obs = this._aliveInstances.get(instanceId);\n return {\n dependencies: [...obs.debugGetState().dependencies].map(d => this._formatObservable(d)).filter(isDefined),\n };\n },\n getTransactionState: () => {\n return this.getTransactionState();\n },\n setValue: (instanceId, jsonValue) => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs instanceof Derived) {\n obs.debugSetValue(jsonValue);\n }\n else if (obs instanceof ObservableValue) {\n obs.debugSetValue(jsonValue);\n }\n else if (obs instanceof FromEventObservable) {\n obs.debugSetValue(jsonValue);\n }\n else {\n throw new BugIndicatingError('Observable is not supported');\n }\n const observers = [...obs.debugGetObservers()];\n for (const d of observers) {\n d.beginUpdate(obs);\n }\n for (const d of observers) {\n d.handleChange(obs, undefined);\n }\n for (const d of observers) {\n d.endUpdate(obs);\n }\n },\n getValue: instanceId => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs instanceof Derived) {\n return formatValue(obs.debugGetState().value, 200);\n }\n else if (obs instanceof ObservableValue) {\n return formatValue(obs.debugGetState().value, 200);\n }\n return undefined;\n },\n logValue: (instanceId) => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs && 'get' in obs) {\n console.log('Logged Value:', obs.get());\n }\n else {\n throw new BugIndicatingError('Observable is not supported');\n }\n },\n rerun: (instanceId) => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs instanceof Derived) {\n obs.debugRecompute();\n }\n else if (obs instanceof AutorunObserver) {\n obs.debugRerun();\n }\n else {\n throw new BugIndicatingError('Observable is not supported');\n }\n },\n }\n };\n });\n this._pendingChanges = null;\n this._changeThrottler = new Throttler();\n this._fullState = {};\n this._flushUpdates = () => {\n if (this._pendingChanges !== null) {\n this._channel.api.notifications.handleChange(this._pendingChanges, false);\n this._pendingChanges = null;\n }\n };\n DebugLocation.enable();\n }\n _handleChange(update) {\n deepAssignDeleteNulls(this._fullState, update);\n if (this._pendingChanges === null) {\n this._pendingChanges = update;\n }\n else {\n deepAssign(this._pendingChanges, update);\n }\n this._changeThrottler.throttle(this._flushUpdates, 10);\n }\n _getDeclarationId(type, location) {\n if (!location) {\n return -1;\n }\n let decInfo = this._declarations.get(location.id);\n if (decInfo === undefined) {\n decInfo = {\n id: this._declarationId++,\n type,\n url: location.fileName,\n line: location.line,\n column: location.column,\n };\n this._declarations.set(location.id, decInfo);\n this._handleChange({ decls: { [decInfo.id]: decInfo } });\n }\n return decInfo.id;\n }\n handleObservableCreated(observable, location) {\n const declarationId = this._getDeclarationId('observable/value', location);\n const info = {\n declarationId,\n instanceId: this._instanceId++,\n listenerCount: 0,\n lastValue: undefined,\n updateCount: 0,\n changedObservables: new Set(),\n };\n this._instanceInfos.set(observable, info);\n }\n handleOnListenerCountChanged(observable, newCount) {\n const info = this._getObservableInfo(observable);\n if (!info) {\n return;\n }\n if (info.listenerCount === 0 && newCount > 0) {\n const type = observable instanceof Derived ? 'observable/derived' : 'observable/value';\n this._aliveInstances.set(info.instanceId, observable);\n this._handleChange({\n instances: {\n [info.instanceId]: {\n instanceId: info.instanceId,\n declarationId: info.declarationId,\n formattedValue: info.lastValue,\n type,\n name: observable.debugName,\n }\n }\n });\n }\n else if (info.listenerCount > 0 && newCount === 0) {\n this._handleChange({\n instances: { [info.instanceId]: null }\n });\n this._aliveInstances.delete(info.instanceId);\n }\n info.listenerCount = newCount;\n }\n handleObservableUpdated(observable, changeInfo) {\n if (observable instanceof Derived) {\n this._handleDerivedRecomputed(observable, changeInfo);\n return;\n }\n const info = this._getObservableInfo(observable);\n if (info) {\n if (changeInfo.didChange) {\n info.lastValue = formatValue(changeInfo.newValue, 30);\n if (info.listenerCount > 0) {\n this._handleChange({\n instances: { [info.instanceId]: { formattedValue: info.lastValue } }\n });\n }\n }\n }\n }\n handleAutorunCreated(autorun, location) {\n const declarationId = this._getDeclarationId('autorun', location);\n const info = {\n declarationId,\n instanceId: this._instanceId++,\n updateCount: 0,\n changedObservables: new Set(),\n };\n this._instanceInfos.set(autorun, info);\n this._aliveInstances.set(info.instanceId, autorun);\n if (info) {\n this._handleChange({\n instances: {\n [info.instanceId]: {\n instanceId: info.instanceId,\n declarationId: info.declarationId,\n runCount: 0,\n type: 'autorun',\n name: autorun.debugName,\n }\n }\n });\n }\n }\n handleAutorunDisposed(autorun) {\n const info = this._getAutorunInfo(autorun);\n if (!info) {\n return;\n }\n this._handleChange({\n instances: { [info.instanceId]: null }\n });\n this._instanceInfos.delete(autorun);\n this._aliveInstances.delete(info.instanceId);\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n const info = this._getAutorunInfo(autorun);\n if (!info) {\n return;\n }\n info.changedObservables.add(observable);\n }\n handleAutorunStarted(autorun) {\n }\n handleAutorunFinished(autorun) {\n const info = this._getAutorunInfo(autorun);\n if (!info) {\n return;\n }\n info.changedObservables.clear();\n info.updateCount++;\n this._handleChange({\n instances: { [info.instanceId]: { runCount: info.updateCount } }\n });\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n const info = this._getObservableInfo(derived);\n if (info) {\n info.changedObservables.add(observable);\n }\n }\n _handleDerivedRecomputed(observable, changeInfo) {\n const info = this._getObservableInfo(observable);\n if (!info) {\n return;\n }\n const formattedValue = formatValue(changeInfo.newValue, 30);\n info.updateCount++;\n info.changedObservables.clear();\n info.lastValue = formattedValue;\n if (info.listenerCount > 0) {\n this._handleChange({\n instances: { [info.instanceId]: { formattedValue: formattedValue, recomputationCount: info.updateCount } }\n });\n }\n }\n handleDerivedCleared(observable) {\n const info = this._getObservableInfo(observable);\n if (!info) {\n return;\n }\n info.lastValue = undefined;\n info.changedObservables.clear();\n if (info.listenerCount > 0) {\n this._handleChange({\n instances: {\n [info.instanceId]: {\n formattedValue: undefined,\n }\n }\n });\n }\n }\n handleBeginTransaction(transaction) {\n this._activeTransactions.add(transaction);\n }\n handleEndTransaction(transaction) {\n this._activeTransactions.delete(transaction);\n }\n}\nDevToolsLogger._instance = undefined;\n\nexport { DevToolsLogger };\n//# sourceMappingURL=devToolsLogger.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Derived } from '../observables/derivedImpl.js';\nimport { FromEventObservable } from '../observables/observableFromEvent.js';\nimport { ObservableValue } from '../observables/observableValue.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\nimport { formatValue } from './consoleObservableLogger.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction debugGetDependencyGraph(obs, options) {\n const debugNamePostProcessor = options?.debugNamePostProcessor ?? ((str) => str);\n const info = Info.from(obs, debugNamePostProcessor);\n if (!info) {\n return '';\n }\n const alreadyListed = new Set();\n return formatObservableInfo(info, 0, alreadyListed).trim();\n}\nfunction formatObservableInfo(info, indentLevel, alreadyListed) {\n const indent = '\\t\\t'.repeat(indentLevel);\n const lines = [];\n const isAlreadyListed = alreadyListed.has(info.sourceObj);\n if (isAlreadyListed) {\n lines.push(`${indent}* ${info.type} ${info.name} (already listed)`);\n return lines.join('\\n');\n }\n alreadyListed.add(info.sourceObj);\n lines.push(`${indent}* ${info.type} ${info.name}:`);\n lines.push(`${indent} value: ${formatValue(info.value, 50)}`);\n lines.push(`${indent} state: ${info.state}`);\n if (info.dependencies.length > 0) {\n lines.push(`${indent} dependencies:`);\n for (const dep of info.dependencies) {\n lines.push(formatObservableInfo(dep, indentLevel + 1, alreadyListed));\n }\n }\n return lines.join('\\n');\n}\nclass Info {\n static from(obs, debugNamePostProcessor) {\n if (obs instanceof AutorunObserver) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'autorun', undefined, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));\n }\n else if (obs instanceof Derived) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'derived', state.value, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));\n }\n else if (obs instanceof ObservableValue) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', []);\n }\n else if (obs instanceof FromEventObservable) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', []);\n }\n return undefined;\n }\n static unknown(obs) {\n return new Info(obs, '(unknown)', 'unknown', undefined, 'unknown', []);\n }\n constructor(sourceObj, name, type, value, state, dependencies) {\n this.sourceObj = sourceObj;\n this.name = name;\n this.type = type;\n this.value = value;\n this.state = state;\n this.dependencies = dependencies;\n }\n}\n\nexport { debugGetDependencyGraph };\n//# sourceMappingURL=debugGetDependencyGraph.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addLogger, setLogObservableFn } from './logging/logging.js';\nimport { _setDebugGetDependencyGraph } from './observables/baseObservable.js';\nexport { DebugLocation } from './debugLocation.js';\nexport { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observables/derived.js';\nexport { debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently } from './utils/utils.js';\nexport { observableFromEvent, observableFromEventOpts } from './observables/observableFromEvent.js';\nimport { logObservableToConsole } from './logging/consoleObservableLogger.js';\nimport { DevToolsLogger } from './logging/debugger/devToolsLogger.js';\nimport { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// This is a facade for the observable implementation. Only import from here!\n_setDebugGetDependencyGraph(debugGetDependencyGraph);\nsetLogObservableFn(logObservableToConsole);\n// To debug observables you also need the extension \"ms-vscode.debug-value-editor\"\naddLogger(DevToolsLogger.getInstance());\n//# sourceMappingURL=index.js.map\n","import { observableValue, derived, type IObservable, type IReader } from '@vscode/observables';\nimport type { ComponentDefinition, FixtureExport } from './ComponentDefinition.js';\nimport { createFixtureTree, findNodeByPath, type FixtureNode } from './FixtureNode.js';\n\n/**\n * Registry for discovered fixtures.\n * Holds the fixture tree as an observable for reactivity.\n */\nexport class FixtureRegistry {\n private readonly _fixtures = observableValue<Map<string, FixtureExport>>(this, new Map());\n\n /** Observable root of the fixture tree */\n readonly root: IObservable<FixtureNode> = derived(this, (reader) => {\n const fixtures = this._fixtures.read(reader);\n return createFixtureTree(fixtures);\n });\n\n /**\n * Registers a fixture file.\n * @param path The file path (e.g., 'components/Button.fixture.tsx')\n * @param fixtureExport The exported fixture object\n */\n register(path: string, fixtureExport: FixtureExport): void {\n const fixtures = new Map(this._fixtures.get());\n fixtures.set(path, fixtureExport);\n this._fixtures.set(fixtures, undefined);\n }\n\n /**\n * Unregisters a fixture file.\n * @param path The file path to remove\n */\n unregister(path: string): void {\n const fixtures = new Map(this._fixtures.get());\n if (fixtures.delete(path)) {\n this._fixtures.set(fixtures, undefined);\n }\n }\n\n /**\n * Clears all registered fixtures.\n */\n clear(): void {\n this._fixtures.set(new Map(), undefined);\n }\n\n /**\n * Gets a node by path.\n */\n getNode(reader: IReader, path: string[]): FixtureNode | undefined {\n const root = this.root.read(reader);\n return findNodeByPath(root, path);\n }\n\n /**\n * Gets a component by path (non-reactive, for use in preview iframe).\n * @param path Array of path segments (e.g., ['Button', 'Primary'])\n */\n getComponentByPath(path: string[]): ComponentDefinition | undefined {\n const fixtures = this._fixtures.get();\n const tree = createFixtureTree(fixtures);\n const node = findNodeByPath(tree, path);\n return node?.component;\n }\n}\n","import type { FixtureNode } from './FixtureNode.js';\nimport type { FixtureExport } from './ComponentDefinition.js';\nimport type { Disposable } from './DisplayMode.js';\nimport { createFixtureTree } from './FixtureNode.js';\nimport { getDefaultPropertyValues } from './PropertySchema.js';\n\nexport interface FixtureModules {\n\t[path: string]: { default?: unknown };\n}\n\ninterface FlatFixture {\n\treadonly fixtureId: string;\n\treadonly fixtureName: string;\n\treadonly groupPath: string[];\n}\n\ninterface CliApi {\n\treadonly sessionId: string;\n\treadonly updateVersion: number;\n\tlistFixtures(): FlatFixture[];\n\trenderFixture(fixtureId: string): Promise<void>;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t__componentExplorerCli__?: CliApi;\n\t}\n}\n\n/**\n * Runtime for the CLI/screenshot mode.\n * Manages fixture registration, rendering, and HMR versioning.\n * Installs itself as `window.__componentExplorerCli__`.\n */\nexport class CliRuntime {\n\treadonly sessionId = Math.random().toString(36).slice(2);\n\tprivate _updateVersion = 0;\n\tprivate _root: FixtureNode;\n\tprivate _fixtureModules: FixtureModules;\n\tprivate _currentDisposable: Disposable | undefined;\n\tprivate _currentContainer: HTMLElement | undefined;\n\n\tconstructor(\n\t\tprivate readonly _containerElement: HTMLElement,\n\t\tfixtureModules: FixtureModules,\n\t) {\n\t\tthis._fixtureModules = fixtureModules;\n\t\tthis._root = this._buildRegistry();\n\t\tthis._installGlobalApi();\n\n\t\tconst count = this._flattenFixtures(this._root).length;\n\t\tconsole.log('[cli] CLI entry initialized, sessionId:', this.sessionId, 'version:', this._updateVersion, 'fixtures:', count);\n\t}\n\n\tget updateVersion(): number {\n\t\treturn this._updateVersion;\n\t}\n\n\tupdateFixtures(fixtureModules: FixtureModules): void {\n\t\tthis._fixtureModules = fixtureModules;\n\t\tthis._root = this._buildRegistry();\n\t\tthis._updateVersion++;\n\t\tconst count = this._flattenFixtures(this._root).length;\n\t\tconsole.log('[cli] Registry rebuilt, version:', this._updateVersion, 'fixtures:', count);\n\t}\n\n\tbumpVersion(): void {\n\t\tthis._updateVersion++;\n\t\tconsole.log('[cli] Version bumped:', this._updateVersion);\n\t}\n\n\tlistFixtures(): FlatFixture[] {\n\t\treturn this._flattenFixtures(this._root);\n\t}\n\n\tasync renderFixture(fixtureId: string): Promise<void> {\n\t\tconst node = this._findFixtureNode(this._root, fixtureId);\n\t\tif (!node || !node.component) {\n\t\t\tthrow new Error('Fixture not found: ' + fixtureId);\n\t\t}\n\n\t\tif (this._currentDisposable) {\n\t\t\tthis._currentDisposable.dispose();\n\t\t\tthis._currentDisposable = undefined;\n\t\t}\n\t\tif (this._currentContainer) {\n\t\t\tthis._currentContainer.remove();\n\t\t\tthis._currentContainer = undefined;\n\t\t}\n\n\t\tconst container = document.createElement('div');\n\t\tthis._containerElement.appendChild(container);\n\t\tthis._currentContainer = container;\n\n\t\tconst def = node.component;\n\t\tconst defaultProps = getDefaultPropertyValues(def.properties);\n\n\t\tlet renderTarget = container;\n\t\tif (def.isolation === 'shadow-dom') {\n\t\t\tconst shadow = container.attachShadow({ mode: 'open' });\n\t\t\trenderTarget = document.createElement('div');\n\t\t\tshadow.appendChild(renderTarget);\n\t\t}\n\n\t\tconst result = def.render(renderTarget, defaultProps);\n\t\tthis._currentDisposable = result && typeof result === 'object' && 'dispose' in result ? result as Disposable : undefined;\n\n\t\tawait new Promise<void>(resolve => requestAnimationFrame(() => requestAnimationFrame(() => resolve())));\n\t}\n\n\tprivate _buildRegistry(): FixtureNode {\n\t\tconst fixtures = new Map<string, FixtureExport>();\n\t\tfor (const [path, module] of Object.entries(this._fixtureModules)) {\n\t\t\tconst fixture = module.default;\n\t\t\tif (fixture && typeof fixture === 'object') {\n\t\t\t\tfixtures.set(path, fixture as FixtureExport);\n\t\t\t}\n\t\t}\n\t\treturn createFixtureTree(fixtures);\n\t}\n\n\tprivate _flattenFixtures(node: FixtureNode, groupPath: string[] = []): FlatFixture[] {\n\t\tconst results: FlatFixture[] = [];\n\t\tif (node.type === 'component') {\n\t\t\tresults.push({ fixtureId: node.id, fixtureName: node.name, groupPath });\n\t\t}\n\t\tfor (const child of node.children ?? []) {\n\t\t\tconst nextPath = node.id ? [...groupPath, node.name] : groupPath;\n\t\t\tresults.push(...this._flattenFixtures(child, nextPath));\n\t\t}\n\t\treturn results;\n\t}\n\n\tprivate _findFixtureNode(node: FixtureNode, fixtureId: string): FixtureNode | undefined {\n\t\tif (node.id === fixtureId) return node;\n\t\tfor (const child of node.children ?? []) {\n\t\t\tconst found = this._findFixtureNode(child, fixtureId);\n\t\t\tif (found) return found;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate _installGlobalApi(): void {\n\t\twindow.__componentExplorerCli__ = {\n\t\t\tsessionId: this.sessionId,\n\t\t\tget updateVersion() { return 0; },\n\t\t\tlistFixtures: () => this.listFixtures(),\n\t\t\trenderFixture: (id) => this.renderFixture(id),\n\t\t};\n\t\t// Use a property descriptor so `updateVersion` reads live from this instance\n\t\tObject.defineProperty(window.__componentExplorerCli__, 'updateVersion', {\n\t\t\tget: () => this._updateVersion,\n\t\t});\n\t}\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass ManualChangesHandler {\n constructor(_run) {\n this._run = _run;\n this._changes = [];\n this._map = new Map();\n this._updateCounter = 0;\n }\n addDependency(observable, data) {\n this._map.set(observable, data);\n observable.addObserver(this);\n return {\n dispose: () => {\n this._map.delete(observable);\n observable.removeObserver(this);\n }\n };\n }\n beginUpdate(observable) {\n this._updateCounter++;\n this._changes.push(this._map.get(observable));\n }\n endUpdate(_observable) {\n this._updateCounter--;\n if (this._updateCounter === 0) {\n if (this._changes.length > 0) {\n const c = this._changes;\n this._changes = [];\n this._run(c);\n }\n }\n }\n handlePossibleChange(observable) {\n this._changes.push(this._map.get(observable));\n }\n handleChange(_observable, _change) {\n //this._changes.push(this._map.get(observable)!);\n }\n}\n\nexport { ManualChangesHandler };\n//# sourceMappingURL=ManualChangesHandler.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { derived } from '@vscode/observables';\n\n/**\n * Takes a value of type `T` and makes it available as `IObservable<T>`.\n * When it changes, the component will not re-render.\n */\nfunction prop() {\n return PropertyTransformerFactory.instance;\n}\n/**\n * Takes a value of type `T` and makes it available as `T`.\n * When it changes, the component will re-render.\n */\nfunction propConst() {\n return PropertyConstTransformerFactory.instance;\n}\n/**\n * Takes a value of type `T` or `IObservable<T>` and makes it available as `IObservable<T>`.\n * When it changes, the component will not re-render.\n */\nfunction propObs() {\n return PropertyObsTransformerFactory.instance;\n}\nprop.const = propConst;\nprop.obs = propObs;\nclass PropertyTransformerFactory {\n create(readableProp) {\n const d = derived(reader => readableProp(reader));\n return { read: (_reader) => d };\n }\n}\nPropertyTransformerFactory.instance = new PropertyTransformerFactory();\nclass PropertyConstTransformerFactory {\n create(readableProp) {\n const d = derived(reader => readableProp(reader));\n return { read: (reader) => d.read(reader) };\n }\n}\nPropertyConstTransformerFactory.instance = new PropertyConstTransformerFactory();\nclass PropertyObsTransformerFactory {\n create(readableProp) {\n const d = derived(reader => {\n const v = readableProp(reader);\n if (isObservable(v)) {\n return v.read(reader);\n }\n else {\n return v;\n }\n });\n return { read: (_reader) => d };\n }\n}\nPropertyObsTransformerFactory.instance = new PropertyObsTransformerFactory();\nfunction isObservable(obs) {\n return typeof obs === \"object\" && obs !== null && \"read\" in obs;\n}\n\nexport { prop };\n//# sourceMappingURL=IPropertyTransformer.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Maps over an object's values, returning a new object with the same keys\n * but transformed values.\n */\nfunction mapObject(obj, fn) {\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value, key)]));\n}\n\nexport { mapObject };\n//# sourceMappingURL=utils.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DisposableStore } from '@vscode/observables';\nimport { createContext } from 'react';\n\n// Symbol to store the context on the ViewModel class\nconst ViewModelContextSymbol = Symbol('ViewModelContext');\nclass BaseViewModel {\n constructor(props) {\n this._store = new DisposableStore();\n this.props = props;\n }\n dispose() {\n this._store.dispose();\n }\n}\n/** Get or create the context for a ViewModel class */\nfunction getOrCreateViewModelContext(ctor) {\n if (!ctor[ViewModelContextSymbol]) {\n ctor[ViewModelContextSymbol] =\n createContext(undefined);\n }\n return ctor[ViewModelContextSymbol];\n}\nfunction ViewModel(props = {}) {\n var _a;\n return _a = class extends BaseViewModel {\n },\n _a._props = props,\n _a;\n}\n\nexport { BaseViewModel, ViewModel, ViewModelContextSymbol, getOrCreateViewModelContext };\n//# sourceMappingURL=viewModel.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { useReducer, useState, useContext, useEffect } from 'react';\nimport { observableValue, derived } from '@vscode/observables';\nimport { ManualChangesHandler } from './ManualChangesHandler.js';\nimport { unstable_batchedUpdates } from 'react-dom';\n\nlet renderingCount = 0;\nconst batchedUpdater = new ManualChangesHandler(potentialChanges => {\n for (const change of potentialChanges) {\n change.rendered = false;\n }\n if (renderingCount > 0) {\n const rendering = potentialChanges.find(c => c.isRendering);\n rendering.itemsToRender = potentialChanges;\n }\n else {\n unstable_batchedUpdates(() => {\n for (const change of potentialChanges) {\n if (!change.rendered) {\n change.forceUpdate();\n }\n }\n });\n }\n});\nlet viewIdx = 0;\nclass ViewImpl {\n constructor(debugName, renderFactory) {\n this.debugName = debugName;\n this.renderFactory = renderFactory;\n this._obsProps = undefined;\n this.forceUpdate = undefined;\n this._render = undefined;\n this._disposable = undefined;\n this.contextValues = new Map();\n this.cleanupEffect = () => {\n return () => {\n this._disposable?.dispose();\n };\n };\n this.itemsToRender = [];\n this.handleAfterRender = () => {\n unstable_batchedUpdates(() => {\n for (const change of this.itemsToRender) {\n if (!change.rendered) {\n change.forceUpdate();\n }\n }\n });\n this.itemsToRender = [];\n };\n this.rendering = undefined;\n this.isRendering = false;\n this.rendered = false;\n }\n toString() {\n return this.debugName;\n }\n updateProps(props) {\n if (!this._obsProps) {\n this._obsProps = observableValue(this, props);\n this._render = this.renderFactory(this._obsProps, () => this.contextValues);\n this.rendering = derived(this, this._render);\n this._disposable = batchedUpdater.addDependency(this.rendering, this);\n }\n else {\n this._obsProps.set(props, undefined);\n }\n }\n}\nfunction obsView(componentName, render, contexts) {\n const plusOne = (x) => x + 1;\n const createVM = () => new ViewImpl(componentName + (++viewIdx), render);\n const fn = function (props) {\n const forceUpdate = useReducer(plusOne, 0)[1];\n const state = useState(createVM)[0];\n // Read and update context values each render\n for (const ctx of contexts ?? []) {\n state.contextValues.set(ctx, useContext(ctx)); // eslint-disable-line react-hooks/rules-of-hooks\n }\n useEffect(state.cleanupEffect, []);\n useEffect(state.handleAfterRender);\n if (state.isRendering) {\n throw new Error(\"Component is already rendering\");\n }\n state.isRendering = true;\n renderingCount++;\n try {\n state.forceUpdate = forceUpdate;\n state.updateProps(props);\n const result = state.rendering.get();\n state.rendered = true;\n return result;\n }\n finally {\n state.isRendering = false;\n renderingCount--;\n }\n };\n fn.displayName = componentName;\n return fn;\n}\nconst ObsView = obsView('ObsView', (props) => reader => props.read(reader).children(reader));\n\nexport { ObsView, obsView };\n//# sourceMappingURL=obsView.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { obsView } from './obsView.js';\nimport { mapObject } from './utils.js';\n\n/**\n * Creates a React component with typed observable props.\n * Props are transformed according to their IPropertyTransformerFactory.\n */\nfunction view(props, render) {\n return obsView('view', (p) => {\n const readableProps = mapObject(props, (value, key) => {\n return value.create(reader => p.read(reader)[key], undefined);\n });\n return reader => {\n const propValues = mapObject(readableProps, (value) => {\n return value.read(reader);\n });\n return render(reader, propValues);\n };\n });\n}\n\nexport { view };\n//# sourceMappingURL=view.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { derivedDisposable } from '@vscode/observables';\nimport { obsView } from './obsView.js';\nimport { mapObject } from './utils.js';\nimport { getOrCreateViewModelContext } from './viewModel.js';\n\n/** Collect unique _requiredContext from transformers */\nfunction collectRequiredContexts(propsDesc) {\n const contexts = [];\n for (const t of Object.values(propsDesc)) {\n const ctx = t._requiredContext;\n if (ctx && !contexts.includes(ctx))\n contexts.push(ctx);\n }\n return contexts;\n}\nfunction viewWithModel(viewModelCtor, propsOrRender, maybeRender) {\n const props = typeof propsOrRender === 'function' ? {} : propsOrRender;\n const render = typeof propsOrRender === 'function' ? propsOrRender : maybeRender;\n const modelPropsDesc = '_props' in viewModelCtor ? viewModelCtor._props : {};\n const requiredContexts = collectRequiredContexts({ ...modelPropsDesc, ...props });\n // Always create the context so ProvideViewModel can work\n const viewModelContext = getOrCreateViewModelContext(viewModelCtor);\n const allContexts = [...requiredContexts, viewModelContext];\n return obsView('viewWithModel', (p, getContextValues) => {\n const contextValues = getContextValues();\n const providedModel = contextValues.get(viewModelContext);\n const readableModelProps = '_props' in viewModelCtor\n ? mapObject(viewModelCtor._props, (v, k) => v.create((r) => p.read(r)[k], contextValues.get(v._requiredContext)))\n : {};\n const model = providedModel\n ? { read: () => providedModel, dispose: () => { } }\n : derivedDisposable(reader => {\n const modelProps = mapObject(readableModelProps, (v) => v.read(reader));\n return new viewModelCtor(modelProps);\n });\n const readableProps = mapObject(props, (v, k) => v.create((r) => p.read(r)[k], contextValues.get(v._requiredContext)));\n return (reader) => {\n const m = model.read(reader);\n const propValues = mapObject(readableProps, (v) => v.read(reader));\n return render(reader, m, propValues);\n };\n }, allContexts.length > 0 ? allContexts : undefined);\n}\n\nexport { viewWithModel };\n//# sourceMappingURL=viewWithModel.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { jsx } from 'react/jsx-runtime';\nimport { prop } from './IPropertyTransformer.js';\nimport { view } from './view.js';\n\n/**\n * A component that renders an observable ReactNode value.\n * Re-renders when the observable changes.\n * Usage: <Value value={myObservable} />\n */\nconst Value = view({ value: prop.obs() }, (reader, props) => {\n return props.value.read(reader);\n});\n/**\n * Helper function to render an observable as inline JSX.\n * Usage: {val(myObservable)}\n */\nfunction val(v) {\n return jsx(Value, { value: v });\n}\n\nexport { Value, val };\n//# sourceMappingURL=Value.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { jsx } from 'react/jsx-runtime';\nimport { createContext, useContext } from 'react';\nimport { derived } from '@vscode/observables';\n\nfunction createServiceKey(nameOrCtor) {\n const name = typeof nameOrCtor === 'string' ? nameOrCtor : nameOrCtor.name;\n return { _brand: undefined, id: Symbol(name), name };\n}\n// =============================================================================\n// DI Container\n// =============================================================================\nclass DIContainer {\n constructor(parent = null) {\n this._services = new Map();\n this._parent = parent;\n }\n register(key, service) {\n this._services.set(key.id, service);\n return this;\n }\n get(key) {\n const service = this._services.get(key.id);\n if (service !== undefined)\n return service;\n if (this._parent)\n return this._parent.get(key);\n throw new Error(`Service \"${key.name}\" not registered`);\n }\n has(key) {\n return this._services.has(key.id) || (this._parent?.has(key) ?? false);\n }\n createChild() {\n return new DIContainer(this);\n }\n}\n// =============================================================================\n// React Context\n// =============================================================================\nconst DIContext = createContext(null);\nfunction DIProvider({ container, children }) {\n return jsx(DIContext.Provider, { value: container, children: children });\n}\nfunction useDIContainer() {\n const container = useContext(DIContext);\n if (!container)\n throw new Error(\"DIProvider not found\");\n return container;\n}\n// =============================================================================\n// inject() - Property Transformer for DI\n// =============================================================================\nclass InjectTransformerFactory {\n constructor(serviceKey) {\n this.serviceKey = serviceKey;\n this._requiredContext = DIContext;\n }\n create(readable, contextValue) {\n const container = contextValue;\n let cachedService;\n return derived(reader => {\n // Check if an explicit value was provided as a prop\n const explicitValue = readable(reader);\n if (explicitValue !== undefined) {\n return explicitValue;\n }\n // Otherwise, use DI container (cached)\n if (cachedService === undefined) {\n if (!container)\n throw new Error(`inject(${this.serviceKey.name}): DIProvider not found`);\n cachedService = container.get(this.serviceKey);\n }\n return cachedService;\n });\n }\n}\n/** Inject a service from DIContainer into a ViewModel property */\nfunction inject(key) {\n return new InjectTransformerFactory(key);\n}\n\nexport { DIContainer, DIContext, DIProvider, createServiceKey, inject, useDIContainer };\n//# sourceMappingURL=di.js.map\n","import type { FixtureNode, ComponentDefinition } from '../core/index.js';\n\n/**\n * Explorer's tree node structure, derived from FixtureNode.\n * This is the explorer's own representation of the fixture tree.\n */\nexport interface ExplorerTreeNode {\n readonly id: string;\n readonly name: string;\n readonly type: 'folder' | 'variants' | 'component';\n readonly children?: readonly ExplorerTreeNode[];\n readonly component?: ComponentDefinition;\n}\n\n/**\n * Converts a FixtureNode tree to ExplorerTreeNode tree.\n * This allows the explorer to have its own tree structure.\n */\nexport function toExplorerTree(node: FixtureNode): ExplorerTreeNode {\n return {\n id: node.id,\n name: node.name,\n type: node.type,\n children: node.children?.map(toExplorerTree),\n component: node.component,\n };\n}\n","import { observableValue, type ISettableObservable } from '@vscode/observables';\n\nexport interface LocalStorageObservableOptions<T> {\n readonly storageKey: string;\n readonly defaultValue: T;\n /** Serialize value to string for localStorage. Defaults to JSON.stringify. */\n readonly serialize?: (value: T) => string;\n /** Deserialize string from localStorage. Defaults to JSON.parse. */\n readonly deserialize?: (raw: string) => T;\n}\n\n/**\n * Creates an observable that persists its value to localStorage.\n * The value is loaded from localStorage on creation (if present),\n * and saved to localStorage whenever it changes.\n */\nexport function createLocalStorageObservable<T>(\n owner: object,\n options: LocalStorageObservableOptions<T>\n): ISettableObservable<T> {\n const {\n storageKey,\n defaultValue,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n } = options;\n\n // Try to load from localStorage\n let initialValue = defaultValue;\n try {\n const stored = localStorage.getItem(storageKey);\n if (stored !== null) {\n initialValue = deserialize(stored);\n }\n } catch {\n // Ignore parse errors, use default\n }\n\n const obs = observableValue<T>(owner, initialValue);\n\n // Wrap the set method to persist to localStorage\n const originalSet = obs.set.bind(obs);\n obs.set = (value: T, tx: undefined) => {\n try {\n localStorage.setItem(storageKey, serialize(value));\n } catch {\n // Ignore storage errors (quota exceeded, etc.)\n }\n originalSet(value, tx);\n };\n\n return obs;\n}\n","import { observableValue, derived, IReader } from '@vscode/observables';\nimport { ViewModel, prop } from '@vscode/observables-react';\nimport type { FixtureRegistry, ComponentDefinition } from '../core/index.js';\nimport { type ExplorerTreeNode, toExplorerTree } from './types.js';\nimport { createLocalStorageObservable } from '../lib/localStorageObservable.js';\n\n/**\n * A fixture item to be rendered in the preview area.\n */\nexport interface FixtureItem {\n readonly id: string;\n readonly name: string;\n readonly path: string;\n readonly component: ComponentDefinition;\n}\n\n/**\n * A preview row can be either a single fixture or a horizontal variant group.\n */\nexport type PreviewRow =\n | { readonly type: 'single'; readonly fixture: FixtureItem }\n | { readonly type: 'variants'; readonly id: string; readonly name: string; readonly path: string; readonly fixtures: readonly FixtureItem[] };\n\nexport class ExplorerModel extends ViewModel({\n registry: prop.const<FixtureRegistry>(),\n}) {\n readonly leftSidebarVisible = createLocalStorageObservable<boolean>(this, {\n storageKey: 'component-explorer:leftSidebarVisible',\n defaultValue: true,\n });\n readonly rightSidebarVisible = createLocalStorageObservable<boolean>(this, {\n storageKey: 'component-explorer:rightSidebarVisible',\n defaultValue: true,\n });\n readonly isDarkTheme = createLocalStorageObservable<boolean>(this, {\n storageKey: 'component-explorer:isDarkTheme',\n defaultValue: true,\n });\n readonly selectedNodeId = createLocalStorageObservable<string | undefined>(this, {\n storageKey: 'component-explorer:selectedNodeId',\n defaultValue: undefined,\n });\n readonly expandedNodeIds = observableValue<ReadonlySet<string>>(this, new Set());\n\n /** The explorer's tree derived from the registry */\n readonly tree = derived(this, (reader) => {\n const root = this.props.registry.root.read(reader);\n return toExplorerTree(root);\n });\n\n readonly selectedNode = derived(this, (reader) => {\n const nodeId = this.selectedNodeId.read(reader);\n if (!nodeId) return undefined;\n const tree = this.tree.read(reader);\n return this._findNode(tree.children ?? [], nodeId);\n });\n\n /** List of preview rows to render based on current selection */\n readonly selectedFixtures = derived(this, (reader): readonly PreviewRow[] => {\n const selectedNode = this.selectedNode.read(reader);\n if (!selectedNode) return [];\n return this._collectPreviewRows(selectedNode, selectedNode.name);\n });\n\n toggleLeftSidebar = (): void => {\n this.leftSidebarVisible.set(!this.leftSidebarVisible.get(), undefined);\n };\n\n toggleRightSidebar = (): void => {\n this.rightSidebarVisible.set(!this.rightSidebarVisible.get(), undefined);\n };\n\n toggleTheme = (): void => {\n this.isDarkTheme.set(!this.isDarkTheme.get(), undefined);\n };\n\n selectNode = (nodeId: string): void => {\n this.selectedNodeId.set(nodeId, undefined);\n };\n\n toggleNodeExpanded = (nodeId: string): void => {\n const current = this.expandedNodeIds.get();\n const newSet = new Set(current);\n if (newSet.has(nodeId)) {\n newSet.delete(nodeId);\n } else {\n newSet.add(nodeId);\n }\n this.expandedNodeIds.set(newSet, undefined);\n };\n\n isNodeExpanded(nodeId: string, reader: IReader): boolean {\n return this.expandedNodeIds.read(reader).has(nodeId);\n }\n\n private _findNode(nodes: readonly ExplorerTreeNode[], id: string): ExplorerTreeNode | undefined {\n for (const node of nodes) {\n if (node.id === id) return node;\n if (node.children) {\n const found = this._findNode(node.children, id);\n if (found) return found;\n }\n }\n return undefined;\n }\n\n private _collectPreviewRows(node: ExplorerTreeNode, pathPrefix: string): PreviewRow[] {\n if (node.type === 'component' && node.component) {\n return [{\n type: 'single',\n fixture: {\n id: node.id,\n name: node.name,\n path: pathPrefix,\n component: node.component,\n },\n }];\n }\n\n if (node.type === 'variants') {\n // Collect all variant children as a single horizontal row\n const fixtures: FixtureItem[] = [];\n for (const child of node.children ?? []) {\n if (child.type === 'component' && child.component) {\n fixtures.push({\n id: child.id,\n name: child.name,\n path: `${pathPrefix} / ${child.name}`,\n component: child.component,\n });\n }\n }\n if (fixtures.length > 0) {\n return [{\n type: 'variants',\n id: node.id,\n name: node.name,\n path: pathPrefix,\n fixtures,\n }];\n }\n return [];\n }\n\n // Folder: recurse into children\n const result: PreviewRow[] = [];\n for (const child of node.children ?? []) {\n const childPath = pathPrefix ? `${pathPrefix} / ${child.name}` : child.name;\n result.push(...this._collectPreviewRows(child, childPath));\n }\n return result;\n }\n}\n","import * as React from 'react';\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row' as const,\n height: '100%',\n width: '100%',\n fontFamily: 'var(--vscode-font-family)',\n fontSize: 'var(--vscode-font-size)',\n color: 'var(--vscode-foreground)',\n backgroundColor: 'var(--vscode-editor-background)',\n },\n centerArea: {\n display: 'flex',\n flexDirection: 'column' as const,\n flex: 1,\n overflow: 'hidden',\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: '35px',\n minHeight: '35px',\n padding: '0 10px',\n backgroundColor: 'var(--vscode-titleBar-activeBackground)',\n color: 'var(--vscode-titleBar-activeForeground)',\n borderBottom: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n titleBarSection: {\n display: 'flex',\n alignItems: 'center',\n gap: '2px',\n },\n titleBarCenter: {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n fontSize: '13px',\n fontWeight: 400,\n },\n titleBarButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '28px',\n height: '28px',\n border: 'none',\n background: 'transparent',\n color: 'var(--vscode-titleBar-activeForeground)',\n cursor: 'pointer',\n borderRadius: '4px',\n },\n titleBarButtonHover: {\n backgroundColor: 'var(--vscode-toolbar-hoverBackground)',\n },\n titleBarButtonActive: {\n backgroundColor: 'var(--vscode-toolbar-activeBackground)',\n color: 'var(--vscode-focusBorder)',\n },\n sidebar: {\n display: 'flex',\n flexDirection: 'column' as const,\n width: '260px',\n minWidth: '200px',\n backgroundColor: 'var(--vscode-sideBar-background)',\n borderRight: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n sidebarRight: {\n borderRight: 'none',\n borderLeft: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n sidebarHeader: {\n display: 'flex',\n alignItems: 'center',\n height: '35px',\n minHeight: '35px',\n padding: '0 12px',\n fontSize: '11px',\n fontWeight: 700,\n textTransform: 'uppercase' as const,\n letterSpacing: '0.04em',\n color: 'var(--vscode-titleBar-activeForeground)',\n backgroundColor: 'var(--vscode-titleBar-activeBackground)',\n borderBottom: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n sidebarContent: {\n flex: 1,\n overflow: 'auto',\n padding: '4px 0',\n },\n treeItem: {\n display: 'flex',\n alignItems: 'center',\n height: '22px',\n paddingRight: '8px',\n cursor: 'pointer',\n userSelect: 'none' as const,\n },\n treeItemSelected: {\n backgroundColor: 'var(--vscode-list-activeSelectionBackground)',\n color: 'var(--vscode-list-activeSelectionForeground)',\n },\n treeItemHover: {\n backgroundColor: 'var(--vscode-list-hoverBackground)',\n },\n treeItemChevron: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '16px',\n height: '16px',\n color: 'var(--vscode-foreground)',\n opacity: 0.8,\n cursor: 'pointer',\n },\n treeItemChevronPlaceholder: {\n width: '16px',\n },\n treeItemIcon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '16px',\n height: '16px',\n marginRight: '4px',\n },\n treeItemLabel: {\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap' as const,\n fontSize: '13px',\n },\n treeItemCount: {\n marginLeft: '8px',\n fontSize: '11px',\n color: 'var(--vscode-descriptionForeground)',\n },\n mainContent: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--vscode-editor-background)',\n color: 'var(--vscode-descriptionForeground)',\n fontSize: '14px',\n },\n propertiesPanel: {\n padding: '12px',\n },\n propertyRow: {\n marginBottom: '12px',\n },\n propertyLabel: {\n fontSize: '12px',\n color: 'var(--vscode-foreground)',\n marginBottom: '4px',\n },\n propertyDescription: {\n fontSize: '11px',\n color: 'var(--vscode-descriptionForeground)',\n marginTop: '2px',\n },\n propertyInput: {\n width: '100%',\n height: '26px',\n padding: '0 8px',\n fontSize: '13px',\n color: 'var(--vscode-input-foreground)',\n backgroundColor: 'var(--vscode-input-background)',\n border: '1px solid var(--vscode-input-border, transparent)',\n borderRadius: '2px',\n outline: 'none',\n boxSizing: 'border-box' as const,\n },\n propertySelect: {\n width: '100%',\n height: '26px',\n padding: '0 8px',\n fontSize: '13px',\n color: 'var(--vscode-dropdown-foreground)',\n backgroundColor: 'var(--vscode-dropdown-background)',\n border: '1px solid var(--vscode-dropdown-border)',\n borderRadius: '2px',\n outline: 'none',\n boxSizing: 'border-box' as const,\n cursor: 'pointer',\n },\n} as const;\n\n// Helper to merge styles\nexport function mergeStyles(...styleObjects: (React.CSSProperties | undefined | false)[]): React.CSSProperties {\n return Object.assign({}, ...styleObjects.filter(Boolean));\n}\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport { styles, mergeStyles } from './styles.js';\n\nclass TitleBarButtonModel extends ViewModel({\n active: prop<boolean>(),\n}) {\n readonly isHovered = observableValue<boolean>(this, false);\n\n get active() { return this.props.active; }\n\n setHovered = (hovered: boolean): void => {\n this.isHovered.set(hovered, undefined);\n };\n}\n\nexport const TitleBarButton = viewWithModel(\n TitleBarButtonModel,\n {\n onClick: prop.const<() => void>(),\n title: prop.const<string>(),\n children: prop.const<React.ReactNode>(),\n },\n (reader, model, props) => {\n const isHovered = model.isHovered.read(reader);\n const active = model.active.read(reader);\n\n const buttonStyle = mergeStyles(\n styles.titleBarButton,\n isHovered && !active && styles.titleBarButtonHover,\n active && styles.titleBarButtonActive,\n );\n\n return (\n <button\n style={buttonStyle}\n onClick={props.onClick}\n title={props.title}\n onMouseEnter={() => model.setHovered(true)}\n onMouseLeave={() => model.setHovered(false)}\n >\n {props.children}\n </button>\n );\n }\n);\n","import * as React from 'react';\n\nexport const ChevronRightIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M5.7 13.7L5 13l4.6-4.6L5 3.7l.7-.7 5.3 5.4-5.3 5.3z\" />\n </svg>\n);\n\nexport const ChevronDownIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M11 5.5L6 10.5L5.3 9.8L9.6 5.5L5.3 1.2L6 0.5L11 5.5z\" transform=\"rotate(90 8 5.5)\" />\n </svg>\n);\n\nexport const ComponentIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M14.5 2H9l-.35.15-.65.64-.65-.64L7 2H1.5l-.5.5v10l.5.5H7l.35-.15.65-.64.65.64.35.15h5.5l.5-.5v-10l-.5-.5zm-7 10H2V3h5v.86L5.85 5l1.15 1.14V10l-1.15-1.14L7 7.72V12zm6 0H8V7.72l1.15 1.14L8 10V6.14L9.15 5 8 3.86V3h5v9z\" />\n </svg>\n);\n\nexport const FolderIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M14.5 3H7.71l-.85-.85L6.5 2h-5l-.5.5v11l.5.5h13l.5-.5v-10l-.5-.5zm-.5 10H2V6h12v7zm0-8H2V3h4.29l.85.85.36.15H14v1z\" />\n </svg>\n);\n\nexport const PanelLeftIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M2 2v12h12V2H2zm11 11H6V3h7v10zM3 3h2v10H3V3z\" />\n </svg>\n);\n\nexport const PanelRightIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M2 2v12h12V2H2zm6 11V3h5v10H8zM3 3h4v10H3V3z\" />\n </svg>\n);\n\nexport const SunIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z\" />\n </svg>\n);\n\nexport const MoonIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z\" />\n </svg>\n);\n","import { view, prop } from '@vscode/observables-react';\nimport { styles } from './styles.js';\nimport { TitleBarButton } from './TitleBarButton.js';\nimport { PanelLeftIcon, PanelRightIcon, SunIcon, MoonIcon } from './icons.js';\nimport type { ExplorerModel } from './ExplorerModel.js';\n\nexport const TitleBar = view(\n {\n model: prop.const<ExplorerModel>(),\n },\n (reader, props) => {\n const model = props.model;\n const leftVisible = model.leftSidebarVisible.read(reader);\n const rightVisible = model.rightSidebarVisible.read(reader);\n const isDarkTheme = model.isDarkTheme.read(reader);\n const selectedNode = model.selectedNode.read(reader);\n\n return (\n <div style={styles.titleBar}>\n <div style={styles.titleBarSection}>\n <TitleBarButton\n active={leftVisible}\n onClick={model.toggleLeftSidebar}\n title=\"Toggle left sidebar\"\n >\n <PanelLeftIcon />\n </TitleBarButton>\n </div>\n <div style={styles.titleBarCenter}>\n {selectedNode ? (\n <>\n <span style={{ color: 'var(--vscode-textLink-foreground)' }}><</span>\n <span>{selectedNode.name}</span>\n <span style={{ color: 'var(--vscode-textLink-foreground)' }}>/></span>\n </>\n ) : (\n <span style={{ color: 'var(--vscode-descriptionForeground)' }}>No component selected</span>\n )}\n </div>\n <div style={styles.titleBarSection}>\n <TitleBarButton\n active={false}\n onClick={model.toggleTheme}\n title={isDarkTheme ? 'Switch to light theme' : 'Switch to dark theme'}\n >\n {isDarkTheme ? <SunIcon /> : <MoonIcon />}\n </TitleBarButton>\n <TitleBarButton\n active={rightVisible}\n onClick={model.toggleRightSidebar}\n title=\"Toggle right sidebar\"\n >\n <PanelRightIcon />\n </TitleBarButton>\n </div>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport { styles, mergeStyles } from './styles.js';\nimport { ChevronRightIcon, ChevronDownIcon, ComponentIcon, FolderIcon } from './icons.js';\nimport type { ExplorerModel } from './ExplorerModel.js';\nimport type { ExplorerTreeNode } from './types.js';\n\n// TreeView - renders a list of nodes\nexport const TreeView = view(\n {\n model: prop.const<ExplorerModel>(),\n nodes: prop.const<readonly ExplorerTreeNode[]>(),\n depth: prop.const<number>(),\n },\n (_reader, props) => (\n <>\n {props.nodes.map((node) => (\n <TreeItem key={node.id} model={props.model} node={node} depth={props.depth} />\n ))}\n </>\n )\n);\n\n// TreeItem - ViewModel for hover state\nclass TreeItemModel extends ViewModel({\n model: prop.const<ExplorerModel>(),\n node: prop.const<ExplorerTreeNode>(),\n depth: prop.const<number>(),\n}) {\n readonly isHovered = observableValue<boolean>(this, false);\n\n // Expose props for render function\n get explorerModel(): ExplorerModel { return this.props.model; }\n get treeNode(): ExplorerTreeNode { return this.props.node; }\n get treeDepth(): number { return this.props.depth; }\n\n setHovered = (hovered: boolean): void => {\n this.isHovered.set(hovered, undefined);\n };\n\n handleClick = (): void => {\n this.props.model.selectNode(this.props.node.id);\n };\n\n handleDoubleClick = (): void => {\n if (this._hasChildren) {\n this.props.model.toggleNodeExpanded(this.props.node.id);\n }\n };\n\n handleChevronClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n this.props.model.toggleNodeExpanded(this.props.node.id);\n };\n\n private get _hasChildren(): boolean {\n return !!(this.props.node.children && this.props.node.children.length > 0);\n }\n}\n\nexport const TreeItem = viewWithModel(TreeItemModel, {}, (reader, itemModel) => {\n const model = itemModel.explorerModel;\n const node = itemModel.treeNode;\n const depth = itemModel.treeDepth;\n const hasChildren = !!(node.children && node.children.length > 0);\n const isExpanded = hasChildren ? model.isNodeExpanded(node.id, reader) : false;\n const selectedId = model.selectedNodeId.read(reader);\n const isSelected = selectedId === node.id;\n const isHovered = itemModel.isHovered.read(reader);\n\n const itemStyle = mergeStyles(\n styles.treeItem,\n { paddingLeft: `${8 + depth * 12}px` },\n isSelected && styles.treeItemSelected,\n !isSelected && isHovered && styles.treeItemHover,\n );\n\n return (\n <>\n <div\n style={itemStyle}\n onClick={itemModel.handleClick}\n onDoubleClick={itemModel.handleDoubleClick}\n onMouseEnter={() => itemModel.setHovered(true)}\n onMouseLeave={() => itemModel.setHovered(false)}\n >\n {hasChildren ? (\n <div style={styles.treeItemChevron} onClick={itemModel.handleChevronClick}>\n {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}\n </div>\n ) : (\n <div style={styles.treeItemChevronPlaceholder} />\n )}\n <div style={styles.treeItemIcon}>\n {node.type === 'folder' \n ? <FolderIcon style={{ color: 'var(--vscode-symbolIcon-folderForeground)' }} />\n : <ComponentIcon style={{ color: '#deb45b' }} />\n }\n </div>\n <span style={styles.treeItemLabel}>{node.name}</span>\n {hasChildren && (\n <span style={styles.treeItemCount}>{node.children!.length}</span>\n )}\n </div>\n {hasChildren && isExpanded && (\n <TreeView model={model} nodes={node.children!} depth={depth + 1} />\n )}\n </>\n );\n});\n","import { view, prop } from '@vscode/observables-react';\nimport { styles } from './styles.js';\nimport { TreeView } from './TreeView.js';\nimport type { ExplorerModel } from './ExplorerModel.js';\n\nexport const LeftSidebar = view(\n {\n model: prop.const<ExplorerModel>(),\n },\n (reader, props) => {\n const tree = props.model.tree.read(reader);\n return (\n <div style={styles.sidebar}>\n <div style={styles.sidebarHeader}>Explorer</div>\n <div style={styles.sidebarContent}>\n <TreeView model={props.model} nodes={tree.children ?? []} depth={0} />\n </div>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport { styles, mergeStyles } from './styles.js';\nimport type { ExplorerTreeNode } from './types.js';\n\n// ToggleSwitch with observable state\nclass ToggleSwitchModel extends ViewModel({}) {\n readonly checked = observableValue<boolean>(this, false);\n\n toggle = (): void => {\n this.checked.set(!this.checked.get(), undefined);\n };\n}\n\nconst ToggleSwitch = viewWithModel(ToggleSwitchModel, {}, (reader, model) => {\n const checked = model.checked.read(reader);\n\n const trackStyle: React.CSSProperties = {\n position: 'relative',\n width: '36px',\n height: '18px',\n backgroundColor: checked ? 'var(--vscode-button-background)' : 'var(--vscode-input-background)',\n borderRadius: '9px',\n cursor: 'pointer',\n transition: 'background-color 0.2s',\n border: '1px solid var(--vscode-input-border, transparent)',\n };\n\n const thumbStyle: React.CSSProperties = {\n position: 'absolute',\n top: '2px',\n left: checked ? '18px' : '2px',\n width: '12px',\n height: '12px',\n backgroundColor: 'var(--vscode-foreground)',\n borderRadius: '50%',\n transition: 'left 0.2s',\n };\n\n return (\n <div style={trackStyle} onClick={model.toggle}>\n <div style={thumbStyle} />\n </div>\n );\n});\n\n// PropertiesContent - shows mock properties for a component\nconst PropertiesContent = view(\n {\n node: prop.const<ExplorerTreeNode>(),\n },\n (_reader, props) => {\n if (props.node.type !== 'component') {\n return (\n <div style={{ padding: '12px', color: 'var(--vscode-descriptionForeground)', fontSize: '12px' }}>\n Select a component (not a folder) to view its properties\n </div>\n );\n }\n\n return (\n <div style={styles.propertiesPanel}>\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n children<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : string</span>\n </div>\n <input\n type=\"text\"\n style={styles.propertyInput as React.CSSProperties}\n defaultValue=\"Click me\"\n placeholder=\"Enter text...\"\n />\n <div style={styles.propertyDescription}>Button text content</div>\n </div>\n\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n variant<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : select</span>\n </div>\n <select style={styles.propertySelect as React.CSSProperties} defaultValue=\"default\">\n <option value=\"default\">default</option>\n <option value=\"primary\">primary</option>\n <option value=\"secondary\">secondary</option>\n <option value=\"destructive\">destructive</option>\n </select>\n <div style={styles.propertyDescription}>Visual style variant</div>\n </div>\n\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n size<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : select</span>\n </div>\n <select style={styles.propertySelect as React.CSSProperties} defaultValue=\"default\">\n <option value=\"sm\">sm</option>\n <option value=\"default\">default</option>\n <option value=\"lg\">lg</option>\n </select>\n <div style={styles.propertyDescription}>Button size</div>\n </div>\n\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n disabled<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : boolean</span>\n </div>\n <ToggleSwitch />\n <div style={styles.propertyDescription}>Disable the button</div>\n </div>\n </div>\n );\n }\n);\n\n// RightSidebar\nexport const RightSidebar = view(\n {\n selectedNode: prop.const<ExplorerTreeNode | undefined>(),\n },\n (_reader, props) => (\n <div style={mergeStyles(styles.sidebar, styles.sidebarRight)}>\n <div style={styles.sidebarHeader}>\n <span style={{ marginRight: '6px', color: 'var(--vscode-textLink-foreground)' }}></></span>\n Props\n </div>\n <div style={styles.sidebarContent}>\n {props.selectedNode ? (\n <PropertiesContent node={props.selectedNode} />\n ) : (\n <div style={{ padding: '12px', color: 'var(--vscode-descriptionForeground)', fontSize: '12px' }}>\n Select a component to view its properties\n </div>\n )}\n </div>\n </div>\n )\n);\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport type { ComponentDefinition, Disposable } from '../core/index.js';\nimport { resolveViewport } from '../core/index.js';\nimport type { FixtureItem } from './ExplorerModel.js';\n\nclass FixturePreviewItemModel extends ViewModel({\n fixture: prop.const<FixtureItem>(),\n compact: prop.const<boolean | undefined>(),\n}) {\n private _containerRef: HTMLDivElement | null = null;\n private _shadowRoot: ShadowRoot | null = null;\n private _renderContainer: HTMLDivElement | null = null;\n private _disposable: Disposable | (() => void) | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n\n readonly measuredWidth = observableValue<number | undefined>(this, undefined);\n readonly measuredHeight = observableValue<number | undefined>(this, undefined);\n\n get fixture(): FixtureItem { return this.props.fixture; }\n get compact(): boolean { return this.props.compact ?? false; }\n\n setContainerRef = (el: HTMLDivElement | null): void => {\n if (el === this._containerRef) return;\n\n // Cleanup previous\n this._cleanup();\n\n this._containerRef = el;\n if (!el) return;\n\n const component = this.fixture.component;\n\n if (component.isolation === 'shadow-dom') {\n this._renderInShadowDom(el, component);\n } else {\n // For iframe isolation, render directly (iframe handles isolation)\n this._renderDirect(el, component);\n }\n\n // Set up resize observer on the render container (the actual content)\n // NOT the shadow host, which may have min-height set\n const elementToObserve = this._renderContainer ?? el;\n this._resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (height > 0) {\n this.measuredWidth.set(Math.round(width), undefined);\n this.measuredHeight.set(Math.round(height), undefined);\n }\n }\n });\n this._resizeObserver.observe(elementToObserve);\n };\n\n private _renderInShadowDom(container: HTMLDivElement, component: ComponentDefinition): void {\n // Reuse existing shadow root if present (shadow roots cannot be removed once attached)\n if (container.shadowRoot) {\n this._shadowRoot = container.shadowRoot;\n // Clear previous content\n while (this._shadowRoot.firstChild) {\n this._shadowRoot.removeChild(this._shadowRoot.firstChild);\n }\n this._shadowRoot.adoptedStyleSheets = [];\n } else {\n this._shadowRoot = container.attachShadow({ mode: 'open' });\n }\n\n // Inject styles if any\n if (component.styles) {\n for (const style of component.styles) {\n if (style.type === 'css') {\n const styleEl = document.createElement('style');\n styleEl.textContent = style.content;\n this._shadowRoot.appendChild(styleEl);\n } else if (style.type === 'url') {\n const linkEl = document.createElement('link');\n linkEl.rel = 'stylesheet';\n linkEl.href = style.href;\n this._shadowRoot.appendChild(linkEl);\n } else if (style.type === 'adopted') {\n this._shadowRoot.adoptedStyleSheets = [\n ...this._shadowRoot.adoptedStyleSheets,\n style.sheet,\n ];\n }\n }\n }\n\n // Create render container (transparent, checkered shows through)\n const renderContainer = document.createElement('div');\n renderContainer.style.display = 'inline-block';\n this._renderContainer = renderContainer;\n this._shadowRoot.appendChild(renderContainer);\n\n // Get default property values\n const props = this._getDefaultProps(component);\n this._disposable = component.render(renderContainer, props);\n }\n\n private _renderDirect(container: HTMLDivElement, component: ComponentDefinition): void {\n this._renderContainer = container;\n const props = this._getDefaultProps(component);\n this._disposable = component.render(container, props);\n }\n\n private _getDefaultProps(component: ComponentDefinition): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const prop of component.properties) {\n props[prop.name] = prop.defaultValue;\n }\n return props;\n }\n\n private _cleanup(): void {\n if (this._disposable) {\n if (typeof this._disposable === 'function') {\n (this._disposable as () => void)();\n } else if (typeof this._disposable.dispose === 'function') {\n this._disposable.dispose();\n }\n }\n this._disposable = null;\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n this._shadowRoot = null;\n this._renderContainer = null;\n }\n\n dispose(): void {\n this._cleanup();\n }\n}\n\nexport const FixturePreviewItem = viewWithModel(\n FixturePreviewItemModel,\n {},\n (reader, model) => {\n const fixture = model.fixture;\n const component = fixture.component;\n const displayMode = component.displayMode;\n const measuredWidth = model.measuredWidth.read(reader);\n const measuredHeight = model.measuredHeight.read(reader);\n const compact = model.compact;\n\n // For page mode, use viewport dimensions\n let containerStyle: React.CSSProperties;\n if (displayMode.type === 'page') {\n const viewport = displayMode.viewports[0];\n const resolved = resolveViewport(viewport);\n containerStyle = {\n width: resolved.width,\n height: resolved.height,\n overflow: 'auto',\n };\n } else {\n // Component mode - natural size, let content determine dimensions\n containerStyle = {\n display: 'inline-block',\n };\n }\n\n const dimensionsText = measuredWidth && measuredHeight\n ? `${measuredWidth} × ${measuredHeight}`\n : '';\n\n const wrapperStyle = compact ? previewItemStyles.wrapperCompact : previewItemStyles.wrapper;\n const nameStyle = compact ? previewItemStyles.nameCompact : previewItemStyles.name;\n\n return (\n <div style={wrapperStyle}>\n <div style={previewItemStyles.labelRow}>\n <span style={nameStyle}>{fixture.name}</span>\n {!compact && dimensionsText && (\n <span style={previewItemStyles.dimensions}>{dimensionsText}</span>\n )}\n </div>\n <div style={getCanvasStyle(component.background)}>\n <div ref={model.setContainerRef} style={containerStyle} />\n </div>\n </div>\n );\n }\n);\n\n// Checkered pattern for transparency background (Figma-style)\nconst CHECKER_SIZE = 8;\n\nfunction createCheckerPattern(baseColor: string, checkerColor: string): string {\n return `\n linear-gradient(45deg, ${checkerColor} 25%, transparent 25%),\n linear-gradient(-45deg, ${checkerColor} 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, ${checkerColor} 75%),\n linear-gradient(-45deg, transparent 75%, ${checkerColor} 75%)\n `;\n}\n\nconst lightPattern = {\n backgroundColor: '#ffffff',\n backgroundImage: createCheckerPattern('#ffffff', '#e5e5e5'),\n};\n\nconst darkPattern = {\n backgroundColor: '#1e1e1e',\n backgroundImage: createCheckerPattern('#1e1e1e', '#2d2d2d'),\n};\n\nconst canvasBaseStyle: React.CSSProperties = {\n display: 'inline-block',\n padding: '12px',\n borderRadius: '4px',\n backgroundSize: `${CHECKER_SIZE * 2}px ${CHECKER_SIZE * 2}px`,\n backgroundPosition: `0 0, 0 ${CHECKER_SIZE}px, ${CHECKER_SIZE}px -${CHECKER_SIZE}px, -${CHECKER_SIZE}px 0`,\n boxShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08)',\n};\n\nfunction getCanvasStyle(background: 'light' | 'dark'): React.CSSProperties {\n const pattern = background === 'dark' ? darkPattern : lightPattern;\n return {\n ...canvasBaseStyle,\n backgroundColor: pattern.backgroundColor,\n backgroundImage: pattern.backgroundImage,\n };\n}\n\nconst previewItemStyles = {\n wrapper: {\n marginBottom: '32px',\n } as React.CSSProperties,\n wrapperCompact: {\n marginBottom: '0',\n } as React.CSSProperties,\n labelRow: {\n display: 'flex',\n alignItems: 'baseline',\n gap: '8px',\n marginBottom: '8px',\n } as React.CSSProperties,\n name: {\n fontSize: '12px',\n fontWeight: 500,\n color: 'var(--vscode-foreground)',\n } as React.CSSProperties,\n nameCompact: {\n fontSize: '11px',\n fontWeight: 500,\n color: 'var(--vscode-descriptionForeground)',\n } as React.CSSProperties,\n dimensions: {\n fontSize: '11px',\n color: 'var(--vscode-descriptionForeground)',\n fontFamily: 'var(--vscode-editor-font-family, monospace)',\n } as React.CSSProperties,\n};\n","const STORAGE_KEY = 'component-explorer:fixtureHeights';\nconst MAX_ENTRIES = 500;\n\ntype CachedHeights = Record<string, number>;\n\nlet _cache: CachedHeights | null = null;\n\nfunction loadCache(): CachedHeights {\n if (_cache !== null) return _cache;\n\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n _cache = JSON.parse(stored);\n return _cache!;\n }\n } catch { /* ignore */ }\n _cache = {};\n return _cache;\n}\n\nfunction saveCache(): void {\n if (_cache === null) return;\n\n try {\n const entries = Object.entries(_cache);\n if (entries.length > MAX_ENTRIES) {\n _cache = Object.fromEntries(entries.slice(-MAX_ENTRIES));\n }\n localStorage.setItem(STORAGE_KEY, JSON.stringify(_cache));\n } catch { /* ignore */ }\n}\n\nexport function setCachedHeight(fixtureId: string, height: number): void {\n const cache = loadCache();\n cache[fixtureId] = height;\n saveCache();\n}\n\nexport function getAllCachedHeights(): ReadonlyMap<string, number> {\n return new Map(Object.entries(loadCache()));\n}\n","import * as React from 'react';\nimport { observableValue, derived } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport type { ExplorerModel, PreviewRow } from './ExplorerModel.js';\nimport { FixturePreviewItem } from './FixturePreviewItem.js';\nimport { getAllCachedHeights, setCachedHeight } from '../lib/fixtureSizeCache.js';\n\nconst ESTIMATED_ROW_HEIGHT = 280;\nconst ROW_GAP = 32;\nconst CONTENT_PADDING = 32;\nconst OVERSCAN_PX = 400;\n\nconst SCROLL_ANCHOR_KEY = 'component-explorer:scrollAnchors';\nconst MAX_ANCHOR_ENTRIES = 100;\n\n// ---------------------------------------------------------------------------\n// Scroll anchor persistence (row index + offset, not absolute scrollTop)\n// ---------------------------------------------------------------------------\n\ninterface ScrollAnchor {\n readonly rowIndex: number;\n readonly offsetFromViewport: number;\n}\n\nfunction loadScrollAnchors(): Record<string, ScrollAnchor> {\n try {\n const stored = localStorage.getItem(SCROLL_ANCHOR_KEY);\n if (stored) return JSON.parse(stored);\n } catch { /* ignore */ }\n return {};\n}\n\nfunction saveScrollAnchor(nodeId: string, anchor: ScrollAnchor): void {\n try {\n const all = loadScrollAnchors();\n all[nodeId] = anchor;\n const entries = Object.entries(all);\n const pruned = entries.length > MAX_ANCHOR_ENTRIES\n ? Object.fromEntries(entries.slice(-MAX_ANCHOR_ENTRIES))\n : all;\n localStorage.setItem(SCROLL_ANCHOR_KEY, JSON.stringify(pruned));\n } catch { /* ignore */ }\n}\n\nfunction getScrollAnchor(nodeId: string): ScrollAnchor | undefined {\n return loadScrollAnchors()[nodeId];\n}\n\n// ---------------------------------------------------------------------------\n// Layout computation (pure functions over data)\n// ---------------------------------------------------------------------------\n\ninterface RowLayout {\n readonly top: number;\n readonly height: number;\n}\n\nfunction getRowId(row: PreviewRow): string {\n return row.type === 'single' ? row.fixture.id : row.id;\n}\n\nfunction computeLayout(\n rows: readonly PreviewRow[],\n heightCache: ReadonlyMap<string, number>,\n): readonly RowLayout[] {\n const result: RowLayout[] = new Array(rows.length);\n let top = CONTENT_PADDING;\n for (let i = 0; i < rows.length; i++) {\n const height = heightCache.get(getRowId(rows[i])) ?? ESTIMATED_ROW_HEIGHT;\n result[i] = { top, height };\n top += height + ROW_GAP;\n }\n return result;\n}\n\nfunction layoutTotalHeight(layout: readonly RowLayout[]): number {\n if (layout.length === 0) return 0;\n const last = layout[layout.length - 1];\n return last.top + last.height + CONTENT_PADDING;\n}\n\n/** Binary search for first row whose bottom edge is >= y. */\nfunction findFirstVisibleRow(layout: readonly RowLayout[], y: number): number {\n let lo = 0;\n let hi = layout.length;\n while (lo < hi) {\n const mid = (lo + hi) >> 1;\n if (layout[mid].top + layout[mid].height < y) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo;\n}\n\n/** Find visible row range for a given scrollTop + viewportHeight. */\nfunction computeVisibleRange(\n layout: readonly RowLayout[],\n scrollTop: number,\n viewportHeight: number,\n): { readonly start: number; readonly end: number } {\n if (layout.length === 0) return { start: 0, end: 0 };\n const start = findFirstVisibleRow(layout, scrollTop - OVERSCAN_PX);\n let end = start;\n const bottom = scrollTop + viewportHeight + OVERSCAN_PX;\n while (end < layout.length && layout[end].top < bottom) {\n end++;\n }\n return { start, end };\n}\n\n/** Find the row closest to the viewport top edge. */\nfunction computeAnchor(\n layout: readonly RowLayout[],\n scrollTop: number,\n): ScrollAnchor | undefined {\n if (layout.length === 0) return undefined;\n const idx = findFirstVisibleRow(layout, scrollTop);\n const rowIndex = Math.min(idx, layout.length - 1);\n return {\n rowIndex,\n offsetFromViewport: layout[rowIndex].top - scrollTop,\n };\n}\n\n/** Compute scrollTop to restore an anchor. */\nfunction scrollTopForAnchor(\n layout: readonly RowLayout[],\n anchor: ScrollAnchor,\n): number {\n if (anchor.rowIndex >= layout.length) return 0;\n return layout[anchor.rowIndex].top - anchor.offsetFromViewport;\n}\n\n// ---------------------------------------------------------------------------\n// PreviewAreaModel\n// ---------------------------------------------------------------------------\n\nclass PreviewAreaModel extends ViewModel({\n model: prop.const<ExplorerModel>(),\n}) {\n private readonly _rowHeights = observableValue<ReadonlyMap<string, number>>(this, getAllCachedHeights());\n private readonly _scrollTop = observableValue<number>(this, 0);\n private readonly _viewportHeight = observableValue<number>(this, 0);\n\n private _scrollContainerRef: HTMLDivElement | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n private _viewportResizeObserver: ResizeObserver | null = null;\n private _currentNodeId: string | undefined = undefined;\n private _scrollSaveTimeout: ReturnType<typeof setTimeout> | null = null;\n private _suppressScrollHandler = false;\n\n get explorerModel() { return this.props.model; }\n\n readonly layout = derived(this, (reader) => {\n const rows = this.explorerModel.selectedFixtures.read(reader);\n const heights = this._rowHeights.read(reader);\n return computeLayout(rows, heights);\n });\n\n readonly visibleRowRange = derived(this, (reader) => {\n const layout = this.layout.read(reader);\n const scrollTop = this._scrollTop.read(reader);\n const viewportHeight = this._viewportHeight.read(reader);\n return computeVisibleRange(layout, scrollTop, viewportHeight);\n });\n\n setScrollContainerRef = (el: HTMLDivElement | null): void => {\n if (this._scrollContainerRef) {\n this._scrollContainerRef.removeEventListener('scroll', this._handleScroll);\n }\n this._viewportResizeObserver?.disconnect();\n\n this._scrollContainerRef = el;\n if (!el) return;\n\n el.addEventListener('scroll', this._handleScroll, { passive: true });\n this._viewportHeight.set(el.clientHeight, undefined);\n\n this._viewportResizeObserver = new ResizeObserver(([entry]) => {\n this._viewportHeight.set(Math.round(entry.contentRect.height), undefined);\n });\n this._viewportResizeObserver.observe(el);\n\n this._restoreScrollPosition();\n };\n\n updateForSelection(nodeId: string | undefined): void {\n if (this._currentNodeId === nodeId) return;\n this._currentNodeId = nodeId;\n this._restoreScrollPosition();\n }\n\n private _restoreScrollPosition(): void {\n if (!this._scrollContainerRef || !this._currentNodeId) return;\n const anchor = getScrollAnchor(this._currentNodeId);\n if (!anchor) return;\n\n const layout = this.layout.get();\n const target = scrollTopForAnchor(layout, anchor);\n\n this._suppressScrollHandler = true;\n this._scrollContainerRef.scrollTop = target;\n this._scrollTop.set(target, undefined);\n requestAnimationFrame(() => { this._suppressScrollHandler = false; });\n }\n\n private _handleScroll = (): void => {\n if (!this._scrollContainerRef) return;\n this._scrollTop.set(this._scrollContainerRef.scrollTop, undefined);\n\n if (this._suppressScrollHandler || !this._currentNodeId) return;\n if (this._scrollSaveTimeout) clearTimeout(this._scrollSaveTimeout);\n this._scrollSaveTimeout = setTimeout(() => {\n if (!this._currentNodeId) return;\n const layout = this.layout.get();\n const anchor = computeAnchor(layout, this._scrollTop.get());\n if (anchor) saveScrollAnchor(this._currentNodeId, anchor);\n }, 150);\n };\n\n observeRowElement = (el: HTMLDivElement | null, id: string): void => {\n if (!el) return;\n if (!this._resizeObserver) {\n this._resizeObserver = new ResizeObserver((entries) => {\n const current = this._rowHeights.get();\n let newMap: Map<string, number> | undefined;\n for (const entry of entries) {\n const rid = entry.target.getAttribute('data-row-id');\n if (!rid) continue;\n const height = Math.round(entry.contentRect.height);\n if (height > 0 && current.get(rid) !== height) {\n if (!newMap) newMap = new Map(current);\n newMap.set(rid, height);\n setCachedHeight(rid, height);\n }\n }\n if (newMap) {\n // Capture anchor before layout changes\n const oldLayout = this.layout.get();\n const anchor = computeAnchor(oldLayout, this._scrollTop.get());\n\n this._rowHeights.set(newMap, undefined);\n\n // Re-anchor: adjust scrollTop so the row at viewport top stays put\n if (anchor && this._scrollContainerRef) {\n const newLayout = this.layout.get();\n const newScrollTop = scrollTopForAnchor(newLayout, anchor);\n this._suppressScrollHandler = true;\n this._scrollContainerRef.scrollTop = newScrollTop;\n this._scrollTop.set(newScrollTop, undefined);\n requestAnimationFrame(() => { this._suppressScrollHandler = false; });\n }\n }\n });\n }\n el.setAttribute('data-row-id', id);\n this._resizeObserver.observe(el);\n };\n\n dispose(): void {\n this._resizeObserver?.disconnect();\n this._viewportResizeObserver?.disconnect();\n if (this._scrollContainerRef) {\n this._scrollContainerRef.removeEventListener('scroll', this._handleScroll);\n }\n if (this._scrollSaveTimeout) clearTimeout(this._scrollSaveTimeout);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Views\n// ---------------------------------------------------------------------------\n\nexport const PreviewArea = viewWithModel(\n PreviewAreaModel,\n {},\n (reader, model) => {\n const rows = model.explorerModel.selectedFixtures.read(reader);\n const selectedNodeId = model.explorerModel.selectedNodeId.read(reader);\n const layout = model.layout.read(reader);\n const { start, end } = model.visibleRowRange.read(reader);\n\n model.updateForSelection(selectedNodeId);\n\n if (rows.length === 0) {\n return (\n <div style={styles.emptyState}>\n <span style={styles.emptyText}>Select a component or folder to preview</span>\n </div>\n );\n }\n\n const total = layoutTotalHeight(layout);\n\n return (\n <div ref={model.setScrollContainerRef} style={styles.scrollContainer}>\n <div style={{ position: 'relative', height: total }}>\n {rows.slice(start, end).map((row, i) => {\n const idx = start + i;\n const { top } = layout[idx];\n const id = getRowId(row);\n\n return (\n <div\n key={id}\n ref={(el) => model.observeRowElement(el, id)}\n style={{ position: 'absolute', top, left: CONTENT_PADDING, right: CONTENT_PADDING }}\n >\n {row.type === 'single' ? (\n <FixturePreviewItem fixture={row.fixture} compact={false} />\n ) : (\n <VariantsRowView row={row} />\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n\ntype VariantsRowData = Extract<PreviewRow, { type: 'variants' }>;\n\nconst VariantsRowView = view(\n { row: prop.const<VariantsRowData>() },\n (_reader, props) => {\n const row = props.row;\n return (\n <div>\n <div style={styles.variantsHeader}>\n <span style={styles.variantsTitle}>{row.path}</span>\n </div>\n <div style={styles.variantsContent}>\n {row.fixtures.map((fixture) => (\n <FixturePreviewItem key={fixture.id} fixture={fixture} compact />\n ))}\n </div>\n </div>\n );\n }\n);\n\n// ---------------------------------------------------------------------------\n// Styles\n// ---------------------------------------------------------------------------\n\nconst styles = {\n scrollContainer: {\n flex: 1,\n overflow: 'auto',\n backgroundColor: 'var(--vscode-editor-background)',\n } as React.CSSProperties,\n emptyState: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--vscode-editor-background)',\n } as React.CSSProperties,\n emptyText: {\n color: 'var(--vscode-descriptionForeground)',\n fontSize: '14px',\n } as React.CSSProperties,\n variantsHeader: {\n marginBottom: '12px',\n } as React.CSSProperties,\n variantsTitle: {\n fontSize: '13px',\n fontWeight: 500,\n color: 'var(--vscode-foreground)',\n } as React.CSSProperties,\n variantsContent: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: '16px',\n } as React.CSSProperties,\n};\n","import { viewWithModel } from '@vscode/observables-react';\nimport { FixtureRegistry, defineFixture } from '../core/index.js';\nimport { ExplorerModel } from './ExplorerModel.js';\nimport { TitleBar } from './TitleBar.js';\nimport { LeftSidebar } from './LeftSidebar.js';\nimport { RightSidebar } from './RightSidebar.js';\nimport { PreviewArea } from './PreviewArea.js';\nimport { styles } from './styles.js';\n\nexport const Explorer = viewWithModel(\n ExplorerModel,\n {},\n (reader, model) => {\n const leftVisible = model.leftSidebarVisible.read(reader);\n const rightVisible = model.rightSidebarVisible.read(reader);\n const isDarkTheme = model.isDarkTheme.read(reader);\n const selectedNode = model.selectedNode.read(reader);\n\n const themeClass = isDarkTheme ? 'vscode-theme default-dark-plus' : 'vscode-theme default-light-plus';\n\n return (\n <div className={themeClass} style={styles.container}>\n {leftVisible && <LeftSidebar model={model} />}\n <div style={styles.centerArea}>\n <TitleBar model={model} />\n <PreviewArea model={model} />\n </div>\n {rightVisible && <RightSidebar selectedNode={selectedNode} />}\n </div>\n );\n }\n);\n\n/** Creates a demo registry with sample fixtures */\nfunction createDemoRegistry(): FixtureRegistry {\n const registry = new FixtureRegistry();\n \n registry.register('components/Button.fixture.tsx', defineFixture({\n Primary: {\n render: (container) => {\n container.innerHTML = '<button>Primary Button</button>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n Icon: {\n render: (container) => {\n container.innerHTML = '<button>🔔 Icon Button</button>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n registry.register('components/Input.fixture.tsx', defineFixture({\n Text: {\n render: (container) => {\n container.innerHTML = '<input type=\\\"text\\\" placeholder=\\\"Text Input\\\" />';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n Search: {\n render: (container) => {\n container.innerHTML = '<input type=\\\"search\\\" placeholder=\\\"Search...\\\" />';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n registry.register('components/Card.fixture.tsx', defineFixture({\n Basic: {\n render: (container) => {\n container.innerHTML = '<div style=\\\"border: 1px solid #ccc; padding: 16px;\\\">Basic Card</div>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n registry.register('components/Feedback.fixture.tsx', defineFixture({\n Badge: {\n render: (container) => {\n container.innerHTML = '<span style=\\\"background: blue; color: white; padding: 2px 8px; border-radius: 4px;\\\">Badge</span>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n Alert: {\n render: (container) => {\n container.innerHTML = '<div style=\\\"background: #ffffcc; padding: 8px; border: 1px solid #cc0;\\\">Alert message</div>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n return registry;\n}\n\n// Re-export with default registry convenience\nexport function ExplorerWithDefaults() {\n const registry = createDemoRegistry();\n return <Explorer registry={registry} />;\n}\n","\nexport * from './core/index.js';\n\nimport { FixtureRegistry, type FixtureExport, type FixtureModules } from './core/index.js';\nimport './styles.css';\n\nimport './vscode-styles/default-dark-plus.css';\nimport './vscode-styles/default-light-plus.css';\nimport { createRoot } from 'react-dom/client';\nimport { createElement } from 'react';\nimport { Explorer } from './components/index.js';\n\n// Main exports\nexport { Explorer, ExplorerWithDefaults, ExplorerModel } from './components/index.js';\nexport type { ExplorerTreeNode } from './components/index.js';\nexport { toExplorerTree } from './components/index.js';\n\n// Sub-components\nexport {\n TitleBar,\n TitleBarButton,\n LeftSidebar,\n RightSidebar,\n TreeView,\n TreeItem,\n} from './components/index.js';\n\n// Icons\nexport * from './components/icons.js';\n\n// Styles utilities\nexport { styles, mergeStyles } from './components/index.js';\n\n/**\n * The main Component Explorer application.\n * Create with `new ExplorerApp(element, fixtureModules)`.\n */\nexport class ExplorerApp {\n private readonly _root: ReturnType<typeof createRoot>;\n private readonly _registry = new FixtureRegistry();\n\n constructor(element: HTMLElement, fixtureModules: FixtureModules) {\n this._populateRegistry(fixtureModules);\n this._root = createRoot(element);\n this._root.render(createElement(Explorer, { registry: this._registry }));\n }\n\n private _populateRegistry(fixtureModules: FixtureModules): void {\n this._registry.clear();\n for (const [path, module] of Object.entries(fixtureModules)) {\n const fixture = module.default;\n if (fixture && typeof fixture === 'object') {\n this._registry.register(path, fixture as FixtureExport);\n }\n }\n }\n\n /**\n * Updates the fixtures. The UI will update automatically since the registry is observable.\n */\n updateFixtures(fixtureModules: FixtureModules): void {\n this._populateRegistry(fixtureModules);\n }\n\n /**\n * No-op for ExplorerApp (only meaningful for CliRuntime).\n * Present so the plugin's HMR wiring can call it polymorphically.\n */\n bumpVersion(): void {\n // Explorer uses observables; no version tracking needed.\n }\n\n /**\n * Unmounts the explorer and cleans up resources.\n */\n dispose(): void {\n this._root.unmount();\n }\n}\n"],"names":["VIEWPORT_SIZES","resolveViewport","preset","getDefaultPropertyValues","properties","values","prop","isComponentDefinition","value","singleFixtureBrand","fixtureGroupBrand","fixtureVariantsBrand","isSingleFixture","isFixtureGroup","isFixtureVariants","createComponentDefinition","options","id","name","defineFixture","defineFixtureGroup","group","defineFixtureVariants","variants","createFixtureTree","fixtures","root","filePath","fixtureExport","baseName","extractBaseName","addFixtureExportToTree","parent","pathSegments","_a","componentNode","folderName","folderId","folder","c","key","entry","variantsName","variantsNode","variant","childId","findNodeByPath","path","current","segment","collectComponents","node","components","child","globalObservableLogger","addLogger","logger","ComposedLogger","getLogger","globalObservableLoggerFn","setLogObservableFn","fn","logObservable","obs","loggers","observable","location","newCount","info","autorun","change","derived","transaction","DebugLocation","enabled","enable","ofCaller","ofNthCaller","n","Err","l","stack","DebugLocationImpl","parentIdx","lines","parseLine","fileName","line","column","stackLine","match","match2","DebugNameData","owner","debugNameSource","referenceFn","target","getDebugName","countPerName","cachedDebugName","data","cached","dbgName","computeDebugName","count","result","self","ownerStr","formatOwner","getFunctionName","findKey","obj","countPerClassName","ownerId","className","getClassName","ctor","fnSrc","_derived","_setDerivedOpts","_recomputeInitiallyAndOnChange","_setRecomputeInitiallyAndOnChange","recomputeInitiallyAndOnChange","_keepObserved","_setKeepObserved","keepObserved","_debugGetDependencyGraph","_setDebugGetDependencyGraph","debugGetDependencyGraph","ConvenientObservable","reader","fnOrOwner","fnOrUndefined","debugLocation","store","handleValue","BaseObservable","observer","len","deleted","hadLogger","toDisposable","BugIndicatingError","message","onBugIndicatingError","error","onUnexpectedError","strictEquals","a","b","isDefined","arg","DisposableStore","disposable","index","derivedStateToString","state","Derived","_debugNameData","_computeFn","_changeTracker","_handleLastObserverRemoved","_equalityComparator","_b","d","changeSummary","_c","_d","didChange","emptySet","hadValue","oldValue","delayedStore","o","e","r","_observable","propagateBeginUpdate","observers","shouldReact","wasUpToDate","shouldCallBeginUpdate","newValue","tx","computeFnOrOwner","computeFn","derivedOpts","derivedDisposable","computeFnOrUndefined","autorunStateToString","AutorunObserver","_runFn","handleBugIndicatingErrorRecovery","err","TransactionImpl","subtransaction","_fn","_getDebugName","updatingObservers","i","observableValue","nameOrOwner","initialValue","debugNameData","ObservableValue","_tx","observableFromEvent","args","event","getValue","FromEventObservable","_getValue","_getTransaction","didRunTransaction","batchEventsGlobally","didSet","KeepAliveObserver","_forceRecompute","_handleValue","consoleObservableLogger","logObservableToConsole","ConsoleObservableLogger","text","consoleTextToArgs","normalText","repeat","styled","formatValue","formatKind","changes","changedObservables","transactionName","styles","firstArg","process","t","item","kind","padStr","objToCss","styleObj","styleString","propName","propValue","style","availableLen","formatArray","formatObject","first","val","str","length","SimpleTypedRpcConnection","channelFactory","getHandler","_channelFactory","_getHandler","notificationData","m","requestData","requests","notifications","registerDebugChannel","channelId","createClient","g","queuedNotifications","curHost","channel","handler","createChannelFactoryFromDebugChannel","curClient","host","h","Throttler","timeoutMs","deepAssign","source","deepAssignDeleteNulls","DevToolsLogger","affected","txs","observerQueue","processedObservers","queue","observersToUpdate","observerState","base","changedDependencies","autorunInfo","declarationIds","observableId","decl","instanceId","jsonValue","update","type","decInfo","changeInfo","formattedValue","debugNamePostProcessor","Info","formatObservableInfo","indentLevel","alreadyListed","indent","dep","sourceObj","dependencies","FixtureRegistry","__publicField","tree","CliRuntime","_containerElement","fixtureModules","fixtureId","container","def","defaultProps","renderTarget","shadow","resolve","module","fixture","groupPath","results","nextPath","found","p","q","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","k","f","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","reactDomModule","client","reactJsxRuntime_production_min","jsxRuntimeModule","ManualChangesHandler","_run","_change","PropertyTransformerFactory","propConst","PropertyConstTransformerFactory","propObs","PropertyObsTransformerFactory","readableProp","_reader","isObservable","mapObject","ViewModelContextSymbol","BaseViewModel","props","getOrCreateViewModelContext","createContext","ViewModel","renderingCount","batchedUpdater","potentialChanges","rendering","unstable_batchedUpdates","viewIdx","ViewImpl","debugName","renderFactory","obsView","componentName","render","contexts","plusOne","createVM","forceUpdate","useReducer","useState","ctx","useContext","useEffect","view","readableProps","propValues","collectRequiredContexts","propsDesc","viewWithModel","viewModelCtor","propsOrRender","maybeRender","modelPropsDesc","requiredContexts","viewModelContext","allContexts","getContextValues","contextValues","providedModel","readableModelProps","model","modelProps","toExplorerTree","createLocalStorageObservable","storageKey","defaultValue","serialize","deserialize","stored","originalSet","ExplorerModel","nodeId","selectedNode","newSet","nodes","pathPrefix","childPath","mergeStyles","styleObjects","TitleBarButtonModel","hovered","TitleBarButton","isHovered","active","buttonStyle","jsx","ChevronRightIcon","ChevronDownIcon","ComponentIcon","FolderIcon","PanelLeftIcon","PanelRightIcon","SunIcon","MoonIcon","TitleBar","leftVisible","rightVisible","isDarkTheme","jsxs","Fragment","TreeView","TreeItem","TreeItemModel","itemModel","depth","hasChildren","isExpanded","isSelected","itemStyle","LeftSidebar","ToggleSwitchModel","ToggleSwitch","checked","trackStyle","thumbStyle","PropertiesContent","RightSidebar","FixturePreviewItemModel","component","elementToObserve","entries","width","height","styleEl","linkEl","renderContainer","FixturePreviewItem","displayMode","measuredWidth","measuredHeight","compact","containerStyle","viewport","resolved","dimensionsText","wrapperStyle","previewItemStyles","nameStyle","getCanvasStyle","CHECKER_SIZE","createCheckerPattern","baseColor","checkerColor","lightPattern","darkPattern","canvasBaseStyle","background","pattern","STORAGE_KEY","MAX_ENTRIES","_cache","loadCache","saveCache","setCachedHeight","cache","getAllCachedHeights","ESTIMATED_ROW_HEIGHT","ROW_GAP","CONTENT_PADDING","OVERSCAN_PX","SCROLL_ANCHOR_KEY","MAX_ANCHOR_ENTRIES","loadScrollAnchors","saveScrollAnchor","anchor","all","pruned","getScrollAnchor","getRowId","row","computeLayout","rows","heightCache","top","layoutTotalHeight","layout","last","findFirstVisibleRow","lo","mid","computeVisibleRange","scrollTop","viewportHeight","start","end","bottom","computeAnchor","idx","rowIndex","scrollTopForAnchor","PreviewAreaModel","heights","newMap","rid","oldLayout","newLayout","newScrollTop","PreviewArea","selectedNodeId","total","VariantsRowView","Explorer","themeClass","createDemoRegistry","registry","ExplorerWithDefaults","ExplorerApp","element","createRoot","createElement"],"mappings":"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","x_google_ignoreList":[28,29,30,31,32,33,34,35,36]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/DisplayMode.ts","../src/core/PropertySchema.ts","../src/core/ComponentDefinition.ts","../src/core/defineFixture.ts","../src/core/FixtureNode.ts","../../../external/vscode-observables/observables/dist/observableInternal/logging/logging.js","../../../external/vscode-observables/observables/dist/observableInternal/debugLocation.js","../../../external/vscode-observables/observables/dist/observableInternal/debugName.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js","../../../external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js","../../../external/vscode-observables/observables/dist/disposables.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/derived.js","../../../external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js","../../../external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js","../../../external/vscode-observables/observables/dist/observableInternal/base.js","../../../external/vscode-observables/observables/dist/observableInternal/transaction.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js","../../../external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js","../../../external/vscode-observables/observables/dist/observableInternal/utils/utils.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/rpc.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/debuggerRpc.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/utils.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugger/devToolsLogger.js","../../../external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js","../../../external/vscode-observables/observables/dist/observableInternal/index.js","../src/core/FixtureRegistry.ts","../src/core/CliRuntime.ts","../src/components/types.ts","../src/lib/localStorageObservable.ts","../src/components/ExplorerModel.ts","../src/components/styles.ts","../src/components/TitleBarButton.tsx","../src/components/icons.tsx","../src/components/TitleBar.tsx","../src/components/TreeView.tsx","../src/components/LeftSidebar.tsx","../src/components/RightSidebar.tsx","../src/components/FixturePreviewItem.tsx","../src/components/FixtureScreenshotView.tsx","../src/components/ScreenshotComparisonRow.tsx","../src/lib/fixtureSizeCache.ts","../src/components/PreviewArea.tsx","../src/components/Explorer.tsx","../../simple-api/dist/chunk-SGBCNXYH.mjs","../../simple-api/dist/chunk-A5PE72HI.mjs","../src/daemon/DaemonModel.ts","../src/daemon/DaemonConfig.ts","../src/index.ts"],"sourcesContent":["/**\n * Disposable resource that can be cleaned up.\n */\nexport interface Disposable {\n dispose(): void;\n}\n\n/**\n * Style definition for shadow DOM injection.\n */\nexport type StyleDefinition =\n | { readonly type: 'css'; readonly content: string }\n | { readonly type: 'url'; readonly href: string }\n | { readonly type: 'adopted'; readonly sheet: CSSStyleSheet };\n\n/**\n * Display mode for a component.\n */\nexport type DisplayMode = PageMode | ComponentMode;\n\n/**\n * Page mode - component fills a viewport with device presets.\n */\nexport interface PageMode {\n readonly type: 'page';\n /**\n * Device presets or custom viewport sizes.\n * When viewing, user can switch between these.\n */\n readonly viewports: ViewportPreset[];\n}\n\n/**\n * Component mode - renders at natural size.\n */\nexport interface ComponentMode {\n readonly type: 'component';\n}\n\n/**\n * Viewport preset - either a named preset or custom dimensions.\n */\nexport type ViewportPreset =\n | ViewportPresetName\n | { readonly name: string; readonly width: number; readonly height: number };\n\nexport type ViewportPresetName = 'mobile' | 'tablet' | 'desktop';\n\n/**\n * Standard viewport dimensions for presets.\n */\nexport const VIEWPORT_SIZES: Record<ViewportPresetName, { readonly width: number; readonly height: number }> = {\n mobile: { width: 390, height: 844 },\n tablet: { width: 768, height: 1024 },\n desktop: { width: 1440, height: 900 },\n};\n\n/**\n * Resolves a viewport preset to actual dimensions.\n */\nexport function resolveViewport(preset: ViewportPreset): { name: string; width: number; height: number } {\n if (typeof preset === 'string') {\n return { name: preset, ...VIEWPORT_SIZES[preset] };\n }\n return preset;\n}\n","/**\n * Schema for a component property.\n * Defines the type, name, and default value of a configurable property.\n */\nexport type PropertySchema =\n | BooleanProperty\n | StringProperty\n | NumberProperty\n | EnumProperty;\n\nexport interface BooleanProperty {\n readonly type: 'boolean';\n readonly name: string;\n readonly defaultValue: boolean;\n readonly description?: string;\n}\n\nexport interface StringProperty {\n readonly type: 'string';\n readonly name: string;\n readonly defaultValue: string;\n readonly description?: string;\n /** If true, render as multiline textarea */\n readonly multiline?: boolean;\n}\n\nexport interface NumberProperty {\n readonly type: 'number';\n readonly name: string;\n readonly defaultValue: number;\n readonly description?: string;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n}\n\nexport interface EnumProperty {\n readonly type: 'enum';\n readonly name: string;\n readonly defaultValue: string;\n readonly description?: string;\n readonly options: readonly string[];\n}\n\n/**\n * Gets the default values for a list of property schemas.\n */\nexport function getDefaultPropertyValues(properties: readonly PropertySchema[]): Record<string, unknown> {\n const values: Record<string, unknown> = {};\n for (const prop of properties) {\n values[prop.name] = prop.defaultValue;\n }\n return values;\n}\n","import type { Disposable, DisplayMode, StyleDefinition } from './DisplayMode.js';\nimport type { PropertySchema } from './PropertySchema.js';\nimport type { DefineFixtureOptions, FixtureGroupEntry, singleFixtureBrand, fixtureGroupBrand, fixtureVariantsBrand } from './defineFixture.js';\n\n/**\n * Definition of a component fixture.\n * Components can render React, plain HTML, or any other UI library.\n */\nexport interface ComponentDefinition {\n /** Unique identifier within the fixture file */\n readonly id: string;\n\n /** Display name shown in the tree */\n readonly name: string;\n\n /** Optional description for documentation */\n readonly description?: string;\n\n /** How to isolate this component from other components */\n readonly isolation: 'iframe' | 'shadow-dom';\n\n /** How to display: page (device viewport) or component (natural size) */\n readonly displayMode: DisplayMode;\n\n /**\n * Stylesheets to inject into shadow root (for shadow-dom isolation).\n * Ignored when isolation is 'iframe'.\n */\n readonly styles?: readonly StyleDefinition[];\n\n /** Background pattern for the preview canvas: 'light' (default) or 'dark' for dark transparent pattern */\n readonly background: 'light' | 'dark';\n\n /** Property schema for the component */\n readonly properties: readonly PropertySchema[];\n\n /**\n * Render the component into the container.\n * Returns a disposable for cleanup (e.g., unmounting React).\n */\n render(container: HTMLElement, props: Record<string, unknown>): Disposable;\n}\n\n/**\n * A single fixture export created by defineFixture().\n */\nexport interface SingleFixtureExport {\n readonly [singleFixtureBrand]: true;\n readonly _options: DefineFixtureOptions;\n readonly _createDefinition: (id: string, name: string) => ComponentDefinition;\n}\n\n/**\n * A fixture group export created by defineFixtureGroup().\n */\nexport interface FixtureGroupExport {\n readonly [fixtureGroupBrand]: true;\n readonly _entries: { [key: string]: FixtureGroupEntry };\n}\n\n/**\n * A fixture variants export created by defineFixtureVariants().\n * Variants are rendered horizontally by default and have a distinct icon.\n */\nexport interface FixtureVariantsExport {\n readonly [fixtureVariantsBrand]: true;\n readonly _variants: { [key: string]: SingleFixtureExport };\n}\n\n/**\n * Fixture export type - a single fixture, a group, or variants.\n */\nexport type FixtureExport = SingleFixtureExport | FixtureGroupExport | FixtureVariantsExport;\n\n/**\n * Type guard for checking if a value is a ComponentDefinition.\n * @deprecated Use isSingleFixture or isFixtureGroup from defineFixture.ts instead\n */\nexport function isComponentDefinition(value: unknown): value is ComponentDefinition {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'render' in value &&\n typeof (value as ComponentDefinition).render === 'function' &&\n 'id' in value &&\n 'name' in value\n );\n}\n","import type { FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, ComponentDefinition } from './ComponentDefinition.js';\nimport type { DisplayMode, Disposable, StyleDefinition } from './DisplayMode.js';\nimport type { PropertySchema } from './PropertySchema.js';\n\n/**\n * Options for defining a single component fixture.\n */\nexport interface DefineFixtureOptions {\n /** Optional description for documentation */\n description?: string;\n\n /** How to isolate: 'iframe' for full isolation, 'shadow-dom' (default) for lighter isolation */\n isolation?: 'iframe' | 'shadow-dom';\n\n /** Display mode: defaults to { type: 'component' } */\n displayMode?: DisplayMode;\n\n /** Styles to inject (for shadow-dom isolation) */\n styles?: StyleDefinition[];\n\n /** Background pattern for the preview canvas: 'light' (default) or 'dark' for dark transparent pattern */\n background?: 'light' | 'dark';\n\n /** Property definitions */\n properties?: PropertySchema[];\n\n /** Render function */\n render: (container: HTMLElement, props: Record<string, unknown>) => Disposable;\n}\n\n/** @deprecated Use DefineFixtureOptions instead */\nexport type DefineComponentOptions = DefineFixtureOptions;\n\n/** Brand symbol to identify single fixtures */\nexport const singleFixtureBrand = Symbol('singleFixture');\n\n/** Brand symbol to identify fixture groups */\nexport const fixtureGroupBrand = Symbol('fixtureGroup');\n\n/** Brand symbol to identify fixture variants */\nexport const fixtureVariantsBrand = Symbol('fixtureVariants');\n\n/**\n * Type guard for SingleFixtureExport.\n */\nexport function isSingleFixture(value: FixtureExport): value is SingleFixtureExport {\n return typeof value === 'object' && value !== null && singleFixtureBrand in value;\n}\n\n/**\n * Type guard for FixtureGroupExport.\n */\nexport function isFixtureGroup(value: FixtureExport): value is FixtureGroupExport {\n return typeof value === 'object' && value !== null && fixtureGroupBrand in value;\n}\n\n/**\n * Type guard for FixtureVariantsExport.\n */\nexport function isFixtureVariants(value: FixtureExport): value is FixtureVariantsExport {\n return typeof value === 'object' && value !== null && fixtureVariantsBrand in value;\n}\n\n/**\n * Creates the component definition from options (without id/name which are set at tree-building time).\n */\nfunction createComponentDefinition(\n options: DefineFixtureOptions,\n id: string,\n name: string\n): ComponentDefinition {\n return {\n id,\n name,\n description: options.description,\n isolation: options.isolation ?? 'shadow-dom',\n displayMode: options.displayMode ?? { type: 'component' },\n styles: options.styles,\n background: options.background ?? 'light',\n properties: options.properties ?? [],\n render: options.render,\n };\n}\n\n/**\n * Defines a single fixture.\n * \n * @example\n * ```ts\n * export default defineFixture({\n * properties: [\n * { type: 'string', name: 'label', defaultValue: 'Click me' },\n * ],\n * render: (container, props) => {\n * container.innerHTML = `<button>${props.label}</button>`;\n * return { dispose: () => { container.innerHTML = ''; } };\n * },\n * });\n * ```\n */\nexport function defineFixture(options: DefineFixtureOptions): SingleFixtureExport {\n return {\n [singleFixtureBrand]: true,\n _options: options,\n _createDefinition: (id: string, name: string) => createComponentDefinition(options, id, name),\n };\n}\n\n/**\n * Group entry: either a single fixture, a nested group, or variants.\n */\nexport type FixtureGroupEntry = SingleFixtureExport | FixtureGroupExport | FixtureVariantsExport;\n\n/**\n * Input for defineFixtureGroup.\n */\nexport type FixtureGroupInput = { [key: string]: FixtureGroupEntry };\n\n/**\n * Input for defineFixtureVariants (only single fixtures, no nesting).\n */\nexport type FixtureVariantsInput = { [key: string]: SingleFixtureExport };\n\n/**\n * Defines a group of fixtures with support for nesting.\n * \n * @example\n * ```ts\n * export default defineFixtureGroup({\n * Primary: defineFixture({\n * render: (container) => { ... },\n * }),\n * Variants: defineFixtureGroup({\n * Small: defineFixture({ ... }),\n * Large: defineFixture({ ... }),\n * }),\n * });\n * ```\n */\nexport function defineFixtureGroup(group: FixtureGroupInput): FixtureGroupExport {\n return {\n [fixtureGroupBrand]: true,\n _entries: group,\n };\n}\n\n/**\n * Defines a group of fixture variants (no nesting allowed).\n * Variants are rendered horizontally by default and have a distinct icon in the tree.\n * \n * @example\n * ```ts\n * export default defineFixtureGroup({\n * Button: defineFixtureVariants({\n * Small: defineFixture({ ... }),\n * Medium: defineFixture({ ... }),\n * Large: defineFixture({ ... }),\n * }),\n * });\n * ```\n */\nexport function defineFixtureVariants(variants: FixtureVariantsInput): FixtureVariantsExport {\n return {\n [fixtureVariantsBrand]: true,\n _variants: variants,\n };\n}\n","import type { ComponentDefinition, FixtureExport } from './ComponentDefinition.js';\nimport { isSingleFixture, isFixtureGroup, isFixtureVariants } from './defineFixture.js';\n\n/**\n * A node in the fixture tree.\n * Can be a folder (with children), variants (with children, horizontal layout), or a component leaf.\n */\nexport interface FixtureNode {\n /** Unique identifier (path segments joined by '/') */\n readonly id: string;\n\n /** Display name */\n readonly name: string;\n\n /** Node type: folder for groups, variants for horizontal variant display, component for leaves */\n readonly type: 'folder' | 'variants' | 'component';\n\n /** Children (for folders and variants) */\n readonly children?: readonly FixtureNode[];\n\n /** Component definition (only for component nodes) */\n readonly component?: ComponentDefinition;\n}\n\n/**\n * Creates a fixture tree from a map of fixture exports.\n * @param fixtures Map of fixture file path to exported fixture object\n */\nexport function createFixtureTree(fixtures: Map<string, FixtureExport>): FixtureNode {\n const root: MutableFixtureNode = {\n id: '',\n name: 'Components',\n type: 'folder',\n children: [],\n };\n\n for (const [filePath, fixtureExport] of fixtures) {\n // Extract folder name from file path (e.g., 'components/Button.fixture.tsx' -> 'Button')\n const baseName = extractBaseName(filePath);\n addFixtureExportToTree(root, [baseName], fixtureExport);\n }\n\n return root;\n}\n\ninterface MutableFixtureNode {\n id: string;\n name: string;\n type: 'folder' | 'variants' | 'component';\n children?: MutableFixtureNode[];\n component?: ComponentDefinition;\n}\n\nfunction extractBaseName(filePath: string): string {\n const fileName = filePath.split('/').pop() ?? filePath;\n // Remove .fixture.tsx, .fixture.ts, .fixture.jsx, .fixture.js\n return fileName.replace(/\\.fixture\\.(tsx?|jsx?)$/, '');\n}\n\nfunction addFixtureExportToTree(\n parent: MutableFixtureNode,\n pathSegments: string[],\n fixtureExport: FixtureExport\n): void {\n if (isSingleFixture(fixtureExport)) {\n // Single fixture - add as leaf\n const id = pathSegments.join('/');\n const name = pathSegments[pathSegments.length - 1];\n const componentNode: MutableFixtureNode = {\n id,\n name,\n type: 'component',\n component: fixtureExport._createDefinition(id, name),\n };\n if (!parent.children) {\n parent.children = [];\n }\n parent.children.push(componentNode);\n } else if (isFixtureGroup(fixtureExport)) {\n // Fixture group - create or find folder and recurse\n const folderName = pathSegments[pathSegments.length - 1];\n const folderId = pathSegments.join('/');\n \n // Find or create the folder\n let folder = parent.children?.find(\n (c) => c.type === 'folder' && c.name === folderName\n );\n \n if (!folder) {\n folder = {\n id: folderId,\n name: folderName,\n type: 'folder',\n children: [],\n };\n if (!parent.children) {\n parent.children = [];\n }\n parent.children.push(folder);\n }\n\n // Add each entry in the group\n for (const [key, entry] of Object.entries(fixtureExport._entries)) {\n addFixtureExportToTree(folder, [...pathSegments, key], entry);\n }\n } else if (isFixtureVariants(fixtureExport)) {\n // Fixture variants - create variants node with children\n const variantsName = pathSegments[pathSegments.length - 1];\n const variantsId = pathSegments.join('/');\n \n const variantsNode: MutableFixtureNode = {\n id: variantsId,\n name: variantsName,\n type: 'variants',\n children: [],\n };\n \n if (!parent.children) {\n parent.children = [];\n }\n parent.children.push(variantsNode);\n\n // Add each variant as a child component\n for (const [key, variant] of Object.entries(fixtureExport._variants)) {\n const childPath = [...pathSegments, key];\n const childId = childPath.join('/');\n const componentNode: MutableFixtureNode = {\n id: childId,\n name: key,\n type: 'component',\n component: variant._createDefinition(childId, key),\n };\n variantsNode.children!.push(componentNode);\n }\n }\n}\n\n/**\n * Finds a node in the tree by path.\n */\nexport function findNodeByPath(root: FixtureNode, path: string[]): FixtureNode | undefined {\n if (path.length === 0) {\n return root;\n }\n\n let current: FixtureNode | undefined = root;\n \n for (const segment of path) {\n if (!current || !current.children) {\n return undefined;\n }\n current = current.children.find((c) => c.name === segment);\n }\n\n return current;\n}\n\n/**\n * Collects all component nodes from a subtree.\n */\nexport function collectComponents(node: FixtureNode): ComponentDefinition[] {\n if (node.type === 'component' && node.component) {\n return [node.component];\n }\n\n const components: ComponentDefinition[] = [];\n for (const child of node.children ?? []) {\n components.push(...collectComponents(child));\n }\n return components;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet globalObservableLogger;\nfunction addLogger(logger) {\n if (!globalObservableLogger) {\n globalObservableLogger = logger;\n }\n else if (globalObservableLogger instanceof ComposedLogger) {\n globalObservableLogger.loggers.push(logger);\n }\n else {\n globalObservableLogger = new ComposedLogger([globalObservableLogger, logger]);\n }\n}\nfunction getLogger() {\n return globalObservableLogger;\n}\nlet globalObservableLoggerFn = undefined;\nfunction setLogObservableFn(fn) {\n globalObservableLoggerFn = fn;\n}\nfunction logObservable(obs) {\n if (globalObservableLoggerFn) {\n globalObservableLoggerFn(obs);\n }\n}\nclass ComposedLogger {\n constructor(loggers) {\n this.loggers = loggers;\n }\n handleObservableCreated(observable, location) {\n for (const logger of this.loggers) {\n logger.handleObservableCreated(observable, location);\n }\n }\n handleOnListenerCountChanged(observable, newCount) {\n for (const logger of this.loggers) {\n logger.handleOnListenerCountChanged(observable, newCount);\n }\n }\n handleObservableUpdated(observable, info) {\n for (const logger of this.loggers) {\n logger.handleObservableUpdated(observable, info);\n }\n }\n handleAutorunCreated(autorun, location) {\n for (const logger of this.loggers) {\n logger.handleAutorunCreated(autorun, location);\n }\n }\n handleAutorunDisposed(autorun) {\n for (const logger of this.loggers) {\n logger.handleAutorunDisposed(autorun);\n }\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n for (const logger of this.loggers) {\n logger.handleAutorunDependencyChanged(autorun, observable, change);\n }\n }\n handleAutorunStarted(autorun) {\n for (const logger of this.loggers) {\n logger.handleAutorunStarted(autorun);\n }\n }\n handleAutorunFinished(autorun) {\n for (const logger of this.loggers) {\n logger.handleAutorunFinished(autorun);\n }\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n for (const logger of this.loggers) {\n logger.handleDerivedDependencyChanged(derived, observable, change);\n }\n }\n handleDerivedCleared(observable) {\n for (const logger of this.loggers) {\n logger.handleDerivedCleared(observable);\n }\n }\n handleBeginTransaction(transaction) {\n for (const logger of this.loggers) {\n logger.handleBeginTransaction(transaction);\n }\n }\n handleEndTransaction(transaction) {\n for (const logger of this.loggers) {\n logger.handleEndTransaction(transaction);\n }\n }\n}\n\nexport { addLogger, getLogger, logObservable, setLogObservableFn };\n//# sourceMappingURL=logging.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar DebugLocation;\n(function (DebugLocation) {\n let enabled = false;\n function enable() {\n enabled = true;\n }\n DebugLocation.enable = enable;\n function ofCaller() {\n return ofNthCaller(1);\n }\n DebugLocation.ofCaller = ofCaller;\n function ofNthCaller(n) {\n if (!enabled) {\n return undefined;\n }\n const Err = Error; // For the monaco editor checks, which don't have the nodejs types.\n const l = Err.stackTraceLimit;\n Err.stackTraceLimit = 3;\n const stack = new Error().stack;\n Err.stackTraceLimit = l;\n return DebugLocationImpl.fromStack(stack, n + 1);\n }\n DebugLocation.ofNthCaller = ofNthCaller;\n})(DebugLocation || (DebugLocation = {}));\nclass DebugLocationImpl {\n static fromStack(stack, parentIdx) {\n const lines = stack.split('\\n');\n const location = parseLine(lines[parentIdx + 1]);\n if (location) {\n return new DebugLocationImpl(location.fileName, location.line, location.column, location.id);\n }\n else {\n return undefined;\n }\n }\n constructor(fileName, line, column, id) {\n this.fileName = fileName;\n this.line = line;\n this.column = column;\n this.id = id;\n }\n}\nfunction parseLine(stackLine) {\n if (!stackLine) {\n return undefined;\n }\n const match = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n if (match) {\n return {\n fileName: match[1],\n line: parseInt(match[2]),\n column: parseInt(match[3]),\n id: stackLine,\n };\n }\n const match2 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n if (match2) {\n return {\n fileName: match2[1],\n line: parseInt(match2[2]),\n column: parseInt(match2[3]),\n id: stackLine,\n };\n }\n return undefined;\n}\n\nexport { DebugLocation };\n//# sourceMappingURL=debugLocation.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DebugNameData {\n constructor(owner, debugNameSource, referenceFn) {\n this.owner = owner;\n this.debugNameSource = debugNameSource;\n this.referenceFn = referenceFn;\n }\n getDebugName(target) {\n return getDebugName(target, this);\n }\n}\nconst countPerName = new Map();\nconst cachedDebugName = new WeakMap();\nfunction getDebugName(target, data) {\n const cached = cachedDebugName.get(target);\n if (cached) {\n return cached;\n }\n const dbgName = computeDebugName(target, data);\n if (dbgName) {\n let count = countPerName.get(dbgName) ?? 0;\n count++;\n countPerName.set(dbgName, count);\n const result = count === 1 ? dbgName : `${dbgName}#${count}`;\n cachedDebugName.set(target, result);\n return result;\n }\n return undefined;\n}\nfunction computeDebugName(self, data) {\n const cached = cachedDebugName.get(self);\n if (cached) {\n return cached;\n }\n const ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n let result;\n const debugNameSource = data.debugNameSource;\n if (debugNameSource !== undefined) {\n if (typeof debugNameSource === 'function') {\n result = debugNameSource();\n if (result !== undefined) {\n return ownerStr + result;\n }\n }\n else {\n return ownerStr + debugNameSource;\n }\n }\n const referenceFn = data.referenceFn;\n if (referenceFn !== undefined) {\n result = getFunctionName(referenceFn);\n if (result !== undefined) {\n return ownerStr + result;\n }\n }\n if (data.owner !== undefined) {\n const key = findKey(data.owner, self);\n if (key !== undefined) {\n return ownerStr + key;\n }\n }\n return undefined;\n}\nfunction findKey(obj, value) {\n for (const key in obj) {\n if (obj[key] === value) {\n return key;\n }\n }\n return undefined;\n}\nconst countPerClassName = new Map();\nconst ownerId = new WeakMap();\nfunction formatOwner(owner) {\n const id = ownerId.get(owner);\n if (id) {\n return id;\n }\n const className = getClassName(owner) ?? 'Object';\n let count = countPerClassName.get(className) ?? 0;\n count++;\n countPerClassName.set(className, count);\n const result = count === 1 ? className : `${className}#${count}`;\n ownerId.set(owner, result);\n return result;\n}\nfunction getClassName(obj) {\n const ctor = obj.constructor;\n if (ctor) {\n if (ctor.name === 'Object') {\n return undefined;\n }\n return ctor.name;\n }\n return undefined;\n}\nfunction getFunctionName(fn) {\n const fnSrc = fn.toString();\n // Pattern: /** @description ... */\n const regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n const match = regexp.exec(fnSrc);\n const result = match ? match[1] : undefined;\n return result?.trim();\n}\n\nexport { DebugNameData, getClassName, getDebugName, getFunctionName };\n//# sourceMappingURL=debugName.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DebugLocation } from '../debugLocation.js';\nimport { getFunctionName } from '../debugName.js';\nimport { getLogger, logObservable } from '../logging/logging.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet _derived;\n/**\n * @internal\n * This is to allow splitting files.\n*/\nfunction _setDerivedOpts(derived) {\n _derived = derived;\n}\nlet _recomputeInitiallyAndOnChange;\nfunction _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange) {\n _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange;\n}\nlet _keepObserved;\nfunction _setKeepObserved(keepObserved) {\n _keepObserved = keepObserved;\n}\nlet _debugGetDependencyGraph;\nfunction _setDebugGetDependencyGraph(debugGetDependencyGraph) {\n _debugGetDependencyGraph = debugGetDependencyGraph;\n}\nclass ConvenientObservable {\n get TChange() { return null; }\n reportChanges() {\n this.get();\n }\n /** @sealed */\n read(reader) {\n if (reader) {\n return reader.readObservable(this);\n }\n else {\n return this.get();\n }\n }\n map(fnOrOwner, fnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n const owner = fnOrUndefined === undefined ? undefined : fnOrOwner;\n const fn = fnOrUndefined === undefined ? fnOrOwner : fnOrUndefined;\n return _derived({\n owner,\n debugName: () => {\n const name = getFunctionName(fn);\n if (name !== undefined) {\n return name;\n }\n // regexp to match `x => x.y` or `x => x?.y` where x and y can be arbitrary identifiers (uses backref):\n const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n const match = regexp.exec(fn.toString());\n if (match) {\n return `${this.debugName}.${match[2]}`;\n }\n if (!owner) {\n return `${this.debugName} (mapped)`;\n }\n return undefined;\n },\n debugReferenceFn: fn,\n }, (reader) => fn(this.read(reader), reader), debugLocation);\n }\n /**\n * @sealed\n * Converts an observable of an observable value into a direct observable of the value.\n */\n flatten() {\n return _derived({\n owner: undefined,\n debugName: () => `${this.debugName} (flattened)`,\n }, (reader) => this.read(reader).read(reader));\n }\n recomputeInitiallyAndOnChange(store, handleValue) {\n store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n return this;\n }\n /**\n * Ensures that this observable is observed. This keeps the cache alive.\n * However, in case of deriveds, it does not force eager evaluation (only when the value is read/get).\n * Use `recomputeInitiallyAndOnChange` for eager evaluation.\n */\n keepObserved(store) {\n store.add(_keepObserved(this));\n return this;\n }\n get debugValue() {\n return this.get();\n }\n debugGetDependencyGraph() {\n return _debugGetDependencyGraph(this);\n }\n}\nclass BaseObservable extends ConvenientObservable {\n constructor(debugLocation) {\n super();\n this._observers = new Set();\n getLogger()?.handleObservableCreated(this, debugLocation);\n }\n addObserver(observer) {\n const len = this._observers.size;\n this._observers.add(observer);\n if (len === 0) {\n this.onFirstObserverAdded();\n }\n if (len !== this._observers.size) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n removeObserver(observer) {\n const deleted = this._observers.delete(observer);\n if (deleted && this._observers.size === 0) {\n this.onLastObserverRemoved();\n }\n if (deleted) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n onFirstObserverAdded() { }\n onLastObserverRemoved() { }\n log() {\n const hadLogger = !!getLogger();\n logObservable(this);\n if (!hadLogger) {\n getLogger()?.handleObservableCreated(this, DebugLocation.ofCaller());\n }\n return this;\n }\n debugGetObservers() {\n return this._observers;\n }\n}\n\nexport { BaseObservable, ConvenientObservable, _setDebugGetDependencyGraph, _setDerivedOpts, _setKeepObserved, _setRecomputeInitiallyAndOnChange };\n//# sourceMappingURL=baseObservable.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction toDisposable(fn) {\n return {\n dispose: fn\n };\n}\nclass BugIndicatingError extends Error {\n constructor(message) {\n super(message || 'An unexpected bug occurred.');\n Object.setPrototypeOf(this, BugIndicatingError.prototype);\n // Because we know for sure only buggy code throws this,\n // we definitely want to break here and fix the bug.\n // eslint-disable-next-line no-debugger\n // debugger;\n }\n}\nfunction onBugIndicatingError(error) {\n // debugger;\n throw error;\n}\nfunction onUnexpectedError(error) {\n console.error('Unexpected error:', error);\n}\n/**\n * Compares two items for equality using strict equality.\n*/\nconst strictEquals = (a, b) => a === b;\nfunction isDefined(arg) {\n return arg !== undefined && arg !== null;\n}\n\nexport { BugIndicatingError, isDefined, onBugIndicatingError, onUnexpectedError, strictEquals, toDisposable };\n//# sourceMappingURL=deps.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DisposableStore {\n constructor() {\n this.disposables = [];\n this._isDisposed = false;\n }\n get isDisposed() { return this._isDisposed; }\n dispose() {\n this.clear();\n this._isDisposed = true;\n }\n add(disposable) {\n if (disposable) {\n this.disposables.push(disposable);\n }\n return disposable;\n }\n remove(disposable) {\n if (!disposable) {\n return disposable;\n }\n const index = this.disposables.indexOf(disposable);\n if (index !== -1) {\n this.disposables.splice(index, 1);\n }\n return disposable;\n }\n clear() {\n for (const disposable of this.disposables) {\n disposable.dispose();\n }\n this.disposables = [];\n }\n leakItems() {\n this.disposables = [];\n }\n}\nclass Disposable {\n constructor() {\n this._store = new DisposableStore();\n }\n dispose() {\n this._store.dispose();\n }\n _register(t) {\n this._store.add(t);\n return t;\n }\n _registerOrDispose(t) {\n if (t) {\n if (this._store.isDisposed) {\n t.dispose();\n }\n else {\n this._store.add(t);\n }\n }\n return t;\n }\n}\n\nexport { Disposable, DisposableStore };\n//# sourceMappingURL=disposables.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BaseObservable } from './baseObservable.js';\nimport { BugIndicatingError, onBugIndicatingError } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction derivedStateToString(state) {\n switch (state) {\n case 0 /* DerivedState.initial */: return 'initial';\n case 1 /* DerivedState.dependenciesMightHaveChanged */: return 'dependenciesMightHaveChanged';\n case 2 /* DerivedState.stale */: return 'stale';\n case 3 /* DerivedState.upToDate */: return 'upToDate';\n default: return '<unknown>';\n }\n}\nclass Derived extends BaseObservable {\n get debugName() {\n return this._debugNameData.getDebugName(this) ?? '(anonymous)';\n }\n constructor(_debugNameData, _computeFn, _changeTracker, _handleLastObserverRemoved = undefined, _equalityComparator, debugLocation) {\n super(debugLocation);\n this._debugNameData = _debugNameData;\n this._computeFn = _computeFn;\n this._changeTracker = _changeTracker;\n this._handleLastObserverRemoved = _handleLastObserverRemoved;\n this._equalityComparator = _equalityComparator;\n this._state = 0 /* DerivedState.initial */;\n this._value = undefined;\n this._updateCount = 0;\n this._dependencies = new Set();\n this._dependenciesToBeRemoved = new Set();\n this._changeSummary = undefined;\n this._isUpdating = false;\n this._isComputing = false;\n this._didReportChange = false;\n this._isInBeforeUpdate = false;\n this._isReaderValid = false;\n this._store = undefined;\n this._delayedStore = undefined;\n this._removedObserverToCallEndUpdateOn = null;\n this._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n }\n onLastObserverRemoved() {\n /**\n * We are not tracking changes anymore, thus we have to assume\n * that our cache is invalid.\n */\n this._state = 0 /* DerivedState.initial */;\n this._value = undefined;\n getLogger()?.handleDerivedCleared(this);\n for (const d of this._dependencies) {\n d.removeObserver(this);\n }\n this._dependencies.clear();\n if (this._store !== undefined) {\n this._store.dispose();\n this._store = undefined;\n }\n if (this._delayedStore !== undefined) {\n this._delayedStore.dispose();\n this._delayedStore = undefined;\n }\n this._handleLastObserverRemoved?.();\n }\n get() {\n const checkEnabled = false; // TODO set to true\n if (this._isComputing && checkEnabled) {\n // investigate why this fails in the diff editor!\n throw new BugIndicatingError('Cyclic deriveds are not supported yet!');\n }\n if (this._observers.size === 0) {\n let result;\n // Without observers, we don't know when to clean up stuff.\n // Thus, we don't cache anything to prevent memory leaks.\n try {\n this._isReaderValid = true;\n let changeSummary = undefined;\n if (this._changeTracker) {\n changeSummary = this._changeTracker.createChangeSummary(undefined);\n this._changeTracker.beforeUpdate?.(this, changeSummary);\n }\n result = this._computeFn(this, changeSummary);\n }\n finally {\n this._isReaderValid = false;\n }\n // Clear new dependencies\n this.onLastObserverRemoved();\n return result;\n }\n else {\n do {\n // We might not get a notification for a dependency that changed while it is updating,\n // thus we also have to ask all our depedencies if they changed in this case.\n if (this._state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n for (const d of this._dependencies) {\n /** might call {@link handleChange} indirectly, which could make us stale */\n d.reportChanges();\n if (this._state === 2 /* DerivedState.stale */) {\n // The other dependencies will refresh on demand, so early break\n break;\n }\n }\n }\n // We called report changes of all dependencies.\n // If we are still not stale, we can assume to be up to date again.\n if (this._state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n this._state = 3 /* DerivedState.upToDate */;\n }\n if (this._state !== 3 /* DerivedState.upToDate */) {\n this._recompute();\n }\n // In case recomputation changed one of our dependencies, we need to recompute again.\n } while (this._state !== 3 /* DerivedState.upToDate */);\n return this._value;\n }\n }\n _recompute() {\n let didChange = false;\n this._isComputing = true;\n this._didReportChange = false;\n const emptySet = this._dependenciesToBeRemoved;\n this._dependenciesToBeRemoved = this._dependencies;\n this._dependencies = emptySet;\n try {\n const changeSummary = this._changeSummary;\n this._isReaderValid = true;\n if (this._changeTracker) {\n this._isInBeforeUpdate = true;\n this._changeTracker.beforeUpdate?.(this, changeSummary);\n this._isInBeforeUpdate = false;\n this._changeSummary = this._changeTracker?.createChangeSummary(changeSummary);\n }\n const hadValue = this._state !== 0 /* DerivedState.initial */;\n const oldValue = this._value;\n this._state = 3 /* DerivedState.upToDate */;\n const delayedStore = this._delayedStore;\n if (delayedStore !== undefined) {\n this._delayedStore = undefined;\n }\n try {\n if (this._store !== undefined) {\n this._store.dispose();\n this._store = undefined;\n }\n /** might call {@link handleChange} indirectly, which could invalidate us */\n this._value = this._computeFn(this, changeSummary);\n }\n finally {\n this._isReaderValid = false;\n // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n // Thus, we only unsubscribe from observables that are definitely not read anymore.\n for (const o of this._dependenciesToBeRemoved) {\n o.removeObserver(this);\n }\n this._dependenciesToBeRemoved.clear();\n if (delayedStore !== undefined) {\n delayedStore.dispose();\n }\n }\n didChange = this._didReportChange || (hadValue && !(this._equalityComparator(oldValue, this._value)));\n getLogger()?.handleObservableUpdated(this, {\n oldValue,\n newValue: this._value,\n change: undefined,\n didChange,\n hadValue,\n });\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n this._isComputing = false;\n if (!this._didReportChange && didChange) {\n for (const r of this._observers) {\n r.handleChange(this, undefined);\n }\n }\n else {\n this._didReportChange = false;\n }\n }\n toString() {\n return `LazyDerived<${this.debugName}>`;\n }\n // IObserver Implementation\n beginUpdate(_observable) {\n if (this._isUpdating) {\n throw new BugIndicatingError('Cyclic deriveds are not supported yet!');\n }\n this._updateCount++;\n this._isUpdating = true;\n try {\n const propagateBeginUpdate = this._updateCount === 1;\n if (this._state === 3 /* DerivedState.upToDate */) {\n this._state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n // If we propagate begin update, that will already signal a possible change.\n if (!propagateBeginUpdate) {\n for (const r of this._observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n if (propagateBeginUpdate) {\n for (const r of this._observers) {\n r.beginUpdate(this); // This signals a possible change\n }\n }\n }\n finally {\n this._isUpdating = false;\n }\n }\n endUpdate(_observable) {\n this._updateCount--;\n if (this._updateCount === 0) {\n // End update could change the observer list.\n const observers = [...this._observers];\n for (const r of observers) {\n r.endUpdate(this);\n }\n if (this._removedObserverToCallEndUpdateOn) {\n const observers = [...this._removedObserverToCallEndUpdateOn];\n this._removedObserverToCallEndUpdateOn = null;\n for (const r of observers) {\n r.endUpdate(this);\n }\n }\n }\n }\n handlePossibleChange(observable) {\n // In all other states, observers already know that we might have changed.\n if (this._state === 3 /* DerivedState.upToDate */ && this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable)) {\n this._state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n for (const r of this._observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n handleChange(observable, change) {\n if (this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable) || this._isInBeforeUpdate) {\n getLogger()?.handleDerivedDependencyChanged(this, observable, change);\n let shouldReact = false;\n try {\n shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n changedObservable: observable,\n change,\n didChange: (o) => o === observable,\n }, this._changeSummary) : true;\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n const wasUpToDate = this._state === 3 /* DerivedState.upToDate */;\n if (shouldReact && (this._state === 1 /* DerivedState.dependenciesMightHaveChanged */ || wasUpToDate)) {\n this._state = 2 /* DerivedState.stale */;\n if (wasUpToDate) {\n for (const r of this._observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n }\n }\n // IReader Implementation\n _ensureReaderValid() {\n if (!this._isReaderValid) {\n throw new BugIndicatingError('The reader object cannot be used outside its compute function!');\n }\n }\n readObservable(observable) {\n this._ensureReaderValid();\n // Subscribe before getting the value to enable caching\n observable.addObserver(this);\n /** This might call {@link handleChange} indirectly, which could invalidate us */\n const value = observable.get();\n // Which is why we only add the observable to the dependencies now.\n this._dependencies.add(observable);\n this._dependenciesToBeRemoved.delete(observable);\n return value;\n }\n reportChange(change) {\n this._ensureReaderValid();\n this._didReportChange = true;\n // TODO add logging\n for (const r of this._observers) {\n r.handleChange(this, change);\n }\n }\n get store() {\n this._ensureReaderValid();\n if (this._store === undefined) {\n this._store = new DisposableStore();\n }\n return this._store;\n }\n get delayedStore() {\n this._ensureReaderValid();\n if (this._delayedStore === undefined) {\n this._delayedStore = new DisposableStore();\n }\n return this._delayedStore;\n }\n addObserver(observer) {\n const shouldCallBeginUpdate = !this._observers.has(observer) && this._updateCount > 0;\n super.addObserver(observer);\n if (shouldCallBeginUpdate) {\n if (this._removedObserverToCallEndUpdateOn && this._removedObserverToCallEndUpdateOn.has(observer)) {\n this._removedObserverToCallEndUpdateOn.delete(observer);\n }\n else {\n observer.beginUpdate(this);\n }\n }\n }\n removeObserver(observer) {\n if (this._observers.has(observer) && this._updateCount > 0) {\n if (!this._removedObserverToCallEndUpdateOn) {\n this._removedObserverToCallEndUpdateOn = new Set();\n }\n this._removedObserverToCallEndUpdateOn.add(observer);\n }\n super.removeObserver(observer);\n }\n debugGetState() {\n return {\n state: this._state,\n stateStr: derivedStateToString(this._state),\n updateCount: this._updateCount,\n isComputing: this._isComputing,\n dependencies: this._dependencies,\n value: this._value,\n };\n }\n debugSetValue(newValue) {\n this._value = newValue;\n }\n debugRecompute() {\n if (!this._isComputing) {\n this._recompute();\n }\n else {\n this._state = 2 /* DerivedState.stale */;\n }\n }\n setValue(newValue, tx, change) {\n this._value = newValue;\n const observers = this._observers;\n tx.updateObserver(this, this);\n for (const d of observers) {\n d.handleChange(this, change);\n }\n }\n}\nclass DerivedWithSetter extends Derived {\n constructor(debugNameData, computeFn, changeTracker, handleLastObserverRemoved = undefined, equalityComparator, set, debugLocation) {\n super(debugNameData, computeFn, changeTracker, handleLastObserverRemoved, equalityComparator, debugLocation);\n this.set = set;\n }\n}\n\nexport { Derived, DerivedWithSetter };\n//# sourceMappingURL=derivedImpl.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { strictEquals } from '../commonFacade/deps.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DebugNameData } from '../debugName.js';\nimport { _setDerivedOpts } from './baseObservable.js';\nimport { Derived, DerivedWithSetter } from './derivedImpl.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction derived(computeFnOrOwner, computeFn, debugLocation = DebugLocation.ofCaller()) {\n if (computeFn !== undefined) {\n return new Derived(new DebugNameData(computeFnOrOwner, undefined, computeFn), computeFn, undefined, undefined, strictEquals, debugLocation);\n }\n return new Derived(new DebugNameData(undefined, undefined, computeFnOrOwner), computeFnOrOwner, undefined, undefined, strictEquals, debugLocation);\n}\nfunction derivedWithSetter(owner, computeFn, setter, debugLocation = DebugLocation.ofCaller()) {\n return new DerivedWithSetter(new DebugNameData(owner, undefined, computeFn), computeFn, undefined, undefined, strictEquals, setter, debugLocation);\n}\nfunction derivedOpts(options, computeFn, debugLocation = DebugLocation.ofCaller()) {\n return new Derived(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn), computeFn, undefined, options.onLastObserverRemoved, options.equalsFn ?? strictEquals, debugLocation);\n}\n_setDerivedOpts(derivedOpts);\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nfunction derivedHandleChanges(options, computeFn, debugLocation = DebugLocation.ofCaller()) {\n return new Derived(new DebugNameData(options.owner, options.debugName, undefined), computeFn, options.changeTracker, undefined, options.equalityComparer ?? strictEquals, debugLocation);\n}\nfunction derivedWithStore(computeFnOrOwner, computeFnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n let computeFn;\n let owner;\n if (computeFnOrUndefined === undefined) {\n computeFn = computeFnOrOwner;\n owner = undefined;\n }\n else {\n owner = computeFnOrOwner;\n computeFn = computeFnOrUndefined;\n }\n // Intentionally re-assigned in case an inactive observable is re-used later\n // eslint-disable-next-line local/code-no-potentially-unsafe-disposables\n let store = new DisposableStore();\n return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n if (store.isDisposed) {\n store = new DisposableStore();\n }\n else {\n store.clear();\n }\n return computeFn(r, store);\n }, undefined, () => store.dispose(), strictEquals, debugLocation);\n}\nfunction derivedDisposable(computeFnOrOwner, computeFnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n let computeFn;\n let owner;\n if (computeFnOrUndefined === undefined) {\n computeFn = computeFnOrOwner;\n owner = undefined;\n }\n else {\n owner = computeFnOrOwner;\n computeFn = computeFnOrUndefined;\n }\n let store = undefined;\n return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n if (!store) {\n store = new DisposableStore();\n }\n else {\n store.clear();\n }\n const result = computeFn(r);\n if (result) {\n store.add(result);\n }\n return result;\n }, undefined, () => {\n if (store) {\n store.dispose();\n store = undefined;\n }\n }, strictEquals, debugLocation);\n}\n\nexport { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore };\n//# sourceMappingURL=derived.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onBugIndicatingError, BugIndicatingError } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction autorunStateToString(state) {\n switch (state) {\n case 1 /* AutorunState.dependenciesMightHaveChanged */: return 'dependenciesMightHaveChanged';\n case 2 /* AutorunState.stale */: return 'stale';\n case 3 /* AutorunState.upToDate */: return 'upToDate';\n default: return '<unknown>';\n }\n}\nclass AutorunObserver {\n get debugName() {\n return this._debugNameData.getDebugName(this) ?? '(anonymous)';\n }\n constructor(_debugNameData, _runFn, _changeTracker, debugLocation) {\n this._debugNameData = _debugNameData;\n this._runFn = _runFn;\n this._changeTracker = _changeTracker;\n this._state = 2 /* AutorunState.stale */;\n this._updateCount = 0;\n this._disposed = false;\n this._dependencies = new Set();\n this._dependenciesToBeRemoved = new Set();\n this._isRunning = false;\n this._store = undefined;\n this._delayedStore = undefined;\n this._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n getLogger()?.handleAutorunCreated(this, debugLocation);\n this._run();\n }\n dispose() {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const o of this._dependencies) {\n o.removeObserver(this); // Warning: external call!\n }\n this._dependencies.clear();\n if (this._store !== undefined) {\n this._store.dispose();\n }\n if (this._delayedStore !== undefined) {\n this._delayedStore.dispose();\n }\n getLogger()?.handleAutorunDisposed(this);\n }\n _run() {\n const emptySet = this._dependenciesToBeRemoved;\n this._dependenciesToBeRemoved = this._dependencies;\n this._dependencies = emptySet;\n this._state = 3 /* AutorunState.upToDate */;\n try {\n if (!this._disposed) {\n getLogger()?.handleAutorunStarted(this);\n const changeSummary = this._changeSummary;\n const delayedStore = this._delayedStore;\n if (delayedStore !== undefined) {\n this._delayedStore = undefined;\n }\n try {\n this._isRunning = true;\n if (this._changeTracker) {\n this._changeTracker.beforeUpdate?.(this, changeSummary);\n this._changeSummary = this._changeTracker.createChangeSummary(changeSummary); // Warning: external call!\n }\n if (this._store !== undefined) {\n this._store.dispose();\n this._store = undefined;\n }\n this._runFn(this, changeSummary); // Warning: external call!\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n finally {\n this._isRunning = false;\n if (delayedStore !== undefined) {\n delayedStore.dispose();\n }\n }\n }\n }\n finally {\n if (!this._disposed) {\n getLogger()?.handleAutorunFinished(this);\n }\n // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n // Thus, we only unsubscribe from observables that are definitely not read anymore.\n for (const o of this._dependenciesToBeRemoved) {\n o.removeObserver(this); // Warning: external call!\n }\n this._dependenciesToBeRemoved.clear();\n }\n }\n toString() {\n return `Autorun<${this.debugName}>`;\n }\n // IObserver implementation\n beginUpdate(_observable) {\n if (this._state === 3 /* AutorunState.upToDate */) {\n this._state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n }\n this._updateCount++;\n }\n endUpdate(_observable) {\n try {\n if (this._updateCount === 1) {\n do {\n if (this._state === 1 /* AutorunState.dependenciesMightHaveChanged */) {\n this._state = 3 /* AutorunState.upToDate */;\n for (const d of this._dependencies) {\n d.reportChanges(); // Warning: external call!\n if (this._state === 2 /* AutorunState.stale */) {\n // The other dependencies will refresh on demand\n break;\n }\n }\n }\n if (this._state !== 3 /* AutorunState.upToDate */) {\n this._run(); // Warning: indirect external call!\n }\n } while (this._state !== 3 /* AutorunState.upToDate */);\n }\n }\n finally {\n this._updateCount--;\n }\n }\n handlePossibleChange(observable) {\n if (this._state === 3 /* AutorunState.upToDate */ && this._isDependency(observable)) {\n this._state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n }\n }\n handleChange(observable, change) {\n if (this._isDependency(observable)) {\n getLogger()?.handleAutorunDependencyChanged(this, observable, change);\n try {\n // Warning: external call!\n const shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n changedObservable: observable,\n change,\n didChange: (o) => o === observable,\n }, this._changeSummary) : true;\n if (shouldReact) {\n this._state = 2 /* AutorunState.stale */;\n }\n }\n catch (e) {\n onBugIndicatingError(e);\n }\n }\n }\n _isDependency(observable) {\n return this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);\n }\n // IReader implementation\n _ensureNoRunning() {\n if (!this._isRunning) {\n throw new BugIndicatingError('The reader object cannot be used outside its compute function!');\n }\n }\n readObservable(observable) {\n this._ensureNoRunning();\n // In case the run action disposes the autorun\n if (this._disposed) {\n return observable.get(); // warning: external call!\n }\n observable.addObserver(this); // warning: external call!\n const value = observable.get(); // warning: external call!\n this._dependencies.add(observable);\n this._dependenciesToBeRemoved.delete(observable);\n return value;\n }\n get store() {\n this._ensureNoRunning();\n if (this._disposed) {\n throw new BugIndicatingError('Cannot access store after dispose');\n }\n if (this._store === undefined) {\n this._store = new DisposableStore();\n }\n return this._store;\n }\n get delayedStore() {\n this._ensureNoRunning();\n if (this._disposed) {\n throw new BugIndicatingError('Cannot access store after dispose');\n }\n if (this._delayedStore === undefined) {\n this._delayedStore = new DisposableStore();\n }\n return this._delayedStore;\n }\n debugGetState() {\n return {\n isRunning: this._isRunning,\n updateCount: this._updateCount,\n dependencies: this._dependencies,\n state: this._state,\n stateStr: autorunStateToString(this._state),\n };\n }\n debugRerun() {\n if (!this._isRunning) {\n this._run();\n }\n else {\n this._state = 2 /* AutorunState.stale */;\n }\n }\n}\n\nexport { AutorunObserver };\n//# sourceMappingURL=autorunImpl.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { toDisposable } from '../commonFacade/deps.js';\nimport { DebugNameData } from '../debugName.js';\nimport { AutorunObserver } from './autorunImpl.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n */\nfunction autorun(fn, debugLocation = DebugLocation.ofCaller()) {\n return new AutorunObserver(new DebugNameData(undefined, undefined, fn), fn, undefined, debugLocation);\n}\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n */\nfunction autorunOpts(options, fn, debugLocation = DebugLocation.ofCaller()) {\n return new AutorunObserver(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? fn), fn, undefined, debugLocation);\n}\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n *\n * Use `changeTracker.createChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `changeTracker.handleChange` to add a reported change to the change summary.\n * The run function is given the last change summary.\n * The change summary is discarded after the run function was called.\n *\n * @see autorun\n */\nfunction autorunHandleChanges(options, fn, debugLocation = DebugLocation.ofCaller()) {\n return new AutorunObserver(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? fn), fn, options.changeTracker, debugLocation);\n}\n/**\n * @see autorunHandleChanges (but with a disposable store that is cleared before the next run or on dispose)\n */\nfunction autorunWithStoreHandleChanges(options, fn) {\n const store = new DisposableStore();\n const disposable = autorunHandleChanges({\n owner: options.owner,\n debugName: options.debugName,\n debugReferenceFn: options.debugReferenceFn ?? fn,\n changeTracker: options.changeTracker,\n }, (reader, changeSummary) => {\n store.clear();\n fn(reader, changeSummary, store);\n });\n return toDisposable(() => {\n disposable.dispose();\n store.dispose();\n });\n}\n/**\n * @see autorun (but with a disposable store that is cleared before the next run or on dispose)\n *\n * @deprecated Use `autorun(reader => { reader.store.add(...) })` instead!\n */\nfunction autorunWithStore(fn) {\n const store = new DisposableStore();\n const disposable = autorunOpts({\n owner: undefined,\n debugName: undefined,\n debugReferenceFn: fn,\n }, reader => {\n store.clear();\n fn(reader, store);\n });\n return toDisposable(() => {\n disposable.dispose();\n store.dispose();\n });\n}\nfunction autorunDelta(observable, handler) {\n let _lastValue;\n return autorunOpts({ debugReferenceFn: handler }, (reader) => {\n const newValue = observable.read(reader);\n const lastValue = _lastValue;\n _lastValue = newValue;\n handler({ lastValue, newValue });\n });\n}\nfunction autorunIterableDelta(getValue, handler, getUniqueIdentifier = v => v) {\n const lastValues = new Map();\n return autorunOpts({ debugReferenceFn: getValue }, (reader) => {\n const newValues = new Map();\n const removedValues = new Map(lastValues);\n for (const value of getValue(reader)) {\n const id = getUniqueIdentifier(value);\n if (lastValues.has(id)) {\n removedValues.delete(id);\n }\n else {\n newValues.set(id, value);\n lastValues.set(id, value);\n }\n }\n for (const id of removedValues.keys()) {\n lastValues.delete(id);\n }\n if (newValues.size || removedValues.size) {\n handler({ addedValues: [...newValues.values()], removedValues: [...removedValues.values()] });\n }\n });\n}\n/**\n * An autorun with a `dispose()` method on its `reader` which cancels the autorun.\n * It it safe to call `dispose()` synchronously.\n */\nfunction autorunSelfDisposable(fn, debugLocation = DebugLocation.ofCaller()) {\n let ar;\n let disposed = false;\n // eslint-disable-next-line prefer-const\n ar = autorun(reader => {\n fn({\n delayedStore: reader.delayedStore,\n store: reader.store,\n readObservable: reader.readObservable.bind(reader),\n dispose: () => {\n ar?.dispose();\n disposed = true;\n }\n });\n }, debugLocation);\n if (disposed) {\n ar.dispose();\n }\n return ar;\n}\n\nexport { autorun, autorunDelta, autorunHandleChanges, autorunIterableDelta, autorunOpts, autorunSelfDisposable, autorunWithStore, autorunWithStoreHandleChanges };\n//# sourceMappingURL=autorun.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from './commonFacade/deps.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * This function is used to indicate that the caller recovered from an error that indicates a bug.\n*/\nfunction handleBugIndicatingErrorRecovery(message) {\n const err = new Error('BugIndicatingErrorRecovery: ' + message);\n onUnexpectedError(err);\n console.error('recovered from an error that indicates a bug', err);\n}\n\nexport { handleBugIndicatingErrorRecovery };\n//# sourceMappingURL=base.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { handleBugIndicatingErrorRecovery } from './base.js';\nimport { getFunctionName } from './debugName.js';\nimport { getLogger } from './logging/logging.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Starts a transaction in which many observables can be changed at once.\n * {@link fn} should start with a JS Doc using `@description` to give the transaction a debug name.\n * Reaction run on demand or when the transaction ends.\n */\nfunction transaction(fn, getDebugName) {\n const tx = new TransactionImpl(fn, getDebugName);\n try {\n fn(tx);\n }\n finally {\n tx.finish();\n }\n}\nlet _globalTransaction = undefined;\nfunction globalTransaction(fn) {\n if (_globalTransaction) {\n fn(_globalTransaction);\n }\n else {\n const tx = new TransactionImpl(fn, undefined);\n _globalTransaction = tx;\n try {\n fn(tx);\n }\n finally {\n tx.finish(); // During finish, more actions might be added to the transaction.\n // Which is why we only clear the global transaction after finish.\n _globalTransaction = undefined;\n }\n }\n}\n/** @deprecated */\nasync function asyncTransaction(fn, getDebugName) {\n const tx = new TransactionImpl(fn, getDebugName);\n try {\n await fn(tx);\n }\n finally {\n tx.finish();\n }\n}\n/**\n * Allows to chain transactions.\n */\nfunction subtransaction(tx, fn, getDebugName) {\n if (!tx) {\n transaction(fn, getDebugName);\n }\n else {\n fn(tx);\n }\n}\nclass TransactionImpl {\n constructor(_fn, _getDebugName) {\n this._fn = _fn;\n this._getDebugName = _getDebugName;\n this._updatingObservers = [];\n getLogger()?.handleBeginTransaction(this);\n }\n getDebugName() {\n if (this._getDebugName) {\n return this._getDebugName();\n }\n return getFunctionName(this._fn);\n }\n updateObserver(observer, observable) {\n if (!this._updatingObservers) {\n // This happens when a transaction is used in a callback or async function.\n // If an async transaction is used, make sure the promise awaits all users of the transaction (e.g. no race).\n handleBugIndicatingErrorRecovery('Transaction already finished!');\n // Error recovery\n transaction(tx => {\n tx.updateObserver(observer, observable);\n });\n return;\n }\n // When this gets called while finish is active, they will still get considered\n this._updatingObservers.push({ observer, observable });\n observer.beginUpdate(observable);\n }\n finish() {\n const updatingObservers = this._updatingObservers;\n if (!updatingObservers) {\n handleBugIndicatingErrorRecovery('transaction.finish() has already been called!');\n return;\n }\n for (let i = 0; i < updatingObservers.length; i++) {\n const { observer, observable } = updatingObservers[i];\n observer.endUpdate(observable);\n }\n // Prevent anyone from updating observers from now on.\n this._updatingObservers = null;\n getLogger()?.handleEndTransaction(this);\n }\n debugGetUpdatingObservers() {\n return this._updatingObservers;\n }\n}\n\nexport { TransactionImpl, asyncTransaction, globalTransaction, subtransaction, transaction };\n//# sourceMappingURL=transaction.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TransactionImpl } from '../transaction.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { strictEquals } from '../commonFacade/deps.js';\nimport { DebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction observableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {\n let debugNameData;\n if (typeof nameOrOwner === 'string') {\n debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n }\n else {\n debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n }\n return new ObservableValue(debugNameData, initialValue, strictEquals, debugLocation);\n}\nclass ObservableValue extends BaseObservable {\n get debugName() {\n return this._debugNameData.getDebugName(this) ?? 'ObservableValue';\n }\n constructor(_debugNameData, initialValue, _equalityComparator, debugLocation) {\n super(debugLocation);\n this._debugNameData = _debugNameData;\n this._equalityComparator = _equalityComparator;\n this._value = initialValue;\n getLogger()?.handleObservableUpdated(this, { hadValue: false, newValue: initialValue, change: undefined, didChange: true, oldValue: undefined });\n }\n get() {\n return this._value;\n }\n set(value, tx, change) {\n if (change === undefined && this._equalityComparator(this._value, value)) {\n return;\n }\n let _tx;\n if (!tx) {\n tx = _tx = new TransactionImpl(() => { }, () => `Setting ${this.debugName}`);\n }\n try {\n const oldValue = this._value;\n this._setValue(value);\n getLogger()?.handleObservableUpdated(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });\n for (const observer of this._observers) {\n tx.updateObserver(observer, this);\n observer.handleChange(this, change);\n }\n }\n finally {\n if (_tx) {\n _tx.finish();\n }\n }\n }\n toString() {\n return `${this.debugName}: ${this._value}`;\n }\n _setValue(newValue) {\n this._value = newValue;\n }\n debugGetState() {\n return {\n value: this._value,\n };\n }\n debugSetValue(value) {\n this._value = value;\n }\n}\n/**\n * A disposable observable. When disposed, its value is also disposed.\n * When a new value is set, the previous value is disposed.\n */\nfunction disposableObservableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {\n let debugNameData;\n if (typeof nameOrOwner === 'string') {\n debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n }\n else {\n debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n }\n return new DisposableObservableValue(debugNameData, initialValue, strictEquals, debugLocation);\n}\nclass DisposableObservableValue extends ObservableValue {\n _setValue(newValue) {\n if (this._value === newValue) {\n return;\n }\n if (this._value) {\n this._value.dispose();\n }\n this._value = newValue;\n }\n dispose() {\n this._value?.dispose();\n }\n}\n\nexport { DisposableObservableValue, ObservableValue, disposableObservableValue, observableValue };\n//# sourceMappingURL=observableValue.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { subtransaction } from '../transaction.js';\nimport { strictEquals } from '../commonFacade/deps.js';\nimport { DebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction observableFromEvent(...args) {\n let owner;\n let event;\n let getValue;\n let debugLocation;\n if (args.length === 2) {\n [event, getValue] = args;\n }\n else {\n [owner, event, getValue, debugLocation] = args;\n }\n return new FromEventObservable(new DebugNameData(owner, undefined, getValue), event, getValue, () => FromEventObservable.globalTransaction, strictEquals, debugLocation ?? DebugLocation.ofCaller());\n}\nfunction observableFromEventOpts(options, event, getValue, debugLocation = DebugLocation.ofCaller()) {\n return new FromEventObservable(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue), event, getValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation);\n}\nclass FromEventObservable extends BaseObservable {\n constructor(_debugNameData, event, _getValue, _getTransaction, _equalityComparator, debugLocation) {\n super(debugLocation);\n this._debugNameData = _debugNameData;\n this.event = event;\n this._getValue = _getValue;\n this._getTransaction = _getTransaction;\n this._equalityComparator = _equalityComparator;\n this._hasValue = false;\n this.handleEvent = (args) => {\n const newValue = this._getValue(args);\n const oldValue = this._value;\n const didChange = !this._hasValue || !(this._equalityComparator(oldValue, newValue));\n let didRunTransaction = false;\n if (didChange) {\n this._value = newValue;\n if (this._hasValue) {\n didRunTransaction = true;\n subtransaction(this._getTransaction(), (tx) => {\n getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n for (const o of this._observers) {\n tx.updateObserver(o, this);\n o.handleChange(this, undefined);\n }\n }, () => {\n const name = this.getDebugName();\n return 'Event fired' + (name ? `: ${name}` : '');\n });\n }\n this._hasValue = true;\n }\n if (!didRunTransaction) {\n getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n }\n };\n }\n getDebugName() {\n return this._debugNameData.getDebugName(this);\n }\n get debugName() {\n const name = this.getDebugName();\n return 'From Event' + (name ? `: ${name}` : '');\n }\n onFirstObserverAdded() {\n this._subscription = this.event(this.handleEvent);\n }\n onLastObserverRemoved() {\n this._subscription.dispose();\n this._subscription = undefined;\n this._hasValue = false;\n this._value = undefined;\n }\n get() {\n if (this._subscription) {\n if (!this._hasValue) {\n this.handleEvent(undefined);\n }\n return this._value;\n }\n else {\n // no cache, as there are no subscribers to keep it updated\n const value = this._getValue(undefined);\n return value;\n }\n }\n debugSetValue(value) {\n this._value = value;\n }\n debugGetState() {\n return { value: this._value, hasValue: this._hasValue };\n }\n}\n(function (observableFromEvent) {\n observableFromEvent.Observer = FromEventObservable;\n function batchEventsGlobally(tx, fn) {\n let didSet = false;\n if (FromEventObservable.globalTransaction === undefined) {\n FromEventObservable.globalTransaction = tx;\n didSet = true;\n }\n try {\n fn();\n }\n finally {\n if (didSet) {\n FromEventObservable.globalTransaction = undefined;\n }\n }\n }\n observableFromEvent.batchEventsGlobally = batchEventsGlobally;\n})(observableFromEvent || (observableFromEvent = {}));\n\nexport { FromEventObservable, observableFromEvent, observableFromEventOpts };\n//# sourceMappingURL=observableFromEvent.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorun } from '../reactions/autorun.js';\nimport { transaction } from '../transaction.js';\nimport { observableValue } from '../observables/observableValue.js';\nimport { toDisposable } from '../commonFacade/deps.js';\nimport { derivedOpts, derived } from '../observables/derived.js';\nimport { observableFromEvent } from '../observables/observableFromEvent.js';\nimport { observableSignal } from '../observables/observableSignal.js';\nimport { _setKeepObserved, _setRecomputeInitiallyAndOnChange } from '../observables/baseObservable.js';\nimport { DisposableStore } from '../../disposables.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction observableFromPromise(promise) {\n const observable = observableValue('promiseValue', {});\n promise.then((value) => {\n observable.set({ value }, undefined);\n });\n return observable;\n}\nfunction signalFromObservable(owner, observable) {\n return derivedOpts({\n owner,\n equalsFn: () => false,\n }, reader => {\n observable.read(reader);\n });\n}\n/**\n * @deprecated Use `debouncedObservable` instead.\n */\nfunction debouncedObservableDeprecated(observable, debounceMs, disposableStore) {\n const debouncedObservable = observableValue('debounced', undefined);\n let timeout = undefined;\n disposableStore.add(autorun(reader => {\n /** @description debounce */\n const value = observable.read(reader);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n transaction(tx => {\n debouncedObservable.set(value, tx);\n });\n }, debounceMs);\n }));\n return debouncedObservable;\n}\n/**\n * Creates an observable that debounces the input observable.\n */\nfunction debouncedObservable(observable, debounceMs) {\n let hasValue = false;\n let lastValue;\n let timeout = undefined;\n return observableFromEvent(cb => {\n const d = autorun(reader => {\n const value = observable.read(reader);\n if (!hasValue) {\n hasValue = true;\n lastValue = value;\n }\n else {\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n lastValue = value;\n cb();\n }, debounceMs);\n }\n });\n return {\n dispose() {\n d.dispose();\n hasValue = false;\n lastValue = undefined;\n },\n };\n }, () => {\n if (hasValue) {\n return lastValue;\n }\n else {\n return observable.get();\n }\n });\n}\nfunction wasEventTriggeredRecently(event, timeoutMs, disposableStore) {\n const observable = observableValue('triggeredRecently', false);\n let timeout = undefined;\n disposableStore.add(event(() => {\n observable.set(true, undefined);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n observable.set(false, undefined);\n }, timeoutMs);\n }));\n return observable;\n}\n/**\n * This makes sure the observable is being observed and keeps its cache alive.\n */\nfunction keepObserved(observable) {\n const o = new KeepAliveObserver(false, undefined);\n observable.addObserver(o);\n return toDisposable(() => {\n observable.removeObserver(o);\n });\n}\n_setKeepObserved(keepObserved);\n/**\n * This converts the given observable into an autorun.\n */\nfunction recomputeInitiallyAndOnChange(observable, handleValue) {\n const o = new KeepAliveObserver(true, handleValue);\n observable.addObserver(o);\n try {\n o.beginUpdate(observable);\n }\n finally {\n o.endUpdate(observable);\n }\n return toDisposable(() => {\n observable.removeObserver(o);\n });\n}\n_setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);\nclass KeepAliveObserver {\n constructor(_forceRecompute, _handleValue) {\n this._forceRecompute = _forceRecompute;\n this._handleValue = _handleValue;\n this._counter = 0;\n }\n beginUpdate(observable) {\n this._counter++;\n }\n endUpdate(observable) {\n if (this._counter === 1 && this._forceRecompute) {\n if (this._handleValue) {\n this._handleValue(observable.get());\n }\n else {\n observable.reportChanges();\n }\n }\n this._counter--;\n }\n handlePossibleChange(observable) {\n // NO OP\n }\n handleChange(observable, change) {\n // NO OP\n }\n}\nfunction derivedObservableWithCache(owner, computeFn) {\n let lastValue = undefined;\n const observable = derivedOpts({ owner, debugReferenceFn: computeFn }, reader => {\n lastValue = computeFn(reader, lastValue);\n return lastValue;\n });\n return observable;\n}\nfunction derivedObservableWithWritableCache(owner, computeFn) {\n let lastValue = undefined;\n const onChange = observableSignal('derivedObservableWithWritableCache');\n const observable = derived(owner, reader => {\n onChange.read(reader);\n lastValue = computeFn(reader, lastValue);\n return lastValue;\n });\n return Object.assign(observable, {\n clearCache: (tx) => {\n lastValue = undefined;\n onChange.trigger(tx);\n },\n setCache: (newValue, tx) => {\n lastValue = newValue;\n onChange.trigger(tx);\n }\n });\n}\n/**\n * When the items array changes, referential equal items are not mapped again.\n */\nfunction mapObservableArrayCached(owner, items, map, keySelector) {\n let m = new ArrayMap(map, keySelector);\n const self = derivedOpts({\n debugReferenceFn: map,\n owner,\n onLastObserverRemoved: () => {\n m.dispose();\n m = new ArrayMap(map);\n }\n }, (reader) => {\n m.setItems(items.read(reader));\n return m.getItems();\n });\n return self;\n}\nclass ArrayMap {\n constructor(_map, _keySelector) {\n this._map = _map;\n this._keySelector = _keySelector;\n this._cache = new Map();\n this._items = [];\n }\n dispose() {\n this._cache.forEach(entry => entry.store.dispose());\n this._cache.clear();\n }\n setItems(items) {\n const newItems = [];\n const itemsToRemove = new Set(this._cache.keys());\n for (const item of items) {\n const key = this._keySelector ? this._keySelector(item) : item;\n let entry = this._cache.get(key);\n if (!entry) {\n const store = new DisposableStore();\n const out = this._map(item, store);\n entry = { out, store };\n this._cache.set(key, entry);\n }\n else {\n itemsToRemove.delete(key);\n }\n newItems.push(entry.out);\n }\n for (const item of itemsToRemove) {\n const entry = this._cache.get(item);\n entry.store.dispose();\n this._cache.delete(item);\n }\n this._items = newItems;\n }\n getItems() {\n return this._items;\n }\n}\n\nexport { KeepAliveObserver, debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently };\n//# sourceMappingURL=utils.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet consoleObservableLogger;\nfunction logObservableToConsole(obs) {\n if (!consoleObservableLogger) {\n consoleObservableLogger = new ConsoleObservableLogger();\n addLogger(consoleObservableLogger);\n }\n consoleObservableLogger.addFilteredObj(obs);\n}\nclass ConsoleObservableLogger {\n constructor() {\n this.indentation = 0;\n this.changedObservablesSets = new WeakMap();\n }\n addFilteredObj(obj) {\n if (!this._filteredObjects) {\n this._filteredObjects = new Set();\n }\n this._filteredObjects.add(obj);\n }\n _isIncluded(obj) {\n return this._filteredObjects?.has(obj) ?? true;\n }\n textToConsoleArgs(text) {\n return consoleTextToArgs([\n normalText(repeat('| ', this.indentation)),\n text,\n ]);\n }\n formatInfo(info) {\n if (!info.hadValue) {\n return [\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n normalText(` (initial)`),\n ];\n }\n return info.didChange\n ? [\n normalText(` `),\n styled(formatValue(info.oldValue, 70), {\n color: 'red',\n strikeThrough: true,\n }),\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n ]\n : [normalText(` (unchanged)`)];\n }\n handleObservableCreated(observable) {\n if (observable instanceof Derived) {\n const derived = observable;\n this.changedObservablesSets.set(derived, new Set());\n }\n }\n handleOnListenerCountChanged(observable, newCount) {\n }\n handleObservableUpdated(observable, info) {\n if (!this._isIncluded(observable)) {\n return;\n }\n if (observable instanceof Derived) {\n this._handleDerivedRecomputed(observable, info);\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('observable value changed'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n ]));\n }\n formatChanges(changes) {\n if (changes.size === 0) {\n return undefined;\n }\n return styled(' (changed deps: ' +\n [...changes].map((o) => o.debugName).join(', ') +\n ')', { color: 'gray' });\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n if (!this._isIncluded(derived)) {\n return;\n }\n this.changedObservablesSets.get(derived)?.add(observable);\n }\n _handleDerivedRecomputed(derived, info) {\n if (!this._isIncluded(derived)) {\n return;\n }\n const changedObservables = this.changedObservablesSets.get(derived);\n if (!changedObservables) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('derived recomputed'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n this.formatChanges(changedObservables),\n { data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n ]));\n changedObservables.clear();\n }\n handleDerivedCleared(derived) {\n if (!this._isIncluded(derived)) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('derived cleared'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ]));\n }\n handleFromEventObservableTriggered(observable, info) {\n if (!this._isIncluded(observable)) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('observable from event triggered'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n { data: [{ fn: observable._getValue }] }\n ]));\n }\n handleAutorunCreated(autorun) {\n if (!this._isIncluded(autorun)) {\n return;\n }\n this.changedObservablesSets.set(autorun, new Set());\n }\n handleAutorunDisposed(autorun) {\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n if (!this._isIncluded(autorun)) {\n return;\n }\n this.changedObservablesSets.get(autorun).add(observable);\n }\n handleAutorunStarted(autorun) {\n const changedObservables = this.changedObservablesSets.get(autorun);\n if (!changedObservables) {\n return;\n }\n if (this._isIncluded(autorun)) {\n console.log(...this.textToConsoleArgs([\n formatKind('autorun'),\n styled(autorun.debugName, { color: 'BlueViolet' }),\n this.formatChanges(changedObservables),\n { data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n ]));\n }\n changedObservables.clear();\n this.indentation++;\n }\n handleAutorunFinished(autorun) {\n this.indentation--;\n }\n handleBeginTransaction(transaction) {\n let transactionName = transaction.getDebugName();\n if (transactionName === undefined) {\n transactionName = '';\n }\n if (this._isIncluded(transaction)) {\n console.log(...this.textToConsoleArgs([\n formatKind('transaction'),\n styled(transactionName, { color: 'BlueViolet' }),\n { data: [{ fn: transaction._fn }] }\n ]));\n }\n this.indentation++;\n }\n handleEndTransaction() {\n this.indentation--;\n }\n}\nfunction consoleTextToArgs(text) {\n const styles = new Array();\n const data = [];\n let firstArg = '';\n function process(t) {\n if ('length' in t) {\n for (const item of t) {\n if (item) {\n process(item);\n }\n }\n }\n else if ('text' in t) {\n firstArg += `%c${t.text}`;\n styles.push(t.style);\n if (t.data) {\n data.push(...t.data);\n }\n }\n else if ('data' in t) {\n data.push(...t.data);\n }\n }\n process(text);\n const result = [firstArg, ...styles];\n result.push(...data);\n return result;\n}\nfunction normalText(text) {\n return styled(text, { color: 'black' });\n}\nfunction formatKind(kind) {\n return styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(text, options = {\n color: 'black',\n}) {\n function objToCss(styleObj) {\n return Object.entries(styleObj).reduce((styleString, [propName, propValue]) => {\n return `${styleString}${propName}:${propValue};`;\n }, '');\n }\n const style = {\n color: options.color,\n };\n if (options.strikeThrough) {\n style['text-decoration'] = 'line-through';\n }\n if (options.bold) {\n style['font-weight'] = 'bold';\n }\n return {\n text,\n style: objToCss(style),\n };\n}\nfunction formatValue(value, availableLen) {\n switch (typeof value) {\n case 'number':\n return '' + value;\n case 'string':\n if (value.length + 2 <= availableLen) {\n return `\"${value}\"`;\n }\n return `\"${value.substr(0, availableLen - 7)}\"+...`;\n case 'boolean':\n return value ? 'true' : 'false';\n case 'undefined':\n return 'undefined';\n case 'object':\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return formatArray(value, availableLen);\n }\n return formatObject(value, availableLen);\n case 'symbol':\n return value.toString();\n case 'function':\n return `[[Function${value.name ? ' ' + value.name : ''}]]`;\n default:\n return '' + value;\n }\n}\nfunction formatArray(value, availableLen) {\n let result = '[ ';\n let first = true;\n for (const val of value) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${formatValue(val, availableLen - result.length)}`;\n }\n result += ' ]';\n return result;\n}\nfunction formatObject(value, availableLen) {\n if (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n const val = value.toString();\n if (val.length <= availableLen) {\n return val;\n }\n return val.substring(0, availableLen - 3) + '...';\n }\n const className = getClassName(value);\n let result = className ? className + '(' : '{ ';\n let first = true;\n for (const [key, val] of Object.entries(value)) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${key}: ${formatValue(val, availableLen - result.length)}`;\n }\n result += className ? ')' : ' }';\n return result;\n}\nfunction repeat(str, count) {\n let result = '';\n for (let i = 1; i <= count; i++) {\n result += str;\n }\n return result;\n}\nfunction padStr(str, length) {\n while (str.length < length) {\n str += ' ';\n }\n return str;\n}\n\nexport { ConsoleObservableLogger, formatValue, logObservableToConsole };\n//# sourceMappingURL=consoleObservableLogger.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass SimpleTypedRpcConnection {\n static createHost(channelFactory, getHandler) {\n return new SimpleTypedRpcConnection(channelFactory, getHandler);\n }\n static createClient(channelFactory, getHandler) {\n return new SimpleTypedRpcConnection(channelFactory, getHandler);\n }\n constructor(_channelFactory, _getHandler) {\n this._channelFactory = _channelFactory;\n this._getHandler = _getHandler;\n this._channel = this._channelFactory({\n handleNotification: (notificationData) => {\n const m = notificationData;\n const fn = this._getHandler().notifications[m[0]];\n if (!fn) {\n throw new Error(`Unknown notification \"${m[0]}\"!`);\n }\n fn(...m[1]);\n },\n handleRequest: (requestData) => {\n const m = requestData;\n try {\n const result = this._getHandler().requests[m[0]](...m[1]);\n return { type: 'result', value: result };\n }\n catch (e) {\n return { type: 'error', value: e };\n }\n },\n });\n const requests = new Proxy({}, {\n get: (target, key) => {\n return async (...args) => {\n const result = await this._channel.sendRequest([key, args]);\n if (result.type === 'error') {\n throw result.value;\n }\n else {\n return result.value;\n }\n };\n }\n });\n const notifications = new Proxy({}, {\n get: (target, key) => {\n return (...args) => {\n this._channel.sendNotification([key, args]);\n };\n }\n });\n this.api = { notifications: notifications, requests: requests };\n }\n}\n\nexport { SimpleTypedRpcConnection };\n//# sourceMappingURL=rpc.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SimpleTypedRpcConnection } from './rpc.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction registerDebugChannel(channelId, createClient) {\n const g = globalThis;\n let queuedNotifications = [];\n let curHost = undefined;\n const { channel, handler } = createChannelFactoryFromDebugChannel({\n sendNotification: (data) => {\n if (curHost) {\n curHost.sendNotification(data);\n }\n else {\n queuedNotifications.push(data);\n }\n },\n });\n let curClient = undefined;\n (g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {\n curClient = createClient();\n curHost = host;\n for (const n of queuedNotifications) {\n host.sendNotification(n);\n }\n queuedNotifications = [];\n return handler;\n };\n return SimpleTypedRpcConnection.createClient(channel, () => {\n if (!curClient) {\n throw new Error('Not supported');\n }\n return curClient;\n });\n}\nfunction createChannelFactoryFromDebugChannel(host) {\n let h;\n const channel = (handler) => {\n h = handler;\n return {\n sendNotification: data => {\n host.sendNotification(data);\n },\n sendRequest: data => {\n throw new Error('not supported');\n },\n };\n };\n return {\n channel: channel,\n handler: {\n handleRequest: (data) => {\n if (data.type === 'notification') {\n return h?.handleNotification(data.data);\n }\n else {\n return h?.handleRequest(data.data);\n }\n },\n },\n };\n}\n\nexport { registerDebugChannel };\n//# sourceMappingURL=debuggerRpc.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass Throttler {\n constructor() {\n this._timeout = undefined;\n }\n throttle(fn, timeoutMs) {\n if (this._timeout === undefined) {\n this._timeout = setTimeout(() => {\n this._timeout = undefined;\n fn();\n }, timeoutMs);\n }\n }\n dispose() {\n if (this._timeout !== undefined) {\n clearTimeout(this._timeout);\n }\n }\n}\nfunction deepAssign(target, source) {\n for (const key in source) {\n if (!!target[key] && typeof target[key] === 'object' && !!source[key] && typeof source[key] === 'object') {\n deepAssign(target[key], source[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n}\nfunction deepAssignDeleteNulls(target, source) {\n for (const key in source) {\n if (source[key] === null) {\n delete target[key];\n }\n else if (!!target[key] && typeof target[key] === 'object' && !!source[key] && typeof source[key] === 'object') {\n deepAssignDeleteNulls(target[key], source[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n}\n\nexport { Throttler, deepAssign, deepAssignDeleteNulls };\n//# sourceMappingURL=utils.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AutorunObserver } from '../../reactions/autorunImpl.js';\nimport { formatValue } from '../consoleObservableLogger.js';\nimport { registerDebugChannel } from './debuggerRpc.js';\nimport { Throttler, deepAssignDeleteNulls, deepAssign } from './utils.js';\nimport { FromEventObservable } from '../../observables/observableFromEvent.js';\nimport { onUnexpectedError, BugIndicatingError, isDefined } from '../../commonFacade/deps.js';\nimport { Derived } from '../../observables/derivedImpl.js';\nimport { ObservableValue } from '../../observables/observableValue.js';\nimport { DebugLocation } from '../../debugLocation.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DevToolsLogger {\n static getInstance() {\n if (DevToolsLogger._instance === undefined) {\n DevToolsLogger._instance = new DevToolsLogger();\n }\n return DevToolsLogger._instance;\n }\n getTransactionState() {\n const affected = [];\n const txs = [...this._activeTransactions];\n if (txs.length === 0) {\n return undefined;\n }\n const observerQueue = txs.flatMap(t => t.debugGetUpdatingObservers() ?? []).map(o => o.observer);\n const processedObservers = new Set();\n while (observerQueue.length > 0) {\n const observer = observerQueue.shift();\n if (processedObservers.has(observer)) {\n continue;\n }\n processedObservers.add(observer);\n const state = this._getInfo(observer, d => {\n if (!processedObservers.has(d)) {\n observerQueue.push(d);\n }\n });\n if (state) {\n affected.push(state);\n }\n }\n return { names: txs.map(t => t.getDebugName() ?? 'tx'), affected };\n }\n _getObservableInfo(observable) {\n const info = this._instanceInfos.get(observable);\n if (!info) {\n onUnexpectedError(new BugIndicatingError('No info found'));\n return undefined;\n }\n return info;\n }\n _getAutorunInfo(autorun) {\n const info = this._instanceInfos.get(autorun);\n if (!info) {\n onUnexpectedError(new BugIndicatingError('No info found'));\n return undefined;\n }\n return info;\n }\n _getInfo(observer, queue) {\n if (observer instanceof Derived) {\n const observersToUpdate = [...observer.debugGetObservers()];\n for (const o of observersToUpdate) {\n queue(o);\n }\n const info = this._getObservableInfo(observer);\n if (!info) {\n return;\n }\n const observerState = observer.debugGetState();\n const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: observerState.updateCount };\n const changedDependencies = [...info.changedObservables].map(o => this._instanceInfos.get(o)?.instanceId).filter(isDefined);\n if (observerState.isComputing) {\n return { ...base, type: 'observable/derived', state: 'updating', changedDependencies, initialComputation: false };\n }\n switch (observerState.state) {\n case 0 /* DerivedState.initial */:\n return { ...base, type: 'observable/derived', state: 'noValue' };\n case 3 /* DerivedState.upToDate */:\n return { ...base, type: 'observable/derived', state: 'upToDate' };\n case 2 /* DerivedState.stale */:\n return { ...base, type: 'observable/derived', state: 'stale', changedDependencies };\n case 1 /* DerivedState.dependenciesMightHaveChanged */:\n return { ...base, type: 'observable/derived', state: 'possiblyStale' };\n }\n }\n else if (observer instanceof AutorunObserver) {\n const info = this._getAutorunInfo(observer);\n if (!info) {\n return undefined;\n }\n const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: info.updateCount };\n const changedDependencies = [...info.changedObservables].map(o => this._instanceInfos.get(o).instanceId);\n if (observer.debugGetState().isRunning) {\n return { ...base, type: 'autorun', state: 'updating', changedDependencies };\n }\n switch (observer.debugGetState().state) {\n case 3 /* AutorunState.upToDate */:\n return { ...base, type: 'autorun', state: 'upToDate' };\n case 2 /* AutorunState.stale */:\n return { ...base, type: 'autorun', state: 'stale', changedDependencies };\n case 1 /* AutorunState.dependenciesMightHaveChanged */:\n return { ...base, type: 'autorun', state: 'possiblyStale' };\n }\n }\n return undefined;\n }\n _formatObservable(obs) {\n const info = this._getObservableInfo(obs);\n if (!info) {\n return undefined;\n }\n return { name: obs.debugName, instanceId: info.instanceId };\n }\n _formatObserver(obs) {\n if (obs instanceof Derived) {\n return { name: obs.toString(), instanceId: this._getObservableInfo(obs)?.instanceId };\n }\n const autorunInfo = this._getAutorunInfo(obs);\n if (autorunInfo) {\n return { name: obs.toString(), instanceId: autorunInfo.instanceId };\n }\n return undefined;\n }\n constructor() {\n this._declarationId = 0;\n this._instanceId = 0;\n this._declarations = new Map();\n this._instanceInfos = new WeakMap();\n this._aliveInstances = new Map();\n this._activeTransactions = new Set();\n this._channel = registerDebugChannel('observableDevTools', () => {\n return {\n notifications: {\n setDeclarationIdFilter: declarationIds => {\n },\n logObservableValue: (observableId) => {\n console.log('logObservableValue', observableId);\n },\n flushUpdates: () => {\n this._flushUpdates();\n },\n resetUpdates: () => {\n this._pendingChanges = null;\n this._channel.api.notifications.handleChange(this._fullState, true);\n },\n },\n requests: {\n getDeclarations: () => {\n const result = {};\n for (const decl of this._declarations.values()) {\n result[decl.id] = decl;\n }\n return { decls: result };\n },\n getSummarizedInstances: () => {\n return null;\n },\n getObservableValueInfo: instanceId => {\n const obs = this._aliveInstances.get(instanceId);\n return {\n observers: [...obs.debugGetObservers()].map(d => this._formatObserver(d)).filter(isDefined),\n };\n },\n getDerivedInfo: instanceId => {\n const d = this._aliveInstances.get(instanceId);\n return {\n dependencies: [...d.debugGetState().dependencies].map(d => this._formatObservable(d)).filter(isDefined),\n observers: [...d.debugGetObservers()].map(d => this._formatObserver(d)).filter(isDefined),\n };\n },\n getAutorunInfo: instanceId => {\n const obs = this._aliveInstances.get(instanceId);\n return {\n dependencies: [...obs.debugGetState().dependencies].map(d => this._formatObservable(d)).filter(isDefined),\n };\n },\n getTransactionState: () => {\n return this.getTransactionState();\n },\n setValue: (instanceId, jsonValue) => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs instanceof Derived) {\n obs.debugSetValue(jsonValue);\n }\n else if (obs instanceof ObservableValue) {\n obs.debugSetValue(jsonValue);\n }\n else if (obs instanceof FromEventObservable) {\n obs.debugSetValue(jsonValue);\n }\n else {\n throw new BugIndicatingError('Observable is not supported');\n }\n const observers = [...obs.debugGetObservers()];\n for (const d of observers) {\n d.beginUpdate(obs);\n }\n for (const d of observers) {\n d.handleChange(obs, undefined);\n }\n for (const d of observers) {\n d.endUpdate(obs);\n }\n },\n getValue: instanceId => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs instanceof Derived) {\n return formatValue(obs.debugGetState().value, 200);\n }\n else if (obs instanceof ObservableValue) {\n return formatValue(obs.debugGetState().value, 200);\n }\n return undefined;\n },\n logValue: (instanceId) => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs && 'get' in obs) {\n console.log('Logged Value:', obs.get());\n }\n else {\n throw new BugIndicatingError('Observable is not supported');\n }\n },\n rerun: (instanceId) => {\n const obs = this._aliveInstances.get(instanceId);\n if (obs instanceof Derived) {\n obs.debugRecompute();\n }\n else if (obs instanceof AutorunObserver) {\n obs.debugRerun();\n }\n else {\n throw new BugIndicatingError('Observable is not supported');\n }\n },\n }\n };\n });\n this._pendingChanges = null;\n this._changeThrottler = new Throttler();\n this._fullState = {};\n this._flushUpdates = () => {\n if (this._pendingChanges !== null) {\n this._channel.api.notifications.handleChange(this._pendingChanges, false);\n this._pendingChanges = null;\n }\n };\n DebugLocation.enable();\n }\n _handleChange(update) {\n deepAssignDeleteNulls(this._fullState, update);\n if (this._pendingChanges === null) {\n this._pendingChanges = update;\n }\n else {\n deepAssign(this._pendingChanges, update);\n }\n this._changeThrottler.throttle(this._flushUpdates, 10);\n }\n _getDeclarationId(type, location) {\n if (!location) {\n return -1;\n }\n let decInfo = this._declarations.get(location.id);\n if (decInfo === undefined) {\n decInfo = {\n id: this._declarationId++,\n type,\n url: location.fileName,\n line: location.line,\n column: location.column,\n };\n this._declarations.set(location.id, decInfo);\n this._handleChange({ decls: { [decInfo.id]: decInfo } });\n }\n return decInfo.id;\n }\n handleObservableCreated(observable, location) {\n const declarationId = this._getDeclarationId('observable/value', location);\n const info = {\n declarationId,\n instanceId: this._instanceId++,\n listenerCount: 0,\n lastValue: undefined,\n updateCount: 0,\n changedObservables: new Set(),\n };\n this._instanceInfos.set(observable, info);\n }\n handleOnListenerCountChanged(observable, newCount) {\n const info = this._getObservableInfo(observable);\n if (!info) {\n return;\n }\n if (info.listenerCount === 0 && newCount > 0) {\n const type = observable instanceof Derived ? 'observable/derived' : 'observable/value';\n this._aliveInstances.set(info.instanceId, observable);\n this._handleChange({\n instances: {\n [info.instanceId]: {\n instanceId: info.instanceId,\n declarationId: info.declarationId,\n formattedValue: info.lastValue,\n type,\n name: observable.debugName,\n }\n }\n });\n }\n else if (info.listenerCount > 0 && newCount === 0) {\n this._handleChange({\n instances: { [info.instanceId]: null }\n });\n this._aliveInstances.delete(info.instanceId);\n }\n info.listenerCount = newCount;\n }\n handleObservableUpdated(observable, changeInfo) {\n if (observable instanceof Derived) {\n this._handleDerivedRecomputed(observable, changeInfo);\n return;\n }\n const info = this._getObservableInfo(observable);\n if (info) {\n if (changeInfo.didChange) {\n info.lastValue = formatValue(changeInfo.newValue, 30);\n if (info.listenerCount > 0) {\n this._handleChange({\n instances: { [info.instanceId]: { formattedValue: info.lastValue } }\n });\n }\n }\n }\n }\n handleAutorunCreated(autorun, location) {\n const declarationId = this._getDeclarationId('autorun', location);\n const info = {\n declarationId,\n instanceId: this._instanceId++,\n updateCount: 0,\n changedObservables: new Set(),\n };\n this._instanceInfos.set(autorun, info);\n this._aliveInstances.set(info.instanceId, autorun);\n if (info) {\n this._handleChange({\n instances: {\n [info.instanceId]: {\n instanceId: info.instanceId,\n declarationId: info.declarationId,\n runCount: 0,\n type: 'autorun',\n name: autorun.debugName,\n }\n }\n });\n }\n }\n handleAutorunDisposed(autorun) {\n const info = this._getAutorunInfo(autorun);\n if (!info) {\n return;\n }\n this._handleChange({\n instances: { [info.instanceId]: null }\n });\n this._instanceInfos.delete(autorun);\n this._aliveInstances.delete(info.instanceId);\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n const info = this._getAutorunInfo(autorun);\n if (!info) {\n return;\n }\n info.changedObservables.add(observable);\n }\n handleAutorunStarted(autorun) {\n }\n handleAutorunFinished(autorun) {\n const info = this._getAutorunInfo(autorun);\n if (!info) {\n return;\n }\n info.changedObservables.clear();\n info.updateCount++;\n this._handleChange({\n instances: { [info.instanceId]: { runCount: info.updateCount } }\n });\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n const info = this._getObservableInfo(derived);\n if (info) {\n info.changedObservables.add(observable);\n }\n }\n _handleDerivedRecomputed(observable, changeInfo) {\n const info = this._getObservableInfo(observable);\n if (!info) {\n return;\n }\n const formattedValue = formatValue(changeInfo.newValue, 30);\n info.updateCount++;\n info.changedObservables.clear();\n info.lastValue = formattedValue;\n if (info.listenerCount > 0) {\n this._handleChange({\n instances: { [info.instanceId]: { formattedValue: formattedValue, recomputationCount: info.updateCount } }\n });\n }\n }\n handleDerivedCleared(observable) {\n const info = this._getObservableInfo(observable);\n if (!info) {\n return;\n }\n info.lastValue = undefined;\n info.changedObservables.clear();\n if (info.listenerCount > 0) {\n this._handleChange({\n instances: {\n [info.instanceId]: {\n formattedValue: undefined,\n }\n }\n });\n }\n }\n handleBeginTransaction(transaction) {\n this._activeTransactions.add(transaction);\n }\n handleEndTransaction(transaction) {\n this._activeTransactions.delete(transaction);\n }\n}\nDevToolsLogger._instance = undefined;\n\nexport { DevToolsLogger };\n//# sourceMappingURL=devToolsLogger.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Derived } from '../observables/derivedImpl.js';\nimport { FromEventObservable } from '../observables/observableFromEvent.js';\nimport { ObservableValue } from '../observables/observableValue.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\nimport { formatValue } from './consoleObservableLogger.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction debugGetDependencyGraph(obs, options) {\n const debugNamePostProcessor = options?.debugNamePostProcessor ?? ((str) => str);\n const info = Info.from(obs, debugNamePostProcessor);\n if (!info) {\n return '';\n }\n const alreadyListed = new Set();\n return formatObservableInfo(info, 0, alreadyListed).trim();\n}\nfunction formatObservableInfo(info, indentLevel, alreadyListed) {\n const indent = '\\t\\t'.repeat(indentLevel);\n const lines = [];\n const isAlreadyListed = alreadyListed.has(info.sourceObj);\n if (isAlreadyListed) {\n lines.push(`${indent}* ${info.type} ${info.name} (already listed)`);\n return lines.join('\\n');\n }\n alreadyListed.add(info.sourceObj);\n lines.push(`${indent}* ${info.type} ${info.name}:`);\n lines.push(`${indent} value: ${formatValue(info.value, 50)}`);\n lines.push(`${indent} state: ${info.state}`);\n if (info.dependencies.length > 0) {\n lines.push(`${indent} dependencies:`);\n for (const dep of info.dependencies) {\n lines.push(formatObservableInfo(dep, indentLevel + 1, alreadyListed));\n }\n }\n return lines.join('\\n');\n}\nclass Info {\n static from(obs, debugNamePostProcessor) {\n if (obs instanceof AutorunObserver) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'autorun', undefined, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));\n }\n else if (obs instanceof Derived) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'derived', state.value, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));\n }\n else if (obs instanceof ObservableValue) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', []);\n }\n else if (obs instanceof FromEventObservable) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', []);\n }\n return undefined;\n }\n static unknown(obs) {\n return new Info(obs, '(unknown)', 'unknown', undefined, 'unknown', []);\n }\n constructor(sourceObj, name, type, value, state, dependencies) {\n this.sourceObj = sourceObj;\n this.name = name;\n this.type = type;\n this.value = value;\n this.state = state;\n this.dependencies = dependencies;\n }\n}\n\nexport { debugGetDependencyGraph };\n//# sourceMappingURL=debugGetDependencyGraph.js.map\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addLogger, setLogObservableFn } from './logging/logging.js';\nimport { _setDebugGetDependencyGraph } from './observables/baseObservable.js';\nexport { DebugLocation } from './debugLocation.js';\nexport { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observables/derived.js';\nexport { debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently } from './utils/utils.js';\nexport { observableFromEvent, observableFromEventOpts } from './observables/observableFromEvent.js';\nimport { logObservableToConsole } from './logging/consoleObservableLogger.js';\nimport { DevToolsLogger } from './logging/debugger/devToolsLogger.js';\nimport { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// This is a facade for the observable implementation. Only import from here!\n_setDebugGetDependencyGraph(debugGetDependencyGraph);\nsetLogObservableFn(logObservableToConsole);\n// To debug observables you also need the extension \"ms-vscode.debug-value-editor\"\naddLogger(DevToolsLogger.getInstance());\n//# sourceMappingURL=index.js.map\n","import { observableValue, derived, type IObservable, type IReader } from '@vscode/observables';\nimport type { ComponentDefinition, FixtureExport } from './ComponentDefinition.js';\nimport { createFixtureTree, findNodeByPath, type FixtureNode } from './FixtureNode.js';\n\n/**\n * Registry for discovered fixtures.\n * Holds the fixture tree as an observable for reactivity.\n */\nexport class FixtureRegistry {\n private readonly _fixtures = observableValue<Map<string, FixtureExport>>(this, new Map());\n\n /** Observable root of the fixture tree */\n readonly root: IObservable<FixtureNode> = derived(this, (reader) => {\n const fixtures = this._fixtures.read(reader);\n return createFixtureTree(fixtures);\n });\n\n /**\n * Registers a fixture file.\n * @param path The file path (e.g., 'components/Button.fixture.tsx')\n * @param fixtureExport The exported fixture object\n */\n register(path: string, fixtureExport: FixtureExport): void {\n const fixtures = new Map(this._fixtures.get());\n fixtures.set(path, fixtureExport);\n this._fixtures.set(fixtures, undefined);\n }\n\n /**\n * Unregisters a fixture file.\n * @param path The file path to remove\n */\n unregister(path: string): void {\n const fixtures = new Map(this._fixtures.get());\n if (fixtures.delete(path)) {\n this._fixtures.set(fixtures, undefined);\n }\n }\n\n /**\n * Clears all registered fixtures.\n */\n clear(): void {\n this._fixtures.set(new Map(), undefined);\n }\n\n /**\n * Gets a node by path.\n */\n getNode(reader: IReader, path: string[]): FixtureNode | undefined {\n const root = this.root.read(reader);\n return findNodeByPath(root, path);\n }\n\n /**\n * Gets a component by path (non-reactive, for use in preview iframe).\n * @param path Array of path segments (e.g., ['Button', 'Primary'])\n */\n getComponentByPath(path: string[]): ComponentDefinition | undefined {\n const fixtures = this._fixtures.get();\n const tree = createFixtureTree(fixtures);\n const node = findNodeByPath(tree, path);\n return node?.component;\n }\n}\n","import type { FixtureNode } from './FixtureNode.js';\nimport type { FixtureExport } from './ComponentDefinition.js';\nimport type { Disposable } from './DisplayMode.js';\nimport { createFixtureTree } from './FixtureNode.js';\nimport { getDefaultPropertyValues } from './PropertySchema.js';\n\nexport interface FixtureModules {\n\t[path: string]: { default?: unknown };\n}\n\ninterface FlatFixture {\n\treadonly fixtureId: string;\n\treadonly fixtureName: string;\n\treadonly groupPath: string[];\n}\n\ninterface CliApi {\n\treadonly sessionId: string;\n\treadonly updateVersion: number;\n\tlistFixtures(): FlatFixture[];\n\trenderFixture(fixtureId: string): Promise<void>;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t__componentExplorerCli__?: CliApi;\n\t}\n}\n\n/**\n * Runtime for the CLI/screenshot mode.\n * Manages fixture registration, rendering, and HMR versioning.\n * Installs itself as `window.__componentExplorerCli__`.\n */\nexport class CliRuntime {\n\treadonly sessionId = Math.random().toString(36).slice(2);\n\tprivate _updateVersion = 0;\n\tprivate _root: FixtureNode;\n\tprivate _fixtureModules: FixtureModules;\n\tprivate _currentDisposable: Disposable | undefined;\n\tprivate _currentContainer: HTMLElement | undefined;\n\n\tconstructor(\n\t\tprivate readonly _containerElement: HTMLElement,\n\t\tfixtureModules: FixtureModules,\n\t) {\n\t\tthis._fixtureModules = fixtureModules;\n\t\tthis._root = this._buildRegistry();\n\t\tthis._installGlobalApi();\n\n\t\tconst count = this._flattenFixtures(this._root).length;\n\t\tconsole.log('[cli] CLI entry initialized, sessionId:', this.sessionId, 'version:', this._updateVersion, 'fixtures:', count);\n\t}\n\n\tget updateVersion(): number {\n\t\treturn this._updateVersion;\n\t}\n\n\tupdateFixtures(fixtureModules: FixtureModules): void {\n\t\tthis._fixtureModules = fixtureModules;\n\t\tthis._root = this._buildRegistry();\n\t\tthis._updateVersion++;\n\t\tconst count = this._flattenFixtures(this._root).length;\n\t\tconsole.log('[cli] Registry rebuilt, version:', this._updateVersion, 'fixtures:', count);\n\t}\n\n\tbumpVersion(): void {\n\t\tthis._updateVersion++;\n\t\tconsole.log('[cli] Version bumped:', this._updateVersion);\n\t}\n\n\tlistFixtures(): FlatFixture[] {\n\t\treturn this._flattenFixtures(this._root);\n\t}\n\n\tasync renderFixture(fixtureId: string): Promise<void> {\n\t\tconst node = this._findFixtureNode(this._root, fixtureId);\n\t\tif (!node || !node.component) {\n\t\t\tthrow new Error('Fixture not found: ' + fixtureId);\n\t\t}\n\n\t\tif (this._currentDisposable) {\n\t\t\tthis._currentDisposable.dispose();\n\t\t\tthis._currentDisposable = undefined;\n\t\t}\n\t\tif (this._currentContainer) {\n\t\t\tthis._currentContainer.remove();\n\t\t\tthis._currentContainer = undefined;\n\t\t}\n\n\t\tconst container = document.createElement('div');\n\t\tcontainer.style.display = 'inline-block';\n\t\tthis._containerElement.appendChild(container);\n\t\tthis._currentContainer = container;\n\n\t\tconst def = node.component;\n\t\tconst defaultProps = getDefaultPropertyValues(def.properties);\n\n\t\tlet renderTarget = container;\n\t\tif (def.isolation === 'shadow-dom') {\n\t\t\tconst shadow = container.attachShadow({ mode: 'open' });\n\t\t\trenderTarget = document.createElement('div');\n\t\t\tshadow.appendChild(renderTarget);\n\t\t}\n\n\t\tconst result = def.render(renderTarget, defaultProps);\n\t\tthis._currentDisposable = result && typeof result === 'object' && 'dispose' in result ? result as Disposable : undefined;\n\n\t\tawait new Promise<void>(resolve => requestAnimationFrame(() => requestAnimationFrame(() => resolve())));\n\t}\n\n\tprivate _buildRegistry(): FixtureNode {\n\t\tconst fixtures = new Map<string, FixtureExport>();\n\t\tfor (const [path, module] of Object.entries(this._fixtureModules)) {\n\t\t\tconst fixture = module.default;\n\t\t\tif (fixture && typeof fixture === 'object') {\n\t\t\t\tfixtures.set(path, fixture as FixtureExport);\n\t\t\t}\n\t\t}\n\t\treturn createFixtureTree(fixtures);\n\t}\n\n\tprivate _flattenFixtures(node: FixtureNode, groupPath: string[] = []): FlatFixture[] {\n\t\tconst results: FlatFixture[] = [];\n\t\tif (node.type === 'component') {\n\t\t\tresults.push({ fixtureId: node.id, fixtureName: node.name, groupPath });\n\t\t}\n\t\tfor (const child of node.children ?? []) {\n\t\t\tconst nextPath = node.id ? [...groupPath, node.name] : groupPath;\n\t\t\tresults.push(...this._flattenFixtures(child, nextPath));\n\t\t}\n\t\treturn results;\n\t}\n\n\tprivate _findFixtureNode(node: FixtureNode, fixtureId: string): FixtureNode | undefined {\n\t\tif (node.id === fixtureId) return node;\n\t\tfor (const child of node.children ?? []) {\n\t\t\tconst found = this._findFixtureNode(child, fixtureId);\n\t\t\tif (found) return found;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate _installGlobalApi(): void {\n\t\twindow.__componentExplorerCli__ = {\n\t\t\tsessionId: this.sessionId,\n\t\t\tget updateVersion() { return 0; },\n\t\t\tlistFixtures: () => this.listFixtures(),\n\t\t\trenderFixture: (id) => this.renderFixture(id),\n\t\t};\n\t\t// Use a property descriptor so `updateVersion` reads live from this instance\n\t\tObject.defineProperty(window.__componentExplorerCli__, 'updateVersion', {\n\t\t\tget: () => this._updateVersion,\n\t\t});\n\t}\n}\n","import type { FixtureNode, ComponentDefinition } from '../core/index.js';\n\n/**\n * Explorer's tree node structure, derived from FixtureNode.\n * This is the explorer's own representation of the fixture tree.\n */\nexport interface ExplorerTreeNode {\n readonly id: string;\n readonly name: string;\n readonly type: 'folder' | 'variants' | 'component';\n readonly children?: readonly ExplorerTreeNode[];\n readonly component?: ComponentDefinition;\n}\n\n/**\n * Converts a FixtureNode tree to ExplorerTreeNode tree.\n * This allows the explorer to have its own tree structure.\n */\nexport function toExplorerTree(node: FixtureNode): ExplorerTreeNode {\n return {\n id: node.id,\n name: node.name,\n type: node.type,\n children: node.children?.map(toExplorerTree),\n component: node.component,\n };\n}\n","import { observableValue, type ISettableObservable } from '@vscode/observables';\n\nexport interface LocalStorageObservableOptions<T> {\n readonly storageKey: string;\n readonly defaultValue: T;\n /** Serialize value to string for localStorage. Defaults to JSON.stringify. */\n readonly serialize?: (value: T) => string;\n /** Deserialize string from localStorage. Defaults to JSON.parse. */\n readonly deserialize?: (raw: string) => T;\n}\n\n/**\n * Creates an observable that persists its value to localStorage.\n * The value is loaded from localStorage on creation (if present),\n * and saved to localStorage whenever it changes.\n */\nexport function createLocalStorageObservable<T>(\n owner: object,\n options: LocalStorageObservableOptions<T>\n): ISettableObservable<T> {\n const {\n storageKey,\n defaultValue,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n } = options;\n\n // Try to load from localStorage\n let initialValue = defaultValue;\n try {\n const stored = localStorage.getItem(storageKey);\n if (stored !== null) {\n initialValue = deserialize(stored);\n }\n } catch {\n // Ignore parse errors, use default\n }\n\n const obs = observableValue<T>(owner, initialValue);\n\n // Wrap the set method to persist to localStorage\n const originalSet = obs.set.bind(obs);\n obs.set = (value: T, tx: undefined) => {\n try {\n localStorage.setItem(storageKey, serialize(value));\n } catch {\n // Ignore storage errors (quota exceeded, etc.)\n }\n originalSet(value, tx);\n };\n\n return obs;\n}\n","import { observableValue, derived, IReader } from '@vscode/observables';\nimport { ViewModel, prop } from '@vscode/observables-react';\nimport type { FixtureRegistry, ComponentDefinition } from '../core/index.js';\nimport { type ExplorerTreeNode, toExplorerTree } from './types.js';\nimport { createLocalStorageObservable } from '../lib/localStorageObservable.js';\nimport type { DaemonModel } from '../daemon/index.js';\n\nexport type ViewMode = 'session' | 'diff';\n\n/**\n * A fixture item to be rendered in the preview area.\n */\nexport interface FixtureItem {\n readonly id: string;\n readonly name: string;\n readonly path: string;\n readonly component: ComponentDefinition;\n}\n\n/**\n * A screenshot comparison item for diff mode.\n */\nexport interface ScreenshotComparisonItem {\n readonly fixtureId: string;\n readonly name: string;\n readonly path: string;\n}\n\n/**\n * A preview row can be a live fixture, a variant group, or a screenshot comparison.\n */\nexport type PreviewRow =\n | { readonly type: 'single'; readonly fixture: FixtureItem }\n | { readonly type: 'variants'; readonly id: string; readonly name: string; readonly path: string; readonly fixtures: readonly FixtureItem[] }\n | { readonly type: 'screenshot-comparison'; readonly id: string; readonly name: string; readonly path: string; readonly items: readonly ScreenshotComparisonItem[] };\n\nexport class ExplorerModel extends ViewModel({\n registry: prop.const<FixtureRegistry>(),\n daemonModel: prop.const<DaemonModel | undefined>(),\n}) {\n readonly leftSidebarVisible = createLocalStorageObservable<boolean>(this, {\n storageKey: 'component-explorer:leftSidebarVisible',\n defaultValue: true,\n });\n readonly rightSidebarVisible = createLocalStorageObservable<boolean>(this, {\n storageKey: 'component-explorer:rightSidebarVisible',\n defaultValue: true,\n });\n readonly isDarkTheme = createLocalStorageObservable<boolean>(this, {\n storageKey: 'component-explorer:isDarkTheme',\n defaultValue: true,\n });\n readonly selectedNodeId = createLocalStorageObservable<string | undefined>(this, {\n storageKey: 'component-explorer:selectedNodeId',\n defaultValue: undefined,\n });\n readonly expandedNodeIds = observableValue<ReadonlySet<string>>(this, new Set());\n\n readonly viewMode = createLocalStorageObservable<ViewMode>(this, {\n storageKey: 'component-explorer:viewMode',\n defaultValue: 'session',\n });\n\n get daemonAvailable(): boolean { return this.props.daemonModel !== undefined; }\n get daemon(): DaemonModel | undefined { return this.props.daemonModel; }\n\n /** The explorer's tree derived from the registry */\n readonly tree = derived(this, (reader) => {\n const root = this.props.registry.root.read(reader);\n return toExplorerTree(root);\n });\n\n readonly selectedNode = derived(this, (reader) => {\n const nodeId = this.selectedNodeId.read(reader);\n if (!nodeId) return undefined;\n const tree = this.tree.read(reader);\n return this._findNode(tree.children ?? [], nodeId);\n });\n\n /** List of preview rows to render based on current selection and view mode */\n readonly selectedFixtures = derived(this, (reader): readonly PreviewRow[] => {\n const selectedNode = this.selectedNode.read(reader);\n if (!selectedNode) return [];\n\n const mode = this.viewMode.read(reader);\n if (mode === 'diff' && this.daemonAvailable) {\n return this._collectDiffRows(selectedNode, selectedNode.name);\n }\n\n return this._collectPreviewRows(selectedNode, selectedNode.name);\n });\n\n setViewMode = (mode: ViewMode): void => {\n this.viewMode.set(mode, undefined);\n };\n\n navigateToSession = (sessionName: string): void => {\n const daemon = this.props.daemonModel;\n if (!daemon) return;\n const url = daemon.getSessionExplorerUrl(sessionName);\n if (url) {\n window.location.href = url;\n }\n };\n\n toggleLeftSidebar = (): void => {\n this.leftSidebarVisible.set(!this.leftSidebarVisible.get(), undefined);\n };\n\n toggleRightSidebar = (): void => {\n this.rightSidebarVisible.set(!this.rightSidebarVisible.get(), undefined);\n };\n\n toggleTheme = (): void => {\n this.isDarkTheme.set(!this.isDarkTheme.get(), undefined);\n };\n\n selectNode = (nodeId: string): void => {\n this.selectedNodeId.set(nodeId, undefined);\n };\n\n toggleNodeExpanded = (nodeId: string): void => {\n const current = this.expandedNodeIds.get();\n const newSet = new Set(current);\n if (newSet.has(nodeId)) {\n newSet.delete(nodeId);\n } else {\n newSet.add(nodeId);\n }\n this.expandedNodeIds.set(newSet, undefined);\n };\n\n isNodeExpanded(nodeId: string, reader: IReader): boolean {\n return this.expandedNodeIds.read(reader).has(nodeId);\n }\n\n private _findNode(nodes: readonly ExplorerTreeNode[], id: string): ExplorerTreeNode | undefined {\n for (const node of nodes) {\n if (node.id === id) return node;\n if (node.children) {\n const found = this._findNode(node.children, id);\n if (found) return found;\n }\n }\n return undefined;\n }\n\n private _collectPreviewRows(node: ExplorerTreeNode, pathPrefix: string): PreviewRow[] {\n if (node.type === 'component' && node.component) {\n return [{\n type: 'single',\n fixture: {\n id: node.id,\n name: node.name,\n path: pathPrefix,\n component: node.component,\n },\n }];\n }\n\n if (node.type === 'variants') {\n // Collect all variant children as a single horizontal row\n const fixtures: FixtureItem[] = [];\n for (const child of node.children ?? []) {\n if (child.type === 'component' && child.component) {\n fixtures.push({\n id: child.id,\n name: child.name,\n path: `${pathPrefix} / ${child.name}`,\n component: child.component,\n });\n }\n }\n if (fixtures.length > 0) {\n return [{\n type: 'variants',\n id: node.id,\n name: node.name,\n path: pathPrefix,\n fixtures,\n }];\n }\n return [];\n }\n\n // Folder: recurse into children\n const result: PreviewRow[] = [];\n for (const child of node.children ?? []) {\n const childPath = pathPrefix ? `${pathPrefix} / ${child.name}` : child.name;\n result.push(...this._collectPreviewRows(child, childPath));\n }\n return result;\n }\n\n /**\n * In diff mode: fixtures become screenshot comparison items showing current vs baseline.\n * Variants become comparison groups.\n */\n private _collectDiffRows(node: ExplorerTreeNode, pathPrefix: string): PreviewRow[] {\n if (node.type === 'component') {\n return [{\n type: 'screenshot-comparison',\n id: node.id,\n name: node.name,\n path: pathPrefix,\n items: [{\n fixtureId: node.id,\n name: node.name,\n path: pathPrefix,\n }],\n }];\n }\n\n if (node.type === 'variants') {\n const items: ScreenshotComparisonItem[] = [];\n for (const child of node.children ?? []) {\n if (child.type === 'component') {\n items.push({\n fixtureId: child.id,\n name: child.name,\n path: `${pathPrefix} / ${child.name}`,\n });\n }\n }\n if (items.length > 0) {\n return [{\n type: 'screenshot-comparison',\n id: node.id,\n name: node.name,\n path: pathPrefix,\n items,\n }];\n }\n return [];\n }\n\n const result: PreviewRow[] = [];\n for (const child of node.children ?? []) {\n const childPath = pathPrefix ? `${pathPrefix} / ${child.name}` : child.name;\n result.push(...this._collectDiffRows(child, childPath));\n }\n return result;\n }\n}\n","import * as React from 'react';\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row' as const,\n height: '100%',\n width: '100%',\n fontFamily: 'var(--vscode-font-family)',\n fontSize: 'var(--vscode-font-size)',\n color: 'var(--vscode-foreground)',\n backgroundColor: 'var(--vscode-editor-background)',\n },\n centerArea: {\n display: 'flex',\n flexDirection: 'column' as const,\n flex: 1,\n overflow: 'hidden',\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: '35px',\n minHeight: '35px',\n padding: '0 10px',\n backgroundColor: 'var(--vscode-titleBar-activeBackground)',\n color: 'var(--vscode-titleBar-activeForeground)',\n borderBottom: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n titleBarSection: {\n display: 'flex',\n alignItems: 'center',\n gap: '2px',\n },\n titleBarCenter: {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n fontSize: '13px',\n fontWeight: 400,\n },\n titleBarButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '28px',\n height: '28px',\n border: 'none',\n background: 'transparent',\n color: 'var(--vscode-titleBar-activeForeground)',\n cursor: 'pointer',\n borderRadius: '4px',\n },\n titleBarButtonHover: {\n backgroundColor: 'var(--vscode-toolbar-hoverBackground)',\n },\n titleBarButtonActive: {\n backgroundColor: 'var(--vscode-toolbar-activeBackground)',\n color: 'var(--vscode-focusBorder)',\n },\n sidebar: {\n display: 'flex',\n flexDirection: 'column' as const,\n width: '260px',\n minWidth: '200px',\n backgroundColor: 'var(--vscode-sideBar-background)',\n borderRight: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n sidebarRight: {\n borderRight: 'none',\n borderLeft: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n sidebarHeader: {\n display: 'flex',\n alignItems: 'center',\n height: '35px',\n minHeight: '35px',\n padding: '0 12px',\n fontSize: '11px',\n fontWeight: 700,\n textTransform: 'uppercase' as const,\n letterSpacing: '0.04em',\n color: 'var(--vscode-titleBar-activeForeground)',\n backgroundColor: 'var(--vscode-titleBar-activeBackground)',\n borderBottom: '1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))',\n },\n sidebarContent: {\n flex: 1,\n overflow: 'auto',\n padding: '4px 0',\n },\n treeItem: {\n display: 'flex',\n alignItems: 'center',\n height: '22px',\n paddingRight: '8px',\n cursor: 'pointer',\n userSelect: 'none' as const,\n },\n treeItemSelected: {\n backgroundColor: 'var(--vscode-list-activeSelectionBackground)',\n color: 'var(--vscode-list-activeSelectionForeground)',\n },\n treeItemHover: {\n backgroundColor: 'var(--vscode-list-hoverBackground)',\n },\n treeItemChevron: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '16px',\n height: '16px',\n color: 'var(--vscode-foreground)',\n opacity: 0.8,\n cursor: 'pointer',\n },\n treeItemChevronPlaceholder: {\n width: '16px',\n },\n treeItemIcon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '16px',\n height: '16px',\n marginRight: '4px',\n },\n treeItemLabel: {\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap' as const,\n fontSize: '13px',\n },\n treeItemCount: {\n marginLeft: '8px',\n fontSize: '11px',\n color: 'var(--vscode-descriptionForeground)',\n },\n mainContent: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--vscode-editor-background)',\n color: 'var(--vscode-descriptionForeground)',\n fontSize: '14px',\n },\n propertiesPanel: {\n padding: '12px',\n },\n propertyRow: {\n marginBottom: '12px',\n },\n propertyLabel: {\n fontSize: '12px',\n color: 'var(--vscode-foreground)',\n marginBottom: '4px',\n },\n propertyDescription: {\n fontSize: '11px',\n color: 'var(--vscode-descriptionForeground)',\n marginTop: '2px',\n },\n propertyInput: {\n width: '100%',\n height: '26px',\n padding: '0 8px',\n fontSize: '13px',\n color: 'var(--vscode-input-foreground)',\n backgroundColor: 'var(--vscode-input-background)',\n border: '1px solid var(--vscode-input-border, transparent)',\n borderRadius: '2px',\n outline: 'none',\n boxSizing: 'border-box' as const,\n },\n propertySelect: {\n width: '100%',\n height: '26px',\n padding: '0 8px',\n fontSize: '13px',\n color: 'var(--vscode-dropdown-foreground)',\n backgroundColor: 'var(--vscode-dropdown-background)',\n border: '1px solid var(--vscode-dropdown-border)',\n borderRadius: '2px',\n outline: 'none',\n boxSizing: 'border-box' as const,\n cursor: 'pointer',\n },\n} as const;\n\n// Helper to merge styles\nexport function mergeStyles(...styleObjects: (React.CSSProperties | undefined | false)[]): React.CSSProperties {\n return Object.assign({}, ...styleObjects.filter(Boolean));\n}\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport { styles, mergeStyles } from './styles.js';\n\nclass TitleBarButtonModel extends ViewModel({\n active: prop<boolean>(),\n}) {\n readonly isHovered = observableValue<boolean>(this, false);\n\n get active() { return this.props.active; }\n\n setHovered = (hovered: boolean): void => {\n this.isHovered.set(hovered, undefined);\n };\n}\n\nexport const TitleBarButton = viewWithModel(\n TitleBarButtonModel,\n {\n onClick: prop.const<() => void>(),\n title: prop.const<string>(),\n children: prop.const<React.ReactNode>(),\n },\n (reader, model, props) => {\n const isHovered = model.isHovered.read(reader);\n const active = model.active.read(reader);\n\n const buttonStyle = mergeStyles(\n styles.titleBarButton,\n isHovered && !active && styles.titleBarButtonHover,\n active && styles.titleBarButtonActive,\n );\n\n return (\n <button\n style={buttonStyle}\n onClick={props.onClick}\n title={props.title}\n onMouseEnter={() => model.setHovered(true)}\n onMouseLeave={() => model.setHovered(false)}\n >\n {props.children}\n </button>\n );\n }\n);\n","import * as React from 'react';\n\nexport const ChevronRightIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M5.7 13.7L5 13l4.6-4.6L5 3.7l.7-.7 5.3 5.4-5.3 5.3z\" />\n </svg>\n);\n\nexport const ChevronDownIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M11 5.5L6 10.5L5.3 9.8L9.6 5.5L5.3 1.2L6 0.5L11 5.5z\" transform=\"rotate(90 8 5.5)\" />\n </svg>\n);\n\nexport const ComponentIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M14.5 2H9l-.35.15-.65.64-.65-.64L7 2H1.5l-.5.5v10l.5.5H7l.35-.15.65-.64.65.64.35.15h5.5l.5-.5v-10l-.5-.5zm-7 10H2V3h5v.86L5.85 5l1.15 1.14V10l-1.15-1.14L7 7.72V12zm6 0H8V7.72l1.15 1.14L8 10V6.14L9.15 5 8 3.86V3h5v9z\" />\n </svg>\n);\n\nexport const FolderIcon = ({ style }: { style?: React.CSSProperties }) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style={style}>\n <path d=\"M14.5 3H7.71l-.85-.85L6.5 2h-5l-.5.5v11l.5.5h13l.5-.5v-10l-.5-.5zm-.5 10H2V6h12v7zm0-8H2V3h4.29l.85.85.36.15H14v1z\" />\n </svg>\n);\n\nexport const PanelLeftIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M2 2v12h12V2H2zm11 11H6V3h7v10zM3 3h2v10H3V3z\" />\n </svg>\n);\n\nexport const PanelRightIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M2 2v12h12V2H2zm6 11V3h5v10H8zM3 3h4v10H3V3z\" />\n </svg>\n);\n\nexport const SunIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z\" />\n </svg>\n);\n\nexport const MoonIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path d=\"M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z\" />\n </svg>\n);\n","import { view, prop } from '@vscode/observables-react';\nimport { styles } from './styles.js';\nimport { TitleBarButton } from './TitleBarButton.js';\nimport { PanelLeftIcon, PanelRightIcon, SunIcon, MoonIcon } from './icons.js';\nimport type { ExplorerModel, ViewMode } from './ExplorerModel.js';\n\nconst ViewModeSelector = view(\n { model: prop.const<ExplorerModel>() },\n (reader, props) => {\n const model = props.model;\n const viewMode = model.viewMode.read(reader);\n\n const sessions = model.daemon?.sessions.read(reader) ?? [];\n const currentSession = model.daemon?.sessionName;\n const otherSessions = sessions.filter(s => s.name !== currentSession);\n\n return (\n <div style={viewModeStyles.container}>\n <div style={viewModeStyles.segmentedControl}>\n <ViewModeButton label=\"Live\" mode=\"session\" active={viewMode === 'session'} onClick={() => model.setViewMode('session')} />\n <ViewModeButton label=\"Diff\" mode=\"diff\" active={viewMode === 'diff'} onClick={() => model.setViewMode('diff')} />\n </div>\n {otherSessions.length > 0 && (\n <div style={viewModeStyles.sessionLinks}>\n {otherSessions.map(s => (\n <button\n key={s.name}\n style={viewModeStyles.sessionLink}\n onClick={() => model.navigateToSession(s.name)}\n title={`Switch to ${s.name} session`}\n >\n → {s.name}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n }\n);\n\nfunction ViewModeButton({ label, mode, active, onClick }: {\n label: string; mode: ViewMode; active: boolean; onClick: () => void;\n}) {\n return (\n <button\n style={active ? viewModeStyles.segmentActive : viewModeStyles.segment}\n onClick={onClick}\n >\n {label}\n </button>\n );\n}\n\nexport const TitleBar = view(\n {\n model: prop.const<ExplorerModel>(),\n },\n (reader, props) => {\n const model = props.model;\n const leftVisible = model.leftSidebarVisible.read(reader);\n const rightVisible = model.rightSidebarVisible.read(reader);\n const isDarkTheme = model.isDarkTheme.read(reader);\n const selectedNode = model.selectedNode.read(reader);\n\n return (\n <div style={styles.titleBar}>\n <div style={styles.titleBarSection}>\n <TitleBarButton\n active={leftVisible}\n onClick={model.toggleLeftSidebar}\n title=\"Toggle left sidebar\"\n >\n <PanelLeftIcon />\n </TitleBarButton>\n </div>\n <div style={styles.titleBarCenter}>\n {model.daemonAvailable && <ViewModeSelector model={model} />}\n {selectedNode ? (\n <>\n <span style={{ color: 'var(--vscode-textLink-foreground)' }}><</span>\n <span>{selectedNode.name}</span>\n <span style={{ color: 'var(--vscode-textLink-foreground)' }}>/></span>\n </>\n ) : (\n <span style={{ color: 'var(--vscode-descriptionForeground)' }}>No component selected</span>\n )}\n </div>\n <div style={styles.titleBarSection}>\n <TitleBarButton\n active={false}\n onClick={model.toggleTheme}\n title={isDarkTheme ? 'Switch to light theme' : 'Switch to dark theme'}\n >\n {isDarkTheme ? <SunIcon /> : <MoonIcon />}\n </TitleBarButton>\n <TitleBarButton\n active={rightVisible}\n onClick={model.toggleRightSidebar}\n title=\"Toggle right sidebar\"\n >\n <PanelRightIcon />\n </TitleBarButton>\n </div>\n </div>\n );\n }\n);\n\nconst viewModeStyles = {\n container: {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n marginRight: 12,\n } as React.CSSProperties,\n segmentedControl: {\n display: 'flex',\n borderRadius: 4,\n overflow: 'hidden',\n border: '1px solid var(--vscode-panel-border)',\n } as React.CSSProperties,\n segment: {\n padding: '2px 10px',\n fontSize: 11,\n fontWeight: 500,\n border: 'none',\n background: 'transparent',\n color: 'var(--vscode-descriptionForeground)',\n cursor: 'pointer',\n } as React.CSSProperties,\n segmentActive: {\n padding: '2px 10px',\n fontSize: 11,\n fontWeight: 500,\n border: 'none',\n background: 'var(--vscode-button-background)',\n color: 'var(--vscode-button-foreground)',\n cursor: 'pointer',\n } as React.CSSProperties,\n sessionLinks: {\n display: 'flex',\n gap: 4,\n } as React.CSSProperties,\n sessionLink: {\n padding: '2px 8px',\n fontSize: 11,\n border: '1px solid var(--vscode-panel-border)',\n borderRadius: 4,\n background: 'transparent',\n color: 'var(--vscode-textLink-foreground)',\n cursor: 'pointer',\n } as React.CSSProperties,\n};\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport { styles, mergeStyles } from './styles.js';\nimport { ChevronRightIcon, ChevronDownIcon, ComponentIcon, FolderIcon } from './icons.js';\nimport type { ExplorerModel } from './ExplorerModel.js';\nimport type { ExplorerTreeNode } from './types.js';\n\n// TreeView - renders a list of nodes\nexport const TreeView = view(\n {\n model: prop.const<ExplorerModel>(),\n nodes: prop.const<readonly ExplorerTreeNode[]>(),\n depth: prop.const<number>(),\n },\n (_reader, props) => (\n <>\n {props.nodes.map((node) => (\n <TreeItem key={node.id} model={props.model} node={node} depth={props.depth} />\n ))}\n </>\n )\n);\n\n// TreeItem - ViewModel for hover state\nclass TreeItemModel extends ViewModel({\n model: prop.const<ExplorerModel>(),\n node: prop.const<ExplorerTreeNode>(),\n depth: prop.const<number>(),\n}) {\n readonly isHovered = observableValue<boolean>(this, false);\n\n // Expose props for render function\n get explorerModel(): ExplorerModel { return this.props.model; }\n get treeNode(): ExplorerTreeNode { return this.props.node; }\n get treeDepth(): number { return this.props.depth; }\n\n setHovered = (hovered: boolean): void => {\n this.isHovered.set(hovered, undefined);\n };\n\n handleClick = (): void => {\n this.props.model.selectNode(this.props.node.id);\n };\n\n handleDoubleClick = (): void => {\n if (this._hasChildren) {\n this.props.model.toggleNodeExpanded(this.props.node.id);\n }\n };\n\n handleChevronClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n this.props.model.toggleNodeExpanded(this.props.node.id);\n };\n\n private get _hasChildren(): boolean {\n return !!(this.props.node.children && this.props.node.children.length > 0);\n }\n}\n\nexport const TreeItem = viewWithModel(TreeItemModel, {}, (reader, itemModel) => {\n const model = itemModel.explorerModel;\n const node = itemModel.treeNode;\n const depth = itemModel.treeDepth;\n const hasChildren = !!(node.children && node.children.length > 0);\n const isExpanded = hasChildren ? model.isNodeExpanded(node.id, reader) : false;\n const selectedId = model.selectedNodeId.read(reader);\n const isSelected = selectedId === node.id;\n const isHovered = itemModel.isHovered.read(reader);\n\n const itemStyle = mergeStyles(\n styles.treeItem,\n { paddingLeft: `${8 + depth * 12}px` },\n isSelected && styles.treeItemSelected,\n !isSelected && isHovered && styles.treeItemHover,\n );\n\n return (\n <>\n <div\n style={itemStyle}\n onClick={itemModel.handleClick}\n onDoubleClick={itemModel.handleDoubleClick}\n onMouseEnter={() => itemModel.setHovered(true)}\n onMouseLeave={() => itemModel.setHovered(false)}\n >\n {hasChildren ? (\n <div style={styles.treeItemChevron} onClick={itemModel.handleChevronClick}>\n {isExpanded ? <ChevronDownIcon /> : <ChevronRightIcon />}\n </div>\n ) : (\n <div style={styles.treeItemChevronPlaceholder} />\n )}\n <div style={styles.treeItemIcon}>\n {node.type === 'folder' \n ? <FolderIcon style={{ color: 'var(--vscode-symbolIcon-folderForeground)' }} />\n : <ComponentIcon style={{ color: '#deb45b' }} />\n }\n </div>\n <span style={styles.treeItemLabel}>{node.name}</span>\n {hasChildren && (\n <span style={styles.treeItemCount}>{node.children!.length}</span>\n )}\n </div>\n {hasChildren && isExpanded && (\n <TreeView model={model} nodes={node.children!} depth={depth + 1} />\n )}\n </>\n );\n});\n","import { view, prop } from '@vscode/observables-react';\nimport { styles } from './styles.js';\nimport { TreeView } from './TreeView.js';\nimport type { ExplorerModel } from './ExplorerModel.js';\n\nexport const LeftSidebar = view(\n {\n model: prop.const<ExplorerModel>(),\n },\n (reader, props) => {\n const tree = props.model.tree.read(reader);\n return (\n <div style={styles.sidebar}>\n <div style={styles.sidebarHeader}>Explorer</div>\n <div style={styles.sidebarContent}>\n <TreeView model={props.model} nodes={tree.children ?? []} depth={0} />\n </div>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport { styles, mergeStyles } from './styles.js';\nimport type { ExplorerTreeNode } from './types.js';\n\n// ToggleSwitch with observable state\nclass ToggleSwitchModel extends ViewModel({}) {\n readonly checked = observableValue<boolean>(this, false);\n\n toggle = (): void => {\n this.checked.set(!this.checked.get(), undefined);\n };\n}\n\nconst ToggleSwitch = viewWithModel(ToggleSwitchModel, {}, (reader, model) => {\n const checked = model.checked.read(reader);\n\n const trackStyle: React.CSSProperties = {\n position: 'relative',\n width: '36px',\n height: '18px',\n backgroundColor: checked ? 'var(--vscode-button-background)' : 'var(--vscode-input-background)',\n borderRadius: '9px',\n cursor: 'pointer',\n transition: 'background-color 0.2s',\n border: '1px solid var(--vscode-input-border, transparent)',\n };\n\n const thumbStyle: React.CSSProperties = {\n position: 'absolute',\n top: '2px',\n left: checked ? '18px' : '2px',\n width: '12px',\n height: '12px',\n backgroundColor: 'var(--vscode-foreground)',\n borderRadius: '50%',\n transition: 'left 0.2s',\n };\n\n return (\n <div style={trackStyle} onClick={model.toggle}>\n <div style={thumbStyle} />\n </div>\n );\n});\n\n// PropertiesContent - shows mock properties for a component\nconst PropertiesContent = view(\n {\n node: prop.const<ExplorerTreeNode>(),\n },\n (_reader, props) => {\n if (props.node.type !== 'component') {\n return (\n <div style={{ padding: '12px', color: 'var(--vscode-descriptionForeground)', fontSize: '12px' }}>\n Select a component (not a folder) to view its properties\n </div>\n );\n }\n\n return (\n <div style={styles.propertiesPanel}>\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n children<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : string</span>\n </div>\n <input\n type=\"text\"\n style={styles.propertyInput as React.CSSProperties}\n defaultValue=\"Click me\"\n placeholder=\"Enter text...\"\n />\n <div style={styles.propertyDescription}>Button text content</div>\n </div>\n\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n variant<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : select</span>\n </div>\n <select style={styles.propertySelect as React.CSSProperties} defaultValue=\"default\">\n <option value=\"default\">default</option>\n <option value=\"primary\">primary</option>\n <option value=\"secondary\">secondary</option>\n <option value=\"destructive\">destructive</option>\n </select>\n <div style={styles.propertyDescription}>Visual style variant</div>\n </div>\n\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n size<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : select</span>\n </div>\n <select style={styles.propertySelect as React.CSSProperties} defaultValue=\"default\">\n <option value=\"sm\">sm</option>\n <option value=\"default\">default</option>\n <option value=\"lg\">lg</option>\n </select>\n <div style={styles.propertyDescription}>Button size</div>\n </div>\n\n <div style={styles.propertyRow}>\n <div style={styles.propertyLabel}>\n disabled<span style={{ color: 'var(--vscode-descriptionForeground)' }}> : boolean</span>\n </div>\n <ToggleSwitch />\n <div style={styles.propertyDescription}>Disable the button</div>\n </div>\n </div>\n );\n }\n);\n\n// RightSidebar\nexport const RightSidebar = view(\n {\n selectedNode: prop.const<ExplorerTreeNode | undefined>(),\n },\n (_reader, props) => (\n <div style={mergeStyles(styles.sidebar, styles.sidebarRight)}>\n <div style={styles.sidebarHeader}>\n <span style={{ marginRight: '6px', color: 'var(--vscode-textLink-foreground)' }}></></span>\n Props\n </div>\n <div style={styles.sidebarContent}>\n {props.selectedNode ? (\n <PropertiesContent node={props.selectedNode} />\n ) : (\n <div style={{ padding: '12px', color: 'var(--vscode-descriptionForeground)', fontSize: '12px' }}>\n Select a component to view its properties\n </div>\n )}\n </div>\n </div>\n )\n);\n","import * as React from 'react';\nimport { observableValue } from '@vscode/observables';\nimport { viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport type { ComponentDefinition, Disposable } from '../core/index.js';\nimport { resolveViewport } from '../core/index.js';\nimport type { FixtureItem } from './ExplorerModel.js';\n\nclass FixturePreviewItemModel extends ViewModel({\n fixture: prop.const<FixtureItem>(),\n compact: prop.const<boolean | undefined>(),\n}) {\n private _containerRef: HTMLDivElement | null = null;\n private _shadowRoot: ShadowRoot | null = null;\n private _renderContainer: HTMLDivElement | null = null;\n private _disposable: Disposable | (() => void) | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n\n readonly measuredWidth = observableValue<number | undefined>(this, undefined);\n readonly measuredHeight = observableValue<number | undefined>(this, undefined);\n\n get fixture(): FixtureItem { return this.props.fixture; }\n get compact(): boolean { return this.props.compact ?? false; }\n\n setContainerRef = (el: HTMLDivElement | null): void => {\n if (el === this._containerRef) return;\n\n // Cleanup previous\n this._cleanup();\n\n this._containerRef = el;\n if (!el) return;\n\n const component = this.fixture.component;\n\n if (component.isolation === 'shadow-dom') {\n this._renderInShadowDom(el, component);\n } else {\n // For iframe isolation, render directly (iframe handles isolation)\n this._renderDirect(el, component);\n }\n\n // Set up resize observer on the render container (the actual content)\n // NOT the shadow host, which may have min-height set\n const elementToObserve = this._renderContainer ?? el;\n this._resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (height > 0) {\n this.measuredWidth.set(Math.round(width), undefined);\n this.measuredHeight.set(Math.round(height), undefined);\n }\n }\n });\n this._resizeObserver.observe(elementToObserve);\n };\n\n private _renderInShadowDom(container: HTMLDivElement, component: ComponentDefinition): void {\n // Reuse existing shadow root if present (shadow roots cannot be removed once attached)\n if (container.shadowRoot) {\n this._shadowRoot = container.shadowRoot;\n // Clear previous content\n while (this._shadowRoot.firstChild) {\n this._shadowRoot.removeChild(this._shadowRoot.firstChild);\n }\n this._shadowRoot.adoptedStyleSheets = [];\n } else {\n this._shadowRoot = container.attachShadow({ mode: 'open' });\n }\n\n // Inject styles if any\n if (component.styles) {\n for (const style of component.styles) {\n if (style.type === 'css') {\n const styleEl = document.createElement('style');\n styleEl.textContent = style.content;\n this._shadowRoot.appendChild(styleEl);\n } else if (style.type === 'url') {\n const linkEl = document.createElement('link');\n linkEl.rel = 'stylesheet';\n linkEl.href = style.href;\n this._shadowRoot.appendChild(linkEl);\n } else if (style.type === 'adopted') {\n this._shadowRoot.adoptedStyleSheets = [\n ...this._shadowRoot.adoptedStyleSheets,\n style.sheet,\n ];\n }\n }\n }\n\n // Create render container (transparent, checkered shows through)\n const renderContainer = document.createElement('div');\n renderContainer.style.display = 'inline-block';\n this._renderContainer = renderContainer;\n this._shadowRoot.appendChild(renderContainer);\n\n // Get default property values\n const props = this._getDefaultProps(component);\n this._disposable = component.render(renderContainer, props);\n }\n\n private _renderDirect(container: HTMLDivElement, component: ComponentDefinition): void {\n this._renderContainer = container;\n const props = this._getDefaultProps(component);\n this._disposable = component.render(container, props);\n }\n\n private _getDefaultProps(component: ComponentDefinition): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const prop of component.properties) {\n props[prop.name] = prop.defaultValue;\n }\n return props;\n }\n\n private _cleanup(): void {\n if (this._disposable) {\n if (typeof this._disposable === 'function') {\n (this._disposable as () => void)();\n } else if (typeof this._disposable.dispose === 'function') {\n this._disposable.dispose();\n }\n }\n this._disposable = null;\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n this._shadowRoot = null;\n this._renderContainer = null;\n }\n\n dispose(): void {\n this._cleanup();\n }\n}\n\nexport const FixturePreviewItem = viewWithModel(\n FixturePreviewItemModel,\n {},\n (reader, model) => {\n const fixture = model.fixture;\n const component = fixture.component;\n const displayMode = component.displayMode;\n const measuredWidth = model.measuredWidth.read(reader);\n const measuredHeight = model.measuredHeight.read(reader);\n const compact = model.compact;\n\n // For page mode, use viewport dimensions\n let containerStyle: React.CSSProperties;\n if (displayMode.type === 'page') {\n const viewport = displayMode.viewports[0];\n const resolved = resolveViewport(viewport);\n containerStyle = {\n width: resolved.width,\n height: resolved.height,\n overflow: 'auto',\n };\n } else {\n // Component mode - natural size, let content determine dimensions\n containerStyle = {\n display: 'inline-block',\n };\n }\n\n const dimensionsText = measuredWidth && measuredHeight\n ? `${measuredWidth} × ${measuredHeight}`\n : '';\n\n const wrapperStyle = compact ? previewItemStyles.wrapperCompact : previewItemStyles.wrapper;\n const nameStyle = compact ? previewItemStyles.nameCompact : previewItemStyles.name;\n\n return (\n <div style={wrapperStyle}>\n <div style={previewItemStyles.labelRow}>\n <span style={nameStyle}>{fixture.name}</span>\n {!compact && dimensionsText && (\n <span style={previewItemStyles.dimensions}>{dimensionsText}</span>\n )}\n </div>\n <div style={getCanvasStyle(component.background)}>\n <div ref={model.setContainerRef} style={containerStyle} />\n </div>\n </div>\n );\n }\n);\n\n// Checkered pattern for transparency background (Figma-style)\nconst CHECKER_SIZE = 8;\n\nfunction createCheckerPattern(baseColor: string, checkerColor: string): string {\n return `\n linear-gradient(45deg, ${checkerColor} 25%, transparent 25%),\n linear-gradient(-45deg, ${checkerColor} 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, ${checkerColor} 75%),\n linear-gradient(-45deg, transparent 75%, ${checkerColor} 75%)\n `;\n}\n\nconst lightPattern = {\n backgroundColor: '#ffffff',\n backgroundImage: createCheckerPattern('#ffffff', '#e5e5e5'),\n};\n\nconst darkPattern = {\n backgroundColor: '#1e1e1e',\n backgroundImage: createCheckerPattern('#1e1e1e', '#2d2d2d'),\n};\n\nconst canvasBaseStyle: React.CSSProperties = {\n display: 'inline-block',\n padding: '12px',\n borderRadius: '4px',\n backgroundSize: `${CHECKER_SIZE * 2}px ${CHECKER_SIZE * 2}px`,\n backgroundPosition: `0 0, 0 ${CHECKER_SIZE}px, ${CHECKER_SIZE}px -${CHECKER_SIZE}px, -${CHECKER_SIZE}px 0`,\n boxShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08)',\n};\n\nfunction getCanvasStyle(background: 'light' | 'dark'): React.CSSProperties {\n const pattern = background === 'dark' ? darkPattern : lightPattern;\n return {\n ...canvasBaseStyle,\n backgroundColor: pattern.backgroundColor,\n backgroundImage: pattern.backgroundImage,\n };\n}\n\nconst previewItemStyles = {\n wrapper: {\n marginBottom: '32px',\n } as React.CSSProperties,\n wrapperCompact: {\n marginBottom: '0',\n } as React.CSSProperties,\n labelRow: {\n display: 'flex',\n alignItems: 'baseline',\n gap: '8px',\n marginBottom: '8px',\n } as React.CSSProperties,\n name: {\n fontSize: '12px',\n fontWeight: 500,\n color: 'var(--vscode-foreground)',\n } as React.CSSProperties,\n nameCompact: {\n fontSize: '11px',\n fontWeight: 500,\n color: 'var(--vscode-descriptionForeground)',\n } as React.CSSProperties,\n dimensions: {\n fontSize: '11px',\n color: 'var(--vscode-descriptionForeground)',\n fontFamily: 'var(--vscode-editor-font-family, monospace)',\n } as React.CSSProperties,\n};\n","import * as React from 'react';\nimport { observableValue, autorun } from '@vscode/observables';\nimport { viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport type { DaemonModel, DaemonScreenshotResult } from '../daemon/index.js';\n\ntype ScreenshotState =\n\t| { readonly status: 'idle' }\n\t| { readonly status: 'loading' }\n\t| { readonly status: 'ready'; readonly data: DaemonScreenshotResult }\n\t| { readonly status: 'error'; readonly message: string };\n\nclass FixtureScreenshotModel extends ViewModel({\n\tfixtureId: prop.const<string>(),\n\tsessionName: prop.const<string>(),\n\tdaemon: prop.const<DaemonModel>(),\n}) {\n\treadonly screenshot = observableValue<ScreenshotState>(this, { status: 'idle' });\n\tprivate _fetchVersion = 0;\n\n\tget fixtureId() { return this.props.fixtureId; }\n\n\tconstructor(props: any) {\n\t\tsuper(props);\n\t\tthis._store.add(autorun(reader => {\n\t\t\tconst sourceTreeIds = this.props.daemon.sourceTreeIds.read(reader);\n\t\t\tconst stId = sourceTreeIds.get(this.props.sessionName);\n\t\t\tif (stId) {\n\t\t\t\tthis._fetchScreenshot();\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate async _fetchScreenshot(): Promise<void> {\n\t\tconst version = ++this._fetchVersion;\n\t\tthis.screenshot.set({ status: 'loading' }, undefined);\n\t\ttry {\n\t\t\tconst data = await this.props.daemon.getScreenshot(this.props.sessionName, this.props.fixtureId);\n\t\t\tif (version === this._fetchVersion) {\n\t\t\t\tthis.screenshot.set({ status: 'ready', data }, undefined);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif (version === this._fetchVersion) {\n\t\t\t\tthis.screenshot.set({ status: 'error', message: String(e) }, undefined);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Displays a single screenshot from the daemon, with loading/error states.\n * Re-fetches automatically when the session's sourceTreeId changes.\n */\nexport const FixtureScreenshotView = viewWithModel(\n\tFixtureScreenshotModel,\n\t{},\n\t(reader, model) => {\n\t\tconst state = model.screenshot.read(reader);\n\n\t\tif (state.status === 'idle' || state.status === 'loading') {\n\t\t\treturn (\n\t\t\t\t<div style={screenshotStyles.placeholder}>\n\t\t\t\t\t<div style={screenshotStyles.shimmer} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (state.status === 'error') {\n\t\t\treturn (\n\t\t\t\t<div style={screenshotStyles.error}>\n\t\t\t\t\t<span style={screenshotStyles.errorText}>Screenshot failed</span>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst { data } = state;\n\t\tif (!data.image) {\n\t\t\treturn (\n\t\t\t\t<div style={screenshotStyles.placeholder}>\n\t\t\t\t\t<span style={screenshotStyles.hashText}>{data.hash.slice(0, 12)}</span>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<img\n\t\t\t\tsrc={`data:image/png;base64,${data.image}`}\n\t\t\t\tstyle={screenshotStyles.image}\n\t\t\t\talt={`Screenshot of ${model.fixtureId}`}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nconst screenshotStyles = {\n\tplaceholder: {\n\t\tminHeight: 80,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tbackgroundColor: 'var(--vscode-editor-background)',\n\t\tborder: '1px solid var(--vscode-panel-border)',\n\t\tborderRadius: 4,\n\t\toverflow: 'hidden',\n\t} as React.CSSProperties,\n\tshimmer: {\n\t\twidth: '100%',\n\t\theight: 80,\n\t\tbackground: 'linear-gradient(90deg, var(--vscode-editor-background) 25%, var(--vscode-list-hoverBackground) 50%, var(--vscode-editor-background) 75%)',\n\t\tbackgroundSize: '200% 100%',\n\t\tanimation: 'shimmer 1.5s infinite',\n\t} as React.CSSProperties,\n\terror: {\n\t\tminHeight: 80,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tbackgroundColor: 'var(--vscode-inputValidation-errorBackground)',\n\t\tborder: '1px solid var(--vscode-inputValidation-errorBorder)',\n\t\tborderRadius: 4,\n\t} as React.CSSProperties,\n\terrorText: {\n\t\tfontSize: 12,\n\t\tcolor: 'var(--vscode-errorForeground)',\n\t} as React.CSSProperties,\n\thashText: {\n\t\tfontSize: 11,\n\t\tcolor: 'var(--vscode-descriptionForeground)',\n\t\tfontFamily: 'var(--vscode-editor-font-family, monospace)',\n\t} as React.CSSProperties,\n\timage: {\n\t\tmaxWidth: '100%',\n\t\tdisplay: 'block',\n\t\tborderRadius: 4,\n\t\tborder: '1px solid var(--vscode-panel-border)',\n\t} as React.CSSProperties,\n};\n","import * as React from 'react';\nimport { observableValue, autorun } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport type { DaemonModel } from '../daemon/index.js';\nimport type { ScreenshotComparisonItem } from './ExplorerModel.js';\nimport { FixtureScreenshotView } from './FixtureScreenshotView.js';\n\ntype ComparisonStatus =\n\t| { readonly status: 'loading' }\n\t| { readonly status: 'ready'; readonly match: boolean }\n\t| { readonly status: 'error'; readonly message: string };\n\n// ---------------------------------------------------------------------------\n// Single fixture comparison (current vs baseline side-by-side)\n// ---------------------------------------------------------------------------\n\nclass SingleComparisonModel extends ViewModel({\n\tfixtureId: prop.const<string>(),\n\tdaemon: prop.const<DaemonModel>(),\n\tbaselineSession: prop.const<string>(),\n\tcurrentSession: prop.const<string>(),\n}) {\n\treadonly comparisonStatus = observableValue<ComparisonStatus>(this, { status: 'loading' });\n\n\tget fixtureId() { return this.props.fixtureId; }\n\tget daemon() { return this.props.daemon; }\n\tget baselineSession() { return this.props.baselineSession; }\n\tget currentSession() { return this.props.currentSession; }\n\n\tconstructor(props: any) {\n\t\tsuper(props);\n\t\tthis._store.add(autorun(reader => {\n\t\t\tconst sourceTreeIds = this.props.daemon.sourceTreeIds.read(reader);\n\t\t\tconst baselineStId = sourceTreeIds.get(this.props.baselineSession);\n\t\t\tconst currentStId = sourceTreeIds.get(this.props.currentSession);\n\t\t\tif (baselineStId && currentStId) {\n\t\t\t\tthis._fetchComparison();\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate async _fetchComparison(): Promise<void> {\n\t\tthis.comparisonStatus.set({ status: 'loading' }, undefined);\n\t\ttry {\n\t\t\tconst result = await this.props.daemon.compare(\n\t\t\t\tthis.props.fixtureId,\n\t\t\t\tthis.props.baselineSession,\n\t\t\t\tthis.props.currentSession,\n\t\t\t);\n\t\t\tthis.comparisonStatus.set({ status: 'ready', match: result.match }, undefined);\n\t\t} catch (e) {\n\t\t\tthis.comparisonStatus.set({ status: 'error', message: String(e) }, undefined);\n\t\t}\n\t}\n}\n\nconst SingleComparison = viewWithModel(\n\tSingleComparisonModel,\n\t{},\n\t(reader, model) => {\n\t\tconst status = model.comparisonStatus.read(reader);\n\n\t\tconst statusBadge = status.status === 'loading'\n\t\t\t? <span style={compStyles.badgeLoading}>comparing...</span>\n\t\t\t: status.status === 'error'\n\t\t\t\t? <span style={compStyles.badgeError}>error</span>\n\t\t\t\t: status.match\n\t\t\t\t\t? <span style={compStyles.badgeMatch}>✓ match</span>\n\t\t\t\t\t: <span style={compStyles.badgeChanged}>● changed</span>;\n\n\t\treturn (\n\t\t\t<div style={compStyles.fixtureRow}>\n\t\t\t\t<div style={compStyles.fixtureLabel}>\n\t\t\t\t\t<span style={compStyles.fixtureName}>{model.fixtureId}</span>\n\t\t\t\t\t{statusBadge}\n\t\t\t\t</div>\n\t\t\t\t<div style={compStyles.sideBySide}>\n\t\t\t\t\t<div style={compStyles.screenshotColumn}>\n\t\t\t\t\t\t<span style={compStyles.columnLabel}>Current</span>\n\t\t\t\t\t\t<FixtureScreenshotView\n\t\t\t\t\t\t\tfixtureId={model.fixtureId}\n\t\t\t\t\t\t\tsessionName={model.currentSession}\n\t\t\t\t\t\t\tdaemon={model.daemon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style={compStyles.screenshotColumn}>\n\t\t\t\t\t\t<span style={compStyles.columnLabel}>Baseline</span>\n\t\t\t\t\t\t<FixtureScreenshotView\n\t\t\t\t\t\t\tfixtureId={model.fixtureId}\n\t\t\t\t\t\t\tsessionName={model.baselineSession}\n\t\t\t\t\t\t\tdaemon={model.daemon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\n// ---------------------------------------------------------------------------\n// ScreenshotComparisonRow — renders a group of fixture comparisons\n// ---------------------------------------------------------------------------\n\nexport const ScreenshotComparisonRow = view(\n\t{\n\t\tname: prop.const<string>(),\n\t\tpath: prop.const<string>(),\n\t\titems: prop.const<readonly ScreenshotComparisonItem[]>(),\n\t\tdaemon: prop.const<DaemonModel>(),\n\t\tbaselineSession: prop.const<string>(),\n\t\tcurrentSession: prop.const<string>(),\n\t},\n\t(_reader, props) => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div style={compStyles.groupHeader}>\n\t\t\t\t\t<span style={compStyles.groupTitle}>{props.path}</span>\n\t\t\t\t</div>\n\t\t\t\t<div style={compStyles.groupContent}>\n\t\t\t\t\t{props.items.map((item) => (\n\t\t\t\t\t\t<SingleComparison\n\t\t\t\t\t\t\tkey={item.fixtureId}\n\t\t\t\t\t\t\tfixtureId={item.fixtureId}\n\t\t\t\t\t\t\tdaemon={props.daemon}\n\t\t\t\t\t\t\tbaselineSession={props.baselineSession}\n\t\t\t\t\t\t\tcurrentSession={props.currentSession}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\n// ---------------------------------------------------------------------------\n// Styles\n// ---------------------------------------------------------------------------\n\nconst compStyles = {\n\tgroupHeader: {\n\t\tmarginBottom: 12,\n\t} as React.CSSProperties,\n\tgroupTitle: {\n\t\tfontSize: 13,\n\t\tfontWeight: 500,\n\t\tcolor: 'var(--vscode-foreground)',\n\t} as React.CSSProperties,\n\tgroupContent: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tgap: 24,\n\t} as React.CSSProperties,\n\tfixtureRow: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tgap: 8,\n\t} as React.CSSProperties,\n\tfixtureLabel: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tgap: 8,\n\t} as React.CSSProperties,\n\tfixtureName: {\n\t\tfontSize: 12,\n\t\tfontWeight: 500,\n\t\tcolor: 'var(--vscode-foreground)',\n\t} as React.CSSProperties,\n\tsideBySide: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tgap: 16,\n\t} as React.CSSProperties,\n\tscreenshotColumn: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tgap: 4,\n\t\tminWidth: 0,\n\t} as React.CSSProperties,\n\tcolumnLabel: {\n\t\tfontSize: 11,\n\t\tfontWeight: 500,\n\t\tcolor: 'var(--vscode-descriptionForeground)',\n\t\ttextTransform: 'uppercase',\n\t\tletterSpacing: '0.05em',\n\t} as React.CSSProperties,\n\tbadgeMatch: {\n\t\tfontSize: 11,\n\t\tcolor: 'var(--vscode-testing-iconPassed)',\n\t\tfontWeight: 500,\n\t} as React.CSSProperties,\n\tbadgeChanged: {\n\t\tfontSize: 11,\n\t\tcolor: 'var(--vscode-testing-iconFailed)',\n\t\tfontWeight: 500,\n\t} as React.CSSProperties,\n\tbadgeLoading: {\n\t\tfontSize: 11,\n\t\tcolor: 'var(--vscode-descriptionForeground)',\n\t\tfontStyle: 'italic',\n\t} as React.CSSProperties,\n\tbadgeError: {\n\t\tfontSize: 11,\n\t\tcolor: 'var(--vscode-errorForeground)',\n\t\tfontWeight: 500,\n\t} as React.CSSProperties,\n};\n","const STORAGE_KEY = 'component-explorer:fixtureHeights';\nconst MAX_ENTRIES = 500;\n\ntype CachedHeights = Record<string, number>;\n\nlet _cache: CachedHeights | null = null;\n\nfunction loadCache(): CachedHeights {\n if (_cache !== null) return _cache;\n\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n _cache = JSON.parse(stored);\n return _cache!;\n }\n } catch { /* ignore */ }\n _cache = {};\n return _cache;\n}\n\nfunction saveCache(): void {\n if (_cache === null) return;\n\n try {\n const entries = Object.entries(_cache);\n if (entries.length > MAX_ENTRIES) {\n _cache = Object.fromEntries(entries.slice(-MAX_ENTRIES));\n }\n localStorage.setItem(STORAGE_KEY, JSON.stringify(_cache));\n } catch { /* ignore */ }\n}\n\nexport function setCachedHeight(fixtureId: string, height: number): void {\n const cache = loadCache();\n cache[fixtureId] = height;\n saveCache();\n}\n\nexport function getAllCachedHeights(): ReadonlyMap<string, number> {\n return new Map(Object.entries(loadCache()));\n}\n","import * as React from 'react';\nimport { observableValue, derived } from '@vscode/observables';\nimport { view, viewWithModel, ViewModel, prop } from '@vscode/observables-react';\nimport type { ExplorerModel, PreviewRow } from './ExplorerModel.js';\nimport { FixturePreviewItem } from './FixturePreviewItem.js';\nimport { ScreenshotComparisonRow } from './ScreenshotComparisonRow.js';\nimport { getAllCachedHeights, setCachedHeight } from '../lib/fixtureSizeCache.js';\n\nconst ESTIMATED_ROW_HEIGHT = 280;\nconst ROW_GAP = 32;\nconst CONTENT_PADDING = 32;\nconst OVERSCAN_PX = 400;\n\nconst SCROLL_ANCHOR_KEY = 'component-explorer:scrollAnchors';\nconst MAX_ANCHOR_ENTRIES = 100;\n\n// ---------------------------------------------------------------------------\n// Scroll anchor persistence (row index + offset, not absolute scrollTop)\n// ---------------------------------------------------------------------------\n\ninterface ScrollAnchor {\n readonly rowIndex: number;\n readonly offsetFromViewport: number;\n}\n\nfunction loadScrollAnchors(): Record<string, ScrollAnchor> {\n try {\n const stored = localStorage.getItem(SCROLL_ANCHOR_KEY);\n if (stored) return JSON.parse(stored);\n } catch { /* ignore */ }\n return {};\n}\n\nfunction saveScrollAnchor(nodeId: string, anchor: ScrollAnchor): void {\n try {\n const all = loadScrollAnchors();\n all[nodeId] = anchor;\n const entries = Object.entries(all);\n const pruned = entries.length > MAX_ANCHOR_ENTRIES\n ? Object.fromEntries(entries.slice(-MAX_ANCHOR_ENTRIES))\n : all;\n localStorage.setItem(SCROLL_ANCHOR_KEY, JSON.stringify(pruned));\n } catch { /* ignore */ }\n}\n\nfunction getScrollAnchor(nodeId: string): ScrollAnchor | undefined {\n return loadScrollAnchors()[nodeId];\n}\n\n// ---------------------------------------------------------------------------\n// Layout computation (pure functions over data)\n// ---------------------------------------------------------------------------\n\ninterface RowLayout {\n readonly top: number;\n readonly height: number;\n}\n\nfunction getRowId(row: PreviewRow): string {\n return row.type === 'single' ? row.fixture.id : row.id;\n}\n\nfunction computeLayout(\n rows: readonly PreviewRow[],\n heightCache: ReadonlyMap<string, number>,\n): readonly RowLayout[] {\n const result: RowLayout[] = new Array(rows.length);\n let top = CONTENT_PADDING;\n for (let i = 0; i < rows.length; i++) {\n const height = heightCache.get(getRowId(rows[i])) ?? ESTIMATED_ROW_HEIGHT;\n result[i] = { top, height };\n top += height + ROW_GAP;\n }\n return result;\n}\n\nfunction layoutTotalHeight(layout: readonly RowLayout[]): number {\n if (layout.length === 0) return 0;\n const last = layout[layout.length - 1];\n return last.top + last.height + CONTENT_PADDING;\n}\n\n/** Binary search for first row whose bottom edge is >= y. */\nfunction findFirstVisibleRow(layout: readonly RowLayout[], y: number): number {\n let lo = 0;\n let hi = layout.length;\n while (lo < hi) {\n const mid = (lo + hi) >> 1;\n if (layout[mid].top + layout[mid].height < y) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo;\n}\n\n/** Find visible row range for a given scrollTop + viewportHeight. */\nfunction computeVisibleRange(\n layout: readonly RowLayout[],\n scrollTop: number,\n viewportHeight: number,\n): { readonly start: number; readonly end: number } {\n if (layout.length === 0) return { start: 0, end: 0 };\n const start = findFirstVisibleRow(layout, scrollTop - OVERSCAN_PX);\n let end = start;\n const bottom = scrollTop + viewportHeight + OVERSCAN_PX;\n while (end < layout.length && layout[end].top < bottom) {\n end++;\n }\n return { start, end };\n}\n\n/** Find the row closest to the viewport top edge. */\nfunction computeAnchor(\n layout: readonly RowLayout[],\n scrollTop: number,\n): ScrollAnchor | undefined {\n if (layout.length === 0) return undefined;\n const idx = findFirstVisibleRow(layout, scrollTop);\n const rowIndex = Math.min(idx, layout.length - 1);\n return {\n rowIndex,\n offsetFromViewport: layout[rowIndex].top - scrollTop,\n };\n}\n\n/** Compute scrollTop to restore an anchor. */\nfunction scrollTopForAnchor(\n layout: readonly RowLayout[],\n anchor: ScrollAnchor,\n): number {\n if (anchor.rowIndex >= layout.length) return 0;\n return layout[anchor.rowIndex].top - anchor.offsetFromViewport;\n}\n\n// ---------------------------------------------------------------------------\n// PreviewAreaModel\n// ---------------------------------------------------------------------------\n\nclass PreviewAreaModel extends ViewModel({\n model: prop.const<ExplorerModel>(),\n}) {\n private readonly _rowHeights = observableValue<ReadonlyMap<string, number>>(this, getAllCachedHeights());\n private readonly _scrollTop = observableValue<number>(this, 0);\n private readonly _viewportHeight = observableValue<number>(this, 0);\n\n private _scrollContainerRef: HTMLDivElement | null = null;\n private _resizeObserver: ResizeObserver | null = null;\n private _viewportResizeObserver: ResizeObserver | null = null;\n private _currentNodeId: string | undefined = undefined;\n private _scrollSaveTimeout: ReturnType<typeof setTimeout> | null = null;\n private _suppressScrollHandler = false;\n\n get explorerModel() { return this.props.model; }\n\n readonly layout = derived(this, (reader) => {\n const rows = this.explorerModel.selectedFixtures.read(reader);\n const heights = this._rowHeights.read(reader);\n return computeLayout(rows, heights);\n });\n\n readonly visibleRowRange = derived(this, (reader) => {\n const layout = this.layout.read(reader);\n const scrollTop = this._scrollTop.read(reader);\n const viewportHeight = this._viewportHeight.read(reader);\n return computeVisibleRange(layout, scrollTop, viewportHeight);\n });\n\n setScrollContainerRef = (el: HTMLDivElement | null): void => {\n if (this._scrollContainerRef) {\n this._scrollContainerRef.removeEventListener('scroll', this._handleScroll);\n }\n this._viewportResizeObserver?.disconnect();\n\n this._scrollContainerRef = el;\n if (!el) return;\n\n el.addEventListener('scroll', this._handleScroll, { passive: true });\n this._viewportHeight.set(el.clientHeight, undefined);\n\n this._viewportResizeObserver = new ResizeObserver(([entry]) => {\n this._viewportHeight.set(Math.round(entry.contentRect.height), undefined);\n });\n this._viewportResizeObserver.observe(el);\n\n this._restoreScrollPosition();\n };\n\n updateForSelection(nodeId: string | undefined): void {\n if (this._currentNodeId === nodeId) return;\n this._currentNodeId = nodeId;\n this._restoreScrollPosition();\n }\n\n private _restoreScrollPosition(): void {\n if (!this._scrollContainerRef || !this._currentNodeId) return;\n const anchor = getScrollAnchor(this._currentNodeId);\n if (!anchor) return;\n\n const layout = this.layout.get();\n const target = scrollTopForAnchor(layout, anchor);\n\n this._suppressScrollHandler = true;\n this._scrollContainerRef.scrollTop = target;\n this._scrollTop.set(target, undefined);\n requestAnimationFrame(() => { this._suppressScrollHandler = false; });\n }\n\n private _handleScroll = (): void => {\n if (!this._scrollContainerRef) return;\n this._scrollTop.set(this._scrollContainerRef.scrollTop, undefined);\n\n if (this._suppressScrollHandler || !this._currentNodeId) return;\n if (this._scrollSaveTimeout) clearTimeout(this._scrollSaveTimeout);\n this._scrollSaveTimeout = setTimeout(() => {\n if (!this._currentNodeId) return;\n const layout = this.layout.get();\n const anchor = computeAnchor(layout, this._scrollTop.get());\n if (anchor) saveScrollAnchor(this._currentNodeId, anchor);\n }, 150);\n };\n\n observeRowElement = (el: HTMLDivElement | null, id: string): void => {\n if (!el) return;\n if (!this._resizeObserver) {\n this._resizeObserver = new ResizeObserver((entries) => {\n const current = this._rowHeights.get();\n let newMap: Map<string, number> | undefined;\n for (const entry of entries) {\n const rid = entry.target.getAttribute('data-row-id');\n if (!rid) continue;\n const height = Math.round(entry.contentRect.height);\n if (height > 0 && current.get(rid) !== height) {\n if (!newMap) newMap = new Map(current);\n newMap.set(rid, height);\n setCachedHeight(rid, height);\n }\n }\n if (newMap) {\n // Capture anchor before layout changes\n const oldLayout = this.layout.get();\n const anchor = computeAnchor(oldLayout, this._scrollTop.get());\n\n this._rowHeights.set(newMap, undefined);\n\n // Re-anchor: adjust scrollTop so the row at viewport top stays put\n if (anchor && this._scrollContainerRef) {\n const newLayout = this.layout.get();\n const newScrollTop = scrollTopForAnchor(newLayout, anchor);\n this._suppressScrollHandler = true;\n this._scrollContainerRef.scrollTop = newScrollTop;\n this._scrollTop.set(newScrollTop, undefined);\n requestAnimationFrame(() => { this._suppressScrollHandler = false; });\n }\n }\n });\n }\n el.setAttribute('data-row-id', id);\n this._resizeObserver.observe(el);\n };\n\n dispose(): void {\n this._resizeObserver?.disconnect();\n this._viewportResizeObserver?.disconnect();\n if (this._scrollContainerRef) {\n this._scrollContainerRef.removeEventListener('scroll', this._handleScroll);\n }\n if (this._scrollSaveTimeout) clearTimeout(this._scrollSaveTimeout);\n }\n}\n\n// ---------------------------------------------------------------------------\n// Views\n// ---------------------------------------------------------------------------\n\nexport const PreviewArea = viewWithModel(\n PreviewAreaModel,\n {},\n (reader, model) => {\n const rows = model.explorerModel.selectedFixtures.read(reader);\n const selectedNodeId = model.explorerModel.selectedNodeId.read(reader);\n const layout = model.layout.read(reader);\n const { start, end } = model.visibleRowRange.read(reader);\n\n model.updateForSelection(selectedNodeId);\n\n if (rows.length === 0) {\n return (\n <div style={styles.emptyState}>\n <span style={styles.emptyText}>Select a component or folder to preview</span>\n </div>\n );\n }\n\n const total = layoutTotalHeight(layout);\n\n return (\n <div ref={model.setScrollContainerRef} style={styles.scrollContainer}>\n <div style={{ position: 'relative', height: total }}>\n {rows.slice(start, end).map((row, i) => {\n const idx = start + i;\n const { top } = layout[idx];\n const id = getRowId(row);\n\n return (\n <div\n key={id}\n ref={(el) => model.observeRowElement(el, id)}\n style={{ position: 'absolute', top, left: CONTENT_PADDING, right: CONTENT_PADDING }}\n >\n {row.type === 'single' ? (\n <FixturePreviewItem fixture={row.fixture} compact={false} />\n ) : row.type === 'variants' ? (\n <VariantsRowView row={row} />\n ) : row.type === 'screenshot-comparison' && model.explorerModel.daemon ? (\n <ScreenshotComparisonRow\n name={row.name}\n path={row.path}\n items={row.items}\n daemon={model.explorerModel.daemon}\n baselineSession=\"baseline\"\n currentSession=\"current\"\n />\n ) : null}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n\ntype VariantsRowData = Extract<PreviewRow, { type: 'variants' }>;\n\nconst VariantsRowView = view(\n { row: prop.const<VariantsRowData>() },\n (_reader, props) => {\n const row = props.row;\n return (\n <div>\n <div style={styles.variantsHeader}>\n <span style={styles.variantsTitle}>{row.path}</span>\n </div>\n <div style={styles.variantsContent}>\n {row.fixtures.map((fixture) => (\n <FixturePreviewItem key={fixture.id} fixture={fixture} compact />\n ))}\n </div>\n </div>\n );\n }\n);\n\n// ---------------------------------------------------------------------------\n// Styles\n// ---------------------------------------------------------------------------\n\nconst styles = {\n scrollContainer: {\n flex: 1,\n overflow: 'auto',\n backgroundColor: 'var(--vscode-editor-background)',\n } as React.CSSProperties,\n emptyState: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--vscode-editor-background)',\n } as React.CSSProperties,\n emptyText: {\n color: 'var(--vscode-descriptionForeground)',\n fontSize: '14px',\n } as React.CSSProperties,\n variantsHeader: {\n marginBottom: '12px',\n } as React.CSSProperties,\n variantsTitle: {\n fontSize: '13px',\n fontWeight: 500,\n color: 'var(--vscode-foreground)',\n } as React.CSSProperties,\n variantsContent: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: '16px',\n } as React.CSSProperties,\n};\n","import { viewWithModel, prop } from '@vscode/observables-react';\nimport { FixtureRegistry, defineFixture } from '../core/index.js';\nimport { ExplorerModel } from './ExplorerModel.js';\nimport { TitleBar } from './TitleBar.js';\nimport { LeftSidebar } from './LeftSidebar.js';\nimport { RightSidebar } from './RightSidebar.js';\nimport { PreviewArea } from './PreviewArea.js';\nimport { styles } from './styles.js';\nimport type { DaemonModel } from '../daemon/index.js';\n\nexport const Explorer = viewWithModel(\n ExplorerModel,\n { daemonModel: prop.const<DaemonModel | undefined>() },\n (reader, model) => {\n const leftVisible = model.leftSidebarVisible.read(reader);\n const rightVisible = model.rightSidebarVisible.read(reader);\n const isDarkTheme = model.isDarkTheme.read(reader);\n const selectedNode = model.selectedNode.read(reader);\n\n const themeClass = isDarkTheme ? 'vscode-theme default-dark-plus' : 'vscode-theme default-light-plus';\n\n return (\n <div className={themeClass} style={styles.container}>\n {leftVisible && <LeftSidebar model={model} />}\n <div style={styles.centerArea}>\n <TitleBar model={model} />\n <PreviewArea model={model} />\n </div>\n {rightVisible && <RightSidebar selectedNode={selectedNode} />}\n </div>\n );\n }\n);\n\n/** Creates a demo registry with sample fixtures */\nfunction createDemoRegistry(): FixtureRegistry {\n const registry = new FixtureRegistry();\n \n registry.register('components/Button.fixture.tsx', defineFixture({\n Primary: {\n render: (container) => {\n container.innerHTML = '<button>Primary Button</button>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n Icon: {\n render: (container) => {\n container.innerHTML = '<button>🔔 Icon Button</button>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n registry.register('components/Input.fixture.tsx', defineFixture({\n Text: {\n render: (container) => {\n container.innerHTML = '<input type=\\\"text\\\" placeholder=\\\"Text Input\\\" />';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n Search: {\n render: (container) => {\n container.innerHTML = '<input type=\\\"search\\\" placeholder=\\\"Search...\\\" />';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n registry.register('components/Card.fixture.tsx', defineFixture({\n Basic: {\n render: (container) => {\n container.innerHTML = '<div style=\\\"border: 1px solid #ccc; padding: 16px;\\\">Basic Card</div>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n registry.register('components/Feedback.fixture.tsx', defineFixture({\n Badge: {\n render: (container) => {\n container.innerHTML = '<span style=\\\"background: blue; color: white; padding: 2px 8px; border-radius: 4px;\\\">Badge</span>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n Alert: {\n render: (container) => {\n container.innerHTML = '<div style=\\\"background: #ffffcc; padding: 8px; border: 1px solid #cc0;\\\">Alert message</div>';\n return { dispose: () => { container.innerHTML = ''; } };\n },\n },\n }));\n \n return registry;\n}\n\n// Re-export with default registry convenience\nexport function ExplorerWithDefaults() {\n const registry = createDemoRegistry();\n return <Explorer registry={registry} />;\n}\n","// src/AsyncStream.ts\nvar AsyncStream = class _AsyncStream {\n constructor(iterator) {\n this.iterator = iterator;\n }\n static fromIterable(fn) {\n return new _AsyncStream(fn[Symbol.asyncIterator]());\n }\n static fromFn(fn) {\n return new _AsyncStream(fn());\n }\n [Symbol.asyncIterator]() {\n return this.iterator;\n }\n};\nvar MediaResponse = class {\n constructor(mimeType, data) {\n this.mimeType = mimeType;\n this.data = data;\n }\n};\n\nexport {\n AsyncStream,\n MediaResponse\n};\n//# sourceMappingURL=chunk-SGBCNXYH.mjs.map","import {\n AsyncStream\n} from \"./chunk-SGBCNXYH.mjs\";\n\n// src/client.ts\nvar ApiError = class extends Error {\n constructor(statusCode, method, message) {\n super(message);\n this.statusCode = statusCode;\n this.method = method;\n this.name = \"ApiError\";\n }\n};\nvar ProxyApiClient = class {\n constructor(_request) {\n this._request = _request;\n }\n _createProxy(prefix) {\n return new Proxy(() => {\n }, {\n apply: async (_target, _self, args) => {\n const result = await this._request(prefix, args[0]);\n return result;\n },\n get: (_target, prop) => {\n return this._createProxy(`${prefix}${prefix ? \"/\" : \"\"}${prop}`);\n }\n });\n }\n methods = this._createProxy(\"\");\n};\nfunction createFetchClient(baseUrl, options) {\n return new ProxyApiClient(async (method, arg) => {\n const result = await fetch(`${baseUrl}/${method}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.getHeaders?.()\n },\n body: JSON.stringify(arg)\n });\n if (result.status !== 200) {\n const data2 = await result.json().catch(() => null);\n let message;\n if (data2 && typeof data2 === \"object\" && \"errorMessage\" in data2) {\n message = `${data2.errorMessage}`;\n } else {\n message = `Error calling API method ${method}: ${JSON.stringify(data2)} (Status: ${result.status}, Status Text: ${result.statusText})`;\n }\n const error = new ApiError(result.status, method, message);\n options?.onError?.(error);\n throw error;\n }\n const contentType = result.headers.get(\"Content-Type\");\n if (contentType?.startsWith(\"application/jsonl\")) {\n return AsyncStream.fromFn(async function* () {\n const reader = result.body?.getReader();\n if (!reader) {\n return;\n }\n let buffer = \"\";\n const decoder = new TextDecoder(\"utf-8\");\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n buffer += decoder.decode(value, { stream: true });\n let eolIndex;\n while ((eolIndex = buffer.indexOf(\"\\n\")) >= 0) {\n const line = buffer.slice(0, eolIndex).trim();\n buffer = buffer.slice(eolIndex + 1);\n if (line.length > 0) {\n yield JSON.parse(line);\n }\n }\n }\n const finalLine = buffer.trim();\n if (finalLine.length > 0) {\n yield JSON.parse(finalLine);\n }\n });\n }\n const data = await result.json();\n return data;\n });\n}\nfunction createLocalClient(api, context) {\n return new ProxyApiClient(async (method, args) => {\n return await api.run(method, args, context);\n });\n}\n\nexport {\n ApiError,\n ProxyApiClient,\n createFetchClient,\n createLocalClient\n};\n//# sourceMappingURL=chunk-A5PE72HI.mjs.map","import { observableValue, type IObservable } from '@vscode/observables';\nimport { createFetchClient, type ProxyApiClient } from '@hediet/simple-api/client';\nimport type { DaemonApiType, DaemonEvent } from '@vscode/component-explorer-cli/daemon-types';\nimport type { DaemonConfig } from './DaemonConfig.js';\n\n/** Screenshot result from the daemon */\nexport type DaemonScreenshotResult = DaemonApiType['screenshots']['take']['TResult'];\n\n/** Comparison result from the daemon */\nexport type DaemonCompareResult = DaemonApiType['screenshots']['compare']['TResult'];\n\n/** Fixture info from the daemon */\nexport type DaemonFixtureInfo = DaemonApiType['fixtures']['list']['TResult'][number];\n\ninterface CachedScreenshot {\n\treadonly sourceTreeId: string;\n\treadonly data: DaemonScreenshotResult;\n}\n\n/**\n * Client-side model for interacting with the daemon.\n * Manages source tree IDs, screenshot caching, and the event stream.\n */\nexport class DaemonModel {\n\tprivate readonly _sourceTreeIds = observableValue<ReadonlyMap<string, string>>(this, new Map());\n\tprivate readonly _sessions = observableValue<readonly { name: string; serverUrl: string }[]>(this, []);\n\tprivate readonly _screenshotCache = new Map<string, CachedScreenshot>();\n\tprivate readonly _client: ProxyApiClient<DaemonApiType>;\n\tprivate _eventStreamAbort: AbortController | null = null;\n\n\treadonly sessionName: string;\n\n\t/** Observable map of sessionName → current sourceTreeId */\n\treadonly sourceTreeIds: IObservable<ReadonlyMap<string, string>> = this._sourceTreeIds;\n\n\t/** Observable list of sessions from the daemon */\n\treadonly sessions: IObservable<readonly { name: string; serverUrl: string }[]> = this._sessions;\n\n\tconstructor(readonly config: DaemonConfig) {\n\t\tthis.sessionName = config.sessionName;\n\t\tthis._client = createFetchClient<DaemonApiType>('/__explorer/daemon-api');\n\t}\n\n\t/**\n\t * Initializes the model: fetches initial session info and starts listening to events.\n\t * Call this once after construction.\n\t */\n\tasync initialize(): Promise<void> {\n\t\tawait this._fetchSessionInfos();\n\t\tthis._startEventStream();\n\t}\n\n\t/**\n\t * Get a screenshot for a fixture in a session, using cache when available.\n\t * Cache is keyed on sessionName + fixtureId and invalidated when sourceTreeId changes.\n\t */\n\tasync getScreenshot(sessionName: string, fixtureId: string): Promise<DaemonScreenshotResult> {\n\t\tconst sourceTreeId = this._sourceTreeIds.get().get(sessionName);\n\t\tif (!sourceTreeId) {\n\t\t\tthrow new Error(`No sourceTreeId known for session '${sessionName}'`);\n\t\t}\n\n\t\tconst cacheKey = `${sessionName}:${fixtureId}`;\n\t\tconst cached = this._screenshotCache.get(cacheKey);\n\t\tif (cached && cached.sourceTreeId === sourceTreeId) {\n\t\t\treturn cached.data;\n\t\t}\n\n\t\tconst result = await this._client.methods.screenshots.take({\n\t\t\tfixtureId,\n\t\t\tsessionName,\n\t\t\tsourceTreeId,\n\t\t\tincludeImage: true,\n\t\t});\n\n\t\tthis._screenshotCache.set(cacheKey, { sourceTreeId, data: result });\n\t\treturn result;\n\t}\n\n\t/**\n\t * Compare a fixture across two sessions. Returns match status and hashes (no images).\n\t */\n\tasync compare(fixtureId: string, baselineSessionName: string, currentSessionName: string): Promise<DaemonCompareResult> {\n\t\tconst baselineSourceTreeId = this._sourceTreeIds.get().get(baselineSessionName);\n\t\tconst currentSourceTreeId = this._sourceTreeIds.get().get(currentSessionName);\n\t\tif (!baselineSourceTreeId || !currentSourceTreeId) {\n\t\t\tthrow new Error(`Missing sourceTreeId for sessions`);\n\t\t}\n\t\treturn this._client.methods.screenshots.compare({\n\t\t\tfixtureId,\n\t\t\tbaselineSessionName,\n\t\t\tbaselineSourceTreeId,\n\t\t\tcurrentSessionName,\n\t\t\tcurrentSourceTreeId,\n\t\t\tincludeImages: false,\n\t\t});\n\t}\n\n\t/**\n\t * List fixtures from a session.\n\t */\n\tasync listFixtures(sessionName: string): Promise<readonly DaemonFixtureInfo[]> {\n\t\tconst sourceTreeId = this._sourceTreeIds.get().get(sessionName);\n\t\tif (!sourceTreeId) {\n\t\t\tthrow new Error(`No sourceTreeId known for session '${sessionName}'`);\n\t\t}\n\t\treturn this._client.methods.fixtures.list({ sessionName, sourceTreeId });\n\t}\n\n\t/**\n\t * Get the explorer URL for a different session (for session switching via full navigation).\n\t */\n\tgetSessionExplorerUrl(sessionName: string): string | undefined {\n\t\tconst session = this._sessions.get().find(s => s.name === sessionName);\n\t\tif (!session) return undefined;\n\t\treturn session.serverUrl + '/___explorer';\n\t}\n\n\tdispose(): void {\n\t\tthis._eventStreamAbort?.abort();\n\t\tthis._eventStreamAbort = null;\n\t}\n\n\t// ---------------------------------------------------------------------------\n\t// Private\n\t// ---------------------------------------------------------------------------\n\n\tprivate async _fetchSessionInfos(): Promise<void> {\n\t\tconst sessions = await this._client.methods.sessions();\n\t\tconst map = new Map<string, string>();\n\t\tconst sessionList: { name: string; serverUrl: string }[] = [];\n\t\tfor (const s of sessions) {\n\t\t\tmap.set(s.name, s.sourceTreeId);\n\t\t\tsessionList.push({ name: s.name, serverUrl: s.serverUrl });\n\t\t}\n\t\tthis._sourceTreeIds.set(map, undefined);\n\t\tthis._sessions.set(sessionList, undefined);\n\t}\n\n\tprivate async _startEventStream(): Promise<void> {\n\t\tthis._eventStreamAbort = new AbortController();\n\t\tconst signal = this._eventStreamAbort.signal;\n\n\t\ttry {\n\t\t\tconst stream = await this._client.methods.events();\n\t\t\tfor await (const event of stream) {\n\t\t\t\tif (signal.aborted) break;\n\t\t\t\tthis._handleEvent(event as DaemonEvent);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif (!signal.aborted) {\n\t\t\t\tconsole.error('[DaemonModel] Event stream error:', e);\n\t\t\t\t// Reconnect after a delay\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (!signal.aborted) {\n\t\t\t\t\t\tthis._startEventStream();\n\t\t\t\t\t}\n\t\t\t\t}, 2000);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _handleEvent(event: DaemonEvent): void {\n\t\tif (event.type === 'source-change') {\n\t\t\t// Update sourceTreeId for the session\n\t\t\tconst current = new Map(this._sourceTreeIds.get());\n\t\t\tcurrent.set(event.sessionName, event.sourceTreeId);\n\t\t\tthis._sourceTreeIds.set(current, undefined);\n\n\t\t\t// Evict screenshot cache entries for this session\n\t\t\tfor (const key of this._screenshotCache.keys()) {\n\t\t\t\tif (key.startsWith(`${event.sessionName}:`)) {\n\t\t\t\t\tthis._screenshotCache.delete(key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Configuration injected by the daemon via the Vite plugin.\n * Set as `window.__EXPLORER_DAEMON__` when the explorer is served from a daemon-managed Vite server.\n */\nexport interface DaemonConfig {\n\t/** Name of the session this explorer instance belongs to (e.g. 'current' or 'baseline') */\n\treadonly sessionName: string;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t__EXPLORER_DAEMON__?: DaemonConfig;\n\t}\n}\n\n/**\n * Reads daemon config from the global window object.\n * Returns undefined if the explorer is not running under a daemon.\n */\nexport function getDaemonConfig(): DaemonConfig | undefined {\n\treturn window.__EXPLORER_DAEMON__;\n}\n","\nexport * from './core/index.js';\n\nimport { FixtureRegistry, type FixtureExport, type FixtureModules } from './core/index.js';\nimport './styles.css';\n\nimport './vscode-styles/default-dark-plus.css';\nimport './vscode-styles/default-light-plus.css';\nimport { createRoot } from 'react-dom/client';\nimport { createElement } from 'react';\nimport { Explorer } from './components/index.js';\nimport { DaemonModel, getDaemonConfig } from './daemon/index.js';\n\n// Main exports\nexport { Explorer, ExplorerWithDefaults, ExplorerModel } from './components/index.js';\nexport type { ExplorerTreeNode } from './components/index.js';\nexport { toExplorerTree } from './components/index.js';\n\n// Sub-components\nexport {\n TitleBar,\n TitleBarButton,\n LeftSidebar,\n RightSidebar,\n TreeView,\n TreeItem,\n} from './components/index.js';\n\n// Icons\nexport * from './components/icons.js';\n\n// Styles utilities\nexport { styles, mergeStyles } from './components/index.js';\n\n// Daemon exports\nexport { DaemonModel } from './daemon/index.js';\nexport type { DaemonScreenshotResult, DaemonCompareResult, DaemonFixtureInfo } from './daemon/DaemonModel.js';\n\n/**\n * The main Component Explorer application.\n * Create with `new ExplorerApp(element, fixtureModules)`.\n */\nexport class ExplorerApp {\n private readonly _root: ReturnType<typeof createRoot>;\n private readonly _registry = new FixtureRegistry();\n private readonly _daemonModel?: DaemonModel;\n\n constructor(element: HTMLElement, fixtureModules: FixtureModules) {\n this._populateRegistry(fixtureModules);\n this._daemonModel = this._initializeDaemonModel();\n this._root = createRoot(element);\n this._root.render(createElement(Explorer, { registry: this._registry, daemonModel: this._daemonModel }));\n }\n\n private _initializeDaemonModel(): DaemonModel | undefined {\n const daemonConfig = getDaemonConfig();\n if (!daemonConfig) {\n return undefined;\n }\n const model = new DaemonModel(daemonConfig);\n model.initialize().catch(err => {\n console.error('[ExplorerApp] Failed to initialize DaemonModel:', err);\n });\n return model;\n }\n\n private _populateRegistry(fixtureModules: FixtureModules): void {\n this._registry.clear();\n for (const [path, module] of Object.entries(fixtureModules)) {\n const fixture = module.default;\n if (fixture && typeof fixture === 'object') {\n this._registry.register(path, fixture as FixtureExport);\n }\n }\n }\n\n /**\n * Updates the fixtures. The UI will update automatically since the registry is observable.\n */\n updateFixtures(fixtureModules: FixtureModules): void {\n this._populateRegistry(fixtureModules);\n }\n\n /**\n * No-op for ExplorerApp (only meaningful for CliRuntime).\n * Present so the plugin's HMR wiring can call it polymorphically.\n */\n bumpVersion(): void {\n // Explorer uses observables; no version tracking needed.\n }\n\n /**\n * Unmounts the explorer and cleans up resources.\n */\n dispose(): void {\n this._daemonModel?.dispose();\n this._root.unmount();\n }\n}\n"],"names":["VIEWPORT_SIZES","resolveViewport","preset","getDefaultPropertyValues","properties","values","prop","isComponentDefinition","value","singleFixtureBrand","fixtureGroupBrand","fixtureVariantsBrand","isSingleFixture","isFixtureGroup","isFixtureVariants","createComponentDefinition","options","id","name","defineFixture","defineFixtureGroup","group","defineFixtureVariants","variants","createFixtureTree","fixtures","root","filePath","fixtureExport","baseName","extractBaseName","addFixtureExportToTree","parent","pathSegments","componentNode","folderName","folderId","folder","_a","c","key","entry","variantsName","variantsNode","variant","childId","findNodeByPath","path","current","segment","collectComponents","node","components","child","globalObservableLogger","addLogger","logger","ComposedLogger","getLogger","globalObservableLoggerFn","setLogObservableFn","fn","logObservable","obs","loggers","observable","location","newCount","info","autorun","change","derived","transaction","DebugLocation","enabled","enable","ofCaller","ofNthCaller","n","Err","l","stack","DebugLocationImpl","parentIdx","lines","parseLine","fileName","line","column","stackLine","match","match2","DebugNameData","owner","debugNameSource","referenceFn","target","getDebugName","countPerName","cachedDebugName","data","cached","dbgName","computeDebugName","count","result","self","ownerStr","formatOwner","getFunctionName","findKey","obj","countPerClassName","ownerId","className","getClassName","ctor","fnSrc","_derived","_setDerivedOpts","_recomputeInitiallyAndOnChange","_setRecomputeInitiallyAndOnChange","recomputeInitiallyAndOnChange","_keepObserved","_setKeepObserved","keepObserved","_debugGetDependencyGraph","_setDebugGetDependencyGraph","debugGetDependencyGraph","ConvenientObservable","reader","fnOrOwner","fnOrUndefined","debugLocation","store","handleValue","BaseObservable","observer","len","deleted","hadLogger","toDisposable","BugIndicatingError","message","onBugIndicatingError","error","onUnexpectedError","strictEquals","a","b","isDefined","arg","DisposableStore","disposable","index","derivedStateToString","state","Derived","_debugNameData","_computeFn","_changeTracker","_handleLastObserverRemoved","_equalityComparator","d","_b","changeSummary","didChange","emptySet","_c","hadValue","oldValue","delayedStore","o","_d","e","r","_observable","propagateBeginUpdate","observers","shouldReact","wasUpToDate","shouldCallBeginUpdate","newValue","tx","computeFnOrOwner","computeFn","derivedOpts","autorunStateToString","AutorunObserver","_runFn","handleBugIndicatingErrorRecovery","err","TransactionImpl","subtransaction","_fn","_getDebugName","updatingObservers","i","observableValue","nameOrOwner","initialValue","debugNameData","ObservableValue","_tx","observableFromEvent","args","event","getValue","FromEventObservable","_getValue","_getTransaction","didRunTransaction","batchEventsGlobally","didSet","KeepAliveObserver","_forceRecompute","_handleValue","consoleObservableLogger","logObservableToConsole","ConsoleObservableLogger","text","consoleTextToArgs","normalText","repeat","styled","formatValue","formatKind","changes","changedObservables","transactionName","styles","firstArg","process","t","item","kind","padStr","objToCss","styleObj","styleString","propName","propValue","style","availableLen","formatArray","formatObject","first","val","str","length","SimpleTypedRpcConnection","channelFactory","getHandler","_channelFactory","_getHandler","notificationData","m","requestData","requests","notifications","registerDebugChannel","channelId","createClient","g","queuedNotifications","curHost","channel","handler","createChannelFactoryFromDebugChannel","curClient","host","h","Throttler","timeoutMs","deepAssign","source","deepAssignDeleteNulls","DevToolsLogger","affected","txs","observerQueue","processedObservers","queue","observersToUpdate","observerState","base","changedDependencies","autorunInfo","declarationIds","observableId","decl","instanceId","jsonValue","update","type","decInfo","changeInfo","formattedValue","debugNamePostProcessor","Info","formatObservableInfo","indentLevel","alreadyListed","indent","dep","sourceObj","dependencies","FixtureRegistry","__publicField","tree","CliRuntime","_containerElement","fixtureModules","fixtureId","container","def","defaultProps","renderTarget","shadow","resolve","module","fixture","groupPath","results","nextPath","found","toExplorerTree","createLocalStorageObservable","storageKey","defaultValue","serialize","deserialize","stored","originalSet","ExplorerModel","ViewModel","nodeId","selectedNode","mode","sessionName","daemon","url","newSet","nodes","pathPrefix","childPath","items","mergeStyles","styleObjects","TitleBarButtonModel","hovered","TitleBarButton","viewWithModel","model","props","isHovered","active","buttonStyle","jsx","ChevronRightIcon","ChevronDownIcon","ComponentIcon","FolderIcon","PanelLeftIcon","PanelRightIcon","SunIcon","MoonIcon","ViewModeSelector","view","viewMode","sessions","currentSession","otherSessions","s","jsxs","viewModeStyles","ViewModeButton","label","onClick","TitleBar","leftVisible","rightVisible","isDarkTheme","Fragment","TreeView","_reader","TreeItem","TreeItemModel","itemModel","depth","hasChildren","isExpanded","isSelected","itemStyle","LeftSidebar","ToggleSwitchModel","ToggleSwitch","checked","trackStyle","thumbStyle","PropertiesContent","RightSidebar","FixturePreviewItemModel","el","component","elementToObserve","entries","width","height","styleEl","linkEl","renderContainer","FixturePreviewItem","displayMode","measuredWidth","measuredHeight","compact","containerStyle","viewport","resolved","dimensionsText","wrapperStyle","previewItemStyles","nameStyle","getCanvasStyle","CHECKER_SIZE","createCheckerPattern","baseColor","checkerColor","lightPattern","darkPattern","canvasBaseStyle","background","pattern","FixtureScreenshotModel","version","FixtureScreenshotView","screenshotStyles","SingleComparisonModel","sourceTreeIds","baselineStId","currentStId","SingleComparison","status","statusBadge","compStyles","ScreenshotComparisonRow","STORAGE_KEY","MAX_ENTRIES","_cache","loadCache","saveCache","setCachedHeight","cache","getAllCachedHeights","ESTIMATED_ROW_HEIGHT","ROW_GAP","CONTENT_PADDING","OVERSCAN_PX","SCROLL_ANCHOR_KEY","MAX_ANCHOR_ENTRIES","loadScrollAnchors","saveScrollAnchor","anchor","all","pruned","getScrollAnchor","getRowId","row","computeLayout","rows","heightCache","top","layoutTotalHeight","layout","last","findFirstVisibleRow","y","lo","hi","mid","computeVisibleRange","scrollTop","viewportHeight","start","end","bottom","computeAnchor","idx","rowIndex","scrollTopForAnchor","PreviewAreaModel","heights","newMap","rid","oldLayout","newLayout","newScrollTop","PreviewArea","selectedNodeId","total","VariantsRowView","Explorer","createDemoRegistry","registry","ExplorerWithDefaults","AsyncStream","_AsyncStream","iterator","ApiError","statusCode","method","ProxyApiClient","_request","prefix","_target","_self","createFetchClient","baseUrl","data2","contentType","buffer","decoder","done","eolIndex","finalLine","DaemonModel","config","sourceTreeId","cacheKey","baselineSessionName","currentSessionName","baselineSourceTreeId","currentSourceTreeId","session","map","sessionList","signal","stream","getDaemonConfig","ExplorerApp","element","createRoot","createElement","daemonConfig"],"mappings":"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"}
|