Popup close buttons can take a URL.
This commit is contained in:
+16
-21
@@ -184,7 +184,7 @@ export class Dates {
|
||||
return new Date(date.getTime() + 1)
|
||||
}
|
||||
|
||||
static * iterYears(start, end) {
|
||||
static *iterYears(start, end) {
|
||||
let date = this.create(start.getFullYear(), 0, 1)
|
||||
while (date <= end) {
|
||||
yield date
|
||||
@@ -193,7 +193,7 @@ export class Dates {
|
||||
yield date
|
||||
}
|
||||
|
||||
static * iterMonths(year, limit = 12) {
|
||||
static *iterMonths(year, limit = 12) {
|
||||
let month = 0
|
||||
while (month < limit) {
|
||||
let date = this.create(year.getFullYear(), month, 1)
|
||||
@@ -202,7 +202,7 @@ export class Dates {
|
||||
}
|
||||
}
|
||||
|
||||
static * iterMonthsOfYears(years) {
|
||||
static *iterMonthsOfYears(years) {
|
||||
for (let year of years) {
|
||||
for (let month of this.iterMonths(year)) {
|
||||
yield month
|
||||
@@ -210,7 +210,7 @@ export class Dates {
|
||||
}
|
||||
}
|
||||
|
||||
static * iterDays(month) {
|
||||
static *iterDays(month) {
|
||||
let day = 1
|
||||
let limit = Dates.daysInMonth(month)
|
||||
while (day <= limit) {
|
||||
@@ -220,7 +220,7 @@ export class Dates {
|
||||
}
|
||||
}
|
||||
|
||||
static * iterDaysOfMonths(months) {
|
||||
static *iterDaysOfMonths(months) {
|
||||
for (let month of months) {
|
||||
for (let day of this.iterDays(month)) {
|
||||
yield day
|
||||
@@ -398,16 +398,12 @@ export class Points {
|
||||
static distanceToRect(p, r) {
|
||||
let dx = 0
|
||||
let dy = 0
|
||||
if (p.x < r.x)
|
||||
dx = p.x - r.x
|
||||
else if (p.x > r.x + r.width)
|
||||
dx = p.x - (r.x + r.width)
|
||||
if (p.y < r.y)
|
||||
dy = p.y - r.y
|
||||
else if (p.y > r.y + r.height)
|
||||
dy = p.y - (r.y + r.height)
|
||||
if (p.x < r.x) dx = p.x - r.x
|
||||
else if (p.x > r.x + r.width) dx = p.x - (r.x + r.width)
|
||||
if (p.y < r.y) dy = p.y - r.y
|
||||
else if (p.y > r.y + r.height) dy = p.y - (r.y + r.height)
|
||||
return Math.sqrt(dx * dx + dy * dy)
|
||||
/* let cx = Math.max(Math.min(p.x, r.x + r.width), r.x)
|
||||
/* let cx = Math.max(Math.min(p.x, r.x + r.width), r.x)
|
||||
let cy = Math.max(Math.min(p.y, r.y + r.height), r.y)
|
||||
let result = Math.sqrt((p.x - cx) * (p.x - cx) + (p.y - cy) * (p.y - cy))
|
||||
console.log("distanceToRect", p, r, result)
|
||||
@@ -451,8 +447,7 @@ export class Sets {
|
||||
const i = sets.reduce((m, s, i) => (s.size < sets[m].size ? i : m), 0)
|
||||
const [smallest] = sets.splice(i, 1)
|
||||
const res = new Set()
|
||||
for (let val of smallest)
|
||||
if (sets.every(s => s.has(val))) res.add(val)
|
||||
for (let val of smallest) if (sets.every(s => s.has(val))) res.add(val)
|
||||
return res
|
||||
}
|
||||
|
||||
@@ -1001,11 +996,11 @@ export class LowPassFilter {
|
||||
next(nextValue) {
|
||||
// push new value to the end, and remove oldest one
|
||||
let removed = this.__push(nextValue)
|
||||
// smooth value using all values from buffer
|
||||
// smooth value using all values from buffer
|
||||
let result = this.buffer.reduce((last, current) => {
|
||||
return this.smoothing * current + (1 - this.smoothing) * last
|
||||
}, removed)
|
||||
// replace smoothed value
|
||||
return this.smoothing * current + (1 - this.smoothing) * last
|
||||
}, removed)
|
||||
// replace smoothed value
|
||||
this.buffer[this.buffer.length - 1] = result
|
||||
return result
|
||||
}
|
||||
@@ -1026,4 +1021,4 @@ export class LowPassFilter {
|
||||
}
|
||||
return values
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user