@iobroker/adapter-react-v5 3.1.19 → 3.1.20

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.
@@ -1236,9 +1236,9 @@ var Utils = /*#__PURE__*/function () {
1236
1236
  }, {
1237
1237
  key: "_toVal",
1238
1238
  value: function _toVal(mix) {
1239
- var k,
1240
- y,
1241
- str = '';
1239
+ var k;
1240
+ var y;
1241
+ var str = '';
1242
1242
 
1243
1243
  if (typeof mix === 'string' || typeof mix === 'number') {
1244
1244
  str += mix;
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","names":["NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","seconds","Math","floor","hours","minutes","text","I18n","t","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","en","desc","de","ru","toString","replace","pos","lastIndexOf","CapitalWords","trim","obj","noTrim","_id","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","subURLs","URLs","list","source","dest","result","Array","from","splice","removed","defaultEnabling","enabled","undefined","useCustom","useCommon","color","icon","s","style","length","startsWith","prefix","parts","location","pathname","match","words","i","z","ww","start","push","k","w","defaultValue","indexOf","slice","r","g","b","rgb","parseInt","parseFloat","isNaN","secs","angle","num","format","dateFormat","now","m","a","year","find","y","day","Date","abs","getTime","date","getDay","getDate","getMonth","key","p","href","target","rel","title","states","instanceId","noCommon","smartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","empty","nl","pl","it","fr","pt","es","e","el","document","createElement","value","body","appendChild","select","execCommand","removeChild","console","log","stopPropagation","preventDefault","fileName","bytes","units","u","toFixed","themeType","invert","invertedColor","invertColor","hex","bw","padStart","warn","mix","str","isArray","_toVal","tmp","x","arguments","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","setItem","themes","getThemeNames","newTheme","setThemeName","query","forEach","part","decodeURIComponent","f","pop","dateObj","mm","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","round","d","h","url","open","extractHeader","header","lines","attrs","_header","line","doc","filename","json","setAttribute","encodeURIComponent","display","click","quality","object","ex","error","type","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","base64","signature","Object","keys"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\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 static INSTANCES = 'instances';\n static dateFormat = ['DD', 'MM'];\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 let item = objects[id];\n let text = 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 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\n 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 let 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 let 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\n 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 && obj.hasOwnProperty('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 {\n if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\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 && obj.hasOwnProperty('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 {\n if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\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 && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n if (obj && 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 (!settings.hasOwnProperty('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 let 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 } else {\n return false;\n }\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 } else\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}}/>;\n } else { // may be later some changes for second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}}/>;\n }\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 } else\n if (icon.startsWith('data:image')) {\n return icon;\n } else {\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\n if (window.location.pathname.match(/material\\//)) {\n icon = '../' + icon;\n }\n return icon;\n }\n } else {\n return null;\n }\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 let 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 } else {\n return Utils.CapitalWords(text);\n }\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.indexOf('#') === 0) {\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 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 (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) minutes = '0' + minutes;\n if (secs < 10) secs = '0' + secs;\n return hours + ':' + minutes + ':' + secs;\n } else {\n if (secs < 10) secs = '0' + secs;\n return minutes + ':' + secs;\n }\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 } else if (angle >= 11.25 && angle < 33.75) {\n return 'NNE'\n } else if (angle >= 33.75 && angle < 56.25) {\n return 'NE'\n } else if (angle >= 56.25 && angle < 78.75) {\n return 'ENE'\n } else if (angle >= 78.75 && angle < 101.25) {\n return 'E'\n } else if (angle >= 101.25 && angle < 123.75) {\n return 'ESE'\n } else if (angle >= 123.75 && angle < 146.25) {\n return 'SE'\n } else if (angle >= 146.25 && angle < 168.75) {\n return 'SSE'\n } else if (angle >= 168.75 && angle < 191.25) {\n return 'S'\n } else if (angle >= 191.25 && angle < 213.75) {\n return 'SSW'\n } else if (angle >= 213.75 && angle < 236.25) {\n return 'SW'\n } else if (angle >= 236.25 && angle < 258.75) {\n return 'WSW'\n } else if (angle >= 258.75 && angle < 281.25) {\n return 'W'\n } else if (angle >= 281.25 && angle < 303.75) {\n return 'WNW'\n } else if (angle >= 303.75 && angle < 326.25) {\n return 'NW'\n } else if (angle >= 326.25 && angle < 348.75) {\n return 'NNW'\n } else if (angle >= 348.75) {\n return 'N'\n }\n }\n\n /**\n * Pad the given number with a zero if its 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 } else {\n return num;\n }\n } else if (num < 10) {\n return '0' + num;\n } else {\n return num;\n }\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 week\n return now;\n }\n let m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n let a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n let year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n let day = a.find(m => m > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else {\n // MM DD\n if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\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\n // DD MM\n if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\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 }\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\\/?>/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const p = text.split(m[0]);\n p[0] && result.push(<span key={'a' + (key++)}>{p[0]}</span>);\n\n if (m[0].startsWith('<br')) {\n result.push(<br key={'a' + (key++)} />);\n } else {\n let href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n let target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n let 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 key={'a' + (key++)} href={href ? href[1] : ''} target={target ? target[1] : '_blank'} rel={rel ? rel[1] : ''}>{title ? title[1] : ''}</a>);\n }\n\n text = p[1];\n\n m = text && text.match(/<a [^<]+<\\/a>|<br\\/?>/);\n if (!m) {\n p[1] && result.push(<span key={'a' + (key++)}>{p[1]}</span>);\n }\n } while (m);\n\n return result;\n } else {\n return text;\n }\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 } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return states.common.smartName;\n }\n }\n } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return (states &&\n states.common &&\n states.common.custom &&\n states.common.custom[instanceId]) ?\n states.common.custom[instanceId].smartName : undefined;\n }\n }\n } else\n if (!noCommon) {\n return states[id].common.smartName;\n } else {\n return (states[id] &&\n states[id].common &&\n states[id].common.custom &&\n states[id].common.custom[instanceId]) ?\n states[id].common.custom[instanceId].smartName || null : null;\n }\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 } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return obj.common.smartName;\n }\n }\n } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return (obj &&\n obj.common &&\n obj.common.custom &&\n obj.common.custom[instanceId]) ?\n obj.common.custom[instanceId].smartName : undefined;\n }\n }\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 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 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 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.indexOf('button') >= 0)))) {\n delete smartName[language];\n let empty = true;\n // Check if structure has any definitions\n for (const key in smartName) {\n if (smartName.hasOwnProperty(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]['zh-cn'];\n }\n } else {\n 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['zh-cn'];\n } else {\n obj.common.smartName = null;\n }\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 const el = window.document.createElement('textarea');\n el.value = text;\n window.document.body.appendChild(el);\n el.select();\n window.document.execCommand('copy');\n window.document.body.removeChild(el);\n console.log(text);\n e && e.stopPropagation();\n e && e.preventDefault();\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 } else {\n return null;\n }\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 theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without 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}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n } else {\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n } else\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n } else {\n return undefined;\n }\n }\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('rgba')) {\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\n 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) {\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'\n : '#FFFFFF';\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');\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 k, y, 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 (k=0; k < mix.length; k++) {\n if (mix[k]) {\n if ((y = Utils._toVal(mix[k]))) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (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 if ((tmp = arguments[i++])) {\n if ((x = Utils._toVal(tmp))) {\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 ? themeName : (window._localStorage || window.localStorage) && (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) && (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) && (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 } else {\n return null;\n }\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 } else if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n } else {\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n } else {\n return '0:00:00';\n }\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 let {body, header} = Utils.extractHeader(text);\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 } else {\n return header.title;\n }\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 * @returns {object} json structure (not stringified)\n */\n static generateFile(filename, json) {\n let 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 qulity\n */\n static quality2text(quality) {\n const custom = quality & 0xFFFF0000;\n const text = QUALITY_BITS[quality];\n let result;\n if (text) {\n result = [text];\n } else if (quality & 0x01) {\n result = [QUALITY_BITS[0x01], '0x' + (quality & (0xFFFF & ~1)).toString(16)];\n } else if (quality & 0x02) {\n result = [QUALITY_BITS[0x02], '0x' + (quality & (0xFFFF & ~2)).toString(16)];\n } else {\n result = ['0x' + quality.toString(16)];\n }\n if (custom) {\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\n // if old format val1:text1;val2:text2\n if (typeof states === 'string') {\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\n 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 => {\n return new Promise(resolve => {\n const reader = new FileReader();\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 /**\n * Detect file xtension 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\nexport default Utils;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","names":["NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","seconds","Math","floor","hours","minutes","text","I18n","t","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","en","desc","de","ru","toString","replace","pos","lastIndexOf","CapitalWords","trim","obj","noTrim","_id","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","subURLs","URLs","list","source","dest","result","Array","from","splice","removed","defaultEnabling","enabled","undefined","useCustom","useCommon","color","icon","s","style","length","startsWith","prefix","parts","location","pathname","match","words","i","z","ww","start","push","k","w","defaultValue","indexOf","slice","r","g","b","rgb","parseInt","parseFloat","isNaN","secs","angle","num","format","dateFormat","now","m","a","year","find","y","day","Date","abs","getTime","date","getDay","getDate","getMonth","key","p","href","target","rel","title","states","instanceId","noCommon","smartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","empty","nl","pl","it","fr","pt","es","e","el","document","createElement","value","body","appendChild","select","execCommand","removeChild","console","log","stopPropagation","preventDefault","fileName","bytes","units","u","toFixed","themeType","invert","invertedColor","invertColor","hex","bw","padStart","warn","mix","str","isArray","_toVal","tmp","x","arguments","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","setItem","themes","getThemeNames","newTheme","setThemeName","query","forEach","part","decodeURIComponent","f","pop","dateObj","mm","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","round","d","h","url","open","extractHeader","header","lines","attrs","_header","line","doc","filename","json","setAttribute","encodeURIComponent","display","click","quality","object","ex","error","type","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","base64","signature","Object","keys"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\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 static INSTANCES = 'instances';\n static dateFormat = ['DD', 'MM'];\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 let item = objects[id];\n let text = 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 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\n 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 let 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 let 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\n 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 && obj.hasOwnProperty('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 {\n if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\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 && obj.hasOwnProperty('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 {\n if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\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 && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n if (obj && 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 (!settings.hasOwnProperty('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 let 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 } else {\n return false;\n }\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 } else\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}}/>;\n } else { // may be later some changes for second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}}/>;\n }\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 } else\n if (icon.startsWith('data:image')) {\n return icon;\n } else {\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\n if (window.location.pathname.match(/material\\//)) {\n icon = '../' + icon;\n }\n return icon;\n }\n } else {\n return null;\n }\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 let 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 } else {\n return Utils.CapitalWords(text);\n }\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.indexOf('#') === 0) {\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 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 (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) minutes = '0' + minutes;\n if (secs < 10) secs = '0' + secs;\n return hours + ':' + minutes + ':' + secs;\n } else {\n if (secs < 10) secs = '0' + secs;\n return minutes + ':' + secs;\n }\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 } else if (angle >= 11.25 && angle < 33.75) {\n return 'NNE'\n } else if (angle >= 33.75 && angle < 56.25) {\n return 'NE'\n } else if (angle >= 56.25 && angle < 78.75) {\n return 'ENE'\n } else if (angle >= 78.75 && angle < 101.25) {\n return 'E'\n } else if (angle >= 101.25 && angle < 123.75) {\n return 'ESE'\n } else if (angle >= 123.75 && angle < 146.25) {\n return 'SE'\n } else if (angle >= 146.25 && angle < 168.75) {\n return 'SSE'\n } else if (angle >= 168.75 && angle < 191.25) {\n return 'S'\n } else if (angle >= 191.25 && angle < 213.75) {\n return 'SSW'\n } else if (angle >= 213.75 && angle < 236.25) {\n return 'SW'\n } else if (angle >= 236.25 && angle < 258.75) {\n return 'WSW'\n } else if (angle >= 258.75 && angle < 281.25) {\n return 'W'\n } else if (angle >= 281.25 && angle < 303.75) {\n return 'WNW'\n } else if (angle >= 303.75 && angle < 326.25) {\n return 'NW'\n } else if (angle >= 326.25 && angle < 348.75) {\n return 'NNW'\n } else if (angle >= 348.75) {\n return 'N'\n }\n }\n\n /**\n * Pad the given number with a zero if its 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 } else {\n return num;\n }\n } else if (num < 10) {\n return '0' + num;\n } else {\n return num;\n }\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 week\n return now;\n }\n let m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n let a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n let year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n let day = a.find(m => m > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else {\n // MM DD\n if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\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\n // DD MM\n if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\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 }\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\\/?>/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const p = text.split(m[0]);\n p[0] && result.push(<span key={'a' + (key++)}>{p[0]}</span>);\n\n if (m[0].startsWith('<br')) {\n result.push(<br key={'a' + (key++)} />);\n } else {\n let href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n let target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n let 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 key={'a' + (key++)} href={href ? href[1] : ''} target={target ? target[1] : '_blank'} rel={rel ? rel[1] : ''}>{title ? title[1] : ''}</a>);\n }\n\n text = p[1];\n\n m = text && text.match(/<a [^<]+<\\/a>|<br\\/?>/);\n if (!m) {\n p[1] && result.push(<span key={'a' + (key++)}>{p[1]}</span>);\n }\n } while (m);\n\n return result;\n } else {\n return text;\n }\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 } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return states.common.smartName;\n }\n }\n } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return (states &&\n states.common &&\n states.common.custom &&\n states.common.custom[instanceId]) ?\n states.common.custom[instanceId].smartName : undefined;\n }\n }\n } else\n if (!noCommon) {\n return states[id].common.smartName;\n } else {\n return (states[id] &&\n states[id].common &&\n states[id].common.custom &&\n states[id].common.custom[instanceId]) ?\n states[id].common.custom[instanceId].smartName || null : null;\n }\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 } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return obj.common.smartName;\n }\n }\n } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return (obj &&\n obj.common &&\n obj.common.custom &&\n obj.common.custom[instanceId]) ?\n obj.common.custom[instanceId].smartName : undefined;\n }\n }\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 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 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 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.indexOf('button') >= 0)))) {\n delete smartName[language];\n let empty = true;\n // Check if structure has any definitions\n for (const key in smartName) {\n if (smartName.hasOwnProperty(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]['zh-cn'];\n }\n } else {\n 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['zh-cn'];\n } else {\n obj.common.smartName = null;\n }\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 const el = window.document.createElement('textarea');\n el.value = text;\n window.document.body.appendChild(el);\n el.select();\n window.document.execCommand('copy');\n window.document.body.removeChild(el);\n console.log(text);\n e && e.stopPropagation();\n e && e.preventDefault();\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 } else {\n return null;\n }\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 theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without 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}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n } else {\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n } else\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n } else {\n return undefined;\n }\n }\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('rgba')) {\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\n 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) {\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'\n : '#FFFFFF';\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');\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 k;\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 (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((y = Utils._toVal(mix[k]))) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (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 if ((tmp = arguments[i++])) {\n if ((x = Utils._toVal(tmp))) {\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 ? themeName : (window._localStorage || window.localStorage) && (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) && (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) && (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 } else {\n return null;\n }\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 } else if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n } else {\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n } else {\n return '0:00:00';\n }\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 let {body, header} = Utils.extractHeader(text);\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 } else {\n return header.title;\n }\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 * @returns {object} json structure (not stringified)\n */\n static generateFile(filename, json) {\n let 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 qulity\n */\n static quality2text(quality) {\n const custom = quality & 0xFFFF0000;\n const text = QUALITY_BITS[quality];\n let result;\n if (text) {\n result = [text];\n } else if (quality & 0x01) {\n result = [QUALITY_BITS[0x01], '0x' + (quality & (0xFFFF & ~1)).toString(16)];\n } else if (quality & 0x02) {\n result = [QUALITY_BITS[0x02], '0x' + (quality & (0xFFFF & ~2)).toString(16)];\n } else {\n result = ['0x' + quality.toString(16)];\n }\n if (custom) {\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\n // if old format val1:text1;val2:text2\n if (typeof states === 'string') {\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\n 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 => {\n return new Promise(resolve => {\n const reader = new FileReader();\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 /**\n * Detect file xtension 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\nexport default Utils;\n"],"mappings":"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"}
@@ -209,6 +209,7 @@ var DialogSelectID = /*#__PURE__*/function (_React$Component) {
209
209
  defaultFilters: this.filters,
210
210
  dialogName: this.dialogName,
211
211
  showExpertButton: this.props.showExpertButton !== undefined ? this.props.showExpertButton : true,
212
+ expertMode: this.props.expertMode,
212
213
  style: {
213
214
  width: '100%',
214
215
  height: '100%'
@@ -286,6 +287,8 @@ DialogSelectID.propTypes = {
286
287
  themeName: _propTypes["default"].string,
287
288
  themeType: _propTypes["default"].string,
288
289
  showExpertButton: _propTypes["default"].bool,
290
+ expertMode: _propTypes["default"].bool,
291
+ // force expert mode
289
292
  multiSelect: _propTypes["default"].bool,
290
293
  types: _propTypes["default"].array,
291
294
  // optional ['state', 'instance', 'channel']
@@ -1 +1 @@
1
- {"version":3,"file":"SelectID.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","DialogSelectID","props","dialogName","filters","window","_localStorage","localStorage","getItem","JSON","parse","e","selected","filter","id","state","name","isMobile","innerWidth","onClose","onOk","multiSelect","title","length","I18n","t","classes","paper","Utils","clsx","root","foldersFirst","imagePrefix","prefix","showExpertButton","undefined","columns","types","lang","getLanguage","socket","notEditable","themeName","themeType","customFilter","filterConfig","setItem","stringify","isDouble","setState","handleOk","filterFunc","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","object","bool","func","isRequired","isFloatComma","dateFormat","oneOfType","array","statesOnly","_export","withStyles"],"sources":["SelectID.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} DialogSelectIDProps\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component<DialogSelectIDProps>}\n */\nclass DialogSelectID extends React.Component {\n /**\n * @param {DialogSelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }</span>\n ];\n } else {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n I18n.t('%s items', this.state.selected.length)\n }</span>\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return <Dialog\n onClose={() => {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n <DialogTitle id=\"selectid-dialog-title\" classes={{root: this.props.classes.titleRoot}}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <ObjectBrowser\n foldersFirst={ this.props.foldersFirst }\n imagePrefix={ this.props.imagePrefix || this.props.prefix } // prefix is for back compatibility\n defaultFilters={ this.filters }\n dialogName={this.dialogName}\n showExpertButton={ this.props.showExpertButton !== undefined ? this.props.showExpertButton : true }\n style={ {width: '100%', height: '100%'} }\n columns={ this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'] }\n types={ this.props.types || ['state'] }\n t={ I18n.t }\n lang={ this.props.lang || I18n.getLanguage() }\n socket={ this.props.socket }\n selected={ this.state.selected }\n multiSelect={ this.props.multiSelect }\n notEditable={ this.props.notEditable === undefined ? true : this.props.notEditable }\n name={ this.state.name }\n themeName={ this.props.themeName }\n themeType={ this.props.themeType }\n customFilter={ this.props.customFilter }\n onFilterChanged={ filterConfig => {\n this.filters = filterConfig;\n (window._localStorage || window.localStorage).setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={ (selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n } }\n filterFunc={this.props.filterFunc}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected.length } color=\"primary\">{ this.props.ok || I18n.t('ra_Ok') }</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={ () => this.handleCancel() } startIcon={<IconCancel />}>{ this.props.cancel || I18n.t('ra_Cancel') }</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n notEditable: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof DialogSelectID} */\nconst _export = withStyles(styles)(DialogSelectID);\nexport default _export;\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectID.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","DialogSelectID","props","dialogName","filters","window","_localStorage","localStorage","getItem","JSON","parse","e","selected","filter","id","state","name","isMobile","innerWidth","onClose","onOk","multiSelect","title","length","I18n","t","classes","paper","Utils","clsx","root","foldersFirst","imagePrefix","prefix","showExpertButton","undefined","expertMode","columns","types","lang","getLanguage","socket","notEditable","themeName","themeType","customFilter","filterConfig","setItem","stringify","isDouble","setState","handleOk","filterFunc","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","object","bool","func","isRequired","isFloatComma","dateFormat","oneOfType","array","statesOnly","_export","withStyles"],"sources":["SelectID.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} DialogSelectIDProps\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component<DialogSelectIDProps>}\n */\nclass DialogSelectID extends React.Component {\n /**\n * @param {DialogSelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }</span>\n ];\n } else {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n I18n.t('%s items', this.state.selected.length)\n }</span>\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return <Dialog\n onClose={() => {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n <DialogTitle id=\"selectid-dialog-title\" classes={{root: this.props.classes.titleRoot}}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <ObjectBrowser\n foldersFirst={ this.props.foldersFirst }\n imagePrefix={ this.props.imagePrefix || this.props.prefix } // prefix is for back compatibility\n defaultFilters={ this.filters }\n dialogName={this.dialogName}\n showExpertButton={ this.props.showExpertButton !== undefined ? this.props.showExpertButton : true }\n expertMode={ this.props.expertMode }\n style={ {width: '100%', height: '100%'} }\n columns={ this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'] }\n types={ this.props.types || ['state'] }\n t={ I18n.t }\n lang={ this.props.lang || I18n.getLanguage() }\n socket={ this.props.socket }\n selected={ this.state.selected }\n multiSelect={ this.props.multiSelect }\n notEditable={ this.props.notEditable === undefined ? true : this.props.notEditable }\n name={ this.state.name }\n themeName={ this.props.themeName }\n themeType={ this.props.themeType }\n customFilter={ this.props.customFilter }\n onFilterChanged={ filterConfig => {\n this.filters = filterConfig;\n (window._localStorage || window.localStorage).setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={(selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n }}\n filterFunc={this.props.filterFunc}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected.length } color=\"primary\">{ this.props.ok || I18n.t('ra_Ok') }</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={ () => this.handleCancel() } startIcon={<IconCancel />}>{ this.props.cancel || I18n.t('ra_Cancel') }</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n notEditable: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool, // force expert mode\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof DialogSelectID} */\nconst _export = withStyles(styles)(DialogSelectID);\nexport default _export;\n"],"mappings":"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"}
package/README.md CHANGED
@@ -642,6 +642,9 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
642
642
  -->
643
643
 
644
644
  ## Changelog
645
+ ### 3.1.20 (2022-07-14)
646
+ * (bluefox) Allowed to show select dialog with the expert mode enabled
647
+
645
648
  ### 3.1.19 (2022-07-08)
646
649
  * (bluefox) Allowed to extend translations for all languages together
647
650
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "3.1.19",
3
+ "version": "3.1.20",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -27,20 +27,20 @@
27
27
  "homepage": "https://github.com/ioBroker/adapter-react-v5#readme",
28
28
  "devDependencies": {},
29
29
  "dependencies": {
30
- "@emotion/react": "^11.9.0",
31
- "@emotion/styled": "^11.8.1",
32
- "@mui/icons-material": "^5.8.0",
33
- "@mui/material": "^5.8.1",
34
- "@mui/styles": "^5.8.0",
35
- "@mui/x-date-pickers": "^5.0.0-alpha.4",
30
+ "@emotion/react": "^11.9.3",
31
+ "@emotion/styled": "^11.9.3",
32
+ "@mui/icons-material": "^5.8.4",
33
+ "@mui/material": "^5.9.0",
34
+ "@mui/styles": "^5.9.0",
35
+ "@mui/x-date-pickers": "^5.0.0-beta.0",
36
36
  "react-cropper": "^2.1.8",
37
- "@sentry/browser": "^6.19.7",
38
- "@sentry/integrations": "^6.19.7",
39
- "@types/iobroker": "^4.0.3",
37
+ "@sentry/browser": "^7.6.0",
38
+ "@sentry/integrations": "^7.6.0",
39
+ "@types/iobroker": "^4.0.4",
40
40
  "react-color": "^2.19.3",
41
41
  "react-colorful": "^5.5.1",
42
- "react-dropzone": "^14.2.1",
43
- "react-icons": "^4.3.1",
42
+ "react-dropzone": "^14.2.2",
43
+ "react-icons": "^4.4.0",
44
44
  "react-inlinesvg": "^3.0.0",
45
45
  "react-text-mask": "^5.4.3"
46
46
  }