Removed traces of Electron
This commit is contained in:
45
scripts/lib/history.js
Normal file
45
scripts/lib/history.js
Normal file
@@ -0,0 +1,45 @@
|
||||
'use strict'
|
||||
|
||||
function History () {
|
||||
this.index = 0
|
||||
this.a = []
|
||||
|
||||
this.clear = function () {
|
||||
this.a = []
|
||||
this.index = 0
|
||||
}
|
||||
|
||||
this.push = function (data) {
|
||||
if (this.index < this.a.length - 1) {
|
||||
this.fork()
|
||||
}
|
||||
this.index = this.a.length
|
||||
this.a = this.a.slice(0, this.index)
|
||||
this.a.push(copy(data))
|
||||
|
||||
if (this.a.length > 20) {
|
||||
this.a.shift()
|
||||
}
|
||||
}
|
||||
|
||||
this.fork = function () {
|
||||
this.a = this.a.slice(0, this.index + 1)
|
||||
}
|
||||
|
||||
this.pop = function () {
|
||||
return this.a.pop()
|
||||
}
|
||||
|
||||
this.prev = function () {
|
||||
this.index = clamp(this.index - 1, 0, this.a.length - 1)
|
||||
return copy(this.a[this.index])
|
||||
}
|
||||
|
||||
this.next = function () {
|
||||
this.index = clamp(this.index + 1, 0, this.a.length - 1)
|
||||
return copy(this.a[this.index])
|
||||
}
|
||||
|
||||
function copy (data) { return data ? JSON.parse(JSON.stringify(data)) : [] }
|
||||
function clamp (v, min, max) { return v < min ? min : v > max ? max : v }
|
||||
}
|
||||
Reference in New Issue
Block a user