@theia/memory-inspector 1.67.0-next.3 → 1.67.0-next.56
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/README.md +1 -1
- package/package.json +4 -4
- package/lib/browser/diff-widget/memory-diff-options-widget.d.ts +0 -37
- package/lib/browser/diff-widget/memory-diff-options-widget.d.ts.map +0 -1
- package/lib/browser/diff-widget/memory-diff-options-widget.js +0 -125
- package/lib/browser/diff-widget/memory-diff-options-widget.js.map +0 -1
- package/lib/browser/diff-widget/memory-diff-select-widget.d.ts +0 -51
- package/lib/browser/diff-widget/memory-diff-select-widget.d.ts.map +0 -1
- package/lib/browser/diff-widget/memory-diff-select-widget.js +0 -130
- package/lib/browser/diff-widget/memory-diff-select-widget.js.map +0 -1
- package/lib/browser/diff-widget/memory-diff-table-widget.d.ts +0 -78
- package/lib/browser/diff-widget/memory-diff-table-widget.d.ts.map +0 -1
- package/lib/browser/diff-widget/memory-diff-table-widget.js +0 -307
- package/lib/browser/diff-widget/memory-diff-table-widget.js.map +0 -1
- package/lib/browser/diff-widget/memory-diff-widget-types.d.ts +0 -42
- package/lib/browser/diff-widget/memory-diff-widget-types.d.ts.map +0 -1
- package/lib/browser/diff-widget/memory-diff-widget-types.js +0 -24
- package/lib/browser/diff-widget/memory-diff-widget-types.js.map +0 -1
- package/lib/browser/editable-widget/memory-editable-table-widget.d.ts +0 -65
- package/lib/browser/editable-widget/memory-editable-table-widget.d.ts.map +0 -1
- package/lib/browser/editable-widget/memory-editable-table-widget.js +0 -320
- package/lib/browser/editable-widget/memory-editable-table-widget.js.map +0 -1
- package/lib/browser/memory-inspector-frontend-contribution.d.ts +0 -47
- package/lib/browser/memory-inspector-frontend-contribution.d.ts.map +0 -1
- package/lib/browser/memory-inspector-frontend-contribution.js +0 -284
- package/lib/browser/memory-inspector-frontend-contribution.js.map +0 -1
- package/lib/browser/memory-inspector-frontend-module.d.ts +0 -22
- package/lib/browser/memory-inspector-frontend-module.d.ts.map +0 -1
- package/lib/browser/memory-inspector-frontend-module.js +0 -88
- package/lib/browser/memory-inspector-frontend-module.js.map +0 -1
- package/lib/browser/memory-provider/cdt-gdb-memory-provider.d.ts +0 -36
- package/lib/browser/memory-provider/cdt-gdb-memory-provider.d.ts.map +0 -1
- package/lib/browser/memory-provider/cdt-gdb-memory-provider.js +0 -132
- package/lib/browser/memory-provider/cdt-gdb-memory-provider.js.map +0 -1
- package/lib/browser/memory-provider/memory-provider-service.d.ts +0 -37
- package/lib/browser/memory-provider/memory-provider-service.d.ts.map +0 -1
- package/lib/browser/memory-provider/memory-provider-service.js +0 -94
- package/lib/browser/memory-provider/memory-provider-service.js.map +0 -1
- package/lib/browser/memory-provider/memory-provider.d.ts +0 -66
- package/lib/browser/memory-provider/memory-provider.d.ts.map +0 -1
- package/lib/browser/memory-provider/memory-provider.js +0 -89
- package/lib/browser/memory-provider/memory-provider.js.map +0 -1
- package/lib/browser/memory-provider/memory-provider.spec.d.ts +0 -17
- package/lib/browser/memory-provider/memory-provider.spec.d.ts.map +0 -1
- package/lib/browser/memory-provider/memory-provider.spec.js +0 -24
- package/lib/browser/memory-provider/memory-provider.spec.js.map +0 -1
- package/lib/browser/memory-widget/memory-options-widget.d.ts +0 -137
- package/lib/browser/memory-widget/memory-options-widget.d.ts.map +0 -1
- package/lib/browser/memory-widget/memory-options-widget.js +0 -557
- package/lib/browser/memory-widget/memory-options-widget.js.map +0 -1
- package/lib/browser/memory-widget/memory-table-widget.d.ts +0 -147
- package/lib/browser/memory-widget/memory-table-widget.d.ts.map +0 -1
- package/lib/browser/memory-widget/memory-table-widget.js +0 -481
- package/lib/browser/memory-widget/memory-table-widget.js.map +0 -1
- package/lib/browser/memory-widget/memory-widget.d.ts +0 -34
- package/lib/browser/memory-widget/memory-widget.d.ts.map +0 -1
- package/lib/browser/memory-widget/memory-widget.js +0 -105
- package/lib/browser/memory-widget/memory-widget.js.map +0 -1
- package/lib/browser/register-widget/register-filter-service.d.ts +0 -43
- package/lib/browser/register-widget/register-filter-service.d.ts.map +0 -1
- package/lib/browser/register-widget/register-filter-service.js +0 -74
- package/lib/browser/register-widget/register-filter-service.js.map +0 -1
- package/lib/browser/register-widget/register-options-widget.d.ts +0 -82
- package/lib/browser/register-widget/register-options-widget.d.ts.map +0 -1
- package/lib/browser/register-widget/register-options-widget.js +0 -331
- package/lib/browser/register-widget/register-options-widget.js.map +0 -1
- package/lib/browser/register-widget/register-table-widget.d.ts +0 -78
- package/lib/browser/register-widget/register-table-widget.d.ts.map +0 -1
- package/lib/browser/register-widget/register-table-widget.js +0 -224
- package/lib/browser/register-widget/register-table-widget.js.map +0 -1
- package/lib/browser/register-widget/register-widget-types.d.ts +0 -30
- package/lib/browser/register-widget/register-widget-types.d.ts.map +0 -1
- package/lib/browser/register-widget/register-widget-types.js +0 -36
- package/lib/browser/register-widget/register-widget-types.js.map +0 -1
- package/lib/browser/utils/memory-commands.d.ts +0 -28
- package/lib/browser/utils/memory-commands.d.ts.map +0 -1
- package/lib/browser/utils/memory-commands.js +0 -68
- package/lib/browser/utils/memory-commands.js.map +0 -1
- package/lib/browser/utils/memory-hover-renderer.d.ts +0 -34
- package/lib/browser/utils/memory-hover-renderer.d.ts.map +0 -1
- package/lib/browser/utils/memory-hover-renderer.js +0 -104
- package/lib/browser/utils/memory-hover-renderer.js.map +0 -1
- package/lib/browser/utils/memory-recents.d.ts +0 -28
- package/lib/browser/utils/memory-recents.d.ts.map +0 -1
- package/lib/browser/utils/memory-recents.js +0 -53
- package/lib/browser/utils/memory-recents.js.map +0 -1
- package/lib/browser/utils/memory-widget-components.d.ts +0 -59
- package/lib/browser/utils/memory-widget-components.d.ts.map +0 -1
- package/lib/browser/utils/memory-widget-components.js +0 -71
- package/lib/browser/utils/memory-widget-components.js.map +0 -1
- package/lib/browser/utils/memory-widget-manager.d.ts +0 -51
- package/lib/browser/utils/memory-widget-manager.d.ts.map +0 -1
- package/lib/browser/utils/memory-widget-manager.js +0 -175
- package/lib/browser/utils/memory-widget-manager.js.map +0 -1
- package/lib/browser/utils/memory-widget-utils.d.ts +0 -114
- package/lib/browser/utils/memory-widget-utils.d.ts.map +0 -1
- package/lib/browser/utils/memory-widget-utils.js +0 -43
- package/lib/browser/utils/memory-widget-utils.js.map +0 -1
- package/lib/browser/utils/memory-widget-variable-utils.d.ts +0 -58
- package/lib/browser/utils/memory-widget-variable-utils.d.ts.map +0 -1
- package/lib/browser/utils/memory-widget-variable-utils.js +0 -145
- package/lib/browser/utils/memory-widget-variable-utils.js.map +0 -1
- package/lib/browser/utils/multi-select-bar.d.ts +0 -32
- package/lib/browser/utils/multi-select-bar.d.ts.map +0 -1
- package/lib/browser/utils/multi-select-bar.js +0 -36
- package/lib/browser/utils/multi-select-bar.js.map +0 -1
- package/lib/browser/wrapper-widgets/memory-dock-panel.d.ts +0 -25
- package/lib/browser/wrapper-widgets/memory-dock-panel.d.ts.map +0 -1
- package/lib/browser/wrapper-widgets/memory-dock-panel.js +0 -49
- package/lib/browser/wrapper-widgets/memory-dock-panel.js.map +0 -1
- package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.d.ts +0 -24
- package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.d.ts.map +0 -1
- package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.js +0 -50
- package/lib/browser/wrapper-widgets/memory-dockpanel-placeholder-widget.js.map +0 -1
- package/lib/browser/wrapper-widgets/memory-layout-widget.d.ts +0 -52
- package/lib/browser/wrapper-widgets/memory-layout-widget.d.ts.map +0 -1
- package/lib/browser/wrapper-widgets/memory-layout-widget.js +0 -178
- package/lib/browser/wrapper-widgets/memory-layout-widget.js.map +0 -1
- package/lib/common/util.d.ts +0 -22
- package/lib/common/util.d.ts.map +0 -1
- package/lib/common/util.js +0 -32
- package/lib/common/util.js.map +0 -1
- package/lib/common/utils.spec.d.ts +0 -17
- package/lib/common/utils.spec.d.ts.map +0 -1
- package/lib/common/utils.spec.js +0 -47
- package/lib/common/utils.spec.js.map +0 -1
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (C) 2021 Ericsson and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
*
|
|
8
|
-
* This Source Code may also be made available under the following Secondary
|
|
9
|
-
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
* with the GNU Classpath Exception which is available at
|
|
12
|
-
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
*
|
|
14
|
-
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
********************************************************************************/
|
|
16
|
-
/// <reference types="react" />
|
|
17
|
-
/// <reference types="lodash" />
|
|
18
|
-
import { ContextMenuRenderer, ReactWidget, Widget } from '@theia/core/lib/browser';
|
|
19
|
-
import { ThemeService } from '@theia/core/lib/browser/theming';
|
|
20
|
-
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
21
|
-
import { ThemeChangeEvent } from '@theia/core/lib/common/theme';
|
|
22
|
-
import * as React from '@theia/core/shared/react';
|
|
23
|
-
import { MemoryProviderService } from '../memory-provider/memory-provider-service';
|
|
24
|
-
import { EasilyMappedObject, MemoryHoverRendererService } from '../utils/memory-hover-renderer';
|
|
25
|
-
import { Interfaces } from '../utils/memory-widget-utils';
|
|
26
|
-
import { VariableDecoration, VariableFinder } from '../utils/memory-widget-variable-utils';
|
|
27
|
-
import { MemoryOptionsWidget } from './memory-options-widget';
|
|
28
|
-
export declare namespace MemoryTable {
|
|
29
|
-
interface WrapperHandlers {
|
|
30
|
-
onKeyDown?: React.KeyboardEventHandler;
|
|
31
|
-
onClick?: React.MouseEventHandler;
|
|
32
|
-
onContextMenu?: React.MouseEventHandler;
|
|
33
|
-
onMouseMove?: React.MouseEventHandler;
|
|
34
|
-
onFocus?(e: React.FocusEvent<HTMLDivElement>): any;
|
|
35
|
-
onBlur?(e: React.FocusEvent<HTMLDivElement>): any;
|
|
36
|
-
}
|
|
37
|
-
interface StylableNodeAttributes {
|
|
38
|
-
className?: string;
|
|
39
|
-
style?: React.CSSProperties;
|
|
40
|
-
variable?: VariableDecoration;
|
|
41
|
-
title?: string;
|
|
42
|
-
isHighlighted?: boolean;
|
|
43
|
-
}
|
|
44
|
-
interface GroupData {
|
|
45
|
-
node: React.ReactNode;
|
|
46
|
-
ascii: string;
|
|
47
|
-
index: number;
|
|
48
|
-
variables: VariableDecoration[];
|
|
49
|
-
isHighlighted?: boolean;
|
|
50
|
-
}
|
|
51
|
-
interface ByteData {
|
|
52
|
-
node: React.ReactNode;
|
|
53
|
-
ascii: string;
|
|
54
|
-
index: number;
|
|
55
|
-
variables: VariableDecoration[];
|
|
56
|
-
isHighlighted?: boolean;
|
|
57
|
-
}
|
|
58
|
-
interface ItemData {
|
|
59
|
-
node: React.ReactNode;
|
|
60
|
-
content: string;
|
|
61
|
-
variable?: VariableDecoration;
|
|
62
|
-
index: number;
|
|
63
|
-
isHighlighted?: boolean;
|
|
64
|
-
}
|
|
65
|
-
interface RowOptions {
|
|
66
|
-
address: string;
|
|
67
|
-
groups: React.ReactNode;
|
|
68
|
-
ascii?: string;
|
|
69
|
-
variables?: VariableDecoration[];
|
|
70
|
-
doShowDivider?: boolean;
|
|
71
|
-
index: number;
|
|
72
|
-
isHighlighted?: boolean;
|
|
73
|
-
}
|
|
74
|
-
const ROW_CLASS = "t-mv-view-row";
|
|
75
|
-
const ROW_DIVIDER_CLASS = "t-mv-view-row-highlight";
|
|
76
|
-
const ADDRESS_DATA_CLASS = "t-mv-view-address";
|
|
77
|
-
const MEMORY_DATA_CLASS = "t-mv-view-data";
|
|
78
|
-
const EXTRA_COLUMN_DATA_CLASS = "t-mv-view-code";
|
|
79
|
-
const GROUP_SPAN_CLASS = "byte-group";
|
|
80
|
-
const BYTE_SPAN_CLASS = "single-byte";
|
|
81
|
-
const EIGHT_BIT_SPAN_CLASS = "eight-bits";
|
|
82
|
-
const HEADER_LABEL_CONTAINER_CLASS = "t-mv-header-label-container";
|
|
83
|
-
const HEADER_LABEL_CLASS = "t-mv-header-label";
|
|
84
|
-
const VARIABLE_LABEL_CLASS = "t-mv-variable-label";
|
|
85
|
-
const HEADER_ROW_CLASS = "t-mv-header";
|
|
86
|
-
}
|
|
87
|
-
export declare class MemoryTableWidget extends ReactWidget {
|
|
88
|
-
static CONTEXT_MENU: string[];
|
|
89
|
-
static ID: string;
|
|
90
|
-
protected readonly themeService: ThemeService;
|
|
91
|
-
readonly optionsWidget: MemoryOptionsWidget;
|
|
92
|
-
protected readonly memoryProvider: MemoryProviderService;
|
|
93
|
-
protected readonly hoverRenderer: MemoryHoverRendererService;
|
|
94
|
-
protected readonly contextMenuRenderer: ContextMenuRenderer;
|
|
95
|
-
protected previousBytes: Interfaces.LabeledUint8Array | undefined;
|
|
96
|
-
protected memory: Interfaces.WidgetMemoryState;
|
|
97
|
-
protected options: Interfaces.MemoryOptions;
|
|
98
|
-
protected variableFinder: VariableFinder | undefined;
|
|
99
|
-
protected deferredScrollContainer: Deferred<HTMLDivElement>;
|
|
100
|
-
protected init(): void;
|
|
101
|
-
protected doInit(): Promise<void>;
|
|
102
|
-
protected handleOptionChange(_id?: string): Promise<void>;
|
|
103
|
-
update(): void;
|
|
104
|
-
protected onResize(msg: Widget.ResizeMessage): void;
|
|
105
|
-
protected updateColumnWidths: import("lodash").DebouncedFunc<any>;
|
|
106
|
-
protected doUpdateColumnWidths(): void;
|
|
107
|
-
protected areSameRegion(a: Interfaces.MemoryReadResult, b: Interfaces.MemoryReadResult): boolean;
|
|
108
|
-
protected handleMemoryChange(newMemory: Interfaces.MemoryReadResult): void;
|
|
109
|
-
protected handleThemeChange(_themeChange: ThemeChangeEvent): void;
|
|
110
|
-
protected getState(): void;
|
|
111
|
-
protected getStateAndUpdate(): void;
|
|
112
|
-
protected scrollIntoViewIfNecessary(): Promise<void>;
|
|
113
|
-
protected getWrapperHandlers(): MemoryTable.WrapperHandlers;
|
|
114
|
-
protected assignScrollContainerRef: (element: HTMLDivElement) => void;
|
|
115
|
-
getScrollContainer(): Promise<HTMLDivElement>;
|
|
116
|
-
render(): React.ReactNode;
|
|
117
|
-
protected getWrapperClass(): string;
|
|
118
|
-
protected getTableHeaderClass(): string;
|
|
119
|
-
protected getTableHeaderStyle(numLabels: number): React.CSSProperties;
|
|
120
|
-
protected getTableHeaders(labels: Interfaces.ColumnIDs[]): React.ReactNode;
|
|
121
|
-
protected getTableHeader({ label, id }: Interfaces.ColumnIDs): React.ReactNode;
|
|
122
|
-
protected getBeforeTableContent(): React.ReactNode;
|
|
123
|
-
protected getAfterTableContent(): React.ReactNode;
|
|
124
|
-
protected loadMoreMemory: (options: Interfaces.MoreMemoryOptions) => Promise<void>;
|
|
125
|
-
protected getTableFooter(): React.ReactNode;
|
|
126
|
-
protected getTableRows(): React.ReactNode;
|
|
127
|
-
protected renderRows(iteratee?: Interfaces.LabeledUint8Array): IterableIterator<React.ReactNode>;
|
|
128
|
-
protected renderRow(options: MemoryTable.RowOptions, getRowAttributes?: Interfaces.RowDecorator): React.ReactNode;
|
|
129
|
-
protected getRowAttributes(options: Partial<MemoryTable.RowOptions>): Partial<Interfaces.StylableNodeAttributes>;
|
|
130
|
-
protected getExtraColumn(options: Pick<MemoryTable.RowOptions, 'ascii' | 'variables'>): React.ReactNode;
|
|
131
|
-
protected renderGroups(iteratee?: Interfaces.LabeledUint8Array): IterableIterator<MemoryTable.GroupData>;
|
|
132
|
-
protected buildGroupByEndianness(oldBytes: React.ReactNode[], newByte: React.ReactNode): void;
|
|
133
|
-
protected renderBytes(iteratee?: Interfaces.LabeledUint8Array): IterableIterator<MemoryTable.ByteData>;
|
|
134
|
-
protected getASCIIForSingleByte(byte: number | undefined): string;
|
|
135
|
-
protected renderArrayItems(iteratee?: Interfaces.LabeledUint8Array, getBitAttributes?: Interfaces.BitDecorator): IterableIterator<MemoryTable.ItemData>;
|
|
136
|
-
protected getBitAttributes(arrayOffset: number, iteratee: Interfaces.LabeledUint8Array): Partial<Interfaces.FullNodeAttributes>;
|
|
137
|
-
protected handleTableMouseMove: (e: React.MouseEvent) => void;
|
|
138
|
-
protected debounceHandleMouseTableMove: import("lodash").DebouncedFunc<any>;
|
|
139
|
-
protected doHandleTableMouseMove(targetSpan: React.MouseEvent['target']): void;
|
|
140
|
-
protected getHoverForChunk(span: HTMLElement): EasilyMappedObject | undefined;
|
|
141
|
-
protected getPaddedBinary(decimal: number): string;
|
|
142
|
-
protected getHoverForVariable(span: HTMLElement): EasilyMappedObject | undefined;
|
|
143
|
-
protected handleTableRightClick: (e: React.MouseEvent) => void;
|
|
144
|
-
protected doHandleTableRightClick(event: React.MouseEvent): void;
|
|
145
|
-
protected getContextMenuArgs(event: React.MouseEvent): unknown[];
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=memory-table-widget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-table-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/memory-widget/memory-table-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,481 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/********************************************************************************
|
|
3
|
-
* Copyright (C) 2021 Ericsson and others.
|
|
4
|
-
*
|
|
5
|
-
* This program and the accompanying materials are made available under the
|
|
6
|
-
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
-
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
-
*
|
|
9
|
-
* This Source Code may also be made available under the following Secondary
|
|
10
|
-
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
-
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
-
* with the GNU Classpath Exception which is available at
|
|
13
|
-
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
-
********************************************************************************/
|
|
17
|
-
var MemoryTableWidget_1;
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.MemoryTableWidget = exports.MemoryTable = void 0;
|
|
20
|
-
const tslib_1 = require("tslib");
|
|
21
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
22
|
-
const theming_1 = require("@theia/core/lib/browser/theming");
|
|
23
|
-
const promise_util_1 = require("@theia/core/lib/common/promise-util");
|
|
24
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
25
|
-
const React = tslib_1.__importStar(require("@theia/core/shared/react"));
|
|
26
|
-
const util_1 = require("../../common/util");
|
|
27
|
-
const memory_provider_service_1 = require("../memory-provider/memory-provider-service");
|
|
28
|
-
const memory_hover_renderer_1 = require("../utils/memory-hover-renderer");
|
|
29
|
-
const memory_widget_components_1 = require("../utils/memory-widget-components");
|
|
30
|
-
const memory_widget_utils_1 = require("../utils/memory-widget-utils");
|
|
31
|
-
const memory_widget_variable_utils_1 = require("../utils/memory-widget-variable-utils");
|
|
32
|
-
const memory_options_widget_1 = require("./memory-options-widget");
|
|
33
|
-
const debounce = require("@theia/core/shared/lodash.debounce");
|
|
34
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
35
|
-
var MemoryTable;
|
|
36
|
-
(function (MemoryTable) {
|
|
37
|
-
MemoryTable.ROW_CLASS = 't-mv-view-row';
|
|
38
|
-
MemoryTable.ROW_DIVIDER_CLASS = 't-mv-view-row-highlight';
|
|
39
|
-
MemoryTable.ADDRESS_DATA_CLASS = 't-mv-view-address';
|
|
40
|
-
MemoryTable.MEMORY_DATA_CLASS = 't-mv-view-data';
|
|
41
|
-
MemoryTable.EXTRA_COLUMN_DATA_CLASS = 't-mv-view-code';
|
|
42
|
-
MemoryTable.GROUP_SPAN_CLASS = 'byte-group';
|
|
43
|
-
MemoryTable.BYTE_SPAN_CLASS = 'single-byte';
|
|
44
|
-
MemoryTable.EIGHT_BIT_SPAN_CLASS = 'eight-bits';
|
|
45
|
-
MemoryTable.HEADER_LABEL_CONTAINER_CLASS = 't-mv-header-label-container';
|
|
46
|
-
MemoryTable.HEADER_LABEL_CLASS = 't-mv-header-label';
|
|
47
|
-
MemoryTable.VARIABLE_LABEL_CLASS = 't-mv-variable-label';
|
|
48
|
-
MemoryTable.HEADER_ROW_CLASS = 't-mv-header';
|
|
49
|
-
})(MemoryTable || (exports.MemoryTable = MemoryTable = {}));
|
|
50
|
-
let MemoryTableWidget = MemoryTableWidget_1 = class MemoryTableWidget extends browser_1.ReactWidget {
|
|
51
|
-
constructor() {
|
|
52
|
-
super(...arguments);
|
|
53
|
-
this.deferredScrollContainer = new promise_util_1.Deferred();
|
|
54
|
-
this.updateColumnWidths = debounce(this.doUpdateColumnWidths.bind(this), memory_widget_utils_1.Constants.DEBOUNCE_TIME);
|
|
55
|
-
this.assignScrollContainerRef = (element) => {
|
|
56
|
-
this.deferredScrollContainer.resolve(element);
|
|
57
|
-
};
|
|
58
|
-
this.loadMoreMemory = async (options) => {
|
|
59
|
-
const { direction, numBytes } = options;
|
|
60
|
-
const { address, offset, length } = this.optionsWidget.options;
|
|
61
|
-
let newOffset = 0;
|
|
62
|
-
const newLength = length + numBytes;
|
|
63
|
-
if (direction === 'above') {
|
|
64
|
-
newOffset = offset - numBytes;
|
|
65
|
-
}
|
|
66
|
-
await this.optionsWidget.setAddressAndGo(`${address}`, newOffset, newLength, direction);
|
|
67
|
-
};
|
|
68
|
-
this.handleTableMouseMove = (e) => {
|
|
69
|
-
const { target } = e; // react events can't be put into the debouncer
|
|
70
|
-
this.debounceHandleMouseTableMove(target);
|
|
71
|
-
};
|
|
72
|
-
this.debounceHandleMouseTableMove = debounce(this.doHandleTableMouseMove.bind(this), memory_widget_utils_1.Constants.DEBOUNCE_TIME, { trailing: true });
|
|
73
|
-
this.handleTableRightClick = (e) => this.doHandleTableRightClick(e);
|
|
74
|
-
}
|
|
75
|
-
init() {
|
|
76
|
-
this.doInit();
|
|
77
|
-
}
|
|
78
|
-
async doInit() {
|
|
79
|
-
this.id = MemoryTableWidget_1.ID;
|
|
80
|
-
this.addClass(MemoryTableWidget_1.ID);
|
|
81
|
-
this.scrollOptions = { ...this.scrollOptions, suppressScrollX: false };
|
|
82
|
-
this.toDispose.push(this.optionsWidget.onOptionsChanged(optionId => this.handleOptionChange(optionId)));
|
|
83
|
-
this.toDispose.push(this.optionsWidget.onMemoryChanged(e => this.handleMemoryChange(e)));
|
|
84
|
-
this.toDispose.push(this.themeService.onDidColorThemeChange(e => this.handleThemeChange(e)));
|
|
85
|
-
this.getStateAndUpdate();
|
|
86
|
-
}
|
|
87
|
-
handleOptionChange(_id) {
|
|
88
|
-
this.getStateAndUpdate();
|
|
89
|
-
return Promise.resolve();
|
|
90
|
-
}
|
|
91
|
-
update() {
|
|
92
|
-
super.update();
|
|
93
|
-
this.updateColumnWidths();
|
|
94
|
-
}
|
|
95
|
-
onResize(msg) {
|
|
96
|
-
this.updateColumnWidths();
|
|
97
|
-
super.onResize(msg);
|
|
98
|
-
}
|
|
99
|
-
doUpdateColumnWidths() {
|
|
100
|
-
setTimeout(() => {
|
|
101
|
-
const firstTR = this.node.querySelector('tr');
|
|
102
|
-
const header = this.node.querySelector(`.${MemoryTable.HEADER_ROW_CLASS}`);
|
|
103
|
-
if (firstTR && header) {
|
|
104
|
-
const allTDs = Array.from(firstTR.querySelectorAll('td'));
|
|
105
|
-
const allSizes = allTDs.map(td => `minmax(max-content, ${td.clientWidth}px)`);
|
|
106
|
-
header.style.gridTemplateColumns = allSizes.join(' ');
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
areSameRegion(a, b) {
|
|
111
|
-
return a.address.equals(b === null || b === void 0 ? void 0 : b.address) && a.bytes.length === (b === null || b === void 0 ? void 0 : b.bytes.length);
|
|
112
|
-
}
|
|
113
|
-
handleMemoryChange(newMemory) {
|
|
114
|
-
if (this.areSameRegion(this.memory, newMemory)) {
|
|
115
|
-
this.previousBytes = this.memory.bytes;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
this.previousBytes = undefined;
|
|
119
|
-
}
|
|
120
|
-
this.getStateAndUpdate();
|
|
121
|
-
}
|
|
122
|
-
handleThemeChange(_themeChange) {
|
|
123
|
-
this.getStateAndUpdate();
|
|
124
|
-
}
|
|
125
|
-
getState() {
|
|
126
|
-
this.options = this.optionsWidget.options;
|
|
127
|
-
this.memory = this.optionsWidget.memory;
|
|
128
|
-
const isHighContrast = this.themeService.getCurrentTheme().type === 'hc';
|
|
129
|
-
this.variableFinder = this.optionsWidget.options.columnsDisplayed.variables.doRender
|
|
130
|
-
? new memory_widget_variable_utils_1.VariableFinder(this.memory.variables, isHighContrast)
|
|
131
|
-
: undefined;
|
|
132
|
-
}
|
|
133
|
-
getStateAndUpdate() {
|
|
134
|
-
this.getState();
|
|
135
|
-
this.update();
|
|
136
|
-
this.scrollIntoViewIfNecessary();
|
|
137
|
-
}
|
|
138
|
-
scrollIntoViewIfNecessary() {
|
|
139
|
-
return new Promise(resolve => setTimeout(() => {
|
|
140
|
-
this.deferredScrollContainer.promise.then(scrollContainer => {
|
|
141
|
-
var _a;
|
|
142
|
-
const table = scrollContainer.querySelector('table');
|
|
143
|
-
if (table && scrollContainer.scrollTop > table.clientHeight) {
|
|
144
|
-
const valueToGetInWindow = table.clientHeight - this.node.clientHeight;
|
|
145
|
-
const scrollHere = Math.max(valueToGetInWindow, 0);
|
|
146
|
-
scrollContainer.scrollTo(scrollContainer.scrollLeft, scrollHere);
|
|
147
|
-
}
|
|
148
|
-
(_a = this.scrollBar) === null || _a === void 0 ? void 0 : _a.update();
|
|
149
|
-
resolve();
|
|
150
|
-
});
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
getWrapperHandlers() {
|
|
154
|
-
return { onMouseMove: this.handleTableMouseMove };
|
|
155
|
-
}
|
|
156
|
-
async getScrollContainer() {
|
|
157
|
-
return this.deferredScrollContainer.promise;
|
|
158
|
-
}
|
|
159
|
-
render() {
|
|
160
|
-
const rows = this.getTableRows();
|
|
161
|
-
const { onClick, onContextMenu, onFocus, onBlur, onKeyDown, onMouseMove } = this.getWrapperHandlers();
|
|
162
|
-
const headers = Object.entries(this.options.columnsDisplayed)
|
|
163
|
-
.filter(([, { doRender }]) => doRender)
|
|
164
|
-
.map(([id, { label }]) => ({ label, id }));
|
|
165
|
-
return (React.createElement("div", { className: this.getWrapperClass(), onClick: onClick, onContextMenu: onContextMenu, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onMouseMove: onMouseMove, role: 'textbox', tabIndex: 0 },
|
|
166
|
-
React.createElement("div", { className: this.getTableHeaderClass(), style: this.getTableHeaderStyle(headers.length) }, this.getTableHeaders(headers)),
|
|
167
|
-
React.createElement("div", { className: 't-mv-view-container', style: { position: 'relative' }, ref: this.assignScrollContainerRef },
|
|
168
|
-
this.getBeforeTableContent(),
|
|
169
|
-
React.createElement("table", { className: 't-mv-view' },
|
|
170
|
-
React.createElement("tbody", null, rows)),
|
|
171
|
-
this.getAfterTableContent()),
|
|
172
|
-
this.getTableFooter()));
|
|
173
|
-
}
|
|
174
|
-
getWrapperClass() {
|
|
175
|
-
return `t-mv-memory-container${this.options.isFrozen ? ' frozen' : ''}`;
|
|
176
|
-
}
|
|
177
|
-
getTableHeaderClass() {
|
|
178
|
-
return MemoryTable.HEADER_ROW_CLASS + ' no-select';
|
|
179
|
-
}
|
|
180
|
-
getTableHeaderStyle(numLabels) {
|
|
181
|
-
const safePercentage = Math.floor(100 / numLabels);
|
|
182
|
-
const gridTemplateColumns = ` ${safePercentage}% `.repeat(numLabels);
|
|
183
|
-
return { gridTemplateColumns };
|
|
184
|
-
}
|
|
185
|
-
getTableHeaders(labels) {
|
|
186
|
-
return labels.map(label => this.getTableHeader(label));
|
|
187
|
-
}
|
|
188
|
-
getTableHeader({ label, id }) {
|
|
189
|
-
return (React.createElement("div", { key: id, className: MemoryTable.HEADER_LABEL_CONTAINER_CLASS },
|
|
190
|
-
React.createElement("span", { className: 't-mv-header-label' }, label)));
|
|
191
|
-
}
|
|
192
|
-
getBeforeTableContent() {
|
|
193
|
-
return (!!this.memory.bytes.length && (React.createElement(memory_widget_components_1.MWMoreMemorySelect, { options: [128, 256, 512], direction: 'above', handler: this.loadMoreMemory })));
|
|
194
|
-
}
|
|
195
|
-
getAfterTableContent() {
|
|
196
|
-
return (!!this.memory.bytes.length && (React.createElement(memory_widget_components_1.MWMoreMemorySelect, { options: [128, 256, 512], direction: 'below', handler: this.loadMoreMemory })));
|
|
197
|
-
}
|
|
198
|
-
getTableFooter() {
|
|
199
|
-
return undefined;
|
|
200
|
-
}
|
|
201
|
-
getTableRows() {
|
|
202
|
-
return [...this.renderRows()];
|
|
203
|
-
}
|
|
204
|
-
*renderRows(iteratee = this.memory.bytes) {
|
|
205
|
-
const bytesPerRow = this.options.bytesPerGroup * this.options.groupsPerRow;
|
|
206
|
-
let rowsYielded = 0;
|
|
207
|
-
let groups = [];
|
|
208
|
-
let ascii = '';
|
|
209
|
-
let variables = [];
|
|
210
|
-
let isRowHighlighted = false;
|
|
211
|
-
for (const { node, index, ascii: groupAscii, variables: groupVariables, isHighlighted = false } of this.renderGroups(iteratee)) {
|
|
212
|
-
groups.push(node);
|
|
213
|
-
ascii += groupAscii;
|
|
214
|
-
variables.push(...groupVariables);
|
|
215
|
-
isRowHighlighted = isRowHighlighted || isHighlighted;
|
|
216
|
-
if (groups.length === this.options.groupsPerRow || index === iteratee.length - 1) {
|
|
217
|
-
const rowAddress = this.memory.address.add(bytesPerRow * rowsYielded);
|
|
218
|
-
const options = {
|
|
219
|
-
address: `0x${rowAddress.toString(16)}`,
|
|
220
|
-
doShowDivider: (rowsYielded % 4) === 3,
|
|
221
|
-
isHighlighted: isRowHighlighted,
|
|
222
|
-
ascii,
|
|
223
|
-
groups,
|
|
224
|
-
variables,
|
|
225
|
-
index,
|
|
226
|
-
};
|
|
227
|
-
yield this.renderRow(options);
|
|
228
|
-
ascii = '';
|
|
229
|
-
variables = [];
|
|
230
|
-
groups = [];
|
|
231
|
-
rowsYielded += 1;
|
|
232
|
-
isRowHighlighted = false;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
renderRow(options, getRowAttributes = this.getRowAttributes.bind(this)) {
|
|
237
|
-
const { address, groups } = options;
|
|
238
|
-
const { className, style, title } = getRowAttributes(options);
|
|
239
|
-
return (React.createElement("tr", {
|
|
240
|
-
// Add a marker to help visual navigation when scrolling
|
|
241
|
-
className: className, style: style, title: title, key: address },
|
|
242
|
-
React.createElement("td", { className: MemoryTable.ADDRESS_DATA_CLASS }, address),
|
|
243
|
-
React.createElement("td", { className: MemoryTable.MEMORY_DATA_CLASS }, groups),
|
|
244
|
-
this.getExtraColumn(options)));
|
|
245
|
-
}
|
|
246
|
-
getRowAttributes(options) {
|
|
247
|
-
let className = MemoryTable.ROW_CLASS;
|
|
248
|
-
if (options.doShowDivider) {
|
|
249
|
-
className += ` ${MemoryTable.ROW_DIVIDER_CLASS}`;
|
|
250
|
-
}
|
|
251
|
-
return { className };
|
|
252
|
-
}
|
|
253
|
-
getExtraColumn(options) {
|
|
254
|
-
const { variables } = options;
|
|
255
|
-
const additionalColumns = [];
|
|
256
|
-
if (this.options.columnsDisplayed.variables.doRender) {
|
|
257
|
-
additionalColumns.push(React.createElement("td", { className: MemoryTable.EXTRA_COLUMN_DATA_CLASS, key: 'variables' }, !!(variables === null || variables === void 0 ? void 0 : variables.length) && (React.createElement("span", { className: 'variable-container' }, variables.map(({ name, color }) => (React.createElement("span", { key: name, className: MemoryTable.VARIABLE_LABEL_CLASS, style: { color } }, name)))))));
|
|
258
|
-
}
|
|
259
|
-
if (this.options.columnsDisplayed.ascii.doRender) {
|
|
260
|
-
const asciiColumn = this.options.columnsDisplayed.ascii.doRender && React.createElement("td", { className: MemoryTable.EXTRA_COLUMN_DATA_CLASS, key: 'ascii' }, options.ascii);
|
|
261
|
-
additionalColumns.push(asciiColumn);
|
|
262
|
-
}
|
|
263
|
-
return additionalColumns;
|
|
264
|
-
}
|
|
265
|
-
*renderGroups(iteratee = this.memory.bytes) {
|
|
266
|
-
let bytesInGroup = [];
|
|
267
|
-
let ascii = '';
|
|
268
|
-
let variables = [];
|
|
269
|
-
let isGroupHighlighted = false;
|
|
270
|
-
for (const { node, index, ascii: byteAscii, variables: byteVariables, isHighlighted = false } of this.renderBytes(iteratee)) {
|
|
271
|
-
this.buildGroupByEndianness(bytesInGroup, node);
|
|
272
|
-
ascii += byteAscii;
|
|
273
|
-
variables.push(...byteVariables);
|
|
274
|
-
isGroupHighlighted = isGroupHighlighted || isHighlighted;
|
|
275
|
-
if (bytesInGroup.length === this.options.bytesPerGroup || index === iteratee.length - 1) {
|
|
276
|
-
const itemID = this.memory.address.add(index);
|
|
277
|
-
yield {
|
|
278
|
-
node: React.createElement("span", { className: 'byte-group', key: itemID.toString(16) }, bytesInGroup),
|
|
279
|
-
ascii,
|
|
280
|
-
index,
|
|
281
|
-
variables,
|
|
282
|
-
isHighlighted: isGroupHighlighted,
|
|
283
|
-
};
|
|
284
|
-
bytesInGroup = [];
|
|
285
|
-
ascii = '';
|
|
286
|
-
variables = [];
|
|
287
|
-
isGroupHighlighted = false;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
buildGroupByEndianness(oldBytes, newByte) {
|
|
292
|
-
if (this.options.endianness === memory_widget_utils_1.Interfaces.Endianness.Big) {
|
|
293
|
-
oldBytes.push(newByte);
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
oldBytes.unshift(newByte);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
*renderBytes(iteratee = this.memory.bytes) {
|
|
300
|
-
const itemsPerByte = this.options.byteSize / 8;
|
|
301
|
-
let currentByte = 0;
|
|
302
|
-
let chunksInByte = [];
|
|
303
|
-
let variables = [];
|
|
304
|
-
let isByteHighlighted = false;
|
|
305
|
-
for (const { node, content, index, variable, isHighlighted = false } of this.renderArrayItems(iteratee)) {
|
|
306
|
-
chunksInByte.push(node);
|
|
307
|
-
const numericalValue = parseInt(content, 16);
|
|
308
|
-
currentByte = (currentByte << 8) + numericalValue;
|
|
309
|
-
isByteHighlighted = isByteHighlighted || isHighlighted;
|
|
310
|
-
if (variable === null || variable === void 0 ? void 0 : variable.firstAppearance) {
|
|
311
|
-
variables.push(variable);
|
|
312
|
-
}
|
|
313
|
-
if (chunksInByte.length === itemsPerByte || index === iteratee.length - 1) {
|
|
314
|
-
const itemID = this.memory.address.add(index);
|
|
315
|
-
const ascii = this.getASCIIForSingleByte(currentByte);
|
|
316
|
-
yield {
|
|
317
|
-
node: React.createElement("span", { className: 'single-byte', key: itemID.toString(16) }, chunksInByte),
|
|
318
|
-
ascii,
|
|
319
|
-
index,
|
|
320
|
-
variables,
|
|
321
|
-
isHighlighted: isByteHighlighted,
|
|
322
|
-
};
|
|
323
|
-
currentByte = 0;
|
|
324
|
-
chunksInByte = [];
|
|
325
|
-
variables = [];
|
|
326
|
-
isByteHighlighted = false;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
getASCIIForSingleByte(byte) {
|
|
331
|
-
return typeof byte === 'undefined'
|
|
332
|
-
? ' ' : memory_widget_utils_1.Utils.isPrintableAsAscii(byte) ? String.fromCharCode(byte) : '.';
|
|
333
|
-
}
|
|
334
|
-
*renderArrayItems(iteratee = this.memory.bytes, getBitAttributes = this.getBitAttributes.bind(this)) {
|
|
335
|
-
const { address } = this.memory;
|
|
336
|
-
for (let i = 0; i < iteratee.length; i += 1) {
|
|
337
|
-
const itemID = address.add(i).toString(16);
|
|
338
|
-
const { content = '', className, style, variable, title, isHighlighted } = getBitAttributes(i, iteratee);
|
|
339
|
-
const node = (React.createElement("span", { style: style, key: itemID, className: className, "data-id": itemID, title: title }, content));
|
|
340
|
-
yield {
|
|
341
|
-
node,
|
|
342
|
-
content,
|
|
343
|
-
index: i,
|
|
344
|
-
variable,
|
|
345
|
-
isHighlighted,
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
getBitAttributes(arrayOffset, iteratee) {
|
|
350
|
-
var _a;
|
|
351
|
-
const itemAddress = this.memory.address.add(arrayOffset * 8 / this.options.byteSize);
|
|
352
|
-
const classNames = [MemoryTable.EIGHT_BIT_SPAN_CLASS];
|
|
353
|
-
const isChanged = this.previousBytes && iteratee[arrayOffset] !== this.previousBytes[arrayOffset];
|
|
354
|
-
const variable = (_a = this.variableFinder) === null || _a === void 0 ? void 0 : _a.getVariableForAddress(itemAddress);
|
|
355
|
-
if (!this.options.isFrozen) {
|
|
356
|
-
if (isChanged) {
|
|
357
|
-
classNames.push('changed');
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
return {
|
|
361
|
-
className: classNames.join(' '),
|
|
362
|
-
variable,
|
|
363
|
-
style: { color: variable === null || variable === void 0 ? void 0 : variable.color },
|
|
364
|
-
content: iteratee[arrayOffset].toString(16).padStart(2, '0')
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
doHandleTableMouseMove(targetSpan) {
|
|
368
|
-
const target = targetSpan instanceof HTMLElement && targetSpan;
|
|
369
|
-
if (target) {
|
|
370
|
-
const { x, y } = target.getBoundingClientRect();
|
|
371
|
-
const anchor = { x: Math.round(x), y: Math.round(y + target.clientHeight) };
|
|
372
|
-
if (target.classList.contains(MemoryTable.EIGHT_BIT_SPAN_CLASS)) {
|
|
373
|
-
const properties = this.getHoverForChunk(target);
|
|
374
|
-
this.hoverRenderer.render(this.node, anchor, properties);
|
|
375
|
-
}
|
|
376
|
-
else if (target.classList.contains(MemoryTable.VARIABLE_LABEL_CLASS)) {
|
|
377
|
-
const properties = this.getHoverForVariable(target);
|
|
378
|
-
this.hoverRenderer.render(this.node, anchor, properties);
|
|
379
|
-
}
|
|
380
|
-
else {
|
|
381
|
-
this.hoverRenderer.hide();
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
else {
|
|
385
|
-
this.hoverRenderer.hide();
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
getHoverForChunk(span) {
|
|
389
|
-
var _a;
|
|
390
|
-
if (span.classList.contains(MemoryTable.EIGHT_BIT_SPAN_CLASS)) {
|
|
391
|
-
const parentByteContainer = span.parentElement;
|
|
392
|
-
if (parentByteContainer === null || parentByteContainer === void 0 ? void 0 : parentByteContainer.textContent) {
|
|
393
|
-
const hex = (_a = parentByteContainer.textContent) !== null && _a !== void 0 ? _a : '';
|
|
394
|
-
const decimal = parseInt(hex, 16);
|
|
395
|
-
const binary = this.getPaddedBinary(decimal);
|
|
396
|
-
const UTF8 = String.fromCodePoint(decimal);
|
|
397
|
-
return { hex, binary, decimal, UTF8 };
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
return undefined;
|
|
401
|
-
}
|
|
402
|
-
getPaddedBinary(decimal) {
|
|
403
|
-
const paddedBinary = decimal.toString(2).padStart(this.options.byteSize, '0');
|
|
404
|
-
let paddedAndSpacedBinary = '';
|
|
405
|
-
for (let i = 8; i <= paddedBinary.length; i += 8) {
|
|
406
|
-
paddedAndSpacedBinary += ` ${paddedBinary.slice(i - 8, i)}`;
|
|
407
|
-
}
|
|
408
|
-
return paddedAndSpacedBinary.trim();
|
|
409
|
-
}
|
|
410
|
-
getHoverForVariable(span) {
|
|
411
|
-
var _a, _b;
|
|
412
|
-
const variable = (_a = this.variableFinder) === null || _a === void 0 ? void 0 : _a.searchForVariable((_b = span.textContent) !== null && _b !== void 0 ? _b : '');
|
|
413
|
-
if (variable === null || variable === void 0 ? void 0 : variable.type) {
|
|
414
|
-
return { type: variable.type };
|
|
415
|
-
}
|
|
416
|
-
return undefined;
|
|
417
|
-
}
|
|
418
|
-
doHandleTableRightClick(event) {
|
|
419
|
-
var _a;
|
|
420
|
-
event.preventDefault();
|
|
421
|
-
const target = event.target;
|
|
422
|
-
if ((_a = target.classList) === null || _a === void 0 ? void 0 : _a.contains('eight-bits')) {
|
|
423
|
-
const { right, top } = target.getBoundingClientRect();
|
|
424
|
-
this.update();
|
|
425
|
-
event.stopPropagation();
|
|
426
|
-
this.contextMenuRenderer.render({
|
|
427
|
-
menuPath: MemoryTableWidget_1.CONTEXT_MENU,
|
|
428
|
-
anchor: { x: right, y: top },
|
|
429
|
-
args: this.getContextMenuArgs(event),
|
|
430
|
-
context: target
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
getContextMenuArgs(event) {
|
|
435
|
-
var _a;
|
|
436
|
-
const args = [this];
|
|
437
|
-
const id = event.target.getAttribute('data-id');
|
|
438
|
-
if (id) {
|
|
439
|
-
const location = (0, util_1.hexStrToUnsignedLong)(id);
|
|
440
|
-
args.push(location);
|
|
441
|
-
const offset = this.memory.address.multiply(-1).add(location);
|
|
442
|
-
const cellAddress = this.memory.address.add(offset.multiply(8 / this.options.byteSize));
|
|
443
|
-
const variableAtLocation = (_a = this.variableFinder) === null || _a === void 0 ? void 0 : _a.searchForVariable(cellAddress);
|
|
444
|
-
args.push(variableAtLocation);
|
|
445
|
-
}
|
|
446
|
-
return args;
|
|
447
|
-
}
|
|
448
|
-
};
|
|
449
|
-
exports.MemoryTableWidget = MemoryTableWidget;
|
|
450
|
-
MemoryTableWidget.CONTEXT_MENU = ['memory.view.context.menu'];
|
|
451
|
-
MemoryTableWidget.ID = 'memory-table-widget';
|
|
452
|
-
tslib_1.__decorate([
|
|
453
|
-
(0, inversify_1.inject)(theming_1.ThemeService),
|
|
454
|
-
tslib_1.__metadata("design:type", theming_1.ThemeService)
|
|
455
|
-
], MemoryTableWidget.prototype, "themeService", void 0);
|
|
456
|
-
tslib_1.__decorate([
|
|
457
|
-
(0, inversify_1.inject)(memory_options_widget_1.MemoryOptionsWidget),
|
|
458
|
-
tslib_1.__metadata("design:type", memory_options_widget_1.MemoryOptionsWidget)
|
|
459
|
-
], MemoryTableWidget.prototype, "optionsWidget", void 0);
|
|
460
|
-
tslib_1.__decorate([
|
|
461
|
-
(0, inversify_1.inject)(memory_provider_service_1.MemoryProviderService),
|
|
462
|
-
tslib_1.__metadata("design:type", memory_provider_service_1.MemoryProviderService)
|
|
463
|
-
], MemoryTableWidget.prototype, "memoryProvider", void 0);
|
|
464
|
-
tslib_1.__decorate([
|
|
465
|
-
(0, inversify_1.inject)(memory_hover_renderer_1.MemoryHoverRendererService),
|
|
466
|
-
tslib_1.__metadata("design:type", memory_hover_renderer_1.MemoryHoverRendererService)
|
|
467
|
-
], MemoryTableWidget.prototype, "hoverRenderer", void 0);
|
|
468
|
-
tslib_1.__decorate([
|
|
469
|
-
(0, inversify_1.inject)(browser_1.ContextMenuRenderer),
|
|
470
|
-
tslib_1.__metadata("design:type", browser_1.ContextMenuRenderer)
|
|
471
|
-
], MemoryTableWidget.prototype, "contextMenuRenderer", void 0);
|
|
472
|
-
tslib_1.__decorate([
|
|
473
|
-
(0, inversify_1.postConstruct)(),
|
|
474
|
-
tslib_1.__metadata("design:type", Function),
|
|
475
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
476
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
477
|
-
], MemoryTableWidget.prototype, "init", null);
|
|
478
|
-
exports.MemoryTableWidget = MemoryTableWidget = MemoryTableWidget_1 = tslib_1.__decorate([
|
|
479
|
-
(0, inversify_1.injectable)()
|
|
480
|
-
], MemoryTableWidget);
|
|
481
|
-
//# sourceMappingURL=memory-table-widget.js.map
|