Skip to content

Commit

Permalink
add more linting rules and format code accordingly
Browse files Browse the repository at this point in the history
  • Loading branch information
Richardsl committed Jun 6, 2022
1 parent 25fb750 commit f8bbc2a
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 60 deletions.
7 changes: 6 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@
"@typescript-eslint/no-unused-vars": ["error", { "args": "none" }],
"@typescript-eslint/ban-ts-comment": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/no-empty-function": "off"
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/comma-dangle": ["error", "always"],
"@typescript-eslint/semi": ["error", "never"],
"curly": ["error", "multi-or-nest"],
"eqeqeq": ["error", "always"],
"camelcase": "error"
}
}
114 changes: 55 additions & 59 deletions main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Plugin } from 'obsidian';
import { Plugin, } from 'obsidian'

// TODO: blande farga om man bruka to farga i en event?
// TODO: custom fixed scale istedenfor automap
Expand All @@ -25,21 +25,21 @@ interface Entry {
const DEFAULT_SETTINGS: CalendarData = {
year: new Date().getUTCFullYear(),
colors: {
default: ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127"]
default: ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127",],
},
entries: [{ date: "1900-01-01" }],
entries: [{ date: "1900-01-01", },],
showCurrentDayBorder: true,
defaultEntryIntensity: 4,
}
export default class HeatmapCalendar extends Plugin {

settings: CalendarData;
settings: CalendarData

/**
* Returns a number representing how many days into the year the supplied date is.
* Returns a number representing how many days into the year the supplied date is.
* Example: first of january is 1, third of february is 34 (31+3)
* @param date
*/
* @param date
*/
getHowManyDaysIntoYear(date: Date): number {
return (
(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) -
Expand All @@ -54,17 +54,17 @@ export default class HeatmapCalendar extends Plugin {
}

clamp(input: number, min: number, max: number): number {
return input < min ? min : input > max ? max : input;
return input < min ? min : input > max ? max : input
}

map(current: number, in_min: number, in_max: number, out_min: number, out_max: number): number {
const mapped: number = ((current - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min;
return this.clamp(mapped, out_min, out_max);
map(current: number, inMin: number, inMax: number, outMin: number, outMax: number): number {
const mapped: number = ((current - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin
return this.clamp(mapped, outMin, outMax)
}

async onload() {

await this.loadSettings();
await this.loadSettings()

//@ts-ignore
window.renderHeatmapCalendar = (el: HTMLElement, calendarData: CalendarData): void => {
Expand All @@ -76,28 +76,26 @@ export default class HeatmapCalendar extends Plugin {

const intensities: Array<number> = []
calEntries.forEach(e => {
if (e.intensity) {
intensities.push(e.intensity)
}
if (e.intensity) intensities.push(e.intensity)
})

const minimumIntensity = Math.min(...intensities) ?? 1;
const minimumIntensity = Math.min(...intensities) ?? 1
//const averageIntensity = intensities.reduce((a,b) => a + b, 0) / intensities.length ?? 3
const maximumIntensity = Math.max(...intensities) ?? 5;
const maximumIntensity = Math.max(...intensities) ?? 5

const mappedEntries: Array<Entry> = []

calEntries.forEach(e => {
if (new Date(e.date).getUTCFullYear() == year) {
if (new Date(e.date).getUTCFullYear() === year) {

const newEntry = { ...e }
newEntry.intensity = e.intensity ?? this.settings.defaultEntryIntensity;
const newEntry = { ...e, }
newEntry.intensity = e.intensity ?? this.settings.defaultEntryIntensity

if (minimumIntensity == maximumIntensity) {
newEntry.intensity = 5;
} else {
if (minimumIntensity === maximumIntensity)
newEntry.intensity = 5
else
newEntry.intensity = Math.round(this.map(newEntry.intensity, minimumIntensity, maximumIntensity, 1, 5))
}

mappedEntries[this.getHowManyDaysIntoYear(new Date(e.date))] = newEntry
}
})
Expand All @@ -112,10 +110,10 @@ export default class HeatmapCalendar extends Plugin {
classNames?: string
}

let boxes: Array<Box> = []
const boxes: Array<Box> = []

while (numberOfEmptyDaysBeforeYearBegins) {
boxes.push({ backgroundColor: "transparent" })
boxes.push({ backgroundColor: "transparent", })
numberOfEmptyDaysBeforeYearBegins--
}
const lastDayOfYear = new Date(Date.UTC(year, 11, 31))
Expand All @@ -126,76 +124,74 @@ export default class HeatmapCalendar extends Plugin {

const box: Box = {}

if(day === todaysDayNumberLocal && showCurrentDayBorder) {
box.classNames = "today"
}
if (day === todaysDayNumberLocal && showCurrentDayBorder) box.classNames = "today"

if (mappedEntries[day]) {
const entry = mappedEntries[day]

box.date = entry.date

if(entry.content) box.content = entry.content
if (entry.content) box.content = entry.content

const currentDayColors = entry.color ? colors[entry.color] : colors[Object.keys(colors)[0]]
box.backgroundColor = currentDayColors[entry.intensity - 1]
}

}
boxes.push(box)
}

const heatmapCalendarGraphDiv = createDiv({
cls: "heatmap-calendar-graph",
parent: el
parent: el,
})

createDiv({
cls: "heatmap-calendar-year",
text: String(year).slice(2),
parent: heatmapCalendarGraphDiv
parent: heatmapCalendarGraphDiv,
})

const heatmapCalendarMonthsUl = createEl("ul", {
cls: "heatmap-calendar-months",
parent: heatmapCalendarGraphDiv
parent: heatmapCalendarGraphDiv,
})

createEl("li", { text: "Jan", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Feb", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Mar", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Apr", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "May", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Jun", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Jul", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Aug", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Sep", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Oct", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Nov", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Dec", parent: heatmapCalendarMonthsUl })
createEl("li", { text: "Jan", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Feb", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Mar", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Apr", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "May", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Jun", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Jul", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Aug", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Sep", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Oct", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Nov", parent: heatmapCalendarMonthsUl, })
createEl("li", { text: "Dec", parent: heatmapCalendarMonthsUl, })

const heatmapCalendarDaysUl = createEl("ul", {
cls: "heatmap-calendar-days",
parent: heatmapCalendarGraphDiv
parent: heatmapCalendarGraphDiv,
})

createEl("li", { text: "Mon", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Tue", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Wed", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Thu", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Fri", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Sat", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Sun", parent: heatmapCalendarDaysUl })
createEl("li", { text: "Mon", parent: heatmapCalendarDaysUl, })
createEl("li", { text: "Tue", parent: heatmapCalendarDaysUl, })
createEl("li", { text: "Wed", parent: heatmapCalendarDaysUl, })
createEl("li", { text: "Thu", parent: heatmapCalendarDaysUl, })
createEl("li", { text: "Fri", parent: heatmapCalendarDaysUl, })
createEl("li", { text: "Sat", parent: heatmapCalendarDaysUl, })
createEl("li", { text: "Sun", parent: heatmapCalendarDaysUl, })

const heatmapCalendarBoxesUl = createEl("ul", {
cls: "heatmap-calendar-boxes",
parent: heatmapCalendarGraphDiv
parent: heatmapCalendarGraphDiv,
})

boxes.forEach(e => {
createEl("li", {
text: e.content,
attr: {
...e.backgroundColor && { style: `background-color: ${e.backgroundColor};` },
...e.backgroundColor && { style: `background-color: ${e.backgroundColor};`, },
},
cls: e.classNames,
parent: heatmapCalendarBoxesUl,
Expand All @@ -210,11 +206,11 @@ export default class HeatmapCalendar extends Plugin {
}

async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData())
}

async saveSettings() {
await this.saveData(this.settings);
await this.saveData(this.settings)
}
}

Expand Down

0 comments on commit f8bbc2a

Please sign in to comment.