chrome-devtools-frontend 1.0.941208 → 1.0.943182
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/WATCHLISTS +1 -1
- package/config/gni/all_devtools_files.gni +0 -64
- package/config/gni/devtools_grd_files.gni +54 -19
- package/config/gni/devtools_image_files.gni +1 -3
- package/front_end/.eslintrc.js +11 -1
- package/front_end/Images/src/{feedback_thin_16x16_icon.svg → survey_feedback_icon.svg} +1 -1
- package/front_end/Tests.js +1 -32
- package/front_end/core/common/Color.ts +5 -0
- package/front_end/core/i18n/locales/en-US.json +17 -29
- package/front_end/core/i18n/locales/en-XL.json +17 -29
- package/front_end/core/sdk/CPUProfilerModel.ts +7 -9
- package/front_end/core/sdk/ConsoleModel.ts +27 -33
- package/front_end/core/sdk/DebuggerModel.ts +4 -14
- package/front_end/core/sdk/sdk-meta.ts +17 -3
- package/front_end/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.ts +1 -1
- package/front_end/entrypoints/devtools_app/devtools_app.js +1 -1
- package/front_end/entrypoints/devtools_app/devtools_app.json +1 -12
- package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/inspector/inspector.js +1 -1
- package/front_end/entrypoints/inspector/inspector.json +1 -3
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +2 -3
- package/front_end/entrypoints/js_app/js_app.js +1 -1
- package/front_end/entrypoints/js_app/js_app.json +1 -3
- package/front_end/entrypoints/main/MainImpl.ts +26 -0
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/entrypoints/ndb_app/ndb_app.js +1 -1
- package/front_end/entrypoints/node_app/node_app-meta.ts +0 -2
- package/front_end/entrypoints/node_app/node_app.js +1 -1
- package/front_end/entrypoints/node_app/node_app.json +1 -3
- package/front_end/entrypoints/node_main/node_main-meta.ts +0 -1
- package/front_end/entrypoints/shell/shell.js +0 -11
- package/front_end/entrypoints/shell/shell.json +1 -5
- package/front_end/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/worker_app/worker_app.js +1 -1
- package/front_end/entrypoints/worker_app/worker_app.json +1 -7
- package/front_end/generated/InspectorBackendCommands.js +19 -0
- package/front_end/generated/protocol-mapping.d.ts +31 -1
- package/front_end/generated/protocol-proxy-api.d.ts +34 -2
- package/front_end/generated/protocol.d.ts +81 -6
- package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +2 -2
- package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +5 -1
- package/front_end/legacy_test_runner/legacy_test_runner.ts +10 -1
- package/front_end/legacy_test_runner/test_runner/TestRunner.js +3 -1
- package/front_end/models/formatter/SourceFormatter.ts +0 -10
- package/front_end/models/persistence/persistence-meta.ts +0 -1
- package/front_end/models/workspace/UISourceCode.ts +9 -42
- package/front_end/panels/accessibility/accessibility-meta.ts +0 -1
- package/front_end/panels/animation/AnimationTimeline.ts +3 -3
- package/front_end/panels/animation/animation-meta.ts +0 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +3 -3
- package/front_end/panels/application/BackForwardCacheStrings.ts +3 -1
- package/front_end/panels/application/application-meta.ts +0 -4
- package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
- package/front_end/panels/application/components/ReportsGrid.ts +1 -1
- package/front_end/panels/application/components/stackTraceRow.css +8 -0
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +1 -2
- package/front_end/panels/changes/changes-meta.ts +0 -1
- package/front_end/panels/console/ConsolePinPane.ts +23 -32
- package/front_end/panels/console/ConsoleViewMessage.ts +8 -1
- package/front_end/panels/console/console-meta.ts +0 -1
- package/front_end/panels/console_counters/console_counters-meta.ts +0 -1
- package/front_end/panels/coverage/CoverageDecorationManager.ts +4 -5
- package/front_end/panels/coverage/CoverageView.ts +2 -105
- package/front_end/panels/coverage/coverage-meta.ts +0 -1
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +11 -56
- package/front_end/panels/css_overview/components/cssOverviewStartView.css +1 -8
- package/front_end/panels/css_overview/css_overview-meta.ts +0 -1
- package/front_end/panels/developer_resources/developer_resources-meta.ts +0 -1
- package/front_end/panels/elements/ElementsTreeElement.ts +4 -9
- package/front_end/panels/elements/components/StylePropertyEditor.ts +2 -0
- package/front_end/panels/elements/components/adornerSettingsPane.css +0 -4
- package/front_end/panels/elements/elements-meta.ts +0 -1
- package/front_end/panels/emulation/DeviceModeToolbar.ts +3 -1
- package/front_end/panels/emulation/DeviceModeView.ts +2 -1
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +3 -1
- package/front_end/panels/emulation/MediaQueryInspector.ts +3 -1
- package/front_end/panels/emulation/emulation-meta.ts +2 -5
- package/front_end/panels/help/help-meta.ts +0 -1
- package/front_end/panels/input/input-meta.ts +0 -1
- package/front_end/panels/issues/issues-meta.ts +0 -3
- package/front_end/panels/js_profiler/js_profiler-meta.ts +0 -4
- package/front_end/panels/layers/layers-meta.ts +0 -4
- package/front_end/panels/lighthouse/LighthousePanel.ts +2 -4
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -4
- package/front_end/panels/lighthouse/lighthouse-meta.ts +0 -1
- package/front_end/panels/lighthouse/lighthouseStartView.css +4 -0
- package/front_end/panels/lighthouse/module.json +0 -6
- package/front_end/panels/media/media-meta.ts +0 -4
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +0 -1
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -1
- package/front_end/panels/network/network-meta.ts +1 -5
- package/front_end/panels/performance_monitor/performance_monitor-meta.ts +0 -1
- package/front_end/panels/profiler/CPUProfileView.ts +10 -3
- package/front_end/panels/profiler/profiler-meta.ts +0 -3
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +0 -1
- package/front_end/panels/screencast/screencast-meta.ts +0 -4
- package/front_end/panels/security/security-meta.ts +0 -4
- package/front_end/panels/sensors/sensors-meta.ts +0 -1
- package/front_end/panels/settings/emulation/emulation-meta.ts +0 -1
- package/front_end/panels/settings/settings-meta.ts +0 -1
- package/front_end/panels/sources/BreakpointEditDialog.ts +16 -30
- package/front_end/panels/sources/CSSPlugin.ts +310 -331
- package/front_end/panels/sources/CallStackSidebarPane.ts +28 -34
- package/front_end/panels/sources/CoveragePlugin.ts +121 -6
- package/front_end/panels/sources/DebuggerPlugin.ts +1166 -1243
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +71 -101
- package/front_end/panels/sources/GoToLineQuickOpen.ts +4 -3
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +3 -3
- package/front_end/panels/sources/JavaScriptCompilerPlugin.ts +26 -23
- package/front_end/panels/sources/Plugin.ts +20 -4
- package/front_end/panels/sources/ProfilePlugin.ts +185 -0
- package/front_end/panels/sources/ScriptFormatterEditorAction.ts +3 -3
- package/front_end/panels/sources/ScriptOriginPlugin.ts +0 -10
- package/front_end/panels/sources/SnippetsPlugin.ts +1 -10
- package/front_end/panels/sources/SourcesPanel.ts +6 -5
- package/front_end/panels/sources/SourcesView.ts +10 -8
- package/front_end/panels/sources/TabbedEditorContainer.ts +31 -27
- package/front_end/panels/sources/UISourceCodeFrame.ts +335 -470
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -2
- package/front_end/panels/sources/sources-legacy.ts +0 -6
- package/front_end/panels/sources/sources-meta.ts +2 -6
- package/front_end/panels/sources/sources.ts +0 -2
- package/front_end/panels/timeline/timeline-meta.ts +2 -9
- package/front_end/panels/web_audio/web_audio-meta.ts +0 -1
- package/front_end/panels/webauthn/webauthn-meta.ts +0 -1
- package/front_end/third_party/codemirror.next/bundle.ts +9 -13
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/javascript.js +2 -2
- package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -6
- package/front_end/third_party/codemirror.next/chunk/php.js +2 -6
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +2 -2
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +279 -198
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +13 -11
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1128 -1158
- package/front_end/third_party/lighthouse/locales/ar-XB.json +211 -79
- package/front_end/third_party/lighthouse/locales/ar.json +213 -81
- package/front_end/third_party/lighthouse/locales/bg.json +211 -79
- package/front_end/third_party/lighthouse/locales/ca.json +212 -80
- package/front_end/third_party/lighthouse/locales/cs.json +211 -79
- package/front_end/third_party/lighthouse/locales/da.json +211 -79
- package/front_end/third_party/lighthouse/locales/de.json +211 -79
- package/front_end/third_party/lighthouse/locales/el.json +213 -81
- package/front_end/third_party/lighthouse/locales/en-GB.json +211 -79
- package/front_end/third_party/lighthouse/locales/en-US.json +186 -75
- package/front_end/third_party/lighthouse/locales/en-XA.json +211 -79
- package/front_end/third_party/lighthouse/locales/en-XL.json +186 -75
- package/front_end/third_party/lighthouse/locales/es-419.json +211 -79
- package/front_end/third_party/lighthouse/locales/es.json +212 -80
- package/front_end/third_party/lighthouse/locales/fi.json +211 -79
- package/front_end/third_party/lighthouse/locales/fil.json +211 -79
- package/front_end/third_party/lighthouse/locales/fr.json +211 -79
- package/front_end/third_party/lighthouse/locales/he.json +212 -80
- package/front_end/third_party/lighthouse/locales/hi.json +214 -82
- package/front_end/third_party/lighthouse/locales/hr.json +211 -79
- package/front_end/third_party/lighthouse/locales/hu.json +211 -79
- package/front_end/third_party/lighthouse/locales/id.json +211 -79
- package/front_end/third_party/lighthouse/locales/it.json +211 -79
- package/front_end/third_party/lighthouse/locales/ja.json +211 -79
- package/front_end/third_party/lighthouse/locales/ko.json +211 -79
- package/front_end/third_party/lighthouse/locales/lt.json +211 -79
- package/front_end/third_party/lighthouse/locales/lv.json +214 -82
- package/front_end/third_party/lighthouse/locales/nl.json +211 -79
- package/front_end/third_party/lighthouse/locales/no.json +211 -79
- package/front_end/third_party/lighthouse/locales/pl.json +211 -79
- package/front_end/third_party/lighthouse/locales/pt-PT.json +211 -79
- package/front_end/third_party/lighthouse/locales/pt.json +211 -79
- package/front_end/third_party/lighthouse/locales/ro.json +212 -80
- package/front_end/third_party/lighthouse/locales/ru.json +211 -79
- package/front_end/third_party/lighthouse/locales/sk.json +211 -79
- package/front_end/third_party/lighthouse/locales/sl.json +211 -79
- package/front_end/third_party/lighthouse/locales/sr-Latn.json +211 -79
- package/front_end/third_party/lighthouse/locales/sr.json +211 -79
- package/front_end/third_party/lighthouse/locales/sv.json +211 -79
- package/front_end/third_party/lighthouse/locales/ta.json +218 -86
- package/front_end/third_party/lighthouse/locales/te.json +251 -119
- package/front_end/third_party/lighthouse/locales/th.json +211 -79
- package/front_end/third_party/lighthouse/locales/tr.json +211 -79
- package/front_end/third_party/lighthouse/locales/uk.json +212 -80
- package/front_end/third_party/lighthouse/locales/vi.json +211 -79
- package/front_end/third_party/lighthouse/locales/zh-HK.json +211 -79
- package/front_end/third_party/lighthouse/locales/zh-TW.json +211 -79
- package/front_end/third_party/lighthouse/locales/zh.json +211 -79
- package/front_end/third_party/lighthouse/report/bundle.d.ts +72 -34
- package/front_end/third_party/lighthouse/report/bundle.js +698 -492
- package/front_end/third_party/lighthouse/report-assets/report-generator.js +1 -2
- package/front_end/third_party/lighthouse/report-assets/report.js +40 -35
- package/front_end/third_party/lighthouse/report-assets/standalone-template.html +2 -4
- package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +60 -68
- package/front_end/ui/components/data_grid/dataGrid.css +12 -10
- package/front_end/ui/components/docs/component_docs.ts +14 -0
- package/front_end/ui/components/docs/create_breadcrumbs.ts +1 -1
- package/front_end/ui/components/docs/css_overview/start_view.html +25 -0
- package/front_end/ui/components/docs/css_overview/start_view.ts +14 -0
- package/front_end/ui/components/docs/icon_button/basic.ts +3 -3
- package/front_end/ui/components/docs/toggle_dark_mode.ts +1 -0
- package/front_end/ui/components/docs/toggle_fonts.ts +2 -0
- package/front_end/ui/components/helpers/get-stylesheet.ts +0 -15
- package/front_end/ui/components/linear_memory_inspector/linear_memory_inspector-meta.ts +1 -2
- package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
- package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
- package/front_end/ui/components/text_editor/TextEditor.ts +79 -36
- package/front_end/ui/components/text_editor/config.ts +42 -26
- package/front_end/ui/components/text_editor/javascript.ts +2 -3
- package/front_end/ui/components/text_editor/position.ts +17 -0
- package/front_end/ui/components/text_editor/text_editor.ts +1 -0
- package/front_end/ui/components/text_editor/theme.ts +5 -1
- package/front_end/ui/components/tree_outline/TreeOutline.ts +63 -8
- package/front_end/ui/components/tree_outline/TreeOutlineUtils.ts +8 -6
- package/front_end/ui/legacy/Dialog.ts +3 -1
- package/front_end/ui/legacy/DropTarget.ts +2 -1
- package/front_end/ui/legacy/EmptyWidget.ts +2 -1
- package/front_end/ui/legacy/FilterBar.ts +2 -1
- package/front_end/ui/legacy/GlassPane.ts +4 -2
- package/front_end/ui/legacy/Infobar.ts +5 -8
- package/front_end/ui/legacy/InspectorView.ts +6 -1
- package/front_end/ui/legacy/ListWidget.ts +2 -1
- package/front_end/ui/legacy/PopoverHelper.ts +2 -1
- package/front_end/ui/legacy/ProgressIndicator.ts +2 -1
- package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +2 -1
- package/front_end/ui/legacy/ReportView.ts +2 -1
- package/front_end/ui/legacy/RootView.ts +2 -1
- package/front_end/ui/legacy/SearchableView.ts +2 -1
- package/front_end/ui/legacy/ShortcutRegistry.ts +11 -7
- package/front_end/ui/legacy/SoftContextMenu.ts +3 -2
- package/front_end/ui/legacy/SoftDropDown.ts +4 -2
- package/front_end/ui/legacy/SplitWidget.ts +2 -1
- package/front_end/ui/legacy/SuggestBox.ts +2 -1
- package/front_end/ui/legacy/TabbedPane.ts +2 -1
- package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -1
- package/front_end/ui/legacy/TextPrompt.ts +2 -1
- package/front_end/ui/legacy/Toolbar.ts +3 -2
- package/front_end/ui/legacy/Treeoutline.ts +4 -3
- package/front_end/ui/legacy/UIUtils.ts +17 -14
- package/front_end/ui/legacy/ViewManager.ts +2 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +1 -2
- package/front_end/ui/legacy/components/inline_editor/cssAngle.css +4 -0
- package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +0 -4
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +35 -131
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +0 -3
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +2 -3
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +3 -6
- package/front_end/ui/legacy/components/source_frame/FontView.ts +4 -1
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +4 -1
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +4 -1
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +21 -15
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +501 -252
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +7 -2
- package/front_end/ui/legacy/components/source_frame/source_frame-legacy.ts +0 -11
- package/front_end/ui/legacy/components/source_frame/source_frame.ts +0 -2
- package/front_end/ui/legacy/components/text_editor/CodeMirrorTextEditor.ts +2 -0
- package/front_end/ui/legacy/components/text_editor/cmdevtools.css +3 -1
- package/front_end/ui/legacy/components/text_editor/module.json +0 -3
- package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -15
- package/front_end/ui/legacy/radioButton.css +1 -13
- package/front_end/ui/legacy/textButton.css +5 -4
- package/front_end/ui/legacy/themeColors.css +36 -0
- package/front_end/ui/legacy/theme_support/theme_support_impl.ts +7 -9
- package/front_end/ui/legacy/utils/create-shadow-root-with-core-styles.ts +2 -2
- package/front_end/ui/legacy/utils/inject-core-styles.ts +7 -4
- package/package.json +1 -1
- package/scripts/check_gn.js +0 -35
- package/scripts/eslint_rules/lib/es_modules_import.js +15 -8
- package/scripts/eslint_rules/tests/es_modules_import_test.js +8 -0
- package/front_end/Images/radioDot-dark-theme.png +0 -0
- package/front_end/Images/radioDot.png +0 -0
- package/front_end/emulated_devices/module.json +0 -6
- package/front_end/panels/application/module.json +0 -6
- package/front_end/panels/emulation/module.json +0 -11
- package/front_end/panels/issues/module.json +0 -6
- package/front_end/panels/js_profiler/module.json +0 -5
- package/front_end/panels/layer_viewer/module.json +0 -5
- package/front_end/panels/layers/module.json +0 -5
- package/front_end/panels/media/module.json +0 -5
- package/front_end/panels/network/module.json +0 -5
- package/front_end/panels/profiler/module.json +0 -5
- package/front_end/panels/screencast/module.json +0 -6
- package/front_end/panels/security/module.json +0 -5
- package/front_end/panels/timeline/module.json +0 -7
- package/front_end/third_party/lighthouse/report-assets/report.css +0 -1774
- package/front_end/ui/legacy/components/source_frame/SourcesTextEditor.ts +0 -1030
- package/front_end/ui/legacy/components/source_frame/messagesPopover.css +0 -32
- package/front_end/ui/legacy/components/source_frame/module.json +0 -14
- package/front_end/ui/legacy/module.json +0 -41
|
@@ -31,24 +31,35 @@ export const dynamicSetting = CM.Facet.define<DynamicSetting<unknown>>();
|
|
|
31
31
|
|
|
32
32
|
export class DynamicSetting<T> {
|
|
33
33
|
compartment = new CM.Compartment();
|
|
34
|
-
extension: CM.Extension;
|
|
35
34
|
|
|
36
35
|
constructor(
|
|
37
36
|
readonly settingName: string,
|
|
38
|
-
private readonly getExtension: (value: T
|
|
37
|
+
private readonly getExtension: (value: T) => CM.Extension,
|
|
39
38
|
) {
|
|
40
|
-
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
settingValue(): T {
|
|
42
|
+
return Common.Settings.Settings.instance().moduleSetting(this.settingName).get() as T;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
instance(): CM.Extension {
|
|
46
|
+
return [
|
|
47
|
+
this.compartment.of(this.getExtension(this.settingValue())),
|
|
48
|
+
dynamicSetting.of(this as DynamicSetting<unknown>),
|
|
49
|
+
];
|
|
41
50
|
}
|
|
42
51
|
|
|
43
52
|
sync(state: CM.EditorState, value: T): CM.StateEffect<unknown>|null {
|
|
44
53
|
const cur = this.compartment.get(state);
|
|
45
|
-
const needed = this.getExtension(value
|
|
54
|
+
const needed = this.getExtension(value);
|
|
46
55
|
return cur === needed ? null : this.compartment.reconfigure(needed);
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
static bool(name: string, enabled: CM.Extension, disabled: CM.Extension = empty): DynamicSetting<boolean> {
|
|
50
59
|
return new DynamicSetting<boolean>(name, val => val ? enabled : disabled);
|
|
51
60
|
}
|
|
61
|
+
|
|
62
|
+
static none: readonly DynamicSetting<unknown>[] = [];
|
|
52
63
|
}
|
|
53
64
|
|
|
54
65
|
export const tabMovesFocus = DynamicSetting.bool('textEditorTabMovesFocus', CM.keymap.of([{
|
|
@@ -82,23 +93,15 @@ export function guessIndent(doc: CM.Text): string {
|
|
|
82
93
|
values[space] = (values[space] || 0) + 1;
|
|
83
94
|
}
|
|
84
95
|
const minOccurrence = scanned * 0.05;
|
|
85
|
-
const
|
|
86
|
-
|
|
96
|
+
const shortest = Object.entries(values).reduce((shortest, [string, count]): string|null => {
|
|
97
|
+
return count < minOccurrence || shortest && shortest.length < string.length ? shortest : string;
|
|
98
|
+
}, null as string | null);
|
|
99
|
+
return shortest ?? Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get();
|
|
87
100
|
}
|
|
88
101
|
|
|
89
|
-
const
|
|
102
|
+
const deriveIndentUnit = CM.Prec.highest(CM.indentUnit.compute([], (state: CM.EditorState) => guessIndent(state.doc)));
|
|
90
103
|
|
|
91
|
-
|
|
92
|
-
let value = cachedIndentUnit[indent];
|
|
93
|
-
if (!value) {
|
|
94
|
-
value = cachedIndentUnit[indent] = CM.indentUnit.of(indent);
|
|
95
|
-
}
|
|
96
|
-
return value;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export const autoDetectIndent = new DynamicSetting<boolean>('textEditorAutoDetectIndent', (on, state) => {
|
|
100
|
-
return on ? CM.Prec.override(getIndentUnit(guessIndent(state.doc))) : empty;
|
|
101
|
-
});
|
|
104
|
+
export const autoDetectIndent = DynamicSetting.bool('textEditorAutoDetectIndent', deriveIndentUnit);
|
|
102
105
|
|
|
103
106
|
function matcher(decorator: CM.MatchDecorator): CM.Extension {
|
|
104
107
|
return CM.ViewPlugin.define(
|
|
@@ -154,6 +157,16 @@ export const showWhitespace = new DynamicSetting<string>('showWhitespacesInEdito
|
|
|
154
157
|
|
|
155
158
|
export const allowScrollPastEof = DynamicSetting.bool('allowScrollPastEof', CM.scrollPastEnd());
|
|
156
159
|
|
|
160
|
+
const cachedIndentUnit: {[indent: string]: CM.Extension} = Object.create(null);
|
|
161
|
+
|
|
162
|
+
function getIndentUnit(indent: string): CM.Extension {
|
|
163
|
+
let value = cachedIndentUnit[indent];
|
|
164
|
+
if (!value) {
|
|
165
|
+
value = cachedIndentUnit[indent] = CM.indentUnit.of(indent);
|
|
166
|
+
}
|
|
167
|
+
return value;
|
|
168
|
+
}
|
|
169
|
+
|
|
157
170
|
export const indentUnit = new DynamicSetting<string>('textEditorIndent', getIndentUnit);
|
|
158
171
|
|
|
159
172
|
export const domWordWrap = DynamicSetting.bool('domWordWrap', CM.EditorView.lineWrapping);
|
|
@@ -184,22 +197,25 @@ function themeIsDark(): boolean {
|
|
|
184
197
|
|
|
185
198
|
const dummyDarkTheme = CM.EditorView.theme({}, {dark: true});
|
|
186
199
|
|
|
200
|
+
export function theme(): CM.Extension {
|
|
201
|
+
return [editorTheme, themeIsDark() ? dummyDarkTheme : []];
|
|
202
|
+
}
|
|
203
|
+
|
|
187
204
|
export function baseConfiguration(text: string): CM.Extension {
|
|
188
205
|
return [
|
|
189
|
-
|
|
190
|
-
themeIsDark() ? dummyDarkTheme : [],
|
|
206
|
+
theme(),
|
|
191
207
|
CM.highlightSpecialChars(),
|
|
192
208
|
CM.history(),
|
|
193
209
|
CM.drawSelection(),
|
|
194
210
|
CM.EditorState.allowMultipleSelections.of(true),
|
|
195
211
|
CM.indentOnInput(),
|
|
196
|
-
CodeHighlighter.CodeHighlighter.
|
|
212
|
+
CodeHighlighter.CodeHighlighter.highlightStyle,
|
|
197
213
|
CM.closeBrackets(),
|
|
198
214
|
baseKeymap,
|
|
199
|
-
tabMovesFocus,
|
|
200
|
-
bracketMatching,
|
|
201
|
-
indentUnit,
|
|
202
|
-
CM.Prec.
|
|
215
|
+
tabMovesFocus.instance(),
|
|
216
|
+
bracketMatching.instance(),
|
|
217
|
+
indentUnit.instance(),
|
|
218
|
+
CM.Prec.lowest(CM.EditorView.contentAttributes.of({'aria-label': i18nString(UIStrings.codeEditor)})),
|
|
203
219
|
detectLineSeparator(text),
|
|
204
220
|
autocompletion,
|
|
205
221
|
CM.tooltips({parent: getTooltipHost() as unknown as HTMLElement}),
|
|
@@ -221,7 +237,7 @@ function getTooltipHost(): ShadowRoot {
|
|
|
221
237
|
extensions: [
|
|
222
238
|
editorTheme,
|
|
223
239
|
themeIsDark() ? dummyDarkTheme : [],
|
|
224
|
-
CodeHighlighter.CodeHighlighter.
|
|
240
|
+
CodeHighlighter.CodeHighlighter.highlightStyle,
|
|
225
241
|
CM.showTooltip.of({
|
|
226
242
|
pos: 0,
|
|
227
243
|
create() {
|
|
@@ -9,9 +9,8 @@ import * as CodeMirror from '../../../third_party/codemirror.next/codemirror.nex
|
|
|
9
9
|
import * as UI from '../../legacy/legacy.js';
|
|
10
10
|
import {cursorTooltip} from './cursor_tooltip.js';
|
|
11
11
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
return javascriptLanguage.data.of({
|
|
12
|
+
export function completion(): CodeMirror.Extension {
|
|
13
|
+
return CodeMirror.javascript.javascriptLanguage.data.of({
|
|
15
14
|
autocomplete: javascriptCompletionSource,
|
|
16
15
|
});
|
|
17
16
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Copyright 2021 The Chromium Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
import type * as CodeMirror from '../../../third_party/codemirror.next/codemirror.next.js';
|
|
6
|
+
|
|
7
|
+
export function toOffset(
|
|
8
|
+
doc: CodeMirror.Text, {lineNumber, columnNumber}: {lineNumber: number, columnNumber: number}): number {
|
|
9
|
+
const line = doc.line(Math.max(1, Math.min(doc.lines, lineNumber + 1)));
|
|
10
|
+
return Math.max(line.from, Math.min(line.to, line.from + columnNumber));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function toLineColumn(doc: CodeMirror.Text, offset: number): {lineNumber: number, columnNumber: number} {
|
|
14
|
+
offset = Math.max(0, Math.min(offset, doc.length));
|
|
15
|
+
const line = doc.lineAt(offset);
|
|
16
|
+
return {lineNumber: line.number - 1, columnNumber: offset - line.from};
|
|
17
|
+
}
|
|
@@ -52,6 +52,10 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
52
52
|
backgroundColor: 'var(--color-background)',
|
|
53
53
|
},
|
|
54
54
|
|
|
55
|
+
'.cm-lineNumbers': {
|
|
56
|
+
overflow: 'visible',
|
|
57
|
+
minWidth: '40px',
|
|
58
|
+
},
|
|
55
59
|
'.cm-lineNumbers .cm-gutterElement': {
|
|
56
60
|
color: 'var(--color-line-number)',
|
|
57
61
|
padding: '0 3px 0 9px',
|
|
@@ -74,7 +78,7 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
74
78
|
},
|
|
75
79
|
|
|
76
80
|
'.cm-trailingWhitespace': {
|
|
77
|
-
backgroundColor: 'var(--color-
|
|
81
|
+
backgroundColor: 'var(--color-trailing-whitespace)',
|
|
78
82
|
},
|
|
79
83
|
|
|
80
84
|
'.cm-highlightedTab': {
|
|
@@ -10,7 +10,7 @@ import * as Coordinator from '../render_coordinator/render_coordinator.js';
|
|
|
10
10
|
|
|
11
11
|
import treeOutlineStyles from './treeOutline.css.js';
|
|
12
12
|
|
|
13
|
-
import type {TreeNode, TreeNodeWithChildren} from './TreeOutlineUtils.js';
|
|
13
|
+
import type {TreeNodeId, TreeNode, TreeNodeWithChildren} from './TreeOutlineUtils.js';
|
|
14
14
|
import {findNextNodeForTreeOutlineKeyboardNavigation, getNodeChildren, getPathToTreeNode, isExpandableNode, trackDOMNodeToTreeNode} from './TreeOutlineUtils.js';
|
|
15
15
|
|
|
16
16
|
const coordinator = Coordinator.RenderCoordinator.RenderCoordinator.instance();
|
|
@@ -24,6 +24,7 @@ export interface TreeOutlineData<TreeNodeDataType> {
|
|
|
24
24
|
* cause issues in the TreeOutline.
|
|
25
25
|
*/
|
|
26
26
|
tree: readonly TreeNode<TreeNodeDataType>[];
|
|
27
|
+
filter?: (node: TreeNodeDataType) => FilterOption;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
export function defaultRenderer(node: TreeNode<string>): LitHtml.TemplateResult {
|
|
@@ -66,6 +67,19 @@ export class ItemMouseOutEvent<TreeNodeDataType> extends Event {
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
* The tree can be filtered by providing a custom filter function.
|
|
73
|
+
* The filter is applied on every node when constructing the tree
|
|
74
|
+
* and proceeds as follows:
|
|
75
|
+
* - If the filter return SHOW for a node, the node is included in the tree.
|
|
76
|
+
* - If the filter returns FLATTEN, the node is ignored but its subtree is included.
|
|
77
|
+
*/
|
|
78
|
+
export const enum FilterOption {
|
|
79
|
+
SHOW = 'SHOW',
|
|
80
|
+
FLATTEN = 'FLATTEN',
|
|
81
|
+
}
|
|
82
|
+
|
|
69
83
|
export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
70
84
|
static readonly litTagName = LitHtml.literal`devtools-tree-outline`;
|
|
71
85
|
private readonly shadow = this.attachShadow({mode: 'open'});
|
|
@@ -79,7 +93,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
79
93
|
* know for sure when that node will be rendered. This variable tracks the
|
|
80
94
|
* node that we want focused but may not yet have been rendered.
|
|
81
95
|
*/
|
|
82
|
-
private
|
|
96
|
+
private nodeIdPendingFocus: TreeNodeId|null = null;
|
|
83
97
|
private selectedTreeNode: TreeNode<TreeNodeDataType>|null = null;
|
|
84
98
|
private defaultRenderer =
|
|
85
99
|
(node: TreeNode<TreeNodeDataType>, _state: {isExpanded: boolean}): LitHtml.TemplateResult => {
|
|
@@ -91,6 +105,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
91
105
|
}
|
|
92
106
|
return LitHtml.html`${String(node.treeNodeData)}`;
|
|
93
107
|
};
|
|
108
|
+
private nodeFilter?: ((node: TreeNodeDataType) => FilterOption);
|
|
94
109
|
|
|
95
110
|
/**
|
|
96
111
|
* scheduledRender = render() has been called and scheduled a render.
|
|
@@ -134,6 +149,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
134
149
|
set data(data: TreeOutlineData<TreeNodeDataType>) {
|
|
135
150
|
this.defaultRenderer = data.defaultRenderer;
|
|
136
151
|
this.treeData = data.tree;
|
|
152
|
+
this.nodeFilter = data.filter;
|
|
137
153
|
if (!this.hasRenderedAtLeastOnce) {
|
|
138
154
|
this.selectedTreeNode = this.treeData[0];
|
|
139
155
|
}
|
|
@@ -154,10 +170,17 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
154
170
|
* Takes a TreeNode, expands the outline to reveal it, and focuses it.
|
|
155
171
|
*/
|
|
156
172
|
async expandToAndSelectTreeNode(targetTreeNode: TreeNode<TreeNodeDataType>): Promise<void> {
|
|
157
|
-
|
|
173
|
+
return this.expandToAndSelectTreeNodeId(targetTreeNode.id);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Takes a TreeNode ID, expands the outline to reveal it, and focuses it.
|
|
178
|
+
*/
|
|
179
|
+
async expandToAndSelectTreeNodeId(targetTreeNodeId: TreeNodeId): Promise<void> {
|
|
180
|
+
const pathToTreeNode = await getPathToTreeNode(this.treeData, targetTreeNodeId);
|
|
158
181
|
|
|
159
182
|
if (pathToTreeNode === null) {
|
|
160
|
-
throw new Error(`Could not find node with id ${
|
|
183
|
+
throw new Error(`Could not find node with id ${targetTreeNodeId} in the tree.`);
|
|
161
184
|
}
|
|
162
185
|
pathToTreeNode.forEach((node, index) => {
|
|
163
186
|
// We don't expand the very last node, which was the target node.
|
|
@@ -167,10 +190,26 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
167
190
|
});
|
|
168
191
|
|
|
169
192
|
// Mark the node as pending focus so when it is rendered into the DOM we can focus it
|
|
170
|
-
this.
|
|
193
|
+
this.nodeIdPendingFocus = targetTreeNodeId;
|
|
171
194
|
await this.render();
|
|
172
195
|
}
|
|
173
196
|
|
|
197
|
+
/**
|
|
198
|
+
* Takes a list of TreeNode IDs and expands the corresponding nodes.
|
|
199
|
+
*/
|
|
200
|
+
expandNodeIds(nodeIds: TreeNodeId[]): Promise<void> {
|
|
201
|
+
nodeIds.forEach(id => this.nodeExpandedMap.set(id, true));
|
|
202
|
+
return this.render();
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Takes a TreeNode ID and focuses the corresponding node.
|
|
207
|
+
*/
|
|
208
|
+
focusNodeId(nodeId: TreeNodeId): Promise<void> {
|
|
209
|
+
this.nodeIdPendingFocus = nodeId;
|
|
210
|
+
return this.render();
|
|
211
|
+
}
|
|
212
|
+
|
|
174
213
|
async collapseChildrenOfNode(domNode: HTMLLIElement): Promise<void> {
|
|
175
214
|
const treeNode = this.domNodeToTreeNodeMap.get(domNode);
|
|
176
215
|
if (!treeNode) {
|
|
@@ -208,7 +247,22 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
208
247
|
}
|
|
209
248
|
|
|
210
249
|
private async fetchNodeChildren(node: TreeNodeWithChildren<TreeNodeDataType>): Promise<TreeNode<TreeNodeDataType>[]> {
|
|
211
|
-
|
|
250
|
+
const children = await getNodeChildren(node);
|
|
251
|
+
if (!this.nodeFilter) {
|
|
252
|
+
return children;
|
|
253
|
+
}
|
|
254
|
+
const filteredChildren = [];
|
|
255
|
+
for (const child of children) {
|
|
256
|
+
const filtering = this.nodeFilter(child.treeNodeData);
|
|
257
|
+
// We always include the selected node in the tree, regardless of its filtering status.
|
|
258
|
+
if (filtering === FilterOption.SHOW || this.isSelectedNode(child) || child.id === this.nodeIdPendingFocus) {
|
|
259
|
+
filteredChildren.push(child);
|
|
260
|
+
} else if (filtering === FilterOption.FLATTEN && isExpandableNode(child)) {
|
|
261
|
+
const grandChildren = await this.fetchNodeChildren(child);
|
|
262
|
+
filteredChildren.push(...grandChildren);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return filteredChildren;
|
|
212
266
|
}
|
|
213
267
|
|
|
214
268
|
private setNodeExpandedState(node: TreeNode<TreeNodeDataType>, newExpandedState: boolean): void {
|
|
@@ -337,7 +391,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
337
391
|
}
|
|
338
392
|
|
|
339
393
|
private focusPendingNode(domNode: HTMLLIElement): void {
|
|
340
|
-
this.
|
|
394
|
+
this.nodeIdPendingFocus = null;
|
|
341
395
|
this.focusTreeNode(domNode);
|
|
342
396
|
}
|
|
343
397
|
|
|
@@ -411,7 +465,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
411
465
|
return;
|
|
412
466
|
}
|
|
413
467
|
|
|
414
|
-
if (this.
|
|
468
|
+
if (this.nodeIdPendingFocus && node.id === this.nodeIdPendingFocus) {
|
|
415
469
|
this.focusPendingNode(domNode);
|
|
416
470
|
}
|
|
417
471
|
})}
|
|
@@ -433,6 +487,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
|
433
487
|
`;
|
|
434
488
|
// clang-format on
|
|
435
489
|
}
|
|
490
|
+
|
|
436
491
|
private async render(): Promise<void> {
|
|
437
492
|
if (this.scheduledRender) {
|
|
438
493
|
// If we are already rendering, don't render again immediately, but
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
import * as Platform from '../../../core/platform/platform.js';
|
|
5
5
|
import * as LitHtml from '../../lit-html/lit-html.js';
|
|
6
6
|
|
|
7
|
+
export type TreeNodeId = string;
|
|
8
|
+
|
|
7
9
|
interface BaseTreeNode<TreeNodeDataType> {
|
|
8
10
|
treeNodeData: TreeNodeDataType;
|
|
9
11
|
renderer?: (node: TreeNode<TreeNodeDataType>, state: {isExpanded: boolean}) => LitHtml.TemplateResult;
|
|
10
|
-
id:
|
|
12
|
+
id: TreeNodeId;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export interface TreeNodeWithChildren<TreeNodeDataType> extends BaseTreeNode<TreeNodeDataType> {
|
|
@@ -196,10 +198,10 @@ export const getNodeChildren =
|
|
|
196
198
|
* And you look for F, you'll get back [A, D, F]
|
|
197
199
|
*/
|
|
198
200
|
export const getPathToTreeNode =
|
|
199
|
-
async<TreeNodeDataType>(tree: readonly TreeNode<TreeNodeDataType>[],
|
|
201
|
+
async<TreeNodeDataType>(tree: readonly TreeNode<TreeNodeDataType>[], nodeIdToFind: TreeNodeId):
|
|
200
202
|
Promise<TreeNode<TreeNodeDataType>[]|null> => {
|
|
201
203
|
for (const rootNode of tree) {
|
|
202
|
-
const foundPathOrNull = await getPathToTreeNodeRecursively(rootNode,
|
|
204
|
+
const foundPathOrNull = await getPathToTreeNodeRecursively(rootNode, nodeIdToFind, [rootNode]);
|
|
203
205
|
if (foundPathOrNull !== null) {
|
|
204
206
|
return foundPathOrNull;
|
|
205
207
|
}
|
|
@@ -208,16 +210,16 @@ export const getPathToTreeNode =
|
|
|
208
210
|
};
|
|
209
211
|
|
|
210
212
|
const getPathToTreeNodeRecursively = async<TreeNodeDataType>(
|
|
211
|
-
currentNode: TreeNode<TreeNodeDataType>,
|
|
213
|
+
currentNode: TreeNode<TreeNodeDataType>, nodeIdToFind: TreeNodeId,
|
|
212
214
|
pathToNode: TreeNode<TreeNodeDataType>[]): Promise<TreeNode<TreeNodeDataType>[]|null> => {
|
|
213
|
-
if (currentNode.id ===
|
|
215
|
+
if (currentNode.id === nodeIdToFind) {
|
|
214
216
|
return pathToNode;
|
|
215
217
|
}
|
|
216
218
|
|
|
217
219
|
if (currentNode.children) {
|
|
218
220
|
const children = await getNodeChildren(currentNode);
|
|
219
221
|
for (const child of children) {
|
|
220
|
-
const foundPathOrNull = await getPathToTreeNodeRecursively(child,
|
|
222
|
+
const foundPathOrNull = await getPathToTreeNodeRecursively(child, nodeIdToFind, [...pathToNode, child]);
|
|
221
223
|
if (foundPathOrNull !== null) {
|
|
222
224
|
return foundPathOrNull;
|
|
223
225
|
}
|
|
@@ -39,6 +39,8 @@ import type {DevToolsCloseButton} from './UIUtils.js';
|
|
|
39
39
|
import type {WidgetElement} from './Widget.js';
|
|
40
40
|
import {WidgetFocusRestorer} from './Widget.js';
|
|
41
41
|
|
|
42
|
+
import dialogStyles from './dialog.css.legacy.js';
|
|
43
|
+
|
|
42
44
|
export class Dialog extends Common.ObjectWrapper.eventMixin<EventTypes, typeof GlassPane>(GlassPane) {
|
|
43
45
|
private tabIndexBehavior: OutsideTabIndexBehavior;
|
|
44
46
|
private tabIndexMap: Map<HTMLElement, number>;
|
|
@@ -50,7 +52,7 @@ export class Dialog extends Common.ObjectWrapper.eventMixin<EventTypes, typeof G
|
|
|
50
52
|
|
|
51
53
|
constructor() {
|
|
52
54
|
super();
|
|
53
|
-
this.registerRequiredCSS(
|
|
55
|
+
this.registerRequiredCSS(dialogStyles);
|
|
54
56
|
this.contentElement.tabIndex = 0;
|
|
55
57
|
this.contentElement.addEventListener('focus', () => this.widget().focus(), false);
|
|
56
58
|
this.widget().setDefaultFocusedElement(this.contentElement);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import dropTargetStyles from './dropTarget.css.legacy.js';
|
|
5
6
|
import * as Utils from './utils/utils.js';
|
|
6
7
|
|
|
7
8
|
export class DropTarget {
|
|
@@ -71,7 +72,7 @@ export class DropTarget {
|
|
|
71
72
|
}
|
|
72
73
|
this.dragMaskElement = this.element.createChild('div', '');
|
|
73
74
|
const shadowRoot = Utils.createShadowRootWithCoreStyles(
|
|
74
|
-
this.dragMaskElement, {cssFile:
|
|
75
|
+
this.dragMaskElement, {cssFile: dropTargetStyles, delegatesFocus: undefined});
|
|
75
76
|
shadowRoot.createChild('div', 'drop-target-message').textContent = this.messageText;
|
|
76
77
|
this.dragMaskElement.addEventListener('drop', this.onDrop.bind(this), true);
|
|
77
78
|
this.dragMaskElement.addEventListener('dragleave', this.onDragLeave.bind(this), true);
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
32
32
|
|
|
33
|
+
import emptyWidgetStyles from './emptyWidget.css.legacy.js';
|
|
33
34
|
import {VBox} from './Widget.js';
|
|
34
35
|
import {XLink} from './XLink.js';
|
|
35
36
|
|
|
@@ -47,7 +48,7 @@ export class EmptyWidget extends VBox {
|
|
|
47
48
|
|
|
48
49
|
constructor(text: string) {
|
|
49
50
|
super();
|
|
50
|
-
this.registerRequiredCSS(
|
|
51
|
+
this.registerRequiredCSS(emptyWidgetStyles);
|
|
51
52
|
this.element.classList.add('empty-view-scroller');
|
|
52
53
|
this.contentElement = this.element.createChild('div', 'empty-view') as HTMLDivElement;
|
|
53
54
|
this.textElement = this.contentElement.createChild('div', 'empty-bold-text');
|
|
@@ -43,6 +43,7 @@ import {ToolbarSettingToggle} from './Toolbar.js';
|
|
|
43
43
|
import {Tooltip} from './Tooltip.js';
|
|
44
44
|
import {CheckboxLabel, createTextChild} from './UIUtils.js';
|
|
45
45
|
import {HBox} from './Widget.js';
|
|
46
|
+
import filterStyles from './filter.css.legacy.js';
|
|
46
47
|
|
|
47
48
|
const UIStrings = {
|
|
48
49
|
/**
|
|
@@ -79,7 +80,7 @@ export class FilterBar extends Common.ObjectWrapper.eventMixin<FilterBarEventTyp
|
|
|
79
80
|
|
|
80
81
|
constructor(name: string, visibleByDefault?: boolean) {
|
|
81
82
|
super();
|
|
82
|
-
this.registerRequiredCSS(
|
|
83
|
+
this.registerRequiredCSS(filterStyles);
|
|
83
84
|
this.enabled = true;
|
|
84
85
|
this.element.classList.add('filter-bar');
|
|
85
86
|
|
|
@@ -10,6 +10,7 @@ import {Icon} from './Icon.js';
|
|
|
10
10
|
import {deepElementFromEvent} from './UIUtils.js';
|
|
11
11
|
import type {WidgetElement} from './Widget.js';
|
|
12
12
|
import {Widget} from './Widget.js';
|
|
13
|
+
import glassPaneStyles from './glassPane.css.legacy.js';
|
|
13
14
|
|
|
14
15
|
export class GlassPane {
|
|
15
16
|
private readonly widgetInternal: Widget;
|
|
@@ -36,7 +37,7 @@ export class GlassPane {
|
|
|
36
37
|
this.element.shadowRoot.appendChild(this.arrowElement);
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
this.registerRequiredCSS(
|
|
40
|
+
this.registerRequiredCSS(glassPaneStyles);
|
|
40
41
|
this.setPointerEventsBehavior(PointerEventsBehavior.PierceGlassPane);
|
|
41
42
|
|
|
42
43
|
this.onMouseDownBound = this.onMouseDown.bind(this);
|
|
@@ -54,7 +55,8 @@ export class GlassPane {
|
|
|
54
55
|
return this.widgetInternal.isShowing();
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
registerRequiredCSS(cssFile: string): void {
|
|
58
|
+
registerRequiredCSS(cssFile: string|{cssContent: string}): void {
|
|
59
|
+
// eslint-disable-next-line no-restricted-syntax -- Should import styles https://crbug.com/1106746
|
|
58
60
|
this.widgetInternal.registerRequiredCSS(cssFile);
|
|
59
61
|
}
|
|
60
62
|
|
|
@@ -10,6 +10,7 @@ import * as ARIAUtils from './ARIAUtils.js';
|
|
|
10
10
|
import {Keys} from './KeyboardShortcut.js';
|
|
11
11
|
import {createTextButton} from './UIUtils.js';
|
|
12
12
|
import type {Widget} from './Widget.js';
|
|
13
|
+
import infobarStyles from './infobar.css.legacy.js';
|
|
13
14
|
|
|
14
15
|
const UIStrings = {
|
|
15
16
|
/**
|
|
@@ -46,9 +47,7 @@ export class Infobar {
|
|
|
46
47
|
private readonly closeContainer: HTMLElement;
|
|
47
48
|
private readonly toggleElement: HTMLButtonElement;
|
|
48
49
|
private readonly closeButton: HTMLElement;
|
|
49
|
-
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
-
private closeCallback: (() => any)|null;
|
|
50
|
+
private closeCallback: (() => void)|null;
|
|
52
51
|
private parentView?: Widget;
|
|
53
52
|
|
|
54
53
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
|
@@ -56,8 +55,8 @@ export class Infobar {
|
|
|
56
55
|
constructor(type: Type, text: string, actions?: InfobarAction[], disableSetting?: Common.Settings.Setting<any>) {
|
|
57
56
|
this.element = document.createElement('div');
|
|
58
57
|
this.element.classList.add('flex-none');
|
|
59
|
-
this.shadowRoot =
|
|
60
|
-
this.element, {cssFile:
|
|
58
|
+
this.shadowRoot =
|
|
59
|
+
Utils.createShadowRootWithCoreStyles(this.element, {cssFile: infobarStyles, delegatesFocus: undefined});
|
|
61
60
|
|
|
62
61
|
this.contentElement = this.shadowRoot.createChild('div', 'infobar infobar-' + type) as HTMLDivElement;
|
|
63
62
|
|
|
@@ -160,9 +159,7 @@ export class Infobar {
|
|
|
160
159
|
this.onResize();
|
|
161
160
|
}
|
|
162
161
|
|
|
163
|
-
|
|
164
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
165
|
-
setCloseCallback(callback: (() => any)|null): void {
|
|
162
|
+
setCloseCallback(callback: (() => void)|null): void {
|
|
166
163
|
this.closeCallback = callback;
|
|
167
164
|
}
|
|
168
165
|
|
|
@@ -52,6 +52,7 @@ import {ViewManager} from './ViewManager.js';
|
|
|
52
52
|
import type {Widget} from './Widget.js';
|
|
53
53
|
import {VBox, WidgetFocusRestorer} from './Widget.js';
|
|
54
54
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
55
|
+
import inspectorViewTabbedPaneStyles from './inspectorViewTabbedPane.css.legacy.js';
|
|
55
56
|
|
|
56
57
|
const UIStrings = {
|
|
57
58
|
/**
|
|
@@ -167,7 +168,7 @@ export class InspectorView extends VBox implements ViewLocationResolver {
|
|
|
167
168
|
|
|
168
169
|
this.tabbedPane = this.tabbedLocation.tabbedPane();
|
|
169
170
|
this.tabbedPane.element.classList.add('main-tabbed-pane');
|
|
170
|
-
this.tabbedPane.registerRequiredCSS(
|
|
171
|
+
this.tabbedPane.registerRequiredCSS(inspectorViewTabbedPaneStyles);
|
|
171
172
|
this.tabbedPane.addEventListener(TabbedPaneEvents.TabSelected, this.tabSelected, this);
|
|
172
173
|
this.tabbedPane.setAccessibleName(i18nString(UIStrings.panels));
|
|
173
174
|
this.tabbedPane.setTabDelegate(this.tabDelegate);
|
|
@@ -210,6 +211,10 @@ export class InspectorView extends VBox implements ViewLocationResolver {
|
|
|
210
211
|
return inspectorViewInstance;
|
|
211
212
|
}
|
|
212
213
|
|
|
214
|
+
static maybeGetInspectorViewInstance(): InspectorView|undefined {
|
|
215
|
+
return inspectorViewInstance;
|
|
216
|
+
}
|
|
217
|
+
|
|
213
218
|
wasShown(): void {
|
|
214
219
|
this.element.ownerDocument.addEventListener('keydown', this.keyDownBound, false);
|
|
215
220
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
|
|
7
7
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
8
|
+
import listWidgetStyles from './listWidget.css.legacy.js';
|
|
8
9
|
import {Toolbar, ToolbarButton} from './Toolbar.js';
|
|
9
10
|
import {Tooltip} from './Tooltip.js';
|
|
10
11
|
import {createInput, createTextButton, ElementFocusRestorer} from './UIUtils.js';
|
|
@@ -49,7 +50,7 @@ export class ListWidget<T> extends VBox {
|
|
|
49
50
|
private emptyPlaceholder: Element|null;
|
|
50
51
|
constructor(delegate: Delegate<T>, delegatesFocus: boolean|undefined = true) {
|
|
51
52
|
super(true, delegatesFocus);
|
|
52
|
-
this.registerRequiredCSS(
|
|
53
|
+
this.registerRequiredCSS(listWidgetStyles);
|
|
53
54
|
this.delegate = delegate;
|
|
54
55
|
|
|
55
56
|
this.list = this.contentElement.createChild('div', 'list');
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
import {GlassPane, MarginBehavior, SizeBehavior} from './GlassPane.js';
|
|
32
|
+
import popoverStyles from './popover.css.legacy.js';
|
|
32
33
|
|
|
33
34
|
export class PopoverHelper {
|
|
34
35
|
private disableOnClick: boolean;
|
|
@@ -189,7 +190,7 @@ export class PopoverHelper {
|
|
|
189
190
|
|
|
190
191
|
private showPopover(document: Document): void {
|
|
191
192
|
const popover = new GlassPane();
|
|
192
|
-
popover.registerRequiredCSS(
|
|
193
|
+
popover.registerRequiredCSS(popoverStyles);
|
|
193
194
|
popover.setSizeBehavior(SizeBehavior.MeasureContent);
|
|
194
195
|
popover.setMarginBehavior(MarginBehavior.Arrow);
|
|
195
196
|
const request = this.scheduledRequest;
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
import type * as Common from '../../core/common/common.js';
|
|
32
32
|
import * as Utils from './utils/utils.js';
|
|
33
|
+
import progressIndicatorStyles from './progressIndicator.css.legacy.js';
|
|
33
34
|
|
|
34
35
|
export class ProgressIndicator implements Common.Progress.Progress {
|
|
35
36
|
element: HTMLDivElement;
|
|
@@ -46,7 +47,7 @@ export class ProgressIndicator implements Common.Progress.Progress {
|
|
|
46
47
|
this.element = document.createElement('div');
|
|
47
48
|
this.element.classList.add('progress-indicator');
|
|
48
49
|
this.shadowRoot = Utils.createShadowRootWithCoreStyles(
|
|
49
|
-
this.element, {cssFile:
|
|
50
|
+
this.element, {cssFile: progressIndicatorStyles, delegatesFocus: undefined});
|
|
50
51
|
this.contentElement = this.shadowRoot.createChild('div', 'progress-indicator-shadow-container');
|
|
51
52
|
|
|
52
53
|
this.labelElement = this.contentElement.createChild('div', 'title');
|
|
@@ -6,6 +6,7 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
|
6
6
|
|
|
7
7
|
import {Dialog} from './Dialog.js';
|
|
8
8
|
import {SizeBehavior} from './GlassPane.js';
|
|
9
|
+
import remoteDebuggingTerminatedScreenStyles from './remoteDebuggingTerminatedScreen.css.legacy.js';
|
|
9
10
|
import {createTextButton, formatLocalized} from './UIUtils.js';
|
|
10
11
|
import {VBox} from './Widget.js';
|
|
11
12
|
|
|
@@ -30,7 +31,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
|
30
31
|
export class RemoteDebuggingTerminatedScreen extends VBox {
|
|
31
32
|
constructor(reason: string) {
|
|
32
33
|
super(true);
|
|
33
|
-
this.registerRequiredCSS(
|
|
34
|
+
this.registerRequiredCSS(remoteDebuggingTerminatedScreenStyles);
|
|
34
35
|
const message = this.contentElement.createChild('div', 'message');
|
|
35
36
|
const reasonElement = message.createChild('span', 'reason');
|
|
36
37
|
reasonElement.textContent = reason;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
6
|
+
import reportViewStyles from './reportView.css.legacy.js';
|
|
6
7
|
import {Toolbar} from './Toolbar.js';
|
|
7
8
|
import {Tooltip} from './Tooltip.js';
|
|
8
9
|
import {VBox} from './Widget.js';
|
|
@@ -20,7 +21,7 @@ export class ReportView extends VBox {
|
|
|
20
21
|
private urlElement?: HTMLElement;
|
|
21
22
|
constructor(title?: string) {
|
|
22
23
|
super(true);
|
|
23
|
-
this.registerRequiredCSS(
|
|
24
|
+
this.registerRequiredCSS(reportViewStyles);
|
|
24
25
|
|
|
25
26
|
this.contentBox = this.contentElement.createChild('div', 'report-content-box');
|
|
26
27
|
this.headerElement = this.contentBox.createChild('div', 'report-header vbox');
|