chrome-devtools-frontend 1.0.998787 → 1.0.999279
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/.clang-format +1 -0
- package/front_end/core/common/Color.ts +9 -1
- package/front_end/core/common/Object.ts +2 -1
- package/front_end/core/common/Settings.ts +13 -1
- package/front_end/core/host/InspectorFrontendHost.ts +4 -1
- package/front_end/core/i18n/locales/en-US.json +1 -1
- package/front_end/core/i18n/locales/en-XL.json +1 -1
- package/front_end/core/sdk/CSSProperty.ts +6 -7
- package/front_end/core/sdk/ChildTargetManager.ts +0 -3
- package/front_end/core/sdk/ConsoleModel.ts +2 -1
- package/front_end/core/sdk/NetworkManager.ts +3 -1
- package/front_end/core/sdk/RuntimeModel.ts +7 -1
- package/front_end/core/sdk/SourceMapManager.ts +10 -1
- package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +5 -1
- package/front_end/legacy/legacy-defs.d.ts +2 -2
- package/front_end/models/formatter/ScriptFormatter.ts +3 -1
- package/front_end/models/issues_manager/DeprecationIssue.ts +1 -1
- package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +5 -1
- package/front_end/models/text_utils/CodeMirrorUtils.ts +14 -17
- package/front_end/models/timeline_model/TimelineModel.ts +1 -1
- package/front_end/panels/application/IndexedDBViews.ts +5 -2
- package/front_end/panels/console/ConsoleView.ts +9 -1
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -1
- package/front_end/panels/elements/PropertiesWidget.ts +0 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +7 -1
- package/front_end/panels/lighthouse/LighthousePanel.ts +2 -1
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +9 -2
- package/front_end/panels/lighthouse/lighthouseDialog.css +5 -0
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +3 -1
- package/front_end/panels/network/NetworkLogView.ts +5 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +3 -1
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +8 -1
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -1
- package/front_end/panels/profiler/HeapSnapshotView.ts +14 -2
- package/front_end/panels/sources/SourcesPanel.ts +7 -1
- package/front_end/panels/timeline/TimelineController.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -1
- package/front_end/panels/timeline/TimelineHistoryManager.ts +6 -1
- package/front_end/panels/timeline/TimelinePanel.ts +10 -1
- package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +3 -1
- package/front_end/panels/web_audio/graph_visualizer/NodeRendererUtility.ts +8 -1
- package/front_end/panels/web_audio/graph_visualizer/NodeView.ts +13 -1
- package/front_end/panels/web_audio/web_audio.ts +8 -1
- package/front_end/ui/components/buttons/button.css +16 -3
- package/front_end/ui/components/data_grid/DataGrid.ts +9 -1
- package/front_end/ui/components/docs/button/basic.ts +10 -0
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +11 -3
- package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +12 -1
- package/front_end/ui/components/tree_outline/TreeOutline.ts +16 -11
- package/front_end/ui/legacy/Fragment.ts +2 -2
- package/front_end/ui/legacy/ViewManager.ts +12 -1
- package/front_end/ui/legacy/XLink.ts +6 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +8 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +7 -1
- package/package.json +1 -1
package/.clang-format
CHANGED
@@ -33,7 +33,15 @@
|
|
33
33
|
|
34
34
|
import * as Platform from '../platform/platform.js';
|
35
35
|
|
36
|
-
import {
|
36
|
+
import {
|
37
|
+
blendColors,
|
38
|
+
contrastRatioAPCA,
|
39
|
+
desiredLuminanceAPCA,
|
40
|
+
luminance,
|
41
|
+
luminanceAPCA,
|
42
|
+
rgbaToHsla,
|
43
|
+
rgbaToHwba,
|
44
|
+
} from './ColorUtils.js';
|
37
45
|
|
38
46
|
export class Color {
|
39
47
|
#hslaInternal: number[]|undefined;
|
@@ -28,7 +28,8 @@
|
|
28
28
|
*/
|
29
29
|
|
30
30
|
import type * as Platform from '../platform/platform.js';
|
31
|
-
import type {
|
31
|
+
import type {
|
32
|
+
EventDescriptor, EventListener, EventTarget, EventTargetEvent, EventPayloadToRestParameters} from './EventTarget.js';
|
32
33
|
|
33
34
|
export interface ListenerCallbackTuple<Events, T extends keyof Events> {
|
34
35
|
thisObject?: Object;
|
@@ -36,7 +36,19 @@ import {Format} from './Color.js';
|
|
36
36
|
import {Console} from './Console.js';
|
37
37
|
import type {GenericEvents, EventDescriptor, EventTargetEvent} from './EventTarget.js';
|
38
38
|
import {ObjectWrapper} from './Object.js';
|
39
|
-
import {
|
39
|
+
import {
|
40
|
+
getLocalizedSettingsCategory,
|
41
|
+
getRegisteredSettings,
|
42
|
+
maybeRemoveSettingExtension,
|
43
|
+
type RegExpSettingItem,
|
44
|
+
registerSettingExtension,
|
45
|
+
registerSettingsForTest,
|
46
|
+
resetSettings,
|
47
|
+
SettingCategory,
|
48
|
+
type SettingExtensionOption,
|
49
|
+
type SettingRegistration,
|
50
|
+
SettingType,
|
51
|
+
} from './SettingRegistration.js';
|
40
52
|
|
41
53
|
let settingsInstance: Settings|undefined;
|
42
54
|
|
@@ -36,7 +36,10 @@ import * as i18n from '../i18n/i18n.js';
|
|
36
36
|
import * as Platform from '../platform/platform.js';
|
37
37
|
import * as Root from '../root/root.js';
|
38
38
|
|
39
|
-
import type {
|
39
|
+
import type {
|
40
|
+
CanShowSurveyResult, ContextMenuDescriptor, EnumeratedHistogram, EventTypes, ExtensionDescriptor,
|
41
|
+
InspectorFrontendHostAPI, LoadNetworkResourceResult, ShowSurveyResult,
|
42
|
+
SyncInformation} from './InspectorFrontendHostAPI.js';
|
40
43
|
import {EventDescriptors, Events} from './InspectorFrontendHostAPI.js';
|
41
44
|
import {streamWrite as resourceLoaderStreamWrite} from './ResourceLoader.js';
|
42
45
|
|
@@ -7482,7 +7482,7 @@
|
|
7482
7482
|
"message": "Unknown"
|
7483
7483
|
},
|
7484
7484
|
"panels/network/RequestTimingView.ts | waitingTtfb": {
|
7485
|
-
"message": "Waiting
|
7485
|
+
"message": "Waiting for server response"
|
7486
7486
|
},
|
7487
7487
|
"panels/network/RequestTimingView.ts | waterfall": {
|
7488
7488
|
"message": "Waterfall"
|
@@ -7482,7 +7482,7 @@
|
|
7482
7482
|
"message": "Ûńk̂ńôẃn̂"
|
7483
7483
|
},
|
7484
7484
|
"panels/network/RequestTimingView.ts | waitingTtfb": {
|
7485
|
-
"message": "Ŵáît́îńĝ
|
7485
|
+
"message": "Ŵáît́îńĝ f́ôŕ ŝér̂v́êŕ r̂éŝṕôńŝé"
|
7486
7486
|
},
|
7487
7487
|
"panels/network/RequestTimingView.ts | waterfall": {
|
7488
7488
|
"message": "Ŵát̂ér̂f́âĺl̂"
|
@@ -163,8 +163,8 @@ export class CSSProperty {
|
|
163
163
|
|
164
164
|
const range = this.range.relativeTo(this.ownerStyle.range.startLine, this.ownerStyle.range.startColumn);
|
165
165
|
const indentation = this.ownerStyle.cssText ?
|
166
|
-
|
167
|
-
|
166
|
+
this.detectIndentation(this.ownerStyle.cssText) :
|
167
|
+
Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get();
|
168
168
|
const endIndentation = this.ownerStyle.cssText ? indentation.substring(0, this.ownerStyle.range.endColumn) : '';
|
169
169
|
const text = new TextUtils.Text.Text(this.ownerStyle.cssText || '');
|
170
170
|
const newStyleText = text.replaceRange(range, Platform.StringUtilities.sprintf(';%s;', propertyText));
|
@@ -172,8 +172,7 @@ export class CSSProperty {
|
|
172
172
|
return this.ownerStyle.setText(styleText, majorChange);
|
173
173
|
}
|
174
174
|
|
175
|
-
static async formatStyle(
|
176
|
-
styleText: string, indentation: string, endIndentation: string): Promise<string> {
|
175
|
+
static async formatStyle(styleText: string, indentation: string, endIndentation: string): Promise<string> {
|
177
176
|
const doubleIndent = indentation.substring(endIndentation.length) + indentation;
|
178
177
|
if (indentation) {
|
179
178
|
indentation = '\n' + indentation;
|
@@ -197,7 +196,7 @@ export class CSSProperty {
|
|
197
196
|
const disabledProperty = tokenType?.includes('comment') && isDisabledProperty(token);
|
198
197
|
const isPropertyStart =
|
199
198
|
(tokenType?.includes('string') || tokenType?.includes('meta') || tokenType?.includes('property') ||
|
200
|
-
|
199
|
+
tokenType?.includes('variableName'));
|
201
200
|
if (disabledProperty) {
|
202
201
|
result = result.trimEnd() + indentation + token;
|
203
202
|
} else if (isPropertyStart) {
|
@@ -222,8 +221,8 @@ export class CSSProperty {
|
|
222
221
|
// implementation takes special care to restore a single
|
223
222
|
// whitespace token in this edge case. https://crbug.com/1071296
|
224
223
|
const trimmedPropertyText = propertyText.trim();
|
225
|
-
result =
|
226
|
-
|
224
|
+
result = result.trimEnd() + indentation + trimmedPropertyText + (trimmedPropertyText.endsWith(':') ? ' ' : '') +
|
225
|
+
token;
|
227
226
|
needsSemi = false;
|
228
227
|
insideProperty = false;
|
229
228
|
propertyName = '';
|
@@ -142,9 +142,6 @@ export class ChildTargetManager extends SDKModel<EventTypes> implements Protocol
|
|
142
142
|
}
|
143
143
|
const target = this.#targetManager.createTarget(
|
144
144
|
targetInfo.targetId, targetName, type, this.#parentTarget, sessionId, undefined, undefined, targetInfo);
|
145
|
-
if (type === Type.Worker || type === Type.ServiceWorker || type === Type.SharedWorker) {
|
146
|
-
target.setInspectedURL(this.#parentTarget.inspectedURL());
|
147
|
-
}
|
148
145
|
this.#childTargetsBySessionId.set(sessionId, target);
|
149
146
|
this.#childTargetsById.set(target.id(), target);
|
150
147
|
|
@@ -44,7 +44,8 @@ import {Events as DebuggerModelEvents} from './DebuggerModel.js';
|
|
44
44
|
import {LogModel} from './LogModel.js';
|
45
45
|
import {RemoteObject} from './RemoteObject.js';
|
46
46
|
import {Events as ResourceTreeModelEvents, ResourceTreeModel} from './ResourceTreeModel.js';
|
47
|
-
import type {
|
47
|
+
import type {
|
48
|
+
ConsoleAPICall, ExceptionWithTimestamp, ExecutionContext, QueryObjectRequestedEvent} from './RuntimeModel.js';
|
48
49
|
import {Events as RuntimeModelEvents, RuntimeModel} from './RuntimeModel.js';
|
49
50
|
import type {Target} from './Target.js';
|
50
51
|
import {TargetManager} from './TargetManager.js';
|
@@ -41,7 +41,9 @@ import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
|
|
41
41
|
import * as Protocol from '../../generated/protocol.js';
|
42
42
|
|
43
43
|
import {Cookie} from './Cookie.js';
|
44
|
-
import type {
|
44
|
+
import type {
|
45
|
+
BlockedCookieWithReason, ContentData, ExtraRequestInfo, ExtraResponseInfo, MIME_TYPE, NameValue, WebBundleInfo,
|
46
|
+
WebBundleInnerRequestInfo} from './NetworkRequest.js';
|
45
47
|
import {Events as NetworkRequestEvents, NetworkRequest} from './NetworkRequest.js';
|
46
48
|
import type {Target} from './Target.js';
|
47
49
|
import {Capability} from './Target.js';
|
@@ -41,7 +41,13 @@ import type {FunctionDetails} from './DebuggerModel.js';
|
|
41
41
|
import {DebuggerModel} from './DebuggerModel.js';
|
42
42
|
import {HeapProfilerModel} from './HeapProfilerModel.js';
|
43
43
|
import type {ScopeRef} from './RemoteObject.js';
|
44
|
-
import {
|
44
|
+
import {
|
45
|
+
RemoteFunction,
|
46
|
+
RemoteObject,
|
47
|
+
RemoteObjectImpl,
|
48
|
+
RemoteObjectProperty,
|
49
|
+
ScopeRemoteObject,
|
50
|
+
} from './RemoteObject.js';
|
45
51
|
import type {Target} from './Target.js';
|
46
52
|
import {Capability, Type} from './Target.js';
|
47
53
|
import {SDKModel} from './SDKModel.js';
|
@@ -8,6 +8,7 @@ import * as Platform from '../platform/platform.js';
|
|
8
8
|
|
9
9
|
import type {FrameAssociated} from './FrameAssociated.js';
|
10
10
|
import type {Target} from './Target.js';
|
11
|
+
import {Type} from './Target.js';
|
11
12
|
import {Events as TargetManagerEvents, TargetManager} from './TargetManager.js';
|
12
13
|
import type {SourceMap} from './SourceMap.js';
|
13
14
|
import {TextSourceMap} from './SourceMap.js';
|
@@ -66,6 +67,14 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
|
|
66
67
|
}
|
67
68
|
}
|
68
69
|
|
70
|
+
private getBaseUrl(): Platform.DevToolsPath.UrlString {
|
71
|
+
let target: Target|null = this.#target;
|
72
|
+
while (target && target.type() !== Type.Frame) {
|
73
|
+
target = target.parentTarget();
|
74
|
+
}
|
75
|
+
return target?.inspectedURL() ?? Platform.DevToolsPath.EmptyUrlString;
|
76
|
+
}
|
77
|
+
|
69
78
|
private inspectedURLChanged(event: Common.EventTarget.EventTargetEvent<Target>): void {
|
70
79
|
if (event.data !== this.#target) {
|
71
80
|
return;
|
@@ -156,7 +165,7 @@ export class SourceMapManager<T extends FrameAssociated> extends Common.ObjectWr
|
|
156
165
|
}|null {
|
157
166
|
// |#sourceURL| can be a random string, but is generally an absolute path.
|
158
167
|
// Complete it to inspected page url for relative links.
|
159
|
-
const resolvedSourceURL = Common.ParsedURL.ParsedURL.completeURL(this
|
168
|
+
const resolvedSourceURL = Common.ParsedURL.ParsedURL.completeURL(this.getBaseUrl(), sourceURL);
|
160
169
|
if (!resolvedSourceURL) {
|
161
170
|
return null;
|
162
171
|
}
|
@@ -31,7 +31,11 @@
|
|
31
31
|
import * as Platform from '../../core/platform/platform.js';
|
32
32
|
import * as Root from '../../core/root/root.js';
|
33
33
|
import * as Acorn from '../../third_party/acorn/acorn.js';
|
34
|
-
|
34
|
+
|
35
|
+
// This file is required to bring some types into scope, even though it
|
36
|
+
// is not used.
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
38
|
+
import type * as CodeMirrorModule from '../../third_party/codemirror/codemirror-legacy.js';
|
35
39
|
|
36
40
|
import {AcornTokenizer, ECMA_VERSION} from './AcornTokenizer.js';
|
37
41
|
import {CSSFormatter} from './CSSFormatter.js';
|
@@ -122,8 +122,8 @@ interface DOMError {
|
|
122
122
|
}
|
123
123
|
|
124
124
|
interface ShadowRoot {
|
125
|
-
elementFromPoint(x: number, y: number): Element
|
126
|
-
getSelection(): Selection
|
125
|
+
elementFromPoint(x: number, y: number): Element|null;
|
126
|
+
getSelection(): Selection|null;
|
127
127
|
}
|
128
128
|
|
129
129
|
interface HTMLDialogElement {
|
@@ -30,7 +30,9 @@
|
|
30
30
|
|
31
31
|
import * as Common from '../../core/common/common.js';
|
32
32
|
import * as Platform from '../../core/platform/platform.js';
|
33
|
-
|
33
|
+
|
34
|
+
// eslint-disable-next-line rulesdir/es_modules_import
|
35
|
+
import type * as FormatterActions from '../../entrypoints/formatter_worker/FormatterActions.js';
|
34
36
|
|
35
37
|
import {formatterWorkerPool} from './FormatterWorkerPool.js';
|
36
38
|
|
@@ -102,7 +102,7 @@ const
|
|
102
102
|
documentDomainSettingWithoutOriginAgentClusterHeader:
|
103
103
|
'Relaxing the same-origin policy by setting `document.domain` is deprecated, and will be disabled by default. To continue using this feature, please opt-out of origin-keyed agent clusters by sending an `Origin-Agent-Cluster: ?0` header along with the HTTP response for the document and frames. See https://developer.chrome.com/blog/immutable-document-domain/ for more details.',
|
104
104
|
/**
|
105
|
-
*@description
|
105
|
+
*@description Warning displayed to developers when the non-standard `Event.path` API is used to notify them that this API is deprecated.
|
106
106
|
*/
|
107
107
|
eventPath: '`Event.path` is deprecated and will be removed. Please use `Event.composedPath()` instead.',
|
108
108
|
/**
|
@@ -8,7 +8,11 @@ import * as Bindings from '../../models/bindings/bindings.js';
|
|
8
8
|
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
9
9
|
import * as Workspace from '../../models/workspace/workspace.js';
|
10
10
|
|
11
|
-
import {
|
11
|
+
import {
|
12
|
+
ContentSecurityPolicyIssue,
|
13
|
+
trustedTypesPolicyViolationCode,
|
14
|
+
trustedTypesSinkViolationCode,
|
15
|
+
} from './ContentSecurityPolicyIssue.js';
|
12
16
|
import type {Issue, IssueKind} from './Issue.js';
|
13
17
|
import {toZeroBasedLocation} from './Issue.js';
|
14
18
|
import type {IssueAddedEvent, IssuesManager} from './IssuesManager.js';
|
@@ -29,25 +29,22 @@
|
|
29
29
|
*/
|
30
30
|
|
31
31
|
import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
|
32
|
-
type Tokenizer =
|
33
|
-
(line: string, callback: (value: string, style: string|null) => void) => void;
|
32
|
+
type Tokenizer = (line: string, callback: (value: string, style: string|null) => void) => void;
|
34
33
|
|
35
34
|
export function createCssTokenizer(): Tokenizer {
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
stream.string = line;
|
35
|
+
async function tokenize(line: string, callback: (value: string, style: string|null) => void): Promise<void> {
|
36
|
+
const streamParser = await CodeMirror.cssStreamParser();
|
37
|
+
const stream = new CodeMirror.StringStream();
|
38
|
+
stream.string = line;
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
}
|
40
|
+
const startState = streamParser.startState();
|
41
|
+
let lastPos = stream.pos;
|
42
|
+
while (!stream.eol()) {
|
43
|
+
const token = streamParser.token(stream, startState);
|
44
|
+
const segment = stream.current().substring(lastPos, stream.pos);
|
45
|
+
callback(segment, token);
|
46
|
+
lastPos = stream.pos;
|
50
47
|
}
|
51
|
-
|
48
|
+
}
|
49
|
+
return tokenize;
|
52
50
|
}
|
53
|
-
|
@@ -1211,7 +1211,7 @@ export class TimelineModelImpl {
|
|
1211
1211
|
|
1212
1212
|
private processBrowserEvent(event: SDK.TracingModel.Event): void {
|
1213
1213
|
if (event.name === RecordType.LatencyInfoFlow) {
|
1214
|
-
if (event.args.chrome_latency_info
|
1214
|
+
if (event.args.chrome_latency_info?.trace_id) {
|
1215
1215
|
this.knownInputEvents.add(event.args.chrome_latency_info.trace_id);
|
1216
1216
|
}
|
1217
1217
|
return;
|
@@ -28,14 +28,17 @@
|
|
28
28
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
29
|
*/
|
30
30
|
|
31
|
-
import indexedDBViewsStyles from './indexedDBViews.css.js';
|
32
31
|
import * as i18n from '../../core/i18n/i18n.js';
|
32
|
+
|
33
|
+
import indexedDBViewsStyles from './indexedDBViews.css.js';
|
34
|
+
|
33
35
|
import type * as SDK from '../../core/sdk/sdk.js';
|
34
36
|
import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
|
35
37
|
import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
|
36
38
|
import * as UI from '../../ui/legacy/legacy.js';
|
37
39
|
|
38
|
-
import type {
|
40
|
+
import type {
|
41
|
+
Database, DatabaseId, Entry, Index, IndexedDBModel, ObjectStore, ObjectStoreMetadata} from './IndexedDBModel.js';
|
39
42
|
|
40
43
|
const UIStrings = {
|
41
44
|
/**
|
@@ -56,7 +56,15 @@ import {ConsoleFilter, FilterType} from './ConsoleFilter.js';
|
|
56
56
|
import {ConsolePinPane} from './ConsolePinPane.js';
|
57
57
|
import {ConsolePrompt, Events as ConsolePromptEvents} from './ConsolePrompt.js';
|
58
58
|
import {ConsoleSidebar, Events} from './ConsoleSidebar.js';
|
59
|
-
import {
|
59
|
+
import {
|
60
|
+
ConsoleCommand,
|
61
|
+
ConsoleCommandResult,
|
62
|
+
ConsoleGroupViewMessage,
|
63
|
+
ConsoleTableMessageView,
|
64
|
+
ConsoleViewMessage,
|
65
|
+
getMessageForElement,
|
66
|
+
MaxLengthForLinks,
|
67
|
+
} from './ConsoleViewMessage.js';
|
60
68
|
|
61
69
|
import type {ConsoleViewportElement, ConsoleViewportProvider} from './ConsoleViewport.js';
|
62
70
|
import {ConsoleViewport} from './ConsoleViewport.js';
|
@@ -14,7 +14,9 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
14
14
|
import type * as Protocol from '../../generated/protocol.js';
|
15
15
|
|
16
16
|
import cssOverviewCompletedViewStyles from './cssOverviewCompletedView.css.js';
|
17
|
-
import type {
|
17
|
+
import type {
|
18
|
+
OverviewController, PopulateNodesEvent, PopulateNodesEventNodes, PopulateNodesEventNodeTypes} from
|
19
|
+
'./CSSOverviewController.js';
|
18
20
|
import {Events as CSSOverViewControllerEvents} from './CSSOverviewController.js';
|
19
21
|
import {CSSOverviewSidebarPanel, SidebarEvents} from './CSSOverviewSidebarPanel.js';
|
20
22
|
import type {UnusedDeclaration} from './CSSOverviewUnusedDeclarations.js';
|
@@ -61,7 +61,13 @@ import {StylePropertyHighlighter} from './StylePropertyHighlighter.js';
|
|
61
61
|
import stylesSidebarPaneStyles from './stylesSidebarPane.css.js';
|
62
62
|
|
63
63
|
import type {StylePropertyTreeElement} from './StylePropertyTreeElement.js';
|
64
|
-
import {
|
64
|
+
import {
|
65
|
+
StylePropertiesSection,
|
66
|
+
BlankStylePropertiesSection,
|
67
|
+
KeyframePropertiesSection,
|
68
|
+
HighlightPseudoStylePropertiesSection,
|
69
|
+
} from './StylePropertiesSection.js';
|
70
|
+
|
65
71
|
import * as LayersWidget from './LayersWidget.js';
|
66
72
|
|
67
73
|
const UIStrings = {
|
@@ -12,7 +12,8 @@ import * as EmulationModel from '../../models/emulation/emulation.js';
|
|
12
12
|
import * as UI from '../../ui/legacy/legacy.js';
|
13
13
|
import * as Emulation from '../emulation/emulation.js';
|
14
14
|
|
15
|
-
import type {
|
15
|
+
import type {
|
16
|
+
AuditProgressChangedEvent, PageAuditabilityChangedEvent, PageWarningsChangedEvent} from './LighthouseController.js';
|
16
17
|
import {Events, LighthouseController} from './LighthouseController.js';
|
17
18
|
import lighthousePanelStyles from './lighthousePanel.css.js';
|
18
19
|
import type {LighthouseRun} from './LighthouseProtocolService.js';
|
@@ -71,13 +71,20 @@ export class TimespanView extends UI.Dialog.Dialog {
|
|
71
71
|
const dialogRoot = UI.Utils.createShadowRootWithCoreStyles(
|
72
72
|
this.contentElement, {cssFile: [lighthouseDialogStyles], delegatesFocus: undefined});
|
73
73
|
|
74
|
-
this.endButton = UI.UIUtils.createTextButton(
|
74
|
+
this.endButton = UI.UIUtils.createTextButton(
|
75
|
+
i18nString(UIStrings.endTimespan),
|
76
|
+
this.endTimespan.bind(this),
|
77
|
+
undefined,
|
78
|
+
true,
|
79
|
+
);
|
75
80
|
const cancelButton = UI.UIUtils.createTextButton(i18nString(UIStrings.cancel), this.cancel.bind(this));
|
76
81
|
const fragment = UI.Fragment.Fragment.build`
|
77
82
|
<div class="lighthouse-view vbox">
|
78
83
|
<h2 $="status-header"></h2>
|
79
|
-
|
84
|
+
<div class="lighthouse-action-buttons hbox">
|
80
85
|
${cancelButton}
|
86
|
+
${this.endButton}
|
87
|
+
</div>
|
81
88
|
</div>
|
82
89
|
`;
|
83
90
|
|
@@ -11,7 +11,9 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
11
11
|
import {MobileThrottlingSelector} from './MobileThrottlingSelector.js';
|
12
12
|
import {NetworkThrottlingSelector} from './NetworkThrottlingSelector.js';
|
13
13
|
|
14
|
-
import type {
|
14
|
+
import type {
|
15
|
+
Conditions, ConditionsList, MobileThrottlingConditionsGroup, NetworkThrottlingConditionsGroup} from
|
16
|
+
'./ThrottlingPresets.js';
|
15
17
|
import {ThrottlingPresets} from './ThrottlingPresets.js';
|
16
18
|
|
17
19
|
const UIStrings = {
|
@@ -57,7 +57,11 @@ import {Events, NetworkGroupNode, NetworkRequestNode} from './NetworkDataGridNod
|
|
57
57
|
import {NetworkFrameGrouper} from './NetworkFrameGrouper.js';
|
58
58
|
import {NetworkLogViewColumns} from './NetworkLogViewColumns.js';
|
59
59
|
import type {NetworkTimeCalculator} from './NetworkTimeCalculator.js';
|
60
|
-
import {
|
60
|
+
import {
|
61
|
+
NetworkTimeBoundary,
|
62
|
+
NetworkTransferDurationCalculator,
|
63
|
+
NetworkTransferTimeCalculator,
|
64
|
+
} from './NetworkTimeCalculator.js';
|
61
65
|
|
62
66
|
const UIStrings = {
|
63
67
|
/**
|
@@ -14,7 +14,9 @@ import type {NetworkNode} from './NetworkDataGridNode.js';
|
|
14
14
|
import {NetworkRequestNode} from './NetworkDataGridNode.js';
|
15
15
|
import type {NetworkLogView} from './NetworkLogView.js';
|
16
16
|
import {NetworkManageCustomHeadersView} from './NetworkManageCustomHeadersView.js';
|
17
|
-
import type {
|
17
|
+
import type {
|
18
|
+
NetworkTimeCalculator, NetworkTransferDurationCalculator, NetworkTransferTimeCalculator} from
|
19
|
+
'./NetworkTimeCalculator.js';
|
18
20
|
import {NetworkWaterfallColumn} from './NetworkWaterfallColumn.js';
|
19
21
|
import {RequestInitiatorView} from './RequestInitiatorView.js';
|
20
22
|
|
@@ -102,7 +102,7 @@ const UIStrings = {
|
|
102
102
|
/**
|
103
103
|
*@description Text in Request Timing View of the Network panel
|
104
104
|
*/
|
105
|
-
waitingTtfb: 'Waiting
|
105
|
+
waitingTtfb: 'Waiting for server response',
|
106
106
|
/**
|
107
107
|
*@description Text in Signed Exchange Info View of the Network panel
|
108
108
|
*/
|
@@ -38,7 +38,14 @@ import type * as SDK from '../../core/sdk/sdk.js';
|
|
38
38
|
import * as UI from '../../ui/legacy/legacy.js';
|
39
39
|
|
40
40
|
import type {HeapSnapshotGridNode} from './HeapSnapshotGridNodes.js';
|
41
|
-
import {
|
41
|
+
import {
|
42
|
+
AllocationGridNode,
|
43
|
+
HeapSnapshotConstructorNode,
|
44
|
+
HeapSnapshotGenericObjectNode,
|
45
|
+
HeapSnapshotRetainingObjectNode,
|
46
|
+
HeapSnapshotObjectNode,
|
47
|
+
HeapSnapshotDiffNode,
|
48
|
+
} from './HeapSnapshotGridNodes.js';
|
42
49
|
import type {HeapSnapshotProxy} from './HeapSnapshotProxy.js';
|
43
50
|
import type {HeapProfileHeader} from './HeapSnapshotView.js';
|
44
51
|
import type {DataDisplayDelegate} from './ProfileHeader.js';
|
@@ -38,7 +38,9 @@ import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
|
|
38
38
|
import * as UI from '../../ui/legacy/legacy.js';
|
39
39
|
|
40
40
|
import type {ChildrenProvider} from './ChildrenProvider.js';
|
41
|
-
import type {
|
41
|
+
import type {
|
42
|
+
AllocationDataGrid, HeapSnapshotConstructorsDataGrid, HeapSnapshotDiffDataGrid, HeapSnapshotSortableDataGrid} from
|
43
|
+
'./HeapSnapshotDataGrids.js';
|
42
44
|
import {HeapSnapshotSortableDataGridEvents} from './HeapSnapshotDataGrids.js';
|
43
45
|
import type {HeapSnapshotProviderProxy, HeapSnapshotProxy} from './HeapSnapshotProxy.js';
|
44
46
|
import type {DataDisplayDelegate} from './ProfileHeader.js';
|
@@ -44,7 +44,14 @@ import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
44
44
|
import * as UI from '../../ui/legacy/legacy.js';
|
45
45
|
|
46
46
|
import type {HeapSnapshotSortableDataGrid} from './HeapSnapshotDataGrids.js';
|
47
|
-
import {
|
47
|
+
import {
|
48
|
+
AllocationDataGrid,
|
49
|
+
HeapSnapshotSortableDataGridEvents,
|
50
|
+
HeapSnapshotConstructorsDataGrid,
|
51
|
+
HeapSnapshotDiffDataGrid,
|
52
|
+
HeapSnapshotRetainmentDataGrid,
|
53
|
+
HeapSnapshotContainmentDataGrid,
|
54
|
+
} from './HeapSnapshotDataGrids.js';
|
48
55
|
import type {AllocationGridNode, HeapSnapshotGridNode} from './HeapSnapshotGridNodes.js';
|
49
56
|
import {HeapSnapshotGenericObjectNode} from './HeapSnapshotGridNodes.js';
|
50
57
|
import type {HeapSnapshotProxy} from './HeapSnapshotProxy.js';
|
@@ -53,7 +60,12 @@ import type {IdsRangeChangedEvent} from './HeapTimelineOverview.js';
|
|
53
60
|
import {HeapTimelineOverview, Events, Samples} from './HeapTimelineOverview.js';
|
54
61
|
import * as ModuleUIStrings from './ModuleUIStrings.js';
|
55
62
|
import type {DataDisplayDelegate} from './ProfileHeader.js';
|
56
|
-
import {
|
63
|
+
import {
|
64
|
+
Events as ProfileHeaderEvents,
|
65
|
+
ProfileEvents as ProfileTypeEvents,
|
66
|
+
ProfileHeader,
|
67
|
+
ProfileType,
|
68
|
+
} from './ProfileHeader.js';
|
57
69
|
import {ProfileSidebarTreeElement} from './ProfileSidebarTreeElement.js';
|
58
70
|
import {instance} from './ProfileTypeRegistry.js';
|
59
71
|
|
@@ -45,7 +45,13 @@ import {DebuggerPausedMessage} from './DebuggerPausedMessage.js';
|
|
45
45
|
import sourcesPanelStyles from './sourcesPanel.css.js';
|
46
46
|
|
47
47
|
import type {NavigatorView} from './NavigatorView.js';
|
48
|
-
import {
|
48
|
+
import {
|
49
|
+
ContentScriptsNavigatorView,
|
50
|
+
FilesNavigatorView,
|
51
|
+
NetworkNavigatorView,
|
52
|
+
OverridesNavigatorView,
|
53
|
+
SnippetsNavigatorView,
|
54
|
+
} from './SourcesNavigator.js';
|
49
55
|
import {Events, SourcesView} from './SourcesView.js';
|
50
56
|
import {ThreadsSidebarPane} from './ThreadsSidebarPane.js';
|
51
57
|
import {UISourceCodeFrame} from './UISourceCodeFrame.js';
|
@@ -90,7 +90,7 @@ export class TimelineController implements SDK.TargetManager.SDKModelObserver<SD
|
|
90
90
|
// 'disabled-by-default-v8.cpu_profiler'
|
91
91
|
// └ default: on, option: enableJSSampling
|
92
92
|
const categoriesArray = [
|
93
|
-
'-*',
|
93
|
+
Root.Runtime.experiments.isEnabled('timelineShowAllEvents') ? '*' : '-*',
|
94
94
|
TimelineModel.TimelineModel.TimelineModelImpl.Category.Console,
|
95
95
|
TimelineModel.TimelineModel.TimelineModelImpl.Category.UserTiming,
|
96
96
|
'devtools.timeline',
|
@@ -17,7 +17,10 @@ import type {PerformanceModel, WindowChangedEvent} from './PerformanceModel.js';
|
|
17
17
|
import {Events as PerformanceModelEvents} from './PerformanceModel.js';
|
18
18
|
import {TimelineDetailsView} from './TimelineDetailsView.js';
|
19
19
|
import {TimelineRegExp} from './TimelineFilters.js';
|
20
|
-
import {
|
20
|
+
import {
|
21
|
+
Events as TimelineFlameChartDataProviderEvents,
|
22
|
+
TimelineFlameChartDataProvider,
|
23
|
+
} from './TimelineFlameChartDataProvider.js';
|
21
24
|
import {TimelineFlameChartNetworkDataProvider} from './TimelineFlameChartNetworkDataProvider.js';
|
22
25
|
import type {TimelineModeViewDelegate} from './TimelinePanel.js';
|
23
26
|
import {TimelineSelection} from './TimelinePanel.js';
|
@@ -10,7 +10,12 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
10
10
|
import timelineHistoryManagerStyles from './timelineHistoryManager.css.js';
|
11
11
|
|
12
12
|
import type {PerformanceModel} from './PerformanceModel.js';
|
13
|
-
import {
|
13
|
+
import {
|
14
|
+
TimelineEventOverviewCPUActivity,
|
15
|
+
TimelineEventOverviewFrames,
|
16
|
+
TimelineEventOverviewNetwork,
|
17
|
+
TimelineEventOverviewResponsiveness,
|
18
|
+
} from './TimelineEventOverview.js';
|
14
19
|
|
15
20
|
const UIStrings = {
|
16
21
|
/**
|
@@ -57,7 +57,16 @@ import {Events, PerformanceModel} from './PerformanceModel.js';
|
|
57
57
|
import type {Client} from './TimelineController.js';
|
58
58
|
import {TimelineController} from './TimelineController.js';
|
59
59
|
import type {TimelineEventOverview} from './TimelineEventOverview.js';
|
60
|
-
import {
|
60
|
+
import {
|
61
|
+
TimelineEventOverviewCoverage,
|
62
|
+
TimelineEventOverviewCPUActivity,
|
63
|
+
TimelineEventOverviewFrames,
|
64
|
+
TimelineEventOverviewInput,
|
65
|
+
TimelineEventOverviewMemory,
|
66
|
+
TimelineEventOverviewNetwork,
|
67
|
+
TimelineEventOverviewResponsiveness,
|
68
|
+
TimelineFilmStripOverview,
|
69
|
+
} from './TimelineEventOverview.js';
|
61
70
|
import {TimelineFlameChartView} from './TimelineFlameChartView.js';
|
62
71
|
import {TimelineHistoryManager} from './TimelineHistoryManager.js';
|
63
72
|
import {TimelineLoader} from './TimelineLoader.js';
|
@@ -6,7 +6,9 @@ import * as Common from '../../../core/common/common.js';
|
|
6
6
|
import * as Platform from '../../../core/platform/platform.js';
|
7
7
|
|
8
8
|
import {EdgeTypes, EdgeView, generateEdgePortIdsByData} from './EdgeView.js';
|
9
|
-
import type {
|
9
|
+
import type {
|
10
|
+
NodeCreationData, NodeParamConnectionData, NodeParamDisconnectionData, NodesConnectionData, NodesDisconnectionData,
|
11
|
+
NodesDisconnectionDataWithDestination, ParamCreationData} from './GraphStyle.js';
|
10
12
|
import {NodeLabelGenerator, NodeView} from './NodeView.js';
|
11
13
|
|
12
14
|
// A class that tracks all the nodes and edges of an audio graph.
|
@@ -3,7 +3,14 @@
|
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
5
|
import type {Point, Size} from './GraphStyle.js';
|
6
|
-
import {
|
6
|
+
import {
|
7
|
+
AudioParamRadius,
|
8
|
+
InputPortRadius,
|
9
|
+
LeftSideTopPadding,
|
10
|
+
TotalInputPortHeight,
|
11
|
+
TotalOutputPortHeight,
|
12
|
+
TotalParamPortHeight,
|
13
|
+
} from './GraphStyle.js';
|
7
14
|
|
8
15
|
/**
|
9
16
|
* Calculate the x, y value of input port.
|
@@ -5,7 +5,19 @@
|
|
5
5
|
import * as UI from '../../../ui/legacy/legacy.js';
|
6
6
|
|
7
7
|
import type {NodeCreationData, NodeLayout, Port} from './GraphStyle.js';
|
8
|
-
import {
|
8
|
+
import {
|
9
|
+
BottomPaddingWithoutParam,
|
10
|
+
BottomPaddingWithParam,
|
11
|
+
LeftMarginOfText,
|
12
|
+
LeftSideTopPadding,
|
13
|
+
NodeLabelFontStyle,
|
14
|
+
ParamLabelFontStyle,
|
15
|
+
PortTypes,
|
16
|
+
RightMarginOfText,
|
17
|
+
TotalInputPortHeight,
|
18
|
+
TotalOutputPortHeight,
|
19
|
+
TotalParamPortHeight,
|
20
|
+
} from './GraphStyle.js';
|
9
21
|
import {calculateInputPortXY, calculateOutputPortXY, calculateParamPortXY} from './NodeRendererUtility.js';
|
10
22
|
|
11
23
|
// A class that represents a node of a graph, consisting of the information needed to layout the
|
@@ -7,7 +7,14 @@ import * as AudioContextSelector from './AudioContextSelector.js';
|
|
7
7
|
import * as WebAudioModel from './WebAudioModel.js';
|
8
8
|
import * as WebAudioView from './WebAudioView.js';
|
9
9
|
|
10
|
-
export {
|
10
|
+
export {
|
11
|
+
EdgeView,
|
12
|
+
GraphManager,
|
13
|
+
GraphStyle,
|
14
|
+
GraphView,
|
15
|
+
NodeRendererUtility,
|
16
|
+
NodeView,
|
17
|
+
} from './graph_visualizer/graph_visualizer.js';
|
11
18
|
export {
|
12
19
|
AudioContextContentBuilder,
|
13
20
|
AudioContextSelector,
|
@@ -27,8 +27,21 @@
|
|
27
27
|
}
|
28
28
|
|
29
29
|
button {
|
30
|
+
/*
|
31
|
+
--override-button-no-right-border-radius decides
|
32
|
+
whether button has border radius on the right or not.
|
33
|
+
|
34
|
+
It works as a boolean variable:
|
35
|
+
* If it is 1, `--button-has-right-border-radius` becomes a 0 multiplier
|
36
|
+
for the border-radius-top-right and border-radius-bottom-right properties.
|
37
|
+
* If it is not set or 0, it becomes a 1 multiplier
|
38
|
+
for the same properties which means they'll continue to have the given
|
39
|
+
border radius.
|
40
|
+
*/
|
41
|
+
--button-has-right-border-radius: calc(1 - var(--override-button-no-right-border-radius, 0));
|
42
|
+
|
30
43
|
align-items: center;
|
31
|
-
border-radius: 4px;
|
44
|
+
border-radius: 4px calc(var(--button-has-right-border-radius) * 4px) calc(var(--button-has-right-border-radius) * 4px) 4px;
|
32
45
|
display: inline-flex;
|
33
46
|
font-family: inherit;
|
34
47
|
font-size: 12px;
|
@@ -42,7 +55,7 @@ button {
|
|
42
55
|
|
43
56
|
button.small {
|
44
57
|
height: 18px;
|
45
|
-
border-radius: 2px;
|
58
|
+
border-radius: 2px calc(var(--button-has-right-border-radius) * 2px) calc(var(--button-has-right-border-radius) * 2px) 2px;
|
46
59
|
}
|
47
60
|
|
48
61
|
button:focus-visible {
|
@@ -52,7 +65,7 @@ button:focus-visible {
|
|
52
65
|
button.toolbar,
|
53
66
|
button.round {
|
54
67
|
background: transparent;
|
55
|
-
border-radius: 2px;
|
68
|
+
border-radius: 2px calc(var(--button-has-right-border-radius) * 2px) calc(var(--button-has-right-border-radius) * 2px) 2px;
|
56
69
|
border: none;
|
57
70
|
height: 24px;
|
58
71
|
width: 24px;
|
@@ -16,7 +16,15 @@ const coordinator = Coordinator.RenderCoordinator.RenderCoordinator.instance();
|
|
16
16
|
|
17
17
|
import {addColumnVisibilityCheckboxes, addSortableColumnItems} from './DataGridContextMenuUtils.js';
|
18
18
|
import type {CellPosition, Column, Row, SortState} from './DataGridUtils.js';
|
19
|
-
import {
|
19
|
+
import {
|
20
|
+
calculateColumnWidthPercentageFromWeighting,
|
21
|
+
calculateFirstFocusableCell,
|
22
|
+
getCellTitleFromCellContent,
|
23
|
+
getRowEntryForColumnId,
|
24
|
+
handleArrowKeyNavigation,
|
25
|
+
renderCellValue,
|
26
|
+
SortDirection,
|
27
|
+
} from './DataGridUtils.js';
|
20
28
|
|
21
29
|
import * as i18n from '../../../core/i18n/i18n.js';
|
22
30
|
const UIStrings = {
|
@@ -33,6 +33,16 @@ primaryButton.title = 'Custom title';
|
|
33
33
|
primaryButton.onclick = () => alert('clicked');
|
34
34
|
appendButton(primaryButton);
|
35
35
|
|
36
|
+
const primaryButtonWithoutRightBorderRadius = new Buttons.Button.Button();
|
37
|
+
primaryButtonWithoutRightBorderRadius.data = {
|
38
|
+
variant: Buttons.Button.Variant.PRIMARY,
|
39
|
+
};
|
40
|
+
primaryButtonWithoutRightBorderRadius.style.setProperty('--override-button-no-right-border-radius', '1');
|
41
|
+
primaryButtonWithoutRightBorderRadius.innerText = 'No right border radius';
|
42
|
+
primaryButtonWithoutRightBorderRadius.title = 'Custom title';
|
43
|
+
primaryButtonWithoutRightBorderRadius.onclick = () => alert('clicked');
|
44
|
+
appendButton(primaryButtonWithoutRightBorderRadius);
|
45
|
+
|
36
46
|
// Primary (forced active)
|
37
47
|
const forcedActive = new Buttons.Button.Button();
|
38
48
|
forcedActive.data = {
|
@@ -9,13 +9,21 @@ import linearMemoryInspectorStyles from './linearMemoryInspector.css.js';
|
|
9
9
|
|
10
10
|
const {render, html} = LitHtml;
|
11
11
|
|
12
|
-
import type {
|
12
|
+
import type {
|
13
|
+
AddressInputChangedEvent, HistoryNavigationEvent, LinearMemoryNavigatorData, PageNavigationEvent} from
|
14
|
+
'./LinearMemoryNavigator.js';
|
13
15
|
import {Mode, Navigation, LinearMemoryNavigator} from './LinearMemoryNavigator.js';
|
14
|
-
import type {
|
16
|
+
import type {
|
17
|
+
EndiannessChangedEvent, LinearMemoryValueInterpreterData, ValueTypeToggledEvent} from
|
18
|
+
'./LinearMemoryValueInterpreter.js';
|
15
19
|
import {LinearMemoryValueInterpreter} from './LinearMemoryValueInterpreter.js';
|
16
20
|
import type {ByteSelectedEvent, LinearMemoryViewerData, ResizeEvent} from './LinearMemoryViewer.js';
|
17
21
|
import type {ValueType, ValueTypeMode} from './ValueInterpreterDisplayUtils.js';
|
18
|
-
import {
|
22
|
+
import {
|
23
|
+
VALUE_INTEPRETER_MAX_NUM_BYTES,
|
24
|
+
Endianness,
|
25
|
+
getDefaultValueTypeMapping,
|
26
|
+
} from './ValueInterpreterDisplayUtils.js';
|
19
27
|
import {formatAddress, parseAddress} from './LinearMemoryInspectorUtils.js';
|
20
28
|
import type {JumpToPointerAddressEvent, ValueTypeModeChangedEvent} from './ValueInterpreterDisplay.js';
|
21
29
|
import {LinearMemoryViewer} from './LinearMemoryViewer.js';
|
@@ -9,7 +9,18 @@ import * as ComponentHelpers from '../helpers/helpers.js';
|
|
9
9
|
import * as IconButton from '../icon_button/icon_button.js';
|
10
10
|
|
11
11
|
import valueInterpreterDisplayStyles from './valueInterpreterDisplay.css.js';
|
12
|
-
import {
|
12
|
+
import {
|
13
|
+
Endianness,
|
14
|
+
format,
|
15
|
+
getDefaultValueTypeMapping,
|
16
|
+
getPointerAddress,
|
17
|
+
isNumber,
|
18
|
+
isPointer,
|
19
|
+
isValidMode,
|
20
|
+
VALUE_TYPE_MODE_LIST,
|
21
|
+
ValueType,
|
22
|
+
ValueTypeMode,
|
23
|
+
} from './ValueInterpreterDisplayUtils.js';
|
13
24
|
|
14
25
|
const UIStrings = {
|
15
26
|
/**
|
@@ -11,7 +11,13 @@ import * as Coordinator from '../render_coordinator/render_coordinator.js';
|
|
11
11
|
import treeOutlineStyles from './treeOutline.css.js';
|
12
12
|
|
13
13
|
import type {TreeNodeId, TreeNode, TreeNodeWithChildren} from './TreeOutlineUtils.js';
|
14
|
-
import {
|
14
|
+
import {
|
15
|
+
findNextNodeForTreeOutlineKeyboardNavigation,
|
16
|
+
getNodeChildren,
|
17
|
+
getPathToTreeNode,
|
18
|
+
isExpandableNode,
|
19
|
+
trackDOMNodeToTreeNode,
|
20
|
+
} from './TreeOutlineUtils.js';
|
15
21
|
|
16
22
|
const coordinator = Coordinator.RenderCoordinator.RenderCoordinator.instance();
|
17
23
|
|
@@ -95,16 +101,15 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
|
|
95
101
|
*/
|
96
102
|
#nodeIdPendingFocus: TreeNodeId|null = null;
|
97
103
|
#selectedTreeNode: TreeNode<TreeNodeDataType>|null = null;
|
98
|
-
#defaultRenderer =
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
};
|
104
|
+
#defaultRenderer = (node: TreeNode<TreeNodeDataType>, _state: {isExpanded: boolean}): LitHtml.TemplateResult => {
|
105
|
+
if (typeof node.treeNodeData !== 'string') {
|
106
|
+
console.warn(`The default TreeOutline renderer simply stringifies its given value. You passed in ${
|
107
|
+
JSON.stringify(
|
108
|
+
node.treeNodeData, null,
|
109
|
+
2)}. Consider providing a different defaultRenderer that can handle nodes of this type.`);
|
110
|
+
}
|
111
|
+
return LitHtml.html`${String(node.treeNodeData)}`;
|
112
|
+
};
|
108
113
|
#nodeFilter?: ((node: TreeNodeDataType) => FilterOption);
|
109
114
|
|
110
115
|
/**
|
@@ -66,8 +66,8 @@ export class Fragment {
|
|
66
66
|
|
67
67
|
const template = document.createElement('template');
|
68
68
|
template.innerHTML = html;
|
69
|
-
const walker =
|
70
|
-
template.content, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null);
|
69
|
+
const walker =
|
70
|
+
template.ownerDocument.createTreeWalker(template.content, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null);
|
71
71
|
let valueIndex = 0;
|
72
72
|
const emptyTextNodes = [];
|
73
73
|
const binds: Bind[] = [];
|
@@ -15,7 +15,18 @@ import type {ToolbarItem} from './Toolbar.js';
|
|
15
15
|
import {Toolbar, ToolbarMenuButton} from './Toolbar.js';
|
16
16
|
import {createTextChild} from './UIUtils.js';
|
17
17
|
import type {TabbedViewLocation, View, ViewLocation, ViewLocationResolver} from './View.js';
|
18
|
-
import {
|
18
|
+
import {
|
19
|
+
getRegisteredLocationResolvers,
|
20
|
+
getRegisteredViewExtensions,
|
21
|
+
maybeRemoveViewExtension,
|
22
|
+
registerLocationResolver,
|
23
|
+
registerViewExtension,
|
24
|
+
ViewLocationCategoryValues,
|
25
|
+
ViewLocationValues,
|
26
|
+
ViewPersistence,
|
27
|
+
type ViewRegistration,
|
28
|
+
resetViewRegistration,
|
29
|
+
} from './ViewRegistration.js';
|
19
30
|
import type {Widget, WidgetElement} from './Widget.js';
|
20
31
|
import {VBox} from './Widget.js';
|
21
32
|
import viewContainersStyles from './viewContainers.css.legacy.js';
|
@@ -13,7 +13,12 @@ import * as ARIAUtils from './ARIAUtils.js';
|
|
13
13
|
import type {ContextMenu, Provider} from './ContextMenu.js';
|
14
14
|
import {html} from './Fragment.js';
|
15
15
|
import {Tooltip} from './Tooltip.js';
|
16
|
-
import {
|
16
|
+
import {
|
17
|
+
addReferrerToURLIfNecessary,
|
18
|
+
copyLinkAddressLabel,
|
19
|
+
MaxLengthForDisplayedURLs,
|
20
|
+
openLinkExternallyLabel,
|
21
|
+
} from './UIUtils.js';
|
17
22
|
import {XElement} from './XElement.js';
|
18
23
|
|
19
24
|
export class XLink extends XElement {
|
@@ -7,7 +7,14 @@ import * as LitHtml from '../../../lit-html/lit-html.js';
|
|
7
7
|
import cssAngleStyles from './cssAngle.css.js';
|
8
8
|
|
9
9
|
import type {Angle} from './CSSAngleUtils.js';
|
10
|
-
import {
|
10
|
+
import {
|
11
|
+
AngleUnit,
|
12
|
+
convertAngleUnit,
|
13
|
+
getNewAngleFromEvent,
|
14
|
+
getNextUnit,
|
15
|
+
parseText,
|
16
|
+
roundAngleByUnit,
|
17
|
+
} from './CSSAngleUtils.js';
|
11
18
|
import {ValueChangedEvent} from './InlineEditorUtils.js';
|
12
19
|
|
13
20
|
import type {CSSAngleEditorData} from './CSSAngleEditor.js';
|
@@ -8,7 +8,13 @@ import * as LitHtml from '../../../lit-html/lit-html.js';
|
|
8
8
|
import cssAngleEditorStyles from './cssAngleEditor.css.js';
|
9
9
|
|
10
10
|
import type {Angle} from './CSSAngleUtils.js';
|
11
|
-
import {
|
11
|
+
import {
|
12
|
+
AngleUnit,
|
13
|
+
get2DTranslationsForAngle,
|
14
|
+
getAngleFromRadians,
|
15
|
+
getNewAngleFromEvent,
|
16
|
+
getRadiansFromAngle,
|
17
|
+
} from './CSSAngleUtils.js';
|
12
18
|
|
13
19
|
const {render, html} = LitHtml;
|
14
20
|
const styleMap = LitHtml.Directives.styleMap;
|
package/package.json
CHANGED