@iobroker/adapter-react-v5 3.2.0 → 3.2.1
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.
- package/Components/MDUtils.js +2 -1
- package/Components/MDUtils.js.map +1 -1
- package/Components/Router.js +2 -1
- package/Components/Router.js.map +1 -1
- package/Components/TabHeader.js +2 -1
- package/Components/TabHeader.js.map +1 -1
- package/Components/Utils.js +1 -1
- package/Components/Utils.js.map +1 -1
- package/Dialogs/Message.js +2 -1
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/TextInput.js +2 -1
- package/Dialogs/TextInput.js.map +1 -1
- package/README.md +3 -0
- package/i18n/de.json +13 -1
- package/i18n/en.json +13 -1
- package/i18n/ru.json +13 -1
- package/package.json +1 -1
package/Components/MDUtils.js
CHANGED
|
@@ -14,7 +14,8 @@ var _copyToClipboard = _interopRequireDefault(require("./copy-to-clipboard"));
|
|
|
14
14
|
*
|
|
15
15
|
* MIT License
|
|
16
16
|
*
|
|
17
|
-
**/
|
|
17
|
+
**/
|
|
18
|
+
var MDUtils = /*#__PURE__*/function () {
|
|
18
19
|
function MDUtils() {
|
|
19
20
|
(0, _classCallCheck2["default"])(this, MDUtils);
|
|
20
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MDUtils.js","names":["MDUtils","text","m","match","replace","trim","toLowerCase","url","target","window","location","open","extractHeader","body","header","title","lines","split","i","length","startsWith","substring","attrs","pos","indexOf","_header","forEach","line","attr","parseFloat","toString","doc","e","copy","stopPropagation","preventDefault"],"sources":["MDUtils.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\n\nclass MDUtils {\n static text2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, ' '));\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 if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static getTitle(text) {\n let {body, header} = MDUtils.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 extractHeader(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 removeDocsify(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 static onCopy(e, text) {\n copy(text);\n e && e.stopPropagation();\n e && e.preventDefault();\n }\n}\n\nexport default MDUtils;"],"mappings":";;;;;;;;;AAMA;AACA;AAPA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"file":"MDUtils.js","names":["MDUtils","text","m","match","replace","trim","toLowerCase","url","target","window","location","open","extractHeader","body","header","title","lines","split","i","length","startsWith","substring","attrs","pos","indexOf","_header","forEach","line","attr","parseFloat","toString","doc","e","copy","stopPropagation","preventDefault"],"sources":["MDUtils.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\n\nclass MDUtils {\n static text2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, ' '));\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 if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static getTitle(text) {\n let {body, header} = MDUtils.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 extractHeader(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 removeDocsify(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 static onCopy(e, text) {\n copy(text);\n e && e.stopPropagation();\n e && e.preventDefault();\n }\n}\n\nexport default MDUtils;"],"mappings":"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"}
|
package/Components/Router.js
CHANGED
|
@@ -18,7 +18,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
18
18
|
* @template P Type of the properties object.
|
|
19
19
|
* @template S Type of the internal state object.
|
|
20
20
|
* @extends {React.Component<P, S>}
|
|
21
|
-
*/
|
|
21
|
+
*/
|
|
22
|
+
var Router = /*#__PURE__*/function (_React$Component) {
|
|
22
23
|
(0, _inherits2["default"])(Router, _React$Component);
|
|
23
24
|
var _super = _createSuper(Router);
|
|
24
25
|
/**
|
package/Components/Router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","names":["Router","props","onHashChangedBound","onHashChanged","bind","window","addEventListener","removeEventListener","hash","location","replace","parts","split","map","item","decodeURIComponent","e","console","error","tab","dialog","id","arg","getLocation","undefined","React","Component"],"sources":["Router.js"],"sourcesContent":["// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\n\n/**\n * @template P Type of the properties object.\n * @template S Type of the internal state object.\n * @extends {React.Component<P, S>}\n */\nclass Router extends React.Component {\n /**\n * @param {P} props The React properties of this component.\n */\n constructor(props) {\n super(props);\n this.onHashChangedBound = this.onHashChanged.bind(this);\n }\n\n componentDidMount() {\n window.addEventListener('hashchange', this.onHashChangedBound);\n }\n\n componentWillUnmount() {\n window.removeEventListener('hashchange', this.onHashChangedBound);\n }\n\n onHashChanged() {\n // override this function\n }\n\n /**\n * Gets the location object.\n * @returns {{ tab: string; dialog: string; id: string; arg: string; }}\n */\n static getLocation() {\n let hash = window.location.hash;\n hash = hash.replace(/^#/, '');\n const parts = hash.split('/').map(item => {\n try {\n return item ? decodeURIComponent(item) : ''\n } catch (e) {\n console.error('Router: Cannot decode ' + item);\n return item || '';\n }\n });\n // #tabName/dialogName/deviceId\n return {\n tab: parts[0] || '',\n dialog: parts[1] || '',\n id: parts[2] || '',\n arg: parts[3] || ''\n };\n }\n\n /**\n * Navigate to a new location. Any parameters that are not set will be taken from the current location.\n * @param {string | undefined} [tab]\n * @param {string | undefined} [dialog]\n * @param {string | undefined} [id]\n * @param {string | undefined} [arg]\n */\n static doNavigate(tab, dialog, id, arg) {\n let hash = '';\n const location = Router.getLocation();\n if (arg !== undefined && !id) {\n id = location.id;\n }\n if (id && !dialog) {\n dialog = location.dialog;\n }\n if (dialog && !tab) {\n tab = location.tab;\n } else\n if (tab === null) {\n tab = location.tab;\n }\n\n if (tab) {\n hash = '#' + tab;\n if (dialog) {\n hash += '/' + dialog;\n\n if (id) {\n hash += '/' + id;\n if (arg !== undefined) {\n hash += '/' + arg;\n }\n }\n }\n }\n if (window.location.hash !== hash) {\n window.location.hash = hash;\n }\n }\n}\n\nexport default Router;"],"mappings":";;;;;;;;;;;;;AACA;AAA0B;AAAA;AAE1B;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"file":"Router.js","names":["Router","props","onHashChangedBound","onHashChanged","bind","window","addEventListener","removeEventListener","hash","location","replace","parts","split","map","item","decodeURIComponent","e","console","error","tab","dialog","id","arg","getLocation","undefined","React","Component"],"sources":["Router.js"],"sourcesContent":["// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\n\n/**\n * @template P Type of the properties object.\n * @template S Type of the internal state object.\n * @extends {React.Component<P, S>}\n */\nclass Router extends React.Component {\n /**\n * @param {P} props The React properties of this component.\n */\n constructor(props) {\n super(props);\n this.onHashChangedBound = this.onHashChanged.bind(this);\n }\n\n componentDidMount() {\n window.addEventListener('hashchange', this.onHashChangedBound);\n }\n\n componentWillUnmount() {\n window.removeEventListener('hashchange', this.onHashChangedBound);\n }\n\n onHashChanged() {\n // override this function\n }\n\n /**\n * Gets the location object.\n * @returns {{ tab: string; dialog: string; id: string; arg: string; }}\n */\n static getLocation() {\n let hash = window.location.hash;\n hash = hash.replace(/^#/, '');\n const parts = hash.split('/').map(item => {\n try {\n return item ? decodeURIComponent(item) : ''\n } catch (e) {\n console.error('Router: Cannot decode ' + item);\n return item || '';\n }\n });\n // #tabName/dialogName/deviceId\n return {\n tab: parts[0] || '',\n dialog: parts[1] || '',\n id: parts[2] || '',\n arg: parts[3] || ''\n };\n }\n\n /**\n * Navigate to a new location. Any parameters that are not set will be taken from the current location.\n * @param {string | undefined} [tab]\n * @param {string | undefined} [dialog]\n * @param {string | undefined} [id]\n * @param {string | undefined} [arg]\n */\n static doNavigate(tab, dialog, id, arg) {\n let hash = '';\n const location = Router.getLocation();\n if (arg !== undefined && !id) {\n id = location.id;\n }\n if (id && !dialog) {\n dialog = location.dialog;\n }\n if (dialog && !tab) {\n tab = location.tab;\n } else\n if (tab === null) {\n tab = location.tab;\n }\n\n if (tab) {\n hash = '#' + tab;\n if (dialog) {\n hash += '/' + dialog;\n\n if (id) {\n hash += '/' + id;\n if (arg !== undefined) {\n hash += '/' + arg;\n }\n }\n }\n }\n if (window.location.hash !== hash) {\n window.location.hash = hash;\n }\n }\n}\n\nexport default Router;"],"mappings":"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"}
|
package/Components/TabHeader.js
CHANGED
|
@@ -18,7 +18,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
18
18
|
* @typedef {object} TabHeaderProps
|
|
19
19
|
*
|
|
20
20
|
* @extends {React.Component<TabHeaderProps>}
|
|
21
|
-
*/
|
|
21
|
+
*/
|
|
22
|
+
var TabHeader = /*#__PURE__*/function (_React$Component) {
|
|
22
23
|
(0, _inherits2["default"])(TabHeader, _React$Component);
|
|
23
24
|
var _super = _createSuper(TabHeader);
|
|
24
25
|
function TabHeader() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabHeader.js","names":["TabHeader","props","children","React","Component"],"sources":["TabHeader.js"],"sourcesContent":["// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\n\nimport Grid from '@mui/material/Grid';\n\n/**\n * @typedef {object} TabHeaderProps\n *\n * @extends {React.Component<TabHeaderProps>}\n */\nclass TabHeader extends React.Component {\n render() {\n return <Grid\n item\n container\n alignItems=\"center\"\n >\n { this.props.children }\n </Grid>;\n }\n}\n\nexport default TabHeader;"],"mappings":";;;;;;;;;;;;AACA;AAEA;AAAsC;AAAA;AAEtC;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"file":"TabHeader.js","names":["TabHeader","props","children","React","Component"],"sources":["TabHeader.js"],"sourcesContent":["// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\n\nimport Grid from '@mui/material/Grid';\n\n/**\n * @typedef {object} TabHeaderProps\n *\n * @extends {React.Component<TabHeaderProps>}\n */\nclass TabHeader extends React.Component {\n render() {\n return <Grid\n item\n container\n alignItems=\"center\"\n >\n { this.props.children }\n </Grid>;\n }\n}\n\nexport default TabHeader;"],"mappings":";;;;;;;;;;;;AACA;AAEA;AAAsC;AAAA;AAEtC;AACA;AACA;AACA;AACA;AAJA,IAKMA,SAAS;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OACX,kBAAS;MACL,oBAAO,gCAAC,gBAAI;QACR,IAAI;QACJ,SAAS;QACT,UAAU,EAAC;MAAQ,GAEjB,IAAI,CAACC,KAAK,CAACC,QAAQ,CAClB;IACX;EAAC;EAAA;AAAA,EATmBC,iBAAK,CAACC,SAAS;AAAA,eAYxBJ,SAAS;AAAA"}
|
package/Components/Utils.js
CHANGED
|
@@ -1075,7 +1075,7 @@ var Utils = /*#__PURE__*/function () {
|
|
|
1075
1075
|
if (m) {
|
|
1076
1076
|
hex = parseInt(m[1], 10).toString(16).padStart(2, '0') + parseInt(m[2], 10).toString(16).padStart(2, '0') + parseInt(m[2], 10).toString(16).padStart(2, '0');
|
|
1077
1077
|
}
|
|
1078
|
-
} else if (hex.startsWith('
|
|
1078
|
+
} else if (hex.startsWith('rgb')) {
|
|
1079
1079
|
var _m = hex.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);
|
|
1080
1080
|
if (_m) {
|
|
1081
1081
|
hex = parseInt(_m[1], 10).toString(16).padStart(2, '0') + parseInt(_m[2], 10).toString(16).padStart(2, '0') + parseInt(_m[2], 10).toString(16).padStart(2, '0');
|
package/Components/Utils.js.map
CHANGED
|
@@ -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;\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/, ' '));\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('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else\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/, ' '));\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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"}
|
package/Dialogs/Message.js
CHANGED
|
@@ -29,7 +29,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
29
29
|
* @property {() => void} [onClose] Close handler.
|
|
30
30
|
*
|
|
31
31
|
* @extends {React.Component<DialogMessageProps>}
|
|
32
|
-
*/
|
|
32
|
+
*/
|
|
33
|
+
var DialogMessage = /*#__PURE__*/function (_React$Component) {
|
|
33
34
|
(0, _inherits2["default"])(DialogMessage, _React$Component);
|
|
34
35
|
var _super = _createSuper(DialogMessage);
|
|
35
36
|
function DialogMessage() {
|
package/Dialogs/Message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","names":["DialogMessage","props","onClose","handleOk","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","icon","object"],"sources":["Message.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\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';\n\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport I18n from '../i18n';\n\n/**\n * @typedef {object} DialogMessageProps\n * @property {string} [title] The dialog title; default: Message (translated)\n * @property {string} text The dialog text.\n * @property {() => void} [onClose] Close handler.\n *\n * @extends {React.Component<DialogMessageProps>}\n */\nclass DialogMessage extends React.Component {\n handleOk() {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return <Dialog\n open={!0}\n maxWidth=\"sm\"\n fullWidth={true}\n onClose={() => this.handleOk()}\n aria-labelledby=\"message-dialog-title\"\n aria-describedby=\"message-dialog-description\"\n >\n <DialogTitle id=\"message-dialog-title\">{this.props.title || I18n.t('ra_Message')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"message-dialog-description\">\n {this.props.text}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" autoFocus startIcon={<IconClose />}>{I18n.t('ra_Close')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogMessage.propTypes = {\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.object\n};\n\nexport default DialogMessage;\n"],"mappings":";;;;;;;;;;;;AAQA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAA2B;AAAA;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"file":"Message.js","names":["DialogMessage","props","onClose","handleOk","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","icon","object"],"sources":["Message.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\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';\n\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport I18n from '../i18n';\n\n/**\n * @typedef {object} DialogMessageProps\n * @property {string} [title] The dialog title; default: Message (translated)\n * @property {string} text The dialog text.\n * @property {() => void} [onClose] Close handler.\n *\n * @extends {React.Component<DialogMessageProps>}\n */\nclass DialogMessage extends React.Component {\n handleOk() {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return <Dialog\n open={!0}\n maxWidth=\"sm\"\n fullWidth={true}\n onClose={() => this.handleOk()}\n aria-labelledby=\"message-dialog-title\"\n aria-describedby=\"message-dialog-description\"\n >\n <DialogTitle id=\"message-dialog-title\">{this.props.title || I18n.t('ra_Message')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"message-dialog-description\">\n {this.props.text}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" autoFocus startIcon={<IconClose />}>{I18n.t('ra_Close')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogMessage.propTypes = {\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.object\n};\n\nexport default DialogMessage;\n"],"mappings":";;;;;;;;;;;;AAQA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAA2B;AAAA;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAQMA,aAAa;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OACf,oBAAW;MACP,IAAI,CAACC,KAAK,CAACC,OAAO,IAAI,IAAI,CAACD,KAAK,CAACC,OAAO,EAAE;IAC9C;EAAC;IAAA;IAAA,OAED,kBAAS;MAAA;MACL,oBAAO,gCAAC,kBAAM;QACV,IAAI,EAAE,CAAC,CAAE;QACT,QAAQ,EAAC,IAAI;QACb,SAAS,EAAE,IAAK;QAChB,OAAO,EAAE;UAAA,OAAM,KAAI,CAACC,QAAQ,EAAE;QAAA,CAAC;QAC/B,mBAAgB,sBAAsB;QACtC,oBAAiB;MAA4B,gBAE7C,gCAAC,uBAAW;QAAC,EAAE,EAAC;MAAsB,GAAE,IAAI,CAACF,KAAK,CAACG,KAAK,IAAIC,gBAAI,CAACC,CAAC,CAAC,YAAY,CAAC,CAAe,eAC/F,gCAAC,yBAAa,qBACV,gCAAC,6BAAiB;QAAC,EAAE,EAAC;MAA4B,GAC7C,IAAI,CAACL,KAAK,CAACM,IAAI,CACA,CACR,eAChB,gCAAC,yBAAa,qBACV,gCAAC,kBAAM;QAAC,OAAO,EAAC,WAAW;QAAC,OAAO,EAAE;UAAA,OAAM,KAAI,CAACJ,QAAQ,EAAE;QAAA,CAAC;QAAC,KAAK,EAAC,SAAS;QAAC,SAAS;QAAC,SAAS,eAAE,gCAAC,iBAAS;MAAI,GAAEE,gBAAI,CAACC,CAAC,CAAC,UAAU,CAAC,CAAU,CACjI,CACX;IACb;EAAC;EAAA;AAAA,EAxBuBE,iBAAK,CAACC,SAAS;AA2B3CT,aAAa,CAACU,SAAS,GAAG;EACtBR,OAAO,EAAES,qBAAS,CAACC,IAAI,CAACC,UAAU;EAClCT,KAAK,EAAEO,qBAAS,CAACG,MAAM;EACvBP,IAAI,EAAEI,qBAAS,CAACG,MAAM;EACtBC,IAAI,EAAEJ,qBAAS,CAACK;AACpB,CAAC;AAAC,eAEahB,aAAa;AAAA"}
|
package/Dialogs/TextInput.js
CHANGED
|
@@ -39,7 +39,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
39
39
|
* @property {string} [input] The input when opening the dialog.
|
|
40
40
|
*
|
|
41
41
|
* @extends {React.Component<TextInputProps>}
|
|
42
|
-
*/
|
|
42
|
+
*/
|
|
43
|
+
var TextInput = /*#__PURE__*/function (_React$Component) {
|
|
43
44
|
(0, _inherits2["default"])(TextInput, _React$Component);
|
|
44
45
|
var _super = _createSuper(TextInput);
|
|
45
46
|
/**
|
package/Dialogs/TextInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.js","names":["TextInput","props","state","text","input","value","error","onClose","titleText","promptText","labelText","type","e","charCode","verify","target","rule","setState","applyText","I18n","t","cancelText","React","Component","propTypes","PropTypes","func","isRequired","string","replace","_export","withWidth"],"sources":["TextInput.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport I18n from '../i18n';\n\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\n\nimport withWidth from '../Components/withWidth';\n\n/**\n * @typedef {object} TextInputProps\n * @property {(text: string | null) => void} onClose The dialog close callback.\n * @property {string} titleText The title text.\n * @property {string} [promptText] Prompt text (default: empty).\n * @property {string} [labelText] Label text (default: empty).\n * @property {string} cancelText The text of the cancel button.\n * @property {string} applyText The text of the apply button.\n * @property {(text: string) => string} [verify] The verification callback. Return a non-empty string if there was an error.\n * @property {(text: string) => string} [rule] The text replacement callback.\n * @property {'text' | 'number' | 'password' | 'email'} [type] The type of the textbox (default: text).\n * @property {string} [input] The input when opening the dialog.\n *\n * @extends {React.Component<TextInputProps>}\n */\nclass TextInput extends React.Component {\n /**\n * @param {Readonly<TextInputProps>} props\n */\n constructor(props) {\n super(props);\n\n this.state = {\n text: this.props.input || this.props.value || '', // input is deprectaed\n error: ''\n }\n }\n render() {\n return <Dialog open={true} onClose={() => this.props.onClose(null)} aria-labelledby=\"form-dialog-title\">\n <DialogTitle id=\"form-dialog-title\">{this.props.titleText}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.promptText}\n </DialogContentText>\n <TextField\n variant=\"standard\"\n autoFocus\n margin=\"dense\"\n error={!!this.state.error}\n title={this.state.error}\n value={this.state.text}\n label={this.props.labelText || ''}\n type={this.props.type || 'text'}\n onKeyPress={e => e.charCode === 13 && this.state.text && this.props.onClose(this.state.text)}\n onChange={e => {\n let error = '';\n if (this.props.verify) {\n error = !this.props.verify(e.target.value);\n }\n\n if (this.props.rule) {\n this.setState({text: this.props.rule(e.target.value), error});\n } else {\n this.setState({text: e.target.value, error});\n }\n }}\n fullWidth\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" disabled={!this.state.text || this.state.error} onClick={() => this.props.onClose(this.state.text)}\n color=\"primary\" startIcon={<IconCheck />}>{this.props.applyText || I18n.t('ra_Ok')}</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.props.onClose(null)} startIcon={<IconClose />}>{this.props.cancelText || I18n.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nTextInput.propTypes = {\n onClose: PropTypes.func.isRequired,\n titleText: PropTypes.string.isRequired,\n promptText: PropTypes.string,\n labelText: PropTypes.string,\n cancelText: PropTypes.string,\n applyText: PropTypes.string,\n verify: PropTypes.func,\n replace: PropTypes.func,\n type: PropTypes.string, // text, number, password, email\n value: PropTypes.string,\n};\n\n/** @type {typeof TextInput} */\nconst _export = withWidth()(TextInput);\nexport default _export;"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAAgD;AAAA;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"file":"TextInput.js","names":["TextInput","props","state","text","input","value","error","onClose","titleText","promptText","labelText","type","e","charCode","verify","target","rule","setState","applyText","I18n","t","cancelText","React","Component","propTypes","PropTypes","func","isRequired","string","replace","_export","withWidth"],"sources":["TextInput.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport I18n from '../i18n';\n\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\n\nimport withWidth from '../Components/withWidth';\n\n/**\n * @typedef {object} TextInputProps\n * @property {(text: string | null) => void} onClose The dialog close callback.\n * @property {string} titleText The title text.\n * @property {string} [promptText] Prompt text (default: empty).\n * @property {string} [labelText] Label text (default: empty).\n * @property {string} cancelText The text of the cancel button.\n * @property {string} applyText The text of the apply button.\n * @property {(text: string) => string} [verify] The verification callback. Return a non-empty string if there was an error.\n * @property {(text: string) => string} [rule] The text replacement callback.\n * @property {'text' | 'number' | 'password' | 'email'} [type] The type of the textbox (default: text).\n * @property {string} [input] The input when opening the dialog.\n *\n * @extends {React.Component<TextInputProps>}\n */\nclass TextInput extends React.Component {\n /**\n * @param {Readonly<TextInputProps>} props\n */\n constructor(props) {\n super(props);\n\n this.state = {\n text: this.props.input || this.props.value || '', // input is deprectaed\n error: ''\n }\n }\n render() {\n return <Dialog open={true} onClose={() => this.props.onClose(null)} aria-labelledby=\"form-dialog-title\">\n <DialogTitle id=\"form-dialog-title\">{this.props.titleText}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.promptText}\n </DialogContentText>\n <TextField\n variant=\"standard\"\n autoFocus\n margin=\"dense\"\n error={!!this.state.error}\n title={this.state.error}\n value={this.state.text}\n label={this.props.labelText || ''}\n type={this.props.type || 'text'}\n onKeyPress={e => e.charCode === 13 && this.state.text && this.props.onClose(this.state.text)}\n onChange={e => {\n let error = '';\n if (this.props.verify) {\n error = !this.props.verify(e.target.value);\n }\n\n if (this.props.rule) {\n this.setState({text: this.props.rule(e.target.value), error});\n } else {\n this.setState({text: e.target.value, error});\n }\n }}\n fullWidth\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" disabled={!this.state.text || this.state.error} onClick={() => this.props.onClose(this.state.text)}\n color=\"primary\" startIcon={<IconCheck />}>{this.props.applyText || I18n.t('ra_Ok')}</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.props.onClose(null)} startIcon={<IconClose />}>{this.props.cancelText || I18n.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nTextInput.propTypes = {\n onClose: PropTypes.func.isRequired,\n titleText: PropTypes.string.isRequired,\n promptText: PropTypes.string,\n labelText: PropTypes.string,\n cancelText: PropTypes.string,\n applyText: PropTypes.string,\n verify: PropTypes.func,\n replace: PropTypes.func,\n type: PropTypes.string, // text, number, password, email\n value: PropTypes.string,\n};\n\n/** @type {typeof TextInput} */\nconst _export = withWidth()(TextInput);\nexport default _export;"],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -643,6 +643,9 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
|
|
|
643
643
|
-->
|
|
644
644
|
|
|
645
645
|
## Changelog
|
|
646
|
+
### 3.2.1 (2022-10-24)
|
|
647
|
+
* (bluefox) Corrected color inversion
|
|
648
|
+
|
|
646
649
|
### 3.2.0 (2022-10-19)
|
|
647
650
|
* (bluefox) Added ukrainian translation
|
|
648
651
|
|
package/i18n/de.json
CHANGED
|
@@ -322,5 +322,17 @@
|
|
|
322
322
|
"ra_Configure": "Konfigurieren",
|
|
323
323
|
"ra_Invalid CRON": "Ungültiger CRON",
|
|
324
324
|
"ra_Discard": "Verwerfen",
|
|
325
|
-
"ra_Some data are not stored. Discard?": "Einige Daten werden nicht gespeichert. Verwerfen?"
|
|
325
|
+
"ra_Some data are not stored. Discard?": "Einige Daten werden nicht gespeichert. Verwerfen?",
|
|
326
|
+
"ra_month_Jan": "Jan",
|
|
327
|
+
"ra_month_Feb": "Feb",
|
|
328
|
+
"ra_month_Mar": "Mär",
|
|
329
|
+
"ra_month_Apr": "Apr",
|
|
330
|
+
"ra_month_Mai": "Mai",
|
|
331
|
+
"ra_month_Jun": "Jun",
|
|
332
|
+
"ra_month_Jul": "Jul",
|
|
333
|
+
"ra_month_Aug": "Aug",
|
|
334
|
+
"ra_month_Sep": "Sep",
|
|
335
|
+
"ra_month_Oct": "Okt",
|
|
336
|
+
"ra_month_Nov": "Nov",
|
|
337
|
+
"ra_month_Dec": "Dez"
|
|
326
338
|
}
|
package/i18n/en.json
CHANGED
|
@@ -322,5 +322,17 @@
|
|
|
322
322
|
"ra_Configure": "Configure",
|
|
323
323
|
"ra_Invalid CRON": "Invalid CRON",
|
|
324
324
|
"ra_Discard": "Discard",
|
|
325
|
-
"ra_Some data are not stored. Discard?": "Some data are not stored. Discard?"
|
|
325
|
+
"ra_Some data are not stored. Discard?": "Some data are not stored. Discard?",
|
|
326
|
+
"ra_month_Jan": "Jan",
|
|
327
|
+
"ra_month_Feb": "Feb",
|
|
328
|
+
"ra_month_Mar": "Mar",
|
|
329
|
+
"ra_month_Apr": "Apr",
|
|
330
|
+
"ra_month_Mai": "Mai",
|
|
331
|
+
"ra_month_Jun": "Jun",
|
|
332
|
+
"ra_month_Jul": "Jul",
|
|
333
|
+
"ra_month_Aug": "Aug",
|
|
334
|
+
"ra_month_Sep": "Sep",
|
|
335
|
+
"ra_month_Oct": "Oct",
|
|
336
|
+
"ra_month_Nov": "Nov",
|
|
337
|
+
"ra_month_Dec": "Dec"
|
|
326
338
|
}
|
package/i18n/ru.json
CHANGED
|
@@ -322,5 +322,17 @@
|
|
|
322
322
|
"ra_Configure": "Настроить",
|
|
323
323
|
"ra_Invalid CRON": "Неверный CRON",
|
|
324
324
|
"ra_Discard": "Отказаться",
|
|
325
|
-
"ra_Some data are not stored. Discard?": "Некоторые данные не сохранились. Отказаться?"
|
|
325
|
+
"ra_Some data are not stored. Discard?": "Некоторые данные не сохранились. Отказаться?",
|
|
326
|
+
"ra_month_Jan": "Янв",
|
|
327
|
+
"ra_month_Feb": "Фев",
|
|
328
|
+
"ra_month_Mar": "Мрт",
|
|
329
|
+
"ra_month_Apr": "Апр",
|
|
330
|
+
"ra_month_Mai": "Май",
|
|
331
|
+
"ra_month_Jun": "Июн",
|
|
332
|
+
"ra_month_Jul": "Июл",
|
|
333
|
+
"ra_month_Aug": "Авг",
|
|
334
|
+
"ra_month_Sep": "Сен",
|
|
335
|
+
"ra_month_Oct": "Окт",
|
|
336
|
+
"ra_month_Nov": "Ноя",
|
|
337
|
+
"ra_month_Dec": "Дек"
|
|
326
338
|
}
|