Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
d4f605d4
Commit
d4f605d4
authored
Feb 12, 2019
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor out the tab component for using external lib
parent
700ea094
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
204 additions
and
152 deletions
+204
-152
fileManager.js
src/app/files/fileManager.js
+25
-35
editor-panel.js
src/app/panels/editor-panel.js
+3
-117
tab-proxy.js
src/app/panels/tab-proxy.js
+176
-0
No files found.
src/app/files/fileManager.js
View file @
d4f605d4
'use strict'
'use strict'
var
$
=
require
(
'jquery'
)
var
yo
=
require
(
'yo-yo'
)
var
EventEmitter
=
require
(
'events'
)
var
EventEmitter
=
require
(
'events'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
globalRegistry
=
require
(
'../../global/registry'
)
var
globalRegistry
=
require
(
'../../global/registry'
)
...
@@ -14,7 +12,7 @@ var CompilerImport = require('../compiler/compiler-imports')
...
@@ -14,7 +12,7 @@ var CompilerImport = require('../compiler/compiler-imports')
class
FileManager
{
class
FileManager
{
constructor
(
localRegistry
)
{
constructor
(
localRegistry
)
{
this
.
tabbedFiles
=
{}
this
.
openedFiles
=
{}
// list all opened files
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
this
.
nodeEvent
=
new
EventEmitter
()
this
.
nodeEvent
=
new
EventEmitter
()
this
.
_components
=
{}
this
.
_components
=
{}
...
@@ -64,18 +62,18 @@ class FileManager {
...
@@ -64,18 +62,18 @@ class FileManager {
if
(
!
isFolder
)
{
if
(
!
isFolder
)
{
self
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
self
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
self
.
_deps
.
editor
.
discard
(
oldName
)
self
.
_deps
.
editor
.
discard
(
oldName
)
if
(
this
.
tabb
edFiles
[
oldName
])
{
if
(
this
.
open
edFiles
[
oldName
])
{
delete
this
.
tabb
edFiles
[
oldName
]
delete
this
.
open
edFiles
[
oldName
]
this
.
tabb
edFiles
[
newName
]
=
newName
this
.
open
edFiles
[
newName
]
=
newName
}
}
this
.
switchFile
(
newName
)
this
.
switchFile
(
newName
)
}
else
{
}
else
{
var
newFocus
var
newFocus
for
(
var
k
in
this
.
tabb
edFiles
)
{
for
(
var
k
in
this
.
open
edFiles
)
{
if
(
k
.
indexOf
(
oldName
+
'/'
)
===
0
)
{
if
(
k
.
indexOf
(
oldName
+
'/'
)
===
0
)
{
var
newAbsolutePath
=
k
.
replace
(
oldName
,
newName
)
var
newAbsolutePath
=
k
.
replace
(
oldName
,
newName
)
this
.
tabb
edFiles
[
newAbsolutePath
]
=
newAbsolutePath
this
.
open
edFiles
[
newAbsolutePath
]
=
newAbsolutePath
delete
this
.
tabb
edFiles
[
k
]
delete
this
.
open
edFiles
[
k
]
if
(
self
.
_deps
.
config
.
get
(
'currentFile'
)
===
k
)
{
if
(
self
.
_deps
.
config
.
get
(
'currentFile'
)
===
k
)
{
newFocus
=
newAbsolutePath
newFocus
=
newAbsolutePath
}
}
...
@@ -85,7 +83,7 @@ class FileManager {
...
@@ -85,7 +83,7 @@ class FileManager {
this
.
switchFile
(
newFocus
)
this
.
switchFile
(
newFocus
)
}
}
}
}
this
.
refreshTabs
(
)
this
.
event
.
trigger
(
'fileRenamed'
,
[
oldName
,
newName
]
)
}
}
currentFileProvider
()
{
currentFileProvider
()
{
...
@@ -101,6 +99,18 @@ class FileManager {
...
@@ -101,6 +99,18 @@ class FileManager {
return
self
.
_deps
.
config
.
get
(
'currentFile'
)
return
self
.
_deps
.
config
.
get
(
'currentFile'
)
}
}
closeFile
(
name
)
{
var
self
=
this
delete
self
.
openedFiles
[
name
]
if
(
Object
.
keys
(
self
.
openedFiles
).
length
)
{
self
.
switchFile
(
Object
.
keys
(
self
.
openedFiles
)[
0
])
}
else
{
self
.
_deps
.
editor
.
displayEmptyReadOnlySession
()
self
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
}
this
.
event
.
trigger
(
'fileClosed'
,
[
name
])
}
currentPath
()
{
currentPath
()
{
var
self
=
this
var
self
=
this
var
currentFile
=
self
.
_deps
.
config
.
get
(
'currentFile'
)
var
currentFile
=
self
.
_deps
.
config
.
get
(
'currentFile'
)
...
@@ -145,7 +155,7 @@ class FileManager {
...
@@ -145,7 +155,7 @@ class FileManager {
}
}
removeTabsOf
(
provider
)
{
removeTabsOf
(
provider
)
{
for
(
var
tab
in
this
.
tabb
edFiles
)
{
for
(
var
tab
in
this
.
open
edFiles
)
{
if
(
this
.
fileProviderOf
(
tab
).
type
===
provider
.
type
)
{
if
(
this
.
fileProviderOf
(
tab
).
type
===
provider
.
type
)
{
this
.
fileRemovedEvent
(
tab
)
this
.
fileRemovedEvent
(
tab
)
}
}
...
@@ -154,36 +164,16 @@ class FileManager {
...
@@ -154,36 +164,16 @@ class FileManager {
fileRemovedEvent
(
path
)
{
fileRemovedEvent
(
path
)
{
var
self
=
this
var
self
=
this
if
(
!
this
.
tabb
edFiles
[
path
])
return
if
(
!
this
.
open
edFiles
[
path
])
return
if
(
path
===
self
.
_deps
.
config
.
get
(
'currentFile'
))
{
if
(
path
===
self
.
_deps
.
config
.
get
(
'currentFile'
))
{
self
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
self
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
}
}
self
.
_deps
.
editor
.
discard
(
path
)
self
.
_deps
.
editor
.
discard
(
path
)
delete
this
.
tabb
edFiles
[
path
]
delete
this
.
open
edFiles
[
path
]
this
.
refreshTabs
(
)
this
.
event
.
trigger
(
'fileRemoved'
,
[
path
]
)
this
.
switchFile
()
this
.
switchFile
()
}
}
// Display files that have already been selected
refreshTabs
(
newfile
)
{
if
(
newfile
)
{
this
.
tabbedFiles
[
newfile
]
=
newfile
}
var
$filesEl
=
$
(
'#files'
)
$filesEl
.
find
(
'.file'
).
remove
()
for
(
var
file
in
this
.
tabbedFiles
)
{
$filesEl
.
append
(
yo
`<li class="file"><span class="name">
${
file
}
</span><span class="remove"><i class="fa fa-close"></i></span></li>`
)
}
var
active
=
$
(
'#files .file'
).
filter
(
function
()
{
return
$
(
this
).
find
(
'.name'
).
text
()
===
newfile
})
if
(
active
.
length
)
active
.
addClass
(
'active'
)
$
(
'#output'
).
toggle
(
active
)
}
switchFile
(
file
)
{
switchFile
(
file
)
{
var
self
=
this
var
self
=
this
if
(
file
)
return
_switchFile
(
file
)
if
(
file
)
return
_switchFile
(
file
)
...
@@ -203,7 +193,7 @@ class FileManager {
...
@@ -203,7 +193,7 @@ class FileManager {
function
_switchFile
(
file
)
{
function
_switchFile
(
file
)
{
self
.
saveCurrentFile
()
self
.
saveCurrentFile
()
self
.
_deps
.
config
.
set
(
'currentFile'
,
file
)
self
.
_deps
.
config
.
set
(
'currentFile'
,
file
)
self
.
refreshTabs
(
file
)
self
.
openedFiles
[
file
]
=
file
self
.
fileProviderOf
(
file
).
get
(
file
,
(
error
,
content
)
=>
{
self
.
fileProviderOf
(
file
).
get
(
file
,
(
error
,
content
)
=>
{
if
(
error
)
{
if
(
error
)
{
console
.
log
(
error
)
console
.
log
(
error
)
...
...
src/app/panels/editor-panel.js
View file @
d4f605d4
var
yo
=
require
(
'yo-yo'
)
var
yo
=
require
(
'yo-yo'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
$
=
require
(
'jquery'
)
var
Terminal
=
require
(
'./terminal'
)
var
Terminal
=
require
(
'./terminal'
)
var
Editor
=
require
(
'../editor/editor'
)
var
Editor
=
require
(
'../editor/editor'
)
var
globalRegistry
=
require
(
'../../global/registry'
)
var
globalRegistry
=
require
(
'../../global/registry'
)
var
{
TabProxy
}
=
require
(
'./tab-proxy.js'
)
var
ContextualListener
=
require
(
'../editor/contextualListener'
)
var
ContextualListener
=
require
(
'../editor/contextualListener'
)
var
ContextView
=
require
(
'../editor/contextView'
)
var
ContextView
=
require
(
'../editor/contextView'
)
...
@@ -41,6 +41,7 @@ class EditorPanel {
...
@@ -41,6 +41,7 @@ class EditorPanel {
udapp
:
self
.
_components
.
registry
.
get
(
'udapp'
).
api
,
udapp
:
self
.
_components
.
registry
.
get
(
'udapp'
).
api
,
pluginManager
:
self
.
_components
.
registry
.
get
(
'pluginmanager'
).
api
pluginManager
:
self
.
_components
.
registry
.
get
(
'pluginmanager'
).
api
}
}
self
.
tabProxy
=
new
TabProxy
(
self
.
_deps
.
fileManager
,
self
.
_components
.
editor
)
self
.
data
=
{
self
.
data
=
{
_FILE_SCROLL_DELTA
:
200
,
_FILE_SCROLL_DELTA
:
200
,
_layout
:
{
_layout
:
{
...
@@ -140,7 +141,7 @@ class EditorPanel {
...
@@ -140,7 +141,7 @@ class EditorPanel {
self
.
_view
.
terminal
=
self
.
_components
.
terminal
.
render
()
self
.
_view
.
terminal
=
self
.
_components
.
terminal
.
render
()
self
.
_view
.
content
=
yo
`
self
.
_view
.
content
=
yo
`
<div class=
${
css
.
content
}
>
<div class=
${
css
.
content
}
>
${
self
.
_
renderTabsbar
()}
${
self
.
tabProxy
.
renderTabsbar
()}
<div class=
${
css
.
contextviewcontainer
}
>
<div class=
${
css
.
contextviewcontainer
}
>
${
self
.
_components
.
contextView
.
render
()}
${
self
.
_components
.
contextView
.
render
()}
</div>
</div>
...
@@ -164,121 +165,6 @@ class EditorPanel {
...
@@ -164,121 +165,6 @@ class EditorPanel {
updateTerminalFilter
(
filter
)
{
updateTerminalFilter
(
filter
)
{
this
.
_components
.
terminal
.
updateJournal
(
filter
)
this
.
_components
.
terminal
.
updateJournal
(
filter
)
}
}
_renderTabsbar
()
{
var
self
=
this
if
(
self
.
_view
.
tabsbar
)
return
self
.
_view
.
tabsbar
self
.
_view
.
filetabs
=
yo
`<ul id="files" class="
${
css
.
files
}
nav nav-tabs"></ul>`
self
.
_view
.
tabs
=
yo
`
<div class=
${
css
.
tabs
}
onmouseenter=
${
toggleScrollers
}
onmouseleave=
${
toggleScrollers
}
>
<div onclick=
${
scrollLeft
}
class="
${
css
.
scroller
}
${
css
.
hide
}
${
css
.
scrollerleft
}
">
<i class="fa fa-chevron-left "></i>
</div>
${
self
.
_view
.
filetabs
}
<div onclick=
${
scrollRight
}
class="
${
css
.
scroller
}
${
css
.
hide
}
${
css
.
scrollerright
}
">
<i class="fa fa-chevron-right "></i>
</div>
</div>
`
self
.
_view
.
tabsbar
=
yo
`
<div class=
${
css
.
tabsbar
}
>
<div class=
${
css
.
buttons
}
>
<span class=
${
css
.
changeeditorfontsize
}
>
<i class="increditorsize fa fa-plus" onclick=
${
increase
}
aria-hidden="true" title="increase editor font size"></i>
<i class="decreditorsize fa fa-minus" onclick=
${
decrease
}
aria-hidden="true" title="decrease editor font size"></i>
</span>
</div>
${
self
.
_view
.
tabs
}
</div>
`
// tabs
var
$filesEl
=
$
(
self
.
_view
.
filetabs
)
// Switch tab
$filesEl
.
on
(
'click'
,
'.file:not(.active)'
,
function
(
ev
)
{
ev
.
preventDefault
()
self
.
_deps
.
fileManager
.
switchFile
(
$
(
this
).
find
(
'.name'
).
text
())
return
false
})
// Remove current tab
$filesEl
.
on
(
'click'
,
'.file .remove'
,
function
(
ev
)
{
ev
.
preventDefault
()
var
name
=
$
(
this
).
parent
().
find
(
'.name'
).
text
()
delete
self
.
_deps
.
fileManager
.
tabbedFiles
[
name
]
self
.
_deps
.
fileManager
.
refreshTabs
()
if
(
Object
.
keys
(
self
.
_deps
.
fileManager
.
tabbedFiles
).
length
)
{
self
.
_deps
.
fileManager
.
switchFile
(
Object
.
keys
(
self
.
_deps
.
fileManager
.
tabbedFiles
)[
0
])
}
else
{
self
.
_components
.
editor
.
displayEmptyReadOnlySession
()
self
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
}
return
false
})
return
self
.
_view
.
tabsbar
function
toggleScrollers
(
event
=
{})
{
if
(
event
.
type
)
self
.
data
.
_focus
=
event
.
type
var
isMouseEnter
=
self
.
data
.
_focus
===
'mouseenter'
var
leftArrow
=
this
.
children
[
0
]
var
rightArrow
=
this
.
children
[
2
]
if
(
isMouseEnter
&&
this
.
children
[
1
].
offsetWidth
>
this
.
offsetWidth
)
{
var
hiddenLength
=
self
.
_view
.
filetabs
.
offsetWidth
-
self
.
_view
.
tabs
.
offsetWidth
var
currentLeft
=
self
.
_view
.
filetabs
.
offsetLeft
||
0
var
hiddenRight
=
hiddenLength
+
currentLeft
if
(
currentLeft
<
0
)
{
leftArrow
.
classList
.
add
(
css
.
show
)
leftArrow
.
classList
.
remove
(
css
.
hide
)
}
if
(
hiddenRight
>
0
)
{
rightArrow
.
classList
.
add
(
css
.
show
)
rightArrow
.
classList
.
remove
(
css
.
hide
)
}
}
else
{
leftArrow
.
classList
.
remove
(
css
.
show
)
leftArrow
.
classList
.
add
(
css
.
hide
)
rightArrow
.
classList
.
remove
(
css
.
show
)
rightArrow
.
classList
.
add
(
css
.
hide
)
}
}
function
increase
()
{
self
.
_components
.
editor
.
editorFontSize
(
1
)
}
function
decrease
()
{
self
.
_components
.
editor
.
editorFontSize
(
-
1
)
}
function
scrollLeft
(
event
)
{
var
leftArrow
=
this
var
rightArrow
=
this
.
nextElementSibling
.
nextElementSibling
var
currentLeft
=
self
.
_view
.
filetabs
.
offsetLeft
||
0
if
(
currentLeft
<
0
)
{
rightArrow
.
classList
.
add
(
css
.
show
)
rightArrow
.
classList
.
remove
(
css
.
hide
)
if
(
currentLeft
<
-
self
.
data
.
_FILE_SCROLL_DELTA
)
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
+
self
.
data
.
_FILE_SCROLL_DELTA
}
px`
}
else
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
-
currentLeft
}
px`
leftArrow
.
classList
.
remove
(
css
.
show
)
leftArrow
.
classList
.
add
(
css
.
hide
)
}
}
}
function
scrollRight
(
event
)
{
var
rightArrow
=
this
var
leftArrow
=
this
.
previousElementSibling
.
previousElementSibling
var
hiddenLength
=
self
.
_view
.
filetabs
.
offsetWidth
-
self
.
_view
.
tabs
.
offsetWidth
var
currentLeft
=
self
.
_view
.
filetabs
.
offsetLeft
||
0
var
hiddenRight
=
hiddenLength
+
currentLeft
if
(
hiddenRight
>
0
)
{
leftArrow
.
classList
.
add
(
css
.
show
)
leftArrow
.
classList
.
remove
(
css
.
hide
)
if
(
hiddenRight
>
self
.
data
.
_FILE_SCROLL_DELTA
)
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
-
self
.
data
.
_FILE_SCROLL_DELTA
}
px`
}
else
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
-
hiddenRight
}
px`
rightArrow
.
classList
.
remove
(
css
.
show
)
rightArrow
.
classList
.
add
(
css
.
hide
)
}
}
}
}
}
}
module
.
exports
=
EditorPanel
module
.
exports
=
EditorPanel
src/app/panels/tab-proxy.js
0 → 100644
View file @
d4f605d4
var
yo
=
require
(
'yo-yo'
)
var
$
=
require
(
'jquery'
)
var
styles
=
require
(
'./styles/editor-panel-styles'
)
var
css
=
styles
.
css
export
class
TabProxy
{
constructor
(
fileManager
,
editor
)
{
this
.
fileManager
=
fileManager
this
.
editor
=
editor
this
.
activeEntity
this
.
entities
=
{}
this
.
data
=
{}
this
.
_view
=
{}
fileManager
.
event
.
register
(
'fileRemoved'
,
(
name
)
=>
{
var
filesEl
=
document
.
querySelector
(
'#files'
)
var
file
=
filesEl
.
querySelector
(
`li[path="
${
name
}
"]`
)
if
(
file
)
{
filesEl
.
removeChild
(
file
)
}
})
fileManager
.
event
.
register
(
'fileClosed'
,
(
name
)
=>
{
var
filesEl
=
document
.
querySelector
(
'#files'
)
var
file
=
filesEl
.
querySelector
(
`li[path="
${
name
}
"]`
)
if
(
file
)
{
filesEl
.
removeChild
(
file
)
}
})
fileManager
.
event
.
register
(
'currentFileChanged'
,
(
file
)
=>
{
var
filesEl
=
document
.
querySelector
(
'#files'
)
if
(
!
filesEl
.
querySelector
(
`li[path="
${
file
}
"]`
))
{
filesEl
.
appendChild
(
yo
`<li class="file" path="
${
file
}
" ><span class="name">
${
file
}
</span><span class="remove"><i class="fa fa-close"></i></span></li>`
)
}
this
.
active
(
file
)
})
fileManager
.
event
.
register
(
'fileRenamed'
,
(
oldName
,
newName
)
=>
{
var
filesEl
=
document
.
querySelector
(
'#files'
)
var
file
=
filesEl
.
querySelector
(
`li[path="
${
oldName
}
"]`
)
if
(
file
)
{
filesEl
.
setAttribute
(
'path'
,
file
)
file
.
querySelector
(
`.name`
).
innerHTML
=
newName
}
})
}
active
(
name
)
{
var
filesEl
=
document
.
querySelector
(
'#files'
)
let
file
=
filesEl
.
querySelector
(
`li[path="
${
this
.
activeEntity
}
"]`
)
if
(
file
)
$
(
file
).
removeClass
(
'active'
)
if
(
name
)
{
let
active
=
filesEl
.
querySelector
(
`li[path="
${
name
}
"]`
)
if
(
active
)
{
$
(
active
).
addClass
(
'active'
)
this
.
activeEntity
=
name
}
}
}
addHandler
(
type
,
fn
)
{
this
.
handlers
[
type
]
=
fn
}
renderTabsbar
()
{
var
self
=
this
self
.
_view
.
filetabs
=
yo
`<ul id="files" class="
${
css
.
files
}
nav nav-tabs"></ul>`
self
.
_view
.
tabs
=
yo
`
<div class=
${
css
.
tabs
}
onmouseenter=
${
toggleScrollers
}
onmouseleave=
${
toggleScrollers
}
>
<div onclick=
${
scrollLeft
}
class="
${
css
.
scroller
}
${
css
.
hide
}
${
css
.
scrollerleft
}
">
<i class="fa fa-chevron-left "></i>
</div>
${
self
.
_view
.
filetabs
}
<div onclick=
${
scrollRight
}
class="
${
css
.
scroller
}
${
css
.
hide
}
${
css
.
scrollerright
}
">
<i class="fa fa-chevron-right "></i>
</div>
</div>
`
let
tabsbar
=
yo
`
<div class=
${
css
.
tabsbar
}
>
<div class=
${
css
.
buttons
}
>
<span class=
${
css
.
changeeditorfontsize
}
>
<i class="increditorsize fa fa-plus" onclick=
${
increase
}
aria-hidden="true" title="increase editor font size"></i>
<i class="decreditorsize fa fa-minus" onclick=
${
decrease
}
aria-hidden="true" title="decrease editor font size"></i>
</span>
</div>
${
self
.
_view
.
tabs
}
</div>
`
// tabs
var
$filesEl
=
$
(
self
.
_view
.
filetabs
)
// Switch tab
$filesEl
.
on
(
'click'
,
'.file:not(.active)'
,
function
(
ev
)
{
ev
.
preventDefault
()
self
.
fileManager
.
switchFile
(
$
(
this
).
find
(
'.name'
).
text
())
return
false
})
// Remove current tab
$filesEl
.
on
(
'click'
,
'.file .remove'
,
function
(
ev
)
{
ev
.
preventDefault
()
var
name
=
$
(
this
).
parent
().
find
(
'.name'
).
text
()
self
.
fileManager
.
closeFile
(
name
)
return
false
})
return
tabsbar
function
toggleScrollers
(
event
=
{})
{
if
(
event
.
type
)
self
.
data
.
_focus
=
event
.
type
var
isMouseEnter
=
self
.
data
.
_focus
===
'mouseenter'
var
leftArrow
=
this
.
children
[
0
]
var
rightArrow
=
this
.
children
[
2
]
if
(
isMouseEnter
&&
this
.
children
[
1
].
offsetWidth
>
this
.
offsetWidth
)
{
var
hiddenLength
=
self
.
_view
.
filetabs
.
offsetWidth
-
self
.
_view
.
tabs
.
offsetWidth
var
currentLeft
=
self
.
_view
.
filetabs
.
offsetLeft
||
0
var
hiddenRight
=
hiddenLength
+
currentLeft
if
(
currentLeft
<
0
)
{
leftArrow
.
classList
.
add
(
css
.
show
)
leftArrow
.
classList
.
remove
(
css
.
hide
)
}
if
(
hiddenRight
>
0
)
{
rightArrow
.
classList
.
add
(
css
.
show
)
rightArrow
.
classList
.
remove
(
css
.
hide
)
}
}
else
{
leftArrow
.
classList
.
remove
(
css
.
show
)
leftArrow
.
classList
.
add
(
css
.
hide
)
rightArrow
.
classList
.
remove
(
css
.
show
)
rightArrow
.
classList
.
add
(
css
.
hide
)
}
}
function
increase
()
{
self
.
editor
.
editorFontSize
(
1
)
}
function
decrease
()
{
self
.
editor
.
editorFontSize
(
-
1
)
}
function
scrollLeft
(
event
)
{
var
leftArrow
=
this
var
rightArrow
=
this
.
nextElementSibling
.
nextElementSibling
var
currentLeft
=
self
.
_view
.
filetabs
.
offsetLeft
||
0
if
(
currentLeft
<
0
)
{
rightArrow
.
classList
.
add
(
css
.
show
)
rightArrow
.
classList
.
remove
(
css
.
hide
)
if
(
currentLeft
<
-
self
.
data
.
_FILE_SCROLL_DELTA
)
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
+
self
.
data
.
_FILE_SCROLL_DELTA
}
px`
}
else
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
-
currentLeft
}
px`
leftArrow
.
classList
.
remove
(
css
.
show
)
leftArrow
.
classList
.
add
(
css
.
hide
)
}
}
}
function
scrollRight
(
event
)
{
var
rightArrow
=
this
var
leftArrow
=
this
.
previousElementSibling
.
previousElementSibling
var
hiddenLength
=
self
.
_view
.
filetabs
.
offsetWidth
-
self
.
_view
.
tabs
.
offsetWidth
var
currentLeft
=
self
.
_view
.
filetabs
.
offsetLeft
||
0
var
hiddenRight
=
hiddenLength
+
currentLeft
if
(
hiddenRight
>
0
)
{
leftArrow
.
classList
.
add
(
css
.
show
)
leftArrow
.
classList
.
remove
(
css
.
hide
)
if
(
hiddenRight
>
self
.
data
.
_FILE_SCROLL_DELTA
)
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
-
self
.
data
.
_FILE_SCROLL_DELTA
}
px`
}
else
{
self
.
_view
.
filetabs
.
style
.
left
=
`
${
currentLeft
-
hiddenRight
}
px`
rightArrow
.
classList
.
remove
(
css
.
show
)
rightArrow
.
classList
.
add
(
css
.
hide
)
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment