@iobroker/adapter-react-v5 7.3.2 → 7.4.0

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/README.md CHANGED
@@ -13,7 +13,7 @@ If you want to create the configuration page with ReactJS:
13
13
  - Change `name` from `src` to `ADAPTERNAME-admin` (Of course replace `ADAPTERNAME` with yours)
14
14
  - Add to devDependencies:
15
15
  ```json
16
- "@iobroker/adapter-react-v5": "^7.3.2",
16
+ "@iobroker/adapter-react-v5": "^7.4.0",
17
17
  ```
18
18
  Versions can be higher.
19
19
  So your `src/package.json` should look like:
@@ -24,7 +24,7 @@ If you want to create the configuration page with ReactJS:
24
24
  "version": "0.1.0",
25
25
  "private": true,
26
26
  "dependencies": {
27
- "@iobroker/adapter-react-v5": "^7.3.2",
27
+ "@iobroker/adapter-react-v5": "^7.4.0",
28
28
  "@iobroker/build-tools": "^1.0.0",
29
29
  "babel-eslint": "^10.1.0",
30
30
  "react-scripts": "^5.0.1"
@@ -689,6 +689,10 @@ You can find the migration instructions:
689
689
  -->
690
690
 
691
691
  ## Changelog
692
+ ### **WORK IN PROGRESS**
693
+
694
+ - (@GermanBluefox) Added new component: IconDeviceType
695
+
692
696
  ### 7.2.3 (2024-10-05)
693
697
 
694
698
  - (@GermanBluefox) Corrected error in the simple CRON dialog
@@ -1,7 +1,7 @@
1
1
  import React, { Component } from 'react';
2
2
  import { Checkbox, Button, MenuItem, Select, FormControlLabel, AppBar, Tabs, Tab, TextField } from '@mui/material';
3
3
  import { I18n } from '../i18n';
4
- import convertCronToText from './SimpleCron/cronText';
4
+ import { convertCronToText } from './SimpleCron/cronText';
5
5
  const styles = {
6
6
  mainDiv: {
7
7
  width: '100%',
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexCron.js","sourceRoot":"./src/","sources":["Components/ComplexCron.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { Checkbox, Button, MenuItem, Select, FormControlLabel, AppBar, Tabs, Tab, TextField } from '@mui/material';\n\nimport { I18n } from '../i18n';\nimport convertCronToText from './SimpleCron/cronText';\n\nconst styles: Record<string, React.CSSProperties> = {\n mainDiv: {\n width: '100%',\n height: '100%',\n },\n periodSelect: {\n // margin: '0 10px 60px 10px',\n display: 'block',\n width: 250,\n },\n slider: {\n marginTop: 20,\n display: 'block',\n width: '100%',\n },\n tabContent: {\n padding: 20,\n height: 'calc(100% - 240px)',\n overflow: 'auto',\n },\n numberButton: {\n padding: 4,\n minWidth: 40,\n margin: 5,\n },\n numberButtonBreak: {\n display: 'block',\n },\n appBar: {\n color: 'white',\n },\n warning: {\n marginLeft: 16,\n color: 'red',\n fontSize: 12,\n },\n};\n\nconst WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\n// 5-7,9-11 => [5,6,7,9,10,11]\nfunction convertMinusIntoArray(value: string | false | undefined, max: number): number[] {\n const result: number[] = [];\n\n if (value === '*') {\n if (max === 24 || max === 60 || max === 7) {\n for (let i = 0; i < max; i++) {\n result.push(i);\n }\n } else {\n for (let i = 1; i <= max; i++) {\n result.push(i);\n }\n }\n return result; // array with entries max\n }\n\n const parts = (value || '').toString().split(',');\n\n for (let p = 0; p < parts.length; p++) {\n if (!parts[p].trim().length) {\n continue;\n }\n const items = parts[p].trim().split('-');\n if (items.length > 1) {\n const iMax = parseInt(items[1], 10);\n for (let i = parseInt(items[0], 10); i <= iMax; i++) {\n result.push(i);\n }\n } else {\n result.push(parseInt(parts[p], 10));\n }\n }\n\n result.sort();\n\n // remove double entries\n for (let p = result.length - 1; p >= 0; p--) {\n if (result[p] === result[p + 1]) {\n result.splice(p + 1, 1);\n }\n }\n\n return result;\n}\n\n// [5,6,7,9,10,11] => 5-7,9-11\nfunction convertArrayIntoMinus(value: number | number[], max: number): string {\n if (typeof value !== 'object') {\n value = [value];\n }\n if (value.length === max) {\n return '*';\n }\n const newParts = [];\n if (!value.length) {\n return '-';\n }\n value = value.map(a => parseInt(a as any as string, 10));\n\n value.sort((a, b) => a - b);\n\n let start = value[0];\n let end = value[0];\n for (let p = 1; p < value.length; p++) {\n if (value[p] - 1 !== parseInt(value[p - 1] as any as string, 10)) {\n if (start === end) {\n newParts.push(start);\n } else if (end - 1 === start) {\n newParts.push(`${start},${end}`);\n } else {\n newParts.push(`${start}-${end}`);\n }\n start = value[p];\n }\n end = value[p];\n }\n\n if (start === end) {\n newParts.push(start);\n } else if (end - 1 === start) {\n newParts.push(`${start},${end}`);\n } else {\n newParts.push(`${start}-${end}`);\n }\n\n return newParts.join(',');\n}\n\ntype CronNames = 'seconds' | 'minutes' | 'hours' | 'dates' | 'months' | 'dow';\n\ninterface CronProps {\n seconds: string | false | null;\n minutes: string | null;\n hours: string | null;\n dates: string | null;\n months: string | null;\n dow: string | null;\n}\n\ninterface ComplexCronProps {\n cronExpression: string;\n onChange: (cron: string) => void;\n language: ioBroker.Languages;\n}\n\n// type CronModes = 'every' | 'everyN' | 'specific';\n\ninterface ComplexCronState {\n extended: boolean;\n tab: number;\n cron: string;\n seconds?: string | false;\n minutes?: string;\n hours?: string;\n dates?: string;\n months?: string;\n dow?: string;\n modes: CronProps;\n}\n\nexport class ComplexCron extends Component<ComplexCronProps, ComplexCronState> {\n constructor(props: ComplexCronProps) {\n super(props);\n let cron =\n typeof this.props.cronExpression === 'string'\n ? this.props.cronExpression.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '')\n : '';\n if (cron[0] === '{') {\n cron = '';\n }\n const state = ComplexCron.cron2state(cron || '* * * * *');\n\n this.state = {\n extended: false,\n tab: state.seconds !== false ? 1 : 0,\n cron: ComplexCron.state2cron(state),\n modes: {\n seconds: null,\n minutes: null,\n hours: null,\n dates: null,\n months: null,\n dow: null,\n },\n };\n Object.assign(this.state, state);\n if (this.state.cron !== this.props.cronExpression) {\n setTimeout(() => this.props.onChange && this.props.onChange(this.state.cron), 100);\n }\n }\n\n static cron2state(cron: string): CronProps {\n cron = cron.replace(/['\"]/g, '').trim();\n const cronParts = cron.split(' ').map(p => p.trim());\n let options: CronProps;\n\n if (cronParts.length === 6) {\n options = {\n seconds: cronParts[0] || '*',\n minutes: cronParts[1] || '*',\n hours: cronParts[2] || '*',\n dates: cronParts[3] || '*',\n months: cronParts[4] || '*',\n dow: cronParts[5] || '*',\n };\n } else {\n options = {\n seconds: false,\n minutes: cronParts[0] || '*',\n hours: cronParts[1] || '*',\n dates: cronParts[2] || '*',\n months: cronParts[3] || '*',\n dow: cronParts[4] || '*',\n };\n }\n return options;\n }\n\n static state2cron(state: ComplexCronState | CronProps): string {\n let text = `${state.minutes} ${state.hours} ${state.dates} ${state.months} ${state.dow}`;\n if (state.seconds !== false) {\n text = `${state.seconds} ${text}`;\n }\n return text;\n }\n\n recalcCron(): void {\n const cron = ComplexCron.state2cron(this.state);\n if (cron !== this.state.cron) {\n this.setState({ cron }, () => this.props.onChange && this.props.onChange(this.state.cron));\n }\n }\n\n onToggle(i: boolean | number, type: CronNames, max: number): void {\n if (i === true) {\n this.setCronAttr(type, '*');\n } else if (i === false) {\n if (max === 60 || max === 24) {\n this.setCronAttr(type, '0');\n } else {\n this.setCronAttr(type, '1');\n }\n } else {\n const nums = convertMinusIntoArray(this.state[type], max);\n const pos = nums.indexOf(i);\n if (pos !== -1) {\n nums.splice(pos, 1);\n } else {\n nums.push(i);\n nums.sort();\n }\n this.setCronAttr(type, convertArrayIntoMinus(nums, max));\n }\n }\n\n getDigitsSelector(type: CronNames, max: number): React.JSX.Element[] {\n let values = [];\n if (max === 7) {\n values = [1, 2, 3, 4, 5, 6, 0];\n } else if (max === 60 || max === 24) {\n for (let i = 0; i < max; i++) {\n values.push(i);\n }\n } else {\n for (let i = 1; i <= max; i++) {\n values.push(i);\n }\n }\n\n const parts = convertMinusIntoArray(this.state[type], max);\n\n return [\n <Button\n key=\"removeall\"\n variant=\"outlined\"\n style={styles.numberButton}\n // style={{paddingBottom: 20}}\n color=\"primary\"\n onClick={() => this.onToggle(false, type, max)}\n >\n {I18n.t('ra_Deselect all')}\n </Button>,\n <Button\n key=\"addall\"\n variant=\"contained\"\n // style={{paddingBottom: 20}}\n style={styles.numberButton}\n color=\"secondary\"\n onClick={() => this.onToggle(true, type, max)}\n >\n {I18n.t('ra_Select all')}\n </Button>,\n <div key=\"all\">\n {values.map(i => [\n (max === 7 && i === 4) ||\n (max === 12 && i === 7) ||\n (max === 31 && !((i - 1) % 10)) ||\n (max === 60 && i && !(i % 10)) ||\n (max === 24 && i && !(i % 6)) ? (\n <div\n key={`allInner${i}`}\n style={{ width: '100%' }}\n />\n ) : null,\n <Button\n key={`_${i}`}\n variant={parts.indexOf(i) !== -1 ? 'contained' : 'outlined'}\n style={styles.numberButton}\n color={parts.indexOf(i) !== -1 ? 'secondary' : 'primary'}\n onClick={() => this.onToggle(i, type, max)}\n >\n {max === 7 ? I18n.t(WEEKDAYS[i]) : max === 12 ? MONTHS[i - 1] : i}\n </Button>,\n ])}\n </div>,\n ];\n }\n\n getPeriodsTab(type: CronNames, max: number): React.JSX.Element | null {\n const value = this.state[type];\n let every = value === '*';\n let everyN = value === undefined || value === null ? false : value.toString().includes('/');\n let select;\n if (this.state.modes[type] === null) {\n select = every ? 'every' : everyN ? 'everyN' : 'specific';\n const modes = JSON.parse(JSON.stringify(this.state.modes));\n modes[type] = select;\n setTimeout(() => this.setState({ modes }, () => this.recalcCron()), 100);\n return null;\n }\n\n every = this.state.modes[type] === 'every';\n everyN = this.state.modes[type] === 'everyN';\n select = this.state.modes[type];\n\n let valueNumber = 1;\n if (everyN && value) {\n valueNumber = parseInt(value.replace('*/', ''), 10) || 1;\n }\n\n return (\n <div>\n <Select\n variant=\"standard\"\n style={{ ...styles.periodSelect, verticalAlign: 'bottom' }}\n value={select}\n onChange={e => {\n const modes = JSON.parse(JSON.stringify(this.state.modes));\n modes[type] = e.target.value;\n if (e.target.value === 'every') {\n this.setCronAttr(type, '*', modes);\n } else if (e.target.value === 'everyN') {\n const num = parseInt((this.state[type] || '').toString().replace('*/', ''), 10) || 1;\n this.setCronAttr(type, `*/${num}`, modes);\n } else if (e.target.value === 'specific') {\n let num = parseInt((this.state[type] || '').toString().split(',')[0], 10) || 0;\n if (!num && (type === 'months' || type === 'dates')) {\n num = 1;\n }\n this.setCronAttr(type, convertArrayIntoMinus(num, max), modes);\n }\n }}\n >\n <MenuItem\n key=\"every\"\n value=\"every\"\n >\n {I18n.t(`sc_every_${type}`)}\n </MenuItem>\n <MenuItem\n key=\"everyN\"\n value=\"everyN\"\n >\n {I18n.t(`sc_everyN_${type}`)}\n </MenuItem>\n <MenuItem\n key=\"specific\"\n value=\"specific\"\n >\n {I18n.t(`sc_specific_${type}`)}\n </MenuItem>\n </Select>\n {/* everyN && false && <span>{value}</span> */}\n {everyN && (\n <TextField\n variant=\"standard\"\n key=\"interval\"\n label={I18n.t(`sc_${type}`)}\n value={valueNumber}\n slotProps={{\n htmlInput: {\n min: 1,\n max,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n onChange={e => {\n // @ts-expect-error is allowed\n this.setState({ [type]: `*/${e.target.value}` }, () => this.recalcCron());\n }}\n type=\"number\"\n margin=\"normal\"\n />\n )}\n {!every && !everyN && this.getDigitsSelector(type, max)}\n </div>\n );\n }\n\n static convertCronToText(cron: string, lang: ioBroker.Languages): string {\n if (cron.split(' ').includes('-')) {\n return I18n.t('ra_Invalid CRON');\n }\n return convertCronToText(cron, lang);\n }\n\n setCronAttr(attr: CronNames, value: string, modes?: CronProps): void {\n if (modes) {\n if (attr === 'seconds') {\n this.setState({ seconds: value, modes }, () => this.recalcCron());\n } else if (attr === 'minutes') {\n this.setState({ minutes: value, modes }, () => this.recalcCron());\n } else if (attr === 'hours') {\n this.setState({ hours: value, modes }, () => this.recalcCron());\n } else if (attr === 'dates') {\n this.setState({ dates: value, modes }, () => this.recalcCron());\n } else if (attr === 'months') {\n this.setState({ months: value, modes }, () => this.recalcCron());\n } else if (attr === 'dow') {\n this.setState({ dow: value, modes }, () => this.recalcCron());\n } else {\n this.setState({ modes }, () => this.recalcCron());\n }\n } else if (attr === 'seconds') {\n this.setState({ seconds: value }, () => this.recalcCron());\n } else if (attr === 'minutes') {\n this.setState({ minutes: value }, () => this.recalcCron());\n } else if (attr === 'hours') {\n this.setState({ hours: value }, () => this.recalcCron());\n } else if (attr === 'dates') {\n this.setState({ dates: value }, () => this.recalcCron());\n } else if (attr === 'months') {\n this.setState({ months: value }, () => this.recalcCron());\n } else if (attr === 'dow') {\n this.setState({ dow: value }, () => this.recalcCron());\n }\n }\n\n render(): React.JSX.Element {\n const tab = this.state.seconds !== false ? this.state.tab : this.state.tab + 1;\n\n // Detect if every minute or every second is activated\n const everyMinute = this.state.minutes === '*' || this.state.minutes === '*/1';\n const everySecond = this.state.seconds === '*' || this.state.seconds === '*/1';\n\n return (\n <div style={styles.mainDiv}>\n <div style={{ paddingLeft: 8, width: 'calc(100% - px)' }}>\n <TextField\n variant=\"standard\"\n style={{ width: '100%' }}\n value={this.state.cron}\n disabled\n />\n </div>\n <div style={{ paddingLeft: 8, width: 'calc(100% - px)', height: 60 }}>\n {ComplexCron.convertCronToText(this.state.cron, this.props.language || 'en')}\n <span style={styles.warning}>\n {everySecond\n ? I18n.t('ra_warning_every_second')\n : everyMinute\n ? I18n.t('ra_warning_every_minute')\n : ''}\n </span>\n </div>\n <FormControlLabel\n control={\n <Checkbox\n checked={!!this.state.seconds}\n onChange={e =>\n this.setState({ seconds: e.target.checked ? '*' : false }, () => this.recalcCron())\n }\n />\n }\n label={I18n.t('ra_use seconds')}\n />\n <AppBar\n position=\"static\"\n sx={{ '&.MuiAppBar-root': styles.appBar }}\n color=\"secondary\"\n >\n <Tabs\n value={this.state.tab}\n style={styles.appBar}\n color=\"secondary\"\n onChange={(_active, _tab) => this.setState({ tab: _tab })}\n >\n {this.state.seconds !== false && (\n <Tab\n id=\"sc_seconds\"\n label={I18n.t('sc_seconds')}\n />\n )}\n <Tab\n id=\"minutes\"\n label={I18n.t('sc_minutes')}\n />\n <Tab\n id=\"hours\"\n label={I18n.t('sc_hours')}\n />\n <Tab\n id=\"dates\"\n label={I18n.t('sc_dates')}\n />\n <Tab\n id=\"months\"\n label={I18n.t('sc_months')}\n />\n <Tab\n id=\"dow\"\n label={I18n.t('sc_dows')}\n />\n </Tabs>\n </AppBar>\n {tab === 0 && <div style={styles.tabContent}>{this.getPeriodsTab('seconds', 60)}</div>}\n {tab === 1 && <div style={styles.tabContent}>{this.getPeriodsTab('minutes', 60)}</div>}\n {tab === 2 && <div style={styles.tabContent}>{this.getPeriodsTab('hours', 24)}</div>}\n {tab === 3 && <div style={styles.tabContent}>{this.getPeriodsTab('dates', 31)}</div>}\n {tab === 4 && <div style={styles.tabContent}>{this.getPeriodsTab('months', 12)}</div>}\n {tab === 5 && <div style={styles.tabContent}>{this.getPeriodsTab('dow', 7)}</div>}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ComplexCron.js","sourceRoot":"./src/","sources":["Components/ComplexCron.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { Checkbox, Button, MenuItem, Select, FormControlLabel, AppBar, Tabs, Tab, TextField } from '@mui/material';\n\nimport { I18n } from '../i18n';\nimport { convertCronToText } from './SimpleCron/cronText';\n\nconst styles: Record<string, React.CSSProperties> = {\n mainDiv: {\n width: '100%',\n height: '100%',\n },\n periodSelect: {\n // margin: '0 10px 60px 10px',\n display: 'block',\n width: 250,\n },\n slider: {\n marginTop: 20,\n display: 'block',\n width: '100%',\n },\n tabContent: {\n padding: 20,\n height: 'calc(100% - 240px)',\n overflow: 'auto',\n },\n numberButton: {\n padding: 4,\n minWidth: 40,\n margin: 5,\n },\n numberButtonBreak: {\n display: 'block',\n },\n appBar: {\n color: 'white',\n },\n warning: {\n marginLeft: 16,\n color: 'red',\n fontSize: 12,\n },\n};\n\nconst WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\n// 5-7,9-11 => [5,6,7,9,10,11]\nfunction convertMinusIntoArray(value: string | false | undefined, max: number): number[] {\n const result: number[] = [];\n\n if (value === '*') {\n if (max === 24 || max === 60 || max === 7) {\n for (let i = 0; i < max; i++) {\n result.push(i);\n }\n } else {\n for (let i = 1; i <= max; i++) {\n result.push(i);\n }\n }\n return result; // array with entries max\n }\n\n const parts = (value || '').toString().split(',');\n\n for (let p = 0; p < parts.length; p++) {\n if (!parts[p].trim().length) {\n continue;\n }\n const items = parts[p].trim().split('-');\n if (items.length > 1) {\n const iMax = parseInt(items[1], 10);\n for (let i = parseInt(items[0], 10); i <= iMax; i++) {\n result.push(i);\n }\n } else {\n result.push(parseInt(parts[p], 10));\n }\n }\n\n result.sort();\n\n // remove double entries\n for (let p = result.length - 1; p >= 0; p--) {\n if (result[p] === result[p + 1]) {\n result.splice(p + 1, 1);\n }\n }\n\n return result;\n}\n\n// [5,6,7,9,10,11] => 5-7,9-11\nfunction convertArrayIntoMinus(value: number | number[], max: number): string {\n if (typeof value !== 'object') {\n value = [value];\n }\n if (value.length === max) {\n return '*';\n }\n const newParts = [];\n if (!value.length) {\n return '-';\n }\n value = value.map(a => parseInt(a as any as string, 10));\n\n value.sort((a, b) => a - b);\n\n let start = value[0];\n let end = value[0];\n for (let p = 1; p < value.length; p++) {\n if (value[p] - 1 !== parseInt(value[p - 1] as any as string, 10)) {\n if (start === end) {\n newParts.push(start);\n } else if (end - 1 === start) {\n newParts.push(`${start},${end}`);\n } else {\n newParts.push(`${start}-${end}`);\n }\n start = value[p];\n }\n end = value[p];\n }\n\n if (start === end) {\n newParts.push(start);\n } else if (end - 1 === start) {\n newParts.push(`${start},${end}`);\n } else {\n newParts.push(`${start}-${end}`);\n }\n\n return newParts.join(',');\n}\n\ntype CronNames = 'seconds' | 'minutes' | 'hours' | 'dates' | 'months' | 'dow';\n\ninterface CronProps {\n seconds: string | false | null;\n minutes: string | null;\n hours: string | null;\n dates: string | null;\n months: string | null;\n dow: string | null;\n}\n\ninterface ComplexCronProps {\n cronExpression: string;\n onChange: (cron: string) => void;\n language: ioBroker.Languages;\n}\n\n// type CronModes = 'every' | 'everyN' | 'specific';\n\ninterface ComplexCronState {\n extended: boolean;\n tab: number;\n cron: string;\n seconds?: string | false;\n minutes?: string;\n hours?: string;\n dates?: string;\n months?: string;\n dow?: string;\n modes: CronProps;\n}\n\nexport class ComplexCron extends Component<ComplexCronProps, ComplexCronState> {\n constructor(props: ComplexCronProps) {\n super(props);\n let cron =\n typeof this.props.cronExpression === 'string'\n ? this.props.cronExpression.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '')\n : '';\n if (cron[0] === '{') {\n cron = '';\n }\n const state = ComplexCron.cron2state(cron || '* * * * *');\n\n this.state = {\n extended: false,\n tab: state.seconds !== false ? 1 : 0,\n cron: ComplexCron.state2cron(state),\n modes: {\n seconds: null,\n minutes: null,\n hours: null,\n dates: null,\n months: null,\n dow: null,\n },\n };\n Object.assign(this.state, state);\n if (this.state.cron !== this.props.cronExpression) {\n setTimeout(() => this.props.onChange && this.props.onChange(this.state.cron), 100);\n }\n }\n\n static cron2state(cron: string): CronProps {\n cron = cron.replace(/['\"]/g, '').trim();\n const cronParts = cron.split(' ').map(p => p.trim());\n let options: CronProps;\n\n if (cronParts.length === 6) {\n options = {\n seconds: cronParts[0] || '*',\n minutes: cronParts[1] || '*',\n hours: cronParts[2] || '*',\n dates: cronParts[3] || '*',\n months: cronParts[4] || '*',\n dow: cronParts[5] || '*',\n };\n } else {\n options = {\n seconds: false,\n minutes: cronParts[0] || '*',\n hours: cronParts[1] || '*',\n dates: cronParts[2] || '*',\n months: cronParts[3] || '*',\n dow: cronParts[4] || '*',\n };\n }\n return options;\n }\n\n static state2cron(state: ComplexCronState | CronProps): string {\n let text = `${state.minutes} ${state.hours} ${state.dates} ${state.months} ${state.dow}`;\n if (state.seconds !== false) {\n text = `${state.seconds} ${text}`;\n }\n return text;\n }\n\n recalcCron(): void {\n const cron = ComplexCron.state2cron(this.state);\n if (cron !== this.state.cron) {\n this.setState({ cron }, () => this.props.onChange && this.props.onChange(this.state.cron));\n }\n }\n\n onToggle(i: boolean | number, type: CronNames, max: number): void {\n if (i === true) {\n this.setCronAttr(type, '*');\n } else if (i === false) {\n if (max === 60 || max === 24) {\n this.setCronAttr(type, '0');\n } else {\n this.setCronAttr(type, '1');\n }\n } else {\n const nums = convertMinusIntoArray(this.state[type], max);\n const pos = nums.indexOf(i);\n if (pos !== -1) {\n nums.splice(pos, 1);\n } else {\n nums.push(i);\n nums.sort();\n }\n this.setCronAttr(type, convertArrayIntoMinus(nums, max));\n }\n }\n\n getDigitsSelector(type: CronNames, max: number): React.JSX.Element[] {\n let values = [];\n if (max === 7) {\n values = [1, 2, 3, 4, 5, 6, 0];\n } else if (max === 60 || max === 24) {\n for (let i = 0; i < max; i++) {\n values.push(i);\n }\n } else {\n for (let i = 1; i <= max; i++) {\n values.push(i);\n }\n }\n\n const parts = convertMinusIntoArray(this.state[type], max);\n\n return [\n <Button\n key=\"removeall\"\n variant=\"outlined\"\n style={styles.numberButton}\n // style={{paddingBottom: 20}}\n color=\"primary\"\n onClick={() => this.onToggle(false, type, max)}\n >\n {I18n.t('ra_Deselect all')}\n </Button>,\n <Button\n key=\"addall\"\n variant=\"contained\"\n // style={{paddingBottom: 20}}\n style={styles.numberButton}\n color=\"secondary\"\n onClick={() => this.onToggle(true, type, max)}\n >\n {I18n.t('ra_Select all')}\n </Button>,\n <div key=\"all\">\n {values.map(i => [\n (max === 7 && i === 4) ||\n (max === 12 && i === 7) ||\n (max === 31 && !((i - 1) % 10)) ||\n (max === 60 && i && !(i % 10)) ||\n (max === 24 && i && !(i % 6)) ? (\n <div\n key={`allInner${i}`}\n style={{ width: '100%' }}\n />\n ) : null,\n <Button\n key={`_${i}`}\n variant={parts.indexOf(i) !== -1 ? 'contained' : 'outlined'}\n style={styles.numberButton}\n color={parts.indexOf(i) !== -1 ? 'secondary' : 'primary'}\n onClick={() => this.onToggle(i, type, max)}\n >\n {max === 7 ? I18n.t(WEEKDAYS[i]) : max === 12 ? MONTHS[i - 1] : i}\n </Button>,\n ])}\n </div>,\n ];\n }\n\n getPeriodsTab(type: CronNames, max: number): React.JSX.Element | null {\n const value = this.state[type];\n let every = value === '*';\n let everyN = value === undefined || value === null ? false : value.toString().includes('/');\n let select;\n if (this.state.modes[type] === null) {\n select = every ? 'every' : everyN ? 'everyN' : 'specific';\n const modes = JSON.parse(JSON.stringify(this.state.modes));\n modes[type] = select;\n setTimeout(() => this.setState({ modes }, () => this.recalcCron()), 100);\n return null;\n }\n\n every = this.state.modes[type] === 'every';\n everyN = this.state.modes[type] === 'everyN';\n select = this.state.modes[type];\n\n let valueNumber = 1;\n if (everyN && value) {\n valueNumber = parseInt(value.replace('*/', ''), 10) || 1;\n }\n\n return (\n <div>\n <Select\n variant=\"standard\"\n style={{ ...styles.periodSelect, verticalAlign: 'bottom' }}\n value={select}\n onChange={e => {\n const modes = JSON.parse(JSON.stringify(this.state.modes));\n modes[type] = e.target.value;\n if (e.target.value === 'every') {\n this.setCronAttr(type, '*', modes);\n } else if (e.target.value === 'everyN') {\n const num = parseInt((this.state[type] || '').toString().replace('*/', ''), 10) || 1;\n this.setCronAttr(type, `*/${num}`, modes);\n } else if (e.target.value === 'specific') {\n let num = parseInt((this.state[type] || '').toString().split(',')[0], 10) || 0;\n if (!num && (type === 'months' || type === 'dates')) {\n num = 1;\n }\n this.setCronAttr(type, convertArrayIntoMinus(num, max), modes);\n }\n }}\n >\n <MenuItem\n key=\"every\"\n value=\"every\"\n >\n {I18n.t(`sc_every_${type}`)}\n </MenuItem>\n <MenuItem\n key=\"everyN\"\n value=\"everyN\"\n >\n {I18n.t(`sc_everyN_${type}`)}\n </MenuItem>\n <MenuItem\n key=\"specific\"\n value=\"specific\"\n >\n {I18n.t(`sc_specific_${type}`)}\n </MenuItem>\n </Select>\n {/* everyN && false && <span>{value}</span> */}\n {everyN && (\n <TextField\n variant=\"standard\"\n key=\"interval\"\n label={I18n.t(`sc_${type}`)}\n value={valueNumber}\n slotProps={{\n htmlInput: {\n min: 1,\n max,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n onChange={e => {\n // @ts-expect-error is allowed\n this.setState({ [type]: `*/${e.target.value}` }, () => this.recalcCron());\n }}\n type=\"number\"\n margin=\"normal\"\n />\n )}\n {!every && !everyN && this.getDigitsSelector(type, max)}\n </div>\n );\n }\n\n static convertCronToText(cron: string, lang: ioBroker.Languages): string {\n if (cron.split(' ').includes('-')) {\n return I18n.t('ra_Invalid CRON');\n }\n return convertCronToText(cron, lang);\n }\n\n setCronAttr(attr: CronNames, value: string, modes?: CronProps): void {\n if (modes) {\n if (attr === 'seconds') {\n this.setState({ seconds: value, modes }, () => this.recalcCron());\n } else if (attr === 'minutes') {\n this.setState({ minutes: value, modes }, () => this.recalcCron());\n } else if (attr === 'hours') {\n this.setState({ hours: value, modes }, () => this.recalcCron());\n } else if (attr === 'dates') {\n this.setState({ dates: value, modes }, () => this.recalcCron());\n } else if (attr === 'months') {\n this.setState({ months: value, modes }, () => this.recalcCron());\n } else if (attr === 'dow') {\n this.setState({ dow: value, modes }, () => this.recalcCron());\n } else {\n this.setState({ modes }, () => this.recalcCron());\n }\n } else if (attr === 'seconds') {\n this.setState({ seconds: value }, () => this.recalcCron());\n } else if (attr === 'minutes') {\n this.setState({ minutes: value }, () => this.recalcCron());\n } else if (attr === 'hours') {\n this.setState({ hours: value }, () => this.recalcCron());\n } else if (attr === 'dates') {\n this.setState({ dates: value }, () => this.recalcCron());\n } else if (attr === 'months') {\n this.setState({ months: value }, () => this.recalcCron());\n } else if (attr === 'dow') {\n this.setState({ dow: value }, () => this.recalcCron());\n }\n }\n\n render(): React.JSX.Element {\n const tab = this.state.seconds !== false ? this.state.tab : this.state.tab + 1;\n\n // Detect if every minute or every second is activated\n const everyMinute = this.state.minutes === '*' || this.state.minutes === '*/1';\n const everySecond = this.state.seconds === '*' || this.state.seconds === '*/1';\n\n return (\n <div style={styles.mainDiv}>\n <div style={{ paddingLeft: 8, width: 'calc(100% - px)' }}>\n <TextField\n variant=\"standard\"\n style={{ width: '100%' }}\n value={this.state.cron}\n disabled\n />\n </div>\n <div style={{ paddingLeft: 8, width: 'calc(100% - px)', height: 60 }}>\n {ComplexCron.convertCronToText(this.state.cron, this.props.language || 'en')}\n <span style={styles.warning}>\n {everySecond\n ? I18n.t('ra_warning_every_second')\n : everyMinute\n ? I18n.t('ra_warning_every_minute')\n : ''}\n </span>\n </div>\n <FormControlLabel\n control={\n <Checkbox\n checked={!!this.state.seconds}\n onChange={e =>\n this.setState({ seconds: e.target.checked ? '*' : false }, () => this.recalcCron())\n }\n />\n }\n label={I18n.t('ra_use seconds')}\n />\n <AppBar\n position=\"static\"\n sx={{ '&.MuiAppBar-root': styles.appBar }}\n color=\"secondary\"\n >\n <Tabs\n value={this.state.tab}\n style={styles.appBar}\n color=\"secondary\"\n onChange={(_active, _tab) => this.setState({ tab: _tab })}\n >\n {this.state.seconds !== false && (\n <Tab\n id=\"sc_seconds\"\n label={I18n.t('sc_seconds')}\n />\n )}\n <Tab\n id=\"minutes\"\n label={I18n.t('sc_minutes')}\n />\n <Tab\n id=\"hours\"\n label={I18n.t('sc_hours')}\n />\n <Tab\n id=\"dates\"\n label={I18n.t('sc_dates')}\n />\n <Tab\n id=\"months\"\n label={I18n.t('sc_months')}\n />\n <Tab\n id=\"dow\"\n label={I18n.t('sc_dows')}\n />\n </Tabs>\n </AppBar>\n {tab === 0 && <div style={styles.tabContent}>{this.getPeriodsTab('seconds', 60)}</div>}\n {tab === 1 && <div style={styles.tabContent}>{this.getPeriodsTab('minutes', 60)}</div>}\n {tab === 2 && <div style={styles.tabContent}>{this.getPeriodsTab('hours', 24)}</div>}\n {tab === 3 && <div style={styles.tabContent}>{this.getPeriodsTab('dates', 31)}</div>}\n {tab === 4 && <div style={styles.tabContent}>{this.getPeriodsTab('months', 12)}</div>}\n {tab === 5 && <div style={styles.tabContent}>{this.getPeriodsTab('dow', 7)}</div>}\n </div>\n );\n }\n}\n"]}
@@ -12,7 +12,7 @@ export declare function getSystemIcon(obj: ioBroker.Object | null): React.JSX.El
12
12
  * @param imagePrefix Prefix for image
13
13
  */
14
14
  export declare function getSelectIdIcon(obj: ioBroker.Object | null, imagePrefix?: string): string | null;
15
- interface IconProps {
15
+ export interface IconProps {
16
16
  /** URL, UTF-8 character, or svg code (data:image/svg...) */
17
17
  src: string | React.JSX.Element | null | undefined;
18
18
  /** Class name */
@@ -33,4 +33,3 @@ interface IconProps {
33
33
  alt?: string;
34
34
  }
35
35
  export declare function Icon(props: IconProps): React.JSX.Element | null;
36
- export {};
@@ -113,7 +113,7 @@ export function Icon(props) {
113
113
  return (React.createElement("span", { title: props.title || undefined, style: { height: 27, marginTop: -8, ...(props.styleUTF8 || props.style) }, className: Utils.clsx(props.className, 'iconOwn') }, props.src));
114
114
  }
115
115
  if (props.src.startsWith('data:image/svg')) {
116
- return (React.createElement(SVG, { title: props.title || undefined, src: props.src, className: Utils.clsx(props.className, 'iconOwn'), width: props.style?.width || 28, height: props.style?.height || props.style?.width || 28, style: props.style || {} }));
116
+ return (React.createElement(SVG, { title: props.title || undefined, src: props.src, className: Utils.clsx(props.className, 'iconOwn'), width: props.style?.width || 28, height: props.style?.height || props.style?.width || 28, style: props.style || undefined }));
117
117
  }
118
118
  if (REMOTE_SERVER && !props.src.startsWith('http://') && !props.src.startsWith('https://')) {
119
119
  let src = props.src;
@@ -124,14 +124,14 @@ export function Icon(props) {
124
124
  src = REMOTE_PREFIX + src;
125
125
  }
126
126
  if (props.sx) {
127
- return (React.createElement(Box, { component: "img", sx: props.sx, title: props.title || undefined, style: props.style || {}, className: Utils.clsx(props.className, 'iconOwn'), src: `https://remote-files.iobroker.in${src}`, alt: props.alt || undefined, ref: props.ref, onError: e => props.onError && props.onError(e) }));
127
+ return (React.createElement(Box, { component: "img", sx: props.sx, title: props.title || undefined, style: props.style || undefined, className: Utils.clsx(props.className, 'iconOwn'), src: `https://remote-files.iobroker.in${src}`, alt: props.alt || undefined, ref: props.ref, onError: e => props.onError && props.onError(e) }));
128
128
  }
129
- return (React.createElement("img", { title: props.title || undefined, style: props.style || {}, className: Utils.clsx(props.className, 'iconOwn'), src: `https://remote-files.iobroker.in${src}`, alt: props.alt || undefined, ref: props.ref, onError: e => props.onError && props.onError(e) }));
129
+ return (React.createElement("img", { title: props.title || undefined, style: props.style || undefined, className: Utils.clsx(props.className, 'iconOwn'), src: `https://remote-files.iobroker.in${src}`, alt: props.alt || undefined, ref: props.ref, onError: e => props.onError && props.onError(e) }));
130
130
  }
131
131
  if (props.sx) {
132
- return (React.createElement(Box, { component: "img", sx: props.sx, title: props.title || undefined, style: props.style || {}, className: Utils.clsx(props.className, 'iconOwn'), src: props.src, alt: props.alt || undefined, ref: props.ref, onError: props.onError }));
132
+ return (React.createElement(Box, { component: "img", sx: props.sx, title: props.title || undefined, style: props.style || undefined, className: Utils.clsx(props.className, 'iconOwn'), src: props.src, alt: props.alt || undefined, ref: props.ref, onError: props.onError }));
133
133
  }
134
- return (React.createElement("img", { title: props.title || undefined, style: props.style || {}, className: Utils.clsx(props.className, 'iconOwn'), src: props.src, alt: props.alt || undefined, ref: props.ref, onError: props.onError }));
134
+ return (React.createElement("img", { title: props.title || undefined, style: props.style || undefined, className: Utils.clsx(props.className, 'iconOwn'), src: props.src, alt: props.alt || undefined, ref: props.ref, onError: props.onError }));
135
135
  }
136
136
  return props.src;
137
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"./src/","sources":["Components/Icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type ReactEventHandler } from 'react';\nimport SVG from 'react-inlinesvg';\n\nimport { Box } from '@mui/material';\n\nimport {\n SettingsApplications as IconSystem,\n Photo as IconPhoto,\n SupervisedUserCircle as IconGroup,\n PersonOutlined as IconUser,\n Router as IconHost,\n Wifi as IconConnection,\n Info as IconInfo,\n Description as IconMeta,\n} from '@mui/icons-material';\n\nimport { IconAlias } from '../icons/IconAlias';\nimport { Utils } from './Utils';\n\n/**\n * Get icon by object type (state, channel, device, ...).\n *\n * @param obj Object\n */\nexport function getSystemIcon(obj: ioBroker.Object | null): React.JSX.Element | null {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design has special icons\n if (id.startsWith('_design/') || id === 'system') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\n/**\n * Get icon from the object.\n *\n * @param obj Object\n * @param imagePrefix Prefix for image\n */\nexport function getSelectIdIcon(obj: ioBroker.Object | null, imagePrefix?: string): string | null {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name as string}/${cIcon}`;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\ninterface IconProps {\n /** URL, UTF-8 character, or svg code (data:image/svg...) */\n src: string | React.JSX.Element | null | undefined;\n /** Class name */\n className?: string;\n /** Style for image */\n style?: React.CSSProperties;\n /** Styles for mui */\n sx?: Record<string, any>;\n /** Tooltip */\n title?: string;\n /** Styles for utf-8 characters */\n styleUTF8?: React.CSSProperties;\n /** On error handler */\n onError?: ReactEventHandler<HTMLImageElement>;\n /** Reference to image */\n ref?: React.RefObject<HTMLImageElement>;\n /** Alternative text for image */\n alt?: string;\n}\n\nconst REMOTE_SERVER = window.location.hostname.endsWith('iobroker.in');\nconst REMOTE_PREFIX = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1);\n\nexport function Icon(props: IconProps): React.JSX.Element | null {\n if (props.src) {\n if (typeof props.src === 'string') {\n if (props.src.length < 3) {\n // utf-8 char\n if (props.sx) {\n return (\n <Box\n component=\"span\"\n sx={props.sx}\n title={props.title || undefined}\n style={{ height: 27, marginTop: -8, ...(props.styleUTF8 || props.style) }}\n className={Utils.clsx(props.className, 'iconOwn')}\n >\n {props.src}\n </Box>\n );\n }\n return (\n <span\n title={props.title || undefined}\n style={{ height: 27, marginTop: -8, ...(props.styleUTF8 || props.style) }}\n className={Utils.clsx(props.className, 'iconOwn')}\n >\n {props.src}\n </span>\n );\n }\n if (props.src.startsWith('data:image/svg')) {\n return (\n <SVG\n title={props.title || undefined}\n src={props.src}\n className={Utils.clsx(props.className, 'iconOwn')}\n width={props.style?.width || 28}\n height={props.style?.height || props.style?.width || 28}\n style={props.style || {}}\n />\n );\n }\n if (REMOTE_SERVER && !props.src.startsWith('http://') && !props.src.startsWith('https://')) {\n let src = props.src;\n if (src.startsWith('./')) {\n src = REMOTE_PREFIX + src.substring(2);\n } else if (!src.startsWith('/')) {\n src = REMOTE_PREFIX + src;\n }\n\n if (props.sx) {\n return (\n <Box\n component=\"img\"\n sx={props.sx}\n title={props.title || undefined}\n style={props.style || {}}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={`https://remote-files.iobroker.in${src}`}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={e => props.onError && props.onError(e)}\n />\n );\n }\n return (\n <img\n title={props.title || undefined}\n style={props.style || {}}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={`https://remote-files.iobroker.in${src}`}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={e => props.onError && props.onError(e)}\n />\n );\n }\n if (props.sx) {\n return (\n <Box\n component=\"img\"\n sx={props.sx}\n title={props.title || undefined}\n style={props.style || {}}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={props.src}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={props.onError}\n />\n );\n }\n return (\n <img\n title={props.title || undefined}\n style={props.style || {}}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={props.src}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={props.onError}\n />\n );\n }\n\n return props.src;\n }\n return null;\n}\n"]}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"./src/","sources":["Components/Icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type ReactEventHandler } from 'react';\nimport SVG from 'react-inlinesvg';\n\nimport { Box } from '@mui/material';\n\nimport {\n SettingsApplications as IconSystem,\n Photo as IconPhoto,\n SupervisedUserCircle as IconGroup,\n PersonOutlined as IconUser,\n Router as IconHost,\n Wifi as IconConnection,\n Info as IconInfo,\n Description as IconMeta,\n} from '@mui/icons-material';\n\nimport { IconAlias } from '../icons/IconAlias';\nimport { Utils } from './Utils';\n\n/**\n * Get icon by object type (state, channel, device, ...).\n *\n * @param obj Object\n */\nexport function getSystemIcon(obj: ioBroker.Object | null): React.JSX.Element | null {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design has special icons\n if (id.startsWith('_design/') || id === 'system') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\n/**\n * Get icon from the object.\n *\n * @param obj Object\n * @param imagePrefix Prefix for image\n */\nexport function getSelectIdIcon(obj: ioBroker.Object | null, imagePrefix?: string): string | null {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name as string}/${cIcon}`;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nexport interface IconProps {\n /** URL, UTF-8 character, or svg code (data:image/svg...) */\n src: string | React.JSX.Element | null | undefined;\n /** Class name */\n className?: string;\n /** Style for image */\n style?: React.CSSProperties;\n /** Styles for mui */\n sx?: Record<string, any>;\n /** Tooltip */\n title?: string;\n /** Styles for utf-8 characters */\n styleUTF8?: React.CSSProperties;\n /** On error handler */\n onError?: ReactEventHandler<HTMLImageElement>;\n /** Reference to image */\n ref?: React.RefObject<HTMLImageElement>;\n /** Alternative text for image */\n alt?: string;\n}\n\nconst REMOTE_SERVER = window.location.hostname.endsWith('iobroker.in');\nconst REMOTE_PREFIX = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1);\n\nexport function Icon(props: IconProps): React.JSX.Element | null {\n if (props.src) {\n if (typeof props.src === 'string') {\n if (props.src.length < 3) {\n // utf-8 char\n if (props.sx) {\n return (\n <Box\n component=\"span\"\n sx={props.sx}\n title={props.title || undefined}\n style={{ height: 27, marginTop: -8, ...(props.styleUTF8 || props.style) }}\n className={Utils.clsx(props.className, 'iconOwn')}\n >\n {props.src}\n </Box>\n );\n }\n return (\n <span\n title={props.title || undefined}\n style={{ height: 27, marginTop: -8, ...(props.styleUTF8 || props.style) }}\n className={Utils.clsx(props.className, 'iconOwn')}\n >\n {props.src}\n </span>\n );\n }\n if (props.src.startsWith('data:image/svg')) {\n return (\n <SVG\n title={props.title || undefined}\n src={props.src}\n className={Utils.clsx(props.className, 'iconOwn')}\n width={props.style?.width || 28}\n height={props.style?.height || props.style?.width || 28}\n style={props.style || undefined}\n />\n );\n }\n if (REMOTE_SERVER && !props.src.startsWith('http://') && !props.src.startsWith('https://')) {\n let src = props.src;\n if (src.startsWith('./')) {\n src = REMOTE_PREFIX + src.substring(2);\n } else if (!src.startsWith('/')) {\n src = REMOTE_PREFIX + src;\n }\n\n if (props.sx) {\n return (\n <Box\n component=\"img\"\n sx={props.sx}\n title={props.title || undefined}\n style={props.style || undefined}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={`https://remote-files.iobroker.in${src}`}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={e => props.onError && props.onError(e)}\n />\n );\n }\n return (\n <img\n title={props.title || undefined}\n style={props.style || undefined}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={`https://remote-files.iobroker.in${src}`}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={e => props.onError && props.onError(e)}\n />\n );\n }\n if (props.sx) {\n return (\n <Box\n component=\"img\"\n sx={props.sx}\n title={props.title || undefined}\n style={props.style || undefined}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={props.src}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={props.onError}\n />\n );\n }\n return (\n <img\n title={props.title || undefined}\n style={props.style || undefined}\n className={Utils.clsx(props.className, 'iconOwn')}\n src={props.src}\n alt={props.alt || undefined}\n ref={props.ref}\n onError={props.onError}\n />\n );\n }\n\n return props.src;\n }\n return null;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { type IconProps } from './Icon';
3
+ declare const deviceTypes: readonly ["unknown", "airCondition", "blind", "blindButtons", "button", "buttonSensor", "camera", "chart", "cie", "ct", "dimmer", "door", "fireAlarm", "floodAlarm", "gate", "hue", "humidity", "image", "info", "instance", "light", "location", "lock", "media", "motion", "rgb", "rgbSingle", "rgbwSingle", "slider", "socket", "temperature", "thermostat", "vacuumCleaner", "volume", "volumeGroup", "warning", "weatherCurrent", "weatherForecast", "window", "windowTilt", "hub3", "node", "controller", "hub5"];
4
+ export type DeviceType = (typeof deviceTypes)[number];
5
+ export declare function isDeviceIcon(icon: string): DeviceType | null;
6
+ export declare function getDeviceIcon(type: DeviceType, props?: IconProps): React.JSX.Element | null;
7
+ export declare function IconDeviceType(props: IconProps): React.JSX.Element | null;
8
+ export {};
@@ -0,0 +1,207 @@
1
+ import React from 'react';
2
+ import { AcUnit, Air, Blinds, BlindsClosed, ColorLens, ControlCamera, DeviceHub, DirectionsRun, DoorSliding, Gradient, Hub, Image, Info, Lightbulb, LocationOn, Lock, Palette, PlayArrowRounded, Polyline, Power, QuestionMark, SensorDoor, Thermostat, Timeline, TipsAndUpdates, Tune, Videocam, VolumeUp, Warning, Water, WaterDrop, WbSunny, Whatshot, Window, } from '@mui/icons-material';
3
+ import { Icon } from './Icon';
4
+ import { Utils } from './Utils';
5
+ import { IconButtonImage } from '../icons/IconButtonImage';
6
+ import { IconVacuum } from '../icons/IconVacuum';
7
+ import { IconInstance } from '../icons/IconInstance';
8
+ // Taken from type detector: https://github.com/ioBroker/ioBroker.type-detector/blob/master/src/types.ts#L27
9
+ const deviceTypes = [
10
+ 'unknown',
11
+ 'airCondition',
12
+ 'blind',
13
+ 'blindButtons',
14
+ 'button',
15
+ 'buttonSensor',
16
+ 'camera',
17
+ 'chart',
18
+ 'cie',
19
+ 'ct',
20
+ 'dimmer',
21
+ 'door',
22
+ 'fireAlarm',
23
+ 'floodAlarm',
24
+ 'gate',
25
+ 'hue',
26
+ 'humidity',
27
+ 'image',
28
+ 'info',
29
+ 'instance',
30
+ 'light',
31
+ 'location',
32
+ 'lock',
33
+ 'media',
34
+ 'motion',
35
+ 'rgb',
36
+ 'rgbSingle',
37
+ 'rgbwSingle',
38
+ 'slider',
39
+ 'socket',
40
+ 'temperature',
41
+ 'thermostat',
42
+ 'vacuumCleaner',
43
+ 'volume',
44
+ 'volumeGroup',
45
+ 'warning',
46
+ 'weatherCurrent',
47
+ 'weatherForecast',
48
+ 'window',
49
+ 'windowTilt',
50
+ 'hub3',
51
+ 'node',
52
+ 'controller',
53
+ 'hub5',
54
+ ];
55
+ export function isDeviceIcon(icon) {
56
+ if (deviceTypes.includes(icon)) {
57
+ return icon;
58
+ }
59
+ return null;
60
+ }
61
+ export function getDeviceIcon(type, props) {
62
+ let SvgComponent;
63
+ if (type === 'hub3') {
64
+ SvgComponent = DeviceHub;
65
+ }
66
+ if (type === 'node') {
67
+ SvgComponent = Polyline;
68
+ }
69
+ if (type === 'hub5') {
70
+ SvgComponent = Hub;
71
+ }
72
+ if (type === 'controller') {
73
+ SvgComponent = ControlCamera;
74
+ }
75
+ if (type === 'airCondition') {
76
+ SvgComponent = AcUnit;
77
+ }
78
+ if (type === 'blind') {
79
+ SvgComponent = Blinds;
80
+ }
81
+ if (type === 'camera') {
82
+ SvgComponent = Videocam;
83
+ }
84
+ if (type === 'chart') {
85
+ SvgComponent = Timeline;
86
+ }
87
+ if (type === 'ct') {
88
+ SvgComponent = Gradient;
89
+ }
90
+ if (type === 'dimmer') {
91
+ SvgComponent = TipsAndUpdates;
92
+ }
93
+ if (type === 'door') {
94
+ SvgComponent = SensorDoor;
95
+ }
96
+ if (type === 'fireAlarm') {
97
+ SvgComponent = Whatshot;
98
+ }
99
+ if (type === 'floodAlarm') {
100
+ SvgComponent = Water;
101
+ }
102
+ if (type === 'humidity') {
103
+ SvgComponent = WaterDrop;
104
+ }
105
+ if (type === 'image') {
106
+ SvgComponent = Image;
107
+ }
108
+ if (type === 'light') {
109
+ SvgComponent = Lightbulb;
110
+ }
111
+ if (type === 'lock') {
112
+ SvgComponent = Lock;
113
+ }
114
+ if (type === 'location') {
115
+ SvgComponent = LocationOn;
116
+ }
117
+ if (type === 'media') {
118
+ SvgComponent = PlayArrowRounded;
119
+ }
120
+ if (type === 'motion') {
121
+ SvgComponent = DirectionsRun;
122
+ }
123
+ if (type === 'rgb') {
124
+ SvgComponent = Palette;
125
+ }
126
+ if (type === 'rgbSingle') {
127
+ SvgComponent = Palette;
128
+ }
129
+ if (type === 'rgbwSingle') {
130
+ SvgComponent = Palette;
131
+ }
132
+ if (type === 'slider') {
133
+ SvgComponent = Tune;
134
+ }
135
+ if (type === 'socket') {
136
+ SvgComponent = Power;
137
+ }
138
+ if (type === 'temperature') {
139
+ SvgComponent = Thermostat;
140
+ }
141
+ if (type === 'thermostat') {
142
+ SvgComponent = Thermostat;
143
+ }
144
+ if (type === 'volume') {
145
+ SvgComponent = VolumeUp;
146
+ }
147
+ if (type === 'volumeGroup') {
148
+ SvgComponent = VolumeUp;
149
+ }
150
+ if (type === 'weatherCurrent') {
151
+ SvgComponent = Air;
152
+ }
153
+ if (type === 'weatherForecast') {
154
+ SvgComponent = WbSunny;
155
+ }
156
+ if (type === 'window') {
157
+ SvgComponent = Window;
158
+ }
159
+ if (type === 'windowTilt') {
160
+ SvgComponent = Window;
161
+ }
162
+ if (type === 'blindButtons') {
163
+ SvgComponent = BlindsClosed;
164
+ }
165
+ if (type === 'button') {
166
+ SvgComponent = IconButtonImage;
167
+ }
168
+ if (type === 'buttonSensor') {
169
+ SvgComponent = IconButtonImage;
170
+ }
171
+ if (type === 'cie') {
172
+ SvgComponent = ColorLens;
173
+ }
174
+ if (type === 'gate') {
175
+ SvgComponent = DoorSliding;
176
+ }
177
+ if (type === 'hue') {
178
+ SvgComponent = ColorLens;
179
+ }
180
+ if (type === 'info') {
181
+ SvgComponent = Info;
182
+ }
183
+ if (type === 'instance') {
184
+ SvgComponent = IconInstance;
185
+ }
186
+ if (type === 'unknown') {
187
+ SvgComponent = QuestionMark;
188
+ }
189
+ if (type === 'vacuumCleaner') {
190
+ SvgComponent = IconVacuum;
191
+ }
192
+ if (type === 'warning') {
193
+ SvgComponent = Warning;
194
+ }
195
+ if (SvgComponent) {
196
+ return (React.createElement(SvgComponent, { style: props.style || undefined, className: Utils.clsx(props.className, 'iconOwn') }));
197
+ }
198
+ return null;
199
+ }
200
+ export function IconDeviceType(props) {
201
+ const icon = getDeviceIcon(props.src, props);
202
+ if (icon) {
203
+ return icon;
204
+ }
205
+ return React.createElement(Icon, { ...props });
206
+ }
207
+ //# sourceMappingURL=IconDeviceType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconDeviceType.js","sourceRoot":"./src/","sources":["Components/IconDeviceType.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n AcUnit,\n Air,\n Blinds,\n BlindsClosed,\n ColorLens,\n ControlCamera,\n DeviceHub,\n DirectionsRun,\n DoorSliding,\n Gradient,\n Hub,\n Image,\n Info,\n Lightbulb,\n LocationOn,\n Lock,\n Palette,\n PlayArrowRounded,\n Polyline,\n Power,\n QuestionMark,\n SensorDoor,\n type SvgIconComponent,\n Thermostat,\n Timeline,\n TipsAndUpdates,\n Tune,\n Videocam,\n VolumeUp,\n Warning,\n Water,\n WaterDrop,\n WbSunny,\n Whatshot,\n Window,\n} from '@mui/icons-material';\nimport { Icon, type IconProps } from './Icon';\nimport { Utils } from './Utils';\nimport { IconButtonImage } from '../icons/IconButtonImage';\nimport { IconVacuum } from '../icons/IconVacuum';\nimport { IconInstance } from '../icons/IconInstance';\n\n// Taken from type detector: https://github.com/ioBroker/ioBroker.type-detector/blob/master/src/types.ts#L27\nconst deviceTypes = [\n 'unknown',\n 'airCondition',\n 'blind',\n 'blindButtons',\n 'button',\n 'buttonSensor',\n 'camera',\n 'chart',\n 'cie',\n 'ct',\n 'dimmer',\n 'door',\n 'fireAlarm',\n 'floodAlarm',\n 'gate',\n 'hue',\n 'humidity',\n 'image',\n 'info',\n 'instance',\n 'light',\n 'location',\n 'lock',\n 'media',\n 'motion',\n 'rgb',\n 'rgbSingle',\n 'rgbwSingle',\n 'slider',\n 'socket',\n 'temperature',\n 'thermostat',\n 'vacuumCleaner',\n 'volume',\n 'volumeGroup',\n 'warning',\n 'weatherCurrent',\n 'weatherForecast',\n 'window',\n 'windowTilt',\n 'hub3',\n 'node',\n 'controller',\n 'hub5',\n] as const;\n\nexport type DeviceType = (typeof deviceTypes)[number];\n\nexport function isDeviceIcon(icon: string): DeviceType | null {\n if (deviceTypes.includes(icon as DeviceType)) {\n return icon as DeviceType;\n }\n return null;\n}\n\nexport function getDeviceIcon(type: DeviceType, props?: IconProps): React.JSX.Element | null {\n let SvgComponent: SvgIconComponent | undefined;\n if (type === 'hub3') {\n SvgComponent = DeviceHub;\n }\n if (type === 'node') {\n SvgComponent = Polyline;\n }\n if (type === 'hub5') {\n SvgComponent = Hub;\n }\n if (type === 'controller') {\n SvgComponent = ControlCamera;\n }\n if (type === 'airCondition') {\n SvgComponent = AcUnit;\n }\n if (type === 'blind') {\n SvgComponent = Blinds;\n }\n if (type === 'camera') {\n SvgComponent = Videocam;\n }\n if (type === 'chart') {\n SvgComponent = Timeline;\n }\n if (type === 'ct') {\n SvgComponent = Gradient;\n }\n if (type === 'dimmer') {\n SvgComponent = TipsAndUpdates;\n }\n if (type === 'door') {\n SvgComponent = SensorDoor;\n }\n if (type === 'fireAlarm') {\n SvgComponent = Whatshot;\n }\n if (type === 'floodAlarm') {\n SvgComponent = Water;\n }\n if (type === 'humidity') {\n SvgComponent = WaterDrop;\n }\n if (type === 'image') {\n SvgComponent = Image;\n }\n if (type === 'light') {\n SvgComponent = Lightbulb;\n }\n if (type === 'lock') {\n SvgComponent = Lock;\n }\n if (type === 'location') {\n SvgComponent = LocationOn;\n }\n if (type === 'media') {\n SvgComponent = PlayArrowRounded;\n }\n if (type === 'motion') {\n SvgComponent = DirectionsRun;\n }\n if (type === 'rgb') {\n SvgComponent = Palette;\n }\n if (type === 'rgbSingle') {\n SvgComponent = Palette;\n }\n if (type === 'rgbwSingle') {\n SvgComponent = Palette;\n }\n if (type === 'slider') {\n SvgComponent = Tune;\n }\n if (type === 'socket') {\n SvgComponent = Power;\n }\n if (type === 'temperature') {\n SvgComponent = Thermostat;\n }\n if (type === 'thermostat') {\n SvgComponent = Thermostat;\n }\n if (type === 'volume') {\n SvgComponent = VolumeUp;\n }\n if (type === 'volumeGroup') {\n SvgComponent = VolumeUp;\n }\n if (type === 'weatherCurrent') {\n SvgComponent = Air;\n }\n if (type === 'weatherForecast') {\n SvgComponent = WbSunny;\n }\n if (type === 'window') {\n SvgComponent = Window;\n }\n if (type === 'windowTilt') {\n SvgComponent = Window;\n }\n if (type === 'blindButtons') {\n SvgComponent = BlindsClosed;\n }\n if (type === 'button') {\n SvgComponent = IconButtonImage as SvgIconComponent;\n }\n if (type === 'buttonSensor') {\n SvgComponent = IconButtonImage as SvgIconComponent;\n }\n if (type === 'cie') {\n SvgComponent = ColorLens;\n }\n if (type === 'gate') {\n SvgComponent = DoorSliding;\n }\n if (type === 'hue') {\n SvgComponent = ColorLens;\n }\n if (type === 'info') {\n SvgComponent = Info;\n }\n if (type === 'instance') {\n SvgComponent = IconInstance as SvgIconComponent;\n }\n if (type === 'unknown') {\n SvgComponent = QuestionMark;\n }\n if (type === 'vacuumCleaner') {\n SvgComponent = IconVacuum as SvgIconComponent;\n }\n if (type === 'warning') {\n SvgComponent = Warning;\n }\n\n if (SvgComponent) {\n return (\n <SvgComponent\n style={props.style || undefined}\n className={Utils.clsx(props.className, 'iconOwn')}\n />\n );\n }\n return null;\n}\n\nexport function IconDeviceType(props: IconProps): React.JSX.Element | null {\n const icon = getDeviceIcon(props.src as DeviceType, props);\n if (icon) {\n return icon;\n }\n\n return <Icon {...props} />;\n}\n"]}
@@ -7,5 +7,4 @@ import 'cronstrue/locales/zh_CN';
7
7
  import 'cronstrue/locales/uk';
8
8
  import 'cronstrue/locales/pt_BR';
9
9
  import 'cronstrue/locales/pl';
10
- declare function convertCronToText(cron: string, lang?: ioBroker.Languages): string;
11
- export default convertCronToText;
10
+ export declare function convertCronToText(cron: string, lang?: ioBroker.Languages): string;
@@ -8,8 +8,7 @@ import 'cronstrue/locales/zh_CN';
8
8
  import 'cronstrue/locales/uk';
9
9
  import 'cronstrue/locales/pt_BR';
10
10
  import 'cronstrue/locales/pl';
11
- function convertCronToText(cron, lang) {
11
+ export function convertCronToText(cron, lang) {
12
12
  return cronstrue.toString(cron, { locale: lang });
13
13
  }
14
- export default convertCronToText;
15
14
  //# sourceMappingURL=cronText.js.map