@iobroker/adapter-react-v5 4.7.14 → 4.7.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -749,7 +749,7 @@ var Utils = /*#__PURE__*/function () {
749
749
  }
750
750
  }, title ? title[1] : ''));
751
751
  }
752
- m = text && text.match(/<a [^<]+<\/a>|<br\/?>|<b>[^<]+<\/b>|<i>[^<]+<\/i>/);
752
+ m = text && text.match(/<a [^<]+<\/a>|<br\s?\/?>|<b>[^<]+<\/b>|<i>[^<]+<\/i>/);
753
753
  if (!m) {
754
754
  text && result.push( /*#__PURE__*/_react["default"].createElement("span", {
755
755
  key: "a".concat(key++)
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","names":["_react","_interopRequireDefault","require","_copyToClipboard","_i18n","NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","_classCallCheck2","_createClass2","key","value","CapitalWords","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","formatSeconds","seconds","days_","Math","floor","hours","concat","minutes","text","I18n","t","getObjectName","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","_typeof2","en","desc","de","ru","toString","replace","pos","lastIndexOf","trim","getObjectNameFromObj","obj","noTrim","_id","getSettingsOrder","forEnumId","Object","prototype","hasOwnProperty","call","custom","user","subOrder","JSON","parse","stringify","order","getSettingsCustomURLs","subURLs","URLs","reorder","list","source","dest","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","getSettings","defaultEnabling","_obj","enabled","undefined","useCustom","icon","color","setSettings","s","useCommon","getIcon","style","length","createElement","startsWith","alt","src","prefix","getObjectIcon","parts","location","pathname","match","splitCamelCase","isUseBright","defaultValue","slice","r","g","b","rgb","parseInt","getTimeString","parseFloat","Number","isNaN","secs","getWindDirection","angle","padding","num","setDataFormat","format","dateFormat","indexOf","date2string","now","m","a","year","find","y","day","mm","Date","abs","getTime","date","getDay","getDate","getMonth","renderTextWithA","start","index","push","href","target","rel","title","getSmartName","states","instanceId","noCommon","_states$id$common","_states$common","smartName","getSmartNameFromObj","_obj$common","enableSmartName","removeSmartName","updateSmartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","includes","empty","nl","pl","it","fr","pt","es","uk","disableSmartName","copyToClipboard","e","stopPropagation","preventDefault","copy","getFileExtension","fileName","formatBytes","bytes","units","u","toFixed","getInvertedColor","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","color2rgb","rgb2lab","pow","x","z","colorDistance","color1","color2","lab1","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","i","_toVal","mix","str","isArray","k","clsx","tmp","arguments","getThemeName","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","getThemeType","setThemeName","setItem","toggleTheme","themes","getThemeNames","newTheme","parseQuery","query","forEach","part","decodeURIComponent","f","getParentId","p","pop","formatDate","dateObj","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","formatTime","round","d","h","MDtext2link","openLink","url","open","MDgetTitle","extractHeader","header","body","lines","MDextractHeader","attrs","_header","line","pos_","MDremoveDocsify","doc","generateFile","filename","json","el","document","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality2text","quality","clone","object","getStates","_obj$common2","ex","error","type","getSvg","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","detectMimeType","base64","signature","keys","isStableRepository","activeRepo","isStringInteger","isValidDate","_defineProperty2","_default","exports"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2023 Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\nimport I18n from '../i18n';\n\nconst NAMESPACE = 'material';\nconst days = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nconst months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst QUALITY_BITS = {\n 0x00: '0x00 - good',\n\n 0x01: '0x01 - general problem',\n 0x02: '0x02 - no connection problem',\n\n 0x10: '0x10 - substitute value from controller',\n 0x20: '0x20 - substitute initial value',\n 0x40: '0x40 - substitute value from device or instance',\n 0x80: '0x80 - substitute value from sensor',\n\n 0x11: '0x11 - general problem by instance',\n 0x41: '0x41 - general problem by device',\n 0x81: '0x81 - general problem by sensor',\n\n 0x12: '0x12 - instance not connected',\n 0x42: '0x42 - device not connected',\n 0x82: '0x82 - sensor not connected',\n\n 0x44: '0x44 - device reports error',\n 0x84: '0x84 - sensor reports error',\n};\nconst SIGNATURES = {\n JVBERi0: 'pdf',\n R0lGODdh: 'gif',\n R0lGODlh: 'gif',\n iVBORw0KGgo: 'png',\n '/9j/': 'jpg',\n PHN2Zw: 'svg',\n Qk1: 'bmp',\n AAABAA: 'ico', // 00 00 01 00 according to https://en.wikipedia.org/wiki/List_of_file_signatures\n};\n\nclass Utils {\n static namespace = NAMESPACE;\n\n static INSTANCES = 'instances';\n\n static dateFormat = ['DD', 'MM'];\n\n static FORBIDDEN_CHARS = /[^._\\-/ :!#$%&()+=@^{}|~\\p{Ll}\\p{Lu}\\p{Nd}]+/gu;\n\n /**\n * Capitalize words.\n * @param {string | undefined} name\n * @returns {string}\n */\n static CapitalWords(name) {\n return (name || '').split(/[\\s_]/)\n .filter(item => item)\n .map(word => (word ? word[0].toUpperCase() + word.substring(1).toLowerCase() : ''))\n .join(' ');\n }\n\n static formatSeconds(seconds) {\n const days_ = Math.floor(seconds / (3600 * 24));\n seconds %= 3600 * 24;\n let hours = Math.floor(seconds / 3600);\n if (hours < 10) {\n hours = `0${hours}`;\n }\n seconds %= 3600;\n let minutes = Math.floor(seconds / 60);\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n seconds %= 60;\n seconds = Math.floor(seconds);\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n let text = '';\n if (days_) {\n text += `${days_} ${I18n.t('ra_daysShortText')} `;\n }\n text += `${hours}:${minutes}:${seconds}`;\n\n return text;\n }\n\n /**\n * Get the name of the object by id from the name or description.\n * @param {Record<string, ioBroker.Object>} objects\n * @param {string} id\n * @param {{ name: any; } | ioBroker.Languages | null} settings\n * @param {{ language?: ioBroker.Languages; }} options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @returns {string}\n */\n static getObjectName(objects, id, settings, options, isDesc) {\n const item = objects[id];\n let text;\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = { language: settings };\n settings = null;\n }\n\n options = options || {};\n if (!options.language) {\n options.language = (objects['system.config'] && objects['system.config'].common && objects['system.config'].common.language) || window.sysLang || 'en';\n }\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en || text.de || text.ru || '';\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n } else {\n const pos = id.lastIndexOf('.');\n text = id.substring(pos + 1).replace(/[_.]/g, ' ');\n text = Utils.CapitalWords(text);\n }\n\n return text.trim();\n }\n\n /**\n * Get the name of the object from the name or description.\n * @param {ioBroker.PartialObject} obj\n * @param {{ name: any; } | ioBroker.Languages | null } settings or language\n * @param {{ language?: ioBroker.Languages; } } options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @param {boolean} [noTrim] Allow to use spaces in name (by edit)\n * @returns {string}\n */\n static getObjectNameFromObj(obj, settings, options, isDesc, noTrim) {\n const item = obj;\n let text = (obj && obj._id) || '';\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = { language: settings };\n settings = null;\n }\n\n options = options || {};\n\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n }\n return noTrim ? text : text.trim();\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n * @returns {string | null}\n */\n static getSettingsOrder(obj, forEnumId, options) {\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subOrder && settings[user].subOrder[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subOrder[forEnumId]));\n }\n } else if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\n }\n }\n return null;\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n */\n static getSettingsCustomURLs(obj, forEnumId, options) {\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subURLs && settings[user].subURLs[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subURLs[forEnumId]));\n }\n } else if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\n }\n }\n return null;\n }\n\n /**\n * Reorder the array items in list between source and dest.\n * @param {Iterable<any> | ArrayLike<any>} list\n * @param {number} source\n * @param {number} dest\n */\n static reorder(list, source, dest) {\n const result = Array.from(list);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n return result;\n }\n\n /**\n * @param {any} obj\n * @param {{ id: any; user: any; name: any; icon: any; color: any; language: ioBroker.Languages; }} options\n * @param {boolean} [defaultEnabling]\n */\n static getSettings(obj, options, defaultEnabling) {\n let settings;\n const id = (obj && obj._id) || (options && options.id);\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\n obj = obj.common;\n }\n if (obj?.custom) {\n settings = obj.custom;\n settings = settings[NAMESPACE] && settings[NAMESPACE][options.user || 'admin'] ? JSON.parse(JSON.stringify(settings[NAMESPACE][options.user || 'admin'])) : { enabled: true };\n } else {\n settings = { enabled: defaultEnabling === undefined ? true : defaultEnabling, useCustom: false };\n }\n\n if (!Object.prototype.hasOwnProperty.call(settings, 'enabled')) {\n settings.enabled = defaultEnabling === undefined ? true : defaultEnabling;\n }\n\n // if (false && settings.useCommon) {\n // if (obj.color) settings.color = obj.color;\n // if (obj.icon) settings.icon = obj.icon;\n // if (obj.name) settings.name = obj.name;\n // } else {\n if (options) {\n if (!settings.name && options.name) settings.name = options.name;\n if (!settings.icon && options.icon) settings.icon = options.icon;\n if (!settings.color && options.color) settings.color = options.color;\n }\n\n if (obj) {\n if (!settings.color && obj.color) settings.color = obj.color;\n if (!settings.icon && obj.icon) settings.icon = obj.icon;\n if (!settings.name && obj.name) settings.name = obj.name;\n }\n // }\n\n if (typeof settings.name === 'object') {\n settings.name = settings.name[options.language] || settings.name.en;\n\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n\n if (settings.name === settings.name.toUpperCase()) {\n settings.name = settings.name[0] + settings.name.substring(1).toLowerCase();\n }\n }\n if (!settings.name && id) {\n const pos = id.lastIndexOf('.');\n settings.name = id.substring(pos + 1).replace(/[_.]/g, ' ');\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n settings.name = Utils.CapitalWords(settings.name);\n }\n\n return settings;\n }\n\n /**\n * @param {any} obj\n * @param {any} settings\n * @param {{ user: any; language: ioBroker.Languages; }} options\n */\n static setSettings(obj, settings, options) {\n if (obj) {\n obj.common = obj.common || {};\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[NAMESPACE] = obj.common.custom[NAMESPACE] || {};\n obj.common.custom[NAMESPACE][options.user || 'admin'] = settings;\n const s = obj.common.custom[NAMESPACE][options.user || 'admin'];\n if (s.useCommon) {\n if (s.color !== undefined) {\n obj.common.color = s.color;\n delete s.color;\n }\n if (s.icon !== undefined) {\n obj.common.icon = s.icon;\n delete s.icon;\n }\n if (s.name !== undefined) {\n if (typeof obj.common.name !== 'object') {\n obj.common.name = {};\n obj.common.name[options.language] = s.name;\n } else {\n obj.common.name[options.language] = s.name;\n }\n delete s.name;\n }\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Get the icon for the given settings.\n * @param {{ icon: string | undefined; name: string | undefined; prefix: string | undefined}} settings\n * @param {any} style\n * @returns {JSX.Element | null}\n */\n static getIcon(settings, style) {\n if (settings && settings.icon) {\n // If UTF-8 icon\n if (settings.icon.length <= 2) {\n return <span style={style || {}}>{settings.icon}</span>;\n }\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}} />;\n }\n // maybe later some changes for a second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}} />;\n }\n return null;\n }\n\n /**\n * Get the icon for the given object.\n * @param {string} id\n * @param {{ common: { icon: any; }; }} obj\n * @returns {string | null}\n */\n static getObjectIcon(id, obj) {\n // If id is Object\n if (typeof id === 'object') {\n obj = id;\n id = obj._id;\n }\n\n if (obj && obj.common && obj.common.icon) {\n let icon = obj.common.icon;\n // If UTF-8 icon\n if (typeof icon === 'string' && icon.length <= 2) {\n return icon;\n }\n if (icon.startsWith('data:image')) {\n return icon;\n }\n\n const parts = id.split('.');\n if (parts[0] === 'system') {\n icon = `adapter/${parts[2]}${icon.startsWith('/') ? '' : '/'}${icon}`;\n } else {\n icon = `adapter/${parts[0]}${icon.startsWith('/') ? '' : '/'}${icon}`;\n }\n\n if (window.location.pathname.match(/adapter\\/[^/]+\\/[^/]+\\.html/)) {\n icon = `../../${icon}`;\n } else if (window.location.pathname.match(/material\\/[.\\d]+/)) {\n icon = `../../${icon}`;\n } else if (window.location.pathname.match(/material\\//)) {\n icon = `../${icon}`;\n }\n return icon;\n }\n\n return null;\n }\n\n /**\n * Splits CamelCase into words.\n * @param {string | undefined} text\n * @returns {string}\n */\n static splitCamelCase(text) {\n // if (false && text !== text.toUpperCase()) {\n // const words = text.split(/\\s+/);\n // for (let i = 0; i < words.length; i++) {\n // const word = words[i];\n // if (word.toLowerCase() !== word && word.toUpperCase() !== word) {\n // let z = 0;\n // const ww = [];\n // let start = 0;\n // while (z < word.length) {\n // if (word[z].match(/[A-ZÜÄÖА-Я]/)) {\n // ww.push(word.substring(start, z));\n // start = z;\n // }\n // z++;\n // }\n // if (start !== z) {\n // ww.push(word.substring(start, z));\n // }\n // for (let k = 0; k < ww.length; k++) {\n // words.splice(i + k, 0, ww[k]);\n // }\n // i += ww.length;\n // }\n // }\n //\n // return words.map(w => {\n // w = w.trim();\n // if (w) {\n // return w[0].toUpperCase() + w.substring(1).toLowerCase();\n // }\n // return '';\n // }).join(' ');\n // }\n return Utils.CapitalWords(text);\n }\n\n /**\n * Check if the given color is bright.\n * https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n * @param {string | null | undefined} color\n * @param {boolean} [defaultValue]\n * @returns {boolean}\n */\n static isUseBright(color, defaultValue) {\n if (color === null || color === undefined || color === '') {\n return defaultValue === undefined ? true : defaultValue;\n }\n color = color.toString();\n if (color.startsWith('#')) {\n color = color.slice(1);\n }\n let r;\n let g;\n let b;\n\n const rgb = color.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n if (rgb && rgb.length === 4) {\n r = parseInt(rgb[1], 10);\n g = parseInt(rgb[2], 10);\n b = parseInt(rgb[3], 10);\n } else {\n // convert 3-digit hex to 6-digits.\n if (color.length === 3) {\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\n }\n // remove alfa channel\n if (color.length === 8) {\n color = color.substring(0, 6);\n } else if (color.length !== 6) {\n return false;\n }\n\n r = parseInt(color.slice(0, 2), 16);\n g = parseInt(color.slice(2, 4), 16);\n b = parseInt(color.slice(4, 6), 16);\n }\n\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) <= 186;\n }\n\n /**\n * Get the time string in the format 00:00.\n * @param {string | number} seconds\n */\n static getTimeString(seconds) {\n seconds = parseFloat(seconds);\n if (Number.isNaN(seconds)) {\n return '--:--';\n }\n const hours = Math.floor(seconds / 3600);\n let minutes = Math.floor((seconds % 3600) / 60);\n let secs = seconds % 60;\n if (hours) {\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n if (secs < 10) {\n secs = `0${secs}`;\n }\n return `${hours}:${minutes}:${secs}`;\n }\n\n if (secs < 10) {\n secs = `0${secs}`;\n }\n return `${minutes}:${secs}`;\n }\n\n /**\n * Gets the wind direction with the given angle (degrees).\n * @param {number} angle in degrees.\n * @returns {string | undefined}\n */\n static getWindDirection(angle) {\n if (angle >= 0 && angle < 11.25) {\n return 'N';\n }\n if (angle >= 11.25 && angle < 33.75) {\n return 'NNE';\n }\n if (angle >= 33.75 && angle < 56.25) {\n return 'NE';\n }\n if (angle >= 56.25 && angle < 78.75) {\n return 'ENE';\n }\n if (angle >= 78.75 && angle < 101.25) {\n return 'E';\n }\n if (angle >= 101.25 && angle < 123.75) {\n return 'ESE';\n }\n if (angle >= 123.75 && angle < 146.25) {\n return 'SE';\n }\n if (angle >= 146.25 && angle < 168.75) {\n return 'SSE';\n }\n if (angle >= 168.75 && angle < 191.25) {\n return 'S';\n }\n if (angle >= 191.25 && angle < 213.75) {\n return 'SSW';\n }\n if (angle >= 213.75 && angle < 236.25) {\n return 'SW';\n }\n if (angle >= 236.25 && angle < 258.75) {\n return 'WSW';\n }\n if (angle >= 258.75 && angle < 281.25) {\n return 'W';\n }\n if (angle >= 281.25 && angle < 303.75) {\n return 'WNW';\n }\n if (angle >= 303.75 && angle < 326.25) {\n return 'NW';\n }\n if (angle >= 326.25 && angle < 348.75) {\n return 'NNW';\n }\n // if (angle >= 348.75) {\n return 'N';\n }\n\n /**\n * Pad the given number with a zero if it's not 2 digits long.\n * @param {string | number} num\n */\n static padding(num) {\n if (typeof num === 'string') {\n if (num.length < 2) {\n return `0${num}`;\n }\n return num;\n }\n if (num < 10) {\n return `0${num}`;\n }\n return num;\n }\n\n /**\n * Sets the date format.\n * @param {string} format\n */\n static setDataFormat(format) {\n if (format) {\n Utils.dateFormat = format.toUpperCase().split(/[.-/]/);\n Utils.dateFormat.splice(Utils.dateFormat.indexOf('YYYY'), 1);\n }\n }\n\n /**\n * Converts the date to a string.\n * @param {string | number | Date} now\n * @returns {string}\n */\n static date2string(now) {\n if (typeof now === 'string') {\n now = now.trim();\n if (!now) return '';\n // only letters\n if (now.match(/^[\\w\\s]+$/)) {\n // Day of the week\n return now;\n }\n const m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n const a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n const year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n const day = a.find(mm => mm > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\n // MM DD\n now = new Date(year, a[0] - 1, a[1]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[1] - 1, a[0]);\n }\n } else if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\n // DD MM\n now = new Date(year, a[1] - 1, a[0]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[0] - 1, a[1]);\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n\n let date = I18n.t(`ra_dow_${days[now.getDay()]}`).replace('ra_dow_', '');\n date += `. ${now.getDate()} ${I18n.t(`ra_month_${months[now.getMonth()]}`).replace('ra_month_', '')}`;\n return date;\n }\n\n /**\n * Render a text as a link.\n * @param {string} text\n * @returns {string | JSX.Element[]}\n */\n static renderTextWithA(text) {\n let m = text.match(/<a [^<]+<\\/a>|<br\\s?\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const start = text.substring(0, m.index);\n text = text.substring(m.index + m[0].length);\n start && result.push(<span key={`a${key++}`}>{start}</span>);\n\n if (m[0].startsWith('<b>')) {\n result.push(<b key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</b>);\n } else if (m[0].startsWith('<i>')) {\n result.push(<i key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</i>);\n } else if (m[0].startsWith('<br')) {\n result.push(<br key={`a${key++}`} />);\n } else {\n const href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n const target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n const rel = m[0].match(/rel=\"([^\"]+)\"/) || m[0].match(/rel='([^']+)'/);\n const title = m[0].match(/>([^<]*)</);\n\n // eslint-disable-next-line\n result.push(<a\n key={`a${key++}`}\n href={href ? href[1] : ''}\n target={target ? target[1] : '_blank'}\n rel={rel ? rel[1] : ''}\n style={{ color: 'inherit' }}\n >\n {title ? title[1] : ''}\n </a>);\n }\n\n m = text && text.match(/<a [^<]+<\\/a>|<br\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (!m) {\n text && result.push(<span key={`a${key++}`}>{text}</span>);\n }\n } while (m);\n\n return result;\n }\n\n return text;\n }\n\n /**\n * Get the smart name of the given state.\n * @param {Record<string, ioBroker.StateObject> | ioBroker.StateObject} states\n * @param {string} id\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartName(states, id, instanceId, noCommon) {\n if (!id) {\n if (!noCommon) {\n if (!states.common) {\n return states.smartName;\n }\n if (states && !states.common) {\n return states.smartName;\n }\n return states.common.smartName;\n }\n if (states && !states.common) {\n return states.smartName;\n }\n return states?.common?.custom && states.common.custom[instanceId] ?\n states.common.custom[instanceId].smartName : undefined;\n }\n if (!noCommon) {\n return states[id].common.smartName;\n }\n\n return (states[id] &&\n states[id].common?.custom &&\n states[id].common.custom[instanceId]) ?\n states[id].common.custom[instanceId].smartName || null : null;\n }\n\n /**\n * Get the smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartNameFromObj(obj, instanceId, noCommon) {\n if (!noCommon) {\n if (!obj.common) {\n return obj.smartName;\n }\n if (obj && !obj.common) {\n return obj.smartName;\n }\n return obj.common.smartName;\n }\n if (obj && !obj.common) {\n return obj.smartName;\n }\n\n return obj?.common?.custom && obj.common.custom[instanceId] ?\n obj.common.custom[instanceId].smartName : undefined;\n }\n\n /**\n * Enable smart name for a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static enableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = {};\n } else {\n obj.common.smartName = {};\n }\n }\n\n /**\n * Completely remove smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string | number} instanceId\n * @param {boolean} [noCommon]\n */\n static removeSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n if (obj.common && obj.common.custom && obj.common.custom[instanceId]) {\n obj.common.custom[instanceId] = null;\n }\n } else {\n obj.common.smartName = null;\n }\n }\n\n /**\n * Update the smartname of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} newSmartName\n * @param {string | undefined} byON\n * @param {string | undefined} smartType\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static updateSmartName(obj, newSmartName, byON, smartType, instanceId, noCommon) {\n const language = I18n.getLanguage();\n\n // convert the old format\n if (typeof obj.common.smartName === 'string') {\n const nnn = obj.common.smartName;\n obj.common.smartName = {};\n obj.common.smartName[language] = nnn;\n }\n\n // convert the old settings\n if (obj.native && obj.native.byON) {\n delete obj.native.byON;\n let _smartName = obj.common.smartName;\n\n if (!_smartName || typeof _smartName !== 'object') {\n _smartName = { en: _smartName };\n _smartName[language] = _smartName.en;\n }\n obj.common.smartName = _smartName;\n }\n if (smartType !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n if (!smartType) {\n delete obj.common.custom[instanceId].smartName.smartType;\n } else {\n obj.common.custom[instanceId].smartName.smartType = smartType;\n }\n } else {\n obj.common.smartName = obj.common.smartName || {};\n if (!smartType) {\n delete obj.common.smartName.smartType;\n } else {\n obj.common.smartName.smartType = smartType;\n }\n }\n }\n\n if (byON !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n obj.common.custom[instanceId].smartName.byON = byON;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n obj.common.smartName.byON = byON;\n }\n }\n\n if (newSmartName !== undefined) {\n let smartName;\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n smartName = obj.common.custom[instanceId].smartName;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n smartName = obj.common.smartName;\n }\n smartName[language] = newSmartName;\n\n // If smart name deleted\n if (smartName && (!smartName[language] ||\n (smartName[language] === obj.common.name &&\n (!obj.common.role || obj.common.role.includes('button'))))) {\n delete smartName[language];\n let empty = true;\n // Check if the structure has any definitions\n for (const key in smartName) {\n if (Object.prototype.hasOwnProperty.call(smartName, key)) {\n empty = false;\n break;\n }\n }\n // If empty => delete smartName completely\n if (empty) {\n if (noCommon) {\n if (obj.common.custom[instanceId].smartName.byON === undefined) {\n delete obj.common.custom[instanceId];\n } else {\n delete obj.common.custom[instanceId].en;\n delete obj.common.custom[instanceId].de;\n delete obj.common.custom[instanceId].ru;\n delete obj.common.custom[instanceId].nl;\n delete obj.common.custom[instanceId].pl;\n delete obj.common.custom[instanceId].it;\n delete obj.common.custom[instanceId].fr;\n delete obj.common.custom[instanceId].pt;\n delete obj.common.custom[instanceId].es;\n delete obj.common.custom[instanceId].uk;\n delete obj.common.custom[instanceId]['zh-cn'];\n }\n } else if (obj.common.smartName.byON !== undefined) {\n delete obj.common.smartName.en;\n delete obj.common.smartName.de;\n delete obj.common.smartName.ru;\n delete obj.common.smartName.nl;\n delete obj.common.smartName.pl;\n delete obj.common.smartName.it;\n delete obj.common.smartName.fr;\n delete obj.common.smartName.pt;\n delete obj.common.smartName.es;\n delete obj.common.smartName.uk;\n delete obj.common.smartName['zh-cn'];\n } else {\n obj.common.smartName = null;\n }\n }\n }\n }\n }\n\n /**\n * Disable the smart name of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static disableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = false;\n } else {\n obj.common.smartName = false;\n }\n }\n\n /**\n * Copy text to the clipboard.\n * @param {string} text\n * @param {Event} [e]\n */\n static copyToClipboard(text, e) {\n e && e.stopPropagation();\n e && e.preventDefault();\n return copy(text);\n }\n\n /**\n * Gets the extension of a file name.\n * @param {string | null} [fileName] the file name.\n * @returns {string | null} The extension in lower case.\n */\n static getFileExtension(fileName) {\n const pos = (fileName || '').lastIndexOf('.');\n if (pos !== -1) {\n return fileName.substring(pos + 1).toLowerCase();\n }\n return null;\n }\n\n /**\n * Format number of bytes as a string with B, KB, MB or GB.\n * The base for all calculations is 1024.\n * @param {number} bytes The number of bytes.\n * @returns {string} The formatted string (e.g. '723.5 KB')\n */\n static formatBytes(bytes) {\n if (Math.abs(bytes) < 1024) {\n return `${bytes} B`;\n }\n\n const units = ['KB', 'MB', 'GB'];\n // const units = ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\n let u = -1;\n\n do {\n bytes /= 1024;\n ++u;\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\n\n return `${bytes.toFixed(1)} ${units[u]}`;\n }\n\n /**\n * Invert the given color according to a theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without a hash)\n * @param {string} themeType theme type\n * @param {string} invert dark theme has light color in control or light theme has light color in control\n * @returns {string | undefined}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n }\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n }\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n }\n\n return undefined;\n }\n\n // Big thanks to: https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n /**\n * Invert the given color\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash)\n * @param {boolean} bw Set to black or white.\n * @returns {string}\n */\n static invertColor(hex, bw) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n let alfa = null;\n if (hex.length === 8) {\n alfa = hex.substring(6, 8);\n hex = hex.substring(0, 6);\n } else if (hex.length !== 6) {\n console.warn(`Cannot invert color: ${hex}`);\n return hex;\n }\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n if (bw) {\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? `#000000${alfa || ''}`\n : `#FFFFFF${alfa || ''}`;\n }\n // invert color components\n r = (255 - r).toString(16);\n g = (255 - g).toString(16);\n b = (255 - b).toString(16);\n // pad each with zeros and return\n return `#${r.padStart(2, '0')}${g.padStart(2, '0')}${b.padStart(2, '0')}${alfa || ''}`;\n }\n\n /**\n * Convert RGB to array [r, g, b]\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {Array<number>} Array with 3 elements [r, g, b]\n */\n static color2rgb(hex) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6 && hex.length !== 8) {\n console.warn(`Cannot invert color: ${hex}`);\n return false;\n }\n\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16),\n ];\n }\n\n // Big thanks to: https://github.com/antimatter15/rgb-lab\n /**\n * Convert RGB to LAB\n * @param {Array<number>} rgb color in format [r,g,b]\n * @returns {Array<number>} lab color in format [l,a,b]\n */\n static rgb2lab(rgb) {\n let r = rgb[0] / 255;\n let g = rgb[1] / 255;\n let b = rgb[2] / 255;\n\n r = (r > 0.04045) ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;\n g = (g > 0.04045) ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;\n b = (b > 0.04045) ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;\n\n let x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\n let y = (r * 0.2126 + g * 0.7152 + b * 0.0722); /* / 1.00000; */\n let z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\n\n x = (x > 0.008856) ? x ** 0.33333333 : (7.787 * x) + 0.137931; // 16 / 116;\n y = (y > 0.008856) ? y ** 0.33333333 : (7.787 * y) + 0.137931; // 16 / 116;\n z = (z > 0.008856) ? z ** 0.33333333 : (7.787 * z) + 0.137931; // 16 / 116;\n\n return [(116 * y) - 16, 500 * (x - y), 200 * (y - z)];\n }\n\n /**\n * Calculate the distance between two colors in LAB color space in the range 0-100^2\n * If distance is less than 1000, the colors are similar\n * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {number} distance in the range 0-100^2\n */\n static colorDistance(color1, color2) {\n const lab1 = Utils.rgb2lab(Utils.color2rgb(color1));\n const lab2 = Utils.rgb2lab(Utils.color2rgb(color2));\n const dltL = lab1[0] - lab2[0];\n const dltA = lab1[1] - lab2[1];\n const dltB = lab1[2] - lab2[2];\n const c1 = Math.sqrt(lab1[1] * lab1[1] + lab1[2] * lab1[2]);\n const c2 = Math.sqrt(lab2[1] * lab2[1] + lab2[2] * lab2[2]);\n const dltC = c1 - c2;\n let dltH = dltA * dltA + dltB * dltB - dltC * dltC;\n dltH = dltH < 0 ? 0 : Math.sqrt(dltH);\n const sc = 1.0 + 0.045 * c1;\n const sh = 1.0 + 0.015 * c1;\n const dltLKlsl = dltL;\n const dltCkcsc = dltC / sc;\n const dltHkhsh = dltH / sh;\n const i = dltLKlsl * dltLKlsl + dltCkcsc * dltCkcsc + dltHkhsh * dltHkhsh;\n return i < 0 ? 0 : i;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * @private\n * @param {any} mix\n * @returns {string}\n */\n static _toVal(mix) {\n let y;\n let str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n y = Utils._toVal(mix[k]);\n if (y) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (const k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * Convert any object to a string with its values.\n * @returns {string}\n */\n static clsx() {\n let i = 0;\n let tmp;\n let x;\n let str = '';\n while (i < arguments.length) {\n // eslint-disable-next-line prefer-rest-params\n tmp = arguments[i++];\n if (tmp) {\n x = Utils._toVal(tmp);\n if (x) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n return str;\n }\n\n /**\n * Get the current theme name (either from local storage or the browser settings).\n * @param {string} [themeName]\n * @returns {string}\n */\n static getThemeName(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n\n return themeName || ((window._localStorage || window.localStorage).getItem('App.themeName') ?\n (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored');\n }\n\n /**\n * Get the type of theme.\n * @param {string} [themeName]\n * @returns {'dark' | 'light'}\n */\n static getThemeType(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return 'light';\n }\n\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n return themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light';\n }\n\n /**\n * Set the theme name and theme type.\n * @param {string} themeName\n */\n static setThemeName(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return; // ignore\n }\n (window._localStorage || window.localStorage).setItem('App.themeName', themeName);\n (window._localStorage || window.localStorage).setItem('App.theme', themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light');\n }\n\n /**\n * Toggle the theme name between 'dark' and 'colored'.\n * @param {string | null} themeName\n * @returns {string} the new theme name.\n */\n static toggleTheme(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n\n // dark => blue => colored => light => dark\n const themes = Utils.getThemeNames();\n const pos = themes.indexOf(themeName);\n let newTheme;\n if (pos !== -1) {\n newTheme = themes[(pos + 1) % themes.length];\n } else {\n newTheme = themes[0];\n }\n Utils.setThemeName(newTheme);\n\n return newTheme;\n }\n\n /**\n * Get the list of themes\n * @returns {array<string>} list of possible themes\n */\n static getThemeNames() {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return [window.vendorPrefix];\n }\n\n return ['light', 'dark', 'blue', 'colored'];\n }\n\n /**\n * Parse a query string into its parts.\n * @param {string} query\n * @returns {Record<string, string | boolean | number>}\n */\n static parseQuery(query) {\n query = (query || '').toString().replace(/^\\?/, '');\n /** @type {Record<string, string | boolean | number>} */\n const result = {};\n query.split('&').forEach(part => {\n part = part.trim();\n if (part) {\n const parts = part.split('=');\n const attr = decodeURIComponent(parts[0]).trim();\n if (parts.length > 1) {\n result[attr] = decodeURIComponent(parts[1]);\n if (result[attr] === 'true') {\n result[attr] = true;\n } else if (result[attr] === 'false') {\n result[attr] = false;\n } else {\n const f = parseFloat(result[attr]);\n if (f.toString() === result[attr]) {\n result[attr] = f;\n }\n }\n } else {\n result[attr] = true;\n }\n }\n });\n return result;\n }\n\n /**\n * Returns parent ID.\n * @param {string} id\n * @returns {string | null} parent ID or null if no parent\n */\n static getParentId(id) {\n const p = (id || '').toString().split('.');\n if (p.length > 1) {\n p.pop();\n return p.join('.');\n }\n\n return null;\n }\n\n static formatDate(dateObj, dateFormat) {\n // format could be DD.MM.YYYY, YYYY.MM.DD or MM/DD/YYYY\n\n if (!dateObj) {\n return '';\n }\n\n let text;\n let mm = dateObj.getMonth() + 1;\n if (mm < 10) {\n mm = `0${mm}`;\n }\n\n let dd = dateObj.getDate();\n if (dd < 10) {\n dd = `0${dd}`;\n }\n\n if (dateFormat === 'MM/DD/YYYY') {\n text = `${mm}/${dd}/${dateObj.getFullYear()}`;\n } else {\n text = `${dateObj.getFullYear()}-${mm}-${dd}`;\n }\n\n // time\n let v = dateObj.getHours();\n if (v < 10) {\n text += ` 0${v}`;\n } else {\n text += ` ${v}`;\n }\n v = dateObj.getMinutes();\n if (v < 10) {\n text += `:0${v}`;\n } else {\n text += `:${v}`;\n }\n\n v = dateObj.getSeconds();\n if (v < 10) {\n text += `:0${v}`;\n } else {\n text += `:${v}`;\n }\n\n v = dateObj.getMilliseconds();\n if (v < 10) {\n text += `.00${v}`;\n } else if (v < 100) {\n text += `.0${v}`;\n } else {\n text += `.${v}`;\n }\n\n return text;\n }\n\n static formatTime(seconds) {\n if (seconds) {\n seconds = Math.round(seconds);\n const d = Math.floor(seconds / (3600 * 24));\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n if (d) {\n return `${d}.${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n return '0:00:00';\n }\n\n static MDtext2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, '&nbsp;'));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n // replace IPv6 Address with [ipv6]:port\n url = url.replace(/\\/\\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\\d+)?\\//i, '//[$1]$2/');\n\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static MDgetTitle(text) {\n const result = Utils.extractHeader(text);\n const header = result.header;\n let body = result.body;\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n }\n\n return header.title;\n }\n\n static MDextractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos_ = line.indexOf(':');\n if (pos_ !== -1) {\n const attr = line.substring(0, pos_).trim();\n attrs[attr] = line.substring(pos_ + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return { header: attrs, body: text };\n }\n\n static MDremoveDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n /**\n * Generate the json file on the file for download.\n * @param {string} filename file name\n * @param {string} json file data\n * @returns {object} json structure (not stringified)\n */\n static generateFile(filename, json) {\n const el = document.createElement('a');\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(json, null, 2))}`);\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n /**\n * Convert quality code into text\n * @param {number} quality code\n * @returns {array<string>} lines that decode quality\n */\n static quality2text(quality) {\n // eslint-disable-next-line no-bitwise\n const custom = quality & 0xFFFF0000;\n const text = QUALITY_BITS[quality];\n let result;\n if (text) {\n result = [text];\n // eslint-disable-next-line no-bitwise\n } else if (quality & 0x01) {\n // eslint-disable-next-line no-bitwise\n result = [QUALITY_BITS[0x01], `0x${(quality & (0xFFFF & ~1)).toString(16)}`];\n // eslint-disable-next-line no-bitwise\n } else if (quality & 0x02) {\n // eslint-disable-next-line no-bitwise\n result = [QUALITY_BITS[0x02], `0x${(quality & (0xFFFF & ~2)).toString(16)}`];\n } else {\n result = [`0x${quality.toString(16)}`];\n }\n if (custom) {\n // eslint-disable-next-line no-bitwise\n result.push(`0x${(custom >> 16).toString(16).toUpperCase()}`);\n }\n return result;\n }\n\n /**\n * Deep copy object\n * @param {object} object\n * @returns {object}\n */\n static clone(object) {\n return JSON.parse(JSON.stringify(object));\n }\n\n /**\n * Get states of object\n * @param {object} obj\n * @returns {object} states as an object in form {\"value1\": \"label1\", \"value2\": \"label2\"} or null\n */\n static getStates(obj) {\n let states = obj?.common?.states;\n if (states) {\n if (typeof states === 'string' && states[0] === '{') {\n try {\n states = JSON.parse(states);\n } catch (ex) {\n console.error(`Cannot parse states: ${states}`);\n states = null;\n }\n } else if (typeof states === 'string') {\n // if old format val1:text1;val2:text2\n const parts = states.split(';');\n states = {};\n for (let p = 0; p < parts.length; p++) {\n const s = parts[p].split(':');\n states[s[0]] = s[1];\n }\n } else if (Array.isArray(states)) {\n const result = {};\n if (obj.common.type === 'number') {\n states.forEach((value, key) => result[key] = value);\n } else if (obj.common.type === 'string') {\n states.forEach(value => result[value] = value);\n } else if (obj.common.type === 'boolean') {\n result.false = states[0];\n result.true = states[1];\n }\n\n return result;\n }\n }\n\n return states;\n }\n\n /**\n * Get svg file as text\n * @param {string} url URL of SVG file\n * @returns {object} Promise with \"data:image...\"\n */\n static getSvg(url) {\n return fetch(url)\n .then(response => response.blob())\n .then(blob => new Promise(resolve => {\n const reader = new FileReader();\n // eslint-disable-next-line func-names\n reader.onload = function () { // do not optimize this function. \"this\" is important.\n resolve(this.result);\n };\n reader.readAsDataURL(blob);\n }));\n }\n\n /**\n * Detect file extension by its content\n * @param {string} base64 Base64 encoded binary file\n * @returns {string} Detected extension, like 'jpg'\n */\n static detectMimeType(base64) {\n const signature = Object.keys(SIGNATURES).find(s => base64.startsWith(s));\n return signature ? SIGNATURES[signature] : null;\n }\n\n /**\n * Check if configured repository is the stable repository\n *\n * @param {string | string[]} activeRepo current configured repository or multi repository\n * @return {boolean}\n */\n static isStableRepository(activeRepo) {\n return !!((\n typeof activeRepo === 'string' &&\n activeRepo.toLowerCase().startsWith('stable')\n )\n ||\n (\n activeRepo &&\n typeof activeRepo !== 'string' &&\n activeRepo.find(r => r.toLowerCase().startsWith('stable'))\n ));\n }\n\n /**\n * Check if given string is an integer\n *\n * @param {string} str string to check\n * @return {boolean}\n */\n static isStringInteger(str) {\n return parseInt(str).toString() === str;\n }\n\n /**\n * Check if the date is valid\n *\n * @param {Date} date\n * @return {boolean}\n */\n static isValidDate(date) {\n return date instanceof Date && !isNaN(date);\n }\n}\n\nexport default Utils;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","names":["_react","_interopRequireDefault","require","_copyToClipboard","_i18n","NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","_classCallCheck2","_createClass2","key","value","CapitalWords","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","formatSeconds","seconds","days_","Math","floor","hours","concat","minutes","text","I18n","t","getObjectName","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","_typeof2","en","desc","de","ru","toString","replace","pos","lastIndexOf","trim","getObjectNameFromObj","obj","noTrim","_id","getSettingsOrder","forEnumId","Object","prototype","hasOwnProperty","call","custom","user","subOrder","JSON","parse","stringify","order","getSettingsCustomURLs","subURLs","URLs","reorder","list","source","dest","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","getSettings","defaultEnabling","_obj","enabled","undefined","useCustom","icon","color","setSettings","s","useCommon","getIcon","style","length","createElement","startsWith","alt","src","prefix","getObjectIcon","parts","location","pathname","match","splitCamelCase","isUseBright","defaultValue","slice","r","g","b","rgb","parseInt","getTimeString","parseFloat","Number","isNaN","secs","getWindDirection","angle","padding","num","setDataFormat","format","dateFormat","indexOf","date2string","now","m","a","year","find","y","day","mm","Date","abs","getTime","date","getDay","getDate","getMonth","renderTextWithA","start","index","push","href","target","rel","title","getSmartName","states","instanceId","noCommon","_states$id$common","_states$common","smartName","getSmartNameFromObj","_obj$common","enableSmartName","removeSmartName","updateSmartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","includes","empty","nl","pl","it","fr","pt","es","uk","disableSmartName","copyToClipboard","e","stopPropagation","preventDefault","copy","getFileExtension","fileName","formatBytes","bytes","units","u","toFixed","getInvertedColor","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","color2rgb","rgb2lab","pow","x","z","colorDistance","color1","color2","lab1","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","i","_toVal","mix","str","isArray","k","clsx","tmp","arguments","getThemeName","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","getThemeType","setThemeName","setItem","toggleTheme","themes","getThemeNames","newTheme","parseQuery","query","forEach","part","decodeURIComponent","f","getParentId","p","pop","formatDate","dateObj","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","formatTime","round","d","h","MDtext2link","openLink","url","open","MDgetTitle","extractHeader","header","body","lines","MDextractHeader","attrs","_header","line","pos_","MDremoveDocsify","doc","generateFile","filename","json","el","document","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality2text","quality","clone","object","getStates","_obj$common2","ex","error","type","getSvg","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","detectMimeType","base64","signature","keys","isStableRepository","activeRepo","isStringInteger","isValidDate","_defineProperty2","_default","exports"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2023 Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\nimport I18n from '../i18n';\n\nconst NAMESPACE = 'material';\nconst days = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nconst months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst QUALITY_BITS = {\n 0x00: '0x00 - good',\n\n 0x01: '0x01 - general problem',\n 0x02: '0x02 - no connection problem',\n\n 0x10: '0x10 - substitute value from controller',\n 0x20: '0x20 - substitute initial value',\n 0x40: '0x40 - substitute value from device or instance',\n 0x80: '0x80 - substitute value from sensor',\n\n 0x11: '0x11 - general problem by instance',\n 0x41: '0x41 - general problem by device',\n 0x81: '0x81 - general problem by sensor',\n\n 0x12: '0x12 - instance not connected',\n 0x42: '0x42 - device not connected',\n 0x82: '0x82 - sensor not connected',\n\n 0x44: '0x44 - device reports error',\n 0x84: '0x84 - sensor reports error',\n};\nconst SIGNATURES = {\n JVBERi0: 'pdf',\n R0lGODdh: 'gif',\n R0lGODlh: 'gif',\n iVBORw0KGgo: 'png',\n '/9j/': 'jpg',\n PHN2Zw: 'svg',\n Qk1: 'bmp',\n AAABAA: 'ico', // 00 00 01 00 according to https://en.wikipedia.org/wiki/List_of_file_signatures\n};\n\nclass Utils {\n static namespace = NAMESPACE;\n\n static INSTANCES = 'instances';\n\n static dateFormat = ['DD', 'MM'];\n\n static FORBIDDEN_CHARS = /[^._\\-/ :!#$%&()+=@^{}|~\\p{Ll}\\p{Lu}\\p{Nd}]+/gu;\n\n /**\n * Capitalize words.\n * @param {string | undefined} name\n * @returns {string}\n */\n static CapitalWords(name) {\n return (name || '').split(/[\\s_]/)\n .filter(item => item)\n .map(word => (word ? word[0].toUpperCase() + word.substring(1).toLowerCase() : ''))\n .join(' ');\n }\n\n static formatSeconds(seconds) {\n const days_ = Math.floor(seconds / (3600 * 24));\n seconds %= 3600 * 24;\n let hours = Math.floor(seconds / 3600);\n if (hours < 10) {\n hours = `0${hours}`;\n }\n seconds %= 3600;\n let minutes = Math.floor(seconds / 60);\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n seconds %= 60;\n seconds = Math.floor(seconds);\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n let text = '';\n if (days_) {\n text += `${days_} ${I18n.t('ra_daysShortText')} `;\n }\n text += `${hours}:${minutes}:${seconds}`;\n\n return text;\n }\n\n /**\n * Get the name of the object by id from the name or description.\n * @param {Record<string, ioBroker.Object>} objects\n * @param {string} id\n * @param {{ name: any; } | ioBroker.Languages | null} settings\n * @param {{ language?: ioBroker.Languages; }} options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @returns {string}\n */\n static getObjectName(objects, id, settings, options, isDesc) {\n const item = objects[id];\n let text;\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = { language: settings };\n settings = null;\n }\n\n options = options || {};\n if (!options.language) {\n options.language = (objects['system.config'] && objects['system.config'].common && objects['system.config'].common.language) || window.sysLang || 'en';\n }\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en || text.de || text.ru || '';\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n } else {\n const pos = id.lastIndexOf('.');\n text = id.substring(pos + 1).replace(/[_.]/g, ' ');\n text = Utils.CapitalWords(text);\n }\n\n return text.trim();\n }\n\n /**\n * Get the name of the object from the name or description.\n * @param {ioBroker.PartialObject} obj\n * @param {{ name: any; } | ioBroker.Languages | null } settings or language\n * @param {{ language?: ioBroker.Languages; } } options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @param {boolean} [noTrim] Allow to use spaces in name (by edit)\n * @returns {string}\n */\n static getObjectNameFromObj(obj, settings, options, isDesc, noTrim) {\n const item = obj;\n let text = (obj && obj._id) || '';\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = { language: settings };\n settings = null;\n }\n\n options = options || {};\n\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n }\n return noTrim ? text : text.trim();\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n * @returns {string | null}\n */\n static getSettingsOrder(obj, forEnumId, options) {\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subOrder && settings[user].subOrder[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subOrder[forEnumId]));\n }\n } else if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\n }\n }\n return null;\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n */\n static getSettingsCustomURLs(obj, forEnumId, options) {\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subURLs && settings[user].subURLs[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subURLs[forEnumId]));\n }\n } else if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\n }\n }\n return null;\n }\n\n /**\n * Reorder the array items in list between source and dest.\n * @param {Iterable<any> | ArrayLike<any>} list\n * @param {number} source\n * @param {number} dest\n */\n static reorder(list, source, dest) {\n const result = Array.from(list);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n return result;\n }\n\n /**\n * @param {any} obj\n * @param {{ id: any; user: any; name: any; icon: any; color: any; language: ioBroker.Languages; }} options\n * @param {boolean} [defaultEnabling]\n */\n static getSettings(obj, options, defaultEnabling) {\n let settings;\n const id = (obj && obj._id) || (options && options.id);\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\n obj = obj.common;\n }\n if (obj?.custom) {\n settings = obj.custom;\n settings = settings[NAMESPACE] && settings[NAMESPACE][options.user || 'admin'] ? JSON.parse(JSON.stringify(settings[NAMESPACE][options.user || 'admin'])) : { enabled: true };\n } else {\n settings = { enabled: defaultEnabling === undefined ? true : defaultEnabling, useCustom: false };\n }\n\n if (!Object.prototype.hasOwnProperty.call(settings, 'enabled')) {\n settings.enabled = defaultEnabling === undefined ? true : defaultEnabling;\n }\n\n // if (false && settings.useCommon) {\n // if (obj.color) settings.color = obj.color;\n // if (obj.icon) settings.icon = obj.icon;\n // if (obj.name) settings.name = obj.name;\n // } else {\n if (options) {\n if (!settings.name && options.name) settings.name = options.name;\n if (!settings.icon && options.icon) settings.icon = options.icon;\n if (!settings.color && options.color) settings.color = options.color;\n }\n\n if (obj) {\n if (!settings.color && obj.color) settings.color = obj.color;\n if (!settings.icon && obj.icon) settings.icon = obj.icon;\n if (!settings.name && obj.name) settings.name = obj.name;\n }\n // }\n\n if (typeof settings.name === 'object') {\n settings.name = settings.name[options.language] || settings.name.en;\n\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n\n if (settings.name === settings.name.toUpperCase()) {\n settings.name = settings.name[0] + settings.name.substring(1).toLowerCase();\n }\n }\n if (!settings.name && id) {\n const pos = id.lastIndexOf('.');\n settings.name = id.substring(pos + 1).replace(/[_.]/g, ' ');\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n settings.name = Utils.CapitalWords(settings.name);\n }\n\n return settings;\n }\n\n /**\n * @param {any} obj\n * @param {any} settings\n * @param {{ user: any; language: ioBroker.Languages; }} options\n */\n static setSettings(obj, settings, options) {\n if (obj) {\n obj.common = obj.common || {};\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[NAMESPACE] = obj.common.custom[NAMESPACE] || {};\n obj.common.custom[NAMESPACE][options.user || 'admin'] = settings;\n const s = obj.common.custom[NAMESPACE][options.user || 'admin'];\n if (s.useCommon) {\n if (s.color !== undefined) {\n obj.common.color = s.color;\n delete s.color;\n }\n if (s.icon !== undefined) {\n obj.common.icon = s.icon;\n delete s.icon;\n }\n if (s.name !== undefined) {\n if (typeof obj.common.name !== 'object') {\n obj.common.name = {};\n obj.common.name[options.language] = s.name;\n } else {\n obj.common.name[options.language] = s.name;\n }\n delete s.name;\n }\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Get the icon for the given settings.\n * @param {{ icon: string | undefined; name: string | undefined; prefix: string | undefined}} settings\n * @param {any} style\n * @returns {JSX.Element | null}\n */\n static getIcon(settings, style) {\n if (settings && settings.icon) {\n // If UTF-8 icon\n if (settings.icon.length <= 2) {\n return <span style={style || {}}>{settings.icon}</span>;\n }\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}} />;\n }\n // maybe later some changes for a second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}} />;\n }\n return null;\n }\n\n /**\n * Get the icon for the given object.\n * @param {string} id\n * @param {{ common: { icon: any; }; }} obj\n * @returns {string | null}\n */\n static getObjectIcon(id, obj) {\n // If id is Object\n if (typeof id === 'object') {\n obj = id;\n id = obj._id;\n }\n\n if (obj && obj.common && obj.common.icon) {\n let icon = obj.common.icon;\n // If UTF-8 icon\n if (typeof icon === 'string' && icon.length <= 2) {\n return icon;\n }\n if (icon.startsWith('data:image')) {\n return icon;\n }\n\n const parts = id.split('.');\n if (parts[0] === 'system') {\n icon = `adapter/${parts[2]}${icon.startsWith('/') ? '' : '/'}${icon}`;\n } else {\n icon = `adapter/${parts[0]}${icon.startsWith('/') ? '' : '/'}${icon}`;\n }\n\n if (window.location.pathname.match(/adapter\\/[^/]+\\/[^/]+\\.html/)) {\n icon = `../../${icon}`;\n } else if (window.location.pathname.match(/material\\/[.\\d]+/)) {\n icon = `../../${icon}`;\n } else if (window.location.pathname.match(/material\\//)) {\n icon = `../${icon}`;\n }\n return icon;\n }\n\n return null;\n }\n\n /**\n * Splits CamelCase into words.\n * @param {string | undefined} text\n * @returns {string}\n */\n static splitCamelCase(text) {\n // if (false && text !== text.toUpperCase()) {\n // const words = text.split(/\\s+/);\n // for (let i = 0; i < words.length; i++) {\n // const word = words[i];\n // if (word.toLowerCase() !== word && word.toUpperCase() !== word) {\n // let z = 0;\n // const ww = [];\n // let start = 0;\n // while (z < word.length) {\n // if (word[z].match(/[A-ZÜÄÖА-Я]/)) {\n // ww.push(word.substring(start, z));\n // start = z;\n // }\n // z++;\n // }\n // if (start !== z) {\n // ww.push(word.substring(start, z));\n // }\n // for (let k = 0; k < ww.length; k++) {\n // words.splice(i + k, 0, ww[k]);\n // }\n // i += ww.length;\n // }\n // }\n //\n // return words.map(w => {\n // w = w.trim();\n // if (w) {\n // return w[0].toUpperCase() + w.substring(1).toLowerCase();\n // }\n // return '';\n // }).join(' ');\n // }\n return Utils.CapitalWords(text);\n }\n\n /**\n * Check if the given color is bright.\n * https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n * @param {string | null | undefined} color\n * @param {boolean} [defaultValue]\n * @returns {boolean}\n */\n static isUseBright(color, defaultValue) {\n if (color === null || color === undefined || color === '') {\n return defaultValue === undefined ? true : defaultValue;\n }\n color = color.toString();\n if (color.startsWith('#')) {\n color = color.slice(1);\n }\n let r;\n let g;\n let b;\n\n const rgb = color.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n if (rgb && rgb.length === 4) {\n r = parseInt(rgb[1], 10);\n g = parseInt(rgb[2], 10);\n b = parseInt(rgb[3], 10);\n } else {\n // convert 3-digit hex to 6-digits.\n if (color.length === 3) {\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\n }\n // remove alfa channel\n if (color.length === 8) {\n color = color.substring(0, 6);\n } else if (color.length !== 6) {\n return false;\n }\n\n r = parseInt(color.slice(0, 2), 16);\n g = parseInt(color.slice(2, 4), 16);\n b = parseInt(color.slice(4, 6), 16);\n }\n\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) <= 186;\n }\n\n /**\n * Get the time string in the format 00:00.\n * @param {string | number} seconds\n */\n static getTimeString(seconds) {\n seconds = parseFloat(seconds);\n if (Number.isNaN(seconds)) {\n return '--:--';\n }\n const hours = Math.floor(seconds / 3600);\n let minutes = Math.floor((seconds % 3600) / 60);\n let secs = seconds % 60;\n if (hours) {\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n if (secs < 10) {\n secs = `0${secs}`;\n }\n return `${hours}:${minutes}:${secs}`;\n }\n\n if (secs < 10) {\n secs = `0${secs}`;\n }\n return `${minutes}:${secs}`;\n }\n\n /**\n * Gets the wind direction with the given angle (degrees).\n * @param {number} angle in degrees.\n * @returns {string | undefined}\n */\n static getWindDirection(angle) {\n if (angle >= 0 && angle < 11.25) {\n return 'N';\n }\n if (angle >= 11.25 && angle < 33.75) {\n return 'NNE';\n }\n if (angle >= 33.75 && angle < 56.25) {\n return 'NE';\n }\n if (angle >= 56.25 && angle < 78.75) {\n return 'ENE';\n }\n if (angle >= 78.75 && angle < 101.25) {\n return 'E';\n }\n if (angle >= 101.25 && angle < 123.75) {\n return 'ESE';\n }\n if (angle >= 123.75 && angle < 146.25) {\n return 'SE';\n }\n if (angle >= 146.25 && angle < 168.75) {\n return 'SSE';\n }\n if (angle >= 168.75 && angle < 191.25) {\n return 'S';\n }\n if (angle >= 191.25 && angle < 213.75) {\n return 'SSW';\n }\n if (angle >= 213.75 && angle < 236.25) {\n return 'SW';\n }\n if (angle >= 236.25 && angle < 258.75) {\n return 'WSW';\n }\n if (angle >= 258.75 && angle < 281.25) {\n return 'W';\n }\n if (angle >= 281.25 && angle < 303.75) {\n return 'WNW';\n }\n if (angle >= 303.75 && angle < 326.25) {\n return 'NW';\n }\n if (angle >= 326.25 && angle < 348.75) {\n return 'NNW';\n }\n // if (angle >= 348.75) {\n return 'N';\n }\n\n /**\n * Pad the given number with a zero if it's not 2 digits long.\n * @param {string | number} num\n */\n static padding(num) {\n if (typeof num === 'string') {\n if (num.length < 2) {\n return `0${num}`;\n }\n return num;\n }\n if (num < 10) {\n return `0${num}`;\n }\n return num;\n }\n\n /**\n * Sets the date format.\n * @param {string} format\n */\n static setDataFormat(format) {\n if (format) {\n Utils.dateFormat = format.toUpperCase().split(/[.-/]/);\n Utils.dateFormat.splice(Utils.dateFormat.indexOf('YYYY'), 1);\n }\n }\n\n /**\n * Converts the date to a string.\n * @param {string | number | Date} now\n * @returns {string}\n */\n static date2string(now) {\n if (typeof now === 'string') {\n now = now.trim();\n if (!now) return '';\n // only letters\n if (now.match(/^[\\w\\s]+$/)) {\n // Day of the week\n return now;\n }\n const m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n const a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n const year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n const day = a.find(mm => mm > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\n // MM DD\n now = new Date(year, a[0] - 1, a[1]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[1] - 1, a[0]);\n }\n } else if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\n // DD MM\n now = new Date(year, a[1] - 1, a[0]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[0] - 1, a[1]);\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n\n let date = I18n.t(`ra_dow_${days[now.getDay()]}`).replace('ra_dow_', '');\n date += `. ${now.getDate()} ${I18n.t(`ra_month_${months[now.getMonth()]}`).replace('ra_month_', '')}`;\n return date;\n }\n\n /**\n * Render a text as a link.\n * @param {string} text\n * @returns {string | JSX.Element[]}\n */\n static renderTextWithA(text) {\n let m = text.match(/<a [^<]+<\\/a>|<br\\s?\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const start = text.substring(0, m.index);\n text = text.substring(m.index + m[0].length);\n start && result.push(<span key={`a${key++}`}>{start}</span>);\n\n if (m[0].startsWith('<b>')) {\n result.push(<b key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</b>);\n } else if (m[0].startsWith('<i>')) {\n result.push(<i key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</i>);\n } else if (m[0].startsWith('<br')) {\n result.push(<br key={`a${key++}`} />);\n } else {\n const href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n const target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n const rel = m[0].match(/rel=\"([^\"]+)\"/) || m[0].match(/rel='([^']+)'/);\n const title = m[0].match(/>([^<]*)</);\n\n // eslint-disable-next-line\n result.push(<a\n key={`a${key++}`}\n href={href ? href[1] : ''}\n target={target ? target[1] : '_blank'}\n rel={rel ? rel[1] : ''}\n style={{ color: 'inherit' }}\n >\n {title ? title[1] : ''}\n </a>);\n }\n\n m = text && text.match(/<a [^<]+<\\/a>|<br\\s?\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (!m) {\n text && result.push(<span key={`a${key++}`}>{text}</span>);\n }\n } while (m);\n\n return result;\n }\n\n return text;\n }\n\n /**\n * Get the smart name of the given state.\n * @param {Record<string, ioBroker.StateObject> | ioBroker.StateObject} states\n * @param {string} id\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartName(states, id, instanceId, noCommon) {\n if (!id) {\n if (!noCommon) {\n if (!states.common) {\n return states.smartName;\n }\n if (states && !states.common) {\n return states.smartName;\n }\n return states.common.smartName;\n }\n if (states && !states.common) {\n return states.smartName;\n }\n return states?.common?.custom && states.common.custom[instanceId] ?\n states.common.custom[instanceId].smartName : undefined;\n }\n if (!noCommon) {\n return states[id].common.smartName;\n }\n\n return (states[id] &&\n states[id].common?.custom &&\n states[id].common.custom[instanceId]) ?\n states[id].common.custom[instanceId].smartName || null : null;\n }\n\n /**\n * Get the smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartNameFromObj(obj, instanceId, noCommon) {\n if (!noCommon) {\n if (!obj.common) {\n return obj.smartName;\n }\n if (obj && !obj.common) {\n return obj.smartName;\n }\n return obj.common.smartName;\n }\n if (obj && !obj.common) {\n return obj.smartName;\n }\n\n return obj?.common?.custom && obj.common.custom[instanceId] ?\n obj.common.custom[instanceId].smartName : undefined;\n }\n\n /**\n * Enable smart name for a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static enableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = {};\n } else {\n obj.common.smartName = {};\n }\n }\n\n /**\n * Completely remove smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string | number} instanceId\n * @param {boolean} [noCommon]\n */\n static removeSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n if (obj.common && obj.common.custom && obj.common.custom[instanceId]) {\n obj.common.custom[instanceId] = null;\n }\n } else {\n obj.common.smartName = null;\n }\n }\n\n /**\n * Update the smartname of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} newSmartName\n * @param {string | undefined} byON\n * @param {string | undefined} smartType\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static updateSmartName(obj, newSmartName, byON, smartType, instanceId, noCommon) {\n const language = I18n.getLanguage();\n\n // convert the old format\n if (typeof obj.common.smartName === 'string') {\n const nnn = obj.common.smartName;\n obj.common.smartName = {};\n obj.common.smartName[language] = nnn;\n }\n\n // convert the old settings\n if (obj.native && obj.native.byON) {\n delete obj.native.byON;\n let _smartName = obj.common.smartName;\n\n if (!_smartName || typeof _smartName !== 'object') {\n _smartName = { en: _smartName };\n _smartName[language] = _smartName.en;\n }\n obj.common.smartName = _smartName;\n }\n if (smartType !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n if (!smartType) {\n delete obj.common.custom[instanceId].smartName.smartType;\n } else {\n obj.common.custom[instanceId].smartName.smartType = smartType;\n }\n } else {\n obj.common.smartName = obj.common.smartName || {};\n if (!smartType) {\n delete obj.common.smartName.smartType;\n } else {\n obj.common.smartName.smartType = smartType;\n }\n }\n }\n\n if (byON !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n obj.common.custom[instanceId].smartName.byON = byON;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n obj.common.smartName.byON = byON;\n }\n }\n\n if (newSmartName !== undefined) {\n let smartName;\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n smartName = obj.common.custom[instanceId].smartName;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n smartName = obj.common.smartName;\n }\n smartName[language] = newSmartName;\n\n // If smart name deleted\n if (smartName && (!smartName[language] ||\n (smartName[language] === obj.common.name &&\n (!obj.common.role || obj.common.role.includes('button'))))) {\n delete smartName[language];\n let empty = true;\n // Check if the structure has any definitions\n for (const key in smartName) {\n if (Object.prototype.hasOwnProperty.call(smartName, key)) {\n empty = false;\n break;\n }\n }\n // If empty => delete smartName completely\n if (empty) {\n if (noCommon) {\n if (obj.common.custom[instanceId].smartName.byON === undefined) {\n delete obj.common.custom[instanceId];\n } else {\n delete obj.common.custom[instanceId].en;\n delete obj.common.custom[instanceId].de;\n delete obj.common.custom[instanceId].ru;\n delete obj.common.custom[instanceId].nl;\n delete obj.common.custom[instanceId].pl;\n delete obj.common.custom[instanceId].it;\n delete obj.common.custom[instanceId].fr;\n delete obj.common.custom[instanceId].pt;\n delete obj.common.custom[instanceId].es;\n delete obj.common.custom[instanceId].uk;\n delete obj.common.custom[instanceId]['zh-cn'];\n }\n } else if (obj.common.smartName.byON !== undefined) {\n delete obj.common.smartName.en;\n delete obj.common.smartName.de;\n delete obj.common.smartName.ru;\n delete obj.common.smartName.nl;\n delete obj.common.smartName.pl;\n delete obj.common.smartName.it;\n delete obj.common.smartName.fr;\n delete obj.common.smartName.pt;\n delete obj.common.smartName.es;\n delete obj.common.smartName.uk;\n delete obj.common.smartName['zh-cn'];\n } else {\n obj.common.smartName = null;\n }\n }\n }\n }\n }\n\n /**\n * Disable the smart name of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static disableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = false;\n } else {\n obj.common.smartName = false;\n }\n }\n\n /**\n * Copy text to the clipboard.\n * @param {string} text\n * @param {Event} [e]\n */\n static copyToClipboard(text, e) {\n e && e.stopPropagation();\n e && e.preventDefault();\n return copy(text);\n }\n\n /**\n * Gets the extension of a file name.\n * @param {string | null} [fileName] the file name.\n * @returns {string | null} The extension in lower case.\n */\n static getFileExtension(fileName) {\n const pos = (fileName || '').lastIndexOf('.');\n if (pos !== -1) {\n return fileName.substring(pos + 1).toLowerCase();\n }\n return null;\n }\n\n /**\n * Format number of bytes as a string with B, KB, MB or GB.\n * The base for all calculations is 1024.\n * @param {number} bytes The number of bytes.\n * @returns {string} The formatted string (e.g. '723.5 KB')\n */\n static formatBytes(bytes) {\n if (Math.abs(bytes) < 1024) {\n return `${bytes} B`;\n }\n\n const units = ['KB', 'MB', 'GB'];\n // const units = ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\n let u = -1;\n\n do {\n bytes /= 1024;\n ++u;\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\n\n return `${bytes.toFixed(1)} ${units[u]}`;\n }\n\n /**\n * Invert the given color according to a theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without a hash)\n * @param {string} themeType theme type\n * @param {string} invert dark theme has light color in control or light theme has light color in control\n * @returns {string | undefined}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n }\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n }\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n }\n\n return undefined;\n }\n\n // Big thanks to: https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n /**\n * Invert the given color\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash)\n * @param {boolean} bw Set to black or white.\n * @returns {string}\n */\n static invertColor(hex, bw) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n let alfa = null;\n if (hex.length === 8) {\n alfa = hex.substring(6, 8);\n hex = hex.substring(0, 6);\n } else if (hex.length !== 6) {\n console.warn(`Cannot invert color: ${hex}`);\n return hex;\n }\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n if (bw) {\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? `#000000${alfa || ''}`\n : `#FFFFFF${alfa || ''}`;\n }\n // invert color components\n r = (255 - r).toString(16);\n g = (255 - g).toString(16);\n b = (255 - b).toString(16);\n // pad each with zeros and return\n return `#${r.padStart(2, '0')}${g.padStart(2, '0')}${b.padStart(2, '0')}${alfa || ''}`;\n }\n\n /**\n * Convert RGB to array [r, g, b]\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {Array<number>} Array with 3 elements [r, g, b]\n */\n static color2rgb(hex) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6 && hex.length !== 8) {\n console.warn(`Cannot invert color: ${hex}`);\n return false;\n }\n\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16),\n ];\n }\n\n // Big thanks to: https://github.com/antimatter15/rgb-lab\n /**\n * Convert RGB to LAB\n * @param {Array<number>} rgb color in format [r,g,b]\n * @returns {Array<number>} lab color in format [l,a,b]\n */\n static rgb2lab(rgb) {\n let r = rgb[0] / 255;\n let g = rgb[1] / 255;\n let b = rgb[2] / 255;\n\n r = (r > 0.04045) ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;\n g = (g > 0.04045) ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;\n b = (b > 0.04045) ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;\n\n let x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\n let y = (r * 0.2126 + g * 0.7152 + b * 0.0722); /* / 1.00000; */\n let z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\n\n x = (x > 0.008856) ? x ** 0.33333333 : (7.787 * x) + 0.137931; // 16 / 116;\n y = (y > 0.008856) ? y ** 0.33333333 : (7.787 * y) + 0.137931; // 16 / 116;\n z = (z > 0.008856) ? z ** 0.33333333 : (7.787 * z) + 0.137931; // 16 / 116;\n\n return [(116 * y) - 16, 500 * (x - y), 200 * (y - z)];\n }\n\n /**\n * Calculate the distance between two colors in LAB color space in the range 0-100^2\n * If distance is less than 1000, the colors are similar\n * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {number} distance in the range 0-100^2\n */\n static colorDistance(color1, color2) {\n const lab1 = Utils.rgb2lab(Utils.color2rgb(color1));\n const lab2 = Utils.rgb2lab(Utils.color2rgb(color2));\n const dltL = lab1[0] - lab2[0];\n const dltA = lab1[1] - lab2[1];\n const dltB = lab1[2] - lab2[2];\n const c1 = Math.sqrt(lab1[1] * lab1[1] + lab1[2] * lab1[2]);\n const c2 = Math.sqrt(lab2[1] * lab2[1] + lab2[2] * lab2[2]);\n const dltC = c1 - c2;\n let dltH = dltA * dltA + dltB * dltB - dltC * dltC;\n dltH = dltH < 0 ? 0 : Math.sqrt(dltH);\n const sc = 1.0 + 0.045 * c1;\n const sh = 1.0 + 0.015 * c1;\n const dltLKlsl = dltL;\n const dltCkcsc = dltC / sc;\n const dltHkhsh = dltH / sh;\n const i = dltLKlsl * dltLKlsl + dltCkcsc * dltCkcsc + dltHkhsh * dltHkhsh;\n return i < 0 ? 0 : i;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * @private\n * @param {any} mix\n * @returns {string}\n */\n static _toVal(mix) {\n let y;\n let str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n y = Utils._toVal(mix[k]);\n if (y) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (const k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * Convert any object to a string with its values.\n * @returns {string}\n */\n static clsx() {\n let i = 0;\n let tmp;\n let x;\n let str = '';\n while (i < arguments.length) {\n // eslint-disable-next-line prefer-rest-params\n tmp = arguments[i++];\n if (tmp) {\n x = Utils._toVal(tmp);\n if (x) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n return str;\n }\n\n /**\n * Get the current theme name (either from local storage or the browser settings).\n * @param {string} [themeName]\n * @returns {string}\n */\n static getThemeName(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n\n return themeName || ((window._localStorage || window.localStorage).getItem('App.themeName') ?\n (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored');\n }\n\n /**\n * Get the type of theme.\n * @param {string} [themeName]\n * @returns {'dark' | 'light'}\n */\n static getThemeType(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return 'light';\n }\n\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n return themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light';\n }\n\n /**\n * Set the theme name and theme type.\n * @param {string} themeName\n */\n static setThemeName(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return; // ignore\n }\n (window._localStorage || window.localStorage).setItem('App.themeName', themeName);\n (window._localStorage || window.localStorage).setItem('App.theme', themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light');\n }\n\n /**\n * Toggle the theme name between 'dark' and 'colored'.\n * @param {string | null} themeName\n * @returns {string} the new theme name.\n */\n static toggleTheme(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n\n // dark => blue => colored => light => dark\n const themes = Utils.getThemeNames();\n const pos = themes.indexOf(themeName);\n let newTheme;\n if (pos !== -1) {\n newTheme = themes[(pos + 1) % themes.length];\n } else {\n newTheme = themes[0];\n }\n Utils.setThemeName(newTheme);\n\n return newTheme;\n }\n\n /**\n * Get the list of themes\n * @returns {array<string>} list of possible themes\n */\n static getThemeNames() {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return [window.vendorPrefix];\n }\n\n return ['light', 'dark', 'blue', 'colored'];\n }\n\n /**\n * Parse a query string into its parts.\n * @param {string} query\n * @returns {Record<string, string | boolean | number>}\n */\n static parseQuery(query) {\n query = (query || '').toString().replace(/^\\?/, '');\n /** @type {Record<string, string | boolean | number>} */\n const result = {};\n query.split('&').forEach(part => {\n part = part.trim();\n if (part) {\n const parts = part.split('=');\n const attr = decodeURIComponent(parts[0]).trim();\n if (parts.length > 1) {\n result[attr] = decodeURIComponent(parts[1]);\n if (result[attr] === 'true') {\n result[attr] = true;\n } else if (result[attr] === 'false') {\n result[attr] = false;\n } else {\n const f = parseFloat(result[attr]);\n if (f.toString() === result[attr]) {\n result[attr] = f;\n }\n }\n } else {\n result[attr] = true;\n }\n }\n });\n return result;\n }\n\n /**\n * Returns parent ID.\n * @param {string} id\n * @returns {string | null} parent ID or null if no parent\n */\n static getParentId(id) {\n const p = (id || '').toString().split('.');\n if (p.length > 1) {\n p.pop();\n return p.join('.');\n }\n\n return null;\n }\n\n static formatDate(dateObj, dateFormat) {\n // format could be DD.MM.YYYY, YYYY.MM.DD or MM/DD/YYYY\n\n if (!dateObj) {\n return '';\n }\n\n let text;\n let mm = dateObj.getMonth() + 1;\n if (mm < 10) {\n mm = `0${mm}`;\n }\n\n let dd = dateObj.getDate();\n if (dd < 10) {\n dd = `0${dd}`;\n }\n\n if (dateFormat === 'MM/DD/YYYY') {\n text = `${mm}/${dd}/${dateObj.getFullYear()}`;\n } else {\n text = `${dateObj.getFullYear()}-${mm}-${dd}`;\n }\n\n // time\n let v = dateObj.getHours();\n if (v < 10) {\n text += ` 0${v}`;\n } else {\n text += ` ${v}`;\n }\n v = dateObj.getMinutes();\n if (v < 10) {\n text += `:0${v}`;\n } else {\n text += `:${v}`;\n }\n\n v = dateObj.getSeconds();\n if (v < 10) {\n text += `:0${v}`;\n } else {\n text += `:${v}`;\n }\n\n v = dateObj.getMilliseconds();\n if (v < 10) {\n text += `.00${v}`;\n } else if (v < 100) {\n text += `.0${v}`;\n } else {\n text += `.${v}`;\n }\n\n return text;\n }\n\n static formatTime(seconds) {\n if (seconds) {\n seconds = Math.round(seconds);\n const d = Math.floor(seconds / (3600 * 24));\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n if (d) {\n return `${d}.${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n return '0:00:00';\n }\n\n static MDtext2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, '&nbsp;'));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n // replace IPv6 Address with [ipv6]:port\n url = url.replace(/\\/\\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\\d+)?\\//i, '//[$1]$2/');\n\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static MDgetTitle(text) {\n const result = Utils.extractHeader(text);\n const header = result.header;\n let body = result.body;\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n }\n\n return header.title;\n }\n\n static MDextractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos_ = line.indexOf(':');\n if (pos_ !== -1) {\n const attr = line.substring(0, pos_).trim();\n attrs[attr] = line.substring(pos_ + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return { header: attrs, body: text };\n }\n\n static MDremoveDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n /**\n * Generate the json file on the file for download.\n * @param {string} filename file name\n * @param {string} json file data\n * @returns {object} json structure (not stringified)\n */\n static generateFile(filename, json) {\n const el = document.createElement('a');\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(json, null, 2))}`);\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n /**\n * Convert quality code into text\n * @param {number} quality code\n * @returns {array<string>} lines that decode quality\n */\n static quality2text(quality) {\n // eslint-disable-next-line no-bitwise\n const custom = quality & 0xFFFF0000;\n const text = QUALITY_BITS[quality];\n let result;\n if (text) {\n result = [text];\n // eslint-disable-next-line no-bitwise\n } else if (quality & 0x01) {\n // eslint-disable-next-line no-bitwise\n result = [QUALITY_BITS[0x01], `0x${(quality & (0xFFFF & ~1)).toString(16)}`];\n // eslint-disable-next-line no-bitwise\n } else if (quality & 0x02) {\n // eslint-disable-next-line no-bitwise\n result = [QUALITY_BITS[0x02], `0x${(quality & (0xFFFF & ~2)).toString(16)}`];\n } else {\n result = [`0x${quality.toString(16)}`];\n }\n if (custom) {\n // eslint-disable-next-line no-bitwise\n result.push(`0x${(custom >> 16).toString(16).toUpperCase()}`);\n }\n return result;\n }\n\n /**\n * Deep copy object\n * @param {object} object\n * @returns {object}\n */\n static clone(object) {\n return JSON.parse(JSON.stringify(object));\n }\n\n /**\n * Get states of object\n * @param {object} obj\n * @returns {object} states as an object in form {\"value1\": \"label1\", \"value2\": \"label2\"} or null\n */\n static getStates(obj) {\n let states = obj?.common?.states;\n if (states) {\n if (typeof states === 'string' && states[0] === '{') {\n try {\n states = JSON.parse(states);\n } catch (ex) {\n console.error(`Cannot parse states: ${states}`);\n states = null;\n }\n } else if (typeof states === 'string') {\n // if old format val1:text1;val2:text2\n const parts = states.split(';');\n states = {};\n for (let p = 0; p < parts.length; p++) {\n const s = parts[p].split(':');\n states[s[0]] = s[1];\n }\n } else if (Array.isArray(states)) {\n const result = {};\n if (obj.common.type === 'number') {\n states.forEach((value, key) => result[key] = value);\n } else if (obj.common.type === 'string') {\n states.forEach(value => result[value] = value);\n } else if (obj.common.type === 'boolean') {\n result.false = states[0];\n result.true = states[1];\n }\n\n return result;\n }\n }\n\n return states;\n }\n\n /**\n * Get svg file as text\n * @param {string} url URL of SVG file\n * @returns {object} Promise with \"data:image...\"\n */\n static getSvg(url) {\n return fetch(url)\n .then(response => response.blob())\n .then(blob => new Promise(resolve => {\n const reader = new FileReader();\n // eslint-disable-next-line func-names\n reader.onload = function () { // do not optimize this function. \"this\" is important.\n resolve(this.result);\n };\n reader.readAsDataURL(blob);\n }));\n }\n\n /**\n * Detect file extension by its content\n * @param {string} base64 Base64 encoded binary file\n * @returns {string} Detected extension, like 'jpg'\n */\n static detectMimeType(base64) {\n const signature = Object.keys(SIGNATURES).find(s => base64.startsWith(s));\n return signature ? SIGNATURES[signature] : null;\n }\n\n /**\n * Check if configured repository is the stable repository\n *\n * @param {string | string[]} activeRepo current configured repository or multi repository\n * @return {boolean}\n */\n static isStableRepository(activeRepo) {\n return !!((\n typeof activeRepo === 'string' &&\n activeRepo.toLowerCase().startsWith('stable')\n )\n ||\n (\n activeRepo &&\n typeof activeRepo !== 'string' &&\n activeRepo.find(r => r.toLowerCase().startsWith('stable'))\n ));\n }\n\n /**\n * Check if given string is an integer\n *\n * @param {string} str string to check\n * @return {boolean}\n */\n static isStringInteger(str) {\n return parseInt(str).toString() === str;\n }\n\n /**\n * Check if the date is valid\n *\n * @param {Date} date\n * @return {boolean}\n */\n static isValidDate(date) {\n return date instanceof Date && !isNaN(date);\n }\n}\n\nexport default Utils;\n"],"mappings":"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"}
package/README.md CHANGED
@@ -670,8 +670,8 @@ socket.getObjectViewCustom('custom', 'state', 'startKey', 'endKey')
670
670
  -->
671
671
 
672
672
  ## Changelog
673
- ### 4.7.14 (2023-12-12)
674
- * (bluefox) Corrected parsing of text
673
+ ### 4.7.15 (2023-12-12)
674
+ * (bluefox) Corrected parsing of a text
675
675
 
676
676
  ### 4.7.13 (2023-12-10)
677
677
  * (bluefox) Added possibility to define the root style and embedded property
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "4.7.14",
3
+ "version": "4.7.15",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "Denis Haev (bluefox)",