@electerm/electerm-react 1.34.38 → 1.34.42
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/client/components/common/animate-text.styl +38 -53
- package/client/components/setting-panel/setting.jsx +2 -24
- package/client/components/sftp/sftp-entry.jsx +1 -1
- package/client/components/sidebar/sidebar.styl +23 -37
- package/client/components/terminal/index.jsx +16 -9
- package/client/components/terminal-info/base.jsx +4 -1
- package/package.json +1 -1
|
@@ -1,54 +1,39 @@
|
|
|
1
|
+
// animate.css -http://daneden.me/animate
|
|
2
|
+
// Version - 3.5.2
|
|
3
|
+
// Licensed under the MIT license - http://opensource.org/licenses/MIT
|
|
4
|
+
// Copyright (c) 2017 Daniel Eden
|
|
1
5
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
60% {
|
|
38
|
-
opacity: 1;
|
|
39
|
-
transform: scale3d(1.03, 1.03, 1.03);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
80% {
|
|
43
|
-
transform: scale3d(.97, .97, .97);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
to {
|
|
47
|
-
opacity: 1;
|
|
48
|
-
transform: scale3d(1, 1, 1);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.bounceIn {
|
|
53
|
-
animation-name: bounceIn;
|
|
54
|
-
}
|
|
6
|
+
.animated
|
|
7
|
+
animation-duration 1s
|
|
8
|
+
animation-fill-mode both
|
|
9
|
+
|
|
10
|
+
.animated.bounceIn
|
|
11
|
+
animation-duration .45s
|
|
12
|
+
|
|
13
|
+
@keyframes bounceIn
|
|
14
|
+
from, 20%, 40%, 60%, 80%, to
|
|
15
|
+
animation-timing-function cubic-bezier(0.215, 0.610, 0.355, 1.000)
|
|
16
|
+
|
|
17
|
+
0%
|
|
18
|
+
opacity 0
|
|
19
|
+
transform scale3d(.3, .3, .3)
|
|
20
|
+
|
|
21
|
+
20%
|
|
22
|
+
transform scale3d(1.1, 1.1, 1.1)
|
|
23
|
+
|
|
24
|
+
40%
|
|
25
|
+
transform scale3d(.9, .9, .9)
|
|
26
|
+
|
|
27
|
+
60%
|
|
28
|
+
opacity 1
|
|
29
|
+
transform scale3d(1.03, 1.03, 1.03)
|
|
30
|
+
|
|
31
|
+
80%
|
|
32
|
+
transform scale3d(.97, .97, .97)
|
|
33
|
+
|
|
34
|
+
to
|
|
35
|
+
opacity 1
|
|
36
|
+
transform scale3d(1, 1, 1)
|
|
37
|
+
|
|
38
|
+
.bounceIn
|
|
39
|
+
animation-name bounceIn
|
|
@@ -19,8 +19,7 @@ import {
|
|
|
19
19
|
noTerminalBgValue,
|
|
20
20
|
settingMap,
|
|
21
21
|
rendererTypes,
|
|
22
|
-
proxyHelpLink
|
|
23
|
-
isWin
|
|
22
|
+
proxyHelpLink
|
|
24
23
|
} from '../../common/constants'
|
|
25
24
|
import defaultSettings from '../../common/default-setting'
|
|
26
25
|
import ShowItem from '../common/show-item'
|
|
@@ -618,24 +617,6 @@ export default class Setting extends Component {
|
|
|
618
617
|
}
|
|
619
618
|
}
|
|
620
619
|
|
|
621
|
-
renderMakePortable () {
|
|
622
|
-
const {
|
|
623
|
-
isPortable
|
|
624
|
-
} = this.props.store
|
|
625
|
-
if (!isWin || isPortable) {
|
|
626
|
-
return null
|
|
627
|
-
}
|
|
628
|
-
return (
|
|
629
|
-
<div className='pd1y'>
|
|
630
|
-
<Button
|
|
631
|
-
onClick={this.handlePortable}
|
|
632
|
-
>
|
|
633
|
-
{e('makeItPortable')}
|
|
634
|
-
</Button>
|
|
635
|
-
</div>
|
|
636
|
-
)
|
|
637
|
-
}
|
|
638
|
-
|
|
639
620
|
render () {
|
|
640
621
|
const { ready } = this.state
|
|
641
622
|
if (!ready) {
|
|
@@ -655,7 +636,7 @@ export default class Setting extends Component {
|
|
|
655
636
|
appPath,
|
|
656
637
|
langs
|
|
657
638
|
} = this.props.store
|
|
658
|
-
const terminalLogPath = osResolve(appPath, 'electerm', 'session_logs')
|
|
639
|
+
const terminalLogPath = appPath ? osResolve(appPath, 'electerm', 'session_logs') : window.et.sessionLogPath
|
|
659
640
|
const terminalThemes = this.props.store.getSidebarList(settingMap.terminalThemes)
|
|
660
641
|
const [modifier, key] = hotkey.split('+')
|
|
661
642
|
const pops = {
|
|
@@ -848,9 +829,6 @@ export default class Setting extends Component {
|
|
|
848
829
|
{this.renderToggle('saveTerminalLogToFile', (
|
|
849
830
|
<ShowItem to={terminalLogPath} className='mg1l'>{p('open')}</ShowItem>
|
|
850
831
|
))}
|
|
851
|
-
{
|
|
852
|
-
this.renderMakePortable()
|
|
853
|
-
}
|
|
854
832
|
{this.renderReset()}
|
|
855
833
|
</div>
|
|
856
834
|
)
|
|
@@ -137,7 +137,7 @@ export default class Sftp extends Component {
|
|
|
137
137
|
[`${k}FileTree`]: {},
|
|
138
138
|
[`${k}Loading`]: false,
|
|
139
139
|
[`${k}InputFocus`]: false,
|
|
140
|
-
[`${k}ShowHiddenFile`]:
|
|
140
|
+
[`${k}ShowHiddenFile`]: true,
|
|
141
141
|
[`${k}Path`]: '',
|
|
142
142
|
[`${k}PathTemp`]: '',
|
|
143
143
|
[`${k}PathHistory`]: [],
|
|
@@ -71,43 +71,29 @@
|
|
|
71
71
|
// color #aaa
|
|
72
72
|
// border-color #555
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
// Hover.css (http://ianlunn.github.io/Hover/)
|
|
75
|
+
// Version: 2.3.2
|
|
76
|
+
// Author: Ian Lunn @IanLunn
|
|
77
|
+
// Author URL: http://ianlunn.co.uk/
|
|
78
|
+
// Github: https://github.com/IanLunn/Hover
|
|
79
|
+
// Hover.css Copyright Ian Lunn 2017. Generated with Sass.
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
transform
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
100%
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
@-webkit-keyframes hvr-bob-float {
|
|
99
|
-
100% {
|
|
100
|
-
-webkit-transform: translateY(-8px);
|
|
101
|
-
transform: translateY(-8px);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
@keyframes hvr-bob-float {
|
|
105
|
-
100% {
|
|
106
|
-
-webkit-transform: translateY(-8px);
|
|
107
|
-
transform: translateY(-8px);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
.hvr-bob {
|
|
81
|
+
// Bob
|
|
82
|
+
@keyframes hvr-bob
|
|
83
|
+
0%
|
|
84
|
+
transform translateY(-8px)
|
|
85
|
+
|
|
86
|
+
50%
|
|
87
|
+
transform translateY(-4px)
|
|
88
|
+
|
|
89
|
+
100%
|
|
90
|
+
transform translateY(-8px)
|
|
91
|
+
|
|
92
|
+
@keyframes hvr-bob-float
|
|
93
|
+
100%
|
|
94
|
+
transform translateY(-8px)
|
|
95
|
+
|
|
96
|
+
.hvr-bob
|
|
111
97
|
transform perspective(1px) translateZ(0)
|
|
112
98
|
box-shadow 0 0 1px rgba(0, 0, 0, 0)
|
|
113
99
|
animation-name hvr-bob-float, hvr-bob
|
|
@@ -117,7 +103,7 @@
|
|
|
117
103
|
animation-iteration-count 1, infinite
|
|
118
104
|
animation-fill-mode forwards
|
|
119
105
|
animation-direction normal, alternate
|
|
120
|
-
|
|
106
|
+
|
|
121
107
|
.btns .upgrade-icon
|
|
122
108
|
color success
|
|
123
109
|
.close-info-modal
|
|
@@ -770,11 +770,15 @@ export default class Term extends Component {
|
|
|
770
770
|
onData = (d) => {
|
|
771
771
|
if (!d.includes('\r') && !d.includes('\r')) {
|
|
772
772
|
this.dataCache += d
|
|
773
|
+
delete this.userTypeExit
|
|
773
774
|
} else {
|
|
774
775
|
const data = this.dataCache.trim()
|
|
775
776
|
this.dataCache = ''
|
|
776
777
|
if (data === 'exit') {
|
|
777
|
-
this.
|
|
778
|
+
this.userTypeExit = true
|
|
779
|
+
this.timers.userTypeExit = setTimeout(() => {
|
|
780
|
+
delete this.userTypeExit
|
|
781
|
+
}, 2000)
|
|
778
782
|
}
|
|
779
783
|
}
|
|
780
784
|
}
|
|
@@ -1014,15 +1018,16 @@ export default class Term extends Component {
|
|
|
1014
1018
|
const socket = new WebSocket(wsUrl)
|
|
1015
1019
|
socket.onclose = this.oncloseSocket
|
|
1016
1020
|
socket.onerror = this.onerrorSocket
|
|
1017
|
-
this.attachAddon = new AttachAddon(
|
|
1018
|
-
socket,
|
|
1019
|
-
undefined,
|
|
1020
|
-
encode,
|
|
1021
|
-
isWin && !this.isRemote()
|
|
1022
|
-
)
|
|
1023
|
-
term.loadAddon(this.attachAddon)
|
|
1024
1021
|
socket.onopen = () => {
|
|
1022
|
+
this.attachAddon = new AttachAddon(
|
|
1023
|
+
socket,
|
|
1024
|
+
undefined,
|
|
1025
|
+
encode,
|
|
1026
|
+
isWin && !this.isRemote()
|
|
1027
|
+
)
|
|
1028
|
+
term.loadAddon(this.attachAddon)
|
|
1025
1029
|
socket.addEventListener('message', this.onSocketData)
|
|
1030
|
+
this.runInitScript()
|
|
1026
1031
|
term._initialized = true
|
|
1027
1032
|
}
|
|
1028
1033
|
this.socket = socket
|
|
@@ -1068,7 +1073,6 @@ export default class Term extends Component {
|
|
|
1068
1073
|
// }
|
|
1069
1074
|
// }
|
|
1070
1075
|
this.term = term
|
|
1071
|
-
this.runInitScript()
|
|
1072
1076
|
window.store.triggerResize()
|
|
1073
1077
|
}
|
|
1074
1078
|
|
|
@@ -1107,6 +1111,9 @@ export default class Term extends Component {
|
|
|
1107
1111
|
if (!this.isActiveTerminal() || !window.focused) {
|
|
1108
1112
|
return false
|
|
1109
1113
|
}
|
|
1114
|
+
if (this.userTypeExit) {
|
|
1115
|
+
return this.props.delSplit(this.state.id)
|
|
1116
|
+
}
|
|
1110
1117
|
const key = `open${Date.now()}`
|
|
1111
1118
|
function closeMsg () {
|
|
1112
1119
|
notification.destroy(key)
|
|
@@ -11,7 +11,10 @@ const st = prefix('setting')
|
|
|
11
11
|
|
|
12
12
|
export default function TerminalInfoBase (props) {
|
|
13
13
|
const { id, saveTerminalLogToFile, logName } = props
|
|
14
|
-
const
|
|
14
|
+
const base = props.appPath
|
|
15
|
+
? osResolve(props.appPath, 'electerm', 'session_logs')
|
|
16
|
+
: window.et.sessionLogPath
|
|
17
|
+
const path = osResolve(base, logName + '.log')
|
|
15
18
|
const to = saveTerminalLogToFile
|
|
16
19
|
? <ShowItem disabled={!saveTerminalLogToFile} to={path}>{path}</ShowItem>
|
|
17
20
|
: `-> ${c('setting')} -> ${st('saveTerminalLogToFile')}`
|