UNPKG

iobroker.nspanel-lovelace-ui

Version:

NsPanel Lovelace UI is a Firmware for the nextion screen inside of NSPanel in the Design of Lovelace UI Design.

172 lines (171 loc) 6.87 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; 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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var pageTrash_exports = {}; __export(pageTrash_exports, { getTrashDataFromFile: () => getTrashDataFromFile, getTrashDataFromState: () => getTrashDataFromState }); module.exports = __toCommonJS(pageTrash_exports); var import_Color = require("../../const/Color"); var import_node_ical = __toESM(require("node-ical")); async function getTrashDataFromState(trashJSON, entry) { var _a; const items = []; const countItems = (_a = entry.countItems) != null ? _a : 6; try { let trashData; if (typeof trashJSON === "string") { trashData = JSON.parse(trashJSON); } else if (Array.isArray(trashJSON)) { trashData = trashJSON; } else { return { messages: items, error: new Error("trashJSON must be a string or array ") }; } if (!Array.isArray(trashData)) { return { messages: items, error: new Error("trashData is not an array") }; } for (const trashObject of trashData) { if (new Date(trashObject._date).setHours(0, 0, 0, 0) < (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0)) { continue; } const result = getTrashItem( { start: trashObject._date, summary: trashObject.event }, countItems, entry.items ); if (result) { items.push(result); } if (items.length >= 6) { break; } } return { messages: items }; } catch (error) { return { messages: items, error }; } } async function getTrashDataFromFile(entry, adapter) { var _a; const items = []; const trashFile = entry.trashFile; const countItems = (_a = entry.countItems) != null ? _a : 6; try { if (!await adapter.fileExistsAsync(adapter.namespace, trashFile)) { return { messages: items, error: `File ${trashFile} does not exist in ioBroker files` }; } let fileData; try { fileData = (await adapter.readFileAsync(adapter.namespace, trashFile)).file.toString("utf-8"); } catch (readError) { console.error(`Error reading ${trashFile} from ioBroker files:`, readError); return { messages: items, error: readError }; } const data = import_node_ical.default.parseICS(fileData); const arrayData = Object.values(data).filter( (entry2) => entry2 !== void 0 && typeof entry2 === "object" && entry2.type === "VEVENT" && new Date(entry2.start).setHours(0, 0, 0, 0) >= (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0) ); arrayData.sort((a, b) => { const dateA = new Date(a.start).getTime(); const dateB = new Date(b.start).getTime(); return dateA - dateB; }); for (const event of arrayData) { if (event.type === "VEVENT") { const result = getTrashItem(event, countItems, entry.items); if (result) { items.push(result); } if (items.length >= 6) { break; } } } return { messages: items }; } catch (error) { console.error("Error in getTrashDataFromFile:", error); return { messages: items, error }; } } function getTrashItem(event, countItems, items) { const eventSummary = event.summary !== void 0 ? event.summary : null; const eventName = typeof eventSummary === "string" ? eventSummary : eventSummary == null ? void 0 : eventSummary.val; if (!eventName || typeof eventName !== "string" || eventName.trim() === "") { return null; } let trashIndex = -1; for (let i = 0; i < items.length; i++) { const trashText = items[i].textTrash; const trashName = typeof trashText === "string" ? trashText : trashText == null ? void 0 : trashText.val; if (trashName && typeof trashName === "string" && trashName.trim() !== "" && eventName.includes(trashName)) { trashIndex = i; break; } } if (trashIndex === -1) { return null; } const item = items[trashIndex]; const trashType = item.textTrash || ""; const customTrash = item.customTrash || ""; const iconColor = item.iconColor || ""; const icon = item.icon || "calendar-month"; const eventStartdatum = new Date(event.start || 1); let eventDatum = ""; const tempDate = new Date(eventStartdatum).setHours(0, 0, 0, 0); if (tempDate == (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0)) { eventDatum = "today"; } else if (tempDate === new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + 1)).setHours(0, 0, 0, 0)) { eventDatum = "tomorrow"; } else if (tempDate > new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + 1)).setHours(0, 0, 0, 0) && tempDate < new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() + 8)).setHours(0, 0, 0, 0)) { eventDatum = countItems < 6 ? eventStartdatum.toLocaleString("de-DE", { weekday: "long" }) : eventStartdatum.toLocaleString("de-DE", { weekday: "short" }); } else { eventDatum = (countItems < 6 ? eventStartdatum.toLocaleString("de-DE", { year: "numeric", month: "2-digit", day: "2-digit" }) : eventStartdatum.toLocaleString("de-DE", { year: "2-digit", month: "2-digit", day: "2-digit" })) || ""; } return { icon, color: import_Color.Color.ConvertHexToRgb(iconColor), text: customTrash && customTrash !== "" ? customTrash : trashType, text1: eventDatum }; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getTrashDataFromFile, getTrashDataFromState }); //# sourceMappingURL=pageTrash.js.map