/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // main.ts var main_exports = {}; __export(main_exports, { default: () => OpenWeather }); module.exports = __toCommonJS(main_exports); var import_obsidian = require("obsidian"); var displayErrorMsg = true; var DEFAULT_SETTINGS = { location: "", key: "", units: "metric", excludeFolder: "", weatherFormat1: "%desc% \u2022 Current Temp: %temp%\xB0C \u2022 Feels Like: %feels%\xB0C\n", weatherFormat2: "%name%: %dateMonth4% %dateDay2% - %timeH2%:%timeM% %ampm1%\nCurrent Temp: %temp%\xB0C \u2022 Feels Like: %feels%\xB0C\nWind: %wind-speed% Km/h from the %wind-dir%^ with gusts up to %wind-gust% Km/h^\nSunrise: %sunrise% \u2022 Sunset: %sunset%\n", weatherFormat3: "%icon% %dateMonth4% %dateDay2% %dateYear1% \u2022 %timeH2%:%timeM% %ampm1% \u2022 %desc%
 Recorded Temp: %temp% \u2022 Felt like: %feels%
 Wind: %wind-speed% Km/h from the %wind-dir%^ with gusts up to %wind-gust% Km/h^
 Sunrise: %sunrise% \u2022 Sunset: %sunset%", weatherFormat4: "%icon% %dateMonth4% %dateDay2% %dateYear1% \u2022 %timeH2%:%timeM% %ampm1% \u2022 %desc%
 Current Temp: %temp% \u2022 Feels like: %feels%
 Wind: %wind-speed% Km/h from the %wind-dir%^ with gusts up to %wind-gust% Km/h^
 Sunrise: %sunrise% \u2022 Sunset: %sunset%", statusbarActive: true, weatherFormatSB: " | %desc% | Current Temp: %temp%\xB0C | Feels Like: %feels%\xB0C | ", statusbarUpdateFreq: "15" }; var FormatWeather = class { constructor(location, key, units, format) { this.location = location; this.key = key; this.units = units; this.format = format; } async getWeather() { let weatherData; let weatherString; let url = `https://api.openweathermap.org/data/2.5/weather?q=${this.location}&appid=${this.key}&units=${this.units}`; let req = await fetch(url); let json = await req.json(); let conditions = json.weather[0].description; conditions = conditions.replace(/^\w|\s\w/g, (c2) => c2.toUpperCase()); let iconName = json.weather[0].icon; const iconApi = await fetch("http://openweathermap.org/img/w/" + iconName + ".png"); let iconUrl = iconApi.url; let temp = json.main.temp; temp = Math.round(temp); let feelsLike = json.main.feels_like; feelsLike = Math.round(feelsLike); let tempMin = json.main.temp_min; tempMin = Math.round(tempMin); let tempMax = json.main.temp_max; tempMax = Math.round(tempMax); let pressure = json.main.pressure; let humidity = json.main.humidity; let seaLevel = json.main.sea_level; let groundLevel = json.main.grnd_level; let visibility = json.visibility; let windSpeed = json.wind.speed; if (this.units == "metric") { windSpeed = Math.round(windSpeed * 3.6); } else { windSpeed = Math.round(windSpeed); } let windDirection = json.wind.deg; windDirection = this.getCardinalDirection(windDirection); let windGust = json.wind.gust; if (windGust != void 0) { if (this.units == "metric") { windGust = Math.round(windGust * 3.6); } else { windGust = Math.round(windGust); } } else { windGust = "N/A"; } let dt = json.dt; let a = new Date(dt * 1e3); const months1 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; const months2 = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]; const months3 = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; const months4 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; let year1 = a.getFullYear(); let year2str = String(year1).slice(-2); let year2 = Number(year2str); let month1 = months1[a.getMonth()]; let month2 = months2[a.getMonth()]; let month3 = months3[a.getMonth()]; let month4 = months4[a.getMonth()]; let date1 = a.getDate(); let date2 = a.getDate() < 10 ? "0" + a.getDate() : a.getDate(); let ampm1 = "AM"; let ampm2 = "am"; if (a.getHours() > 11) { ampm1 = "PM"; ampm2 = "pm"; } let hour1 = a.getHours(); let hour2 = a.getHours(); if (a.getHours() > 12) { hour2 = a.getHours() - 12; } if (a.getHours() == 0) { hour1 = 12; hour2 = 12; } let min = a.getMinutes() < 10 ? "0" + a.getMinutes() : a.getMinutes(); let sec = a.getSeconds() < 10 ? "0" + a.getSeconds() : a.getSeconds(); let sr = json.sys.sunrise; let b = new Date(sr * 1e3); let srhour = b.getHours() < 10 ? "0" + b.getHours() : b.getHours(); let srmin = b.getMinutes() < 10 ? "0" + b.getMinutes() : b.getMinutes(); let srsec = b.getSeconds() < 10 ? "0" + b.getSeconds() : b.getSeconds(); let sunrise = srhour + ":" + srmin + ":" + srsec; let ss = json.sys.sunset; let c = new Date(ss * 1e3); let sshour = c.getHours() < 10 ? "0" + c.getHours() : c.getHours(); let ssmin = c.getMinutes() < 10 ? "0" + c.getMinutes() : c.getMinutes(); let sssec = c.getSeconds() < 10 ? "0" + c.getSeconds() : c.getSeconds(); let sunset = sshour + ":" + ssmin + ":" + sssec; let name = json.name; weatherData = { "status": "ok", "conditions": conditions, "icon": iconUrl, "temp": temp, "feelsLike": feelsLike, "tempMin": tempMin, "tempMax": tempMax, "pressure": pressure, "humidity": humidity, "seaLevel": seaLevel, "groundLevel": groundLevel, "visibility": visibility, "windSpeed": windSpeed, "windDirection": windDirection, "windGust": windGust, "year1": year1, "year2": year2, "month1": month1, "month2": month2, "month3": month3, "month4": month4, "date1": date1, "date2": date2, "ampm1": ampm1, "ampm2": ampm2, "hour1": hour1, "hour2": hour2, "min": min, "sec": sec, "sunrise": sunrise, "sunset": sunset, "name": name }; weatherString = this.format.replace(/%desc%/g, weatherData.conditions); weatherString = weatherString.replace(/%icon%/g, ``); weatherString = weatherString.replace(/%temp%/g, weatherData.temp); weatherString = weatherString.replace(/%feels%/g, weatherData.feelsLike); weatherString = weatherString.replace(/%tempmin%/g, weatherData.tempMin); weatherString = weatherString.replace(/%tempmax%/g, weatherData.tempMax); weatherString = weatherString.replace(/%pressure%/g, weatherData.pressure); weatherString = weatherString.replace(/%humidity%/g, weatherData.humidity); weatherString = weatherString.replace(/%pressure-sl%/g, weatherData.seaLevel); weatherString = weatherString.replace(/%pressure-gl%/g, weatherData.groundLevel); weatherString = weatherString.replace(/%visibility%/g, weatherData.visibility); weatherString = weatherString.replace(/%wind-speed%/g, weatherData.windSpeed); weatherString = weatherString.replace(/%wind-dir%/g, weatherData.windDirection); if (weatherData.windGust == "N/A") { weatherString = weatherString.replace(/\^.+\^/g, ""); } else { weatherString = weatherString.replace(/%wind-gust%/g, weatherData.windGust); weatherString = weatherString.replace(/\^(.+)\^/g, "$1"); } weatherString = weatherString.replace(/%dateYear1%/g, `${weatherData.year1}`); weatherString = weatherString.replace(/%dateYear2%/g, `${weatherData.year2}`); weatherString = weatherString.replace(/%dateMonth1%/g, `${weatherData.month1}`); weatherString = weatherString.replace(/%dateMonth2%/g, `${weatherData.month2}`); weatherString = weatherString.replace(/%dateMonth3%/g, `${weatherData.month3}`); weatherString = weatherString.replace(/%dateMonth4%/g, `${weatherData.month4}`); weatherString = weatherString.replace(/%dateDay1%/g, `${weatherData.date1}`); weatherString = weatherString.replace(/%dateDay2%/g, `${weatherData.date2}`); weatherString = weatherString.replace(/%ampm1%/g, `${weatherData.ampm1}`); weatherString = weatherString.replace(/%ampm2%/g, `${weatherData.ampm2}`); weatherString = weatherString.replace(/%timeH1%/g, `${weatherData.hour1}`); weatherString = weatherString.replace(/%timeH2%/g, `${weatherData.hour2}`); weatherString = weatherString.replace(/%timeM%/g, `${weatherData.min}`); weatherString = weatherString.replace(/%timeS%/g, `${weatherData.sec}`); weatherString = weatherString.replace(/%sunrise%/g, `${weatherData.sunrise}`); weatherString = weatherString.replace(/%sunset%/g, `${weatherData.sunset}`); weatherString = weatherString.replace(/%name%/g, `${weatherData.name}`); return weatherString; } async getWeatherString() { let weatherString = await this.getWeather(); return weatherString; } getCardinalDirection(angle) { const directions = ["North", "Northeast", "East", "Southeast", "South", "Southwest", "West", "Northwest"]; return directions[Math.round(angle / 45) % 8]; } }; var OpenWeather = class extends import_obsidian.Plugin { async onload() { await this.loadSettings(); this.addRibbonIcon("thermometer-snowflake", "OpenWeather", (evt) => { const view = this.app.workspace.getActiveViewOfType(import_obsidian.MarkdownView); if (!view) { new import_obsidian.Notice("Open a Markdown file first."); return; } if (view.getViewType() === "markdown") { const md = view; if (md.getMode() === "source") { new InsertWeatherPicker(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat1, this.settings.weatherFormat2, this.settings.weatherFormat3, this.settings.weatherFormat4).open(); } else { new import_obsidian.Notice("Markdown file must be in source mode to insert weather string."); } } else { new import_obsidian.Notice("Open a Markdown file first."); } }); this.statusBar = this.addStatusBarItem(); if (this.settings.statusbarActive) { if (this.settings.key.length == 0 || this.settings.location.length == 0) { if (displayErrorMsg) { new import_obsidian.Notice("OpenWeather plugin settings are undefined, check your settings.", 8e3); this.statusBar.setText(""); console.log("Err:", displayErrorMsg); displayErrorMsg = false; } } else { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormatSB); let weatherStr = await wstr.getWeatherString(); this.statusBar.setText(weatherStr); } } else { this.statusBar.setText(""); } this.addCommand({ id: "replace-template-string", name: "Replace template strings", editorCallback: async (editor, view) => { if (this.settings.weatherFormat1.length > 0) { if (view.data.contains("%weather1%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat1); let weatherStr = await wstr.getWeatherString(); let doc = editor.getValue().replace(/%weather1%/gmi, weatherStr); editor.setValue(doc); } } if (this.settings.weatherFormat2.length > 0) { if (view.data.contains("%weather2%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat2); let weatherStr = await wstr.getWeatherString(); let doc = editor.getValue().replace(/%weather2%/gmi, weatherStr); editor.setValue(doc); } } if (this.settings.weatherFormat3.length > 0) { if (view.data.contains("%weather3%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat3); let weatherStr = await wstr.getWeatherString(); let doc = editor.getValue().replace(/%weather3%/gmi, weatherStr); editor.setValue(doc); } } if (this.settings.weatherFormat4.length > 0) { if (view.data.contains("%weather4%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat4); let weatherStr = await wstr.getWeatherString(); let doc = editor.getValue().replace(/%weather4%/gmi, weatherStr); editor.setValue(doc); } } } }); this.addCommand({ id: "insert-format-one", name: "Insert weather format one", editorCallback: async (editor, view) => { if (this.settings.weatherFormat1.length > 0) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat1); let weatherStr = await wstr.getWeatherString(); editor.replaceSelection(`${weatherStr}`); } else { new import_obsidian.Notice("Weather string 1 is undefined! Please add a definition for it in the OpenWeather plugin settings.", 5e3); } } }); this.addCommand({ id: "insert-format-two", name: "Insert weather format two", editorCallback: async (editor, view) => { if (this.settings.weatherFormat2.length > 0) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat2); let weatherStr = await wstr.getWeatherString(); editor.replaceSelection(`${weatherStr}`); } else { new import_obsidian.Notice("Weather string 2 is undefined! Please add a definition for it in the OpenWeather plugin settings.", 5e3); } } }); this.addCommand({ id: "insert-format-three", name: "Insert weather format three", editorCallback: async (editor, view) => { if (this.settings.weatherFormat3.length > 0) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat3); let weatherStr = await wstr.getWeatherString(); editor.replaceSelection(`${weatherStr}`); } else { new import_obsidian.Notice("Weather string 3 is undefined! Please add a definition for it in the OpenWeather plugin settings.", 5e3); } } }); this.addCommand({ id: "insert-format-four", name: "Insert weather format four", editorCallback: async (editor, view) => { if (this.settings.weatherFormat4.length > 0) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat4); let weatherStr = await wstr.getWeatherString(); editor.replaceSelection(`${weatherStr}`); } else { new import_obsidian.Notice("Weather string 4 is undefined! Please add a definition for it in the OpenWeather plugin settings.", 5e3); } } }); this.addSettingTab(new OpenWeatherSettingsTab(this.app, this)); this.registerEvent(this.app.workspace.on("file-open", async (file) => { if (file) { await new Promise((r) => setTimeout(r, 2e3)); await this.replaceTemplateStrings(); await this.updateCurrentWeatherDiv(); } })); this.registerEvent(this.app.metadataCache.on("resolved", async () => { await this.replaceTemplateStrings(); await this.updateCurrentWeatherDiv(); })); let updateFreq = this.settings.statusbarUpdateFreq; this.registerInterval(window.setInterval(() => this.updateWeather(), Number(updateFreq) * 60 * 1e3)); this.registerInterval(window.setInterval(() => this.updateCurrentWeatherDiv(), Number(updateFreq) * 60 * 1e3)); } async updateCurrentWeatherDiv() { const view = this.app.workspace.getActiveViewOfType(import_obsidian.MarkdownView); if (!view) return; if (document.getElementsByClassName("weather_current_1").length === 1) { const divEl = document.getElementsByClassName("weather_current_1")[0]; let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat1); let weatherStr = await wstr.getWeatherString(); divEl.innerHTML = weatherStr; } if (document.getElementsByClassName("weather_current_2").length === 1) { const divEl = document.getElementsByClassName("weather_current_2")[0]; let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat2); let weatherStr = await wstr.getWeatherString(); divEl.innerHTML = weatherStr; } if (document.getElementsByClassName("weather_current_3").length === 1) { const divEl = document.getElementsByClassName("weather_current_3")[0]; let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat3); let weatherStr = await wstr.getWeatherString(); divEl.innerHTML = weatherStr; } if (document.getElementsByClassName("weather_current_4").length === 1) { const divEl = document.getElementsByClassName("weather_current_4")[0]; let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat4); let weatherStr = await wstr.getWeatherString(); divEl.innerHTML = weatherStr; } } async replaceTemplateStrings() { const view = this.app.workspace.getActiveViewOfType(import_obsidian.MarkdownView); if (!view) return; const file = app.workspace.getActiveFile(); if (view.file.parent.path === this.settings.excludeFolder) return; let editor = view.getViewData(); if (editor == null) return; if (this.settings.weatherFormat1.length > 0) { if (editor.contains("%weather1%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat1); let weatherStr = await wstr.getWeatherString(); editor = editor.replace(/%weather1%/gmi, weatherStr); file == null ? void 0 : file.vault.modify(file, editor); } } if (this.settings.weatherFormat2.length > 0) { if (editor.contains("%weather2%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat2); let weatherStr = await wstr.getWeatherString(); editor = editor.replace(/%weather2%/gmi, weatherStr); file == null ? void 0 : file.vault.modify(file, editor); } } if (this.settings.weatherFormat3.length > 0) { if (editor.contains("%weather3%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat3); let weatherStr = await wstr.getWeatherString(); editor = editor.replace(/%weather3%/gmi, weatherStr); file == null ? void 0 : file.vault.modify(file, editor); } } if (this.settings.weatherFormat4.length > 0) { if (editor.contains("%weather4%")) { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormat4); let weatherStr = await wstr.getWeatherString(); editor = editor.replace(/%weather4%/gmi, weatherStr); file == null ? void 0 : file.vault.modify(file, editor); } } } async updateWeather() { if (this.settings.statusbarActive) { if (this.settings.key.length == 0 || this.settings.location.length == 0) { if (displayErrorMsg) { new import_obsidian.Notice("OpenWeather plugin settings are undefined, check your settings."); this.statusBar.setText(""); displayErrorMsg = false; } } else { let wstr = new FormatWeather(this.settings.location, this.settings.key, this.settings.units, this.settings.weatherFormatSB); let weatherStr = await wstr.getWeatherString(); this.statusBar.setText(weatherStr); } } else { this.statusBar.setText(""); } } onunload() { } async loadSettings() { this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); } async saveSettings() { await this.saveData(this.settings); } }; var ALL_COMMANDS = []; var InsertWeatherPicker = class extends import_obsidian.SuggestModal { constructor(location, key, units, weatherFormat1, weatherFormat2, weatherFormat3, weatherFormat4) { super(app); this.location = location; this.key = key; this.units = units; this.weatherFormat1 = weatherFormat1; this.weatherFormat2 = weatherFormat2; this.weatherFormat3 = weatherFormat3; this.weatherFormat4 = weatherFormat4; } async getSuggestions(query) { ALL_COMMANDS = []; if (this.weatherFormat1.length > 0) { let wstr = new FormatWeather(this.location, this.key, this.units, this.weatherFormat1); let weatherStr = await wstr.getWeatherString(); this.weatherFormat1 = weatherStr; ALL_COMMANDS.push({ command: "Insert Weather String - Format 1", format: this.weatherFormat1 }); } if (this.weatherFormat2.length > 0) { let wstr = new FormatWeather(this.location, this.key, this.units, this.weatherFormat2); let weatherStr = await wstr.getWeatherString(); this.weatherFormat2 = weatherStr; ALL_COMMANDS.push({ command: "Insert Weather String - Format 2", format: this.weatherFormat2 }); } if (this.weatherFormat3.length > 0) { let wstr = new FormatWeather(this.location, this.key, this.units, this.weatherFormat3); let weatherStr = await wstr.getWeatherString(); this.weatherFormat3 = weatherStr; ALL_COMMANDS.push({ command: "Insert Weather String - Format 3", format: this.weatherFormat3 }); } if (this.weatherFormat4.length > 0) { let wstr = new FormatWeather(this.location, this.key, this.units, this.weatherFormat4); let weatherStr = await wstr.getWeatherString(); this.weatherFormat4 = weatherStr; ALL_COMMANDS.push({ command: "Insert Weather String - Format 4", format: this.weatherFormat4 }); } ALL_COMMANDS.push({ command: "Replace Template Strings", format: "Replace all occurences of %weather1%, %weather2%, %weather3% and %weather4%\nin the current document." }); return ALL_COMMANDS.filter((command) => command.command.toLowerCase().includes(query.toLowerCase())); } renderSuggestion(command, el) { el.createEl("div", { text: command.command }); el.createEl("small", { text: command.format }); } async onChooseSuggestion(command, evt) { this.command = command.command; this.format = command.format; this.close(); const view = this.app.workspace.getActiveViewOfType(import_obsidian.MarkdownView); if (!view) return; if (view.file.parent.path === "Templates") return; let editor = view.getViewData(); if (editor == null) return; if (command.command == "Replace Template Strings") { if (this.weatherFormat1.length > 0) { editor = editor.replace(/%weather1%/gmi, this.weatherFormat1); view.setViewData(editor, false); } if (this.weatherFormat2.length > 0) { editor = editor.replace(/%weather2%/gmi, this.weatherFormat2); view.setViewData(editor, false); } if (this.weatherFormat3.length > 0) { editor = editor.replace(/%weather3%/gmi, this.weatherFormat3); view.setViewData(editor, false); } if (this.weatherFormat4.length > 0) { editor = editor.replace(/%weather4%/gmi, this.weatherFormat4); view.setViewData(editor, false); } } else { view.editor.replaceSelection(this.format); } } }; var OpenWeatherSettingsTab = class extends import_obsidian.PluginSettingTab { constructor(app2, plugin) { super(app2, plugin); this.plugin = plugin; } display() { const { containerEl } = this; containerEl.empty(); const abstractFiles = app.vault.getAllLoadedFiles(); const folders = []; abstractFiles.forEach((folder) => { if (folder instanceof import_obsidian.TFolder && folder.name.length > 0) { folders.push(folder); } }); containerEl.createEl("h2", { text: "Settings for calling OpenWeather API" }); new import_obsidian.Setting(containerEl).setName("Enter Location").setDesc("Name of the city you want to retrieve weather for").addText((text) => text.setPlaceholder("Enter city Eg. edmonton").setValue(this.plugin.settings.location).onChange(async (value) => { this.plugin.settings.location = value; await this.plugin.saveSettings(); await this.plugin.updateWeather(); })); new import_obsidian.Setting(containerEl).setName("OpenWeather API Key").setDesc("A free OpenWeather API key is required for the plugin to work. Go to https://openweathermap.org to register and get a key").addText((text) => text.setPlaceholder("Enter OpenWeather API Key").setValue(this.plugin.settings.key).onChange(async (value) => { this.plugin.settings.key = value; await this.plugin.saveSettings(); await this.plugin.updateWeather(); })); new import_obsidian.Setting(containerEl).setName("Units of Measurement").setDesc("Units of measurement. Standard, Metric and Imperial units are available").addDropdown((dropDown) => { dropDown.addOption("standard", "Standard"); dropDown.addOption("metric", "Metric"); dropDown.addOption("imperial", "Imperial"); dropDown.onChange(async (value) => { this.plugin.settings.units = value; await this.plugin.saveSettings(); await this.plugin.updateWeather(); }).setValue(this.plugin.settings.units); }); containerEl.createEl("br"); containerEl.createEl("h2", { text: "Folder to Exclude From Automatic Template Strings Replacement" }); new import_obsidian.Setting(containerEl).setName("Exclude Folder").setDesc("Folder to Exclude from Automatic Template String Replacement").addDropdown((dropDown) => { folders.forEach((e) => { dropDown.addOption(e.name, e.name); }); dropDown.onChange(async (value) => { this.plugin.settings.excludeFolder = value; await this.plugin.saveSettings(); }).setValue(this.plugin.settings.excludeFolder); }); containerEl.createEl("br"); containerEl.createEl("h2", { text: "Weather Strings Formatting (Up to 4 Strings are Available)" }); new import_obsidian.Setting(containerEl).setName("Weather String Format 1").setDesc("Weather string format one").addTextArea((textArea) => { textArea.setPlaceholder("Weather String Format 1").setValue(this.plugin.settings.weatherFormat1).onChange(async (value) => { this.plugin.settings.weatherFormat1 = value; await this.plugin.saveSettings(); }); textArea.inputEl.setAttr("rows", 10); textArea.inputEl.setAttr("cols", 60); }); new import_obsidian.Setting(containerEl).setName("Weather String Format 2").setDesc("Weather string format two").addTextArea((textArea) => { textArea.setPlaceholder("Weather String Format 2").setValue(this.plugin.settings.weatherFormat2).onChange(async (value) => { this.plugin.settings.weatherFormat2 = value; await this.plugin.saveSettings(); }); textArea.inputEl.setAttr("rows", 10); textArea.inputEl.setAttr("cols", 60); }); new import_obsidian.Setting(containerEl).setName("Weather String Format 3").setDesc("Weather string format three").addTextArea((textArea) => { textArea.setPlaceholder("Weather String Format 3").setValue(this.plugin.settings.weatherFormat3).onChange(async (value) => { this.plugin.settings.weatherFormat3 = value; await this.plugin.saveSettings(); }); textArea.inputEl.setAttr("rows", 10); textArea.inputEl.setAttr("cols", 60); }); new import_obsidian.Setting(containerEl).setName("Weather String Format 4").setDesc("Weather string format four").addTextArea((textArea) => { textArea.setPlaceholder("Weather String Format 4").setValue(this.plugin.settings.weatherFormat4).onChange(async (value) => { this.plugin.settings.weatherFormat4 = value; await this.plugin.saveSettings(); }); textArea.inputEl.setAttr("rows", 10); textArea.inputEl.setAttr("cols", 60); }); if (import_obsidian.Platform.isDesktop) { containerEl.createEl("br"); containerEl.createEl("h2", { text: "Show Weather in Statusbar Options" }); new import_obsidian.Setting(containerEl).setName("Show Weather in Statusbar").setDesc("Enable weather display in statusbar").addToggle((toggle) => toggle.setValue(this.plugin.settings.statusbarActive).onChange(async (value) => { this.plugin.settings.statusbarActive = value; await this.plugin.saveSettings(); await this.plugin.updateWeather(); })); new import_obsidian.Setting(containerEl).setName("Weather String Format Statusbar").setDesc("Weather string format for the statusbar").addTextArea((textArea) => { textArea.setPlaceholder("Statusbar Weather Format").setValue(this.plugin.settings.weatherFormatSB).onChange(async (value) => { this.plugin.settings.weatherFormatSB = value; await this.plugin.saveSettings(); await this.plugin.updateWeather(); }); textArea.inputEl.setAttr("rows", 10); textArea.inputEl.setAttr("cols", 60); }); } else { this.plugin.settings.statusbarActive = false; } containerEl.createEl("br"); containerEl.createEl("h2", { text: `Show Weather in Statusbar and Dynamic DIV's Delay` }); new import_obsidian.Setting(containerEl).setName("Update Frequency").setDesc("Update frequency for weather information displayed on the statusbar and dynamic DIV's").addDropdown((dropDown) => { dropDown.addOption("1", "Every Minute"); dropDown.addOption("5", "Every 5 Minutes"); dropDown.addOption("10", "Every 10 Minutes"); dropDown.addOption("15", "Every 15 Minutes"); dropDown.addOption("20", "Every 20 Minutes"); dropDown.addOption("30", "Every 30 Minutes"); dropDown.addOption("60", "Every Hour"); dropDown.onChange(async (value) => { this.plugin.settings.statusbarUpdateFreq = value; await this.plugin.saveSettings(); await this.plugin.updateWeather(); }).setValue(this.plugin.settings.statusbarUpdateFreq); }); } };