@theia/scm 1.67.0-next.13 → 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 +6 -6
- package/lib/browser/decorations/scm-decorations-service.d.ts +0 -21
- package/lib/browser/decorations/scm-decorations-service.d.ts.map +0 -1
- package/lib/browser/decorations/scm-decorations-service.js +0 -134
- package/lib/browser/decorations/scm-decorations-service.js.map +0 -1
- package/lib/browser/decorations/scm-navigator-decorator.d.ts +0 -26
- package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +0 -1
- package/lib/browser/decorations/scm-navigator-decorator.js +0 -122
- package/lib/browser/decorations/scm-navigator-decorator.js.map +0 -1
- package/lib/browser/dirty-diff/content-lines.d.ts +0 -15
- package/lib/browser/dirty-diff/content-lines.d.ts.map +0 -1
- package/lib/browser/dirty-diff/content-lines.js +0 -114
- package/lib/browser/dirty-diff/content-lines.js.map +0 -1
- package/lib/browser/dirty-diff/content-lines.spec.d.ts +0 -2
- package/lib/browser/dirty-diff/content-lines.spec.d.ts.map +0 -1
- package/lib/browser/dirty-diff/content-lines.spec.js +0 -40
- package/lib/browser/dirty-diff/content-lines.spec.js.map +0 -1
- package/lib/browser/dirty-diff/diff-computer.d.ts +0 -39
- package/lib/browser/dirty-diff/diff-computer.d.ts.map +0 -1
- package/lib/browser/dirty-diff/diff-computer.js +0 -167
- package/lib/browser/dirty-diff/diff-computer.js.map +0 -1
- package/lib/browser/dirty-diff/diff-computer.spec.d.ts +0 -2
- package/lib/browser/dirty-diff/diff-computer.spec.d.ts.map +0 -1
- package/lib/browser/dirty-diff/diff-computer.spec.js +0 -384
- package/lib/browser/dirty-diff/diff-computer.spec.js.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +0 -17
- package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-decorator.js +0 -101
- package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-module.d.ts +0 -4
- package/lib/browser/dirty-diff/dirty-diff-module.d.ts.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-module.js +0 -34
- package/lib/browser/dirty-diff/dirty-diff-module.js.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts +0 -49
- package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-navigator.js +0 -295
- package/lib/browser/dirty-diff/dirty-diff-navigator.js.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-widget.d.ts +0 -50
- package/lib/browser/dirty-diff/dirty-diff-widget.d.ts.map +0 -1
- package/lib/browser/dirty-diff/dirty-diff-widget.js +0 -357
- package/lib/browser/dirty-diff/dirty-diff-widget.js.map +0 -1
- package/lib/browser/merge-editor/merge-editor-contribution.d.ts +0 -34
- package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +0 -1
- package/lib/browser/merge-editor/merge-editor-contribution.js +0 -335
- package/lib/browser/merge-editor/merge-editor-contribution.js.map +0 -1
- package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +0 -31
- package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +0 -1
- package/lib/browser/merge-editor/merge-editor-dev-contribution.js +0 -151
- package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +0 -1
- package/lib/browser/merge-editor/merge-editor-module.d.ts +0 -24
- package/lib/browser/merge-editor/merge-editor-module.d.ts.map +0 -1
- package/lib/browser/merge-editor/merge-editor-module.js +0 -109
- package/lib/browser/merge-editor/merge-editor-module.js.map +0 -1
- package/lib/browser/merge-editor/merge-editor.d.ts +0 -122
- package/lib/browser/merge-editor/merge-editor.d.ts.map +0 -1
- package/lib/browser/merge-editor/merge-editor.js +0 -560
- package/lib/browser/merge-editor/merge-editor.js.map +0 -1
- package/lib/browser/merge-editor/model/line-range.d.ts +0 -37
- package/lib/browser/merge-editor/model/line-range.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/line-range.js +0 -111
- package/lib/browser/merge-editor/model/line-range.js.map +0 -1
- package/lib/browser/merge-editor/model/live-diff.d.ts +0 -26
- package/lib/browser/merge-editor/model/live-diff.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/live-diff.js +0 -85
- package/lib/browser/merge-editor/model/live-diff.js.map +0 -1
- package/lib/browser/merge-editor/model/merge-editor-model.d.ts +0 -116
- package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/merge-editor-model.js +0 -507
- package/lib/browser/merge-editor/model/merge-editor-model.js.map +0 -1
- package/lib/browser/merge-editor/model/merge-range.d.ts +0 -50
- package/lib/browser/merge-editor/model/merge-range.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/merge-range.js +0 -215
- package/lib/browser/merge-editor/model/merge-range.js.map +0 -1
- package/lib/browser/merge-editor/model/range-editing.d.ts +0 -21
- package/lib/browser/merge-editor/model/range-editing.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/range-editing.js +0 -68
- package/lib/browser/merge-editor/model/range-editing.js.map +0 -1
- package/lib/browser/merge-editor/model/range-mapping.d.ts +0 -106
- package/lib/browser/merge-editor/model/range-mapping.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/range-mapping.js +0 -252
- package/lib/browser/merge-editor/model/range-mapping.js.map +0 -1
- package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +0 -2
- package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/range-mapping.spec.js +0 -48
- package/lib/browser/merge-editor/model/range-mapping.spec.js.map +0 -1
- package/lib/browser/merge-editor/model/range-utils.d.ts +0 -25
- package/lib/browser/merge-editor/model/range-utils.d.ts.map +0 -1
- package/lib/browser/merge-editor/model/range-utils.js +0 -118
- package/lib/browser/merge-editor/model/range-utils.js.map +0 -1
- package/lib/browser/merge-editor/view/diff-spacers.d.ts +0 -50
- package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/diff-spacers.js +0 -133
- package/lib/browser/merge-editor/view/diff-spacers.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +0 -6
- package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/index.js +0 -24
- package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +0 -12
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +0 -65
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +0 -30
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +0 -102
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +0 -49
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +0 -214
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +0 -16
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +0 -107
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +0 -27
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +0 -135
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +0 -20
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +0 -218
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +0 -57
- package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-editor-view-zones.js +0 -218
- package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +0 -1
- package/lib/browser/merge-editor/view/merge-range-actions.d.ts +0 -23
- package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +0 -1
- package/lib/browser/merge-editor/view/merge-range-actions.js +0 -142
- package/lib/browser/merge-editor/view/merge-range-actions.js.map +0 -1
- package/lib/browser/scm-amend-component.d.ts +0 -124
- package/lib/browser/scm-amend-component.d.ts.map +0 -1
- package/lib/browser/scm-amend-component.js +0 -464
- package/lib/browser/scm-amend-component.js.map +0 -1
- package/lib/browser/scm-amend-widget.d.ts +0 -21
- package/lib/browser/scm-amend-widget.d.ts.map +0 -1
- package/lib/browser/scm-amend-widget.js +0 -91
- package/lib/browser/scm-amend-widget.js.map +0 -1
- package/lib/browser/scm-avatar-service.d.ts +0 -4
- package/lib/browser/scm-avatar-service.d.ts.map +0 -1
- package/lib/browser/scm-avatar-service.js +0 -32
- package/lib/browser/scm-avatar-service.js.map +0 -1
- package/lib/browser/scm-colors.d.ts +0 -8
- package/lib/browser/scm-colors.d.ts.map +0 -1
- package/lib/browser/scm-colors.js +0 -27
- package/lib/browser/scm-colors.js.map +0 -1
- package/lib/browser/scm-commit-widget.d.ts +0 -53
- package/lib/browser/scm-commit-widget.d.ts.map +0 -1
- package/lib/browser/scm-commit-widget.js +0 -188
- package/lib/browser/scm-commit-widget.js.map +0 -1
- package/lib/browser/scm-context-key-service.d.ts +0 -13
- package/lib/browser/scm-context-key-service.d.ts.map +0 -1
- package/lib/browser/scm-context-key-service.js +0 -55
- package/lib/browser/scm-context-key-service.js.map +0 -1
- package/lib/browser/scm-contribution.d.ts +0 -98
- package/lib/browser/scm-contribution.d.ts.map +0 -1
- package/lib/browser/scm-contribution.js +0 -480
- package/lib/browser/scm-contribution.js.map +0 -1
- package/lib/browser/scm-frontend-module.d.ts +0 -7
- package/lib/browser/scm-frontend-module.d.ts.map +0 -1
- package/lib/browser/scm-frontend-module.js +0 -129
- package/lib/browser/scm-frontend-module.js.map +0 -1
- package/lib/browser/scm-groups-tree-model.d.ts +0 -15
- package/lib/browser/scm-groups-tree-model.d.ts.map +0 -1
- package/lib/browser/scm-groups-tree-model.js +0 -90
- package/lib/browser/scm-groups-tree-model.js.map +0 -1
- package/lib/browser/scm-input.d.ts +0 -54
- package/lib/browser/scm-input.d.ts.map +0 -1
- package/lib/browser/scm-input.js +0 -128
- package/lib/browser/scm-input.js.map +0 -1
- package/lib/browser/scm-layout-migrations.d.ts +0 -10
- package/lib/browser/scm-layout-migrations.d.ts.map +0 -1
- package/lib/browser/scm-layout-migrations.js +0 -75
- package/lib/browser/scm-layout-migrations.js.map +0 -1
- package/lib/browser/scm-no-repository-widget.d.ts +0 -9
- package/lib/browser/scm-no-repository-widget.d.ts.map +0 -1
- package/lib/browser/scm-no-repository-widget.js +0 -42
- package/lib/browser/scm-no-repository-widget.js.map +0 -1
- package/lib/browser/scm-provider.d.ts +0 -60
- package/lib/browser/scm-provider.d.ts.map +0 -1
- package/lib/browser/scm-provider.js +0 -20
- package/lib/browser/scm-provider.js.map +0 -1
- package/lib/browser/scm-quick-open-service.d.ts +0 -12
- package/lib/browser/scm-quick-open-service.d.ts.map +0 -1
- package/lib/browser/scm-quick-open-service.js +0 -66
- package/lib/browser/scm-quick-open-service.js.map +0 -1
- package/lib/browser/scm-repository.d.ts +0 -18
- package/lib/browser/scm-repository.d.ts.map +0 -1
- package/lib/browser/scm-repository.js +0 -42
- package/lib/browser/scm-repository.js.map +0 -1
- package/lib/browser/scm-service.d.ts +0 -27
- package/lib/browser/scm-service.d.ts.map +0 -1
- package/lib/browser/scm-service.js +0 -101
- package/lib/browser/scm-service.js.map +0 -1
- package/lib/browser/scm-tree-label-provider.d.ts +0 -8
- package/lib/browser/scm-tree-label-provider.d.ts.map +0 -1
- package/lib/browser/scm-tree-label-provider.js +0 -50
- package/lib/browser/scm-tree-label-provider.js.map +0 -1
- package/lib/browser/scm-tree-model.d.ts +0 -76
- package/lib/browser/scm-tree-model.d.ts.map +0 -1
- package/lib/browser/scm-tree-model.js +0 -349
- package/lib/browser/scm-tree-model.js.map +0 -1
- package/lib/browser/scm-tree-widget.d.ts +0 -206
- package/lib/browser/scm-tree-widget.d.ts.map +0 -1
- package/lib/browser/scm-tree-widget.js +0 -677
- package/lib/browser/scm-tree-widget.js.map +0 -1
- package/lib/browser/scm-widget.d.ts +0 -42
- package/lib/browser/scm-widget.d.ts.map +0 -1
- package/lib/browser/scm-widget.js +0 -220
- package/lib/browser/scm-widget.js.map +0 -1
- package/lib/common/scm-preferences.d.ts +0 -12
- package/lib/common/scm-preferences.d.ts.map +0 -1
- package/lib/common/scm-preferences.js +0 -51
- package/lib/common/scm-preferences.js.map +0 -1
- package/lib/node/scm-backend-module.d.ts +0 -4
- package/lib/node/scm-backend-module.d.ts.map +0 -1
- package/lib/node/scm-backend-module.js +0 -23
- package/lib/node/scm-backend-module.js.map +0 -1
|
@@ -1,464 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2019 Arm 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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.ScmAmendComponent = void 0;
|
|
19
|
-
require("../../src/browser/style/scm-amend-component.css");
|
|
20
|
-
const React = require("@theia/core/shared/react");
|
|
21
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
22
|
-
const core_1 = require("@theia/core");
|
|
23
|
-
const nls_1 = require("@theia/core/lib/common/nls");
|
|
24
|
-
const TRANSITION_TIME_MS = 300;
|
|
25
|
-
const REPOSITORY_STORAGE_KEY = 'scmRepository';
|
|
26
|
-
class ScmAmendComponent extends React.Component {
|
|
27
|
-
constructor(props) {
|
|
28
|
-
super(props);
|
|
29
|
-
/**
|
|
30
|
-
* a hint on how to animate an update, set by certain user action handlers
|
|
31
|
-
* and used when updating the view based on a repository change
|
|
32
|
-
*/
|
|
33
|
-
this.transitionHint = 'none';
|
|
34
|
-
this.lastCommitHeight = 0;
|
|
35
|
-
this.lastCommitScrollRef = (instance) => {
|
|
36
|
-
if (instance && this.lastCommitHeight === 0) {
|
|
37
|
-
this.lastCommitHeight = instance.getBoundingClientRect().height;
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
this.toDisposeOnUnmount = new core_1.DisposableCollection();
|
|
41
|
-
/**
|
|
42
|
-
* This function will update the 'model' (lastCommit, amendingCommits) only
|
|
43
|
-
* when the repository sees the last commit change.
|
|
44
|
-
* 'render' can be called at any time, so be sure we don't update any 'model'
|
|
45
|
-
* fields until we actually start the transition.
|
|
46
|
-
*/
|
|
47
|
-
this.amend = async () => {
|
|
48
|
-
if (this.state.transition.state !== 'none' && this.transitionHint !== 'none') {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
this.transitionHint = 'amend';
|
|
52
|
-
await this.resetAndSetMessage('HEAD~', 'HEAD');
|
|
53
|
-
};
|
|
54
|
-
this.unamend = async () => {
|
|
55
|
-
if (this.state.transition.state !== 'none' && this.transitionHint !== 'none') {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
const commitToRestore = (this.state.amendingCommits.length >= 1)
|
|
59
|
-
? this.state.amendingCommits[this.state.amendingCommits.length - 1]
|
|
60
|
-
: undefined;
|
|
61
|
-
const oldestAmendCommit = (this.state.amendingCommits.length >= 2)
|
|
62
|
-
? this.state.amendingCommits[this.state.amendingCommits.length - 2]
|
|
63
|
-
: undefined;
|
|
64
|
-
if (commitToRestore) {
|
|
65
|
-
const commitToUseForMessage = oldestAmendCommit
|
|
66
|
-
? oldestAmendCommit.commit.id
|
|
67
|
-
: undefined;
|
|
68
|
-
this.transitionHint = 'unamend';
|
|
69
|
-
await this.resetAndSetMessage(commitToRestore.commit.id, commitToUseForMessage);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
this.unamendAll = () => this.doUnamendAll();
|
|
73
|
-
this.clearAmending = () => this.doClearAmending();
|
|
74
|
-
this.state = {
|
|
75
|
-
transition: { state: 'none' },
|
|
76
|
-
amendingCommits: [],
|
|
77
|
-
lastCommit: undefined
|
|
78
|
-
};
|
|
79
|
-
const setState = this.setState.bind(this);
|
|
80
|
-
this.setState = newState => {
|
|
81
|
-
if (!this.toDisposeOnUnmount.disposed) {
|
|
82
|
-
setState(newState);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
async componentDidMount() {
|
|
87
|
-
this.toDisposeOnUnmount.push(core_1.Disposable.create(() => { }));
|
|
88
|
-
const lastCommit = await this.getLastCommit();
|
|
89
|
-
this.setState({ amendingCommits: await this.buildAmendingList(lastCommit ? lastCommit.commit : undefined), lastCommit });
|
|
90
|
-
if (this.toDisposeOnUnmount.disposed) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
this.toDisposeOnUnmount.push(this.props.repository.provider.onDidChange(() => this.fetchStatusAndSetState()));
|
|
94
|
-
}
|
|
95
|
-
componentWillUnmount() {
|
|
96
|
-
this.toDisposeOnUnmount.dispose();
|
|
97
|
-
}
|
|
98
|
-
async fetchStatusAndSetState() {
|
|
99
|
-
const storageKey = this.getStorageKey();
|
|
100
|
-
const nextCommit = await this.getLastCommit();
|
|
101
|
-
if (nextCommit && this.state.lastCommit && nextCommit.commit.id === this.state.lastCommit.commit.id) {
|
|
102
|
-
// No change here
|
|
103
|
-
}
|
|
104
|
-
else if (nextCommit === undefined && this.state.lastCommit === undefined) {
|
|
105
|
-
// No change here
|
|
106
|
-
}
|
|
107
|
-
else if (this.transitionHint === 'none') {
|
|
108
|
-
// If the 'last' commit changes, but we are not expecting an 'amend'
|
|
109
|
-
// or 'unamend' to occur, then we clear out the list of amended commits.
|
|
110
|
-
// This is because an unexpected change has happened to the repository,
|
|
111
|
-
// perhaps the user committed, merged, or something. The amended commits
|
|
112
|
-
// will no longer be valid.
|
|
113
|
-
// Note that there may or may not have been a previous lastCommit (if the
|
|
114
|
-
// repository was previously empty with no initial commit then lastCommit
|
|
115
|
-
// will be undefined). Either way we clear the amending commits.
|
|
116
|
-
await this.clearAmendingCommits();
|
|
117
|
-
// There is a change to the last commit, but no transition hint so
|
|
118
|
-
// the view just updates without transition.
|
|
119
|
-
this.setState({ amendingCommits: [], lastCommit: nextCommit });
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
const amendingCommits = this.state.amendingCommits.concat([]); // copy the array
|
|
123
|
-
const direction = this.transitionHint === 'amend' ? 'up' : 'down';
|
|
124
|
-
switch (this.transitionHint) {
|
|
125
|
-
case 'amend':
|
|
126
|
-
if (this.state.lastCommit) {
|
|
127
|
-
amendingCommits.push(this.state.lastCommit);
|
|
128
|
-
const serializedState = JSON.stringify({
|
|
129
|
-
amendingHeadCommitSha: amendingCommits[0].commit.id,
|
|
130
|
-
latestCommitSha: nextCommit ? nextCommit.commit.id : undefined
|
|
131
|
-
});
|
|
132
|
-
this.props.storageService.setData(storageKey, serializedState);
|
|
133
|
-
}
|
|
134
|
-
break;
|
|
135
|
-
case 'unamend':
|
|
136
|
-
amendingCommits.pop();
|
|
137
|
-
if (amendingCommits.length === 0) {
|
|
138
|
-
this.props.storageService.setData(storageKey, undefined);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
const serializedState = JSON.stringify({
|
|
142
|
-
amendingHeadCommitSha: amendingCommits[0].commit.id,
|
|
143
|
-
latestCommitSha: nextCommit ? nextCommit.commit.id : undefined
|
|
144
|
-
});
|
|
145
|
-
this.props.storageService.setData(storageKey, serializedState);
|
|
146
|
-
}
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
if (this.state.lastCommit && nextCommit) {
|
|
150
|
-
const transitionData = { direction, previousLastCommit: this.state.lastCommit };
|
|
151
|
-
this.setState({ lastCommit: nextCommit, amendingCommits, transition: { ...transitionData, state: 'start' } });
|
|
152
|
-
this.onNextFrame(() => {
|
|
153
|
-
this.setState({ transition: { ...transitionData, state: 'transitioning' } });
|
|
154
|
-
});
|
|
155
|
-
setTimeout(() => {
|
|
156
|
-
this.setState({ transition: { state: 'none' } });
|
|
157
|
-
}, TRANSITION_TIME_MS);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
// No previous last commit so no transition
|
|
161
|
-
this.setState({ transition: { state: 'none' }, amendingCommits, lastCommit: nextCommit });
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
this.transitionHint = 'none';
|
|
165
|
-
}
|
|
166
|
-
async clearAmendingCommits() {
|
|
167
|
-
const storageKey = this.getStorageKey();
|
|
168
|
-
await this.props.storageService.setData(storageKey, undefined);
|
|
169
|
-
}
|
|
170
|
-
async buildAmendingList(lastCommit) {
|
|
171
|
-
const storageKey = this.getStorageKey();
|
|
172
|
-
const storedState = await this.props.storageService.getData(storageKey, undefined);
|
|
173
|
-
// Restore list of commits from saved amending head commit up through parents until the
|
|
174
|
-
// current commit. (If we don't reach the current commit, the repository has been changed in such
|
|
175
|
-
// a way then unamending commits can no longer be done).
|
|
176
|
-
if (storedState) {
|
|
177
|
-
const { amendingHeadCommitSha, latestCommitSha } = JSON.parse(storedState);
|
|
178
|
-
if (!this.commitsAreEqual(lastCommit, latestCommitSha)) {
|
|
179
|
-
// The head commit in the repository has changed. It is not the same commit that was the
|
|
180
|
-
// head commit after the last 'amend'.
|
|
181
|
-
return [];
|
|
182
|
-
}
|
|
183
|
-
const commits = await this.props.scmAmendSupport.getInitialAmendingCommits(amendingHeadCommitSha, lastCommit ? lastCommit.id : undefined);
|
|
184
|
-
const amendingCommitPromises = commits.map(async (commit) => {
|
|
185
|
-
const avatar = await this.props.avatarService.getAvatar(commit.authorEmail);
|
|
186
|
-
return { commit, avatar };
|
|
187
|
-
});
|
|
188
|
-
return Promise.all(amendingCommitPromises);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
return [];
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
getStorageKey() {
|
|
195
|
-
return REPOSITORY_STORAGE_KEY + ':' + this.props.repository.provider.rootUri;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Commits are equal if the ids are equal or if both are undefined.
|
|
199
|
-
* (If a commit is undefined, it represents the initial empty state of a repository,
|
|
200
|
-
* before the initial commit).
|
|
201
|
-
*/
|
|
202
|
-
commitsAreEqual(lastCommit, savedLastCommitId) {
|
|
203
|
-
return lastCommit
|
|
204
|
-
? lastCommit.id === savedLastCommitId
|
|
205
|
-
: savedLastCommitId === undefined;
|
|
206
|
-
}
|
|
207
|
-
async resetAndSetMessage(commitToRestore, commitToUseForMessage) {
|
|
208
|
-
const message = commitToUseForMessage
|
|
209
|
-
? await this.props.scmAmendSupport.getMessage(commitToUseForMessage)
|
|
210
|
-
: '';
|
|
211
|
-
await this.props.scmAmendSupport.reset(commitToRestore);
|
|
212
|
-
this.props.setCommitMessage(message);
|
|
213
|
-
}
|
|
214
|
-
render() {
|
|
215
|
-
const neverShrink = this.state.amendingCommits.length <= 3;
|
|
216
|
-
const style = neverShrink
|
|
217
|
-
? {
|
|
218
|
-
...this.props.style,
|
|
219
|
-
flexShrink: 0,
|
|
220
|
-
}
|
|
221
|
-
: {
|
|
222
|
-
...this.props.style,
|
|
223
|
-
flexShrink: 1,
|
|
224
|
-
minHeight: 240 // height with three commits
|
|
225
|
-
};
|
|
226
|
-
return (React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_CONTAINER + ' no-select', style: style },
|
|
227
|
-
this.state.amendingCommits.length > 0 || (this.state.lastCommit && this.state.transition.state !== 'none' && this.state.transition.direction === 'down')
|
|
228
|
-
? this.renderAmendingCommits()
|
|
229
|
-
: '',
|
|
230
|
-
this.state.lastCommit ?
|
|
231
|
-
React.createElement("div", null,
|
|
232
|
-
React.createElement("div", { id: 'lastCommit', className: 'theia-scm-amend' },
|
|
233
|
-
React.createElement("div", { className: 'theia-header scm-theia-header' }, nls_1.nls.localize('theia/scm/amendHeadCommit', 'HEAD Commit')),
|
|
234
|
-
this.renderLastCommit()))
|
|
235
|
-
: ''));
|
|
236
|
-
}
|
|
237
|
-
async getLastCommit() {
|
|
238
|
-
const commit = await this.props.scmAmendSupport.getLastCommit();
|
|
239
|
-
if (commit) {
|
|
240
|
-
const avatar = await this.props.avatarService.getAvatar(commit.authorEmail);
|
|
241
|
-
return { commit, avatar };
|
|
242
|
-
}
|
|
243
|
-
return undefined;
|
|
244
|
-
}
|
|
245
|
-
renderAmendingCommits() {
|
|
246
|
-
const neverShrink = this.state.amendingCommits.length <= 3;
|
|
247
|
-
const style = neverShrink
|
|
248
|
-
? {
|
|
249
|
-
flexShrink: 0,
|
|
250
|
-
}
|
|
251
|
-
: {
|
|
252
|
-
flexShrink: 1,
|
|
253
|
-
// parent minHeight controls height, we just need any value smaller than
|
|
254
|
-
// what the height would be when the parent is at its minHeight
|
|
255
|
-
minHeight: 0
|
|
256
|
-
};
|
|
257
|
-
return React.createElement("div", { id: 'amendedCommits', className: 'theia-scm-amend-outer-container', style: style },
|
|
258
|
-
React.createElement("div", { className: 'theia-header scm-theia-header' },
|
|
259
|
-
React.createElement("div", { className: 'noWrapInfo' }, "Commits being Amended"),
|
|
260
|
-
this.renderAmendCommitListButtons(),
|
|
261
|
-
this.renderCommitCount(this.state.amendingCommits.length)),
|
|
262
|
-
React.createElement("div", { style: this.styleAmendedCommits() },
|
|
263
|
-
this.state.amendingCommits.map((commitData, index, array) => this.renderCommitBeingAmended(commitData, index === array.length - 1)),
|
|
264
|
-
this.state.lastCommit && this.state.transition.state !== 'none' && this.state.transition.direction === 'down'
|
|
265
|
-
? this.renderCommitBeingAmended(this.state.lastCommit, false)
|
|
266
|
-
: ''));
|
|
267
|
-
}
|
|
268
|
-
renderAmendCommitListButtons() {
|
|
269
|
-
return React.createElement("div", { className: 'theia-scm-inline-actions-container' },
|
|
270
|
-
React.createElement("div", { className: 'theia-scm-inline-actions' },
|
|
271
|
-
React.createElement("div", { className: 'theia-scm-inline-action' },
|
|
272
|
-
React.createElement("a", { className: (0, browser_1.codicon)('dash'), title: 'Unamend All Commits', onClick: this.unamendAll })),
|
|
273
|
-
React.createElement("div", { className: 'theia-scm-inline-action' },
|
|
274
|
-
React.createElement("a", { className: (0, browser_1.codicon)('close'), title: 'Clear Amending Commits', onClick: this.clearAmending }))));
|
|
275
|
-
}
|
|
276
|
-
renderLastCommit() {
|
|
277
|
-
if (!this.state.lastCommit) {
|
|
278
|
-
return '';
|
|
279
|
-
}
|
|
280
|
-
const canAmend = true;
|
|
281
|
-
return React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_AND_BUTTON, style: { flexGrow: 0, flexShrink: 0 }, key: this.state.lastCommit.commit.id },
|
|
282
|
-
this.renderLastCommitNoButton(this.state.lastCommit),
|
|
283
|
-
canAmend
|
|
284
|
-
? React.createElement("div", { className: ScmAmendComponent.Styles.FLEX_CENTER },
|
|
285
|
-
React.createElement("button", { className: 'theia-button', title: nls_1.nls.localize('theia/scm/amendLastCommit', 'Amend last commit'), onClick: this.amend }, nls_1.nls.localize('theia/scm/amend', 'Amend')))
|
|
286
|
-
: '');
|
|
287
|
-
}
|
|
288
|
-
renderLastCommitNoButton(lastCommit) {
|
|
289
|
-
switch (this.state.transition.state) {
|
|
290
|
-
case 'none':
|
|
291
|
-
return React.createElement("div", { ref: this.lastCommitScrollRef, className: 'theia-scm-scrolling-container' }, this.renderCommitAvatarAndDetail(lastCommit));
|
|
292
|
-
case 'start':
|
|
293
|
-
case 'transitioning':
|
|
294
|
-
switch (this.state.transition.direction) {
|
|
295
|
-
case 'up':
|
|
296
|
-
return React.createElement("div", { style: this.styleLastCommitMovingUp(this.state.transition.state) },
|
|
297
|
-
this.renderCommitAvatarAndDetail(this.state.transition.previousLastCommit),
|
|
298
|
-
this.renderCommitAvatarAndDetail(lastCommit));
|
|
299
|
-
case 'down':
|
|
300
|
-
return React.createElement("div", { style: this.styleLastCommitMovingDown(this.state.transition.state) },
|
|
301
|
-
this.renderCommitAvatarAndDetail(lastCommit),
|
|
302
|
-
this.renderCommitAvatarAndDetail(this.state.transition.previousLastCommit));
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* See https://stackoverflow.com/questions/26556436/react-after-render-code
|
|
308
|
-
*
|
|
309
|
-
* @param callback
|
|
310
|
-
*/
|
|
311
|
-
onNextFrame(callback) {
|
|
312
|
-
setTimeout(() => window.requestAnimationFrame(callback), 0);
|
|
313
|
-
}
|
|
314
|
-
renderCommitAvatarAndDetail(commitData) {
|
|
315
|
-
const { commit, avatar } = commitData;
|
|
316
|
-
return React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_AVATAR_AND_TEXT, key: commit.id },
|
|
317
|
-
React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_MESSAGE_AVATAR },
|
|
318
|
-
React.createElement("img", { src: avatar })),
|
|
319
|
-
React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_DETAILS },
|
|
320
|
-
React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_MESSAGE_SUMMARY }, commit.summary),
|
|
321
|
-
React.createElement("div", { className: ScmAmendComponent.Styles.LAST_COMMIT_MESSAGE_TIME }, `${commit.authorDateRelative} by ${commit.authorName}`)));
|
|
322
|
-
}
|
|
323
|
-
renderCommitCount(commits) {
|
|
324
|
-
return React.createElement("div", { className: 'notification-count-container scm-change-count' },
|
|
325
|
-
React.createElement("span", { className: 'notification-count' }, commits));
|
|
326
|
-
}
|
|
327
|
-
renderCommitBeingAmended(commitData, isOldestAmendCommit) {
|
|
328
|
-
if (isOldestAmendCommit && this.state.transition.state !== 'none' && this.state.transition.direction === 'up') {
|
|
329
|
-
return React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_AVATAR_AND_TEXT, style: { flexGrow: 0, flexShrink: 0 }, key: commitData.commit.id },
|
|
330
|
-
React.createElement("div", { className: 'fixed-height-commit-container' }, this.renderCommitAvatarAndDetail(commitData)));
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
return React.createElement("div", { className: ScmAmendComponent.Styles.COMMIT_AVATAR_AND_TEXT, style: { flexGrow: 0, flexShrink: 0 }, key: commitData.commit.id },
|
|
334
|
-
this.renderCommitAvatarAndDetail(commitData),
|
|
335
|
-
isOldestAmendCommit
|
|
336
|
-
? React.createElement("div", { className: ScmAmendComponent.Styles.FLEX_CENTER },
|
|
337
|
-
React.createElement("button", { className: 'theia-button', title: nls_1.nls.localize('theia/scm/unamendCommit', 'Unamend commit'), onClick: this.unamend }, nls_1.nls.localize('theia/scm/unamend', 'Unamend')))
|
|
338
|
-
: '');
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
/*
|
|
342
|
-
* The style for the <div> containing the list of commits being amended.
|
|
343
|
-
* This div is scrollable.
|
|
344
|
-
*/
|
|
345
|
-
styleAmendedCommits() {
|
|
346
|
-
const base = {
|
|
347
|
-
display: 'flex',
|
|
348
|
-
whitespace: 'nowrap',
|
|
349
|
-
width: '100%',
|
|
350
|
-
minHeight: 0,
|
|
351
|
-
flexShrink: 1,
|
|
352
|
-
paddingTop: '2px',
|
|
353
|
-
};
|
|
354
|
-
switch (this.state.transition.state) {
|
|
355
|
-
case 'none':
|
|
356
|
-
return {
|
|
357
|
-
...base,
|
|
358
|
-
flexDirection: 'column',
|
|
359
|
-
overflowY: 'auto',
|
|
360
|
-
marginBottom: '0',
|
|
361
|
-
};
|
|
362
|
-
case 'start':
|
|
363
|
-
case 'transitioning':
|
|
364
|
-
let startingMargin = 0;
|
|
365
|
-
let endingMargin = 0;
|
|
366
|
-
switch (this.state.transition.direction) {
|
|
367
|
-
case 'down':
|
|
368
|
-
startingMargin = 0;
|
|
369
|
-
endingMargin = -32;
|
|
370
|
-
break;
|
|
371
|
-
case 'up':
|
|
372
|
-
startingMargin = -32;
|
|
373
|
-
endingMargin = 0;
|
|
374
|
-
break;
|
|
375
|
-
}
|
|
376
|
-
switch (this.state.transition.state) {
|
|
377
|
-
case 'start':
|
|
378
|
-
return {
|
|
379
|
-
...base,
|
|
380
|
-
flexDirection: 'column',
|
|
381
|
-
overflowY: 'hidden',
|
|
382
|
-
marginBottom: `${startingMargin}px`,
|
|
383
|
-
};
|
|
384
|
-
case 'transitioning':
|
|
385
|
-
return {
|
|
386
|
-
...base,
|
|
387
|
-
flexDirection: 'column',
|
|
388
|
-
overflowY: 'hidden',
|
|
389
|
-
marginBottom: `${endingMargin}px`,
|
|
390
|
-
transitionProperty: 'margin-bottom',
|
|
391
|
-
transitionDuration: `${TRANSITION_TIME_MS}ms`,
|
|
392
|
-
transitionTimingFunction: 'linear'
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
styleLastCommitMovingUp(transitionState) {
|
|
398
|
-
return this.styleLastCommit(transitionState, 0, -28);
|
|
399
|
-
}
|
|
400
|
-
styleLastCommitMovingDown(transitionState) {
|
|
401
|
-
return this.styleLastCommit(transitionState, -28, 0);
|
|
402
|
-
}
|
|
403
|
-
styleLastCommit(transitionState, startingMarginTop, startingMarginBottom) {
|
|
404
|
-
const base = {
|
|
405
|
-
display: 'flex',
|
|
406
|
-
width: '100%',
|
|
407
|
-
overflow: 'hidden',
|
|
408
|
-
paddingTop: 0,
|
|
409
|
-
paddingBottom: 0,
|
|
410
|
-
borderTop: 0,
|
|
411
|
-
borderBottom: 0,
|
|
412
|
-
height: this.lastCommitHeight * 2
|
|
413
|
-
};
|
|
414
|
-
// We end with top and bottom margins switched
|
|
415
|
-
const endingMarginTop = startingMarginBottom;
|
|
416
|
-
const endingMarginBottom = startingMarginTop;
|
|
417
|
-
switch (transitionState) {
|
|
418
|
-
case 'start':
|
|
419
|
-
return {
|
|
420
|
-
...base,
|
|
421
|
-
position: 'relative',
|
|
422
|
-
flexDirection: 'column',
|
|
423
|
-
marginTop: startingMarginTop,
|
|
424
|
-
marginBottom: startingMarginBottom,
|
|
425
|
-
};
|
|
426
|
-
case 'transitioning':
|
|
427
|
-
return {
|
|
428
|
-
...base,
|
|
429
|
-
position: 'relative',
|
|
430
|
-
flexDirection: 'column',
|
|
431
|
-
marginTop: endingMarginTop,
|
|
432
|
-
marginBottom: endingMarginBottom,
|
|
433
|
-
transitionProperty: 'margin-top margin-bottom',
|
|
434
|
-
transitionDuration: `${TRANSITION_TIME_MS}ms`,
|
|
435
|
-
transitionTimingFunction: 'linear'
|
|
436
|
-
};
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
async doUnamendAll() {
|
|
440
|
-
while (this.state.amendingCommits.length > 0) {
|
|
441
|
-
this.unamend();
|
|
442
|
-
await new Promise(resolve => setTimeout(resolve, TRANSITION_TIME_MS));
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
async doClearAmending() {
|
|
446
|
-
await this.clearAmendingCommits();
|
|
447
|
-
this.setState({ amendingCommits: [] });
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
exports.ScmAmendComponent = ScmAmendComponent;
|
|
451
|
-
(function (ScmAmendComponent) {
|
|
452
|
-
let Styles;
|
|
453
|
-
(function (Styles) {
|
|
454
|
-
Styles.COMMIT_CONTAINER = 'theia-scm-commit-container';
|
|
455
|
-
Styles.COMMIT_AND_BUTTON = 'theia-scm-commit-and-button';
|
|
456
|
-
Styles.COMMIT_AVATAR_AND_TEXT = 'theia-scm-commit-avatar-and-text';
|
|
457
|
-
Styles.COMMIT_DETAILS = 'theia-scm-commit-details';
|
|
458
|
-
Styles.COMMIT_MESSAGE_AVATAR = 'theia-scm-commit-message-avatar';
|
|
459
|
-
Styles.COMMIT_MESSAGE_SUMMARY = 'theia-scm-commit-message-summary';
|
|
460
|
-
Styles.LAST_COMMIT_MESSAGE_TIME = 'theia-scm-commit-message-time';
|
|
461
|
-
Styles.FLEX_CENTER = 'theia-scm-flex-container-center';
|
|
462
|
-
})(Styles = ScmAmendComponent.Styles || (ScmAmendComponent.Styles = {}));
|
|
463
|
-
})(ScmAmendComponent || (exports.ScmAmendComponent = ScmAmendComponent = {}));
|
|
464
|
-
//# sourceMappingURL=scm-amend-component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scm-amend-component.js","sourceRoot":"","sources":["../../src/browser/scm-amend-component.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { SelectionService } from '@theia/core/lib/common';
|
|
3
|
-
import * as React from '@theia/core/shared/react';
|
|
4
|
-
import { ContextMenuRenderer, ReactWidget, LabelProvider, KeybindingRegistry, StorageService } from '@theia/core/lib/browser';
|
|
5
|
-
import { ScmService } from './scm-service';
|
|
6
|
-
import { ScmAvatarService } from './scm-avatar-service';
|
|
7
|
-
export declare class ScmAmendWidget extends ReactWidget {
|
|
8
|
-
protected readonly contextMenuRenderer: ContextMenuRenderer;
|
|
9
|
-
static ID: string;
|
|
10
|
-
protected readonly scmService: ScmService;
|
|
11
|
-
protected readonly avatarService: ScmAvatarService;
|
|
12
|
-
protected readonly storageService: StorageService;
|
|
13
|
-
protected readonly selectionService: SelectionService;
|
|
14
|
-
protected readonly labelProvider: LabelProvider;
|
|
15
|
-
protected readonly keybindings: KeybindingRegistry;
|
|
16
|
-
protected shouldScrollToRow: boolean;
|
|
17
|
-
constructor(contextMenuRenderer: ContextMenuRenderer);
|
|
18
|
-
protected render(): React.ReactNode;
|
|
19
|
-
protected setInputValue: (event: React.FormEvent<HTMLTextAreaElement> | React.ChangeEvent<HTMLTextAreaElement> | string) => void;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=scm-amend-widget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scm-amend-widget.d.ts","sourceRoot":"","sources":["../../src/browser/scm-amend-widget.tsx"],"names":[],"mappings":";AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EACH,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EACtF,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,qBACa,cAAe,SAAQ,WAAW;IAcV,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB;IAZ5F,MAAM,CAAC,EAAE,SAAsB;IAEX,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACrD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAE/E,SAAS,CAAC,iBAAiB,UAAQ;gBAGiB,mBAAmB,EAAE,mBAAmB;IAU5F,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;IAkBnC,SAAS,CAAC,aAAa,UAAW,MAAM,SAAS,CAAC,mBAAmB,CAAC,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,GAAG,MAAM,UAKtH;CAEL"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2020 Arm 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 ScmAmendWidget_1;
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.ScmAmendWidget = void 0;
|
|
20
|
-
const tslib_1 = require("tslib");
|
|
21
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
-
const common_1 = require("@theia/core/lib/common");
|
|
23
|
-
const React = require("@theia/core/shared/react");
|
|
24
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
25
|
-
const scm_service_1 = require("./scm-service");
|
|
26
|
-
const scm_avatar_service_1 = require("./scm-avatar-service");
|
|
27
|
-
const scm_amend_component_1 = require("./scm-amend-component");
|
|
28
|
-
let ScmAmendWidget = ScmAmendWidget_1 = class ScmAmendWidget extends browser_1.ReactWidget {
|
|
29
|
-
constructor(contextMenuRenderer) {
|
|
30
|
-
super();
|
|
31
|
-
this.contextMenuRenderer = contextMenuRenderer;
|
|
32
|
-
this.shouldScrollToRow = true;
|
|
33
|
-
this.setInputValue = (event) => {
|
|
34
|
-
const repository = this.scmService.selectedRepository;
|
|
35
|
-
if (repository) {
|
|
36
|
-
repository.input.value = typeof event === 'string' ? event : event.currentTarget.value;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
this.scrollOptions = {
|
|
40
|
-
suppressScrollX: true,
|
|
41
|
-
minScrollbarLength: 35
|
|
42
|
-
};
|
|
43
|
-
this.id = ScmAmendWidget_1.ID;
|
|
44
|
-
}
|
|
45
|
-
render() {
|
|
46
|
-
const repository = this.scmService.selectedRepository;
|
|
47
|
-
if (repository && repository.provider.amendSupport) {
|
|
48
|
-
return React.createElement(scm_amend_component_1.ScmAmendComponent, {
|
|
49
|
-
key: `amend:${repository.provider.rootUri}`,
|
|
50
|
-
style: { flexGrow: 0 },
|
|
51
|
-
repository: repository,
|
|
52
|
-
scmAmendSupport: repository.provider.amendSupport,
|
|
53
|
-
setCommitMessage: this.setInputValue,
|
|
54
|
-
avatarService: this.avatarService,
|
|
55
|
-
storageService: this.storageService,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
exports.ScmAmendWidget = ScmAmendWidget;
|
|
61
|
-
ScmAmendWidget.ID = 'scm-amend-widget';
|
|
62
|
-
tslib_1.__decorate([
|
|
63
|
-
(0, inversify_1.inject)(scm_service_1.ScmService),
|
|
64
|
-
tslib_1.__metadata("design:type", scm_service_1.ScmService)
|
|
65
|
-
], ScmAmendWidget.prototype, "scmService", void 0);
|
|
66
|
-
tslib_1.__decorate([
|
|
67
|
-
(0, inversify_1.inject)(scm_avatar_service_1.ScmAvatarService),
|
|
68
|
-
tslib_1.__metadata("design:type", scm_avatar_service_1.ScmAvatarService)
|
|
69
|
-
], ScmAmendWidget.prototype, "avatarService", void 0);
|
|
70
|
-
tslib_1.__decorate([
|
|
71
|
-
(0, inversify_1.inject)(browser_1.StorageService),
|
|
72
|
-
tslib_1.__metadata("design:type", Object)
|
|
73
|
-
], ScmAmendWidget.prototype, "storageService", void 0);
|
|
74
|
-
tslib_1.__decorate([
|
|
75
|
-
(0, inversify_1.inject)(common_1.SelectionService),
|
|
76
|
-
tslib_1.__metadata("design:type", common_1.SelectionService)
|
|
77
|
-
], ScmAmendWidget.prototype, "selectionService", void 0);
|
|
78
|
-
tslib_1.__decorate([
|
|
79
|
-
(0, inversify_1.inject)(browser_1.LabelProvider),
|
|
80
|
-
tslib_1.__metadata("design:type", browser_1.LabelProvider)
|
|
81
|
-
], ScmAmendWidget.prototype, "labelProvider", void 0);
|
|
82
|
-
tslib_1.__decorate([
|
|
83
|
-
(0, inversify_1.inject)(browser_1.KeybindingRegistry),
|
|
84
|
-
tslib_1.__metadata("design:type", browser_1.KeybindingRegistry)
|
|
85
|
-
], ScmAmendWidget.prototype, "keybindings", void 0);
|
|
86
|
-
exports.ScmAmendWidget = ScmAmendWidget = ScmAmendWidget_1 = tslib_1.__decorate([
|
|
87
|
-
(0, inversify_1.injectable)(),
|
|
88
|
-
tslib_1.__param(0, (0, inversify_1.inject)(browser_1.ContextMenuRenderer)),
|
|
89
|
-
tslib_1.__metadata("design:paramtypes", [browser_1.ContextMenuRenderer])
|
|
90
|
-
], ScmAmendWidget);
|
|
91
|
-
//# sourceMappingURL=scm-amend-widget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scm-amend-widget.js","sourceRoot":"","sources":["../../src/browser/scm-amend-widget.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,qCAAqC;AACrC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;AAEhF,4DAAkE;AAClE,mDAA0D;AAC1D,kDAAkD;AAClD,qDAEiC;AACjC,+CAA2C;AAC3C,6DAAwD;AACxD,+DAA0D;AAGnD,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,qBAAW;IAa3C,YACiC,mBAA2D;QAExF,KAAK,EAAE,CAAC;QAFwC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAHlF,sBAAiB,GAAG,IAAI,CAAC;QA+BzB,kBAAa,GAAG,CAAC,KAA6F,EAAE,EAAE;YACxH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;YACtD,IAAI,UAAU,EAAE,CAAC;gBACb,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3F,CAAC;QACL,CAAC,CAAC;QA9BE,IAAI,CAAC,aAAa,GAAG;YACjB,eAAe,EAAE,IAAI;YACrB,kBAAkB,EAAE,EAAE;SACzB,CAAC;QACF,IAAI,CAAC,EAAE,GAAG,gBAAc,CAAC,EAAE,CAAC;IAChC,CAAC;IAES,MAAM;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACtD,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,aAAa,CACtB,uCAAiB,EACjB;gBACI,GAAG,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC3C,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACtB,UAAU,EAAE,UAAU;gBACtB,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY;gBACjD,gBAAgB,EAAE,IAAI,CAAC,aAAa;gBACpC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;aACtC,CACJ,CAAC;QACN,CAAC;IACL,CAAC;;AAxCQ,wCAAc;AAEhB,iBAAE,GAAG,kBAAkB,AAArB,CAAsB;AAEQ;IAAtC,IAAA,kBAAM,EAAC,wBAAU,CAAC;sCAAgC,wBAAU;kDAAC;AACjB;IAA5C,IAAA,kBAAM,EAAC,qCAAgB,CAAC;sCAAmC,qCAAgB;qDAAC;AAClC;IAA1C,IAAA,kBAAM,EAAC,wBAAc,CAAC;;sDAAmD;AAC7B;IAA5C,IAAA,kBAAM,EAAC,yBAAgB,CAAC;sCAAsC,yBAAgB;wDAAC;AACtC;IAAzC,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCAAmC,uBAAa;qDAAC;AACxB;IAA9C,IAAA,kBAAM,EAAC,4BAAkB,CAAC;sCAAiC,4BAAkB;mDAAC;yBATtE,cAAc;IAD1B,IAAA,sBAAU,GAAE;IAeJ,mBAAA,IAAA,kBAAM,EAAC,6BAAmB,CAAC,CAAA;6CAAyC,6BAAmB;GAdnF,cAAc,CAiD1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scm-avatar-service.d.ts","sourceRoot":"","sources":["../../src/browser/scm-avatar-service.ts"],"names":[],"mappings":"AAmBA,qBACa,gBAAgB;IAEnB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAIlD"}
|