chrome-devtools-frontend 1.0.1512349 → 1.0.1514545
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/.mailmap +1 -1
- package/LICENSE +1 -1
- package/WATCHLISTS +1 -1
- package/config/owner/COMMON_OWNERS +0 -1
- package/config/owner/LIGHTHOUSE_OWNERS +0 -1
- package/docs/contributing/README.md +1 -1
- package/docs/cookbook/release_management.md +15 -13
- package/docs/get_the_code.md +114 -35
- package/eslint.config.mjs +1 -2
- package/extension-api/ExtensionAPI.d.ts +1 -1
- package/front_end/Images/generate-css-vars.js +2 -2
- package/front_end/Images/rollup.config.mjs +1 -1
- package/front_end/application_tokens.css +1 -1
- package/front_end/core/common/App.ts +1 -1
- package/front_end/core/common/AppProvider.ts +1 -1
- package/front_end/core/common/Base64.ts +1 -1
- package/front_end/core/common/CharacterIdMap.ts +1 -1
- package/front_end/core/common/Color.ts +41 -45
- package/front_end/core/common/ColorConverter.ts +1 -1
- package/front_end/core/common/ColorUtils.ts +1 -1
- package/front_end/core/common/Console.ts +5 -5
- package/front_end/core/common/Debouncer.ts +1 -1
- package/front_end/core/common/EventTarget.ts +1 -1
- package/front_end/core/common/Gzip.ts +1 -1
- package/front_end/core/common/JavaScriptMetaData.ts +1 -1
- package/front_end/core/common/Lazy.ts +1 -1
- package/front_end/core/common/Linkifier.ts +1 -1
- package/front_end/core/common/MapWithDefault.ts +1 -1
- package/front_end/core/common/Mutex.ts +1 -1
- package/front_end/core/common/Object.ts +1 -1
- package/front_end/core/common/ParsedURL.ts +17 -43
- package/front_end/core/common/Progress.ts +3 -29
- package/front_end/core/common/QueryParamHandler.ts +1 -1
- package/front_end/core/common/ResolverBase.ts +1 -1
- package/front_end/core/common/ResourceType.ts +21 -21
- package/front_end/core/common/ReturnToPanel.ts +1 -1
- package/front_end/core/common/Revealer.ts +1 -1
- package/front_end/core/common/Runnable.ts +1 -1
- package/front_end/core/common/SegmentedRange.ts +14 -15
- package/front_end/core/common/SettingRegistration.ts +1 -1
- package/front_end/core/common/Settings.ts +7 -33
- package/front_end/core/common/SimpleHistoryManager.ts +3 -29
- package/front_end/core/common/StringOutputStream.ts +5 -5
- package/front_end/core/common/TextDictionary.ts +3 -29
- package/front_end/core/common/Throttler.ts +1 -1
- package/front_end/core/common/Trie.ts +1 -1
- package/front_end/core/common/Worker.ts +3 -29
- package/front_end/core/common/common.ts +1 -1
- package/front_end/core/dom_extension/DOMExtension.ts +1 -1
- package/front_end/core/dom_extension/dom_extension.ts +3 -29
- package/front_end/core/host/AidaClient.ts +3 -3
- package/front_end/core/host/GdpClient.ts +37 -0
- package/front_end/core/host/InspectorFrontendHost.ts +24 -41
- package/front_end/core/host/InspectorFrontendHostAPI.ts +3 -1
- package/front_end/core/host/Platform.ts +3 -29
- package/front_end/core/host/ResourceLoader.ts +3 -3
- package/front_end/core/host/UserMetrics.ts +3 -31
- package/front_end/core/host/host.ts +1 -1
- package/front_end/core/i18n/ByteUtilities.ts +1 -1
- package/front_end/core/i18n/DevToolsLocale.ts +1 -1
- package/front_end/core/i18n/NumberFormatter.ts +1 -1
- package/front_end/core/i18n/collect-ui-strings.js +1 -1
- package/front_end/core/i18n/generate-locales-js.js +1 -1
- package/front_end/core/i18n/i18n.ts +1 -1
- package/front_end/core/i18n/i18nImpl.ts +1 -1
- package/front_end/core/i18n/i18nTypes.ts +1 -1
- package/front_end/core/i18n/locales.d.ts +1 -1
- package/front_end/core/i18n/time-utilities.ts +1 -1
- package/front_end/core/platform/ArrayUtilities.ts +1 -1
- package/front_end/core/platform/Brand.ts +1 -1
- package/front_end/core/platform/Constructor.ts +1 -1
- package/front_end/core/platform/DOMUtilities.ts +1 -1
- package/front_end/core/platform/DateUtilities.ts +1 -1
- package/front_end/core/platform/DevToolsPath.ts +1 -1
- package/front_end/core/platform/KeyboardUtilities.ts +1 -1
- package/front_end/core/platform/MapUtilities.ts +1 -1
- package/front_end/core/platform/MimeType.ts +1 -1
- package/front_end/core/platform/NumberUtilities.ts +1 -1
- package/front_end/core/platform/StringUtilities.ts +1 -1
- package/front_end/core/platform/Timing.ts +1 -1
- package/front_end/core/platform/TypedArrayUtilities.ts +1 -1
- package/front_end/core/platform/TypescriptUtilities.ts +1 -1
- package/front_end/core/platform/UIString.ts +1 -1
- package/front_end/core/platform/UserVisibleError.ts +1 -1
- package/front_end/core/platform/platform.ts +3 -29
- package/front_end/core/protocol_client/InspectorBackend.ts +12 -38
- package/front_end/core/protocol_client/NodeURL.ts +1 -1
- package/front_end/core/protocol_client/protocol_client.ts +1 -1
- package/front_end/core/root/Runtime.ts +6 -3
- package/front_end/core/root/root.ts +1 -1
- package/front_end/core/sdk/AccessibilityModel.ts +49 -49
- package/front_end/core/sdk/AnimationModel.ts +79 -80
- package/front_end/core/sdk/AutofillModel.ts +1 -1
- package/front_end/core/sdk/CPUProfilerModel.ts +8 -34
- package/front_end/core/sdk/CPUThrottlingManager.ts +18 -18
- package/front_end/core/sdk/CSSContainerQuery.ts +1 -1
- package/front_end/core/sdk/CSSFontFace.ts +1 -1
- package/front_end/core/sdk/CSSLayer.ts +1 -1
- package/front_end/core/sdk/CSSMatchedStyles.ts +61 -55
- package/front_end/core/sdk/CSSMedia.ts +23 -23
- package/front_end/core/sdk/CSSMetadata.ts +1 -1
- package/front_end/core/sdk/CSSModel.ts +5 -5
- package/front_end/core/sdk/CSSProperty.ts +10 -10
- package/front_end/core/sdk/CSSPropertyParser.ts +2 -3
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +2 -3
- package/front_end/core/sdk/CSSQuery.ts +1 -1
- package/front_end/core/sdk/CSSRule.ts +4 -4
- package/front_end/core/sdk/CSSScope.ts +1 -1
- package/front_end/core/sdk/CSSStyleDeclaration.ts +28 -29
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +14 -14
- package/front_end/core/sdk/CSSSupports.ts +1 -1
- package/front_end/core/sdk/CategorizedBreakpoint.ts +5 -5
- package/front_end/core/sdk/ChildTargetManager.ts +7 -7
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +7 -33
- package/front_end/core/sdk/Connections.ts +5 -3
- package/front_end/core/sdk/ConsoleModel.ts +27 -53
- package/front_end/core/sdk/ConsoleModelTypes.ts +1 -1
- package/front_end/core/sdk/Cookie.ts +17 -17
- package/front_end/core/sdk/CookieModel.ts +1 -1
- package/front_end/core/sdk/CookieParser.ts +9 -35
- package/front_end/core/sdk/DOMDebuggerModel.ts +89 -90
- package/front_end/core/sdk/DOMModel.ts +114 -114
- package/front_end/core/sdk/DebuggerModel.ts +103 -104
- package/front_end/core/sdk/EmulationModel.ts +7 -7
- package/front_end/core/sdk/EnhancedTracesParser.ts +1 -1
- package/front_end/core/sdk/EventBreakpointsModel.ts +6 -6
- package/front_end/core/sdk/FrameAssociated.ts +1 -1
- package/front_end/core/sdk/FrameManager.ts +1 -1
- package/front_end/core/sdk/HeapProfilerModel.ts +6 -6
- package/front_end/core/sdk/HttpReasonPhraseStrings.ts +1 -1
- package/front_end/core/sdk/IOModel.ts +1 -1
- package/front_end/core/sdk/IsolateManager.ts +27 -27
- package/front_end/core/sdk/IssuesModel.ts +1 -1
- package/front_end/core/sdk/LayerTreeBase.ts +30 -31
- package/front_end/core/sdk/LogModel.ts +1 -1
- package/front_end/core/sdk/NetworkManager.ts +48 -1
- package/front_end/core/sdk/NetworkRequest.ts +1 -1
- package/front_end/core/sdk/OverlayColorGenerator.ts +1 -1
- package/front_end/core/sdk/OverlayModel.ts +7 -7
- package/front_end/core/sdk/OverlayPersistentHighlighter.ts +1 -1
- package/front_end/core/sdk/PageLoad.ts +1 -1
- package/front_end/core/sdk/PageResourceLoader.ts +1 -1
- package/front_end/core/sdk/PaintProfiler.ts +3 -29
- package/front_end/core/sdk/PerformanceMetricsModel.ts +1 -1
- package/front_end/core/sdk/PreloadingModel.ts +1 -1
- package/front_end/core/sdk/RehydratingConnection.ts +2 -1
- package/front_end/core/sdk/RehydratingObject.ts +3 -1
- package/front_end/core/sdk/RemoteObject.ts +1 -1
- package/front_end/core/sdk/Resource.ts +44 -44
- package/front_end/core/sdk/ResourceTreeModel.ts +59 -62
- package/front_end/core/sdk/RuntimeModel.ts +13 -14
- package/front_end/core/sdk/SDKModel.ts +4 -4
- package/front_end/core/sdk/ScreenCaptureModel.ts +1 -1
- package/front_end/core/sdk/Script.ts +22 -18
- package/front_end/core/sdk/SecurityOriginManager.ts +15 -15
- package/front_end/core/sdk/ServerSentEvents.ts +1 -1
- package/front_end/core/sdk/ServerSentEventsProtocol.ts +1 -1
- package/front_end/core/sdk/ServerTiming.ts +3 -3
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +16 -16
- package/front_end/core/sdk/ServiceWorkerManager.ts +20 -25
- package/front_end/core/sdk/SourceMap.ts +11 -11
- package/front_end/core/sdk/SourceMapFunctionRanges.ts +1 -1
- package/front_end/core/sdk/SourceMapManager.ts +1 -1
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +1 -1
- package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
- package/front_end/core/sdk/StorageBucketsModel.ts +3 -29
- package/front_end/core/sdk/StorageKeyManager.ts +13 -13
- package/front_end/core/sdk/Target.ts +34 -35
- package/front_end/core/sdk/TargetManager.ts +39 -21
- package/front_end/core/sdk/TraceObject.ts +1 -1
- package/front_end/core/sdk/WebAuthnModel.ts +1 -1
- package/front_end/core/sdk/sdk-meta.ts +1 -1
- package/front_end/core/sdk/sdk.ts +3 -1
- package/front_end/design_system_tokens.css +1 -1
- package/front_end/devtools_compatibility.js +1 -1
- package/front_end/emulated_devices/optimized/optimized_images.gni +1 -1
- package/front_end/entrypoint_template.html +1 -1
- package/front_end/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.ts +1 -1
- package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -1
- package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +9 -9
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +3 -29
- package/front_end/entrypoints/formatter_worker/CSSRuleParser.ts +1 -1
- package/front_end/entrypoints/formatter_worker/ESTreeWalker.ts +1 -1
- package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +1 -1
- package/front_end/entrypoints/formatter_worker/FormatterActions.ts +1 -1
- package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +3 -29
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +8 -8
- package/front_end/entrypoints/formatter_worker/IdentityFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/JSONFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +3 -29
- package/front_end/entrypoints/formatter_worker/ScopeParser.ts +1 -1
- package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
- package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/formatter_worker/formatter_worker.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +10 -36
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +27 -53
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +3 -29
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.ts +3 -29
- package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.ts +1 -1
- package/front_end/entrypoints/inspector/inspector.ts +1 -1
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +1 -1
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +1 -1
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +3 -29
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +1 -1
- package/front_end/entrypoints/inspector_main/inspector_main.ts +1 -1
- package/front_end/entrypoints/inspector_main/nodeIcon.css +1 -1
- package/front_end/entrypoints/inspector_main/outermostTargetSelector.css +1 -1
- package/front_end/entrypoints/inspector_main/renderingOptions.css +1 -1
- package/front_end/entrypoints/js_app/js_app.ts +1 -1
- package/front_end/entrypoints/lighthouse_worker/LighthouseWorkerService.ts +1 -1
- package/front_end/entrypoints/lighthouse_worker/lighthouse_worker.ts +1 -1
- package/front_end/entrypoints/main/ExecutionContextSelector.ts +1 -1
- package/front_end/entrypoints/main/GlobalAiButton.ts +4 -4
- package/front_end/entrypoints/main/MainImpl.ts +17 -15
- package/front_end/entrypoints/main/SimpleApp.ts +1 -1
- package/front_end/entrypoints/main/globalAiButton.css +1 -1
- package/front_end/entrypoints/main/main-meta.ts +2 -3
- package/front_end/entrypoints/main/main.ts +1 -1
- package/front_end/entrypoints/ndb_app/ndb_app.ts +1 -1
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +1 -1
- package/front_end/entrypoints/node_app/NodeMain.ts +1 -1
- package/front_end/entrypoints/node_app/nodeConnectionsPanel.css +1 -1
- package/front_end/entrypoints/node_app/node_app.ts +1 -1
- package/front_end/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.ts +1 -1
- package/front_end/entrypoints/shell/shell.ts +1 -1
- package/front_end/entrypoints/visibility.gni +1 -1
- package/front_end/entrypoints/wasmparser_worker/WasmParserWorker.ts +3 -29
- package/front_end/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/wasmparser_worker/wasmparser_worker.ts +1 -1
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/entrypoints/worker_app/worker_app.ts +1 -1
- package/front_end/generated/ARIAProperties.js +1 -1
- package/front_end/generated/Deprecation.ts +1 -1
- package/front_end/generated/InspectorBackendCommands.js +6 -5
- package/front_end/generated/SupportedCSSProperties.js +21 -1
- package/front_end/generated/protocol-mapping.d.ts +5 -1
- package/front_end/generated/protocol-proxy-api.d.ts +6 -1
- package/front_end/generated/protocol.ts +42 -4
- package/front_end/global_typings/global_defs.d.ts +1 -1
- package/front_end/legacy/legacy-defs.d.ts +1 -1
- package/front_end/models/ai_assistance/AgentProject.ts +1 -1
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +1 -1
- package/front_end/models/ai_assistance/AiUtils.ts +1 -1
- package/front_end/models/ai_assistance/ChangeManager.ts +1 -1
- package/front_end/models/ai_assistance/ConversationHandler.ts +1 -1
- package/front_end/models/ai_assistance/EvaluateAction.ts +1 -1
- package/front_end/models/ai_assistance/ExtensionScope.ts +1 -1
- package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/FileAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/NetworkAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/PatchAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +49 -186
- package/front_end/models/ai_assistance/agents/PerformanceAnnotationsAgent.ts +71 -2
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +1 -1
- package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +1 -1
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +127 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +150 -27
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +16 -20
- package/front_end/models/ai_assistance/debug.ts +1 -1
- package/front_end/models/ai_assistance/injected.ts +1 -1
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +1 -1
- package/front_end/models/ai_code_completion/ai_code_completion.ts +1 -1
- package/front_end/models/autofill_manager/AutofillManager.ts +1 -1
- package/front_end/models/autofill_manager/autofill_manager.ts +1 -1
- package/front_end/models/badges/AiExplorerBadge.ts +21 -0
- package/front_end/models/badges/Badge.ts +5 -6
- package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
- package/front_end/models/badges/DOMDetectiveBadge.ts +4 -3
- package/front_end/models/badges/SpeedsterBadge.ts +6 -4
- package/front_end/models/badges/StarterBadge.ts +5 -3
- package/front_end/models/badges/UserBadges.ts +29 -3
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +7 -7
- package/front_end/models/bindings/CompilerScriptMapping.ts +3 -29
- package/front_end/models/bindings/ContentProviderBasedProject.ts +3 -29
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +19 -19
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
- package/front_end/models/bindings/DefaultScriptMapping.ts +3 -29
- package/front_end/models/bindings/FileUtils.ts +18 -44
- package/front_end/models/bindings/LiveLocation.ts +1 -1
- package/front_end/models/bindings/NetworkProject.ts +3 -29
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +3 -29
- package/front_end/models/bindings/ResourceMapping.ts +1 -1
- package/front_end/models/bindings/ResourceScriptMapping.ts +17 -43
- package/front_end/models/bindings/ResourceUtils.ts +1 -1
- package/front_end/models/bindings/SASSSourceMapping.ts +3 -29
- package/front_end/models/bindings/StylesSourceMapping.ts +3 -29
- package/front_end/models/bindings/TempFile.ts +3 -29
- package/front_end/models/bindings/bindings.ts +1 -1
- package/front_end/models/breakpoints/BreakpointManager.ts +3 -29
- package/front_end/models/breakpoints/breakpoints.ts +1 -1
- package/front_end/models/cpu_profile/CPUProfileDataModel.ts +1 -1
- package/front_end/models/cpu_profile/ProfileTreeModel.ts +1 -1
- package/front_end/models/cpu_profile/cpu_profile.ts +1 -1
- package/front_end/models/crux-manager/CrUXManager.ts +1 -1
- package/front_end/models/crux-manager/crux-manager.ts +1 -1
- package/front_end/models/elements/ElementUpdateRecord.ts +12 -12
- package/front_end/models/elements/elements.ts +1 -1
- package/front_end/models/emulation/DeviceModeModel.ts +124 -132
- package/front_end/models/emulation/EmulatedDevices.ts +23 -23
- package/front_end/models/emulation/emulation.ts +1 -1
- package/front_end/models/extensions/ExtensionAPI.ts +3 -29
- package/front_end/models/extensions/ExtensionEndpoint.ts +1 -1
- package/front_end/models/extensions/ExtensionPanel.ts +27 -53
- package/front_end/models/extensions/ExtensionServer.ts +7 -33
- package/front_end/models/extensions/ExtensionView.ts +3 -29
- package/front_end/models/extensions/HostUrlPattern.ts +1 -1
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +1 -1
- package/front_end/models/extensions/RecorderExtensionEndpoint.ts +1 -1
- package/front_end/models/extensions/RecorderPluginManager.ts +1 -1
- package/front_end/models/extensions/extensions.ts +1 -1
- package/front_end/models/formatter/FormatterWorkerPool.ts +1 -1
- package/front_end/models/formatter/ScriptFormatter.ts +3 -29
- package/front_end/models/formatter/formatter.ts +1 -1
- package/front_end/models/geometry/GeometryImpl.ts +3 -29
- package/front_end/models/geometry/geometry.ts +1 -1
- package/front_end/models/har/HARFormat.ts +1 -1
- package/front_end/models/har/Importer.ts +1 -1
- package/front_end/models/har/Log.ts +3 -29
- package/front_end/models/har/Writer.ts +1 -1
- package/front_end/models/har/har.ts +1 -1
- package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +3 -29
- package/front_end/models/heap_snapshot_model/heap_snapshot_model.ts +1 -1
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +1 -1
- package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -1
- package/front_end/models/issues_manager/CheckFormsIssuesTrigger.ts +1 -1
- package/front_end/models/issues_manager/ClientHintIssue.ts +1 -1
- package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +1 -1
- package/front_end/models/issues_manager/ContrastCheckTrigger.ts +1 -1
- package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
- package/front_end/models/issues_manager/CookieIssue.ts +1 -1
- package/front_end/models/issues_manager/CorsIssue.ts +1 -1
- package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +1 -1
- package/front_end/models/issues_manager/DeprecationIssue.ts +1 -1
- package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/GenericIssue.ts +1 -1
- package/front_end/models/issues_manager/HeavyAdIssue.ts +1 -1
- package/front_end/models/issues_manager/Issue.ts +1 -1
- package/front_end/models/issues_manager/IssueResolver.ts +1 -1
- package/front_end/models/issues_manager/IssuesManager.ts +1 -1
- package/front_end/models/issues_manager/IssuesManagerEvents.ts +1 -1
- package/front_end/models/issues_manager/LowTextContrastIssue.ts +1 -1
- package/front_end/models/issues_manager/MarkdownIssueDescription.ts +1 -1
- package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
- package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +1 -1
- package/front_end/models/issues_manager/PropertyRuleIssue.ts +1 -1
- package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
- package/front_end/models/issues_manager/RelatedIssue.ts +1 -1
- package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +1 -1
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +1 -1
- package/front_end/models/issues_manager/SharedDictionaryIssue.ts +1 -1
- package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +1 -1
- package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
- package/front_end/models/issues_manager/UnencodedDigestIssue.ts +1 -1
- package/front_end/models/issues_manager/UserReidentificationIssue.ts +1 -1
- package/front_end/models/issues_manager/issues_manager.ts +1 -1
- package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +1 -1
- package/front_end/models/javascript_metadata/NativeFunctions.js +30 -13
- package/front_end/models/javascript_metadata/javascript_metadata.ts +1 -1
- package/front_end/models/live-metrics/LiveMetrics.ts +8 -2
- package/front_end/models/live-metrics/live-metrics.ts +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/OnEachInteraction.ts +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/OnEachLayoutShift.ts +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/rollup.config.mjs +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +1 -1
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +1 -1
- package/front_end/models/logs/LogManager.ts +1 -1
- package/front_end/models/logs/NetworkLog.ts +3 -29
- package/front_end/models/logs/RequestResolver.ts +1 -1
- package/front_end/models/logs/logs-meta.ts +1 -1
- package/front_end/models/logs/logs.ts +1 -1
- package/front_end/models/network_time_calculator/Calculator.ts +1 -1
- package/front_end/models/network_time_calculator/NetworkTimeCalculator.ts +1 -1
- package/front_end/models/network_time_calculator/RequestTimeRanges.ts +1 -1
- package/front_end/models/network_time_calculator/network_time_calculator.ts +1 -1
- package/front_end/models/persistence/Automapping.ts +1 -1
- package/front_end/models/persistence/AutomaticFileSystemManager.ts +1 -1
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +1 -1
- package/front_end/models/persistence/EditFileSystemView.ts +3 -29
- package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +3 -29
- package/front_end/models/persistence/IsolatedFileSystem.ts +21 -48
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +16 -42
- package/front_end/models/persistence/NetworkPersistenceManager.ts +1 -1
- package/front_end/models/persistence/PersistenceActions.ts +1 -1
- package/front_end/models/persistence/PersistenceImpl.ts +1 -1
- package/front_end/models/persistence/PersistenceUtils.ts +1 -1
- package/front_end/models/persistence/PlatformFileSystem.ts +1 -1
- package/front_end/models/persistence/editFileSystemView.css +1 -1
- package/front_end/models/persistence/persistence-meta.ts +1 -22
- package/front_end/models/persistence/persistence.ts +1 -3
- package/front_end/models/project_settings/ProjectSettingsModel.ts +1 -1
- package/front_end/models/project_settings/project_settings.ts +1 -1
- package/front_end/models/source_map_scopes/NamesResolver.ts +1 -1
- package/front_end/models/source_map_scopes/ScopeChainModel.ts +1 -1
- package/front_end/models/source_map_scopes/ScopeTreeCache.ts +1 -1
- package/front_end/models/source_map_scopes/source_map_scopes.ts +1 -1
- package/front_end/models/stack_trace/StackTrace.ts +1 -1
- package/front_end/models/stack_trace/StackTraceImpl.ts +1 -1
- package/front_end/models/stack_trace/Trie.ts +1 -1
- package/front_end/models/stack_trace/stack_trace.ts +1 -1
- package/front_end/models/stack_trace/stack_trace_impl.ts +1 -1
- package/front_end/models/text_utils/CodeMirrorUtils.ts +3 -29
- package/front_end/models/text_utils/ContentData.ts +7 -2
- package/front_end/models/text_utils/ContentProvider.ts +3 -29
- package/front_end/models/text_utils/StaticContentProvider.ts +1 -1
- package/front_end/models/text_utils/StreamingContentData.ts +1 -1
- package/front_end/models/text_utils/Text.ts +1 -1
- package/front_end/models/text_utils/TextCursor.ts +1 -1
- package/front_end/models/text_utils/TextRange.ts +3 -29
- package/front_end/models/text_utils/TextUtils.ts +3 -29
- package/front_end/models/text_utils/WasmDisassembly.ts +1 -1
- package/front_end/models/text_utils/text_utils.ts +1 -1
- package/front_end/{panels/timeline/utils → models/trace}/EntityMapper.ts +31 -27
- package/front_end/models/trace/EventsSerializer.ts +6 -6
- package/front_end/models/trace/LanternComputationData.ts +11 -11
- package/front_end/models/trace/ModelImpl.ts +33 -42
- package/front_end/{panels/timeline/utils/EntryName.ts → models/trace/Name.ts} +24 -22
- package/front_end/models/trace/Processor.ts +29 -31
- package/front_end/{panels/timeline/utils/EntryStyles.ts → models/trace/Styles.ts} +160 -185
- package/front_end/models/trace/extras/FilmStrip.ts +7 -7
- package/front_end/models/trace/extras/MainThreadActivity.ts +1 -1
- package/front_end/models/trace/extras/ScriptDuplication.ts +1 -1
- package/front_end/models/trace/extras/StackTraceForEvent.ts +23 -26
- package/front_end/models/trace/extras/ThirdParties.ts +17 -18
- package/front_end/models/trace/extras/TraceFilter.ts +2 -2
- package/front_end/models/trace/extras/TraceTree.ts +1 -1
- package/front_end/models/trace/extras/extras.ts +1 -1
- package/front_end/models/trace/handlers/AnimationFramesHandler.ts +1 -1
- package/front_end/models/trace/handlers/AnimationHandler.ts +1 -1
- package/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +1 -1
- package/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +1 -1
- package/front_end/models/trace/handlers/DOMStatsHandler.ts +1 -1
- package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -1
- package/front_end/models/trace/handlers/FlowsHandler.ts +1 -1
- package/front_end/models/trace/handlers/FramesHandler.ts +1 -1
- package/front_end/models/trace/handlers/GPUHandler.ts +1 -1
- package/front_end/models/trace/handlers/ImagePaintingHandler.ts +1 -1
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +17 -24
- package/front_end/models/trace/handlers/InvalidationsHandler.ts +81 -48
- package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +1 -1
- package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +1 -1
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -1
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -1
- package/front_end/models/trace/handlers/MemoryHandler.ts +1 -1
- package/front_end/models/trace/handlers/MetaHandler.ts +1 -1
- package/front_end/models/trace/handlers/ModelHandlers.ts +1 -1
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +2 -2
- package/front_end/models/trace/handlers/PageFramesHandler.ts +1 -1
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +1 -1
- package/front_end/models/trace/handlers/RendererHandler.ts +5 -5
- package/front_end/models/trace/handlers/SamplesHandler.ts +1 -1
- package/front_end/models/trace/handlers/ScreenshotsHandler.ts +1 -1
- package/front_end/models/trace/handlers/ScriptsHandler.ts +1 -1
- package/front_end/models/trace/handlers/SelectorStatsHandler.ts +13 -13
- package/front_end/models/trace/handlers/Threads.ts +11 -11
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +1 -1
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +1 -1
- package/front_end/models/trace/handlers/WarningsHandler.ts +2 -2
- package/front_end/models/trace/handlers/WorkersHandler.ts +1 -1
- package/front_end/models/trace/handlers/handlers.ts +1 -1
- package/front_end/models/trace/handlers/helpers.ts +10 -10
- package/front_end/models/trace/handlers/types.ts +4 -4
- package/front_end/models/trace/helpers/Extensions.ts +1 -1
- package/front_end/models/trace/helpers/Network.ts +1 -1
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +1 -1
- package/front_end/models/trace/helpers/SyntheticEvents.ts +1 -1
- package/front_end/models/trace/helpers/Timing.ts +1 -1
- package/front_end/models/trace/helpers/Trace.ts +51 -22
- package/front_end/models/trace/helpers/TreeHelpers.ts +1 -1
- package/front_end/models/trace/helpers/helpers.ts +1 -1
- package/front_end/models/trace/insights/CLSCulprits.ts +13 -15
- package/front_end/models/trace/insights/Cache.ts +9 -5
- package/front_end/models/trace/insights/Common.ts +1 -1
- package/front_end/models/trace/insights/DOMSize.ts +13 -10
- package/front_end/models/trace/insights/DocumentLatency.ts +3 -3
- package/front_end/models/trace/insights/DuplicatedJavaScript.ts +4 -4
- package/front_end/models/trace/insights/FontDisplay.ts +4 -5
- package/front_end/models/trace/insights/ForcedReflow.ts +6 -6
- package/front_end/models/trace/insights/INPBreakdown.ts +3 -3
- package/front_end/models/trace/insights/ImageDelivery.ts +12 -12
- package/front_end/models/trace/insights/LCPBreakdown.ts +5 -5
- package/front_end/models/trace/insights/LCPDiscovery.ts +5 -5
- package/front_end/models/trace/insights/LegacyJavaScript.ts +3 -3
- package/front_end/models/trace/insights/Models.ts +1 -1
- package/front_end/models/trace/insights/ModernHTTP.ts +5 -6
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +14 -14
- package/front_end/models/trace/insights/RenderBlocking.ts +10 -11
- package/front_end/models/trace/insights/SlowCSSSelector.ts +5 -5
- package/front_end/models/trace/insights/Statistics.ts +1 -1
- package/front_end/models/trace/insights/ThirdParties.ts +5 -6
- package/front_end/models/trace/insights/Viewport.ts +9 -6
- package/front_end/models/trace/insights/insights.ts +3 -1
- package/front_end/models/trace/insights/types.ts +2 -1
- package/front_end/models/trace/lantern/core/LanternError.ts +1 -1
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +1 -1
- package/front_end/models/trace/lantern/core/core.ts +1 -1
- package/front_end/models/trace/lantern/graph/BaseNode.ts +1 -1
- package/front_end/models/trace/lantern/graph/CPUNode.ts +1 -1
- package/front_end/models/trace/lantern/graph/NetworkNode.ts +1 -1
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +1 -1
- package/front_end/models/trace/lantern/graph/graph.ts +1 -1
- package/front_end/models/trace/lantern/lantern.ts +1 -1
- package/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +1 -1
- package/front_end/models/trace/lantern/metrics/Interactive.ts +1 -1
- package/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +1 -1
- package/front_end/models/trace/lantern/metrics/MaxPotentialFID.ts +1 -1
- package/front_end/models/trace/lantern/metrics/Metric.ts +1 -1
- package/front_end/models/trace/lantern/metrics/SpeedIndex.ts +1 -1
- package/front_end/models/trace/lantern/metrics/TBTUtils.ts +1 -1
- package/front_end/models/trace/lantern/metrics/TotalBlockingTime.ts +1 -1
- package/front_end/models/trace/lantern/metrics/metrics.ts +1 -1
- package/front_end/models/trace/lantern/simulation/ConnectionPool.ts +1 -1
- package/front_end/models/trace/lantern/simulation/Constants.ts +1 -1
- package/front_end/models/trace/lantern/simulation/DNSCache.ts +1 -1
- package/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +1 -1
- package/front_end/models/trace/lantern/simulation/Simulator.ts +1 -1
- package/front_end/models/trace/lantern/simulation/TCPConnection.ts +1 -1
- package/front_end/models/trace/lantern/simulation/simulation.ts +1 -1
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +11 -11
- package/front_end/models/trace/lantern/testing/testing.ts +1 -1
- package/front_end/models/trace/lantern/types/Lantern.ts +1 -1
- package/front_end/models/trace/lantern/types/types.ts +1 -1
- package/front_end/models/trace/trace.ts +7 -1
- package/front_end/models/trace/types/Configuration.ts +1 -1
- package/front_end/models/trace/types/Extensions.ts +1 -1
- package/front_end/models/trace/types/File.ts +1 -1
- package/front_end/models/trace/types/Overlays.ts +1 -1
- package/front_end/models/trace/types/Timing.ts +1 -1
- package/front_end/models/trace/types/TraceEvents.ts +9 -6
- package/front_end/models/trace/types/types.ts +1 -1
- package/front_end/{panels/timeline/utils → models/trace_source_maps_resolver}/SourceMapsResolver.ts +19 -21
- package/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +5 -0
- package/front_end/models/visibility.gni +1 -1
- package/front_end/models/workspace/FileManager.ts +3 -29
- package/front_end/models/workspace/IgnoreListManager.ts +1 -1
- package/front_end/models/workspace/SearchConfig.ts +1 -1
- package/front_end/models/workspace/UISourceCode.ts +3 -29
- package/front_end/models/workspace/WorkspaceImpl.ts +3 -29
- package/front_end/models/workspace/workspace.ts +1 -1
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +1 -1
- package/front_end/models/workspace_diff/workspace_diff.ts +1 -1
- package/front_end/panels/accessibility/ARIAAttributesView.ts +1 -1
- package/front_end/panels/accessibility/ARIAMetadata.ts +1 -1
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +53 -53
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +9 -9
- package/front_end/panels/accessibility/AccessibilityStrings.ts +1 -1
- package/front_end/panels/accessibility/AccessibilitySubPane.ts +1 -1
- package/front_end/panels/accessibility/SourceOrderView.ts +1 -1
- package/front_end/panels/accessibility/accessibility-meta.ts +1 -1
- package/front_end/panels/accessibility/accessibility.ts +1 -1
- package/front_end/panels/accessibility/accessibilityNode.css +1 -1
- package/front_end/panels/accessibility/accessibilityProperties.css +1 -1
- package/front_end/panels/accessibility/axBreadcrumbs.css +1 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +1 -1
- package/front_end/panels/ai_assistance/PatchWidget.ts +1 -1
- package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +1 -1
- package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -1
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +1 -1
- package/front_end/panels/ai_assistance/ai_assistance.ts +1 -1
- package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
- package/front_end/panels/ai_assistance/components/ExploreWidget.ts +1 -1
- package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.ts +1 -1
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +1 -1
- package/front_end/panels/ai_assistance/components/chatView.css +1 -1
- package/front_end/panels/ai_assistance/components/exploreWidget.css +1 -1
- package/front_end/panels/ai_assistance/components/userActionRow.css +1 -1
- package/front_end/panels/ai_assistance/selectWorkspaceDialog.css +1 -1
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
- package/front_end/panels/animation/AnimationTimeline.ts +6 -6
- package/front_end/panels/animation/AnimationUI.ts +23 -24
- package/front_end/panels/animation/animation-meta.ts +1 -1
- package/front_end/panels/animation/animation.ts +1 -1
- package/front_end/panels/animation/animationTimeline.css +1 -1
- package/front_end/panels/application/AppManifestView.ts +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -13
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
- package/front_end/panels/application/BackForwardCacheTreeElement.ts +1 -1
- package/front_end/panels/application/BackgroundServiceModel.ts +1 -1
- package/front_end/panels/application/BackgroundServiceView.ts +1 -1
- package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +1 -1
- package/front_end/panels/application/CookieItemsView.ts +1 -1
- package/front_end/panels/application/DOMStorageItemsView.ts +1 -1
- package/front_end/panels/application/DOMStorageModel.ts +24 -24
- package/front_end/panels/application/ExtensionStorageItemsView.ts +1 -1
- package/front_end/panels/application/ExtensionStorageModel.ts +32 -32
- package/front_end/panels/application/IndexedDBModel.ts +8 -31
- package/front_end/panels/application/IndexedDBViews.ts +3 -29
- package/front_end/panels/application/InterestGroupStorageModel.ts +3 -29
- package/front_end/panels/application/InterestGroupStorageView.ts +1 -1
- package/front_end/panels/application/InterestGroupTreeElement.ts +1 -1
- package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -1
- package/front_end/panels/application/OpenedWindowDetailsView.ts +1 -1
- package/front_end/panels/application/PreloadingTreeElement.ts +9 -9
- package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
- package/front_end/panels/application/ReportingApiView.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +1 -1
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -1
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +1 -1
- package/front_end/panels/application/ServiceWorkersView.ts +1 -54
- package/front_end/panels/application/SharedStorageEventsView.ts +1 -1
- package/front_end/panels/application/SharedStorageItemsView.ts +1 -1
- package/front_end/panels/application/SharedStorageListTreeElement.ts +1 -1
- package/front_end/panels/application/SharedStorageModel.ts +1 -1
- package/front_end/panels/application/SharedStorageTreeElement.ts +1 -1
- package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
- package/front_end/panels/application/StorageItemsToolbar.ts +1 -1
- package/front_end/panels/application/StorageView.ts +1 -1
- package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
- package/front_end/panels/application/appManifestView.css +1 -1
- package/front_end/panels/application/application-meta.ts +1 -1
- package/front_end/panels/application/application.ts +1 -1
- package/front_end/panels/application/backgroundServiceView.css +1 -1
- package/front_end/panels/application/components/BackForwardCacheStrings.ts +1 -1
- package/front_end/panels/application/components/BackForwardCacheView.ts +1 -1
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +1 -1
- package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
- package/front_end/panels/application/components/FrameDetailsView.ts +1 -1
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +1 -1
- package/front_end/panels/application/components/OriginTrialTreeView.ts +1 -1
- package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -1
- package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
- package/front_end/panels/application/components/ReportsGrid.ts +1 -1
- package/front_end/panels/application/components/ServiceWorkerRouterView.ts +1 -1
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +1 -1
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +1 -1
- package/front_end/panels/application/components/StackTrace.ts +1 -1
- package/front_end/panels/application/components/StorageMetadataView.ts +1 -1
- package/front_end/panels/application/components/TrustTokensView.ts +1 -1
- package/front_end/panels/application/components/backForwardCacheView.css +1 -1
- package/front_end/panels/application/components/badge.css +1 -1
- package/front_end/panels/application/components/bounceTrackingMitigationsView.css +1 -1
- package/front_end/panels/application/components/components.ts +1 -1
- package/front_end/panels/application/components/frameDetailsReportView.css +1 -1
- package/front_end/panels/application/components/interestGroupAccessGrid.css +1 -1
- package/front_end/panels/application/components/originTrialTokenRows.css +1 -1
- package/front_end/panels/application/components/originTrialTreeView.css +1 -1
- package/front_end/panels/application/components/permissionsPolicySection.css +1 -1
- package/front_end/panels/application/components/protocolHandlersView.css +1 -1
- package/front_end/panels/application/components/reportingApiGrid.css +1 -1
- package/front_end/panels/application/components/serviceWorkerRouterView.css +1 -1
- package/front_end/panels/application/components/sharedStorageAccessGrid.css +1 -1
- package/front_end/panels/application/components/sharedStorageMetadataView.css +1 -1
- package/front_end/panels/application/components/stackTraceLinkButton.css +1 -1
- package/front_end/panels/application/components/stackTraceRow.css +1 -1
- package/front_end/panels/application/components/trustTokensView.css +1 -1
- package/front_end/panels/application/cookieItemsView.css +1 -1
- package/front_end/panels/application/indexedDBViews.css +3 -27
- package/front_end/panels/application/interestGroupStorageView.css +1 -1
- package/front_end/panels/application/openedWindowDetailsView.css +1 -1
- package/front_end/panels/application/preloading/PreloadingView.ts +1 -1
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +3 -3
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingString.ts +1 -1
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.css +1 -1
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +1 -1
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +1 -1
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +3 -3
- package/front_end/panels/application/preloading/components/components.ts +1 -1
- package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +1 -1
- package/front_end/panels/application/preloading/components/preloadingDisabledInfobar.css +1 -1
- package/front_end/panels/application/preloading/components/preloadingGrid.css +1 -1
- package/front_end/panels/application/preloading/components/ruleSetGrid.css +1 -1
- package/front_end/panels/application/preloading/components/usedPreloadingView.css +1 -1
- package/front_end/panels/application/preloading/helper/PreloadingForward.ts +1 -1
- package/front_end/panels/application/preloading/helper/helper.ts +1 -1
- package/front_end/panels/application/preloading/preloadingView.css +1 -1
- package/front_end/panels/application/preloading/preloadingViewDropDown.css +1 -1
- package/front_end/panels/application/resourcesSidebar.css +1 -1
- package/front_end/panels/application/serviceWorkerCacheViews.css +1 -1
- package/front_end/panels/application/serviceWorkerUpdateCycleView.css +1 -1
- package/front_end/panels/application/serviceWorkersView.css +1 -1
- package/front_end/panels/application/sharedStorageEventsView.css +1 -1
- package/front_end/panels/application/storageView.css +1 -1
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/autofill/autofill-meta.ts +1 -1
- package/front_end/panels/autofill/autofill.ts +1 -1
- package/front_end/panels/autofill/autofillView.css +1 -1
- package/front_end/panels/browser_debugger/CSPViolationBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +3 -29
- package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +1 -1
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +1 -1
- package/front_end/panels/browser_debugger/browser_debugger.ts +1 -1
- package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/browser_debugger/domBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/changes/ChangesSidebar.ts +1 -1
- package/front_end/panels/changes/ChangesView.ts +1 -1
- package/front_end/panels/changes/CombinedDiffView.ts +1 -1
- package/front_end/panels/changes/changes-meta.ts +1 -1
- package/front_end/panels/changes/changes.ts +1 -1
- package/front_end/panels/changes/changesSidebar.css +1 -1
- package/front_end/panels/changes/changesView.css +1 -1
- package/front_end/panels/changes/combinedDiffView.css +1 -1
- package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +1 -1
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +1 -1
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +1 -1
- package/front_end/panels/common/BadgeNotification.ts +54 -7
- package/front_end/panels/common/FreDialog.ts +1 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +8 -2
- package/front_end/panels/common/aiCodeCompletionDisclaimer.css +1 -1
- package/front_end/panels/common/aiCodeCompletionSummaryToolbar.css +1 -1
- package/front_end/panels/common/aiCodeCompletionTeaser.css +1 -1
- package/front_end/panels/common/badgeNotification.css +27 -12
- package/front_end/panels/common/common.css +1 -1
- package/front_end/panels/common/common.ts +2 -2
- package/front_end/panels/common/freDialog.css +1 -1
- package/front_end/panels/common/gdpSignUpDialog.css +1 -1
- package/front_end/panels/console/ConsoleContextSelector.ts +10 -10
- package/front_end/panels/console/ConsoleFilter.ts +1 -1
- package/front_end/panels/console/ConsoleFormat.ts +5 -2
- package/front_end/panels/console/ConsolePanel.ts +1 -1
- package/front_end/panels/console/ConsolePinPane.ts +1 -1
- package/front_end/panels/console/ConsolePrompt.ts +11 -7
- package/front_end/panels/console/ConsoleSidebar.ts +1 -1
- package/front_end/panels/console/ConsoleView.ts +14 -14
- package/front_end/panels/console/ConsoleViewMessage.ts +1 -1
- package/front_end/panels/console/ConsoleViewport.ts +32 -58
- package/front_end/panels/console/ErrorStackParser.ts +1 -1
- package/front_end/panels/console/console-meta.ts +1 -1
- package/front_end/panels/console/console.ts +1 -1
- package/front_end/panels/console/consoleContextSelector.css +1 -1
- package/front_end/panels/console/consolePinPane.css +1 -1
- package/front_end/panels/console/consolePrompt.css +1 -1
- package/front_end/panels/console/consoleSidebar.css +1 -1
- package/front_end/panels/console_counters/WarningErrorCounter.ts +1 -1
- package/front_end/panels/console_counters/console_counters-meta.ts +1 -1
- package/front_end/panels/console_counters/console_counters.ts +1 -1
- package/front_end/panels/coverage/CoverageDecorationManager.ts +1 -1
- package/front_end/panels/coverage/CoverageListView.ts +1 -1
- package/front_end/panels/coverage/CoverageModel.ts +23 -23
- package/front_end/panels/coverage/CoverageView.ts +1 -1
- package/front_end/panels/coverage/coverage-meta.ts +1 -1
- package/front_end/panels/coverage/coverage.ts +1 -1
- package/front_end/panels/coverage/coverageListView.css +1 -1
- package/front_end/panels/coverage/coverageView.css +1 -1
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewModel.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewStartView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewUnusedDeclarations.ts +1 -1
- package/front_end/panels/css_overview/cssOverviewCompletedView.css +1 -1
- package/front_end/panels/css_overview/cssOverviewProcessingView.css +1 -1
- package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +1 -1
- package/front_end/panels/css_overview/cssOverviewStartView.css +1 -1
- package/front_end/panels/css_overview/css_overview-meta.ts +1 -1
- package/front_end/panels/css_overview/css_overview.ts +1 -1
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
- package/front_end/panels/developer_resources/developerResourcesListView.css +1 -1
- package/front_end/panels/developer_resources/developerResourcesView.css +1 -1
- package/front_end/panels/developer_resources/developer_resources-meta.ts +1 -1
- package/front_end/panels/developer_resources/developer_resources.ts +1 -1
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +1 -1
- package/front_end/panels/elements/AccessibilityTreeView.ts +1 -1
- package/front_end/panels/elements/CSSRuleValidator.ts +1 -1
- package/front_end/panels/elements/CSSRuleValidatorHelper.ts +1 -1
- package/front_end/panels/elements/CSSValueTraceView.ts +1 -1
- package/front_end/panels/elements/ClassesPaneWidget.ts +2 -2
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +1 -1
- package/front_end/panels/elements/ComputedStyleModel.ts +18 -19
- package/front_end/panels/elements/ComputedStyleWidget.ts +1 -1
- package/front_end/panels/elements/DOMLinkifier.ts +1 -1
- package/front_end/panels/elements/DOMPath.ts +3 -3
- package/front_end/panels/elements/ElementIssueUtils.ts +1 -1
- package/front_end/panels/elements/ElementStatePaneWidget.ts +1 -1
- package/front_end/panels/elements/ElementsPanel.ts +14 -14
- package/front_end/panels/elements/ElementsSidebarPane.ts +1 -1
- package/front_end/panels/elements/ElementsTreeElement.ts +19 -19
- package/front_end/panels/elements/ElementsTreeOutline.ts +42 -49
- package/front_end/panels/elements/ElementsTreeOutlineRenderer.ts +1 -1
- package/front_end/panels/elements/EventListenersWidget.ts +1 -1
- package/front_end/panels/elements/ImagePreviewPopover.ts +1 -1
- package/front_end/panels/elements/InspectElementModeController.ts +3 -29
- package/front_end/panels/elements/LayersWidget.ts +1 -1
- package/front_end/panels/elements/LayoutPane.ts +1 -1
- package/front_end/panels/elements/MarkerDecorator.ts +1 -1
- package/front_end/panels/elements/MetricsSidebarPane.ts +1 -1
- package/front_end/panels/elements/NodeStackTraceWidget.ts +1 -1
- package/front_end/panels/elements/PlatformFontsWidget.ts +3 -29
- package/front_end/panels/elements/PropertiesWidget.ts +1 -1
- package/front_end/panels/elements/PropertyNameCategories.ts +1 -1
- package/front_end/panels/elements/PropertyRenderer.ts +1 -1
- package/front_end/panels/elements/ShortcutTreeElement.ts +5 -5
- package/front_end/panels/elements/StyleEditorWidget.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +5 -5
- package/front_end/panels/elements/StylePropertyHighlighter.ts +1 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +50 -51
- package/front_end/panels/elements/StylePropertyUtils.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +20 -20
- package/front_end/panels/elements/TopLayerContainer.ts +1 -1
- package/front_end/panels/elements/WebCustomData.ts +1 -1
- package/front_end/panels/elements/accessibilityTreeView.css +1 -1
- package/front_end/panels/elements/classesPaneWidget.css +1 -1
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
- package/front_end/panels/elements/components/AdornerManager.ts +1 -1
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +1 -1
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +1 -1
- package/front_end/panels/elements/components/CSSPropertyIconResolver.ts +1 -1
- package/front_end/panels/elements/components/CSSQuery.ts +1 -1
- package/front_end/panels/elements/components/CSSVariableValueView.ts +1 -1
- package/front_end/panels/elements/components/ComputedStyleProperty.ts +1 -1
- package/front_end/panels/elements/components/ComputedStyleTrace.ts +1 -1
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
- package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +1 -1
- package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
- package/front_end/panels/elements/components/Helper.ts +1 -1
- package/front_end/panels/elements/components/QueryContainer.ts +1 -1
- package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -1
- package/front_end/panels/elements/components/accessibilityTreeNode.css +1 -1
- package/front_end/panels/elements/components/components.ts +1 -1
- package/front_end/panels/elements/components/computedStyleProperty.css +1 -1
- package/front_end/panels/elements/components/computedStyleTrace.css +1 -1
- package/front_end/panels/elements/components/cssHintDetailsView.css +1 -1
- package/front_end/panels/elements/components/cssPropertyDocsView.css +1 -1
- package/front_end/panels/elements/components/cssQuery.css +1 -1
- package/front_end/panels/elements/components/cssVariableValueView.css +1 -1
- package/front_end/panels/elements/components/elementsBreadcrumbs.css +1 -1
- package/front_end/panels/elements/components/elementsTreeExpandButton.css +1 -1
- package/front_end/panels/elements/components/queryContainer.css +1 -1
- package/front_end/panels/elements/components/stylePropertyEditor.css +1 -1
- package/front_end/panels/elements/computedStyleSidebarPane.css +1 -1
- package/front_end/panels/elements/cssValueTraceView.css +1 -1
- package/front_end/panels/elements/domLinkifier.css +1 -1
- package/front_end/panels/elements/elementStatePaneWidget.css +1 -1
- package/front_end/panels/elements/elements-meta.ts +1 -1
- package/front_end/panels/elements/elements.ts +1 -1
- package/front_end/panels/elements/elementsTreeOutline.css +1 -1
- package/front_end/panels/elements/layersWidget.css +1 -1
- package/front_end/panels/elements/layoutPane.css +1 -1
- package/front_end/panels/elements/metricsSidebarPane.css +1 -1
- package/front_end/panels/elements/nodeStackTraceWidget.css +1 -1
- package/front_end/panels/elements/platformFontsWidget.css +1 -1
- package/front_end/panels/elements/propertiesWidget.css +1 -1
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +1 -1
- package/front_end/panels/elements/stylesSidebarPane.css +1 -1
- package/front_end/panels/emulation/AdvancedApp.ts +1 -1
- package/front_end/panels/emulation/DeviceModeToolbar.ts +8 -8
- package/front_end/panels/emulation/DeviceModeView.ts +7 -7
- package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +1 -1
- package/front_end/panels/emulation/MediaQueryInspector.ts +19 -19
- package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +1 -1
- package/front_end/panels/emulation/components/components.ts +1 -1
- package/front_end/panels/emulation/deviceModeView.css +1 -1
- package/front_end/panels/emulation/emulation-meta.ts +1 -1
- package/front_end/panels/emulation/emulation.ts +1 -1
- package/front_end/panels/emulation/inspectedPagePlaceholder.css +1 -1
- package/front_end/panels/emulation/mediaQueryInspector.css +1 -1
- package/front_end/panels/event_listeners/EventListenersUtils.ts +1 -1
- package/front_end/panels/event_listeners/EventListenersView.ts +14 -15
- package/front_end/panels/event_listeners/eventListenersView.css +1 -1
- package/front_end/panels/event_listeners/event_listeners.ts +1 -1
- package/front_end/panels/explain/ActionDelegate.ts +1 -1
- package/front_end/panels/explain/PromptBuilder.ts +1 -1
- package/front_end/panels/explain/components/ConsoleInsight.ts +1 -1
- package/front_end/panels/explain/components/consoleInsight.css +1 -1
- package/front_end/panels/explain/components/consoleInsightSourcesList.css +1 -1
- package/front_end/panels/explain/explain-meta.ts +1 -1
- package/front_end/panels/explain/explain.ts +1 -1
- package/front_end/panels/issues/AffectedBlockedByResponseView.ts +1 -1
- package/front_end/panels/issues/AffectedCookiesView.ts +1 -1
- package/front_end/panels/issues/AffectedDescendantsWithinSelectElementView.ts +1 -1
- package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
- package/front_end/panels/issues/AffectedDocumentsInQuirksModeView.ts +1 -1
- package/front_end/panels/issues/AffectedElementsView.ts +1 -1
- package/front_end/panels/issues/AffectedElementsWithLowContrastView.ts +1 -1
- package/front_end/panels/issues/AffectedHeavyAdView.ts +1 -1
- package/front_end/panels/issues/AffectedMetadataAllowedSitesView.ts +1 -1
- package/front_end/panels/issues/AffectedPartitioningBlobURLView.ts +1 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +1 -1
- package/front_end/panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts +1 -1
- package/front_end/panels/issues/AffectedSourcesView.ts +1 -1
- package/front_end/panels/issues/AffectedTrackingSitesView.ts +1 -1
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +1 -1
- package/front_end/panels/issues/CorsIssueDetailsView.ts +1 -1
- package/front_end/panels/issues/GenericIssueDetailsView.ts +1 -1
- package/front_end/panels/issues/HiddenIssuesRow.ts +1 -1
- package/front_end/panels/issues/IssueAggregator.ts +1 -1
- package/front_end/panels/issues/IssueKindView.ts +1 -1
- package/front_end/panels/issues/IssueRevealer.ts +1 -1
- package/front_end/panels/issues/IssueView.ts +1 -1
- package/front_end/panels/issues/IssuesPane.ts +1 -1
- package/front_end/panels/issues/components/ElementsPanelLink.ts +1 -1
- package/front_end/panels/issues/components/HideIssuesMenu.ts +1 -1
- package/front_end/panels/issues/components/components.ts +1 -1
- package/front_end/panels/issues/components/elementsPanelLink.css +1 -1
- package/front_end/panels/issues/components/hideIssuesMenu.css +1 -1
- package/front_end/panels/issues/issues-meta.ts +1 -1
- package/front_end/panels/issues/issues.ts +1 -1
- package/front_end/panels/issues/issuesPane.css +1 -1
- package/front_end/panels/issues/issuesTree.css +1 -1
- package/front_end/panels/js_timeline/js_timeline-meta.ts +1 -1
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +3 -29
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +6 -32
- package/front_end/panels/layer_viewer/LayerViewHost.ts +14 -14
- package/front_end/panels/layer_viewer/Layers3DView.ts +3 -29
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +12 -39
- package/front_end/panels/layer_viewer/TransformController.ts +35 -37
- package/front_end/panels/layer_viewer/layerDetailsView.css +1 -1
- package/front_end/panels/layer_viewer/layerTreeOutline.css +1 -1
- package/front_end/panels/layer_viewer/layer_viewer-meta.ts +1 -1
- package/front_end/panels/layer_viewer/layer_viewer.ts +1 -1
- package/front_end/panels/layer_viewer/layers3DView.css +1 -1
- package/front_end/panels/layer_viewer/paintProfiler.css +1 -1
- package/front_end/panels/layers/LayerPaintProfilerView.ts +1 -1
- package/front_end/panels/layers/LayerTreeModel.ts +44 -69
- package/front_end/panels/layers/LayersPanel.ts +3 -29
- package/front_end/panels/layers/layers-meta.ts +1 -1
- package/front_end/panels/layers/layers.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +1 -1
- package/front_end/panels/lighthouse/LighthousePanel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportSelector.ts +14 -14
- package/front_end/panels/lighthouse/LighthouseReporterTypes.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseStartView.ts +10 -9
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -1
- package/front_end/panels/lighthouse/RadioSetting.ts +1 -1
- package/front_end/panels/lighthouse/lighthouse-meta.ts +1 -1
- package/front_end/panels/lighthouse/lighthouse.ts +1 -1
- package/front_end/panels/lighthouse/lighthouseDialog.css +1 -1
- package/front_end/panels/lighthouse/lighthousePanel.css +1 -1
- package/front_end/panels/lighthouse/lighthouseStartView.css +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspectorUtils.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewerUtils.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/components.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryHighlightChipList.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryInspector.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryNavigator.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryValueInterpreter.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryViewer.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/valueInterpreterSettings.css +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector.ts +1 -1
- package/front_end/panels/media/EventDisplayTable.ts +1 -1
- package/front_end/panels/media/EventTimelineView.ts +1 -1
- package/front_end/panels/media/MainView.ts +1 -1
- package/front_end/panels/media/MediaModel.ts +1 -1
- package/front_end/panels/media/PlayerDetailView.ts +1 -1
- package/front_end/panels/media/PlayerListView.ts +1 -1
- package/front_end/panels/media/PlayerMessagesView.ts +6 -6
- package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
- package/front_end/panels/media/TickingFlameChart.ts +25 -25
- package/front_end/panels/media/TickingFlameChartHelpers.ts +33 -33
- package/front_end/panels/media/eventDisplayTable.css +1 -1
- package/front_end/panels/media/media-meta.ts +1 -1
- package/front_end/panels/media/media.ts +1 -1
- package/front_end/panels/media/playerListView.css +1 -1
- package/front_end/panels/media/playerMessagesView.css +1 -1
- package/front_end/panels/media/playerPropertiesView.css +1 -1
- package/front_end/panels/mobile_throttling/CalibrationController.ts +1 -1
- package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +1 -1
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +1 -1
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +1 -37
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +1 -1
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +1 -1
- package/front_end/panels/mobile_throttling/mobile_throttling.ts +1 -1
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +1 -1
- package/front_end/panels/network/BinaryResourceView.ts +1 -1
- package/front_end/panels/network/BlockedURLsPane.ts +1 -1
- package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
- package/front_end/panels/network/NetworkConfigView.ts +1 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +1 -1
- package/front_end/panels/network/NetworkFrameGrouper.ts +1 -1
- package/front_end/panels/network/NetworkItemView.ts +7 -33
- package/front_end/panels/network/NetworkLogView.ts +1 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +30 -30
- package/front_end/panels/network/NetworkManageCustomHeadersView.ts +1 -1
- package/front_end/panels/network/NetworkOverview.ts +1 -1
- package/front_end/panels/network/NetworkPanel.ts +9 -6
- package/front_end/panels/network/NetworkSearchScope.ts +1 -1
- package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
- package/front_end/panels/network/RequestCookiesView.ts +3 -29
- package/front_end/panels/network/RequestHTMLView.ts +3 -29
- package/front_end/panels/network/RequestInitiatorView.ts +1 -1
- package/front_end/panels/network/RequestPayloadView.ts +1 -1
- package/front_end/panels/network/RequestPreviewView.ts +3 -29
- package/front_end/panels/network/RequestResponseView.ts +3 -29
- package/front_end/panels/network/RequestTimingView.ts +3 -29
- package/front_end/panels/network/ResourceChunkView.ts +1 -1
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +1 -1
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +11 -11
- package/front_end/panels/network/SignedExchangeInfoView.ts +1 -1
- package/front_end/panels/network/binaryResourceView.css +1 -1
- package/front_end/panels/network/blockedURLsPane.css +1 -1
- package/front_end/panels/network/components/DirectSocketConnectionView.ts +1 -1
- package/front_end/panels/network/components/EditableSpan.css +1 -1
- package/front_end/panels/network/components/EditableSpan.ts +1 -1
- package/front_end/panels/network/components/HeaderSectionRow.css +1 -1
- package/front_end/panels/network/components/HeaderSectionRow.ts +1 -1
- package/front_end/panels/network/components/RequestHeaderSection.css +1 -1
- package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
- package/front_end/panels/network/components/RequestHeadersView.css +1 -1
- package/front_end/panels/network/components/RequestHeadersView.ts +1 -1
- package/front_end/panels/network/components/RequestTrustTokensView.css +1 -1
- package/front_end/panels/network/components/RequestTrustTokensView.ts +1 -1
- package/front_end/panels/network/components/ResponseHeaderSection.css +1 -1
- package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
- package/front_end/panels/network/components/WebBundleInfoView.css +1 -1
- package/front_end/panels/network/components/WebBundleInfoView.ts +1 -1
- package/front_end/panels/network/components/components.ts +1 -1
- package/front_end/panels/network/eventSourceMessagesView.css +1 -1
- package/front_end/panels/network/forward/NetworkRequestId.ts +1 -1
- package/front_end/panels/network/forward/UIFilter.ts +1 -1
- package/front_end/panels/network/forward/UIRequestLocation.ts +1 -1
- package/front_end/panels/network/forward/forward.ts +1 -1
- package/front_end/panels/network/network-meta.ts +1 -1
- package/front_end/panels/network/network.ts +1 -1
- package/front_end/panels/network/networkConfigView.css +1 -1
- package/front_end/panels/network/networkLogView.css +3 -27
- package/front_end/panels/network/networkManageCustomHeadersView.css +1 -1
- package/front_end/panels/network/networkTimingTable.css +1 -1
- package/front_end/panels/network/networkWaterfallColumn.css +1 -1
- package/front_end/panels/network/requestCookiesView.css +2 -2
- package/front_end/panels/network/requestHTMLView.css +1 -1
- package/front_end/panels/network/requestHeadersTree.css +1 -1
- package/front_end/panels/network/requestInitiatorView.css +1 -1
- package/front_end/panels/network/requestInitiatorViewTree.css +1 -1
- package/front_end/panels/network/requestPayloadTree.css +1 -1
- package/front_end/panels/network/requestPayloadView.css +1 -1
- package/front_end/panels/network/resourceChunkView.css +1 -1
- package/front_end/panels/network/signedExchangeInfoTree.css +1 -1
- package/front_end/panels/network/signedExchangeInfoView.css +1 -1
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
- package/front_end/panels/performance_monitor/performanceMonitor.css +1 -1
- package/front_end/panels/performance_monitor/performance_monitor-meta.ts +1 -1
- package/front_end/panels/performance_monitor/performance_monitor.ts +1 -1
- package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +1 -1
- package/front_end/panels/profiler/ChildrenProvider.ts +1 -1
- package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +1 -1
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +4 -4
- package/front_end/panels/profiler/HeapProfileView.ts +2 -2
- package/front_end/panels/profiler/HeapProfilerPanel.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +3 -29
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -29
- package/front_end/panels/profiler/HeapSnapshotProxy.ts +3 -29
- package/front_end/panels/profiler/HeapSnapshotView.ts +3 -29
- package/front_end/panels/profiler/HeapTimelineOverview.ts +1 -1
- package/front_end/panels/profiler/IsolateSelector.ts +1 -1
- package/front_end/panels/profiler/LiveHeapProfileView.ts +1 -1
- package/front_end/panels/profiler/ModuleUIStrings.ts +1 -1
- package/front_end/panels/profiler/ProfileDataGrid.ts +1 -1
- package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
- package/front_end/panels/profiler/ProfileHeader.ts +26 -26
- package/front_end/panels/profiler/ProfileLauncherView.ts +8 -35
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
- package/front_end/panels/profiler/ProfileTypeRegistry.ts +1 -1
- package/front_end/panels/profiler/ProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfilesPanel.ts +1 -1
- package/front_end/panels/profiler/TopDownProfileDataGrid.ts +1 -1
- package/front_end/panels/profiler/liveHeapProfile.css +1 -1
- package/front_end/panels/profiler/profileLauncherView.css +1 -1
- package/front_end/panels/profiler/profiler-meta.ts +1 -1
- package/front_end/panels/profiler/profiler.ts +1 -1
- package/front_end/panels/profiler/profilesSidebarTree.css +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.css +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -1
- package/front_end/panels/protocol_monitor/protocolMonitor.css +1 -1
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +1 -1
- package/front_end/panels/protocol_monitor/protocol_monitor.ts +1 -1
- package/front_end/panels/recorder/RecorderController.ts +1 -1
- package/front_end/panels/recorder/RecorderEvents.ts +1 -1
- package/front_end/panels/recorder/RecorderPanel.ts +1 -1
- package/front_end/panels/recorder/components/ControlButton.ts +1 -1
- package/front_end/panels/recorder/components/CreateRecordingView.ts +1 -1
- package/front_end/panels/recorder/components/ExtensionView.ts +1 -1
- package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
- package/front_end/panels/recorder/components/RecordingView.ts +1 -1
- package/front_end/panels/recorder/components/ReplaySection.ts +4 -2
- package/front_end/panels/recorder/components/SelectButton.ts +50 -33
- package/front_end/panels/recorder/components/StepEditor.ts +1 -1
- package/front_end/panels/recorder/components/StepView.ts +1 -1
- package/front_end/panels/recorder/components/TimelineSection.ts +2 -1
- package/front_end/panels/recorder/components/components.ts +1 -1
- package/front_end/panels/recorder/components/controlButton.css +1 -1
- package/front_end/panels/recorder/components/createRecordingView.css +1 -1
- package/front_end/panels/recorder/components/extensionView.css +1 -1
- package/front_end/panels/recorder/components/recordingListView.css +1 -1
- package/front_end/panels/recorder/components/recordingView.css +1 -1
- package/front_end/panels/recorder/components/selectButton.css +7 -13
- package/front_end/panels/recorder/components/startView.css +1 -1
- package/front_end/panels/recorder/components/stepEditor.css +1 -1
- package/front_end/panels/recorder/components/stepView.css +1 -1
- package/front_end/panels/recorder/components/timelineSection.css +1 -1
- package/front_end/panels/recorder/components/util.ts +1 -1
- package/front_end/panels/recorder/controllers/SelectorPicker.ts +1 -1
- package/front_end/panels/recorder/controllers/controllers.ts +1 -1
- package/front_end/panels/recorder/converters/Converter.ts +1 -1
- package/front_end/panels/recorder/converters/ExtensionConverter.ts +1 -1
- package/front_end/panels/recorder/converters/JSONConverter.ts +1 -1
- package/front_end/panels/recorder/converters/LighthouseConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerFirefoxConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerReplayConverter.ts +1 -1
- package/front_end/panels/recorder/converters/converters.ts +1 -1
- package/front_end/panels/recorder/extensions/ExtensionManager.ts +1 -1
- package/front_end/panels/recorder/extensions/extensions.ts +1 -1
- package/front_end/panels/recorder/injected/Logger.ts +1 -1
- package/front_end/panels/recorder/injected/MonotonicArray.ts +1 -1
- package/front_end/panels/recorder/injected/RecordingClient.ts +1 -1
- package/front_end/panels/recorder/injected/SelectorComputer.ts +1 -1
- package/front_end/panels/recorder/injected/SelectorPicker.ts +1 -1
- package/front_end/panels/recorder/injected/Step.ts +1 -1
- package/front_end/panels/recorder/injected/injected.ts +1 -1
- package/front_end/panels/recorder/injected/rollup.config.mjs +1 -1
- package/front_end/panels/recorder/injected/selectors/ARIASelector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/CSSSelector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/PierceSelector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/Selector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/TextSelector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/XPath.ts +1 -1
- package/front_end/panels/recorder/injected/util.ts +1 -1
- package/front_end/panels/recorder/models/ConverterIds.ts +1 -1
- package/front_end/panels/recorder/models/RecorderSettings.ts +1 -1
- package/front_end/panels/recorder/models/RecorderShortcutHelper.ts +1 -1
- package/front_end/panels/recorder/models/RecordingPlayer.ts +1 -1
- package/front_end/panels/recorder/models/RecordingSession.ts +1 -1
- package/front_end/panels/recorder/models/RecordingSettings.ts +1 -1
- package/front_end/panels/recorder/models/RecordingStorage.ts +1 -1
- package/front_end/panels/recorder/models/SDKUtils.ts +1 -1
- package/front_end/panels/recorder/models/Schema.ts +1 -1
- package/front_end/panels/recorder/models/SchemaUtils.ts +1 -1
- package/front_end/panels/recorder/models/ScreenshotStorage.ts +1 -1
- package/front_end/panels/recorder/models/ScreenshotUtils.ts +1 -1
- package/front_end/panels/recorder/models/Section.ts +1 -1
- package/front_end/panels/recorder/models/Tooltip.ts +1 -1
- package/front_end/panels/recorder/models/models.ts +1 -1
- package/front_end/panels/recorder/recorder-actions/recorder-actions.ts +1 -1
- package/front_end/panels/recorder/recorder-meta.ts +1 -1
- package/front_end/panels/recorder/recorder.ts +1 -1
- package/front_end/panels/recorder/recorderController.css +1 -1
- package/front_end/panels/recorder/testing/RecorderHelpers.ts +1 -1
- package/front_end/panels/recorder/util/SharedObject.ts +1 -1
- package/front_end/panels/recorder/util/util.ts +1 -1
- package/front_end/panels/screencast/InputModel.ts +1 -1
- package/front_end/panels/screencast/ScreencastApp.ts +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +3 -29
- package/front_end/panels/screencast/screencast-meta.ts +1 -1
- package/front_end/panels/screencast/screencast.ts +1 -1
- package/front_end/panels/screencast/screencastView.css +3 -27
- package/front_end/panels/search/SearchResultsPane.ts +1 -1
- package/front_end/panels/search/SearchScope.ts +1 -1
- package/front_end/panels/search/SearchView.ts +1 -1
- package/front_end/panels/search/search.ts +1 -1
- package/front_end/panels/search/searchResultsPane.css +1 -1
- package/front_end/panels/search/searchView.css +1 -1
- package/front_end/panels/security/CookieControlsTreeElement.ts +1 -1
- package/front_end/panels/security/CookieControlsView.ts +1 -1
- package/front_end/panels/security/CookieReportTreeElement.ts +1 -1
- package/front_end/panels/security/CookieReportView.ts +1 -1
- package/front_end/panels/security/IPProtectionTreeElement.ts +1 -1
- package/front_end/panels/security/IPProtectionView.ts +1 -1
- package/front_end/panels/security/OriginTreeElement.ts +9 -9
- package/front_end/panels/security/SecurityModel.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +6 -6
- package/front_end/panels/security/SecurityPanelSidebar.ts +1 -1
- package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +1 -1
- package/front_end/panels/security/cookieControlsView.css +1 -1
- package/front_end/panels/security/cookieReportView.css +1 -1
- package/front_end/panels/security/ipProtectionView.css +1 -1
- package/front_end/panels/security/lockIcon.css +1 -1
- package/front_end/panels/security/mainView.css +1 -1
- package/front_end/panels/security/originView.css +1 -1
- package/front_end/panels/security/security-meta.ts +1 -1
- package/front_end/panels/security/security.ts +1 -1
- package/front_end/panels/security/sidebar.css +1 -1
- package/front_end/panels/sensors/LocationsSettingsTab.ts +1 -1
- package/front_end/panels/sensors/SensorsView.ts +1 -1
- package/front_end/panels/sensors/locationsSettingsTab.css +1 -1
- package/front_end/panels/sensors/sensors-meta.ts +1 -1
- package/front_end/panels/sensors/sensors.css +1 -1
- package/front_end/panels/sensors/sensors.ts +1 -1
- package/front_end/panels/settings/AISettingsTab.ts +1 -1
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +1 -1
- package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
- package/front_end/panels/settings/SettingsScreen.ts +21 -41
- package/front_end/{models/persistence → panels/settings}/WorkspaceSettingsTab.ts +34 -31
- package/front_end/panels/settings/aiSettingsTab.css +1 -1
- package/front_end/panels/settings/components/SyncSection.ts +33 -8
- package/front_end/panels/settings/components/components.ts +1 -1
- package/front_end/panels/settings/components/syncSection.css +1 -1
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +1 -1
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +1 -1
- package/front_end/panels/settings/emulation/components/components.ts +1 -1
- package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +1 -1
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +1 -1
- package/front_end/panels/settings/emulation/emulation-meta.ts +1 -1
- package/front_end/panels/settings/emulation/emulation.ts +1 -1
- package/front_end/panels/settings/emulation/utils/StructuredHeaders.ts +1 -1
- package/front_end/panels/settings/emulation/utils/UserAgentMetadata.ts +1 -1
- package/front_end/panels/settings/emulation/utils/utils.ts +1 -1
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +1 -1
- package/front_end/panels/settings/keybindsSettingsTab.css +1 -1
- package/front_end/panels/settings/settings-meta.ts +22 -1
- package/front_end/panels/settings/settings.ts +3 -2
- package/front_end/panels/settings/settingsScreen.css +1 -1
- package/front_end/{models/persistence → panels/settings}/workspaceSettingsTab.css +1 -1
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +1 -1
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +1 -1
- package/front_end/panels/snippets/snippets.ts +1 -1
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +1 -1
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +4 -1
- package/front_end/panels/sources/AiWarningInfobarPlugin.ts +1 -1
- package/front_end/panels/sources/BreakpointEditDialog.ts +1 -1
- package/front_end/panels/sources/BreakpointsView.ts +1 -1
- package/front_end/panels/sources/BreakpointsViewUtils.ts +1 -1
- package/front_end/panels/sources/CSSPlugin.ts +1 -1
- package/front_end/panels/sources/CallStackSidebarPane.ts +1 -1
- package/front_end/panels/sources/CategorizedBreakpointL10n.ts +1 -1
- package/front_end/panels/sources/CoveragePlugin.ts +1 -1
- package/front_end/panels/sources/DebuggerPausedMessage.ts +9 -10
- package/front_end/panels/sources/DebuggerPlugin.ts +3 -29
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +3 -29
- package/front_end/panels/sources/FilePathScoreFunction.ts +3 -29
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +1 -1
- package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +1 -1
- package/front_end/panels/sources/NavigatorView.ts +46 -75
- package/front_end/panels/sources/OpenFileQuickOpen.ts +1 -1
- package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
- package/front_end/panels/sources/Plugin.ts +1 -1
- package/front_end/panels/sources/ProfilePlugin.ts +1 -1
- package/front_end/panels/sources/ResourceOriginPlugin.ts +1 -1
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +1 -1
- package/front_end/panels/sources/SearchSourcesView.ts +1 -1
- package/front_end/panels/sources/SnippetsPlugin.ts +1 -1
- package/front_end/panels/sources/SourcesNavigator.ts +3 -29
- package/front_end/panels/sources/SourcesPanel.ts +36 -36
- package/front_end/panels/sources/SourcesSearchScope.ts +3 -29
- package/front_end/panels/sources/SourcesView.ts +14 -14
- package/front_end/panels/sources/TabbedEditorContainer.ts +22 -51
- package/front_end/panels/sources/ThreadsSidebarPane.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +9 -34
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +35 -37
- package/front_end/panels/sources/breakpointEditDialog.css +1 -1
- package/front_end/panels/sources/breakpointsView.css +1 -1
- package/front_end/panels/sources/callStackSidebarPane.css +1 -1
- package/front_end/panels/sources/components/HeadersView.css +1 -1
- package/front_end/panels/sources/components/HeadersView.ts +1 -1
- package/front_end/panels/sources/components/components.ts +1 -1
- package/front_end/panels/sources/debuggerPausedMessage.css +1 -1
- package/front_end/panels/sources/dialog.css +1 -1
- package/front_end/panels/sources/navigatorView.css +1 -1
- package/front_end/panels/sources/scopeChainSidebarPane.css +1 -1
- package/front_end/panels/sources/sources-meta.ts +1 -1
- package/front_end/panels/sources/sources.ts +1 -1
- package/front_end/panels/sources/sourcesNavigator.css +1 -1
- package/front_end/panels/sources/sourcesView.css +3 -27
- package/front_end/panels/sources/threadsSidebarPane.css +1 -1
- package/front_end/panels/sources/watchExpressionsSidebarPane.css +1 -1
- package/front_end/panels/timeline/ActiveFilters.ts +1 -1
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +4 -4
- package/front_end/panels/timeline/AnnotationHelpers.ts +3 -4
- package/front_end/panels/timeline/AppenderUtils.ts +1 -1
- package/front_end/panels/timeline/BenchmarkEvents.ts +1 -1
- package/front_end/panels/timeline/CLSLinkifier.ts +1 -1
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +15 -15
- package/front_end/panels/timeline/CountersGraph.ts +23 -49
- package/front_end/panels/timeline/EasterEgg.d.ts +1 -1
- package/front_end/panels/timeline/EntriesFilter.ts +5 -4
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +10 -11
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +1 -1
- package/front_end/panels/timeline/GPUTrackAppender.ts +4 -4
- package/front_end/panels/timeline/Initiators.ts +11 -11
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +7 -8
- package/front_end/panels/timeline/IsolateSelector.ts +1 -1
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +8 -8
- package/front_end/panels/timeline/ModificationsManager.ts +9 -16
- package/front_end/panels/timeline/NetworkTrackAppender.ts +1 -1
- package/front_end/panels/timeline/RecordingMetadata.ts +1 -1
- package/front_end/panels/timeline/SaveFileFormatter.ts +1 -1
- package/front_end/panels/timeline/StatusDialog.ts +1 -1
- package/front_end/panels/timeline/TargetForEvent.ts +3 -3
- package/front_end/panels/timeline/ThirdPartyTreeView.ts +4 -5
- package/front_end/panels/timeline/ThreadAppender.ts +29 -21
- package/front_end/panels/timeline/TimelineController.ts +1 -1
- package/front_end/panels/timeline/TimelineDetailsView.ts +16 -24
- package/front_end/panels/timeline/TimelineEventOverview.ts +43 -68
- package/front_end/panels/timeline/TimelineFilters.ts +6 -6
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +60 -84
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +37 -38
- package/front_end/panels/timeline/TimelineFlameChartView.ts +21 -34
- package/front_end/panels/timeline/TimelineHistoryManager.ts +18 -19
- package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
- package/front_end/panels/timeline/TimelineLoader.ts +1 -1
- package/front_end/panels/timeline/TimelineMiniMap.ts +7 -7
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +7 -7
- package/front_end/panels/timeline/TimelinePanel.ts +85 -78
- package/front_end/panels/timeline/TimelineSelection.ts +1 -1
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +12 -12
- package/front_end/panels/timeline/TimelineTreeView.ts +22 -17
- package/front_end/panels/timeline/TimelineUIUtils.ts +76 -74
- package/front_end/panels/timeline/TimingsTrackAppender.ts +14 -13
- package/front_end/panels/timeline/TracingLayerTree.ts +44 -44
- package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
- package/front_end/panels/timeline/TrackConfiguration.ts +2 -2
- package/front_end/panels/timeline/UIDevtoolsController.ts +8 -34
- package/front_end/panels/timeline/UIDevtoolsUtils.ts +26 -69
- package/front_end/panels/timeline/components/Breadcrumbs.ts +1 -1
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +1 -1
- package/front_end/panels/timeline/components/DetailsView.ts +5 -5
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +1 -1
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +1 -1
- package/front_end/panels/timeline/components/IgnoreListSetting.ts +1 -1
- package/front_end/panels/timeline/components/InteractionBreakdown.ts +1 -1
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +14 -24
- package/front_end/panels/timeline/components/LiveMetricsView.ts +8 -5
- package/front_end/panels/timeline/components/MetricCard.ts +1 -1
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +1 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +11 -12
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +2 -2
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +1 -1
- package/front_end/panels/timeline/components/OriginMap.ts +1 -1
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +1 -1
- package/front_end/panels/timeline/components/Sidebar.ts +5 -15
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +7 -8
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +14 -37
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +22 -20
- package/front_end/panels/timeline/components/TimelineSummary.ts +1 -1
- package/front_end/panels/timeline/components/Utils.ts +1 -1
- package/front_end/panels/timeline/components/breadcrumbsUI.css +1 -1
- package/front_end/panels/timeline/components/components.ts +1 -1
- package/front_end/panels/timeline/components/cpuThrottlingSelector.css +1 -1
- package/front_end/panels/timeline/components/exportTraceOptions.css +1 -1
- package/front_end/panels/timeline/components/fieldSettingsDialog.css +1 -1
- package/front_end/panels/timeline/components/ignoreListSetting.css +1 -1
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +2 -2
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +1 -1
- package/front_end/panels/timeline/components/insights/Cache.ts +5 -1
- package/front_end/panels/timeline/components/insights/Checklist.ts +1 -1
- package/front_end/panels/timeline/components/insights/DOMSize.ts +6 -2
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +1 -1
- package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +1 -1
- package/front_end/panels/timeline/components/insights/EventRef.ts +1 -1
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +1 -1
- package/front_end/panels/timeline/components/insights/ForcedReflow.ts +1 -1
- package/front_end/panels/timeline/components/insights/Helpers.ts +20 -1
- package/front_end/panels/timeline/components/insights/INPBreakdown.ts +1 -1
- package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -1
- package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +1 -1
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +1 -1
- package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +1 -1
- package/front_end/panels/timeline/components/insights/ModernHTTP.ts +1 -1
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +2 -2
- package/front_end/panels/timeline/components/insights/NodeLink.ts +1 -1
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +1 -1
- package/front_end/panels/timeline/components/insights/ScriptRef.ts +1 -1
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +1 -1
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +1 -1
- package/front_end/panels/timeline/components/insights/Table.ts +1 -1
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +1 -1
- package/front_end/panels/timeline/components/insights/Viewport.ts +5 -1
- package/front_end/panels/timeline/components/insights/baseInsightComponent.css +1 -1
- package/front_end/panels/timeline/components/insights/checklist.css +1 -1
- package/front_end/panels/timeline/components/insights/insights.ts +1 -1
- package/front_end/panels/timeline/components/insights/networkDependencyTreeInsight.css +1 -1
- package/front_end/panels/timeline/components/insights/table.css +1 -1
- package/front_end/panels/timeline/components/insights/types.ts +1 -1
- package/front_end/panels/timeline/components/interactionBreakdown.css +1 -1
- package/front_end/panels/timeline/components/layoutShiftDetails.css +1 -1
- package/front_end/panels/timeline/components/liveMetricsView.css +1 -1
- package/front_end/panels/timeline/components/metricCard.css +1 -1
- package/front_end/panels/timeline/components/metricValueStyles.css +1 -1
- package/front_end/panels/timeline/components/networkRequestDetails.css +1 -1
- package/front_end/panels/timeline/components/networkRequestTooltip.css +1 -1
- package/front_end/panels/timeline/components/networkThrottlingSelector.css +1 -1
- package/front_end/panels/timeline/components/originMap.css +1 -1
- package/front_end/panels/timeline/components/relatedInsightChips.css +1 -1
- package/front_end/panels/timeline/components/sidebarAnnotationsTab.css +1 -1
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
- package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +1 -1
- package/front_end/panels/timeline/components/timelineSummary.css +1 -1
- package/front_end/panels/timeline/enable-easter-egg.js +1 -1
- package/front_end/panels/timeline/extensions/ExtensionUI.ts +1 -1
- package/front_end/panels/timeline/extensions/extensions.ts +1 -1
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +4 -4
- package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +1 -1
- package/front_end/panels/timeline/overlays/components/components.ts +1 -1
- package/front_end/panels/timeline/overlays/components/entriesLinkOverlay.css +1 -1
- package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +1 -1
- package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +1 -1
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +1 -1
- package/front_end/panels/timeline/overlays/overlays.ts +1 -1
- package/front_end/panels/timeline/thirdPartyTreeView.css +1 -1
- package/front_end/panels/timeline/timeline-meta.ts +1 -1
- package/front_end/panels/timeline/timeline.ts +1 -1
- package/front_end/panels/timeline/timelineDetailsView.css +1 -1
- package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
- package/front_end/panels/timeline/timelineFlamechartPopover.css +1 -1
- package/front_end/panels/timeline/timelineHistoryManager.css +1 -1
- package/front_end/panels/timeline/timelineMiniMap.css +1 -1
- package/front_end/panels/timeline/timelinePaintProfiler.css +1 -1
- package/front_end/panels/timeline/timelineSelectorStatsView.css +2 -2
- package/front_end/panels/timeline/timelineStatusDialog.css +1 -1
- package/front_end/panels/timeline/timelineTreeView.css +1 -1
- package/front_end/panels/timeline/utils/AICallTree.ts +17 -20
- package/front_end/panels/timeline/utils/AIContext.ts +43 -24
- package/front_end/panels/timeline/utils/EntryNodes.ts +6 -6
- package/front_end/panels/timeline/utils/FreshRecording.ts +4 -4
- package/front_end/panels/timeline/utils/Helpers.ts +2 -21
- package/front_end/panels/timeline/utils/IgnoreList.ts +3 -4
- package/front_end/panels/timeline/utils/ImageCache.ts +1 -1
- package/front_end/panels/timeline/utils/InsightAIContext.ts +7 -7
- package/front_end/panels/timeline/utils/Treemap.ts +1 -1
- package/front_end/panels/timeline/utils/utils.ts +1 -9
- package/front_end/panels/utils/utils.ts +1 -1
- package/front_end/panels/visibility.gni +1 -1
- package/front_end/panels/web_audio/WebAudioModel.ts +1 -1
- package/front_end/panels/web_audio/WebAudioView.ts +1 -1
- package/front_end/panels/web_audio/webAudio.css +1 -1
- package/front_end/panels/web_audio/web_audio-meta.ts +1 -1
- package/front_end/panels/web_audio/web_audio.ts +1 -1
- package/front_end/panels/webauthn/WebauthnPane.ts +2 -1
- package/front_end/panels/webauthn/webauthn-meta.ts +1 -1
- package/front_end/panels/webauthn/webauthn.ts +1 -1
- package/front_end/panels/webauthn/webauthnPane.css +1 -1
- package/front_end/panels/whats_new/ReleaseNoteText.ts +1 -1
- package/front_end/panels/whats_new/ReleaseNoteView.ts +1 -1
- package/front_end/panels/whats_new/WhatsNewImpl.ts +1 -1
- package/front_end/panels/whats_new/releaseNoteView.css +1 -1
- package/front_end/panels/whats_new/whats_new-meta.ts +1 -1
- package/front_end/panels/whats_new/whats_new.ts +1 -1
- package/front_end/services/puppeteer/PuppeteerConnection.ts +1 -1
- package/front_end/services/puppeteer/puppeteer.ts +1 -1
- package/front_end/services/trace_bounds/TraceBounds.ts +1 -1
- package/front_end/services/trace_bounds/trace_bounds.ts +1 -1
- package/front_end/services/tracing/PerformanceTracing.ts +1 -1
- package/front_end/services/tracing/TracingManager.ts +1 -1
- package/front_end/services/tracing/tracing.ts +1 -1
- package/front_end/services/window_bounds/WindowBoundsService.ts +1 -1
- package/front_end/services/window_bounds/window_bounds.ts +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/json5/rebuild.sh +1 -1
- package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
- package/front_end/third_party/lit/lib/decorators.js +5 -5
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.js +8 -13
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +26 -9
- package/front_end/third_party/lit/lib/lit.js +5 -5
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.js +2 -2
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +12 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +13 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +10 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js +50 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +5 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.d.ts +8 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Deserializer.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Deserializer.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.js +1 -35
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPResponse.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/JSHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Serializer.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Serializer.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Connection.d.ts +4 -193
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +2 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/{cdp → common}/AriaQueryHandler.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/{cdp → common}/AriaQueryHandler.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts +0 -39
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/GetQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/GetQueryHandler.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/GetQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts +0 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/index-browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/index-browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts +19 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js +22 -13
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +33 -44
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +124 -58
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +12 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +13 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +10 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js +50 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +5 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.d.ts +8 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Deserializer.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Deserializer.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPResponse.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/JSHandle.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Serializer.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Serializer.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +3 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Connection.d.ts +4 -193
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts +14 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +2 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts +8 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/{cdp → common}/AriaQueryHandler.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/{cdp → common}/AriaQueryHandler.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts +0 -39
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/GetQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/GetQueryHandler.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/GetQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts +0 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/index-browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/index-browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts +19 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js +22 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +34 -45
- package/front_end/third_party/puppeteer/package/package.json +3 -2
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +21 -1
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +64 -3
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +5 -3
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +10 -12
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +13 -13
- package/front_end/third_party/puppeteer/package/src/bidi/Deserializer.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/ExposedFunction.ts +2 -5
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/JSHandle.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Serializer.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/core/Connection.ts +4 -205
- package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Request.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Session.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserPrompt.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/util.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +3 -5
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +11 -2
- package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/{cdp → common}/AriaQueryHandler.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/Cookie.ts +0 -39
- package/front_end/third_party/puppeteer/package/src/common/GetQueryHandler.ts +1 -2
- package/front_end/third_party/puppeteer/package/src/common/common.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/common/util.ts +0 -4
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/index-browser.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/revisions.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/util/disposable.ts +30 -12
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -1
- package/front_end/third_party/puppeteer-replay/README.chromium +2 -2
- package/front_end/third_party/puppeteer-replay/package/lib/cjs/main.cjs +7 -1
- package/front_end/third_party/puppeteer-replay/package/lib/cjs/main.cjs.map +1 -1
- package/front_end/third_party/puppeteer-replay/package/lib/main.js +7 -1
- package/front_end/third_party/puppeteer-replay/package/lib/main.js.map +1 -1
- package/front_end/third_party/puppeteer-replay/package/package.json +3 -3
- package/front_end/third_party/third-party-web/rebuild.sh +1 -1
- package/front_end/ui/components/adorners/Adorner.ts +1 -1
- package/front_end/ui/components/adorners/adorner.css +1 -1
- package/front_end/ui/components/adorners/adorners.ts +1 -1
- package/front_end/ui/components/buttons/Button.ts +1 -1
- package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
- package/front_end/ui/components/buttons/button.css +1 -1
- package/front_end/ui/components/buttons/buttons.ts +1 -1
- package/front_end/ui/components/buttons/floatingButton.css +1 -1
- package/front_end/ui/components/buttons/textButton.css +1 -1
- package/front_end/ui/components/cards/Card.ts +1 -1
- package/front_end/ui/components/cards/card.css +1 -1
- package/front_end/ui/components/cards/cards.ts +1 -1
- package/front_end/ui/components/chrome_link/ChromeLink.ts +1 -1
- package/front_end/ui/components/chrome_link/chromeLink.css +1 -1
- package/front_end/ui/components/chrome_link/chrome_link.ts +1 -1
- package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +1 -1
- package/front_end/ui/components/code_highlighter/codeHighlighter.css +1 -1
- package/front_end/ui/components/code_highlighter/code_highlighter.ts +1 -1
- package/front_end/ui/components/copy_to_clipboard/copyToClipboard.ts +1 -1
- package/front_end/ui/components/copy_to_clipboard/copy_to_clipboard.ts +1 -1
- package/front_end/ui/components/dialogs/ButtonDialog.ts +1 -1
- package/front_end/ui/components/dialogs/Dialog.ts +7 -8
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -1
- package/front_end/ui/components/dialogs/buttonDialog.css +1 -1
- package/front_end/ui/components/dialogs/dialog.css +1 -1
- package/front_end/ui/components/dialogs/dialogs.ts +1 -1
- package/front_end/ui/components/dialogs/shortcutDialog.css +1 -1
- package/front_end/ui/components/diff_view/DiffView.ts +1 -1
- package/front_end/ui/components/diff_view/diffView.css +1 -1
- package/front_end/ui/components/diff_view/diff_view.ts +1 -1
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.html +1 -1
- package/front_end/ui/components/docs/breadcrumbs_perf/initial-breadcrumb-perf.ts +1 -1
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.html +1 -1
- package/front_end/ui/components/docs/breadcrumbs_perf/nested-breadcrumbs-perf.ts +1 -1
- package/front_end/ui/components/docs/button/basic.html +1 -1
- package/front_end/ui/components/docs/button/basic.ts +1 -1
- package/front_end/ui/components/docs/color_swatch/basic.html +1 -1
- package/front_end/ui/components/docs/color_swatch/basic.ts +1 -1
- package/front_end/ui/components/docs/color_swatch/change-color.html +1 -1
- package/front_end/ui/components/docs/color_swatch/change-color.ts +1 -1
- package/front_end/ui/components/docs/combo_box/basic.html +1 -1
- package/front_end/ui/components/docs/combo_box/basic.ts +1 -1
- package/front_end/ui/components/docs/component_docs.ts +1 -1
- package/front_end/ui/components/docs/component_docs_styles.css +1 -1
- package/front_end/ui/components/docs/computed_style_property/basic.html +1 -1
- package/front_end/ui/components/docs/computed_style_property/basic.ts +1 -1
- package/front_end/ui/components/docs/computed_style_property/traceable.html +1 -1
- package/front_end/ui/components/docs/computed_style_property/traceable.ts +1 -1
- package/front_end/ui/components/docs/computed_style_trace/basic.html +1 -1
- package/front_end/ui/components/docs/computed_style_trace/basic.ts +1 -1
- package/front_end/ui/components/docs/console_insight/basic.html +1 -1
- package/front_end/ui/components/docs/console_insight/basic.ts +1 -1
- package/front_end/ui/components/docs/console_insight/error.html +1 -1
- package/front_end/ui/components/docs/console_insight/error.ts +1 -1
- package/front_end/ui/components/docs/console_insight/loading.html +1 -1
- package/front_end/ui/components/docs/console_insight/loading.ts +1 -1
- package/front_end/ui/components/docs/context_menu/basic.html +1 -1
- package/front_end/ui/components/docs/context_menu/basic.ts +1 -1
- package/front_end/ui/components/docs/create_breadcrumbs.ts +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/basic.html +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/basic.ts +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/helpers.ts +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/scroll-to-active-element.html +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/scroll-to-active-element.ts +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/scroll.html +1 -1
- package/front_end/ui/components/docs/elements_breadcrumbs/scroll.ts +1 -1
- package/front_end/ui/components/docs/expandable_list/basic.html +1 -1
- package/front_end/ui/components/docs/expandable_list/basic.ts +1 -1
- package/front_end/ui/components/docs/icon_button/basic.html +1 -1
- package/front_end/ui/components/docs/icon_button/basic.ts +1 -1
- package/front_end/ui/components/docs/icon_component/basic.html +1 -1
- package/front_end/ui/components/docs/icon_component/basic.ts +1 -1
- package/front_end/ui/components/docs/input/basic.html +1 -1
- package/front_end/ui/components/docs/input/basic.ts +1 -1
- package/front_end/ui/components/docs/issue_counter/basic.html +1 -1
- package/front_end/ui/components/docs/issue_counter/basic.ts +1 -1
- package/front_end/ui/components/docs/issue_link_icon/basic.html +1 -1
- package/front_end/ui/components/docs/issue_link_icon/basic.ts +1 -1
- package/front_end/ui/components/docs/legacy_color_invert/basic.html +1 -1
- package/front_end/ui/components/docs/legacy_color_invert/basic.ts +1 -1
- package/front_end/ui/components/docs/linear_memory_inspector/basic.html +1 -1
- package/front_end/ui/components/docs/linear_memory_inspector/basic.ts +1 -1
- package/front_end/ui/components/docs/linkifier/simple-url.html +1 -1
- package/front_end/ui/components/docs/linkifier/simple-url.ts +1 -1
- package/front_end/ui/components/docs/markdown_image/basic.html +1 -1
- package/front_end/ui/components/docs/markdown_image/basic.ts +1 -1
- package/front_end/ui/components/docs/markdown_link/basic.html +1 -1
- package/front_end/ui/components/docs/markdown_link/basic.ts +1 -1
- package/front_end/ui/components/docs/markdown_view/basic.html +1 -1
- package/front_end/ui/components/docs/markdown_view/basic.ts +1 -1
- package/front_end/ui/components/docs/markdown_view/code-block.html +1 -1
- package/front_end/ui/components/docs/markdown_view/code-block.ts +1 -1
- package/front_end/ui/components/docs/menu/basic.html +2 -2
- package/front_end/ui/components/docs/menu/basic.ts +1 -1
- package/front_end/ui/components/docs/panel_feedback/basic.html +1 -1
- package/front_end/ui/components/docs/panel_feedback/basic.ts +1 -1
- package/front_end/ui/components/docs/panel_feedback/button.html +1 -1
- package/front_end/ui/components/docs/panel_feedback/button.ts +1 -1
- package/front_end/ui/components/docs/panel_introduction_steps/basic.html +1 -1
- package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +1 -1
- package/front_end/ui/components/docs/perf_piechart/basic-with-legend.html +1 -1
- package/front_end/ui/components/docs/perf_piechart/basic-with-legend.ts +1 -1
- package/front_end/ui/components/docs/perf_piechart/basic-without-legend.html +1 -1
- package/front_end/ui/components/docs/perf_piechart/basic-without-legend.ts +1 -1
- package/front_end/ui/components/docs/radio_button/basic.html +1 -1
- package/front_end/ui/components/docs/radio_button/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_control_button/basic.html +1 -1
- package/front_end/ui/components/docs/recorder_control_button/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.html +1 -1
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_recording_list_view/basic.html +1 -1
- package/front_end/ui/components/docs/recorder_recording_list_view/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_select_button/basic.html +1 -1
- package/front_end/ui/components/docs/recorder_select_button/basic.ts +1 -1
- package/front_end/ui/components/docs/recorder_split_view/basic.html +1 -1
- package/front_end/ui/components/docs/recorder_split_view/basic.ts +1 -1
- package/front_end/ui/components/docs/report/basic.html +1 -1
- package/front_end/ui/components/docs/report/basic.ts +1 -1
- package/front_end/ui/components/docs/request_link_icon/basic.html +1 -1
- package/front_end/ui/components/docs/request_link_icon/basic.ts +1 -1
- package/front_end/ui/components/docs/select_menu/basic.html +1 -1
- package/front_end/ui/components/docs/select_menu/basic.ts +1 -1
- package/front_end/ui/components/docs/select_menu/wide-option.html +1 -1
- package/front_end/ui/components/docs/select_menu/wide-option.ts +1 -1
- package/front_end/ui/components/docs/slider/basic.html +1 -1
- package/front_end/ui/components/docs/slider/basic.ts +1 -1
- package/front_end/ui/components/docs/snackbars/basic.html +1 -1
- package/front_end/ui/components/docs/snackbars/basic.ts +1 -1
- package/front_end/ui/components/docs/spinners/basic.html +1 -1
- package/front_end/ui/components/docs/spinners/basic.ts +1 -1
- package/front_end/ui/components/docs/style_property_editor/flex.html +1 -2
- package/front_end/ui/components/docs/style_property_editor/flex.ts +1 -1
- package/front_end/ui/components/docs/style_property_editor/grid.html +1 -1
- package/front_end/ui/components/docs/style_property_editor/grid.ts +1 -1
- package/front_end/ui/components/docs/survey_link/basic.html +1 -1
- package/front_end/ui/components/docs/survey_link/basic.ts +1 -1
- package/front_end/ui/components/docs/switch/basic.html +1 -1
- package/front_end/ui/components/docs/switch/basic.ts +1 -1
- package/front_end/ui/components/docs/text_prompt/basic.html +2 -2
- package/front_end/ui/components/docs/text_prompt/basic.ts +1 -1
- package/front_end/ui/components/docs/theme_colors/basic.html +1 -1
- package/front_end/ui/components/docs/theme_colors/basic.ts +1 -1
- package/front_end/ui/components/docs/toggle_dark_mode.ts +1 -1
- package/front_end/ui/components/docs/toggle_fonts.ts +1 -1
- package/front_end/ui/components/docs/tooltip/basic.html +1 -1
- package/front_end/ui/components/docs/tooltip/basic.ts +1 -1
- package/front_end/ui/components/docs/tree_outline/basic.html +1 -1
- package/front_end/ui/components/docs/tree_outline/basic.ts +1 -1
- package/front_end/ui/components/docs/tree_outline/custom-renderers.html +1 -1
- package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +1 -1
- package/front_end/ui/components/docs/tree_outline/lazy-children.html +1 -1
- package/front_end/ui/components/docs/tree_outline/lazy-children.ts +1 -1
- package/front_end/ui/components/docs/tree_outline/sample-data.ts +1 -1
- package/front_end/ui/components/docs/user_agent_client_hints/basic.html +1 -1
- package/front_end/ui/components/docs/user_agent_client_hints/basic.ts +1 -1
- package/front_end/ui/components/expandable_list/ExpandableList.ts +1 -1
- package/front_end/ui/components/expandable_list/expandableList.css +1 -1
- package/front_end/ui/components/expandable_list/expandable_list.ts +1 -1
- package/front_end/ui/components/helpers/component-server-setup.ts +1 -1
- package/front_end/ui/components/helpers/directives.ts +1 -1
- package/front_end/ui/components/helpers/get-root-node.ts +1 -1
- package/front_end/ui/components/helpers/helpers.ts +1 -1
- package/front_end/ui/components/helpers/scheduled-render.ts +1 -1
- package/front_end/ui/components/highlighting/HighlightManager.ts +1 -1
- package/front_end/ui/components/highlighting/highlighting.ts +1 -1
- package/front_end/ui/components/icon_button/FileSourceIcon.ts +1 -1
- package/front_end/ui/components/icon_button/Icon.ts +1 -1
- package/front_end/ui/components/icon_button/IconButton.ts +1 -1
- package/front_end/ui/components/icon_button/fileSourceIcon.css +1 -1
- package/front_end/ui/components/icon_button/icon.css +1 -1
- package/front_end/ui/components/icon_button/iconButton.css +1 -1
- package/front_end/ui/components/icon_button/icon_button.ts +1 -1
- package/front_end/ui/components/input/checkbox.css +1 -1
- package/front_end/ui/components/input/input.ts +1 -1
- package/front_end/ui/components/input/textInput.css +1 -1
- package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +1 -1
- package/front_end/ui/components/issue_counter/issueCounter.css +1 -1
- package/front_end/ui/components/issue_counter/issueLinkIcon.css +1 -1
- package/front_end/ui/components/issue_counter/issue_counter.ts +1 -1
- package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
- package/front_end/ui/components/legacy_wrapper/legacy_wrapper.ts +1 -1
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
- package/front_end/ui/components/linkifier/LinkifierUtils.ts +1 -1
- package/front_end/ui/components/linkifier/linkifier.ts +1 -1
- package/front_end/ui/components/linkifier/linkifierImpl.css +1 -1
- package/front_end/ui/components/markdown_view/CodeBlock.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownView.ts +1 -1
- package/front_end/ui/components/markdown_view/codeBlock.css +1 -1
- package/front_end/ui/components/markdown_view/markdownImage.css +1 -1
- package/front_end/ui/components/markdown_view/markdownLink.css +1 -1
- package/front_end/ui/components/markdown_view/markdownView.css +1 -1
- package/front_end/ui/components/markdown_view/markdown_view.ts +1 -1
- package/front_end/ui/components/menus/Menu.ts +1 -1
- package/front_end/ui/components/menus/SelectMenu.ts +1 -1
- package/front_end/ui/components/menus/menu.css +1 -1
- package/front_end/ui/components/menus/menuGroup.css +1 -1
- package/front_end/ui/components/menus/menuItem.css +1 -1
- package/front_end/ui/components/menus/menus.ts +1 -1
- package/front_end/ui/components/menus/selectMenu.css +1 -1
- package/front_end/ui/components/menus/selectMenuButton.css +1 -1
- package/front_end/ui/components/node_text/NodeText.ts +1 -1
- package/front_end/ui/components/node_text/nodeText.css +1 -1
- package/front_end/ui/components/node_text/node_text.ts +1 -1
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +1 -1
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +1 -1
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
- package/front_end/ui/components/panel_feedback/panelFeedback.css +1 -5
- package/front_end/ui/components/panel_feedback/panel_feedback.ts +1 -1
- package/front_end/ui/components/panel_feedback/previewToggle.css +1 -1
- package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +1 -1
- package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +1 -1
- package/front_end/ui/components/panel_introduction_steps/panel_introduction_steps.ts +1 -1
- package/front_end/ui/components/render_coordinator/render_coordinator.ts +1 -1
- package/front_end/ui/components/report_view/ReportView.ts +1 -1
- package/front_end/ui/components/report_view/report.css +1 -1
- package/front_end/ui/components/report_view/reportKey.css +1 -1
- package/front_end/ui/components/report_view/reportSection.css +1 -1
- package/front_end/ui/components/report_view/reportSectionDivider.css +1 -1
- package/front_end/ui/components/report_view/reportSectionHeader.css +1 -1
- package/front_end/ui/components/report_view/reportValue.css +1 -1
- package/front_end/ui/components/report_view/report_view.ts +1 -1
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +1 -1
- package/front_end/ui/components/request_link_icon/requestLinkIcon.css +1 -1
- package/front_end/ui/components/request_link_icon/request_link_icon.ts +1 -1
- package/front_end/ui/components/settings/SettingCheckbox.ts +10 -2
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +1 -1
- package/front_end/ui/components/settings/settingCheckbox.css +1 -1
- package/front_end/ui/components/settings/settingDeprecationWarning.css +1 -1
- package/front_end/ui/components/settings/settings.ts +1 -1
- package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
- package/front_end/ui/components/snackbars/snackbar.css +1 -1
- package/front_end/ui/components/snackbars/snackbars.ts +1 -1
- package/front_end/ui/components/spinners/Spinner.ts +1 -1
- package/front_end/ui/components/spinners/spinner.css +1 -1
- package/front_end/ui/components/spinners/spinners.ts +1 -1
- package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +1 -1
- package/front_end/ui/components/srgb_overlay/srgbOverlay.css +1 -1
- package/front_end/ui/components/srgb_overlay/srgb_overlay.ts +1 -1
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +1 -1
- package/front_end/ui/components/suggestion_input/suggestionInput.css +1 -1
- package/front_end/ui/components/suggestion_input/suggestion_input.ts +1 -1
- package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
- package/front_end/ui/components/survey_link/surveyLink.css +1 -1
- package/front_end/ui/components/survey_link/survey_link.ts +1 -1
- package/front_end/ui/components/switch/SwitchImpl.ts +1 -1
- package/front_end/ui/components/switch/switch.css +1 -1
- package/front_end/ui/components/switch/switch.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +1 -1
- package/front_end/ui/components/text_editor/AutocompleteHistory.ts +1 -1
- package/front_end/ui/components/text_editor/ExecutionPositionHighlighter.ts +1 -1
- package/front_end/ui/components/text_editor/TextEditor.ts +1 -1
- package/front_end/ui/components/text_editor/TextEditorHistory.ts +1 -1
- package/front_end/ui/components/text_editor/config.ts +1 -1
- package/front_end/ui/components/text_editor/cursor_tooltip.ts +1 -1
- package/front_end/ui/components/text_editor/javascript.ts +1 -1
- package/front_end/ui/components/text_editor/position.ts +1 -1
- package/front_end/ui/components/text_editor/textEditor.css +1 -1
- package/front_end/ui/components/text_editor/text_editor.ts +1 -1
- package/front_end/ui/components/text_editor/theme.ts +1 -1
- package/front_end/ui/components/text_prompt/TextPrompt.ts +1 -1
- package/front_end/ui/components/text_prompt/textPrompt.css +1 -1
- package/front_end/ui/components/text_prompt/text_prompt.ts +1 -1
- package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
- package/front_end/ui/components/tooltips/tooltip.css +1 -1
- package/front_end/ui/components/tooltips/tooltips.ts +1 -1
- package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
- package/front_end/ui/components/tree_outline/TreeOutlineUtils.ts +1 -1
- package/front_end/ui/components/tree_outline/treeOutline.css +1 -1
- package/front_end/ui/components/tree_outline/tree_outline.ts +1 -1
- package/front_end/ui/components/visibility.gni +1 -1
- package/front_end/ui/legacy/ARIAUtils.ts +1 -1
- package/front_end/ui/legacy/ActionRegistration.ts +10 -10
- package/front_end/ui/legacy/ActionRegistry.ts +1 -1
- package/front_end/ui/legacy/Context.ts +1 -1
- package/front_end/ui/legacy/ContextFlavorListener.ts +1 -1
- package/front_end/ui/legacy/ContextMenu.ts +3 -29
- package/front_end/ui/legacy/Dialog.ts +3 -29
- package/front_end/ui/legacy/DockController.ts +21 -47
- package/front_end/ui/legacy/DropTarget.ts +1 -1
- package/front_end/ui/legacy/EmptyWidget.ts +3 -29
- package/front_end/ui/legacy/FilterBar.ts +10 -36
- package/front_end/ui/legacy/FilterSuggestionBuilder.ts +1 -1
- package/front_end/ui/legacy/ForwardedInputEventHandler.ts +1 -1
- package/front_end/ui/legacy/Fragment.ts +5 -5
- package/front_end/ui/legacy/GlassPane.ts +13 -13
- package/front_end/ui/legacy/Infobar.ts +1 -1
- package/front_end/ui/legacy/InplaceEditor.ts +1 -1
- package/front_end/ui/legacy/InspectorView.ts +8 -44
- package/front_end/ui/legacy/KeyboardShortcut.ts +1 -1
- package/front_end/ui/legacy/ListControl.ts +28 -28
- package/front_end/ui/legacy/ListModel.ts +1 -1
- package/front_end/ui/legacy/ListWidget.ts +5 -5
- package/front_end/ui/legacy/Panel.ts +1 -1
- package/front_end/ui/legacy/PopoverHelper.ts +7 -33
- package/front_end/ui/legacy/ProgressIndicator.ts +3 -29
- package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +1 -1
- package/front_end/ui/legacy/ReportView.ts +1 -1
- package/front_end/ui/legacy/ResizerWidget.ts +1 -1
- package/front_end/ui/legacy/RootView.ts +1 -1
- package/front_end/ui/legacy/SearchableView.ts +1 -1
- package/front_end/ui/legacy/SettingsUI.ts +3 -29
- package/front_end/ui/legacy/ShortcutRegistry.ts +18 -18
- package/front_end/ui/legacy/SoftContextMenu.ts +7 -30
- package/front_end/ui/legacy/SoftDropDown.ts +1 -1
- package/front_end/ui/legacy/SplitWidget.ts +3 -29
- package/front_end/ui/legacy/SuggestBox.ts +3 -29
- package/front_end/ui/legacy/TabbedPane.ts +90 -121
- package/front_end/ui/legacy/TargetCrashedScreen.ts +1 -1
- package/front_end/ui/legacy/TextPrompt.ts +32 -32
- package/front_end/ui/legacy/ThrottledWidget.ts +1 -1
- package/front_end/ui/legacy/Toolbar.ts +21 -44
- package/front_end/ui/legacy/Tooltip.ts +1 -1
- package/front_end/ui/legacy/Treeoutline.ts +1 -1
- package/front_end/ui/legacy/UIUtils.ts +1 -8
- package/front_end/ui/legacy/View.ts +1 -1
- package/front_end/ui/legacy/ViewManager.ts +31 -32
- package/front_end/ui/legacy/ViewRegistration.ts +1 -1
- package/front_end/ui/legacy/Widget.ts +7 -7
- package/front_end/ui/legacy/XElement.ts +1 -1
- package/front_end/ui/legacy/XLink.ts +10 -10
- package/front_end/ui/legacy/XWidget.ts +1 -1
- package/front_end/ui/legacy/ZoomManager.ts +10 -10
- package/front_end/ui/legacy/checkboxTextLabel.css +1 -1
- package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +28 -28
- package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +31 -33
- package/front_end/ui/legacy/components/color_picker/ContrastOverlay.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +16 -16
- package/front_end/ui/legacy/components/color_picker/color_picker.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/spectrum.css +1 -1
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -1
- package/front_end/ui/legacy/components/cookie_table/cookie_table.ts +1 -1
- package/front_end/ui/legacy/components/cookie_table/cookiesTable.css +2 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -65
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +5 -31
- package/front_end/ui/legacy/components/data_grid/SortableDataGrid.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +1 -1
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/BezierUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngleSwatch.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngleUtils.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/FontEditorUnitConverter.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/FontEditorUtils.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/InlineEditorUtils.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/Swatches.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/animationNameSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/bezierEditor.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/colorMixSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/colorSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssAngle.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssAngleEditor.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssAngleSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssShadowEditor.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssShadowSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/fontEditor.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/inline_editor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/linkSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/swatchPopover.css +1 -1
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +3 -29
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +11 -12
- package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/customPreviewComponent.css +1 -1
- package/front_end/ui/legacy/components/object_ui/objectPopover.css +1 -1
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +1 -1
- package/front_end/ui/legacy/components/object_ui/objectValue.css +1 -1
- package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/object_ui.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/CanvasHelper.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +13 -13
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
- package/front_end/ui/legacy/components/perf_ui/Font.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/GCActionDelegate.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/LiveHeapProfile.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +3 -29
- package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +15 -15
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +11 -37
- package/front_end/ui/legacy/components/perf_ui/chartViewport.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/filmStripView.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/flameChart.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/overviewGrid.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/perf_ui.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/pieChart.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/timelineGrid.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/timelineOverviewInfo.css +1 -1
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +6 -6
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
- package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +1 -1
- package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +1 -1
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +1 -1
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +1 -1
- package/front_end/ui/legacy/components/quick_open/quick_open.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +3 -29
- package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +5 -5
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -29
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/fontView.css +1 -1
- package/front_end/ui/legacy/components/source_frame/imageView.css +1 -1
- package/front_end/ui/legacy/components/source_frame/jsonView.css +1 -1
- package/front_end/ui/legacy/components/source_frame/resourceSourceFrame.css +1 -1
- package/front_end/ui/legacy/components/source_frame/source_frame-meta.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/source_frame.ts +1 -1
- package/front_end/ui/legacy/components/source_frame/xmlTree.css +1 -1
- package/front_end/ui/legacy/components/source_frame/xmlView.css +1 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -1
- package/front_end/ui/legacy/components/utils/Linkifier.ts +3 -29
- package/front_end/ui/legacy/components/utils/Reload.ts +1 -1
- package/front_end/ui/legacy/components/utils/TargetDetachedDialog.ts +1 -1
- package/front_end/ui/legacy/components/utils/imagePreview.css +1 -1
- package/front_end/ui/legacy/components/utils/jsUtils.css +1 -1
- package/front_end/ui/legacy/components/utils/utils.ts +1 -1
- package/front_end/ui/legacy/confirmDialog.css +1 -1
- package/front_end/ui/legacy/dialog.css +1 -1
- package/front_end/ui/legacy/dropTarget.css +1 -1
- package/front_end/ui/legacy/emptyWidget.css +1 -1
- package/front_end/ui/legacy/filter.css +3 -27
- package/front_end/ui/legacy/glassPane.css +1 -1
- package/front_end/ui/legacy/infobar.css +1 -1
- package/front_end/ui/legacy/inlineButton.css +1 -1
- package/front_end/ui/legacy/inspectorCommon.css +1 -1
- package/front_end/ui/legacy/legacy.ts +1 -1
- package/front_end/ui/legacy/listWidget.css +1 -1
- package/front_end/ui/legacy/popover.css +1 -1
- package/front_end/ui/legacy/progressIndicator.css +1 -1
- package/front_end/ui/legacy/remoteDebuggingTerminatedScreen.css +1 -1
- package/front_end/ui/legacy/reportView.css +1 -1
- package/front_end/ui/legacy/rootView.css +1 -1
- package/front_end/ui/legacy/searchableView.css +1 -1
- package/front_end/ui/legacy/smallBubble.css +1 -1
- package/front_end/ui/legacy/softContextMenu.css +1 -1
- package/front_end/ui/legacy/softDropDown.css +1 -1
- package/front_end/ui/legacy/softDropDownButton.css +1 -1
- package/front_end/ui/legacy/suggestBox.css +3 -27
- package/front_end/ui/legacy/targetCrashedScreen.css +1 -1
- package/front_end/ui/legacy/textPrompt.css +1 -1
- package/front_end/ui/legacy/theme_support/ThemeSupport.ts +5 -5
- package/front_end/ui/legacy/theme_support/theme_support.ts +1 -1
- package/front_end/ui/legacy/toolbar.css +1 -1
- package/front_end/ui/legacy/treeoutline.css +1 -1
- package/front_end/ui/legacy/viewContainers.css +1 -1
- package/front_end/ui/legacy/visibility.gni +1 -1
- package/front_end/ui/lit/i18n-template.ts +1 -1
- package/front_end/ui/lit/lit.ts +1 -1
- package/front_end/ui/lit/strip-whitespace.ts +1 -1
- package/front_end/ui/lit/visibility.gni +1 -1
- package/front_end/ui/visual_logging/Debugging.ts +1 -1
- package/front_end/ui/visual_logging/DomState.ts +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +5 -3
- package/front_end/ui/visual_logging/Loggable.ts +1 -1
- package/front_end/ui/visual_logging/LoggingConfig.ts +1 -1
- package/front_end/ui/visual_logging/LoggingDriver.ts +1 -1
- package/front_end/ui/visual_logging/LoggingEvents.ts +1 -1
- package/front_end/ui/visual_logging/LoggingState.ts +1 -1
- package/front_end/ui/visual_logging/NonDomState.ts +1 -1
- package/front_end/ui/visual_logging/visual_logging-testing.ts +1 -1
- package/front_end/ui/visual_logging/visual_logging.ts +1 -1
- package/front_end/visibility.gni +1 -1
- package/inspector_overlay/common.css +1 -1
- package/inspector_overlay/common.ts +1 -1
- package/inspector_overlay/css_grid_label_helpers.ts +1 -1
- package/inspector_overlay/debug/main.html +1 -1
- package/inspector_overlay/debug/tool_highlight_bottom_arrow.html +1 -1
- package/inspector_overlay/debug/tool_highlight_explicit_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex_alignment.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex_baseline.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex_gap.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex_item_base_size.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex_multiple.html +1 -1
- package/inspector_overlay/debug/tool_highlight_flex_transformed.html +1 -1
- package/inspector_overlay/debug/tool_highlight_fullpage_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_grid_multiple.html +1 -1
- package/inspector_overlay/debug/tool_highlight_grid_rtl.html +1 -1
- package/inspector_overlay/debug/tool_highlight_grid_sizes.html +1 -1
- package/inspector_overlay/debug/tool_highlight_grid_transformed.html +1 -1
- package/inspector_overlay/debug/tool_highlight_grid_vertical.html +1 -1
- package/inspector_overlay/debug/tool_highlight_huge_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_implicit_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_named_areas_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_named_lines_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_narrow_tracks_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_rulers.html +1 -1
- package/inspector_overlay/debug/tool_highlight_subpixel_grid.html +1 -1
- package/inspector_overlay/debug/tool_highlight_top_arrow.html +1 -1
- package/inspector_overlay/debug/tool_highlight_with_persistent_grid.html +1 -1
- package/inspector_overlay/debug/tool_paused.html +1 -1
- package/inspector_overlay/debug/tool_persistent_flex.html +1 -3
- package/inspector_overlay/debug/tool_persistent_isolated_element.html +1 -5
- package/inspector_overlay/debug/tool_persistent_scroll_snap.html +1 -5
- package/inspector_overlay/debug/tool_screenshot.html +1 -1
- package/inspector_overlay/debug/tool_source_order.html +1 -1
- package/inspector_overlay/debug/tool_viewport_size.html +1 -1
- package/inspector_overlay/debug/tool_window_controls.html +2 -2
- package/inspector_overlay/debug/tool_window_controls_overlay.html +2 -2
- package/inspector_overlay/drag_resize_handler.ts +1 -1
- package/inspector_overlay/highlight_common.ts +1 -1
- package/inspector_overlay/highlight_container_query.ts +1 -1
- package/inspector_overlay/highlight_flex_common.ts +1 -1
- package/inspector_overlay/highlight_grid_common.ts +1 -1
- package/inspector_overlay/highlight_isolated_element.ts +1 -1
- package/inspector_overlay/highlight_scroll_snap.ts +1 -1
- package/inspector_overlay/loadCSS.rollup.js +1 -1
- package/inspector_overlay/main.ts +1 -1
- package/inspector_overlay/testing/InspectorOverlayHelpers.ts +1 -1
- package/inspector_overlay/tool_grid.css +1 -1
- package/inspector_overlay/tool_highlight.css +1 -1
- package/inspector_overlay/tool_highlight.ts +1 -1
- package/inspector_overlay/tool_paused.css +1 -1
- package/inspector_overlay/tool_paused.ts +1 -1
- package/inspector_overlay/tool_persistent.ts +1 -1
- package/inspector_overlay/tool_screenshot.css +1 -1
- package/inspector_overlay/tool_screenshot.ts +1 -1
- package/inspector_overlay/tool_source_order.css +1 -1
- package/inspector_overlay/tool_source_order.ts +1 -1
- package/inspector_overlay/tool_viewport_size.ts +1 -1
- package/inspector_overlay/tool_window_controls.css +1 -1
- package/inspector_overlay/tool_window_controls.ts +1 -1
- package/package.json +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/AriaQueryHandler.d.ts.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/AriaQueryHandler.js.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/AriaQueryHandler.d.ts.map +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/AriaQueryHandler.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"markdown.js","sources":["../node_modules/@lezer/markdown/dist/index.js","../node_modules/@codemirror/lang-markdown/dist/index.js"],"sourcesContent":["import { NodeType, NodeProp, NodeSet, Tree, Parser, parseMixed } from '@lezer/common';\nimport { styleTags, tags, Tag } from '@lezer/highlight';\n\nclass CompositeBlock {\n static create(type, value, from, parentHash, end) {\n let hash = (parentHash + (parentHash << 8) + type + (value << 4)) | 0;\n return new CompositeBlock(type, value, from, hash, end, [], []);\n }\n constructor(type, \n // Used for indentation in list items, markup character in lists\n value, from, hash, end, children, positions) {\n this.type = type;\n this.value = value;\n this.from = from;\n this.hash = hash;\n this.end = end;\n this.children = children;\n this.positions = positions;\n this.hashProp = [[NodeProp.contextHash, hash]];\n }\n addChild(child, pos) {\n if (child.prop(NodeProp.contextHash) != this.hash)\n child = new Tree(child.type, child.children, child.positions, child.length, this.hashProp);\n this.children.push(child);\n this.positions.push(pos);\n }\n toTree(nodeSet, end = this.end) {\n let last = this.children.length - 1;\n if (last >= 0)\n end = Math.max(end, this.positions[last] + this.children[last].length + this.from);\n return new Tree(nodeSet.types[this.type], this.children, this.positions, end - this.from).balance({\n makeTree: (children, positions, length) => new Tree(NodeType.none, children, positions, length, this.hashProp)\n });\n }\n}\nvar Type;\n(function (Type) {\n Type[Type[\"Document\"] = 1] = \"Document\";\n Type[Type[\"CodeBlock\"] = 2] = \"CodeBlock\";\n Type[Type[\"FencedCode\"] = 3] = \"FencedCode\";\n Type[Type[\"Blockquote\"] = 4] = \"Blockquote\";\n Type[Type[\"HorizontalRule\"] = 5] = \"HorizontalRule\";\n Type[Type[\"BulletList\"] = 6] = \"BulletList\";\n Type[Type[\"OrderedList\"] = 7] = \"OrderedList\";\n Type[Type[\"ListItem\"] = 8] = \"ListItem\";\n Type[Type[\"ATXHeading1\"] = 9] = \"ATXHeading1\";\n Type[Type[\"ATXHeading2\"] = 10] = \"ATXHeading2\";\n Type[Type[\"ATXHeading3\"] = 11] = \"ATXHeading3\";\n Type[Type[\"ATXHeading4\"] = 12] = \"ATXHeading4\";\n Type[Type[\"ATXHeading5\"] = 13] = \"ATXHeading5\";\n Type[Type[\"ATXHeading6\"] = 14] = \"ATXHeading6\";\n Type[Type[\"SetextHeading1\"] = 15] = \"SetextHeading1\";\n Type[Type[\"SetextHeading2\"] = 16] = \"SetextHeading2\";\n Type[Type[\"HTMLBlock\"] = 17] = \"HTMLBlock\";\n Type[Type[\"LinkReference\"] = 18] = \"LinkReference\";\n Type[Type[\"Paragraph\"] = 19] = \"Paragraph\";\n Type[Type[\"CommentBlock\"] = 20] = \"CommentBlock\";\n Type[Type[\"ProcessingInstructionBlock\"] = 21] = \"ProcessingInstructionBlock\";\n // Inline\n Type[Type[\"Escape\"] = 22] = \"Escape\";\n Type[Type[\"Entity\"] = 23] = \"Entity\";\n Type[Type[\"HardBreak\"] = 24] = \"HardBreak\";\n Type[Type[\"Emphasis\"] = 25] = \"Emphasis\";\n Type[Type[\"StrongEmphasis\"] = 26] = \"StrongEmphasis\";\n Type[Type[\"Link\"] = 27] = \"Link\";\n Type[Type[\"Image\"] = 28] = \"Image\";\n Type[Type[\"InlineCode\"] = 29] = \"InlineCode\";\n Type[Type[\"HTMLTag\"] = 30] = \"HTMLTag\";\n Type[Type[\"Comment\"] = 31] = \"Comment\";\n Type[Type[\"ProcessingInstruction\"] = 32] = \"ProcessingInstruction\";\n Type[Type[\"Autolink\"] = 33] = \"Autolink\";\n // Smaller tokens\n Type[Type[\"HeaderMark\"] = 34] = \"HeaderMark\";\n Type[Type[\"QuoteMark\"] = 35] = \"QuoteMark\";\n Type[Type[\"ListMark\"] = 36] = \"ListMark\";\n Type[Type[\"LinkMark\"] = 37] = \"LinkMark\";\n Type[Type[\"EmphasisMark\"] = 38] = \"EmphasisMark\";\n Type[Type[\"CodeMark\"] = 39] = \"CodeMark\";\n Type[Type[\"CodeText\"] = 40] = \"CodeText\";\n Type[Type[\"CodeInfo\"] = 41] = \"CodeInfo\";\n Type[Type[\"LinkTitle\"] = 42] = \"LinkTitle\";\n Type[Type[\"LinkLabel\"] = 43] = \"LinkLabel\";\n Type[Type[\"URL\"] = 44] = \"URL\";\n})(Type || (Type = {}));\n/**\nData structure used to accumulate a block's content during [leaf\nblock parsing](#BlockParser.leaf).\n*/\nclass LeafBlock {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the block.\n */\n start, \n /**\n The block's text content.\n */\n content) {\n this.start = start;\n this.content = content;\n /**\n @internal\n */\n this.marks = [];\n /**\n The block parsers active for this block.\n */\n this.parsers = [];\n }\n}\n/**\nData structure used during block-level per-line parsing.\n*/\nclass Line {\n constructor() {\n /**\n The line's full text.\n */\n this.text = \"\";\n /**\n The base indent provided by the composite contexts (that have\n been handled so far).\n */\n this.baseIndent = 0;\n /**\n The string position corresponding to the base indent.\n */\n this.basePos = 0;\n /**\n The number of contexts handled @internal\n */\n this.depth = 0;\n /**\n Any markers (i.e. block quote markers) parsed for the contexts. @internal\n */\n this.markers = [];\n /**\n The position of the next non-whitespace character beyond any\n list, blockquote, or other composite block markers.\n */\n this.pos = 0;\n /**\n The column of the next non-whitespace character.\n */\n this.indent = 0;\n /**\n The character code of the character after `pos`.\n */\n this.next = -1;\n }\n /**\n @internal\n */\n forward() {\n if (this.basePos > this.pos)\n this.forwardInner();\n }\n /**\n @internal\n */\n forwardInner() {\n let newPos = this.skipSpace(this.basePos);\n this.indent = this.countIndent(newPos, this.pos, this.indent);\n this.pos = newPos;\n this.next = newPos == this.text.length ? -1 : this.text.charCodeAt(newPos);\n }\n /**\n Skip whitespace after the given position, return the position of\n the next non-space character or the end of the line if there's\n only space after `from`.\n */\n skipSpace(from) { return skipSpace(this.text, from); }\n /**\n @internal\n */\n reset(text) {\n this.text = text;\n this.baseIndent = this.basePos = this.pos = this.indent = 0;\n this.forwardInner();\n this.depth = 1;\n while (this.markers.length)\n this.markers.pop();\n }\n /**\n Move the line's base position forward to the given position.\n This should only be called by composite [block\n parsers](#BlockParser.parse) or [markup skipping\n functions](#NodeSpec.composite).\n */\n moveBase(to) {\n this.basePos = to;\n this.baseIndent = this.countIndent(to, this.pos, this.indent);\n }\n /**\n Move the line's base position forward to the given _column_.\n */\n moveBaseColumn(indent) {\n this.baseIndent = indent;\n this.basePos = this.findColumn(indent);\n }\n /**\n Store a composite-block-level marker. Should be called from\n [markup skipping functions](#NodeSpec.composite) when they\n consume any non-whitespace characters.\n */\n addMarker(elt) {\n this.markers.push(elt);\n }\n /**\n Find the column position at `to`, optionally starting at a given\n position and column.\n */\n countIndent(to, from = 0, indent = 0) {\n for (let i = from; i < to; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return indent;\n }\n /**\n Find the position corresponding to the given column.\n */\n findColumn(goal) {\n let i = 0;\n for (let indent = 0; i < this.text.length && indent < goal; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return i;\n }\n /**\n @internal\n */\n scrub() {\n if (!this.baseIndent)\n return this.text;\n let result = \"\";\n for (let i = 0; i < this.basePos; i++)\n result += \" \";\n return result + this.text.slice(this.basePos);\n }\n}\nfunction skipForList(bl, cx, line) {\n if (line.pos == line.text.length ||\n (bl != cx.block && line.indent >= cx.stack[line.depth + 1].value + line.baseIndent))\n return true;\n if (line.indent >= line.baseIndent + 4)\n return false;\n let size = (bl.type == Type.OrderedList ? isOrderedList : isBulletList)(line, cx, false);\n return size > 0 &&\n (bl.type != Type.BulletList || isHorizontalRule(line, cx, false) < 0) &&\n line.text.charCodeAt(line.pos + size - 1) == bl.value;\n}\nconst DefaultSkipMarkup = {\n [Type.Blockquote](bl, cx, line) {\n if (line.next != 62 /* '>' */)\n return false;\n line.markers.push(elt(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1));\n line.moveBase(line.pos + (space(line.text.charCodeAt(line.pos + 1)) ? 2 : 1));\n bl.end = cx.lineStart + line.text.length;\n return true;\n },\n [Type.ListItem](bl, _cx, line) {\n if (line.indent < line.baseIndent + bl.value && line.next > -1)\n return false;\n line.moveBaseColumn(line.baseIndent + bl.value);\n return true;\n },\n [Type.OrderedList]: skipForList,\n [Type.BulletList]: skipForList,\n [Type.Document]() { return true; }\n};\nfunction space(ch) { return ch == 32 || ch == 9 || ch == 10 || ch == 13; }\nfunction skipSpace(line, i = 0) {\n while (i < line.length && space(line.charCodeAt(i)))\n i++;\n return i;\n}\nfunction skipSpaceBack(line, i, to) {\n while (i > to && space(line.charCodeAt(i - 1)))\n i--;\n return i;\n}\nfunction isFencedCode(line) {\n if (line.next != 96 && line.next != 126 /* '`~' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n if (pos < line.pos + 3)\n return -1;\n if (line.next == 96)\n for (let i = pos; i < line.text.length; i++)\n if (line.text.charCodeAt(i) == 96)\n return -1;\n return pos;\n}\nfunction isBlockquote(line) {\n return line.next != 62 /* '>' */ ? -1 : line.text.charCodeAt(line.pos + 1) == 32 ? 2 : 1;\n}\nfunction isHorizontalRule(line, cx, breaking) {\n if (line.next != 42 && line.next != 45 && line.next != 95 /* '_-*' */)\n return -1;\n let count = 1;\n for (let pos = line.pos + 1; pos < line.text.length; pos++) {\n let ch = line.text.charCodeAt(pos);\n if (ch == line.next)\n count++;\n else if (!space(ch))\n return -1;\n }\n // Setext headers take precedence\n if (breaking && line.next == 45 && isSetextUnderline(line) > -1 && line.depth == cx.stack.length &&\n cx.parser.leafBlockParsers.indexOf(DefaultLeafBlocks.SetextHeading) > -1)\n return -1;\n return count < 3 ? -1 : 1;\n}\nfunction inList(cx, type) {\n for (let i = cx.stack.length - 1; i >= 0; i--)\n if (cx.stack[i].type == type)\n return true;\n return false;\n}\nfunction isBulletList(line, cx, breaking) {\n return (line.next == 45 || line.next == 43 || line.next == 42 /* '-+*' */) &&\n (line.pos == line.text.length - 1 || space(line.text.charCodeAt(line.pos + 1))) &&\n (!breaking || inList(cx, Type.BulletList) || line.skipSpace(line.pos + 2) < line.text.length) ? 1 : -1;\n}\nfunction isOrderedList(line, cx, breaking) {\n let pos = line.pos, next = line.next;\n for (;;) {\n if (next >= 48 && next <= 57 /* '0-9' */)\n pos++;\n else\n break;\n if (pos == line.text.length)\n return -1;\n next = line.text.charCodeAt(pos);\n }\n if (pos == line.pos || pos > line.pos + 9 ||\n (next != 46 && next != 41 /* '.)' */) ||\n (pos < line.text.length - 1 && !space(line.text.charCodeAt(pos + 1))) ||\n breaking && !inList(cx, Type.OrderedList) &&\n (line.skipSpace(pos + 1) == line.text.length || pos > line.pos + 1 || line.next != 49 /* '1' */))\n return -1;\n return pos + 1 - line.pos;\n}\nfunction isAtxHeading(line) {\n if (line.next != 35 /* '#' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == 35)\n pos++;\n if (pos < line.text.length && line.text.charCodeAt(pos) != 32)\n return -1;\n let size = pos - line.pos;\n return size > 6 ? -1 : size;\n}\nfunction isSetextUnderline(line) {\n if (line.next != 45 && line.next != 61 /* '-=' */ || line.indent >= line.baseIndent + 4)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n let end = pos;\n while (pos < line.text.length && space(line.text.charCodeAt(pos)))\n pos++;\n return pos == line.text.length ? end : -1;\n}\nconst EmptyLine = /^[ \\t]*$/, CommentEnd = /-->/, ProcessingEnd = /\\?>/;\nconst HTMLBlockStyle = [\n [/^<(?:script|pre|style)(?:\\s|>|$)/i, /<\\/(?:script|pre|style)>/i],\n [/^\\s*<!--/, CommentEnd],\n [/^\\s*<\\?/, ProcessingEnd],\n [/^\\s*<![A-Z]/, />/],\n [/^\\s*<!\\[CDATA\\[/, /\\]\\]>/],\n [/^\\s*<\\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|\\/?>|$)/i, EmptyLine],\n [/^\\s*(?:<\\/[a-z][\\w-]*\\s*>|<[a-z][\\w-]*(\\s+[a-z:_][\\w-.]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*>)\\s*$/i, EmptyLine]\n];\nfunction isHTMLBlock(line, _cx, breaking) {\n if (line.next != 60 /* '<' */)\n return -1;\n let rest = line.text.slice(line.pos);\n for (let i = 0, e = HTMLBlockStyle.length - (breaking ? 1 : 0); i < e; i++)\n if (HTMLBlockStyle[i][0].test(rest))\n return i;\n return -1;\n}\nfunction getListIndent(line, pos) {\n let indentAfter = line.countIndent(pos, line.pos, line.indent);\n let indented = line.countIndent(line.skipSpace(pos), pos, indentAfter);\n return indented >= indentAfter + 5 ? indentAfter + 1 : indented;\n}\nfunction addCodeText(marks, from, to) {\n let last = marks.length - 1;\n if (last >= 0 && marks[last].to == from && marks[last].type == Type.CodeText)\n marks[last].to = to;\n else\n marks.push(elt(Type.CodeText, from, to));\n}\n// Rules for parsing blocks. A return value of false means the rule\n// doesn't apply here, true means it does. When true is returned and\n// `p.line` has been updated, the rule is assumed to have consumed a\n// leaf block. Otherwise, it is assumed to have opened a context.\nconst DefaultBlockParsers = {\n LinkReference: undefined,\n IndentedCode(cx, line) {\n let base = line.baseIndent + 4;\n if (line.indent < base)\n return false;\n let start = line.findColumn(base);\n let from = cx.lineStart + start, to = cx.lineStart + line.text.length;\n let marks = [], pendingMarks = [];\n addCodeText(marks, from, to);\n while (cx.nextLine() && line.depth >= cx.stack.length) {\n if (line.pos == line.text.length) { // Empty\n addCodeText(pendingMarks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n pendingMarks.push(m);\n }\n else if (line.indent < base) {\n break;\n }\n else {\n if (pendingMarks.length) {\n for (let m of pendingMarks) {\n if (m.type == Type.CodeText)\n addCodeText(marks, m.from, m.to);\n else\n marks.push(m);\n }\n pendingMarks = [];\n }\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n to = cx.lineStart + line.text.length;\n let codeStart = cx.lineStart + line.findColumn(line.baseIndent + 4);\n if (codeStart < to)\n addCodeText(marks, codeStart, to);\n }\n }\n if (pendingMarks.length) {\n pendingMarks = pendingMarks.filter(m => m.type != Type.CodeText);\n if (pendingMarks.length)\n line.markers = pendingMarks.concat(line.markers);\n }\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(Type.CodeBlock, to - from), from);\n return true;\n },\n FencedCode(cx, line) {\n let fenceEnd = isFencedCode(line);\n if (fenceEnd < 0)\n return false;\n let from = cx.lineStart + line.pos, ch = line.next, len = fenceEnd - line.pos;\n let infoFrom = line.skipSpace(fenceEnd), infoTo = skipSpaceBack(line.text, line.text.length, infoFrom);\n let marks = [elt(Type.CodeMark, from, from + len)];\n if (infoFrom < infoTo)\n marks.push(elt(Type.CodeInfo, cx.lineStart + infoFrom, cx.lineStart + infoTo));\n for (let first = true; cx.nextLine() && line.depth >= cx.stack.length; first = false) {\n let i = line.pos;\n if (line.indent - line.baseIndent < 4)\n while (i < line.text.length && line.text.charCodeAt(i) == ch)\n i++;\n if (i - line.pos >= len && line.skipSpace(i) == line.text.length) {\n for (let m of line.markers)\n marks.push(m);\n marks.push(elt(Type.CodeMark, cx.lineStart + line.pos, cx.lineStart + i));\n cx.nextLine();\n break;\n }\n else {\n if (!first)\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n let textStart = cx.lineStart + line.basePos, textEnd = cx.lineStart + line.text.length;\n if (textStart < textEnd)\n addCodeText(marks, textStart, textEnd);\n }\n }\n cx.addNode(cx.buffer.writeElements(marks, -from)\n .finish(Type.FencedCode, cx.prevLineEnd() - from), from);\n return true;\n },\n Blockquote(cx, line) {\n let size = isBlockquote(line);\n if (size < 0)\n return false;\n cx.startContext(Type.Blockquote, line.pos);\n cx.addNode(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1);\n line.moveBase(line.pos + size);\n return null;\n },\n HorizontalRule(cx, line) {\n if (isHorizontalRule(line, cx, false) < 0)\n return false;\n let from = cx.lineStart + line.pos;\n cx.nextLine();\n cx.addNode(Type.HorizontalRule, from);\n return true;\n },\n BulletList(cx, line) {\n let size = isBulletList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.BulletList)\n cx.startContext(Type.BulletList, line.basePos, line.next);\n let newBase = getListIndent(line, line.pos + 1);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n OrderedList(cx, line) {\n let size = isOrderedList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.OrderedList)\n cx.startContext(Type.OrderedList, line.basePos, line.text.charCodeAt(line.pos + size - 1));\n let newBase = getListIndent(line, line.pos + size);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n ATXHeading(cx, line) {\n let size = isAtxHeading(line);\n if (size < 0)\n return false;\n let off = line.pos, from = cx.lineStart + off;\n let endOfSpace = skipSpaceBack(line.text, line.text.length, off), after = endOfSpace;\n while (after > off && line.text.charCodeAt(after - 1) == line.next)\n after--;\n if (after == endOfSpace || after == off || !space(line.text.charCodeAt(after - 1)))\n after = line.text.length;\n let buf = cx.buffer\n .write(Type.HeaderMark, 0, size)\n .writeElements(cx.parser.parseInline(line.text.slice(off + size + 1, after), from + size + 1), -from);\n if (after < line.text.length)\n buf.write(Type.HeaderMark, after - off, endOfSpace - off);\n let node = buf.finish(Type.ATXHeading1 - 1 + size, line.text.length - off);\n cx.nextLine();\n cx.addNode(node, from);\n return true;\n },\n HTMLBlock(cx, line) {\n let type = isHTMLBlock(line, cx, false);\n if (type < 0)\n return false;\n let from = cx.lineStart + line.pos, end = HTMLBlockStyle[type][1];\n let marks = [], trailing = end != EmptyLine;\n while (!end.test(line.text) && cx.nextLine()) {\n if (line.depth < cx.stack.length) {\n trailing = false;\n break;\n }\n for (let m of line.markers)\n marks.push(m);\n }\n if (trailing)\n cx.nextLine();\n let nodeType = end == CommentEnd ? Type.CommentBlock : end == ProcessingEnd ? Type.ProcessingInstructionBlock : Type.HTMLBlock;\n let to = cx.prevLineEnd();\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(nodeType, to - from), from);\n return true;\n },\n SetextHeading: undefined // Specifies relative precedence for block-continue function\n};\n// This implements a state machine that incrementally parses link references. At each\n// next line, it looks ahead to see if the line continues the reference or not. If it\n// doesn't and a valid link is available ending before that line, it finishes that.\n// Similarly, on `finish` (when the leaf is terminated by external circumstances), it\n// creates a link reference if there's a valid reference up to the current point.\nclass LinkReferenceParser {\n constructor(leaf) {\n this.stage = 0 /* RefStage.Start */;\n this.elts = [];\n this.pos = 0;\n this.start = leaf.start;\n this.advance(leaf.content);\n }\n nextLine(cx, line, leaf) {\n if (this.stage == -1 /* RefStage.Failed */)\n return false;\n let content = leaf.content + \"\\n\" + line.scrub();\n let finish = this.advance(content);\n if (finish > -1 && finish < content.length)\n return this.complete(cx, leaf, finish);\n return false;\n }\n finish(cx, leaf) {\n if ((this.stage == 2 /* RefStage.Link */ || this.stage == 3 /* RefStage.Title */) && skipSpace(leaf.content, this.pos) == leaf.content.length)\n return this.complete(cx, leaf, leaf.content.length);\n return false;\n }\n complete(cx, leaf, len) {\n cx.addLeafElement(leaf, elt(Type.LinkReference, this.start, this.start + len, this.elts));\n return true;\n }\n nextStage(elt) {\n if (elt) {\n this.pos = elt.to - this.start;\n this.elts.push(elt);\n this.stage++;\n return true;\n }\n if (elt === false)\n this.stage = -1 /* RefStage.Failed */;\n return false;\n }\n advance(content) {\n for (;;) {\n if (this.stage == -1 /* RefStage.Failed */) {\n return -1;\n }\n else if (this.stage == 0 /* RefStage.Start */) {\n if (!this.nextStage(parseLinkLabel(content, this.pos, this.start, true)))\n return -1;\n if (content.charCodeAt(this.pos) != 58 /* ':' */)\n return this.stage = -1 /* RefStage.Failed */;\n this.elts.push(elt(Type.LinkMark, this.pos + this.start, this.pos + this.start + 1));\n this.pos++;\n }\n else if (this.stage == 1 /* RefStage.Label */) {\n if (!this.nextStage(parseURL(content, skipSpace(content, this.pos), this.start)))\n return -1;\n }\n else if (this.stage == 2 /* RefStage.Link */) {\n let skip = skipSpace(content, this.pos), end = 0;\n if (skip > this.pos) {\n let title = parseLinkTitle(content, skip, this.start);\n if (title) {\n let titleEnd = lineEnd(content, title.to - this.start);\n if (titleEnd > 0) {\n this.nextStage(title);\n end = titleEnd;\n }\n }\n }\n if (!end)\n end = lineEnd(content, this.pos);\n return end > 0 && end < content.length ? end : -1;\n }\n else { // RefStage.Title\n return lineEnd(content, this.pos);\n }\n }\n }\n}\nfunction lineEnd(text, pos) {\n for (; pos < text.length; pos++) {\n let next = text.charCodeAt(pos);\n if (next == 10)\n break;\n if (!space(next))\n return -1;\n }\n return pos;\n}\nclass SetextHeadingParser {\n nextLine(cx, line, leaf) {\n let underline = line.depth < cx.stack.length ? -1 : isSetextUnderline(line);\n let next = line.next;\n if (underline < 0)\n return false;\n let underlineMark = elt(Type.HeaderMark, cx.lineStart + line.pos, cx.lineStart + underline);\n cx.nextLine();\n cx.addLeafElement(leaf, elt(next == 61 ? Type.SetextHeading1 : Type.SetextHeading2, leaf.start, cx.prevLineEnd(), [\n ...cx.parser.parseInline(leaf.content, leaf.start),\n underlineMark\n ]));\n return true;\n }\n finish() {\n return false;\n }\n}\nconst DefaultLeafBlocks = {\n LinkReference(_, leaf) { return leaf.content.charCodeAt(0) == 91 /* '[' */ ? new LinkReferenceParser(leaf) : null; },\n SetextHeading() { return new SetextHeadingParser; }\n};\nconst DefaultEndLeaf = [\n (_, line) => isAtxHeading(line) >= 0,\n (_, line) => isFencedCode(line) >= 0,\n (_, line) => isBlockquote(line) >= 0,\n (p, line) => isBulletList(line, p, true) >= 0,\n (p, line) => isOrderedList(line, p, true) >= 0,\n (p, line) => isHorizontalRule(line, p, true) >= 0,\n (p, line) => isHTMLBlock(line, p, true) >= 0\n];\nconst scanLineResult = { text: \"\", end: 0 };\n/**\nBlock-level parsing functions get access to this context object.\n*/\nclass BlockContext {\n /**\n @internal\n */\n constructor(\n /**\n The parser configuration used.\n */\n parser, \n /**\n @internal\n */\n input, fragments, \n /**\n @internal\n */\n ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.line = new Line();\n this.atEnd = false;\n /**\n For reused nodes on gaps, we can't directly put the original\n node into the tree, since that may be bigger than its parent.\n When this happens, we create a dummy tree that is replaced by\n the proper node in `injectGaps` @internal\n */\n this.reusePlaceholders = new Map;\n this.stoppedAt = null;\n /**\n The range index that absoluteLineStart points into @internal\n */\n this.rangeI = 0;\n this.to = ranges[ranges.length - 1].to;\n this.lineStart = this.absoluteLineStart = this.absoluteLineEnd = ranges[0].from;\n this.block = CompositeBlock.create(Type.Document, 0, this.lineStart, 0, 0);\n this.stack = [this.block];\n this.fragments = fragments.length ? new FragmentCursor(fragments, input) : null;\n this.readLine();\n }\n get parsedPos() {\n return this.absoluteLineStart;\n }\n advance() {\n if (this.stoppedAt != null && this.absoluteLineStart > this.stoppedAt)\n return this.finish();\n let { line } = this;\n for (;;) {\n for (let markI = 0;;) {\n let next = line.depth < this.stack.length ? this.stack[this.stack.length - 1] : null;\n while (markI < line.markers.length && (!next || line.markers[markI].from < next.end)) {\n let mark = line.markers[markI++];\n this.addNode(mark.type, mark.from, mark.to);\n }\n if (!next)\n break;\n this.finishContext();\n }\n if (line.pos < line.text.length)\n break;\n // Empty line\n if (!this.nextLine())\n return this.finish();\n }\n if (this.fragments && this.reuseFragment(line.basePos))\n return null;\n start: for (;;) {\n for (let type of this.parser.blockParsers)\n if (type) {\n let result = type(this, line);\n if (result != false) {\n if (result == true)\n return null;\n line.forward();\n continue start;\n }\n }\n break;\n }\n let leaf = new LeafBlock(this.lineStart + line.pos, line.text.slice(line.pos));\n for (let parse of this.parser.leafBlockParsers)\n if (parse) {\n let parser = parse(this, leaf);\n if (parser)\n leaf.parsers.push(parser);\n }\n lines: while (this.nextLine()) {\n if (line.pos == line.text.length)\n break;\n if (line.indent < line.baseIndent + 4) {\n for (let stop of this.parser.endLeafBlock)\n if (stop(this, line, leaf))\n break lines;\n }\n for (let parser of leaf.parsers)\n if (parser.nextLine(this, line, leaf))\n return null;\n leaf.content += \"\\n\" + line.scrub();\n for (let m of line.markers)\n leaf.marks.push(m);\n }\n this.finishLeaf(leaf);\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n reuseFragment(start) {\n if (!this.fragments.moveTo(this.absoluteLineStart + start, this.absoluteLineStart) ||\n !this.fragments.matches(this.block.hash))\n return false;\n let taken = this.fragments.takeNodes(this);\n if (!taken)\n return false;\n this.absoluteLineStart += taken;\n this.lineStart = toRelative(this.absoluteLineStart, this.ranges);\n this.moveRangeI();\n if (this.absoluteLineStart < this.to) {\n this.lineStart++;\n this.absoluteLineStart++;\n this.readLine();\n }\n else {\n this.atEnd = true;\n this.readLine();\n }\n return true;\n }\n /**\n The number of parent blocks surrounding the current block.\n */\n get depth() {\n return this.stack.length;\n }\n /**\n Get the type of the parent block at the given depth. When no\n depth is passed, return the type of the innermost parent.\n */\n parentType(depth = this.depth - 1) {\n return this.parser.nodeSet.types[this.stack[depth].type];\n }\n /**\n Move to the next input line. This should only be called by\n (non-composite) [block parsers](#BlockParser.parse) that consume\n the line directly, or leaf block parser\n [`nextLine`](#LeafBlockParser.nextLine) methods when they\n consume the current line (and return true).\n */\n nextLine() {\n this.lineStart += this.line.text.length;\n if (this.absoluteLineEnd >= this.to) {\n this.absoluteLineStart = this.absoluteLineEnd;\n this.atEnd = true;\n this.readLine();\n return false;\n }\n else {\n this.lineStart++;\n this.absoluteLineStart = this.absoluteLineEnd + 1;\n this.moveRangeI();\n this.readLine();\n return true;\n }\n }\n /**\n Retrieve the text of the line after the current one, without\n actually moving the context's current line forward.\n */\n peekLine() {\n return this.scanLine(this.absoluteLineEnd + 1).text;\n }\n moveRangeI() {\n while (this.rangeI < this.ranges.length - 1 && this.absoluteLineStart >= this.ranges[this.rangeI].to) {\n this.rangeI++;\n this.absoluteLineStart = Math.max(this.absoluteLineStart, this.ranges[this.rangeI].from);\n }\n }\n /**\n @internal\n Collect the text for the next line.\n */\n scanLine(start) {\n let r = scanLineResult;\n r.end = start;\n if (start >= this.to) {\n r.text = \"\";\n }\n else {\n r.text = this.lineChunkAt(start);\n r.end += r.text.length;\n if (this.ranges.length > 1) {\n let textOffset = this.absoluteLineStart, rangeI = this.rangeI;\n while (this.ranges[rangeI].to < r.end) {\n rangeI++;\n let nextFrom = this.ranges[rangeI].from;\n let after = this.lineChunkAt(nextFrom);\n r.end = nextFrom + after.length;\n r.text = r.text.slice(0, this.ranges[rangeI - 1].to - textOffset) + after;\n textOffset = r.end - r.text.length;\n }\n }\n }\n return r;\n }\n /**\n @internal\n Populate this.line with the content of the next line. Skip\n leading characters covered by composite blocks.\n */\n readLine() {\n let { line } = this, { text, end } = this.scanLine(this.absoluteLineStart);\n this.absoluteLineEnd = end;\n line.reset(text);\n for (; line.depth < this.stack.length; line.depth++) {\n let cx = this.stack[line.depth], handler = this.parser.skipContextMarkup[cx.type];\n if (!handler)\n throw new Error(\"Unhandled block context \" + Type[cx.type]);\n if (!handler(cx, this, line))\n break;\n line.forward();\n }\n }\n lineChunkAt(pos) {\n let next = this.input.chunk(pos), text;\n if (!this.input.lineChunks) {\n let eol = next.indexOf(\"\\n\");\n text = eol < 0 ? next : next.slice(0, eol);\n }\n else {\n text = next == \"\\n\" ? \"\" : next;\n }\n return pos + text.length > this.to ? text.slice(0, this.to - pos) : text;\n }\n /**\n The end position of the previous line.\n */\n prevLineEnd() { return this.atEnd ? this.lineStart : this.lineStart - 1; }\n /**\n @internal\n */\n startContext(type, start, value = 0) {\n this.block = CompositeBlock.create(type, value, this.lineStart + start, this.block.hash, this.lineStart + this.line.text.length);\n this.stack.push(this.block);\n }\n /**\n Start a composite block. Should only be called from [block\n parser functions](#BlockParser.parse) that return null.\n */\n startComposite(type, start, value = 0) {\n this.startContext(this.parser.getNodeType(type), start, value);\n }\n /**\n @internal\n */\n addNode(block, from, to) {\n if (typeof block == \"number\")\n block = new Tree(this.parser.nodeSet.types[block], none, none, (to !== null && to !== void 0 ? to : this.prevLineEnd()) - from);\n this.block.addChild(block, from - this.block.from);\n }\n /**\n Add a block element. Can be called by [block\n parsers](#BlockParser.parse).\n */\n addElement(elt) {\n this.block.addChild(elt.toTree(this.parser.nodeSet), elt.from - this.block.from);\n }\n /**\n Add a block element from a [leaf parser](#LeafBlockParser). This\n makes sure any extra composite block markup (such as blockquote\n markers) inside the block are also added to the syntax tree.\n */\n addLeafElement(leaf, elt) {\n this.addNode(this.buffer\n .writeElements(injectMarks(elt.children, leaf.marks), -elt.from)\n .finish(elt.type, elt.to - elt.from), elt.from);\n }\n /**\n @internal\n */\n finishContext() {\n let cx = this.stack.pop();\n let top = this.stack[this.stack.length - 1];\n top.addChild(cx.toTree(this.parser.nodeSet), cx.from - top.from);\n this.block = top;\n }\n finish() {\n while (this.stack.length > 1)\n this.finishContext();\n return this.addGaps(this.block.toTree(this.parser.nodeSet, this.lineStart));\n }\n addGaps(tree) {\n return this.ranges.length > 1 ?\n injectGaps(this.ranges, 0, tree.topNode, this.ranges[0].from, this.reusePlaceholders) : tree;\n }\n /**\n @internal\n */\n finishLeaf(leaf) {\n for (let parser of leaf.parsers)\n if (parser.finish(this, leaf))\n return;\n let inline = injectMarks(this.parser.parseInline(leaf.content, leaf.start), leaf.marks);\n this.addNode(this.buffer\n .writeElements(inline, -leaf.start)\n .finish(Type.Paragraph, leaf.content.length), leaf.start);\n }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n /**\n @internal\n */\n get buffer() { return new Buffer(this.parser.nodeSet); }\n}\nfunction injectGaps(ranges, rangeI, tree, offset, dummies) {\n let rangeEnd = ranges[rangeI].to;\n let children = [], positions = [], start = tree.from + offset;\n function movePastNext(upto, inclusive) {\n while (inclusive ? upto >= rangeEnd : upto > rangeEnd) {\n let size = ranges[rangeI + 1].from - rangeEnd;\n offset += size;\n upto += size;\n rangeI++;\n rangeEnd = ranges[rangeI].to;\n }\n }\n for (let ch = tree.firstChild; ch; ch = ch.nextSibling) {\n movePastNext(ch.from + offset, true);\n let from = ch.from + offset, node, reuse = dummies.get(ch.tree);\n if (reuse) {\n node = reuse;\n }\n else if (ch.to + offset > rangeEnd) {\n node = injectGaps(ranges, rangeI, ch, offset, dummies);\n movePastNext(ch.to + offset, false);\n }\n else {\n node = ch.toTree();\n }\n children.push(node);\n positions.push(from - start);\n }\n movePastNext(tree.to + offset, false);\n return new Tree(tree.type, children, positions, tree.to + offset - start, tree.tree ? tree.tree.propValues : undefined);\n}\n/**\nA Markdown parser configuration.\n*/\nclass MarkdownParser extends Parser {\n /**\n @internal\n */\n constructor(\n /**\n The parser's syntax [node\n types](https://lezer.codemirror.net/docs/ref/#common.NodeSet).\n */\n nodeSet, \n /**\n @internal\n */\n blockParsers, \n /**\n @internal\n */\n leafBlockParsers, \n /**\n @internal\n */\n blockNames, \n /**\n @internal\n */\n endLeafBlock, \n /**\n @internal\n */\n skipContextMarkup, \n /**\n @internal\n */\n inlineParsers, \n /**\n @internal\n */\n inlineNames, \n /**\n @internal\n */\n wrappers) {\n super();\n this.nodeSet = nodeSet;\n this.blockParsers = blockParsers;\n this.leafBlockParsers = leafBlockParsers;\n this.blockNames = blockNames;\n this.endLeafBlock = endLeafBlock;\n this.skipContextMarkup = skipContextMarkup;\n this.inlineParsers = inlineParsers;\n this.inlineNames = inlineNames;\n this.wrappers = wrappers;\n /**\n @internal\n */\n this.nodeTypes = Object.create(null);\n for (let t of nodeSet.types)\n this.nodeTypes[t.name] = t.id;\n }\n createParse(input, fragments, ranges) {\n let parse = new BlockContext(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /**\n Reconfigure the parser.\n */\n configure(spec) {\n let config = resolveConfig(spec);\n if (!config)\n return this;\n let { nodeSet, skipContextMarkup } = this;\n let blockParsers = this.blockParsers.slice(), leafBlockParsers = this.leafBlockParsers.slice(), blockNames = this.blockNames.slice(), inlineParsers = this.inlineParsers.slice(), inlineNames = this.inlineNames.slice(), endLeafBlock = this.endLeafBlock.slice(), wrappers = this.wrappers;\n if (nonEmpty(config.defineNodes)) {\n skipContextMarkup = Object.assign({}, skipContextMarkup);\n let nodeTypes = nodeSet.types.slice(), styles;\n for (let s of config.defineNodes) {\n let { name, block, composite, style } = typeof s == \"string\" ? { name: s } : s;\n if (nodeTypes.some(t => t.name == name))\n continue;\n if (composite)\n skipContextMarkup[nodeTypes.length] =\n (bl, cx, line) => composite(cx, line, bl.value);\n let id = nodeTypes.length;\n let group = composite ? [\"Block\", \"BlockContext\"] : !block ? undefined\n : id >= Type.ATXHeading1 && id <= Type.SetextHeading2 ? [\"Block\", \"LeafBlock\", \"Heading\"] : [\"Block\", \"LeafBlock\"];\n nodeTypes.push(NodeType.define({\n id,\n name,\n props: group && [[NodeProp.group, group]]\n }));\n if (style) {\n if (!styles)\n styles = {};\n if (Array.isArray(style) || style instanceof Tag)\n styles[name] = style;\n else\n Object.assign(styles, style);\n }\n }\n nodeSet = new NodeSet(nodeTypes);\n if (styles)\n nodeSet = nodeSet.extend(styleTags(styles));\n }\n if (nonEmpty(config.props))\n nodeSet = nodeSet.extend(...config.props);\n if (nonEmpty(config.remove)) {\n for (let rm of config.remove) {\n let block = this.blockNames.indexOf(rm), inline = this.inlineNames.indexOf(rm);\n if (block > -1)\n blockParsers[block] = leafBlockParsers[block] = undefined;\n if (inline > -1)\n inlineParsers[inline] = undefined;\n }\n }\n if (nonEmpty(config.parseBlock)) {\n for (let spec of config.parseBlock) {\n let found = blockNames.indexOf(spec.name);\n if (found > -1) {\n blockParsers[found] = spec.parse;\n leafBlockParsers[found] = spec.leaf;\n }\n else {\n let pos = spec.before ? findName(blockNames, spec.before)\n : spec.after ? findName(blockNames, spec.after) + 1 : blockNames.length - 1;\n blockParsers.splice(pos, 0, spec.parse);\n leafBlockParsers.splice(pos, 0, spec.leaf);\n blockNames.splice(pos, 0, spec.name);\n }\n if (spec.endLeaf)\n endLeafBlock.push(spec.endLeaf);\n }\n }\n if (nonEmpty(config.parseInline)) {\n for (let spec of config.parseInline) {\n let found = inlineNames.indexOf(spec.name);\n if (found > -1) {\n inlineParsers[found] = spec.parse;\n }\n else {\n let pos = spec.before ? findName(inlineNames, spec.before)\n : spec.after ? findName(inlineNames, spec.after) + 1 : inlineNames.length - 1;\n inlineParsers.splice(pos, 0, spec.parse);\n inlineNames.splice(pos, 0, spec.name);\n }\n }\n }\n if (config.wrap)\n wrappers = wrappers.concat(config.wrap);\n return new MarkdownParser(nodeSet, blockParsers, leafBlockParsers, blockNames, endLeafBlock, skipContextMarkup, inlineParsers, inlineNames, wrappers);\n }\n /**\n @internal\n */\n getNodeType(name) {\n let found = this.nodeTypes[name];\n if (found == null)\n throw new RangeError(`Unknown node type '${name}'`);\n return found;\n }\n /**\n Parse the given piece of inline text at the given offset,\n returning an array of [`Element`](#Element) objects representing\n the inline content.\n */\n parseInline(text, offset) {\n let cx = new InlineContext(this, text, offset);\n outer: for (let pos = offset; pos < cx.end;) {\n let next = cx.char(pos);\n for (let token of this.inlineParsers)\n if (token) {\n let result = token(cx, next, pos);\n if (result >= 0) {\n pos = result;\n continue outer;\n }\n }\n pos++;\n }\n return cx.resolveMarkers(0);\n }\n}\nfunction nonEmpty(a) {\n return a != null && a.length > 0;\n}\nfunction resolveConfig(spec) {\n if (!Array.isArray(spec))\n return spec;\n if (spec.length == 0)\n return null;\n let conf = resolveConfig(spec[0]);\n if (spec.length == 1)\n return conf;\n let rest = resolveConfig(spec.slice(1));\n if (!rest || !conf)\n return conf || rest;\n let conc = (a, b) => (a || none).concat(b || none);\n let wrapA = conf.wrap, wrapB = rest.wrap;\n return {\n props: conc(conf.props, rest.props),\n defineNodes: conc(conf.defineNodes, rest.defineNodes),\n parseBlock: conc(conf.parseBlock, rest.parseBlock),\n parseInline: conc(conf.parseInline, rest.parseInline),\n remove: conc(conf.remove, rest.remove),\n wrap: !wrapA ? wrapB : !wrapB ? wrapA :\n (inner, input, fragments, ranges) => wrapA(wrapB(inner, input, fragments, ranges), input, fragments, ranges)\n };\n}\nfunction findName(names, name) {\n let found = names.indexOf(name);\n if (found < 0)\n throw new RangeError(`Position specified relative to unknown parser ${name}`);\n return found;\n}\nlet nodeTypes = [NodeType.none];\nfor (let i = 1, name; name = Type[i]; i++) {\n nodeTypes[i] = NodeType.define({\n id: i,\n name,\n props: i >= Type.Escape ? [] : [[NodeProp.group, i in DefaultSkipMarkup ? [\"Block\", \"BlockContext\"] : [\"Block\", \"LeafBlock\"]]],\n top: name == \"Document\"\n });\n}\nconst none = [];\nclass Buffer {\n constructor(nodeSet) {\n this.nodeSet = nodeSet;\n this.content = [];\n this.nodes = [];\n }\n write(type, from, to, children = 0) {\n this.content.push(type, from, to, 4 + children * 4);\n return this;\n }\n writeElements(elts, offset = 0) {\n for (let e of elts)\n e.writeTo(this, offset);\n return this;\n }\n finish(type, length) {\n return Tree.build({\n buffer: this.content,\n nodeSet: this.nodeSet,\n reused: this.nodes,\n topID: type,\n length\n });\n }\n}\n/**\nElements are used to compose syntax nodes during parsing.\n*/\nclass Element {\n /**\n @internal\n */\n constructor(\n /**\n The node's\n [id](https://lezer.codemirror.net/docs/ref/#common.NodeType.id).\n */\n type, \n /**\n The start of the node, as an offset from the start of the document.\n */\n from, \n /**\n The end of the node.\n */\n to, \n /**\n The node's child nodes @internal\n */\n children = none) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.children = children;\n }\n /**\n @internal\n */\n writeTo(buf, offset) {\n let startOff = buf.content.length;\n buf.writeElements(this.children, offset);\n buf.content.push(this.type, this.from + offset, this.to + offset, buf.content.length + 4 - startOff);\n }\n /**\n @internal\n */\n toTree(nodeSet) {\n return new Buffer(nodeSet).writeElements(this.children, -this.from).finish(this.type, this.to - this.from);\n }\n}\nclass TreeElement {\n constructor(tree, from) {\n this.tree = tree;\n this.from = from;\n }\n get to() { return this.from + this.tree.length; }\n get type() { return this.tree.type.id; }\n get children() { return none; }\n writeTo(buf, offset) {\n buf.nodes.push(this.tree);\n buf.content.push(buf.nodes.length - 1, this.from + offset, this.to + offset, -1);\n }\n toTree() { return this.tree; }\n}\nfunction elt(type, from, to, children) {\n return new Element(type, from, to, children);\n}\nconst EmphasisUnderscore = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst EmphasisAsterisk = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst LinkStart = {}, ImageStart = {};\nclass InlineDelimiter {\n constructor(type, from, to, side) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.side = side;\n }\n}\nconst Escapable = \"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~\";\nlet Punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\u2010-\\u2027]/;\ntry {\n Punctuation = new RegExp(\"[\\\\p{S}|\\\\p{P}]\", \"u\");\n}\ncatch (_) { }\nconst DefaultInline = {\n Escape(cx, next, start) {\n if (next != 92 /* '\\\\' */ || start == cx.end - 1)\n return -1;\n let escaped = cx.char(start + 1);\n for (let i = 0; i < Escapable.length; i++)\n if (Escapable.charCodeAt(i) == escaped)\n return cx.append(elt(Type.Escape, start, start + 2));\n return -1;\n },\n Entity(cx, next, start) {\n if (next != 38 /* '&' */)\n return -1;\n let m = /^(?:#\\d+|#x[a-f\\d]+|\\w+);/i.exec(cx.slice(start + 1, start + 31));\n return m ? cx.append(elt(Type.Entity, start, start + 1 + m[0].length)) : -1;\n },\n InlineCode(cx, next, start) {\n if (next != 96 /* '`' */ || start && cx.char(start - 1) == 96)\n return -1;\n let pos = start + 1;\n while (pos < cx.end && cx.char(pos) == 96)\n pos++;\n let size = pos - start, curSize = 0;\n for (; pos < cx.end; pos++) {\n if (cx.char(pos) == 96) {\n curSize++;\n if (curSize == size && cx.char(pos + 1) != 96)\n return cx.append(elt(Type.InlineCode, start, pos + 1, [\n elt(Type.CodeMark, start, start + size),\n elt(Type.CodeMark, pos + 1 - size, pos + 1)\n ]));\n }\n else {\n curSize = 0;\n }\n }\n return -1;\n },\n HTMLTag(cx, next, start) {\n if (next != 60 /* '<' */ || start == cx.end - 1)\n return -1;\n let after = cx.slice(start + 1, cx.end);\n let url = /^(?:[a-z][-\\w+.]+:[^\\s>]+|[a-z\\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*)>/i.exec(after);\n if (url) {\n return cx.append(elt(Type.Autolink, start, start + 1 + url[0].length, [\n elt(Type.LinkMark, start, start + 1),\n // url[0] includes the closing bracket, so exclude it from this slice\n elt(Type.URL, start + 1, start + url[0].length),\n elt(Type.LinkMark, start + url[0].length, start + 1 + url[0].length)\n ]));\n }\n let comment = /^!--[^>](?:-[^-]|[^-])*?-->/i.exec(after);\n if (comment)\n return cx.append(elt(Type.Comment, start, start + 1 + comment[0].length));\n let procInst = /^\\?[^]*?\\?>/.exec(after);\n if (procInst)\n return cx.append(elt(Type.ProcessingInstruction, start, start + 1 + procInst[0].length));\n let m = /^(?:![A-Z][^]*?>|!\\[CDATA\\[[^]*?\\]\\]>|\\/\\s*[a-zA-Z][\\w-]*\\s*>|\\s*[a-zA-Z][\\w-]*(\\s+[a-zA-Z:_][\\w-.:]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*(\\/\\s*)?>)/.exec(after);\n if (!m)\n return -1;\n return cx.append(elt(Type.HTMLTag, start, start + 1 + m[0].length));\n },\n Emphasis(cx, next, start) {\n if (next != 95 && next != 42)\n return -1;\n let pos = start + 1;\n while (cx.char(pos) == next)\n pos++;\n let before = cx.slice(start - 1, start), after = cx.slice(pos, pos + 1);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let leftFlanking = !sAfter && (!pAfter || sBefore || pBefore);\n let rightFlanking = !sBefore && (!pBefore || sAfter || pAfter);\n let canOpen = leftFlanking && (next == 42 || !rightFlanking || pBefore);\n let canClose = rightFlanking && (next == 42 || !leftFlanking || pAfter);\n return cx.append(new InlineDelimiter(next == 95 ? EmphasisUnderscore : EmphasisAsterisk, start, pos, (canOpen ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (canClose ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n },\n HardBreak(cx, next, start) {\n if (next == 92 /* '\\\\' */ && cx.char(start + 1) == 10 /* '\\n' */)\n return cx.append(elt(Type.HardBreak, start, start + 2));\n if (next == 32) {\n let pos = start + 1;\n while (cx.char(pos) == 32)\n pos++;\n if (cx.char(pos) == 10 && pos >= start + 2)\n return cx.append(elt(Type.HardBreak, start, pos + 1));\n }\n return -1;\n },\n Link(cx, next, start) {\n return next == 91 /* '[' */ ? cx.append(new InlineDelimiter(LinkStart, start, start + 1, 1 /* Mark.Open */)) : -1;\n },\n Image(cx, next, start) {\n return next == 33 /* '!' */ && cx.char(start + 1) == 91 /* '[' */\n ? cx.append(new InlineDelimiter(ImageStart, start, start + 2, 1 /* Mark.Open */)) : -1;\n },\n LinkEnd(cx, next, start) {\n if (next != 93 /* ']' */)\n return -1;\n // Scanning back to the next link/image start marker\n for (let i = cx.parts.length - 1; i >= 0; i--) {\n let part = cx.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart)) {\n // If this one has been set invalid (because it would produce\n // a nested link) or there's no valid link here ignore both.\n if (!part.side || cx.skipSpace(part.to) == start && !/[(\\[]/.test(cx.slice(start + 1, start + 2))) {\n cx.parts[i] = null;\n return -1;\n }\n // Finish the content and replace the entire range in\n // this.parts with the link/image node.\n let content = cx.takeContent(i);\n let link = cx.parts[i] = finishLink(cx, content, part.type == LinkStart ? Type.Link : Type.Image, part.from, start + 1);\n // Set any open-link markers before this link to invalid.\n if (part.type == LinkStart)\n for (let j = 0; j < i; j++) {\n let p = cx.parts[j];\n if (p instanceof InlineDelimiter && p.type == LinkStart)\n p.side = 0 /* Mark.None */;\n }\n return link.to;\n }\n }\n return -1;\n }\n};\nfunction finishLink(cx, content, type, start, startPos) {\n let { text } = cx, next = cx.char(startPos), endPos = startPos;\n content.unshift(elt(Type.LinkMark, start, start + (type == Type.Image ? 2 : 1)));\n content.push(elt(Type.LinkMark, startPos - 1, startPos));\n if (next == 40 /* '(' */) {\n let pos = cx.skipSpace(startPos + 1);\n let dest = parseURL(text, pos - cx.offset, cx.offset), title;\n if (dest) {\n pos = cx.skipSpace(dest.to);\n // The destination and title must be separated by whitespace\n if (pos != dest.to) {\n title = parseLinkTitle(text, pos - cx.offset, cx.offset);\n if (title)\n pos = cx.skipSpace(title.to);\n }\n }\n if (cx.char(pos) == 41 /* ')' */) {\n content.push(elt(Type.LinkMark, startPos, startPos + 1));\n endPos = pos + 1;\n if (dest)\n content.push(dest);\n if (title)\n content.push(title);\n content.push(elt(Type.LinkMark, pos, endPos));\n }\n }\n else if (next == 91 /* '[' */) {\n let label = parseLinkLabel(text, startPos - cx.offset, cx.offset, false);\n if (label) {\n content.push(label);\n endPos = label.to;\n }\n }\n return elt(type, start, endPos, content);\n}\n// These return `null` when falling off the end of the input, `false`\n// when parsing fails otherwise (for use in the incremental link\n// reference parser).\nfunction parseURL(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next == 60 /* '<' */) {\n for (let pos = start + 1; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (ch == 62 /* '>' */)\n return elt(Type.URL, start + offset, pos + 1 + offset);\n if (ch == 60 || ch == 10 /* '<\\n' */)\n return false;\n }\n return null;\n }\n else {\n let depth = 0, pos = start;\n for (let escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (space(ch)) {\n break;\n }\n else if (escaped) {\n escaped = false;\n }\n else if (ch == 40 /* '(' */) {\n depth++;\n }\n else if (ch == 41 /* ')' */) {\n if (!depth)\n break;\n depth--;\n }\n else if (ch == 92 /* '\\\\' */) {\n escaped = true;\n }\n }\n return pos > start ? elt(Type.URL, start + offset, pos + offset) : pos == text.length ? null : false;\n }\n}\nfunction parseLinkTitle(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next != 39 && next != 34 && next != 40 /* '\"\\'(' */)\n return false;\n let end = next == 40 ? 41 : next;\n for (let pos = start + 1, escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == end)\n return elt(Type.LinkTitle, start + offset, pos + 1 + offset);\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n return null;\n}\nfunction parseLinkLabel(text, start, offset, requireNonWS) {\n for (let escaped = false, pos = start + 1, end = Math.min(text.length, pos + 999); pos < end; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == 93 /* ']' */)\n return requireNonWS ? false : elt(Type.LinkLabel, start + offset, pos + 1 + offset);\n else {\n if (requireNonWS && !space(ch))\n requireNonWS = false;\n if (ch == 91 /* '[' */)\n return false;\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n }\n return null;\n}\n/**\nInline parsing functions get access to this context, and use it to\nread the content and emit syntax nodes.\n*/\nclass InlineContext {\n /**\n @internal\n */\n constructor(\n /**\n The parser that is being used.\n */\n parser, \n /**\n The text of this inline section.\n */\n text, \n /**\n The starting offset of the section in the document.\n */\n offset) {\n this.parser = parser;\n this.text = text;\n this.offset = offset;\n /**\n @internal\n */\n this.parts = [];\n }\n /**\n Get the character code at the given (document-relative)\n position.\n */\n char(pos) { return pos >= this.end ? -1 : this.text.charCodeAt(pos - this.offset); }\n /**\n The position of the end of this inline section.\n */\n get end() { return this.offset + this.text.length; }\n /**\n Get a substring of this inline section. Again uses\n document-relative positions.\n */\n slice(from, to) { return this.text.slice(from - this.offset, to - this.offset); }\n /**\n @internal\n */\n append(elt) {\n this.parts.push(elt);\n return elt.to;\n }\n /**\n Add a [delimiter](#DelimiterType) at this given position. `open`\n and `close` indicate whether this delimiter is opening, closing,\n or both. Returns the end of the delimiter, for convenient\n returning from [parse functions](#InlineParser.parse).\n */\n addDelimiter(type, from, to, open, close) {\n return this.append(new InlineDelimiter(type, from, to, (open ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (close ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n }\n /**\n Returns true when there is an unmatched link or image opening\n token before the current position.\n */\n get hasOpenLink() {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart))\n return true;\n }\n return false;\n }\n /**\n Add an inline element. Returns the end of the element.\n */\n addElement(elt) {\n return this.append(elt);\n }\n /**\n Resolve markers between this.parts.length and from, wrapping matched markers in the\n appropriate node and updating the content of this.parts. @internal\n */\n resolveMarkers(from) {\n // Scan forward, looking for closing tokens\n for (let i = from; i < this.parts.length; i++) {\n let close = this.parts[i];\n if (!(close instanceof InlineDelimiter && close.type.resolve && (close.side & 2 /* Mark.Close */)))\n continue;\n let emp = close.type == EmphasisUnderscore || close.type == EmphasisAsterisk;\n let closeSize = close.to - close.from;\n let open, j = i - 1;\n // Continue scanning for a matching opening token\n for (; j >= from; j--) {\n let part = this.parts[j];\n if (part instanceof InlineDelimiter && (part.side & 1 /* Mark.Open */) && part.type == close.type &&\n // Ignore emphasis delimiters where the character count doesn't match\n !(emp && ((close.side & 1 /* Mark.Open */) || (part.side & 2 /* Mark.Close */)) &&\n (part.to - part.from + closeSize) % 3 == 0 && ((part.to - part.from) % 3 || closeSize % 3))) {\n open = part;\n break;\n }\n }\n if (!open)\n continue;\n let type = close.type.resolve, content = [];\n let start = open.from, end = close.to;\n // Emphasis marker effect depends on the character count. Size consumed is minimum of the two\n // markers.\n if (emp) {\n let size = Math.min(2, open.to - open.from, closeSize);\n start = open.to - size;\n end = close.from + size;\n type = size == 1 ? \"Emphasis\" : \"StrongEmphasis\";\n }\n // Move the covered region into content, optionally adding marker nodes\n if (open.type.mark)\n content.push(this.elt(open.type.mark, start, open.to));\n for (let k = j + 1; k < i; k++) {\n if (this.parts[k] instanceof Element)\n content.push(this.parts[k]);\n this.parts[k] = null;\n }\n if (close.type.mark)\n content.push(this.elt(close.type.mark, close.from, end));\n let element = this.elt(type, start, end, content);\n // If there are leftover emphasis marker characters, shrink the close/open markers. Otherwise, clear them.\n this.parts[j] = emp && open.from != start ? new InlineDelimiter(open.type, open.from, start, open.side) : null;\n let keep = this.parts[i] = emp && close.to != end ? new InlineDelimiter(close.type, end, close.to, close.side) : null;\n // Insert the new element in this.parts\n if (keep)\n this.parts.splice(i, 0, element);\n else\n this.parts[i] = element;\n }\n // Collect the elements remaining in this.parts into an array.\n let result = [];\n for (let i = from; i < this.parts.length; i++) {\n let part = this.parts[i];\n if (part instanceof Element)\n result.push(part);\n }\n return result;\n }\n /**\n Find an opening delimiter of the given type. Returns `null` if\n no delimiter is found, or an index that can be passed to\n [`takeContent`](#InlineContext.takeContent) otherwise.\n */\n findOpeningDelimiter(type) {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && part.type == type)\n return i;\n }\n return null;\n }\n /**\n Remove all inline elements and delimiters starting from the\n given index (which you should get from\n [`findOpeningDelimiter`](#InlineContext.findOpeningDelimiter),\n resolve delimiters inside of them, and return them as an array\n of elements.\n */\n takeContent(startIndex) {\n let content = this.resolveMarkers(startIndex);\n this.parts.length = startIndex;\n return content;\n }\n /**\n Skip space after the given (document) position, returning either\n the position of the next non-space character or the end of the\n section.\n */\n skipSpace(from) { return skipSpace(this.text, from - this.offset) + this.offset; }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n}\nfunction injectMarks(elements, marks) {\n if (!marks.length)\n return elements;\n if (!elements.length)\n return marks;\n let elts = elements.slice(), eI = 0;\n for (let mark of marks) {\n while (eI < elts.length && elts[eI].to < mark.to)\n eI++;\n if (eI < elts.length && elts[eI].from < mark.from) {\n let e = elts[eI];\n if (e instanceof Element)\n elts[eI] = new Element(e.type, e.from, e.to, injectMarks(e.children, [mark]));\n }\n else {\n elts.splice(eI++, 0, mark);\n }\n }\n return elts;\n}\n// These are blocks that can span blank lines, and should thus only be\n// reused if their next sibling is also being reused.\nconst NotLast = [Type.CodeBlock, Type.ListItem, Type.OrderedList, Type.BulletList];\nclass FragmentCursor {\n constructor(fragments, input) {\n this.fragments = fragments;\n this.input = input;\n // Index into fragment array\n this.i = 0;\n // Active fragment\n this.fragment = null;\n this.fragmentEnd = -1;\n // Cursor into the current fragment, if any. When `moveTo` returns\n // true, this points at the first block after `pos`.\n this.cursor = null;\n if (fragments.length)\n this.fragment = fragments[this.i++];\n }\n nextFragment() {\n this.fragment = this.i < this.fragments.length ? this.fragments[this.i++] : null;\n this.cursor = null;\n this.fragmentEnd = -1;\n }\n moveTo(pos, lineStart) {\n while (this.fragment && this.fragment.to <= pos)\n this.nextFragment();\n if (!this.fragment || this.fragment.from > (pos ? pos - 1 : 0))\n return false;\n if (this.fragmentEnd < 0) {\n let end = this.fragment.to;\n while (end > 0 && this.input.read(end - 1, end) != \"\\n\")\n end--;\n this.fragmentEnd = end ? end - 1 : 0;\n }\n let c = this.cursor;\n if (!c) {\n c = this.cursor = this.fragment.tree.cursor();\n c.firstChild();\n }\n let rPos = pos + this.fragment.offset;\n while (c.to <= rPos)\n if (!c.parent())\n return false;\n for (;;) {\n if (c.from >= rPos)\n return this.fragment.from <= lineStart;\n if (!c.childAfter(rPos))\n return false;\n }\n }\n matches(hash) {\n let tree = this.cursor.tree;\n return tree && tree.prop(NodeProp.contextHash) == hash;\n }\n takeNodes(cx) {\n let cur = this.cursor, off = this.fragment.offset, fragEnd = this.fragmentEnd - (this.fragment.openEnd ? 1 : 0);\n let start = cx.absoluteLineStart, end = start, blockI = cx.block.children.length;\n let prevEnd = end, prevI = blockI;\n for (;;) {\n if (cur.to - off > fragEnd) {\n if (cur.type.isAnonymous && cur.firstChild())\n continue;\n break;\n }\n let pos = toRelative(cur.from - off, cx.ranges);\n if (cur.to - off <= cx.ranges[cx.rangeI].to) { // Fits in current range\n cx.addNode(cur.tree, pos);\n }\n else {\n let dummy = new Tree(cx.parser.nodeSet.types[Type.Paragraph], [], [], 0, cx.block.hashProp);\n cx.reusePlaceholders.set(dummy, cur.tree);\n cx.addNode(dummy, pos);\n }\n // Taken content must always end in a block, because incremental\n // parsing happens on block boundaries. Never stop directly\n // after an indented code block, since those can continue after\n // any number of blank lines.\n if (cur.type.is(\"Block\")) {\n if (NotLast.indexOf(cur.type.id) < 0) {\n end = cur.to - off;\n blockI = cx.block.children.length;\n }\n else {\n end = prevEnd;\n blockI = prevI;\n prevEnd = cur.to - off;\n prevI = cx.block.children.length;\n }\n }\n if (!cur.nextSibling())\n break;\n }\n while (cx.block.children.length > blockI) {\n cx.block.children.pop();\n cx.block.positions.pop();\n }\n return end - start;\n }\n}\n// Convert an input-stream-relative position to a\n// Markdown-doc-relative position by subtracting the size of all input\n// gaps before `abs`.\nfunction toRelative(abs, ranges) {\n let pos = abs;\n for (let i = 1; i < ranges.length; i++) {\n let gapFrom = ranges[i - 1].to, gapTo = ranges[i].from;\n if (gapFrom < abs)\n pos -= gapTo - gapFrom;\n }\n return pos;\n}\nconst markdownHighlighting = styleTags({\n \"Blockquote/...\": tags.quote,\n HorizontalRule: tags.contentSeparator,\n \"ATXHeading1/... SetextHeading1/...\": tags.heading1,\n \"ATXHeading2/... SetextHeading2/...\": tags.heading2,\n \"ATXHeading3/...\": tags.heading3,\n \"ATXHeading4/...\": tags.heading4,\n \"ATXHeading5/...\": tags.heading5,\n \"ATXHeading6/...\": tags.heading6,\n \"Comment CommentBlock\": tags.comment,\n Escape: tags.escape,\n Entity: tags.character,\n \"Emphasis/...\": tags.emphasis,\n \"StrongEmphasis/...\": tags.strong,\n \"Link/... Image/...\": tags.link,\n \"OrderedList/... BulletList/...\": tags.list,\n \"BlockQuote/...\": tags.quote,\n \"InlineCode CodeText\": tags.monospace,\n \"URL Autolink\": tags.url,\n \"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark\": tags.processingInstruction,\n \"CodeInfo LinkLabel\": tags.labelName,\n LinkTitle: tags.string,\n Paragraph: tags.content\n});\n/**\nThe default CommonMark parser.\n*/\nconst parser = new MarkdownParser(new NodeSet(nodeTypes).extend(markdownHighlighting), Object.keys(DefaultBlockParsers).map(n => DefaultBlockParsers[n]), Object.keys(DefaultBlockParsers).map(n => DefaultLeafBlocks[n]), Object.keys(DefaultBlockParsers), DefaultEndLeaf, DefaultSkipMarkup, Object.keys(DefaultInline).map(n => DefaultInline[n]), Object.keys(DefaultInline), []);\n\nfunction leftOverSpace(node, from, to) {\n let ranges = [];\n for (let n = node.firstChild, pos = from;; n = n.nextSibling) {\n let nextPos = n ? n.from : to;\n if (nextPos > pos)\n ranges.push({ from: pos, to: nextPos });\n if (!n)\n break;\n pos = n.to;\n }\n return ranges;\n}\n/**\nCreate a Markdown extension to enable nested parsing on code\nblocks and/or embedded HTML.\n*/\nfunction parseCode(config) {\n let { codeParser, htmlParser } = config;\n let wrap = parseMixed((node, input) => {\n let id = node.type.id;\n if (codeParser && (id == Type.CodeBlock || id == Type.FencedCode)) {\n let info = \"\";\n if (id == Type.FencedCode) {\n let infoNode = node.node.getChild(Type.CodeInfo);\n if (infoNode)\n info = input.read(infoNode.from, infoNode.to);\n }\n let parser = codeParser(info);\n if (parser)\n return { parser, overlay: node => node.type.id == Type.CodeText };\n }\n else if (htmlParser && (id == Type.HTMLBlock || id == Type.HTMLTag || id == Type.CommentBlock)) {\n return { parser: htmlParser, overlay: leftOverSpace(node.node, node.from, node.to) };\n }\n return null;\n });\n return { wrap };\n}\n\nconst StrikethroughDelim = { resolve: \"Strikethrough\", mark: \"StrikethroughMark\" };\n/**\nAn extension that implements\n[GFM-style](https://github.github.com/gfm/#strikethrough-extension-)\nStrikethrough syntax using `~~` delimiters.\n*/\nconst Strikethrough = {\n defineNodes: [{\n name: \"Strikethrough\",\n style: { \"Strikethrough/...\": tags.strikethrough }\n }, {\n name: \"StrikethroughMark\",\n style: tags.processingInstruction\n }],\n parseInline: [{\n name: \"Strikethrough\",\n parse(cx, next, pos) {\n if (next != 126 /* '~' */ || cx.char(pos + 1) != 126 || cx.char(pos + 2) == 126)\n return -1;\n let before = cx.slice(pos - 1, pos), after = cx.slice(pos + 2, pos + 3);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n return cx.addDelimiter(StrikethroughDelim, pos, pos + 2, !sAfter && (!pAfter || sBefore || pBefore), !sBefore && (!pBefore || sAfter || pAfter));\n },\n after: \"Emphasis\"\n }]\n};\n// Parse a line as a table row and return the row count. When `elts`\n// is given, push syntax elements for the content onto it.\nfunction parseRow(cx, line, startI = 0, elts, offset = 0) {\n let count = 0, first = true, cellStart = -1, cellEnd = -1, esc = false;\n let parseCell = () => {\n elts.push(cx.elt(\"TableCell\", offset + cellStart, offset + cellEnd, cx.parser.parseInline(line.slice(cellStart, cellEnd), offset + cellStart)));\n };\n for (let i = startI; i < line.length; i++) {\n let next = line.charCodeAt(i);\n if (next == 124 /* '|' */ && !esc) {\n if (!first || cellStart > -1)\n count++;\n first = false;\n if (elts) {\n if (cellStart > -1)\n parseCell();\n elts.push(cx.elt(\"TableDelimiter\", i + offset, i + offset + 1));\n }\n cellStart = cellEnd = -1;\n }\n else if (esc || next != 32 && next != 9) {\n if (cellStart < 0)\n cellStart = i;\n cellEnd = i + 1;\n }\n esc = !esc && next == 92;\n }\n if (cellStart > -1) {\n count++;\n if (elts)\n parseCell();\n }\n return count;\n}\nfunction hasPipe(str, start) {\n for (let i = start; i < str.length; i++) {\n let next = str.charCodeAt(i);\n if (next == 124 /* '|' */)\n return true;\n if (next == 92 /* '\\\\' */)\n i++;\n }\n return false;\n}\nconst delimiterLine = /^\\|?(\\s*:?-+:?\\s*\\|)+(\\s*:?-+:?\\s*)?$/;\nclass TableParser {\n constructor() {\n // Null means we haven't seen the second line yet, false means this\n // isn't a table, and an array means this is a table and we've\n // parsed the given rows so far.\n this.rows = null;\n }\n nextLine(cx, line, leaf) {\n if (this.rows == null) { // Second line\n this.rows = false;\n let lineText;\n if ((line.next == 45 || line.next == 58 || line.next == 124 /* '-:|' */) &&\n delimiterLine.test(lineText = line.text.slice(line.pos))) {\n let firstRow = [], firstCount = parseRow(cx, leaf.content, 0, firstRow, leaf.start);\n if (firstCount == parseRow(cx, lineText, line.pos))\n this.rows = [cx.elt(\"TableHeader\", leaf.start, leaf.start + leaf.content.length, firstRow),\n cx.elt(\"TableDelimiter\", cx.lineStart + line.pos, cx.lineStart + line.text.length)];\n }\n }\n else if (this.rows) { // Line after the second\n let content = [];\n parseRow(cx, line.text, line.pos, content, cx.lineStart);\n this.rows.push(cx.elt(\"TableRow\", cx.lineStart + line.pos, cx.lineStart + line.text.length, content));\n }\n return false;\n }\n finish(cx, leaf) {\n if (!this.rows)\n return false;\n cx.addLeafElement(leaf, cx.elt(\"Table\", leaf.start, leaf.start + leaf.content.length, this.rows));\n return true;\n }\n}\n/**\nThis extension provides\n[GFM-style](https://github.github.com/gfm/#tables-extension-)\ntables, using syntax like this:\n\n```\n| head 1 | head 2 |\n| --- | --- |\n| cell 1 | cell 2 |\n```\n*/\nconst Table = {\n defineNodes: [\n { name: \"Table\", block: true },\n { name: \"TableHeader\", style: { \"TableHeader/...\": tags.heading } },\n \"TableRow\",\n { name: \"TableCell\", style: tags.content },\n { name: \"TableDelimiter\", style: tags.processingInstruction },\n ],\n parseBlock: [{\n name: \"Table\",\n leaf(_, leaf) { return hasPipe(leaf.content, 0) ? new TableParser : null; },\n endLeaf(cx, line, leaf) {\n if (leaf.parsers.some(p => p instanceof TableParser) || !hasPipe(line.text, line.basePos))\n return false;\n let next = cx.peekLine();\n return delimiterLine.test(next) && parseRow(cx, line.text, line.basePos) == parseRow(cx, next, line.basePos);\n },\n before: \"SetextHeading\"\n }]\n};\nclass TaskParser {\n nextLine() { return false; }\n finish(cx, leaf) {\n cx.addLeafElement(leaf, cx.elt(\"Task\", leaf.start, leaf.start + leaf.content.length, [\n cx.elt(\"TaskMarker\", leaf.start, leaf.start + 3),\n ...cx.parser.parseInline(leaf.content.slice(3), leaf.start + 3)\n ]));\n return true;\n }\n}\n/**\nExtension providing\n[GFM-style](https://github.github.com/gfm/#task-list-items-extension-)\ntask list items, where list items can be prefixed with `[ ]` or\n`[x]` to add a checkbox.\n*/\nconst TaskList = {\n defineNodes: [\n { name: \"Task\", block: true, style: tags.list },\n { name: \"TaskMarker\", style: tags.atom }\n ],\n parseBlock: [{\n name: \"TaskList\",\n leaf(cx, leaf) {\n return /^\\[[ xX]\\][ \\t]/.test(leaf.content) && cx.parentType().name == \"ListItem\" ? new TaskParser : null;\n },\n after: \"SetextHeading\"\n }]\n};\nconst autolinkRE = /(www\\.)|(https?:\\/\\/)|([\\w.+-]{1,100}@)|(mailto:|xmpp:)/gy;\nconst urlRE = /[\\w-]+(\\.[\\w-]+)+(\\/[^\\s<]*)?/gy;\nconst lastTwoDomainWords = /[\\w-]+\\.[\\w-]+($|\\/)/;\nconst emailRE = /[\\w.+-]+@[\\w-]+(\\.[\\w.-]+)+/gy;\nconst xmppResourceRE = /\\/[a-zA-Z\\d@.]+/gy;\nfunction count(str, from, to, ch) {\n let result = 0;\n for (let i = from; i < to; i++)\n if (str[i] == ch)\n result++;\n return result;\n}\nfunction autolinkURLEnd(text, from) {\n urlRE.lastIndex = from;\n let m = urlRE.exec(text);\n if (!m || lastTwoDomainWords.exec(m[0])[0].indexOf(\"_\") > -1)\n return -1;\n let end = from + m[0].length;\n for (;;) {\n let last = text[end - 1], m;\n if (/[?!.,:*_~]/.test(last) ||\n last == \")\" && count(text, from, end, \")\") > count(text, from, end, \"(\"))\n end--;\n else if (last == \";\" && (m = /&(?:#\\d+|#x[a-f\\d]+|\\w+);$/.exec(text.slice(from, end))))\n end = from + m.index;\n else\n break;\n }\n return end;\n}\nfunction autolinkEmailEnd(text, from) {\n emailRE.lastIndex = from;\n let m = emailRE.exec(text);\n if (!m)\n return -1;\n let last = m[0][m[0].length - 1];\n return last == \"_\" || last == \"-\" ? -1 : from + m[0].length - (last == \".\" ? 1 : 0);\n}\n/**\nExtension that implements autolinking for\n`www.`/`http://`/`https://`/`mailto:`/`xmpp:` URLs and email\naddresses.\n*/\nconst Autolink = {\n parseInline: [{\n name: \"Autolink\",\n parse(cx, next, absPos) {\n let pos = absPos - cx.offset;\n if (pos && /\\w/.test(cx.text[pos - 1]))\n return -1;\n autolinkRE.lastIndex = pos;\n let m = autolinkRE.exec(cx.text), end = -1;\n if (!m)\n return -1;\n if (m[1] || m[2]) { // www., http://\n end = autolinkURLEnd(cx.text, pos + m[0].length);\n if (end > -1 && cx.hasOpenLink) {\n let noBracket = /([^\\[\\]]|\\[[^\\]]*\\])*/.exec(cx.text.slice(pos, end));\n end = pos + noBracket[0].length;\n }\n }\n else if (m[3]) { // email address\n end = autolinkEmailEnd(cx.text, pos);\n }\n else { // mailto:/xmpp:\n end = autolinkEmailEnd(cx.text, pos + m[0].length);\n if (end > -1 && m[0] == \"xmpp:\") {\n xmppResourceRE.lastIndex = end;\n m = xmppResourceRE.exec(cx.text);\n if (m)\n end = m.index + m[0].length;\n }\n }\n if (end < 0)\n return -1;\n cx.addElement(cx.elt(\"URL\", absPos, end + cx.offset));\n return end + cx.offset;\n }\n }]\n};\n/**\nExtension bundle containing [`Table`](#Table),\n[`TaskList`](#TaskList), [`Strikethrough`](#Strikethrough), and\n[`Autolink`](#Autolink).\n*/\nconst GFM = [Table, TaskList, Strikethrough, Autolink];\nfunction parseSubSuper(ch, node, mark) {\n return (cx, next, pos) => {\n if (next != ch || cx.char(pos + 1) == ch)\n return -1;\n let elts = [cx.elt(mark, pos, pos + 1)];\n for (let i = pos + 1; i < cx.end; i++) {\n let next = cx.char(i);\n if (next == ch)\n return cx.addElement(cx.elt(node, pos, i + 1, elts.concat(cx.elt(mark, i, i + 1))));\n if (next == 92 /* '\\\\' */)\n elts.push(cx.elt(\"Escape\", i, i++ + 2));\n if (space(next))\n break;\n }\n return -1;\n };\n}\n/**\nExtension providing\n[Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\nsuperscript using `^` markers.\n*/\nconst Superscript = {\n defineNodes: [\n { name: \"Superscript\", style: tags.special(tags.content) },\n { name: \"SuperscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Superscript\",\n parse: parseSubSuper(94 /* '^' */, \"Superscript\", \"SuperscriptMark\")\n }]\n};\n/**\nExtension providing\n[Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\nsubscript using `~` markers.\n*/\nconst Subscript = {\n defineNodes: [\n { name: \"Subscript\", style: tags.special(tags.content) },\n { name: \"SubscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Subscript\",\n parse: parseSubSuper(126 /* '~' */, \"Subscript\", \"SubscriptMark\")\n }]\n};\n/**\nExtension that parses two colons with only letters, underscores,\nand numbers between them as `Emoji` nodes.\n*/\nconst Emoji = {\n defineNodes: [{ name: \"Emoji\", style: tags.character }],\n parseInline: [{\n name: \"Emoji\",\n parse(cx, next, pos) {\n let match;\n if (next != 58 /* ':' */ || !(match = /^[a-zA-Z_0-9]+:/.exec(cx.slice(pos + 1, cx.end))))\n return -1;\n return cx.addElement(cx.elt(\"Emoji\", pos, pos + 1 + match[0].length));\n }\n }]\n};\n\nexport { Autolink, BlockContext, Element, Emoji, GFM, InlineContext, LeafBlock, Line, MarkdownParser, Strikethrough, Subscript, Superscript, Table, TaskList, parseCode, parser };\n","import { EditorSelection, countColumn, Prec, EditorState } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { defineLanguageFacet, foldNodeProp, indentNodeProp, languageDataProp, foldService, syntaxTree, Language, LanguageDescription, ParseContext, indentUnit, LanguageSupport } from '@codemirror/language';\nimport { CompletionContext } from '@codemirror/autocomplete';\nimport { parser, GFM, Subscript, Superscript, Emoji, MarkdownParser, parseCode } from '@lezer/markdown';\nimport { html, htmlCompletionSource } from '@codemirror/lang-html';\nimport { NodeProp } from '@lezer/common';\n\nconst data = /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"<!--\", close: \"-->\" } } });\nconst headingProp = /*@__PURE__*/new NodeProp();\nconst commonmark = /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add(type => {\n return !type.is(\"Block\") || type.is(\"Document\") || isHeading(type) != null ? undefined\n : (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to });\n }),\n /*@__PURE__*/headingProp.add(isHeading),\n /*@__PURE__*/indentNodeProp.add({\n Document: () => null\n }),\n /*@__PURE__*/languageDataProp.add({\n Document: data\n })\n ]\n});\nfunction isHeading(type) {\n let match = /^(?:ATX|Setext)Heading(\\d)$/.exec(type.name);\n return match ? +match[1] : undefined;\n}\nfunction findSectionEnd(headerNode, level) {\n let last = headerNode;\n for (;;) {\n let next = last.nextSibling, heading;\n if (!next || (heading = isHeading(next.type)) != null && heading <= level)\n break;\n last = next;\n }\n return last.to;\n}\nconst headerIndent = /*@__PURE__*/foldService.of((state, start, end) => {\n for (let node = syntaxTree(state).resolveInner(end, -1); node; node = node.parent) {\n if (node.from < start)\n break;\n let heading = node.type.prop(headingProp);\n if (heading == null)\n continue;\n let upto = findSectionEnd(node, heading);\n if (upto > end)\n return { from: end, to: upto };\n }\n return null;\n});\nfunction mkLang(parser) {\n return new Language(data, parser, [headerIndent], \"markdown\");\n}\n/**\nLanguage support for strict CommonMark.\n*/\nconst commonmarkLanguage = /*@__PURE__*/mkLang(commonmark);\nconst extended = /*@__PURE__*/commonmark.configure([GFM, Subscript, Superscript, Emoji]);\n/**\nLanguage support for [GFM](https://github.github.com/gfm/) plus\nsubscript, superscript, and emoji syntax.\n*/\nconst markdownLanguage = /*@__PURE__*/mkLang(extended);\nfunction getCodeParser(languages, defaultLanguage) {\n return (info) => {\n if (info && languages) {\n let found = null;\n // Strip anything after whitespace\n info = /\\S*/.exec(info)[0];\n if (typeof languages == \"function\")\n found = languages(info);\n else\n found = LanguageDescription.matchLanguageName(languages, info, true);\n if (found instanceof LanguageDescription)\n return found.support ? found.support.language.parser : ParseContext.getSkippingParser(found.load());\n else if (found)\n return found.parser;\n }\n return defaultLanguage ? defaultLanguage.parser : null;\n };\n}\n\nclass Context {\n constructor(node, from, to, spaceBefore, spaceAfter, type, item) {\n this.node = node;\n this.from = from;\n this.to = to;\n this.spaceBefore = spaceBefore;\n this.spaceAfter = spaceAfter;\n this.type = type;\n this.item = item;\n }\n blank(maxWidth, trailing = true) {\n let result = this.spaceBefore + (this.node.name == \"Blockquote\" ? \">\" : \"\");\n if (maxWidth != null) {\n while (result.length < maxWidth)\n result += \" \";\n return result;\n }\n else {\n for (let i = this.to - this.from - result.length - this.spaceAfter.length; i > 0; i--)\n result += \" \";\n return result + (trailing ? this.spaceAfter : \"\");\n }\n }\n marker(doc, add) {\n let number = this.node.name == \"OrderedList\" ? String((+itemNumber(this.item, doc)[2] + add)) : \"\";\n return this.spaceBefore + number + this.type + this.spaceAfter;\n }\n}\nfunction getContext(node, doc) {\n let nodes = [];\n for (let cur = node; cur && cur.name != \"Document\"; cur = cur.parent) {\n if (cur.name == \"ListItem\" || cur.name == \"Blockquote\" || cur.name == \"FencedCode\")\n nodes.push(cur);\n }\n let context = [];\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i], match;\n let line = doc.lineAt(node.from), startPos = node.from - line.from;\n if (node.name == \"FencedCode\") {\n context.push(new Context(node, startPos, startPos, \"\", \"\", \"\", null));\n }\n else if (node.name == \"Blockquote\" && (match = /^ *>( ?)/.exec(line.text.slice(startPos)))) {\n context.push(new Context(node, startPos, startPos + match[0].length, \"\", match[1], \">\", null));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"OrderedList\" &&\n (match = /^( *)\\d+([.)])( *)/.exec(line.text.slice(startPos)))) {\n let after = match[3], len = match[0].length;\n if (after.length >= 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, match[2], node));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"BulletList\" &&\n (match = /^( *)([-+*])( {1,4}\\[[ xX]\\])?( +)/.exec(line.text.slice(startPos)))) {\n let after = match[4], len = match[0].length;\n if (after.length > 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n let type = match[2];\n if (match[3])\n type += match[3].replace(/[xX]/, ' ');\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, type, node));\n }\n }\n return context;\n}\nfunction itemNumber(item, doc) {\n return /^(\\s*)(\\d+)(?=[.)])/.exec(doc.sliceString(item.from, item.from + 10));\n}\nfunction renumberList(after, doc, changes, offset = 0) {\n for (let prev = -1, node = after;;) {\n if (node.name == \"ListItem\") {\n let m = itemNumber(node, doc);\n let number = +m[2];\n if (prev >= 0) {\n if (number != prev + 1)\n return;\n changes.push({ from: node.from + m[1].length, to: node.from + m[0].length, insert: String(prev + 2 + offset) });\n }\n prev = number;\n }\n let next = node.nextSibling;\n if (!next)\n break;\n node = next;\n }\n}\nfunction normalizeIndent(content, state) {\n let blank = /^[ \\t]*/.exec(content)[0].length;\n if (!blank || state.facet(indentUnit) != \"\\t\")\n return content;\n let col = countColumn(content, 4, blank);\n let space = \"\";\n for (let i = col; i > 0;) {\n if (i >= 4) {\n space += \"\\t\";\n i -= 4;\n }\n else {\n space += \" \";\n i--;\n }\n }\n return space + content.slice(blank);\n}\n/**\nThis command, when invoked in Markdown context with cursor\nselection(s), will create a new line with the markup for\nblockquotes and lists that were active on the old line. If the\ncursor was directly after the end of the markup for the old line,\ntrailing whitespace and list markers are removed from that line.\n\nThe command does nothing in non-Markdown context, so it should\nnot be used as the only binding for Enter (even in a Markdown\ndocument, HTML and code regions might use a different language).\n*/\nconst insertNewlineContinueMarkup = ({ state, dispatch }) => {\n let tree = syntaxTree(state), { doc } = state;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty || !markdownLanguage.isActiveAt(state, range.from))\n return dont = { range };\n let pos = range.from, line = doc.lineAt(pos);\n let context = getContext(tree.resolveInner(pos, -1), doc);\n while (context.length && context[context.length - 1].from > pos - line.from)\n context.pop();\n if (!context.length)\n return dont = { range };\n let inner = context[context.length - 1];\n if (inner.to - inner.spaceAfter.length > pos - line.from)\n return dont = { range };\n let emptyLine = pos >= (inner.to - inner.spaceAfter.length) && !/\\S/.test(line.text.slice(inner.to));\n // Empty line in list\n if (inner.item && emptyLine) {\n // First list item or blank line before: delete a level of markup\n if (inner.node.firstChild.to >= pos ||\n line.from > 0 && !/[^\\s>]/.test(doc.lineAt(line.from - 1).text)) {\n let next = context.length > 1 ? context[context.length - 2] : null;\n let delTo, insert = \"\";\n if (next && next.item) { // Re-add marker for the list at the next level\n delTo = line.from + next.from;\n insert = next.marker(doc, 1);\n }\n else {\n delTo = line.from + (next ? next.to : 0);\n }\n let changes = [{ from: delTo, to: pos, insert }];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes, -2);\n if (next && next.node.name == \"OrderedList\")\n renumberList(next.item, doc, changes);\n return { range: EditorSelection.cursor(delTo + insert.length), changes };\n }\n else { // Move this line down\n let insert = \"\";\n for (let i = 0, e = context.length - 2; i <= e; i++) {\n insert += context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null, i < e);\n }\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(pos + insert.length + 1),\n changes: { from: line.from, insert: insert + state.lineBreak } };\n }\n }\n if (inner.node.name == \"Blockquote\" && emptyLine && line.from) {\n let prevLine = doc.lineAt(line.from - 1), quoted = />\\s*$/.exec(prevLine.text);\n // Two aligned empty quoted lines in a row\n if (quoted && quoted.index == inner.from) {\n let changes = state.changes([{ from: prevLine.from + quoted.index, to: prevLine.to },\n { from: line.from + inner.from, to: line.to }]);\n return { range: range.map(changes), changes };\n }\n }\n let changes = [];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes);\n let continued = inner.item && inner.item.from < line.from;\n let insert = \"\";\n // If not dedented\n if (!continued || /^[\\s\\d.)\\-+*>]*/.exec(line.text)[0].length >= inner.to) {\n for (let i = 0, e = context.length - 1; i <= e; i++) {\n insert += i == e && !continued ? context[i].marker(doc, 1)\n : context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null);\n }\n }\n let from = pos;\n while (from > line.from && /\\s/.test(line.text.charAt(from - line.from - 1)))\n from--;\n insert = normalizeIndent(insert, state);\n changes.push({ from, to: pos, insert: state.lineBreak + insert });\n return { range: EditorSelection.cursor(from + insert.length + 1), changes };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isMark(node) {\n return node.name == \"QuoteMark\" || node.name == \"ListMark\";\n}\nfunction contextNodeForDelete(tree, pos) {\n let node = tree.resolveInner(pos, -1), scan = pos;\n if (isMark(node)) {\n scan = node.from;\n node = node.parent;\n }\n for (let prev; prev = node.childBefore(scan);) {\n if (isMark(prev)) {\n scan = prev.from;\n }\n else if (prev.name == \"OrderedList\" || prev.name == \"BulletList\") {\n node = prev.lastChild;\n scan = node.to;\n }\n else {\n break;\n }\n }\n return node;\n}\n/**\nThis command will, when invoked in a Markdown context with the\ncursor directly after list or blockquote markup, delete one level\nof markup. When the markup is for a list, it will be replaced by\nspaces on the first invocation (a further invocation will delete\nthe spaces), to make it easy to continue a list.\n\nWhen not after Markdown block markup, this command will return\nfalse, so it is intended to be bound alongside other deletion\ncommands, with a higher precedence than the more generic commands.\n*/\nconst deleteMarkupBackward = ({ state, dispatch }) => {\n let tree = syntaxTree(state);\n let dont = null, changes = state.changeByRange(range => {\n let pos = range.from, { doc } = state;\n if (range.empty && markdownLanguage.isActiveAt(state, range.from)) {\n let line = doc.lineAt(pos);\n let context = getContext(contextNodeForDelete(tree, pos), doc);\n if (context.length) {\n let inner = context[context.length - 1];\n let spaceEnd = inner.to - inner.spaceAfter.length + (inner.spaceAfter ? 1 : 0);\n // Delete extra trailing space after markup\n if (pos - line.from > spaceEnd && !/\\S/.test(line.text.slice(spaceEnd, pos - line.from)))\n return { range: EditorSelection.cursor(line.from + spaceEnd),\n changes: { from: line.from + spaceEnd, to: pos } };\n if (pos - line.from == spaceEnd &&\n // Only apply this if we're on the line that has the\n // construct's syntax, or there's only indentation in the\n // target range\n (!inner.item || line.from <= inner.item.from || !/\\S/.test(line.text.slice(0, inner.to)))) {\n let start = line.from + inner.from;\n // Replace a list item marker with blank space\n if (inner.item && inner.node.from < inner.item.from && /\\S/.test(line.text.slice(inner.from, inner.to))) {\n let insert = inner.blank(countColumn(line.text, 4, inner.to) - countColumn(line.text, 4, inner.from));\n if (start == line.from)\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(start + insert.length),\n changes: { from: start, to: line.from + inner.to, insert } };\n }\n // Delete one level of indentation\n if (start < pos)\n return { range: EditorSelection.cursor(start), changes: { from: start, to: pos } };\n }\n }\n }\n return dont = { range };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete\" }));\n return true;\n};\n\n/**\nA small keymap with Markdown-specific bindings. Binds Enter to\n[`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup)\nand Backspace to\n[`deleteMarkupBackward`](https://codemirror.net/6/docs/ref/#lang-markdown.deleteMarkupBackward).\n*/\nconst markdownKeymap = [\n { key: \"Enter\", run: insertNewlineContinueMarkup },\n { key: \"Backspace\", run: deleteMarkupBackward }\n];\nconst htmlNoMatch = /*@__PURE__*/html({ matchClosingTags: false });\n/**\nMarkdown language support.\n*/\nfunction markdown(config = {}) {\n let { codeLanguages, defaultCodeLanguage, addKeymap = true, base: { parser } = commonmarkLanguage, completeHTMLTags = true } = config;\n if (!(parser instanceof MarkdownParser))\n throw new RangeError(\"Base parser provided to `markdown` should be a Markdown parser\");\n let extensions = config.extensions ? [config.extensions] : [];\n let support = [htmlNoMatch.support], defaultCode;\n if (defaultCodeLanguage instanceof LanguageSupport) {\n support.push(defaultCodeLanguage.support);\n defaultCode = defaultCodeLanguage.language;\n }\n else if (defaultCodeLanguage) {\n defaultCode = defaultCodeLanguage;\n }\n let codeParser = codeLanguages || defaultCode ? getCodeParser(codeLanguages, defaultCode) : undefined;\n extensions.push(parseCode({ codeParser, htmlParser: htmlNoMatch.language.parser }));\n if (addKeymap)\n support.push(Prec.high(keymap.of(markdownKeymap)));\n let lang = mkLang(parser.configure(extensions));\n if (completeHTMLTags)\n support.push(lang.data.of({ autocomplete: htmlTagCompletion }));\n return new LanguageSupport(lang, support);\n}\nfunction htmlTagCompletion(context) {\n let { state, pos } = context, m = /<[:\\-\\.\\w\\u00b7-\\uffff]*$/.exec(state.sliceDoc(pos - 25, pos));\n if (!m)\n return null;\n let tree = syntaxTree(state).resolveInner(pos, -1);\n while (tree && !tree.type.isTop) {\n if (tree.name == \"CodeBlock\" || tree.name == \"FencedCode\" || tree.name == \"ProcessingInstructionBlock\" ||\n tree.name == \"CommentBlock\" || tree.name == \"Link\" || tree.name == \"Image\")\n return null;\n tree = tree.parent;\n }\n return {\n from: pos - m[0].length, to: pos,\n options: htmlTagCompletions(),\n validFor: /^<[:\\-\\.\\w\\u00b7-\\uffff]*$/\n };\n}\nlet _tagCompletions = null;\nfunction htmlTagCompletions() {\n if (_tagCompletions)\n return _tagCompletions;\n let result = htmlCompletionSource(new CompletionContext(EditorState.create({ extensions: htmlNoMatch }), 0, true));\n return _tagCompletions = result ? result.options : [];\n}\n\nexport { commonmarkLanguage, deleteMarkupBackward, insertNewlineContinueMarkup, markdown, markdownKeymap, markdownLanguage };\n"],"names":["CompositeBlock","create","type","value","from","parentHash","end","constructor","hash","children","positions","this","hashProp","NodeProp","contextHash","addChild","child","pos","prop","Tree","length","push","toTree","nodeSet","last","Math","max","types","balance","makeTree","NodeType","none","Type","LeafBlock","start","content","marks","parsers","Line","text","baseIndent","basePos","depth","markers","indent","next","forward","forwardInner","newPos","skipSpace","countIndent","charCodeAt","reset","pop","moveBase","to","moveBaseColumn","findColumn","addMarker","elt","i","goal","scrub","result","slice","skipForList","bl","cx","line","block","stack","size","OrderedList","isOrderedList","isBulletList","BulletList","isHorizontalRule","DefaultSkipMarkup","Blockquote","QuoteMark","lineStart","space","ListItem","_cx","Document","ch","skipSpaceBack","isFencedCode","isBlockquote","breaking","count","isSetextUnderline","parser","leafBlockParsers","indexOf","DefaultLeafBlocks","SetextHeading","inList","isAtxHeading","EmptyLine","CommentEnd","ProcessingEnd","HTMLBlockStyle","isHTMLBlock","rest","e","test","getListIndent","indentAfter","indented","addCodeText","CodeText","DefaultBlockParsers","LinkReference","undefined","IndentedCode","base","pendingMarks","nextLine","m","codeStart","filter","concat","addNode","buffer","writeElements","finish","CodeBlock","FencedCode","fenceEnd","len","infoFrom","infoTo","CodeMark","CodeInfo","first","textStart","textEnd","prevLineEnd","startContext","HorizontalRule","newBase","ListMark","ATXHeading","off","endOfSpace","after","buf","write","HeaderMark","parseInline","node","ATXHeading1","HTMLBlock","trailing","nodeType","CommentBlock","ProcessingInstructionBlock","LinkReferenceParser","leaf","stage","elts","advance","complete","addLeafElement","nextStage","parseLinkLabel","LinkMark","skip","title","parseLinkTitle","titleEnd","lineEnd","parseURL","SetextHeadingParser","underline","underlineMark","SetextHeading1","SetextHeading2","_","DefaultEndLeaf","p","scanLineResult","BlockContext","input","fragments","ranges","atEnd","reusePlaceholders","Map","stoppedAt","rangeI","absoluteLineStart","absoluteLineEnd","FragmentCursor","readLine","parsedPos","markI","mark","finishContext","reuseFragment","blockParsers","parse","lines","stop","endLeafBlock","finishLeaf","stopAt","RangeError","moveTo","matches","taken","takeNodes","toRelative","moveRangeI","parentType","peekLine","scanLine","r","lineChunkAt","textOffset","nextFrom","handler","skipContextMarkup","Error","chunk","lineChunks","eol","startComposite","getNodeType","addElement","injectMarks","top","addGaps","tree","injectGaps","topNode","inline","Paragraph","TreeElement","Buffer","offset","dummies","rangeEnd","movePastNext","upto","inclusive","firstChild","nextSibling","reuse","get","propValues","MarkdownParser","Parser","blockNames","inlineParsers","inlineNames","wrappers","super","nodeTypes","Object","t","name","id","createParse","w","configure","spec","config","resolveConfig","nonEmpty","defineNodes","assign","styles","s","composite","style","some","group","define","props","Array","isArray","Tag","NodeSet","extend","styleTags","remove","rm","parseBlock","found","before","findName","splice","endLeaf","wrap","InlineContext","outer","char","token","resolveMarkers","a","conf","conc","b","wrapA","wrapB","inner","names","Escape","nodes","writeTo","build","reused","topID","Element","startOff","EmphasisUnderscore","resolve","EmphasisAsterisk","LinkStart","ImageStart","InlineDelimiter","side","Escapable","Punctuation","RegExp","DefaultInline","escaped","append","Entity","exec","InlineCode","curSize","HTMLTag","url","Autolink","URL","comment","Comment","procInst","ProcessingInstruction","Emphasis","pBefore","pAfter","sBefore","sAfter","leftFlanking","rightFlanking","canOpen","canClose","HardBreak","Link","Image","LinkEnd","parts","part","takeContent","link","finishLink","j","startPos","endPos","unshift","dest","label","LinkTitle","requireNonWS","min","LinkLabel","addDelimiter","open","close","hasOpenLink","emp","closeSize","k","element","findOpeningDelimiter","startIndex","elements","eI","NotLast","fragment","fragmentEnd","cursor","nextFragment","read","c","rPos","parent","childAfter","cur","fragEnd","openEnd","blockI","prevEnd","prevI","isAnonymous","dummy","set","is","abs","gapFrom","gapTo","markdownHighlighting","tags","quote","contentSeparator","heading1","heading2","heading3","heading4","heading5","heading6","escape","character","emphasis","strong","list","monospace","processingInstruction","labelName","string","keys","map","n","leftOverSpace","nextPos","StrikethroughDelim","Strikethrough","strikethrough","parseRow","startI","cellStart","cellEnd","esc","parseCell","hasPipe","str","delimiterLine","TableParser","rows","lineText","firstRow","Table","heading","TaskParser","TaskList","atom","autolinkRE","urlRE","lastTwoDomainWords","emailRE","xmppResourceRE","autolinkEmailEnd","lastIndex","GFM","absPos","index","autolinkURLEnd","parseSubSuper","Superscript","special","Subscript","Emoji","match","data","defineLanguageFacet","commentTokens","headingProp","commonmark","foldNodeProp","add","isHeading","state","doc","lineAt","indentNodeProp","languageDataProp","findSectionEnd","headerNode","level","headerIndent","foldService","of","syntaxTree","resolveInner","mkLang","Language","commonmarkLanguage","markdownLanguage","Context","spaceBefore","spaceAfter","item","blank","maxWidth","marker","number","String","itemNumber","getContext","context","replace","sliceString","renumberList","changes","prev","insert","normalizeIndent","facet","indentUnit","countColumn","insertNewlineContinueMarkup","dispatch","dont","changeByRange","range","empty","isActiveAt","emptyLine","delTo","EditorSelection","lineBreak","prevLine","quoted","continued","charAt","update","scrollIntoView","userEvent","isMark","deleteMarkupBackward","scan","childBefore","lastChild","contextNodeForDelete","spaceEnd","markdownKeymap","key","run","htmlNoMatch","html","matchClosingTags","markdown","codeLanguages","defaultCodeLanguage","addKeymap","completeHTMLTags","defaultCode","extensions","support","LanguageSupport","language","codeParser","languages","defaultLanguage","info","LanguageDescription","matchLanguageName","ParseContext","getSkippingParser","load","htmlParser","parseMixed","overlay","infoNode","getChild","parseCode","Prec","high","keymap","lang","autocomplete","htmlTagCompletion","sliceDoc","isTop","options","htmlTagCompletions","validFor","_tagCompletions","htmlCompletionSource","CompletionContext","EditorState"],"mappings":"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","x_google_ignoreList":[0,1]}
|
1
|
+
{"version":3,"file":"markdown.js","sources":["../node_modules/@lezer/markdown/dist/index.js","../node_modules/@codemirror/lang-markdown/dist/index.js"],"sourcesContent":["import { NodeType, NodeProp, NodeSet, Tree, Parser, parseMixed } from '@lezer/common';\nimport { styleTags, tags, Tag } from '@lezer/highlight';\n\nclass CompositeBlock {\n static create(type, value, from, parentHash, end) {\n let hash = (parentHash + (parentHash << 8) + type + (value << 4)) | 0;\n return new CompositeBlock(type, value, from, hash, end, [], []);\n }\n constructor(type, \n // Used for indentation in list items, markup character in lists\n value, from, hash, end, children, positions) {\n this.type = type;\n this.value = value;\n this.from = from;\n this.hash = hash;\n this.end = end;\n this.children = children;\n this.positions = positions;\n this.hashProp = [[NodeProp.contextHash, hash]];\n }\n addChild(child, pos) {\n if (child.prop(NodeProp.contextHash) != this.hash)\n child = new Tree(child.type, child.children, child.positions, child.length, this.hashProp);\n this.children.push(child);\n this.positions.push(pos);\n }\n toTree(nodeSet, end = this.end) {\n let last = this.children.length - 1;\n if (last >= 0)\n end = Math.max(end, this.positions[last] + this.children[last].length + this.from);\n return new Tree(nodeSet.types[this.type], this.children, this.positions, end - this.from).balance({\n makeTree: (children, positions, length) => new Tree(NodeType.none, children, positions, length, this.hashProp)\n });\n }\n}\nvar Type;\n(function (Type) {\n Type[Type[\"Document\"] = 1] = \"Document\";\n Type[Type[\"CodeBlock\"] = 2] = \"CodeBlock\";\n Type[Type[\"FencedCode\"] = 3] = \"FencedCode\";\n Type[Type[\"Blockquote\"] = 4] = \"Blockquote\";\n Type[Type[\"HorizontalRule\"] = 5] = \"HorizontalRule\";\n Type[Type[\"BulletList\"] = 6] = \"BulletList\";\n Type[Type[\"OrderedList\"] = 7] = \"OrderedList\";\n Type[Type[\"ListItem\"] = 8] = \"ListItem\";\n Type[Type[\"ATXHeading1\"] = 9] = \"ATXHeading1\";\n Type[Type[\"ATXHeading2\"] = 10] = \"ATXHeading2\";\n Type[Type[\"ATXHeading3\"] = 11] = \"ATXHeading3\";\n Type[Type[\"ATXHeading4\"] = 12] = \"ATXHeading4\";\n Type[Type[\"ATXHeading5\"] = 13] = \"ATXHeading5\";\n Type[Type[\"ATXHeading6\"] = 14] = \"ATXHeading6\";\n Type[Type[\"SetextHeading1\"] = 15] = \"SetextHeading1\";\n Type[Type[\"SetextHeading2\"] = 16] = \"SetextHeading2\";\n Type[Type[\"HTMLBlock\"] = 17] = \"HTMLBlock\";\n Type[Type[\"LinkReference\"] = 18] = \"LinkReference\";\n Type[Type[\"Paragraph\"] = 19] = \"Paragraph\";\n Type[Type[\"CommentBlock\"] = 20] = \"CommentBlock\";\n Type[Type[\"ProcessingInstructionBlock\"] = 21] = \"ProcessingInstructionBlock\";\n // Inline\n Type[Type[\"Escape\"] = 22] = \"Escape\";\n Type[Type[\"Entity\"] = 23] = \"Entity\";\n Type[Type[\"HardBreak\"] = 24] = \"HardBreak\";\n Type[Type[\"Emphasis\"] = 25] = \"Emphasis\";\n Type[Type[\"StrongEmphasis\"] = 26] = \"StrongEmphasis\";\n Type[Type[\"Link\"] = 27] = \"Link\";\n Type[Type[\"Image\"] = 28] = \"Image\";\n Type[Type[\"InlineCode\"] = 29] = \"InlineCode\";\n Type[Type[\"HTMLTag\"] = 30] = \"HTMLTag\";\n Type[Type[\"Comment\"] = 31] = \"Comment\";\n Type[Type[\"ProcessingInstruction\"] = 32] = \"ProcessingInstruction\";\n Type[Type[\"Autolink\"] = 33] = \"Autolink\";\n // Smaller tokens\n Type[Type[\"HeaderMark\"] = 34] = \"HeaderMark\";\n Type[Type[\"QuoteMark\"] = 35] = \"QuoteMark\";\n Type[Type[\"ListMark\"] = 36] = \"ListMark\";\n Type[Type[\"LinkMark\"] = 37] = \"LinkMark\";\n Type[Type[\"EmphasisMark\"] = 38] = \"EmphasisMark\";\n Type[Type[\"CodeMark\"] = 39] = \"CodeMark\";\n Type[Type[\"CodeText\"] = 40] = \"CodeText\";\n Type[Type[\"CodeInfo\"] = 41] = \"CodeInfo\";\n Type[Type[\"LinkTitle\"] = 42] = \"LinkTitle\";\n Type[Type[\"LinkLabel\"] = 43] = \"LinkLabel\";\n Type[Type[\"URL\"] = 44] = \"URL\";\n})(Type || (Type = {}));\n/**\nData structure used to accumulate a block's content during [leaf\nblock parsing](#BlockParser.leaf).\n*/\nclass LeafBlock {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the block.\n */\n start, \n /**\n The block's text content.\n */\n content) {\n this.start = start;\n this.content = content;\n /**\n @internal\n */\n this.marks = [];\n /**\n The block parsers active for this block.\n */\n this.parsers = [];\n }\n}\n/**\nData structure used during block-level per-line parsing.\n*/\nclass Line {\n constructor() {\n /**\n The line's full text.\n */\n this.text = \"\";\n /**\n The base indent provided by the composite contexts (that have\n been handled so far).\n */\n this.baseIndent = 0;\n /**\n The string position corresponding to the base indent.\n */\n this.basePos = 0;\n /**\n The number of contexts handled @internal\n */\n this.depth = 0;\n /**\n Any markers (i.e. block quote markers) parsed for the contexts. @internal\n */\n this.markers = [];\n /**\n The position of the next non-whitespace character beyond any\n list, blockquote, or other composite block markers.\n */\n this.pos = 0;\n /**\n The column of the next non-whitespace character.\n */\n this.indent = 0;\n /**\n The character code of the character after `pos`.\n */\n this.next = -1;\n }\n /**\n @internal\n */\n forward() {\n if (this.basePos > this.pos)\n this.forwardInner();\n }\n /**\n @internal\n */\n forwardInner() {\n let newPos = this.skipSpace(this.basePos);\n this.indent = this.countIndent(newPos, this.pos, this.indent);\n this.pos = newPos;\n this.next = newPos == this.text.length ? -1 : this.text.charCodeAt(newPos);\n }\n /**\n Skip whitespace after the given position, return the position of\n the next non-space character or the end of the line if there's\n only space after `from`.\n */\n skipSpace(from) { return skipSpace(this.text, from); }\n /**\n @internal\n */\n reset(text) {\n this.text = text;\n this.baseIndent = this.basePos = this.pos = this.indent = 0;\n this.forwardInner();\n this.depth = 1;\n while (this.markers.length)\n this.markers.pop();\n }\n /**\n Move the line's base position forward to the given position.\n This should only be called by composite [block\n parsers](#BlockParser.parse) or [markup skipping\n functions](#NodeSpec.composite).\n */\n moveBase(to) {\n this.basePos = to;\n this.baseIndent = this.countIndent(to, this.pos, this.indent);\n }\n /**\n Move the line's base position forward to the given _column_.\n */\n moveBaseColumn(indent) {\n this.baseIndent = indent;\n this.basePos = this.findColumn(indent);\n }\n /**\n Store a composite-block-level marker. Should be called from\n [markup skipping functions](#NodeSpec.composite) when they\n consume any non-whitespace characters.\n */\n addMarker(elt) {\n this.markers.push(elt);\n }\n /**\n Find the column position at `to`, optionally starting at a given\n position and column.\n */\n countIndent(to, from = 0, indent = 0) {\n for (let i = from; i < to; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return indent;\n }\n /**\n Find the position corresponding to the given column.\n */\n findColumn(goal) {\n let i = 0;\n for (let indent = 0; i < this.text.length && indent < goal; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return i;\n }\n /**\n @internal\n */\n scrub() {\n if (!this.baseIndent)\n return this.text;\n let result = \"\";\n for (let i = 0; i < this.basePos; i++)\n result += \" \";\n return result + this.text.slice(this.basePos);\n }\n}\nfunction skipForList(bl, cx, line) {\n if (line.pos == line.text.length ||\n (bl != cx.block && line.indent >= cx.stack[line.depth + 1].value + line.baseIndent))\n return true;\n if (line.indent >= line.baseIndent + 4)\n return false;\n let size = (bl.type == Type.OrderedList ? isOrderedList : isBulletList)(line, cx, false);\n return size > 0 &&\n (bl.type != Type.BulletList || isHorizontalRule(line, cx, false) < 0) &&\n line.text.charCodeAt(line.pos + size - 1) == bl.value;\n}\nconst DefaultSkipMarkup = {\n [Type.Blockquote](bl, cx, line) {\n if (line.next != 62 /* '>' */)\n return false;\n line.markers.push(elt(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1));\n line.moveBase(line.pos + (space(line.text.charCodeAt(line.pos + 1)) ? 2 : 1));\n bl.end = cx.lineStart + line.text.length;\n return true;\n },\n [Type.ListItem](bl, _cx, line) {\n if (line.indent < line.baseIndent + bl.value && line.next > -1)\n return false;\n line.moveBaseColumn(line.baseIndent + bl.value);\n return true;\n },\n [Type.OrderedList]: skipForList,\n [Type.BulletList]: skipForList,\n [Type.Document]() { return true; }\n};\nfunction space(ch) { return ch == 32 || ch == 9 || ch == 10 || ch == 13; }\nfunction skipSpace(line, i = 0) {\n while (i < line.length && space(line.charCodeAt(i)))\n i++;\n return i;\n}\nfunction skipSpaceBack(line, i, to) {\n while (i > to && space(line.charCodeAt(i - 1)))\n i--;\n return i;\n}\nfunction isFencedCode(line) {\n if (line.next != 96 && line.next != 126 /* '`~' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n if (pos < line.pos + 3)\n return -1;\n if (line.next == 96)\n for (let i = pos; i < line.text.length; i++)\n if (line.text.charCodeAt(i) == 96)\n return -1;\n return pos;\n}\nfunction isBlockquote(line) {\n return line.next != 62 /* '>' */ ? -1 : line.text.charCodeAt(line.pos + 1) == 32 ? 2 : 1;\n}\nfunction isHorizontalRule(line, cx, breaking) {\n if (line.next != 42 && line.next != 45 && line.next != 95 /* '_-*' */)\n return -1;\n let count = 1;\n for (let pos = line.pos + 1; pos < line.text.length; pos++) {\n let ch = line.text.charCodeAt(pos);\n if (ch == line.next)\n count++;\n else if (!space(ch))\n return -1;\n }\n // Setext headers take precedence\n if (breaking && line.next == 45 && isSetextUnderline(line) > -1 && line.depth == cx.stack.length &&\n cx.parser.leafBlockParsers.indexOf(DefaultLeafBlocks.SetextHeading) > -1)\n return -1;\n return count < 3 ? -1 : 1;\n}\nfunction inList(cx, type) {\n for (let i = cx.stack.length - 1; i >= 0; i--)\n if (cx.stack[i].type == type)\n return true;\n return false;\n}\nfunction isBulletList(line, cx, breaking) {\n return (line.next == 45 || line.next == 43 || line.next == 42 /* '-+*' */) &&\n (line.pos == line.text.length - 1 || space(line.text.charCodeAt(line.pos + 1))) &&\n (!breaking || inList(cx, Type.BulletList) || line.skipSpace(line.pos + 2) < line.text.length) ? 1 : -1;\n}\nfunction isOrderedList(line, cx, breaking) {\n let pos = line.pos, next = line.next;\n for (;;) {\n if (next >= 48 && next <= 57 /* '0-9' */)\n pos++;\n else\n break;\n if (pos == line.text.length)\n return -1;\n next = line.text.charCodeAt(pos);\n }\n if (pos == line.pos || pos > line.pos + 9 ||\n (next != 46 && next != 41 /* '.)' */) ||\n (pos < line.text.length - 1 && !space(line.text.charCodeAt(pos + 1))) ||\n breaking && !inList(cx, Type.OrderedList) &&\n (line.skipSpace(pos + 1) == line.text.length || pos > line.pos + 1 || line.next != 49 /* '1' */))\n return -1;\n return pos + 1 - line.pos;\n}\nfunction isAtxHeading(line) {\n if (line.next != 35 /* '#' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == 35)\n pos++;\n if (pos < line.text.length && line.text.charCodeAt(pos) != 32)\n return -1;\n let size = pos - line.pos;\n return size > 6 ? -1 : size;\n}\nfunction isSetextUnderline(line) {\n if (line.next != 45 && line.next != 61 /* '-=' */ || line.indent >= line.baseIndent + 4)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n let end = pos;\n while (pos < line.text.length && space(line.text.charCodeAt(pos)))\n pos++;\n return pos == line.text.length ? end : -1;\n}\nconst EmptyLine = /^[ \\t]*$/, CommentEnd = /-->/, ProcessingEnd = /\\?>/;\nconst HTMLBlockStyle = [\n [/^<(?:script|pre|style)(?:\\s|>|$)/i, /<\\/(?:script|pre|style)>/i],\n [/^\\s*<!--/, CommentEnd],\n [/^\\s*<\\?/, ProcessingEnd],\n [/^\\s*<![A-Z]/, />/],\n [/^\\s*<!\\[CDATA\\[/, /\\]\\]>/],\n [/^\\s*<\\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|\\/?>|$)/i, EmptyLine],\n [/^\\s*(?:<\\/[a-z][\\w-]*\\s*>|<[a-z][\\w-]*(\\s+[a-z:_][\\w-.]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*>)\\s*$/i, EmptyLine]\n];\nfunction isHTMLBlock(line, _cx, breaking) {\n if (line.next != 60 /* '<' */)\n return -1;\n let rest = line.text.slice(line.pos);\n for (let i = 0, e = HTMLBlockStyle.length - (breaking ? 1 : 0); i < e; i++)\n if (HTMLBlockStyle[i][0].test(rest))\n return i;\n return -1;\n}\nfunction getListIndent(line, pos) {\n let indentAfter = line.countIndent(pos, line.pos, line.indent);\n let indented = line.countIndent(line.skipSpace(pos), pos, indentAfter);\n return indented >= indentAfter + 5 ? indentAfter + 1 : indented;\n}\nfunction addCodeText(marks, from, to) {\n let last = marks.length - 1;\n if (last >= 0 && marks[last].to == from && marks[last].type == Type.CodeText)\n marks[last].to = to;\n else\n marks.push(elt(Type.CodeText, from, to));\n}\n// Rules for parsing blocks. A return value of false means the rule\n// doesn't apply here, true means it does. When true is returned and\n// `p.line` has been updated, the rule is assumed to have consumed a\n// leaf block. Otherwise, it is assumed to have opened a context.\nconst DefaultBlockParsers = {\n LinkReference: undefined,\n IndentedCode(cx, line) {\n let base = line.baseIndent + 4;\n if (line.indent < base)\n return false;\n let start = line.findColumn(base);\n let from = cx.lineStart + start, to = cx.lineStart + line.text.length;\n let marks = [], pendingMarks = [];\n addCodeText(marks, from, to);\n while (cx.nextLine() && line.depth >= cx.stack.length) {\n if (line.pos == line.text.length) { // Empty\n addCodeText(pendingMarks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n pendingMarks.push(m);\n }\n else if (line.indent < base) {\n break;\n }\n else {\n if (pendingMarks.length) {\n for (let m of pendingMarks) {\n if (m.type == Type.CodeText)\n addCodeText(marks, m.from, m.to);\n else\n marks.push(m);\n }\n pendingMarks = [];\n }\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n to = cx.lineStart + line.text.length;\n let codeStart = cx.lineStart + line.findColumn(line.baseIndent + 4);\n if (codeStart < to)\n addCodeText(marks, codeStart, to);\n }\n }\n if (pendingMarks.length) {\n pendingMarks = pendingMarks.filter(m => m.type != Type.CodeText);\n if (pendingMarks.length)\n line.markers = pendingMarks.concat(line.markers);\n }\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(Type.CodeBlock, to - from), from);\n return true;\n },\n FencedCode(cx, line) {\n let fenceEnd = isFencedCode(line);\n if (fenceEnd < 0)\n return false;\n let from = cx.lineStart + line.pos, ch = line.next, len = fenceEnd - line.pos;\n let infoFrom = line.skipSpace(fenceEnd), infoTo = skipSpaceBack(line.text, line.text.length, infoFrom);\n let marks = [elt(Type.CodeMark, from, from + len)];\n if (infoFrom < infoTo)\n marks.push(elt(Type.CodeInfo, cx.lineStart + infoFrom, cx.lineStart + infoTo));\n for (let first = true; cx.nextLine() && line.depth >= cx.stack.length; first = false) {\n let i = line.pos;\n if (line.indent - line.baseIndent < 4)\n while (i < line.text.length && line.text.charCodeAt(i) == ch)\n i++;\n if (i - line.pos >= len && line.skipSpace(i) == line.text.length) {\n for (let m of line.markers)\n marks.push(m);\n marks.push(elt(Type.CodeMark, cx.lineStart + line.pos, cx.lineStart + i));\n cx.nextLine();\n break;\n }\n else {\n if (!first)\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n let textStart = cx.lineStart + line.basePos, textEnd = cx.lineStart + line.text.length;\n if (textStart < textEnd)\n addCodeText(marks, textStart, textEnd);\n }\n }\n cx.addNode(cx.buffer.writeElements(marks, -from)\n .finish(Type.FencedCode, cx.prevLineEnd() - from), from);\n return true;\n },\n Blockquote(cx, line) {\n let size = isBlockquote(line);\n if (size < 0)\n return false;\n cx.startContext(Type.Blockquote, line.pos);\n cx.addNode(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1);\n line.moveBase(line.pos + size);\n return null;\n },\n HorizontalRule(cx, line) {\n if (isHorizontalRule(line, cx, false) < 0)\n return false;\n let from = cx.lineStart + line.pos;\n cx.nextLine();\n cx.addNode(Type.HorizontalRule, from);\n return true;\n },\n BulletList(cx, line) {\n let size = isBulletList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.BulletList)\n cx.startContext(Type.BulletList, line.basePos, line.next);\n let newBase = getListIndent(line, line.pos + 1);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n OrderedList(cx, line) {\n let size = isOrderedList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.OrderedList)\n cx.startContext(Type.OrderedList, line.basePos, line.text.charCodeAt(line.pos + size - 1));\n let newBase = getListIndent(line, line.pos + size);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n ATXHeading(cx, line) {\n let size = isAtxHeading(line);\n if (size < 0)\n return false;\n let off = line.pos, from = cx.lineStart + off;\n let endOfSpace = skipSpaceBack(line.text, line.text.length, off), after = endOfSpace;\n while (after > off && line.text.charCodeAt(after - 1) == line.next)\n after--;\n if (after == endOfSpace || after == off || !space(line.text.charCodeAt(after - 1)))\n after = line.text.length;\n let buf = cx.buffer\n .write(Type.HeaderMark, 0, size)\n .writeElements(cx.parser.parseInline(line.text.slice(off + size + 1, after), from + size + 1), -from);\n if (after < line.text.length)\n buf.write(Type.HeaderMark, after - off, endOfSpace - off);\n let node = buf.finish(Type.ATXHeading1 - 1 + size, line.text.length - off);\n cx.nextLine();\n cx.addNode(node, from);\n return true;\n },\n HTMLBlock(cx, line) {\n let type = isHTMLBlock(line, cx, false);\n if (type < 0)\n return false;\n let from = cx.lineStart + line.pos, end = HTMLBlockStyle[type][1];\n let marks = [], trailing = end != EmptyLine;\n while (!end.test(line.text) && cx.nextLine()) {\n if (line.depth < cx.stack.length) {\n trailing = false;\n break;\n }\n for (let m of line.markers)\n marks.push(m);\n }\n if (trailing)\n cx.nextLine();\n let nodeType = end == CommentEnd ? Type.CommentBlock : end == ProcessingEnd ? Type.ProcessingInstructionBlock : Type.HTMLBlock;\n let to = cx.prevLineEnd();\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(nodeType, to - from), from);\n return true;\n },\n SetextHeading: undefined // Specifies relative precedence for block-continue function\n};\n// This implements a state machine that incrementally parses link references. At each\n// next line, it looks ahead to see if the line continues the reference or not. If it\n// doesn't and a valid link is available ending before that line, it finishes that.\n// Similarly, on `finish` (when the leaf is terminated by external circumstances), it\n// creates a link reference if there's a valid reference up to the current point.\nclass LinkReferenceParser {\n constructor(leaf) {\n this.stage = 0 /* RefStage.Start */;\n this.elts = [];\n this.pos = 0;\n this.start = leaf.start;\n this.advance(leaf.content);\n }\n nextLine(cx, line, leaf) {\n if (this.stage == -1 /* RefStage.Failed */)\n return false;\n let content = leaf.content + \"\\n\" + line.scrub();\n let finish = this.advance(content);\n if (finish > -1 && finish < content.length)\n return this.complete(cx, leaf, finish);\n return false;\n }\n finish(cx, leaf) {\n if ((this.stage == 2 /* RefStage.Link */ || this.stage == 3 /* RefStage.Title */) && skipSpace(leaf.content, this.pos) == leaf.content.length)\n return this.complete(cx, leaf, leaf.content.length);\n return false;\n }\n complete(cx, leaf, len) {\n cx.addLeafElement(leaf, elt(Type.LinkReference, this.start, this.start + len, this.elts));\n return true;\n }\n nextStage(elt) {\n if (elt) {\n this.pos = elt.to - this.start;\n this.elts.push(elt);\n this.stage++;\n return true;\n }\n if (elt === false)\n this.stage = -1 /* RefStage.Failed */;\n return false;\n }\n advance(content) {\n for (;;) {\n if (this.stage == -1 /* RefStage.Failed */) {\n return -1;\n }\n else if (this.stage == 0 /* RefStage.Start */) {\n if (!this.nextStage(parseLinkLabel(content, this.pos, this.start, true)))\n return -1;\n if (content.charCodeAt(this.pos) != 58 /* ':' */)\n return this.stage = -1 /* RefStage.Failed */;\n this.elts.push(elt(Type.LinkMark, this.pos + this.start, this.pos + this.start + 1));\n this.pos++;\n }\n else if (this.stage == 1 /* RefStage.Label */) {\n if (!this.nextStage(parseURL(content, skipSpace(content, this.pos), this.start)))\n return -1;\n }\n else if (this.stage == 2 /* RefStage.Link */) {\n let skip = skipSpace(content, this.pos), end = 0;\n if (skip > this.pos) {\n let title = parseLinkTitle(content, skip, this.start);\n if (title) {\n let titleEnd = lineEnd(content, title.to - this.start);\n if (titleEnd > 0) {\n this.nextStage(title);\n end = titleEnd;\n }\n }\n }\n if (!end)\n end = lineEnd(content, this.pos);\n return end > 0 && end < content.length ? end : -1;\n }\n else { // RefStage.Title\n return lineEnd(content, this.pos);\n }\n }\n }\n}\nfunction lineEnd(text, pos) {\n for (; pos < text.length; pos++) {\n let next = text.charCodeAt(pos);\n if (next == 10)\n break;\n if (!space(next))\n return -1;\n }\n return pos;\n}\nclass SetextHeadingParser {\n nextLine(cx, line, leaf) {\n let underline = line.depth < cx.stack.length ? -1 : isSetextUnderline(line);\n let next = line.next;\n if (underline < 0)\n return false;\n let underlineMark = elt(Type.HeaderMark, cx.lineStart + line.pos, cx.lineStart + underline);\n cx.nextLine();\n cx.addLeafElement(leaf, elt(next == 61 ? Type.SetextHeading1 : Type.SetextHeading2, leaf.start, cx.prevLineEnd(), [\n ...cx.parser.parseInline(leaf.content, leaf.start),\n underlineMark\n ]));\n return true;\n }\n finish() {\n return false;\n }\n}\nconst DefaultLeafBlocks = {\n LinkReference(_, leaf) { return leaf.content.charCodeAt(0) == 91 /* '[' */ ? new LinkReferenceParser(leaf) : null; },\n SetextHeading() { return new SetextHeadingParser; }\n};\nconst DefaultEndLeaf = [\n (_, line) => isAtxHeading(line) >= 0,\n (_, line) => isFencedCode(line) >= 0,\n (_, line) => isBlockquote(line) >= 0,\n (p, line) => isBulletList(line, p, true) >= 0,\n (p, line) => isOrderedList(line, p, true) >= 0,\n (p, line) => isHorizontalRule(line, p, true) >= 0,\n (p, line) => isHTMLBlock(line, p, true) >= 0\n];\nconst scanLineResult = { text: \"\", end: 0 };\n/**\nBlock-level parsing functions get access to this context object.\n*/\nclass BlockContext {\n /**\n @internal\n */\n constructor(\n /**\n The parser configuration used.\n */\n parser, \n /**\n @internal\n */\n input, fragments, \n /**\n @internal\n */\n ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.line = new Line();\n this.atEnd = false;\n /**\n For reused nodes on gaps, we can't directly put the original\n node into the tree, since that may be bigger than its parent.\n When this happens, we create a dummy tree that is replaced by\n the proper node in `injectGaps` @internal\n */\n this.reusePlaceholders = new Map;\n this.stoppedAt = null;\n /**\n The range index that absoluteLineStart points into @internal\n */\n this.rangeI = 0;\n this.to = ranges[ranges.length - 1].to;\n this.lineStart = this.absoluteLineStart = this.absoluteLineEnd = ranges[0].from;\n this.block = CompositeBlock.create(Type.Document, 0, this.lineStart, 0, 0);\n this.stack = [this.block];\n this.fragments = fragments.length ? new FragmentCursor(fragments, input) : null;\n this.readLine();\n }\n get parsedPos() {\n return this.absoluteLineStart;\n }\n advance() {\n if (this.stoppedAt != null && this.absoluteLineStart > this.stoppedAt)\n return this.finish();\n let { line } = this;\n for (;;) {\n for (let markI = 0;;) {\n let next = line.depth < this.stack.length ? this.stack[this.stack.length - 1] : null;\n while (markI < line.markers.length && (!next || line.markers[markI].from < next.end)) {\n let mark = line.markers[markI++];\n this.addNode(mark.type, mark.from, mark.to);\n }\n if (!next)\n break;\n this.finishContext();\n }\n if (line.pos < line.text.length)\n break;\n // Empty line\n if (!this.nextLine())\n return this.finish();\n }\n if (this.fragments && this.reuseFragment(line.basePos))\n return null;\n start: for (;;) {\n for (let type of this.parser.blockParsers)\n if (type) {\n let result = type(this, line);\n if (result != false) {\n if (result == true)\n return null;\n line.forward();\n continue start;\n }\n }\n break;\n }\n let leaf = new LeafBlock(this.lineStart + line.pos, line.text.slice(line.pos));\n for (let parse of this.parser.leafBlockParsers)\n if (parse) {\n let parser = parse(this, leaf);\n if (parser)\n leaf.parsers.push(parser);\n }\n lines: while (this.nextLine()) {\n if (line.pos == line.text.length)\n break;\n if (line.indent < line.baseIndent + 4) {\n for (let stop of this.parser.endLeafBlock)\n if (stop(this, line, leaf))\n break lines;\n }\n for (let parser of leaf.parsers)\n if (parser.nextLine(this, line, leaf))\n return null;\n leaf.content += \"\\n\" + line.scrub();\n for (let m of line.markers)\n leaf.marks.push(m);\n }\n this.finishLeaf(leaf);\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n reuseFragment(start) {\n if (!this.fragments.moveTo(this.absoluteLineStart + start, this.absoluteLineStart) ||\n !this.fragments.matches(this.block.hash))\n return false;\n let taken = this.fragments.takeNodes(this);\n if (!taken)\n return false;\n this.absoluteLineStart += taken;\n this.lineStart = toRelative(this.absoluteLineStart, this.ranges);\n this.moveRangeI();\n if (this.absoluteLineStart < this.to) {\n this.lineStart++;\n this.absoluteLineStart++;\n this.readLine();\n }\n else {\n this.atEnd = true;\n this.readLine();\n }\n return true;\n }\n /**\n The number of parent blocks surrounding the current block.\n */\n get depth() {\n return this.stack.length;\n }\n /**\n Get the type of the parent block at the given depth. When no\n depth is passed, return the type of the innermost parent.\n */\n parentType(depth = this.depth - 1) {\n return this.parser.nodeSet.types[this.stack[depth].type];\n }\n /**\n Move to the next input line. This should only be called by\n (non-composite) [block parsers](#BlockParser.parse) that consume\n the line directly, or leaf block parser\n [`nextLine`](#LeafBlockParser.nextLine) methods when they\n consume the current line (and return true).\n */\n nextLine() {\n this.lineStart += this.line.text.length;\n if (this.absoluteLineEnd >= this.to) {\n this.absoluteLineStart = this.absoluteLineEnd;\n this.atEnd = true;\n this.readLine();\n return false;\n }\n else {\n this.lineStart++;\n this.absoluteLineStart = this.absoluteLineEnd + 1;\n this.moveRangeI();\n this.readLine();\n return true;\n }\n }\n /**\n Retrieve the text of the line after the current one, without\n actually moving the context's current line forward.\n */\n peekLine() {\n return this.scanLine(this.absoluteLineEnd + 1).text;\n }\n moveRangeI() {\n while (this.rangeI < this.ranges.length - 1 && this.absoluteLineStart >= this.ranges[this.rangeI].to) {\n this.rangeI++;\n this.absoluteLineStart = Math.max(this.absoluteLineStart, this.ranges[this.rangeI].from);\n }\n }\n /**\n @internal\n Collect the text for the next line.\n */\n scanLine(start) {\n let r = scanLineResult;\n r.end = start;\n if (start >= this.to) {\n r.text = \"\";\n }\n else {\n r.text = this.lineChunkAt(start);\n r.end += r.text.length;\n if (this.ranges.length > 1) {\n let textOffset = this.absoluteLineStart, rangeI = this.rangeI;\n while (this.ranges[rangeI].to < r.end) {\n rangeI++;\n let nextFrom = this.ranges[rangeI].from;\n let after = this.lineChunkAt(nextFrom);\n r.end = nextFrom + after.length;\n r.text = r.text.slice(0, this.ranges[rangeI - 1].to - textOffset) + after;\n textOffset = r.end - r.text.length;\n }\n }\n }\n return r;\n }\n /**\n @internal\n Populate this.line with the content of the next line. Skip\n leading characters covered by composite blocks.\n */\n readLine() {\n let { line } = this, { text, end } = this.scanLine(this.absoluteLineStart);\n this.absoluteLineEnd = end;\n line.reset(text);\n for (; line.depth < this.stack.length; line.depth++) {\n let cx = this.stack[line.depth], handler = this.parser.skipContextMarkup[cx.type];\n if (!handler)\n throw new Error(\"Unhandled block context \" + Type[cx.type]);\n if (!handler(cx, this, line))\n break;\n line.forward();\n }\n }\n lineChunkAt(pos) {\n let next = this.input.chunk(pos), text;\n if (!this.input.lineChunks) {\n let eol = next.indexOf(\"\\n\");\n text = eol < 0 ? next : next.slice(0, eol);\n }\n else {\n text = next == \"\\n\" ? \"\" : next;\n }\n return pos + text.length > this.to ? text.slice(0, this.to - pos) : text;\n }\n /**\n The end position of the previous line.\n */\n prevLineEnd() { return this.atEnd ? this.lineStart : this.lineStart - 1; }\n /**\n @internal\n */\n startContext(type, start, value = 0) {\n this.block = CompositeBlock.create(type, value, this.lineStart + start, this.block.hash, this.lineStart + this.line.text.length);\n this.stack.push(this.block);\n }\n /**\n Start a composite block. Should only be called from [block\n parser functions](#BlockParser.parse) that return null.\n */\n startComposite(type, start, value = 0) {\n this.startContext(this.parser.getNodeType(type), start, value);\n }\n /**\n @internal\n */\n addNode(block, from, to) {\n if (typeof block == \"number\")\n block = new Tree(this.parser.nodeSet.types[block], none, none, (to !== null && to !== void 0 ? to : this.prevLineEnd()) - from);\n this.block.addChild(block, from - this.block.from);\n }\n /**\n Add a block element. Can be called by [block\n parsers](#BlockParser.parse).\n */\n addElement(elt) {\n this.block.addChild(elt.toTree(this.parser.nodeSet), elt.from - this.block.from);\n }\n /**\n Add a block element from a [leaf parser](#LeafBlockParser). This\n makes sure any extra composite block markup (such as blockquote\n markers) inside the block are also added to the syntax tree.\n */\n addLeafElement(leaf, elt) {\n this.addNode(this.buffer\n .writeElements(injectMarks(elt.children, leaf.marks), -elt.from)\n .finish(elt.type, elt.to - elt.from), elt.from);\n }\n /**\n @internal\n */\n finishContext() {\n let cx = this.stack.pop();\n let top = this.stack[this.stack.length - 1];\n top.addChild(cx.toTree(this.parser.nodeSet), cx.from - top.from);\n this.block = top;\n }\n finish() {\n while (this.stack.length > 1)\n this.finishContext();\n return this.addGaps(this.block.toTree(this.parser.nodeSet, this.lineStart));\n }\n addGaps(tree) {\n return this.ranges.length > 1 ?\n injectGaps(this.ranges, 0, tree.topNode, this.ranges[0].from, this.reusePlaceholders) : tree;\n }\n /**\n @internal\n */\n finishLeaf(leaf) {\n for (let parser of leaf.parsers)\n if (parser.finish(this, leaf))\n return;\n let inline = injectMarks(this.parser.parseInline(leaf.content, leaf.start), leaf.marks);\n this.addNode(this.buffer\n .writeElements(inline, -leaf.start)\n .finish(Type.Paragraph, leaf.content.length), leaf.start);\n }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n /**\n @internal\n */\n get buffer() { return new Buffer(this.parser.nodeSet); }\n}\nfunction injectGaps(ranges, rangeI, tree, offset, dummies) {\n let rangeEnd = ranges[rangeI].to;\n let children = [], positions = [], start = tree.from + offset;\n function movePastNext(upto, inclusive) {\n while (inclusive ? upto >= rangeEnd : upto > rangeEnd) {\n let size = ranges[rangeI + 1].from - rangeEnd;\n offset += size;\n upto += size;\n rangeI++;\n rangeEnd = ranges[rangeI].to;\n }\n }\n for (let ch = tree.firstChild; ch; ch = ch.nextSibling) {\n movePastNext(ch.from + offset, true);\n let from = ch.from + offset, node, reuse = dummies.get(ch.tree);\n if (reuse) {\n node = reuse;\n }\n else if (ch.to + offset > rangeEnd) {\n node = injectGaps(ranges, rangeI, ch, offset, dummies);\n movePastNext(ch.to + offset, false);\n }\n else {\n node = ch.toTree();\n }\n children.push(node);\n positions.push(from - start);\n }\n movePastNext(tree.to + offset, false);\n return new Tree(tree.type, children, positions, tree.to + offset - start, tree.tree ? tree.tree.propValues : undefined);\n}\n/**\nA Markdown parser configuration.\n*/\nclass MarkdownParser extends Parser {\n /**\n @internal\n */\n constructor(\n /**\n The parser's syntax [node\n types](https://lezer.codemirror.net/docs/ref/#common.NodeSet).\n */\n nodeSet, \n /**\n @internal\n */\n blockParsers, \n /**\n @internal\n */\n leafBlockParsers, \n /**\n @internal\n */\n blockNames, \n /**\n @internal\n */\n endLeafBlock, \n /**\n @internal\n */\n skipContextMarkup, \n /**\n @internal\n */\n inlineParsers, \n /**\n @internal\n */\n inlineNames, \n /**\n @internal\n */\n wrappers) {\n super();\n this.nodeSet = nodeSet;\n this.blockParsers = blockParsers;\n this.leafBlockParsers = leafBlockParsers;\n this.blockNames = blockNames;\n this.endLeafBlock = endLeafBlock;\n this.skipContextMarkup = skipContextMarkup;\n this.inlineParsers = inlineParsers;\n this.inlineNames = inlineNames;\n this.wrappers = wrappers;\n /**\n @internal\n */\n this.nodeTypes = Object.create(null);\n for (let t of nodeSet.types)\n this.nodeTypes[t.name] = t.id;\n }\n createParse(input, fragments, ranges) {\n let parse = new BlockContext(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /**\n Reconfigure the parser.\n */\n configure(spec) {\n let config = resolveConfig(spec);\n if (!config)\n return this;\n let { nodeSet, skipContextMarkup } = this;\n let blockParsers = this.blockParsers.slice(), leafBlockParsers = this.leafBlockParsers.slice(), blockNames = this.blockNames.slice(), inlineParsers = this.inlineParsers.slice(), inlineNames = this.inlineNames.slice(), endLeafBlock = this.endLeafBlock.slice(), wrappers = this.wrappers;\n if (nonEmpty(config.defineNodes)) {\n skipContextMarkup = Object.assign({}, skipContextMarkup);\n let nodeTypes = nodeSet.types.slice(), styles;\n for (let s of config.defineNodes) {\n let { name, block, composite, style } = typeof s == \"string\" ? { name: s } : s;\n if (nodeTypes.some(t => t.name == name))\n continue;\n if (composite)\n skipContextMarkup[nodeTypes.length] =\n (bl, cx, line) => composite(cx, line, bl.value);\n let id = nodeTypes.length;\n let group = composite ? [\"Block\", \"BlockContext\"] : !block ? undefined\n : id >= Type.ATXHeading1 && id <= Type.SetextHeading2 ? [\"Block\", \"LeafBlock\", \"Heading\"] : [\"Block\", \"LeafBlock\"];\n nodeTypes.push(NodeType.define({\n id,\n name,\n props: group && [[NodeProp.group, group]]\n }));\n if (style) {\n if (!styles)\n styles = {};\n if (Array.isArray(style) || style instanceof Tag)\n styles[name] = style;\n else\n Object.assign(styles, style);\n }\n }\n nodeSet = new NodeSet(nodeTypes);\n if (styles)\n nodeSet = nodeSet.extend(styleTags(styles));\n }\n if (nonEmpty(config.props))\n nodeSet = nodeSet.extend(...config.props);\n if (nonEmpty(config.remove)) {\n for (let rm of config.remove) {\n let block = this.blockNames.indexOf(rm), inline = this.inlineNames.indexOf(rm);\n if (block > -1)\n blockParsers[block] = leafBlockParsers[block] = undefined;\n if (inline > -1)\n inlineParsers[inline] = undefined;\n }\n }\n if (nonEmpty(config.parseBlock)) {\n for (let spec of config.parseBlock) {\n let found = blockNames.indexOf(spec.name);\n if (found > -1) {\n blockParsers[found] = spec.parse;\n leafBlockParsers[found] = spec.leaf;\n }\n else {\n let pos = spec.before ? findName(blockNames, spec.before)\n : spec.after ? findName(blockNames, spec.after) + 1 : blockNames.length - 1;\n blockParsers.splice(pos, 0, spec.parse);\n leafBlockParsers.splice(pos, 0, spec.leaf);\n blockNames.splice(pos, 0, spec.name);\n }\n if (spec.endLeaf)\n endLeafBlock.push(spec.endLeaf);\n }\n }\n if (nonEmpty(config.parseInline)) {\n for (let spec of config.parseInline) {\n let found = inlineNames.indexOf(spec.name);\n if (found > -1) {\n inlineParsers[found] = spec.parse;\n }\n else {\n let pos = spec.before ? findName(inlineNames, spec.before)\n : spec.after ? findName(inlineNames, spec.after) + 1 : inlineNames.length - 1;\n inlineParsers.splice(pos, 0, spec.parse);\n inlineNames.splice(pos, 0, spec.name);\n }\n }\n }\n if (config.wrap)\n wrappers = wrappers.concat(config.wrap);\n return new MarkdownParser(nodeSet, blockParsers, leafBlockParsers, blockNames, endLeafBlock, skipContextMarkup, inlineParsers, inlineNames, wrappers);\n }\n /**\n @internal\n */\n getNodeType(name) {\n let found = this.nodeTypes[name];\n if (found == null)\n throw new RangeError(`Unknown node type '${name}'`);\n return found;\n }\n /**\n Parse the given piece of inline text at the given offset,\n returning an array of [`Element`](#Element) objects representing\n the inline content.\n */\n parseInline(text, offset) {\n let cx = new InlineContext(this, text, offset);\n outer: for (let pos = offset; pos < cx.end;) {\n let next = cx.char(pos);\n for (let token of this.inlineParsers)\n if (token) {\n let result = token(cx, next, pos);\n if (result >= 0) {\n pos = result;\n continue outer;\n }\n }\n pos++;\n }\n return cx.resolveMarkers(0);\n }\n}\nfunction nonEmpty(a) {\n return a != null && a.length > 0;\n}\nfunction resolveConfig(spec) {\n if (!Array.isArray(spec))\n return spec;\n if (spec.length == 0)\n return null;\n let conf = resolveConfig(spec[0]);\n if (spec.length == 1)\n return conf;\n let rest = resolveConfig(spec.slice(1));\n if (!rest || !conf)\n return conf || rest;\n let conc = (a, b) => (a || none).concat(b || none);\n let wrapA = conf.wrap, wrapB = rest.wrap;\n return {\n props: conc(conf.props, rest.props),\n defineNodes: conc(conf.defineNodes, rest.defineNodes),\n parseBlock: conc(conf.parseBlock, rest.parseBlock),\n parseInline: conc(conf.parseInline, rest.parseInline),\n remove: conc(conf.remove, rest.remove),\n wrap: !wrapA ? wrapB : !wrapB ? wrapA :\n (inner, input, fragments, ranges) => wrapA(wrapB(inner, input, fragments, ranges), input, fragments, ranges)\n };\n}\nfunction findName(names, name) {\n let found = names.indexOf(name);\n if (found < 0)\n throw new RangeError(`Position specified relative to unknown parser ${name}`);\n return found;\n}\nlet nodeTypes = [NodeType.none];\nfor (let i = 1, name; name = Type[i]; i++) {\n nodeTypes[i] = NodeType.define({\n id: i,\n name,\n props: i >= Type.Escape ? [] : [[NodeProp.group, i in DefaultSkipMarkup ? [\"Block\", \"BlockContext\"] : [\"Block\", \"LeafBlock\"]]],\n top: name == \"Document\"\n });\n}\nconst none = [];\nclass Buffer {\n constructor(nodeSet) {\n this.nodeSet = nodeSet;\n this.content = [];\n this.nodes = [];\n }\n write(type, from, to, children = 0) {\n this.content.push(type, from, to, 4 + children * 4);\n return this;\n }\n writeElements(elts, offset = 0) {\n for (let e of elts)\n e.writeTo(this, offset);\n return this;\n }\n finish(type, length) {\n return Tree.build({\n buffer: this.content,\n nodeSet: this.nodeSet,\n reused: this.nodes,\n topID: type,\n length\n });\n }\n}\n/**\nElements are used to compose syntax nodes during parsing.\n*/\nclass Element {\n /**\n @internal\n */\n constructor(\n /**\n The node's\n [id](https://lezer.codemirror.net/docs/ref/#common.NodeType.id).\n */\n type, \n /**\n The start of the node, as an offset from the start of the document.\n */\n from, \n /**\n The end of the node.\n */\n to, \n /**\n The node's child nodes @internal\n */\n children = none) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.children = children;\n }\n /**\n @internal\n */\n writeTo(buf, offset) {\n let startOff = buf.content.length;\n buf.writeElements(this.children, offset);\n buf.content.push(this.type, this.from + offset, this.to + offset, buf.content.length + 4 - startOff);\n }\n /**\n @internal\n */\n toTree(nodeSet) {\n return new Buffer(nodeSet).writeElements(this.children, -this.from).finish(this.type, this.to - this.from);\n }\n}\nclass TreeElement {\n constructor(tree, from) {\n this.tree = tree;\n this.from = from;\n }\n get to() { return this.from + this.tree.length; }\n get type() { return this.tree.type.id; }\n get children() { return none; }\n writeTo(buf, offset) {\n buf.nodes.push(this.tree);\n buf.content.push(buf.nodes.length - 1, this.from + offset, this.to + offset, -1);\n }\n toTree() { return this.tree; }\n}\nfunction elt(type, from, to, children) {\n return new Element(type, from, to, children);\n}\nconst EmphasisUnderscore = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst EmphasisAsterisk = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst LinkStart = {}, ImageStart = {};\nclass InlineDelimiter {\n constructor(type, from, to, side) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.side = side;\n }\n}\nconst Escapable = \"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~\";\nlet Punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\u2010-\\u2027]/;\ntry {\n Punctuation = new RegExp(\"[\\\\p{S}|\\\\p{P}]\", \"u\");\n}\ncatch (_) { }\nconst DefaultInline = {\n Escape(cx, next, start) {\n if (next != 92 /* '\\\\' */ || start == cx.end - 1)\n return -1;\n let escaped = cx.char(start + 1);\n for (let i = 0; i < Escapable.length; i++)\n if (Escapable.charCodeAt(i) == escaped)\n return cx.append(elt(Type.Escape, start, start + 2));\n return -1;\n },\n Entity(cx, next, start) {\n if (next != 38 /* '&' */)\n return -1;\n let m = /^(?:#\\d+|#x[a-f\\d]+|\\w+);/i.exec(cx.slice(start + 1, start + 31));\n return m ? cx.append(elt(Type.Entity, start, start + 1 + m[0].length)) : -1;\n },\n InlineCode(cx, next, start) {\n if (next != 96 /* '`' */ || start && cx.char(start - 1) == 96)\n return -1;\n let pos = start + 1;\n while (pos < cx.end && cx.char(pos) == 96)\n pos++;\n let size = pos - start, curSize = 0;\n for (; pos < cx.end; pos++) {\n if (cx.char(pos) == 96) {\n curSize++;\n if (curSize == size && cx.char(pos + 1) != 96)\n return cx.append(elt(Type.InlineCode, start, pos + 1, [\n elt(Type.CodeMark, start, start + size),\n elt(Type.CodeMark, pos + 1 - size, pos + 1)\n ]));\n }\n else {\n curSize = 0;\n }\n }\n return -1;\n },\n HTMLTag(cx, next, start) {\n if (next != 60 /* '<' */ || start == cx.end - 1)\n return -1;\n let after = cx.slice(start + 1, cx.end);\n let url = /^(?:[a-z][-\\w+.]+:[^\\s>]+|[a-z\\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*)>/i.exec(after);\n if (url) {\n return cx.append(elt(Type.Autolink, start, start + 1 + url[0].length, [\n elt(Type.LinkMark, start, start + 1),\n // url[0] includes the closing bracket, so exclude it from this slice\n elt(Type.URL, start + 1, start + url[0].length),\n elt(Type.LinkMark, start + url[0].length, start + 1 + url[0].length)\n ]));\n }\n let comment = /^!--[^>](?:-[^-]|[^-])*?-->/i.exec(after);\n if (comment)\n return cx.append(elt(Type.Comment, start, start + 1 + comment[0].length));\n let procInst = /^\\?[^]*?\\?>/.exec(after);\n if (procInst)\n return cx.append(elt(Type.ProcessingInstruction, start, start + 1 + procInst[0].length));\n let m = /^(?:![A-Z][^]*?>|!\\[CDATA\\[[^]*?\\]\\]>|\\/\\s*[a-zA-Z][\\w-]*\\s*>|\\s*[a-zA-Z][\\w-]*(\\s+[a-zA-Z:_][\\w-.:]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*(\\/\\s*)?>)/.exec(after);\n if (!m)\n return -1;\n return cx.append(elt(Type.HTMLTag, start, start + 1 + m[0].length));\n },\n Emphasis(cx, next, start) {\n if (next != 95 && next != 42)\n return -1;\n let pos = start + 1;\n while (cx.char(pos) == next)\n pos++;\n let before = cx.slice(start - 1, start), after = cx.slice(pos, pos + 1);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let leftFlanking = !sAfter && (!pAfter || sBefore || pBefore);\n let rightFlanking = !sBefore && (!pBefore || sAfter || pAfter);\n let canOpen = leftFlanking && (next == 42 || !rightFlanking || pBefore);\n let canClose = rightFlanking && (next == 42 || !leftFlanking || pAfter);\n return cx.append(new InlineDelimiter(next == 95 ? EmphasisUnderscore : EmphasisAsterisk, start, pos, (canOpen ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (canClose ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n },\n HardBreak(cx, next, start) {\n if (next == 92 /* '\\\\' */ && cx.char(start + 1) == 10 /* '\\n' */)\n return cx.append(elt(Type.HardBreak, start, start + 2));\n if (next == 32) {\n let pos = start + 1;\n while (cx.char(pos) == 32)\n pos++;\n if (cx.char(pos) == 10 && pos >= start + 2)\n return cx.append(elt(Type.HardBreak, start, pos + 1));\n }\n return -1;\n },\n Link(cx, next, start) {\n return next == 91 /* '[' */ ? cx.append(new InlineDelimiter(LinkStart, start, start + 1, 1 /* Mark.Open */)) : -1;\n },\n Image(cx, next, start) {\n return next == 33 /* '!' */ && cx.char(start + 1) == 91 /* '[' */\n ? cx.append(new InlineDelimiter(ImageStart, start, start + 2, 1 /* Mark.Open */)) : -1;\n },\n LinkEnd(cx, next, start) {\n if (next != 93 /* ']' */)\n return -1;\n // Scanning back to the next link/image start marker\n for (let i = cx.parts.length - 1; i >= 0; i--) {\n let part = cx.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart)) {\n // If this one has been set invalid (because it would produce\n // a nested link) or there's no valid link here ignore both.\n if (!part.side || cx.skipSpace(part.to) == start && !/[(\\[]/.test(cx.slice(start + 1, start + 2))) {\n cx.parts[i] = null;\n return -1;\n }\n // Finish the content and replace the entire range in\n // this.parts with the link/image node.\n let content = cx.takeContent(i);\n let link = cx.parts[i] = finishLink(cx, content, part.type == LinkStart ? Type.Link : Type.Image, part.from, start + 1);\n // Set any open-link markers before this link to invalid.\n if (part.type == LinkStart)\n for (let j = 0; j < i; j++) {\n let p = cx.parts[j];\n if (p instanceof InlineDelimiter && p.type == LinkStart)\n p.side = 0 /* Mark.None */;\n }\n return link.to;\n }\n }\n return -1;\n }\n};\nfunction finishLink(cx, content, type, start, startPos) {\n let { text } = cx, next = cx.char(startPos), endPos = startPos;\n content.unshift(elt(Type.LinkMark, start, start + (type == Type.Image ? 2 : 1)));\n content.push(elt(Type.LinkMark, startPos - 1, startPos));\n if (next == 40 /* '(' */) {\n let pos = cx.skipSpace(startPos + 1);\n let dest = parseURL(text, pos - cx.offset, cx.offset), title;\n if (dest) {\n pos = cx.skipSpace(dest.to);\n // The destination and title must be separated by whitespace\n if (pos != dest.to) {\n title = parseLinkTitle(text, pos - cx.offset, cx.offset);\n if (title)\n pos = cx.skipSpace(title.to);\n }\n }\n if (cx.char(pos) == 41 /* ')' */) {\n content.push(elt(Type.LinkMark, startPos, startPos + 1));\n endPos = pos + 1;\n if (dest)\n content.push(dest);\n if (title)\n content.push(title);\n content.push(elt(Type.LinkMark, pos, endPos));\n }\n }\n else if (next == 91 /* '[' */) {\n let label = parseLinkLabel(text, startPos - cx.offset, cx.offset, false);\n if (label) {\n content.push(label);\n endPos = label.to;\n }\n }\n return elt(type, start, endPos, content);\n}\n// These return `null` when falling off the end of the input, `false`\n// when parsing fails otherwise (for use in the incremental link\n// reference parser).\nfunction parseURL(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next == 60 /* '<' */) {\n for (let pos = start + 1; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (ch == 62 /* '>' */)\n return elt(Type.URL, start + offset, pos + 1 + offset);\n if (ch == 60 || ch == 10 /* '<\\n' */)\n return false;\n }\n return null;\n }\n else {\n let depth = 0, pos = start;\n for (let escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (space(ch)) {\n break;\n }\n else if (escaped) {\n escaped = false;\n }\n else if (ch == 40 /* '(' */) {\n depth++;\n }\n else if (ch == 41 /* ')' */) {\n if (!depth)\n break;\n depth--;\n }\n else if (ch == 92 /* '\\\\' */) {\n escaped = true;\n }\n }\n return pos > start ? elt(Type.URL, start + offset, pos + offset) : pos == text.length ? null : false;\n }\n}\nfunction parseLinkTitle(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next != 39 && next != 34 && next != 40 /* '\"\\'(' */)\n return false;\n let end = next == 40 ? 41 : next;\n for (let pos = start + 1, escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == end)\n return elt(Type.LinkTitle, start + offset, pos + 1 + offset);\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n return null;\n}\nfunction parseLinkLabel(text, start, offset, requireNonWS) {\n for (let escaped = false, pos = start + 1, end = Math.min(text.length, pos + 999); pos < end; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == 93 /* ']' */)\n return requireNonWS ? false : elt(Type.LinkLabel, start + offset, pos + 1 + offset);\n else {\n if (requireNonWS && !space(ch))\n requireNonWS = false;\n if (ch == 91 /* '[' */)\n return false;\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n }\n return null;\n}\n/**\nInline parsing functions get access to this context, and use it to\nread the content and emit syntax nodes.\n*/\nclass InlineContext {\n /**\n @internal\n */\n constructor(\n /**\n The parser that is being used.\n */\n parser, \n /**\n The text of this inline section.\n */\n text, \n /**\n The starting offset of the section in the document.\n */\n offset) {\n this.parser = parser;\n this.text = text;\n this.offset = offset;\n /**\n @internal\n */\n this.parts = [];\n }\n /**\n Get the character code at the given (document-relative)\n position.\n */\n char(pos) { return pos >= this.end ? -1 : this.text.charCodeAt(pos - this.offset); }\n /**\n The position of the end of this inline section.\n */\n get end() { return this.offset + this.text.length; }\n /**\n Get a substring of this inline section. Again uses\n document-relative positions.\n */\n slice(from, to) { return this.text.slice(from - this.offset, to - this.offset); }\n /**\n @internal\n */\n append(elt) {\n this.parts.push(elt);\n return elt.to;\n }\n /**\n Add a [delimiter](#DelimiterType) at this given position. `open`\n and `close` indicate whether this delimiter is opening, closing,\n or both. Returns the end of the delimiter, for convenient\n returning from [parse functions](#InlineParser.parse).\n */\n addDelimiter(type, from, to, open, close) {\n return this.append(new InlineDelimiter(type, from, to, (open ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (close ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n }\n /**\n Returns true when there is an unmatched link or image opening\n token before the current position.\n */\n get hasOpenLink() {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart))\n return true;\n }\n return false;\n }\n /**\n Add an inline element. Returns the end of the element.\n */\n addElement(elt) {\n return this.append(elt);\n }\n /**\n Resolve markers between this.parts.length and from, wrapping matched markers in the\n appropriate node and updating the content of this.parts. @internal\n */\n resolveMarkers(from) {\n // Scan forward, looking for closing tokens\n for (let i = from; i < this.parts.length; i++) {\n let close = this.parts[i];\n if (!(close instanceof InlineDelimiter && close.type.resolve && (close.side & 2 /* Mark.Close */)))\n continue;\n let emp = close.type == EmphasisUnderscore || close.type == EmphasisAsterisk;\n let closeSize = close.to - close.from;\n let open, j = i - 1;\n // Continue scanning for a matching opening token\n for (; j >= from; j--) {\n let part = this.parts[j];\n if (part instanceof InlineDelimiter && (part.side & 1 /* Mark.Open */) && part.type == close.type &&\n // Ignore emphasis delimiters where the character count doesn't match\n !(emp && ((close.side & 1 /* Mark.Open */) || (part.side & 2 /* Mark.Close */)) &&\n (part.to - part.from + closeSize) % 3 == 0 && ((part.to - part.from) % 3 || closeSize % 3))) {\n open = part;\n break;\n }\n }\n if (!open)\n continue;\n let type = close.type.resolve, content = [];\n let start = open.from, end = close.to;\n // Emphasis marker effect depends on the character count. Size consumed is minimum of the two\n // markers.\n if (emp) {\n let size = Math.min(2, open.to - open.from, closeSize);\n start = open.to - size;\n end = close.from + size;\n type = size == 1 ? \"Emphasis\" : \"StrongEmphasis\";\n }\n // Move the covered region into content, optionally adding marker nodes\n if (open.type.mark)\n content.push(this.elt(open.type.mark, start, open.to));\n for (let k = j + 1; k < i; k++) {\n if (this.parts[k] instanceof Element)\n content.push(this.parts[k]);\n this.parts[k] = null;\n }\n if (close.type.mark)\n content.push(this.elt(close.type.mark, close.from, end));\n let element = this.elt(type, start, end, content);\n // If there are leftover emphasis marker characters, shrink the close/open markers. Otherwise, clear them.\n this.parts[j] = emp && open.from != start ? new InlineDelimiter(open.type, open.from, start, open.side) : null;\n let keep = this.parts[i] = emp && close.to != end ? new InlineDelimiter(close.type, end, close.to, close.side) : null;\n // Insert the new element in this.parts\n if (keep)\n this.parts.splice(i, 0, element);\n else\n this.parts[i] = element;\n }\n // Collect the elements remaining in this.parts into an array.\n let result = [];\n for (let i = from; i < this.parts.length; i++) {\n let part = this.parts[i];\n if (part instanceof Element)\n result.push(part);\n }\n return result;\n }\n /**\n Find an opening delimiter of the given type. Returns `null` if\n no delimiter is found, or an index that can be passed to\n [`takeContent`](#InlineContext.takeContent) otherwise.\n */\n findOpeningDelimiter(type) {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && part.type == type)\n return i;\n }\n return null;\n }\n /**\n Remove all inline elements and delimiters starting from the\n given index (which you should get from\n [`findOpeningDelimiter`](#InlineContext.findOpeningDelimiter),\n resolve delimiters inside of them, and return them as an array\n of elements.\n */\n takeContent(startIndex) {\n let content = this.resolveMarkers(startIndex);\n this.parts.length = startIndex;\n return content;\n }\n /**\n Skip space after the given (document) position, returning either\n the position of the next non-space character or the end of the\n section.\n */\n skipSpace(from) { return skipSpace(this.text, from - this.offset) + this.offset; }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n}\nfunction injectMarks(elements, marks) {\n if (!marks.length)\n return elements;\n if (!elements.length)\n return marks;\n let elts = elements.slice(), eI = 0;\n for (let mark of marks) {\n while (eI < elts.length && elts[eI].to < mark.to)\n eI++;\n if (eI < elts.length && elts[eI].from < mark.from) {\n let e = elts[eI];\n if (e instanceof Element)\n elts[eI] = new Element(e.type, e.from, e.to, injectMarks(e.children, [mark]));\n }\n else {\n elts.splice(eI++, 0, mark);\n }\n }\n return elts;\n}\n// These are blocks that can span blank lines, and should thus only be\n// reused if their next sibling is also being reused.\nconst NotLast = [Type.CodeBlock, Type.ListItem, Type.OrderedList, Type.BulletList];\nclass FragmentCursor {\n constructor(fragments, input) {\n this.fragments = fragments;\n this.input = input;\n // Index into fragment array\n this.i = 0;\n // Active fragment\n this.fragment = null;\n this.fragmentEnd = -1;\n // Cursor into the current fragment, if any. When `moveTo` returns\n // true, this points at the first block after `pos`.\n this.cursor = null;\n if (fragments.length)\n this.fragment = fragments[this.i++];\n }\n nextFragment() {\n this.fragment = this.i < this.fragments.length ? this.fragments[this.i++] : null;\n this.cursor = null;\n this.fragmentEnd = -1;\n }\n moveTo(pos, lineStart) {\n while (this.fragment && this.fragment.to <= pos)\n this.nextFragment();\n if (!this.fragment || this.fragment.from > (pos ? pos - 1 : 0))\n return false;\n if (this.fragmentEnd < 0) {\n let end = this.fragment.to;\n while (end > 0 && this.input.read(end - 1, end) != \"\\n\")\n end--;\n this.fragmentEnd = end ? end - 1 : 0;\n }\n let c = this.cursor;\n if (!c) {\n c = this.cursor = this.fragment.tree.cursor();\n c.firstChild();\n }\n let rPos = pos + this.fragment.offset;\n while (c.to <= rPos)\n if (!c.parent())\n return false;\n for (;;) {\n if (c.from >= rPos)\n return this.fragment.from <= lineStart;\n if (!c.childAfter(rPos))\n return false;\n }\n }\n matches(hash) {\n let tree = this.cursor.tree;\n return tree && tree.prop(NodeProp.contextHash) == hash;\n }\n takeNodes(cx) {\n let cur = this.cursor, off = this.fragment.offset, fragEnd = this.fragmentEnd - (this.fragment.openEnd ? 1 : 0);\n let start = cx.absoluteLineStart, end = start, blockI = cx.block.children.length;\n let prevEnd = end, prevI = blockI;\n for (;;) {\n if (cur.to - off > fragEnd) {\n if (cur.type.isAnonymous && cur.firstChild())\n continue;\n break;\n }\n let pos = toRelative(cur.from - off, cx.ranges);\n if (cur.to - off <= cx.ranges[cx.rangeI].to) { // Fits in current range\n cx.addNode(cur.tree, pos);\n }\n else {\n let dummy = new Tree(cx.parser.nodeSet.types[Type.Paragraph], [], [], 0, cx.block.hashProp);\n cx.reusePlaceholders.set(dummy, cur.tree);\n cx.addNode(dummy, pos);\n }\n // Taken content must always end in a block, because incremental\n // parsing happens on block boundaries. Never stop directly\n // after an indented code block, since those can continue after\n // any number of blank lines.\n if (cur.type.is(\"Block\")) {\n if (NotLast.indexOf(cur.type.id) < 0) {\n end = cur.to - off;\n blockI = cx.block.children.length;\n }\n else {\n end = prevEnd;\n blockI = prevI;\n prevEnd = cur.to - off;\n prevI = cx.block.children.length;\n }\n }\n if (!cur.nextSibling())\n break;\n }\n while (cx.block.children.length > blockI) {\n cx.block.children.pop();\n cx.block.positions.pop();\n }\n return end - start;\n }\n}\n// Convert an input-stream-relative position to a\n// Markdown-doc-relative position by subtracting the size of all input\n// gaps before `abs`.\nfunction toRelative(abs, ranges) {\n let pos = abs;\n for (let i = 1; i < ranges.length; i++) {\n let gapFrom = ranges[i - 1].to, gapTo = ranges[i].from;\n if (gapFrom < abs)\n pos -= gapTo - gapFrom;\n }\n return pos;\n}\nconst markdownHighlighting = styleTags({\n \"Blockquote/...\": tags.quote,\n HorizontalRule: tags.contentSeparator,\n \"ATXHeading1/... SetextHeading1/...\": tags.heading1,\n \"ATXHeading2/... SetextHeading2/...\": tags.heading2,\n \"ATXHeading3/...\": tags.heading3,\n \"ATXHeading4/...\": tags.heading4,\n \"ATXHeading5/...\": tags.heading5,\n \"ATXHeading6/...\": tags.heading6,\n \"Comment CommentBlock\": tags.comment,\n Escape: tags.escape,\n Entity: tags.character,\n \"Emphasis/...\": tags.emphasis,\n \"StrongEmphasis/...\": tags.strong,\n \"Link/... Image/...\": tags.link,\n \"OrderedList/... BulletList/...\": tags.list,\n \"BlockQuote/...\": tags.quote,\n \"InlineCode CodeText\": tags.monospace,\n \"URL Autolink\": tags.url,\n \"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark\": tags.processingInstruction,\n \"CodeInfo LinkLabel\": tags.labelName,\n LinkTitle: tags.string,\n Paragraph: tags.content\n});\n/**\nThe default CommonMark parser.\n*/\nconst parser = new MarkdownParser(new NodeSet(nodeTypes).extend(markdownHighlighting), Object.keys(DefaultBlockParsers).map(n => DefaultBlockParsers[n]), Object.keys(DefaultBlockParsers).map(n => DefaultLeafBlocks[n]), Object.keys(DefaultBlockParsers), DefaultEndLeaf, DefaultSkipMarkup, Object.keys(DefaultInline).map(n => DefaultInline[n]), Object.keys(DefaultInline), []);\n\nfunction leftOverSpace(node, from, to) {\n let ranges = [];\n for (let n = node.firstChild, pos = from;; n = n.nextSibling) {\n let nextPos = n ? n.from : to;\n if (nextPos > pos)\n ranges.push({ from: pos, to: nextPos });\n if (!n)\n break;\n pos = n.to;\n }\n return ranges;\n}\n/**\nCreate a Markdown extension to enable nested parsing on code\nblocks and/or embedded HTML.\n*/\nfunction parseCode(config) {\n let { codeParser, htmlParser } = config;\n let wrap = parseMixed((node, input) => {\n let id = node.type.id;\n if (codeParser && (id == Type.CodeBlock || id == Type.FencedCode)) {\n let info = \"\";\n if (id == Type.FencedCode) {\n let infoNode = node.node.getChild(Type.CodeInfo);\n if (infoNode)\n info = input.read(infoNode.from, infoNode.to);\n }\n let parser = codeParser(info);\n if (parser)\n return { parser, overlay: node => node.type.id == Type.CodeText };\n }\n else if (htmlParser && (id == Type.HTMLBlock || id == Type.HTMLTag || id == Type.CommentBlock)) {\n return { parser: htmlParser, overlay: leftOverSpace(node.node, node.from, node.to) };\n }\n return null;\n });\n return { wrap };\n}\n\nconst StrikethroughDelim = { resolve: \"Strikethrough\", mark: \"StrikethroughMark\" };\n/**\nAn extension that implements\n[GFM-style](https://github.github.com/gfm/#strikethrough-extension-)\nStrikethrough syntax using `~~` delimiters.\n*/\nconst Strikethrough = {\n defineNodes: [{\n name: \"Strikethrough\",\n style: { \"Strikethrough/...\": tags.strikethrough }\n }, {\n name: \"StrikethroughMark\",\n style: tags.processingInstruction\n }],\n parseInline: [{\n name: \"Strikethrough\",\n parse(cx, next, pos) {\n if (next != 126 /* '~' */ || cx.char(pos + 1) != 126 || cx.char(pos + 2) == 126)\n return -1;\n let before = cx.slice(pos - 1, pos), after = cx.slice(pos + 2, pos + 3);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n return cx.addDelimiter(StrikethroughDelim, pos, pos + 2, !sAfter && (!pAfter || sBefore || pBefore), !sBefore && (!pBefore || sAfter || pAfter));\n },\n after: \"Emphasis\"\n }]\n};\n// Parse a line as a table row and return the row count. When `elts`\n// is given, push syntax elements for the content onto it.\nfunction parseRow(cx, line, startI = 0, elts, offset = 0) {\n let count = 0, first = true, cellStart = -1, cellEnd = -1, esc = false;\n let parseCell = () => {\n elts.push(cx.elt(\"TableCell\", offset + cellStart, offset + cellEnd, cx.parser.parseInline(line.slice(cellStart, cellEnd), offset + cellStart)));\n };\n for (let i = startI; i < line.length; i++) {\n let next = line.charCodeAt(i);\n if (next == 124 /* '|' */ && !esc) {\n if (!first || cellStart > -1)\n count++;\n first = false;\n if (elts) {\n if (cellStart > -1)\n parseCell();\n elts.push(cx.elt(\"TableDelimiter\", i + offset, i + offset + 1));\n }\n cellStart = cellEnd = -1;\n }\n else if (esc || next != 32 && next != 9) {\n if (cellStart < 0)\n cellStart = i;\n cellEnd = i + 1;\n }\n esc = !esc && next == 92;\n }\n if (cellStart > -1) {\n count++;\n if (elts)\n parseCell();\n }\n return count;\n}\nfunction hasPipe(str, start) {\n for (let i = start; i < str.length; i++) {\n let next = str.charCodeAt(i);\n if (next == 124 /* '|' */)\n return true;\n if (next == 92 /* '\\\\' */)\n i++;\n }\n return false;\n}\nconst delimiterLine = /^\\|?(\\s*:?-+:?\\s*\\|)+(\\s*:?-+:?\\s*)?$/;\nclass TableParser {\n constructor() {\n // Null means we haven't seen the second line yet, false means this\n // isn't a table, and an array means this is a table and we've\n // parsed the given rows so far.\n this.rows = null;\n }\n nextLine(cx, line, leaf) {\n if (this.rows == null) { // Second line\n this.rows = false;\n let lineText;\n if ((line.next == 45 || line.next == 58 || line.next == 124 /* '-:|' */) &&\n delimiterLine.test(lineText = line.text.slice(line.pos))) {\n let firstRow = [], firstCount = parseRow(cx, leaf.content, 0, firstRow, leaf.start);\n if (firstCount == parseRow(cx, lineText, line.pos))\n this.rows = [cx.elt(\"TableHeader\", leaf.start, leaf.start + leaf.content.length, firstRow),\n cx.elt(\"TableDelimiter\", cx.lineStart + line.pos, cx.lineStart + line.text.length)];\n }\n }\n else if (this.rows) { // Line after the second\n let content = [];\n parseRow(cx, line.text, line.pos, content, cx.lineStart);\n this.rows.push(cx.elt(\"TableRow\", cx.lineStart + line.pos, cx.lineStart + line.text.length, content));\n }\n return false;\n }\n finish(cx, leaf) {\n if (!this.rows)\n return false;\n cx.addLeafElement(leaf, cx.elt(\"Table\", leaf.start, leaf.start + leaf.content.length, this.rows));\n return true;\n }\n}\n/**\nThis extension provides\n[GFM-style](https://github.github.com/gfm/#tables-extension-)\ntables, using syntax like this:\n\n```\n| head 1 | head 2 |\n| --- | --- |\n| cell 1 | cell 2 |\n```\n*/\nconst Table = {\n defineNodes: [\n { name: \"Table\", block: true },\n { name: \"TableHeader\", style: { \"TableHeader/...\": tags.heading } },\n \"TableRow\",\n { name: \"TableCell\", style: tags.content },\n { name: \"TableDelimiter\", style: tags.processingInstruction },\n ],\n parseBlock: [{\n name: \"Table\",\n leaf(_, leaf) { return hasPipe(leaf.content, 0) ? new TableParser : null; },\n endLeaf(cx, line, leaf) {\n if (leaf.parsers.some(p => p instanceof TableParser) || !hasPipe(line.text, line.basePos))\n return false;\n let next = cx.peekLine();\n return delimiterLine.test(next) && parseRow(cx, line.text, line.basePos) == parseRow(cx, next, line.basePos);\n },\n before: \"SetextHeading\"\n }]\n};\nclass TaskParser {\n nextLine() { return false; }\n finish(cx, leaf) {\n cx.addLeafElement(leaf, cx.elt(\"Task\", leaf.start, leaf.start + leaf.content.length, [\n cx.elt(\"TaskMarker\", leaf.start, leaf.start + 3),\n ...cx.parser.parseInline(leaf.content.slice(3), leaf.start + 3)\n ]));\n return true;\n }\n}\n/**\nExtension providing\n[GFM-style](https://github.github.com/gfm/#task-list-items-extension-)\ntask list items, where list items can be prefixed with `[ ]` or\n`[x]` to add a checkbox.\n*/\nconst TaskList = {\n defineNodes: [\n { name: \"Task\", block: true, style: tags.list },\n { name: \"TaskMarker\", style: tags.atom }\n ],\n parseBlock: [{\n name: \"TaskList\",\n leaf(cx, leaf) {\n return /^\\[[ xX]\\][ \\t]/.test(leaf.content) && cx.parentType().name == \"ListItem\" ? new TaskParser : null;\n },\n after: \"SetextHeading\"\n }]\n};\nconst autolinkRE = /(www\\.)|(https?:\\/\\/)|([\\w.+-]{1,100}@)|(mailto:|xmpp:)/gy;\nconst urlRE = /[\\w-]+(\\.[\\w-]+)+(\\/[^\\s<]*)?/gy;\nconst lastTwoDomainWords = /[\\w-]+\\.[\\w-]+($|\\/)/;\nconst emailRE = /[\\w.+-]+@[\\w-]+(\\.[\\w.-]+)+/gy;\nconst xmppResourceRE = /\\/[a-zA-Z\\d@.]+/gy;\nfunction count(str, from, to, ch) {\n let result = 0;\n for (let i = from; i < to; i++)\n if (str[i] == ch)\n result++;\n return result;\n}\nfunction autolinkURLEnd(text, from) {\n urlRE.lastIndex = from;\n let m = urlRE.exec(text);\n if (!m || lastTwoDomainWords.exec(m[0])[0].indexOf(\"_\") > -1)\n return -1;\n let end = from + m[0].length;\n for (;;) {\n let last = text[end - 1], m;\n if (/[?!.,:*_~]/.test(last) ||\n last == \")\" && count(text, from, end, \")\") > count(text, from, end, \"(\"))\n end--;\n else if (last == \";\" && (m = /&(?:#\\d+|#x[a-f\\d]+|\\w+);$/.exec(text.slice(from, end))))\n end = from + m.index;\n else\n break;\n }\n return end;\n}\nfunction autolinkEmailEnd(text, from) {\n emailRE.lastIndex = from;\n let m = emailRE.exec(text);\n if (!m)\n return -1;\n let last = m[0][m[0].length - 1];\n return last == \"_\" || last == \"-\" ? -1 : from + m[0].length - (last == \".\" ? 1 : 0);\n}\n/**\nExtension that implements autolinking for\n`www.`/`http://`/`https://`/`mailto:`/`xmpp:` URLs and email\naddresses.\n*/\nconst Autolink = {\n parseInline: [{\n name: \"Autolink\",\n parse(cx, next, absPos) {\n let pos = absPos - cx.offset;\n if (pos && /\\w/.test(cx.text[pos - 1]))\n return -1;\n autolinkRE.lastIndex = pos;\n let m = autolinkRE.exec(cx.text), end = -1;\n if (!m)\n return -1;\n if (m[1] || m[2]) { // www., http://\n end = autolinkURLEnd(cx.text, pos + m[0].length);\n if (end > -1 && cx.hasOpenLink) {\n let noBracket = /([^\\[\\]]|\\[[^\\]]*\\])*/.exec(cx.text.slice(pos, end));\n end = pos + noBracket[0].length;\n }\n }\n else if (m[3]) { // email address\n end = autolinkEmailEnd(cx.text, pos);\n }\n else { // mailto:/xmpp:\n end = autolinkEmailEnd(cx.text, pos + m[0].length);\n if (end > -1 && m[0] == \"xmpp:\") {\n xmppResourceRE.lastIndex = end;\n m = xmppResourceRE.exec(cx.text);\n if (m)\n end = m.index + m[0].length;\n }\n }\n if (end < 0)\n return -1;\n cx.addElement(cx.elt(\"URL\", absPos, end + cx.offset));\n return end + cx.offset;\n }\n }]\n};\n/**\nExtension bundle containing [`Table`](#Table),\n[`TaskList`](#TaskList), [`Strikethrough`](#Strikethrough), and\n[`Autolink`](#Autolink).\n*/\nconst GFM = [Table, TaskList, Strikethrough, Autolink];\nfunction parseSubSuper(ch, node, mark) {\n return (cx, next, pos) => {\n if (next != ch || cx.char(pos + 1) == ch)\n return -1;\n let elts = [cx.elt(mark, pos, pos + 1)];\n for (let i = pos + 1; i < cx.end; i++) {\n let next = cx.char(i);\n if (next == ch)\n return cx.addElement(cx.elt(node, pos, i + 1, elts.concat(cx.elt(mark, i, i + 1))));\n if (next == 92 /* '\\\\' */)\n elts.push(cx.elt(\"Escape\", i, i++ + 2));\n if (space(next))\n break;\n }\n return -1;\n };\n}\n/**\nExtension providing\n[Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\nsuperscript using `^` markers.\n*/\nconst Superscript = {\n defineNodes: [\n { name: \"Superscript\", style: tags.special(tags.content) },\n { name: \"SuperscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Superscript\",\n parse: parseSubSuper(94 /* '^' */, \"Superscript\", \"SuperscriptMark\")\n }]\n};\n/**\nExtension providing\n[Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\nsubscript using `~` markers.\n*/\nconst Subscript = {\n defineNodes: [\n { name: \"Subscript\", style: tags.special(tags.content) },\n { name: \"SubscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Subscript\",\n parse: parseSubSuper(126 /* '~' */, \"Subscript\", \"SubscriptMark\")\n }]\n};\n/**\nExtension that parses two colons with only letters, underscores,\nand numbers between them as `Emoji` nodes.\n*/\nconst Emoji = {\n defineNodes: [{ name: \"Emoji\", style: tags.character }],\n parseInline: [{\n name: \"Emoji\",\n parse(cx, next, pos) {\n let match;\n if (next != 58 /* ':' */ || !(match = /^[a-zA-Z_0-9]+:/.exec(cx.slice(pos + 1, cx.end))))\n return -1;\n return cx.addElement(cx.elt(\"Emoji\", pos, pos + 1 + match[0].length));\n }\n }]\n};\n\nexport { Autolink, BlockContext, Element, Emoji, GFM, InlineContext, LeafBlock, Line, MarkdownParser, Strikethrough, Subscript, Superscript, Table, TaskList, parseCode, parser };\n","import { EditorSelection, countColumn, Prec, EditorState } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { defineLanguageFacet, foldNodeProp, indentNodeProp, languageDataProp, foldService, syntaxTree, Language, LanguageDescription, ParseContext, indentUnit, LanguageSupport } from '@codemirror/language';\nimport { CompletionContext } from '@codemirror/autocomplete';\nimport { parser, GFM, Subscript, Superscript, Emoji, MarkdownParser, parseCode } from '@lezer/markdown';\nimport { html, htmlCompletionSource } from '@codemirror/lang-html';\nimport { NodeProp } from '@lezer/common';\n\nconst data = /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"<!--\", close: \"-->\" } } });\nconst headingProp = /*@__PURE__*/new NodeProp();\nconst commonmark = /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add(type => {\n return !type.is(\"Block\") || type.is(\"Document\") || isHeading(type) != null ? undefined\n : (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to });\n }),\n /*@__PURE__*/headingProp.add(isHeading),\n /*@__PURE__*/indentNodeProp.add({\n Document: () => null\n }),\n /*@__PURE__*/languageDataProp.add({\n Document: data\n })\n ]\n});\nfunction isHeading(type) {\n let match = /^(?:ATX|Setext)Heading(\\d)$/.exec(type.name);\n return match ? +match[1] : undefined;\n}\nfunction findSectionEnd(headerNode, level) {\n let last = headerNode;\n for (;;) {\n let next = last.nextSibling, heading;\n if (!next || (heading = isHeading(next.type)) != null && heading <= level)\n break;\n last = next;\n }\n return last.to;\n}\nconst headerIndent = /*@__PURE__*/foldService.of((state, start, end) => {\n for (let node = syntaxTree(state).resolveInner(end, -1); node; node = node.parent) {\n if (node.from < start)\n break;\n let heading = node.type.prop(headingProp);\n if (heading == null)\n continue;\n let upto = findSectionEnd(node, heading);\n if (upto > end)\n return { from: end, to: upto };\n }\n return null;\n});\nfunction mkLang(parser) {\n return new Language(data, parser, [headerIndent], \"markdown\");\n}\n/**\nLanguage support for strict CommonMark.\n*/\nconst commonmarkLanguage = /*@__PURE__*/mkLang(commonmark);\nconst extended = /*@__PURE__*/commonmark.configure([GFM, Subscript, Superscript, Emoji]);\n/**\nLanguage support for [GFM](https://github.github.com/gfm/) plus\nsubscript, superscript, and emoji syntax.\n*/\nconst markdownLanguage = /*@__PURE__*/mkLang(extended);\nfunction getCodeParser(languages, defaultLanguage) {\n return (info) => {\n if (info && languages) {\n let found = null;\n // Strip anything after whitespace\n info = /\\S*/.exec(info)[0];\n if (typeof languages == \"function\")\n found = languages(info);\n else\n found = LanguageDescription.matchLanguageName(languages, info, true);\n if (found instanceof LanguageDescription)\n return found.support ? found.support.language.parser : ParseContext.getSkippingParser(found.load());\n else if (found)\n return found.parser;\n }\n return defaultLanguage ? defaultLanguage.parser : null;\n };\n}\n\nclass Context {\n constructor(node, from, to, spaceBefore, spaceAfter, type, item) {\n this.node = node;\n this.from = from;\n this.to = to;\n this.spaceBefore = spaceBefore;\n this.spaceAfter = spaceAfter;\n this.type = type;\n this.item = item;\n }\n blank(maxWidth, trailing = true) {\n let result = this.spaceBefore + (this.node.name == \"Blockquote\" ? \">\" : \"\");\n if (maxWidth != null) {\n while (result.length < maxWidth)\n result += \" \";\n return result;\n }\n else {\n for (let i = this.to - this.from - result.length - this.spaceAfter.length; i > 0; i--)\n result += \" \";\n return result + (trailing ? this.spaceAfter : \"\");\n }\n }\n marker(doc, add) {\n let number = this.node.name == \"OrderedList\" ? String((+itemNumber(this.item, doc)[2] + add)) : \"\";\n return this.spaceBefore + number + this.type + this.spaceAfter;\n }\n}\nfunction getContext(node, doc) {\n let nodes = [];\n for (let cur = node; cur && cur.name != \"Document\"; cur = cur.parent) {\n if (cur.name == \"ListItem\" || cur.name == \"Blockquote\" || cur.name == \"FencedCode\")\n nodes.push(cur);\n }\n let context = [];\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i], match;\n let line = doc.lineAt(node.from), startPos = node.from - line.from;\n if (node.name == \"FencedCode\") {\n context.push(new Context(node, startPos, startPos, \"\", \"\", \"\", null));\n }\n else if (node.name == \"Blockquote\" && (match = /^ *>( ?)/.exec(line.text.slice(startPos)))) {\n context.push(new Context(node, startPos, startPos + match[0].length, \"\", match[1], \">\", null));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"OrderedList\" &&\n (match = /^( *)\\d+([.)])( *)/.exec(line.text.slice(startPos)))) {\n let after = match[3], len = match[0].length;\n if (after.length >= 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, match[2], node));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"BulletList\" &&\n (match = /^( *)([-+*])( {1,4}\\[[ xX]\\])?( +)/.exec(line.text.slice(startPos)))) {\n let after = match[4], len = match[0].length;\n if (after.length > 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n let type = match[2];\n if (match[3])\n type += match[3].replace(/[xX]/, ' ');\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, type, node));\n }\n }\n return context;\n}\nfunction itemNumber(item, doc) {\n return /^(\\s*)(\\d+)(?=[.)])/.exec(doc.sliceString(item.from, item.from + 10));\n}\nfunction renumberList(after, doc, changes, offset = 0) {\n for (let prev = -1, node = after;;) {\n if (node.name == \"ListItem\") {\n let m = itemNumber(node, doc);\n let number = +m[2];\n if (prev >= 0) {\n if (number != prev + 1)\n return;\n changes.push({ from: node.from + m[1].length, to: node.from + m[0].length, insert: String(prev + 2 + offset) });\n }\n prev = number;\n }\n let next = node.nextSibling;\n if (!next)\n break;\n node = next;\n }\n}\nfunction normalizeIndent(content, state) {\n let blank = /^[ \\t]*/.exec(content)[0].length;\n if (!blank || state.facet(indentUnit) != \"\\t\")\n return content;\n let col = countColumn(content, 4, blank);\n let space = \"\";\n for (let i = col; i > 0;) {\n if (i >= 4) {\n space += \"\\t\";\n i -= 4;\n }\n else {\n space += \" \";\n i--;\n }\n }\n return space + content.slice(blank);\n}\n/**\nThis command, when invoked in Markdown context with cursor\nselection(s), will create a new line with the markup for\nblockquotes and lists that were active on the old line. If the\ncursor was directly after the end of the markup for the old line,\ntrailing whitespace and list markers are removed from that line.\n\nThe command does nothing in non-Markdown context, so it should\nnot be used as the only binding for Enter (even in a Markdown\ndocument, HTML and code regions might use a different language).\n*/\nconst insertNewlineContinueMarkup = ({ state, dispatch }) => {\n let tree = syntaxTree(state), { doc } = state;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty || !markdownLanguage.isActiveAt(state, range.from))\n return dont = { range };\n let pos = range.from, line = doc.lineAt(pos);\n let context = getContext(tree.resolveInner(pos, -1), doc);\n while (context.length && context[context.length - 1].from > pos - line.from)\n context.pop();\n if (!context.length)\n return dont = { range };\n let inner = context[context.length - 1];\n if (inner.to - inner.spaceAfter.length > pos - line.from)\n return dont = { range };\n let emptyLine = pos >= (inner.to - inner.spaceAfter.length) && !/\\S/.test(line.text.slice(inner.to));\n // Empty line in list\n if (inner.item && emptyLine) {\n // First list item or blank line before: delete a level of markup\n if (inner.node.firstChild.to >= pos ||\n line.from > 0 && !/[^\\s>]/.test(doc.lineAt(line.from - 1).text)) {\n let next = context.length > 1 ? context[context.length - 2] : null;\n let delTo, insert = \"\";\n if (next && next.item) { // Re-add marker for the list at the next level\n delTo = line.from + next.from;\n insert = next.marker(doc, 1);\n }\n else {\n delTo = line.from + (next ? next.to : 0);\n }\n let changes = [{ from: delTo, to: pos, insert }];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes, -2);\n if (next && next.node.name == \"OrderedList\")\n renumberList(next.item, doc, changes);\n return { range: EditorSelection.cursor(delTo + insert.length), changes };\n }\n else { // Move this line down\n let insert = \"\";\n for (let i = 0, e = context.length - 2; i <= e; i++) {\n insert += context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null, i < e);\n }\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(pos + insert.length + 1),\n changes: { from: line.from, insert: insert + state.lineBreak } };\n }\n }\n if (inner.node.name == \"Blockquote\" && emptyLine && line.from) {\n let prevLine = doc.lineAt(line.from - 1), quoted = />\\s*$/.exec(prevLine.text);\n // Two aligned empty quoted lines in a row\n if (quoted && quoted.index == inner.from) {\n let changes = state.changes([{ from: prevLine.from + quoted.index, to: prevLine.to },\n { from: line.from + inner.from, to: line.to }]);\n return { range: range.map(changes), changes };\n }\n }\n let changes = [];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes);\n let continued = inner.item && inner.item.from < line.from;\n let insert = \"\";\n // If not dedented\n if (!continued || /^[\\s\\d.)\\-+*>]*/.exec(line.text)[0].length >= inner.to) {\n for (let i = 0, e = context.length - 1; i <= e; i++) {\n insert += i == e && !continued ? context[i].marker(doc, 1)\n : context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null);\n }\n }\n let from = pos;\n while (from > line.from && /\\s/.test(line.text.charAt(from - line.from - 1)))\n from--;\n insert = normalizeIndent(insert, state);\n changes.push({ from, to: pos, insert: state.lineBreak + insert });\n return { range: EditorSelection.cursor(from + insert.length + 1), changes };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isMark(node) {\n return node.name == \"QuoteMark\" || node.name == \"ListMark\";\n}\nfunction contextNodeForDelete(tree, pos) {\n let node = tree.resolveInner(pos, -1), scan = pos;\n if (isMark(node)) {\n scan = node.from;\n node = node.parent;\n }\n for (let prev; prev = node.childBefore(scan);) {\n if (isMark(prev)) {\n scan = prev.from;\n }\n else if (prev.name == \"OrderedList\" || prev.name == \"BulletList\") {\n node = prev.lastChild;\n scan = node.to;\n }\n else {\n break;\n }\n }\n return node;\n}\n/**\nThis command will, when invoked in a Markdown context with the\ncursor directly after list or blockquote markup, delete one level\nof markup. When the markup is for a list, it will be replaced by\nspaces on the first invocation (a further invocation will delete\nthe spaces), to make it easy to continue a list.\n\nWhen not after Markdown block markup, this command will return\nfalse, so it is intended to be bound alongside other deletion\ncommands, with a higher precedence than the more generic commands.\n*/\nconst deleteMarkupBackward = ({ state, dispatch }) => {\n let tree = syntaxTree(state);\n let dont = null, changes = state.changeByRange(range => {\n let pos = range.from, { doc } = state;\n if (range.empty && markdownLanguage.isActiveAt(state, range.from)) {\n let line = doc.lineAt(pos);\n let context = getContext(contextNodeForDelete(tree, pos), doc);\n if (context.length) {\n let inner = context[context.length - 1];\n let spaceEnd = inner.to - inner.spaceAfter.length + (inner.spaceAfter ? 1 : 0);\n // Delete extra trailing space after markup\n if (pos - line.from > spaceEnd && !/\\S/.test(line.text.slice(spaceEnd, pos - line.from)))\n return { range: EditorSelection.cursor(line.from + spaceEnd),\n changes: { from: line.from + spaceEnd, to: pos } };\n if (pos - line.from == spaceEnd &&\n // Only apply this if we're on the line that has the\n // construct's syntax, or there's only indentation in the\n // target range\n (!inner.item || line.from <= inner.item.from || !/\\S/.test(line.text.slice(0, inner.to)))) {\n let start = line.from + inner.from;\n // Replace a list item marker with blank space\n if (inner.item && inner.node.from < inner.item.from && /\\S/.test(line.text.slice(inner.from, inner.to))) {\n let insert = inner.blank(countColumn(line.text, 4, inner.to) - countColumn(line.text, 4, inner.from));\n if (start == line.from)\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(start + insert.length),\n changes: { from: start, to: line.from + inner.to, insert } };\n }\n // Delete one level of indentation\n if (start < pos)\n return { range: EditorSelection.cursor(start), changes: { from: start, to: pos } };\n }\n }\n }\n return dont = { range };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete\" }));\n return true;\n};\n\n/**\nA small keymap with Markdown-specific bindings. Binds Enter to\n[`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup)\nand Backspace to\n[`deleteMarkupBackward`](https://codemirror.net/6/docs/ref/#lang-markdown.deleteMarkupBackward).\n*/\nconst markdownKeymap = [\n { key: \"Enter\", run: insertNewlineContinueMarkup },\n { key: \"Backspace\", run: deleteMarkupBackward }\n];\nconst htmlNoMatch = /*@__PURE__*/html({ matchClosingTags: false });\n/**\nMarkdown language support.\n*/\nfunction markdown(config = {}) {\n let { codeLanguages, defaultCodeLanguage, addKeymap = true, base: { parser } = commonmarkLanguage, completeHTMLTags = true } = config;\n if (!(parser instanceof MarkdownParser))\n throw new RangeError(\"Base parser provided to `markdown` should be a Markdown parser\");\n let extensions = config.extensions ? [config.extensions] : [];\n let support = [htmlNoMatch.support], defaultCode;\n if (defaultCodeLanguage instanceof LanguageSupport) {\n support.push(defaultCodeLanguage.support);\n defaultCode = defaultCodeLanguage.language;\n }\n else if (defaultCodeLanguage) {\n defaultCode = defaultCodeLanguage;\n }\n let codeParser = codeLanguages || defaultCode ? getCodeParser(codeLanguages, defaultCode) : undefined;\n extensions.push(parseCode({ codeParser, htmlParser: htmlNoMatch.language.parser }));\n if (addKeymap)\n support.push(Prec.high(keymap.of(markdownKeymap)));\n let lang = mkLang(parser.configure(extensions));\n if (completeHTMLTags)\n support.push(lang.data.of({ autocomplete: htmlTagCompletion }));\n return new LanguageSupport(lang, support);\n}\nfunction htmlTagCompletion(context) {\n let { state, pos } = context, m = /<[:\\-\\.\\w\\u00b7-\\uffff]*$/.exec(state.sliceDoc(pos - 25, pos));\n if (!m)\n return null;\n let tree = syntaxTree(state).resolveInner(pos, -1);\n while (tree && !tree.type.isTop) {\n if (tree.name == \"CodeBlock\" || tree.name == \"FencedCode\" || tree.name == \"ProcessingInstructionBlock\" ||\n tree.name == \"CommentBlock\" || tree.name == \"Link\" || tree.name == \"Image\")\n return null;\n tree = tree.parent;\n }\n return {\n from: pos - m[0].length, to: pos,\n options: htmlTagCompletions(),\n validFor: /^<[:\\-\\.\\w\\u00b7-\\uffff]*$/\n };\n}\nlet _tagCompletions = null;\nfunction htmlTagCompletions() {\n if (_tagCompletions)\n return _tagCompletions;\n let result = htmlCompletionSource(new CompletionContext(EditorState.create({ extensions: htmlNoMatch }), 0, true));\n return _tagCompletions = result ? result.options : [];\n}\n\nexport { commonmarkLanguage, deleteMarkupBackward, insertNewlineContinueMarkup, markdown, markdownKeymap, markdownLanguage };\n"],"names":["CompositeBlock","create","type","value","from","parentHash","end","constructor","hash","children","positions","this","hashProp","NodeProp","contextHash","addChild","child","pos","prop","Tree","length","push","toTree","nodeSet","last","Math","max","types","balance","makeTree","NodeType","none","Type","LeafBlock","start","content","marks","parsers","Line","text","baseIndent","basePos","depth","markers","indent","next","forward","forwardInner","newPos","skipSpace","countIndent","charCodeAt","reset","pop","moveBase","to","moveBaseColumn","findColumn","addMarker","elt","i","goal","scrub","result","slice","skipForList","bl","cx","line","block","stack","size","OrderedList","isOrderedList","isBulletList","BulletList","isHorizontalRule","DefaultSkipMarkup","Blockquote","QuoteMark","lineStart","space","ListItem","_cx","Document","ch","skipSpaceBack","isFencedCode","isBlockquote","breaking","count","isSetextUnderline","parser","leafBlockParsers","indexOf","DefaultLeafBlocks","SetextHeading","inList","isAtxHeading","EmptyLine","CommentEnd","ProcessingEnd","HTMLBlockStyle","isHTMLBlock","rest","e","test","getListIndent","indentAfter","indented","addCodeText","CodeText","DefaultBlockParsers","LinkReference","undefined","IndentedCode","base","pendingMarks","nextLine","m","codeStart","filter","concat","addNode","buffer","writeElements","finish","CodeBlock","FencedCode","fenceEnd","len","infoFrom","infoTo","CodeMark","CodeInfo","first","textStart","textEnd","prevLineEnd","startContext","HorizontalRule","newBase","ListMark","ATXHeading","off","endOfSpace","after","buf","write","HeaderMark","parseInline","node","ATXHeading1","HTMLBlock","trailing","nodeType","CommentBlock","ProcessingInstructionBlock","LinkReferenceParser","leaf","stage","elts","advance","complete","addLeafElement","nextStage","parseLinkLabel","LinkMark","skip","title","parseLinkTitle","titleEnd","lineEnd","parseURL","SetextHeadingParser","underline","underlineMark","SetextHeading1","SetextHeading2","_","DefaultEndLeaf","p","scanLineResult","BlockContext","input","fragments","ranges","atEnd","reusePlaceholders","Map","stoppedAt","rangeI","absoluteLineStart","absoluteLineEnd","FragmentCursor","readLine","parsedPos","markI","mark","finishContext","reuseFragment","blockParsers","parse","lines","stop","endLeafBlock","finishLeaf","stopAt","RangeError","moveTo","matches","taken","takeNodes","toRelative","moveRangeI","parentType","peekLine","scanLine","r","lineChunkAt","textOffset","nextFrom","handler","skipContextMarkup","Error","chunk","lineChunks","eol","startComposite","getNodeType","addElement","injectMarks","top","addGaps","tree","injectGaps","topNode","inline","Paragraph","TreeElement","Buffer","offset","dummies","rangeEnd","movePastNext","upto","inclusive","firstChild","nextSibling","reuse","get","propValues","MarkdownParser","Parser","blockNames","inlineParsers","inlineNames","wrappers","super","nodeTypes","Object","t","name","id","createParse","w","configure","spec","config","resolveConfig","nonEmpty","defineNodes","assign","styles","s","composite","style","some","group","define","props","Array","isArray","Tag","NodeSet","extend","styleTags","remove","rm","parseBlock","found","before","findName","splice","endLeaf","wrap","InlineContext","outer","char","token","resolveMarkers","a","conf","conc","b","wrapA","wrapB","inner","names","Escape","nodes","writeTo","build","reused","topID","Element","startOff","EmphasisUnderscore","resolve","EmphasisAsterisk","LinkStart","ImageStart","InlineDelimiter","side","Escapable","Punctuation","RegExp","DefaultInline","escaped","append","Entity","exec","InlineCode","curSize","HTMLTag","url","Autolink","URL","comment","Comment","procInst","ProcessingInstruction","Emphasis","pBefore","pAfter","sBefore","sAfter","leftFlanking","rightFlanking","canOpen","canClose","HardBreak","Link","Image","LinkEnd","parts","part","takeContent","link","finishLink","j","startPos","endPos","unshift","dest","label","LinkTitle","requireNonWS","min","LinkLabel","addDelimiter","open","close","hasOpenLink","emp","closeSize","k","element","findOpeningDelimiter","startIndex","elements","eI","NotLast","fragment","fragmentEnd","cursor","nextFragment","read","c","rPos","parent","childAfter","cur","fragEnd","openEnd","blockI","prevEnd","prevI","isAnonymous","dummy","set","is","abs","gapFrom","gapTo","markdownHighlighting","tags","quote","contentSeparator","heading1","heading2","heading3","heading4","heading5","heading6","escape","character","emphasis","strong","list","monospace","processingInstruction","labelName","string","keys","map","n","leftOverSpace","nextPos","StrikethroughDelim","Strikethrough","strikethrough","parseRow","startI","cellStart","cellEnd","esc","parseCell","hasPipe","str","delimiterLine","TableParser","rows","lineText","firstRow","Table","heading","TaskParser","TaskList","atom","autolinkRE","urlRE","lastTwoDomainWords","emailRE","xmppResourceRE","autolinkEmailEnd","lastIndex","GFM","absPos","index","autolinkURLEnd","parseSubSuper","Superscript","special","Subscript","Emoji","match","data","defineLanguageFacet","commentTokens","headingProp","commonmark","foldNodeProp","add","isHeading","state","doc","lineAt","indentNodeProp","languageDataProp","findSectionEnd","headerNode","level","headerIndent","foldService","of","syntaxTree","resolveInner","mkLang","Language","commonmarkLanguage","markdownLanguage","Context","spaceBefore","spaceAfter","item","blank","maxWidth","marker","number","String","itemNumber","getContext","context","replace","sliceString","renumberList","changes","prev","insert","normalizeIndent","facet","indentUnit","countColumn","insertNewlineContinueMarkup","dispatch","dont","changeByRange","range","empty","isActiveAt","emptyLine","delTo","EditorSelection","lineBreak","prevLine","quoted","continued","charAt","update","scrollIntoView","userEvent","isMark","deleteMarkupBackward","scan","childBefore","lastChild","contextNodeForDelete","spaceEnd","markdownKeymap","key","run","htmlNoMatch","html","matchClosingTags","markdown","codeLanguages","defaultCodeLanguage","addKeymap","completeHTMLTags","defaultCode","extensions","support","LanguageSupport","language","codeParser","languages","defaultLanguage","info","LanguageDescription","matchLanguageName","ParseContext","getSkippingParser","load","htmlParser","parseMixed","overlay","infoNode","getChild","parseCode","Prec","high","keymap","lang","autocomplete","htmlTagCompletion","sliceDoc","isTop","options","htmlTagCompletions","validFor","_tagCompletions","htmlCompletionSource","CompletionContext","EditorState"],"mappings":"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","x_google_ignoreList":[0,1]}
|