@iobroker/json-config 8.3.6 → 8.3.8
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 +1 -1
- package/build/JsonConfigComponent/ConfigCoordinates.js +18 -7
- package/build/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
- package/build/JsonConfigComponent/ConfigGeneric.js +1 -1
- package/build/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/build/JsonConfigComponent/ConfigInstanceSelect.js +2 -2
- package/build/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/build/JsonConfigComponent/ConfigStaticImage.js +1 -1
- package/build/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
- package/build/JsonConfigComponent/ConfigTable.js +13 -2
- package/build/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/build/JsonConfigComponent/index.d.ts +1 -1
- package/build/JsonConfigComponent/index.js +19 -11
- package/build/JsonConfigComponent/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigInstanceSelect.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigInstanceSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,OAAO,aAAmE,MAAM,iBAAiB,CAAC;AAElG,MAAM,MAAM,GAAwC;IAChD,IAAI,EAAE;QACF,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,CAAC;KACjB;CACJ,CAAC;AAUF,MAAM,oBAAqB,SAAQ,aAAmE;IAClG,iBAAiB;QACb,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACxC,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC7B,OAAO,GAAG,SAAS,CAAC;QACxB,CAAC;QAED,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;aAC1B,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC;aAClC,IAAI,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;gBAC/C,qDAAqD;gBACrD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACpC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAC3E,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjF,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAC9D,CAAC;YACN,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAChC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,aAAa,GAAsD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAChG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;oBACzB,CAAC,CAAC,QAAQ,CAAC,GAAG;oBACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;wBACvB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;wBAC/B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACtD,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,GAAG;gBACpF,IAAI,EAAE,WAAW,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;aAClE,CAAC,CAAC,CAAC;YAEJ,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;oBACpB,OAAO,CAAC,CAAC;gBACb,CAAC;gBACD,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;oBACpB,OAAO,CAAC,CAAC,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9C,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;YACxG,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACxB,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAErD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAC5C,kBAAkB,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EACjD,IAAI,CAAC,iBAAiB,CACzB,CAAC;QACN,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,oBAAoB;QAChB,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7G,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACjC,CAAC;IAED,iBAAiB,GAAG,CAAC,EAAU,EAAE,GAA4B,EAAQ,EAAE;QACnE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC;YAClD,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YAC9B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;gBACvB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;gBACrB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,UAAU;YACV,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,aAAa,GAAsD,IAAI,CAAC,KAAK,CAC/E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAC3C,CAAC;gBAEF,MAAM,QAAQ,GAAuC,EAAE,CAAC;gBACxD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAClD,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC;gBAC9C,CAAC;gBACD,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/B,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;gBAEvC,IAAI,CAAC,QAAQ,CAAC,QAAqC,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1F,OAAO;YACX,CAAC;YAED,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,aAAa,GAAsD,IAAI,CAAC,KAAK,CAC/E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAC3C,CAAC;gBACF,MAAM,IAAI,GACN,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAC/B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC3D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC1B,aAAa,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;wBACzB,CAAC,CAAC,GAAG,CAAC,GAAG;wBACT,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;4BACvB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;4BAC1B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;oBACjD,KAAK,EAAE,GAAG,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,GAAG;oBAC/D,IAAI,EAAE,WAAW,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;iBAC7C,CAAC,CAAC;gBACH,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,UAAU,CAAC,KAAa,EAAE,QAAiB,CAAC,oBAAoB;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjF,OAAO,CACH,oBAAC,WAAW,IACR,SAAS,QACT,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EACpB,OAAO,EAAC,UAAU;YAEjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CACvB,oBAAC,UAAU,IAAC,MAAM,UAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAc,CAC1E,CAAC,CAAC,CAAC,IAAI;YACR,oBAAC,MAAM,IACH,OAAO,EAAC,UAAU,EAClB,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,YAAY,QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,WAAW,EAAE,GAAG,EAAE,CAAC,CACf,8BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;oBAC3B,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CACV,6BACI,GAAG,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,EACrB,GAAG,EAAE,IAAI,CAAC,KAAK,EACf,KAAK,EAAE,MAAM,CAAC,IAAI,GACpB,CACL,CAAC,CAAC,CAAC,IAAI;oBACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAC7B,CACV,EACD,QAAQ,EAAE,CAAC,CAAC,EAAE,CACV,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAGnG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAChC,oBAAC,QAAQ,IACL,GAAG,EAAE,EAAE,CAAC,KAAK,EACb,KAAK,EAAE,EAAE,CAAC,KAAK,EACf,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;gBAEnE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CACP,6BACI,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EACnB,GAAG,EAAE,EAAE,CAAC,KAAK,EACb,KAAK,EAAE,MAAM,CAAC,IAAI,GACpB,CACL,CAAC,CAAC,CAAC,IAAI;gBACP,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CACtB,CACd,CAAC,CACG;YACR,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,oBAAC,cAAc,QACV,IAAI,CAAC,UAAU,CACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAClC,CACY,CACpB,CAAC,CAAC,CAAC,IAAI,CACE,CACjB,CAAC;IACN,CAAC;CACJ;AAED,eAAe,oBAAoB,CAAC","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemInstanceSelect } from '../types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n icon: {\n width: 20,\n height: 20,\n marginRight: 4,\n },\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemInstanceSelect;\n}\n\ninterface ConfigInstanceSelectState extends ConfigGenericState {\n selectOptions?: { label: string; value: string; icon?: string }[];\n}\n\nclass ConfigInstanceSelect extends ConfigGeneric<ConfigInstanceSelectProps, ConfigInstanceSelectState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n let adapter = this.props.schema.adapter;\n if (adapter === '_dataSources') {\n adapter = undefined;\n }\n\n void this.props.oContext.socket\n .getAdapterInstances(adapter, true)\n .then(async instances => {\n if (this.props.schema.adapter === '_dataSources') {\n // get only \"data-sources\", like history, sql, influx\n instances = instances.filter(instance => instance?.common?.getHistory);\n } else if (this.props.schema.adapter) {\n instances = instances.filter(instance =>\n instance?._id.startsWith(`system.adapter.${this.props.schema.adapter}.`),\n );\n } else if (this.props.schema.adapters && Array.isArray(this.props.schema.adapters)) {\n instances = instances.filter(instance =>\n this.props.schema.adapters.includes(instance?.common?.name),\n );\n }\n\n if (this.props.schema.onlyEnabled) {\n instances = instances.filter(instance => instance?.common?.enabled);\n }\n\n const selectOptions: { label: string; value: string; icon?: string }[] = instances.map(instance => ({\n value: this.props.schema.long\n ? instance._id\n : this.props.schema.short\n ? instance._id.split('.').pop()\n : instance._id.replace(/^system\\.adapter\\./, ''),\n label: `${instance.common.name} [${instance._id.replace(/^system\\.adapter\\./, '')}]`,\n icon: `adapter/${instance.common.name}/${instance.common.icon}`,\n }));\n\n selectOptions.sort((a, b) => {\n if (a.value > b.value) {\n return 1;\n }\n if (a.value < b.value) {\n return -1;\n }\n return 0;\n });\n\n if (this.props.schema.allowDeactivate !== false) {\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n }\n if (this.props.schema.all) {\n selectOptions.unshift({ label: I18n.t('sch_all'), value: '*' });\n }\n\n this.setState({ value: value || '', selectOptions });\n\n await this.props.oContext.socket.subscribeObject(\n `system.adapter.${adapter ? `${adapter}.` : ''}*`,\n this.onInstancesUpdate,\n );\n })\n .catch(e => console.error(`Cannot get instances: ${e}`));\n }\n\n componentWillUnmount(): void {\n void this.props.oContext.socket.unsubscribeObject('system.adapter.*', this.onInstancesUpdate).then(() => {});\n super.componentWillUnmount();\n }\n\n onInstancesUpdate = (id: string, obj?: ioBroker.Object | null): void => {\n if (!id.match(/^system\\.adapter\\.[-_a-z\\d]+\\.\\d+$/)) {\n return;\n }\n const _id = this.props.schema.long\n ? id\n : this.props.schema.short\n ? id.split('.').pop()\n : id.replace(/^system\\.adapter\\./, '');\n const index = this.state.selectOptions.findIndex(item => item.value === _id);\n if (!obj) {\n // deleted\n if (index !== -1) {\n const selectOptions: { label: string; value: string; icon?: string }[] = JSON.parse(\n JSON.stringify(this.state.selectOptions),\n );\n\n const newState: Partial<ConfigInstanceSelectState> = {};\n if (this.state.value === selectOptions[index].value) {\n newState.value = ConfigGeneric.NONE_VALUE;\n }\n selectOptions.splice(index, 1);\n newState.selectOptions = selectOptions;\n\n this.setState(newState as ConfigInstanceSelectState);\n }\n } else {\n if (this.props.schema.adapter === '_dataSources' && (!obj.common || !obj.common.getHistory)) {\n return;\n }\n\n if (index === -1) {\n const selectOptions: { label: string; value: string; icon?: string }[] = JSON.parse(\n JSON.stringify(this.state.selectOptions),\n );\n const name =\n typeof obj.common.name === 'object'\n ? obj.common.name[I18n.getLanguage()] || obj.common.name.en\n : obj.common.name;\n selectOptions.push({\n value: this.props.schema.long\n ? obj._id\n : this.props.schema.short\n ? obj._id.split('.').pop()\n : obj._id.replace(/^system\\.adapter\\./, ''),\n label: `${name} [${obj._id.replace(/^system\\.adapter\\./, '')}]`,\n icon: `adapter/${name}/${obj.common.icon}`,\n });\n selectOptions.sort((a, b) => (a.label > b.label ? 1 : a.label < b.label ? -1 : 0));\n this.setState({ selectOptions });\n }\n }\n };\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(it => it.value === this.state.value);\n\n return (\n <FormControl\n fullWidth\n key={this.props.attr}\n variant=\"standard\"\n >\n {this.props.schema.label ? (\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={this.state.value}\n renderValue={() => (\n <span style={{ display: 'flex' }}>\n {item?.icon ? (\n <img\n src={`./${item.icon}`}\n alt={item.value}\n style={styles.icon}\n />\n ) : null}\n {this.getText(item?.label, true)}\n </span>\n )}\n onChange={e =>\n this.setState({ value: e.target.value }, () => this.onChange(this.props.attr, this.state.value))\n }\n >\n {this.state.selectOptions.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n style={it.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {it.icon ? (\n <img\n src={`./${it.icon}`}\n alt={it.value}\n style={styles.icon}\n />\n ) : null}\n {this.getText(it.label, true)}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigInstanceSelect;\n"]}
|
|
1
|
+
{"version":3,"file":"ConfigInstanceSelect.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigInstanceSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemInstanceSelect } from '../types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n icon: {\n width: 20,\n height: 20,\n marginRight: 4,\n },\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemInstanceSelect;\n}\n\ninterface ConfigInstanceSelectState extends ConfigGenericState {\n selectOptions?: { label: string; value: string; icon?: string }[];\n}\n\nclass ConfigInstanceSelect extends ConfigGeneric<ConfigInstanceSelectProps, ConfigInstanceSelectState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n let adapter = this.props.schema.adapter;\n if (adapter === '_dataSources') {\n adapter = undefined;\n }\n\n void this.props.oContext.socket\n .getAdapterInstances(adapter, true)\n .then(async instances => {\n if (this.props.schema.adapter === '_dataSources') {\n // get only \"data-sources\", like history, sql, influx\n instances = instances.filter(instance => instance?.common?.getHistory);\n } else if (this.props.schema.adapter) {\n instances = instances.filter(instance =>\n instance?._id.startsWith(`system.adapter.${this.props.schema.adapter}.`),\n );\n } else if (this.props.schema.adapters && Array.isArray(this.props.schema.adapters)) {\n instances = instances.filter(instance =>\n this.props.schema.adapters.includes(instance?.common?.name),\n );\n }\n\n if (this.props.schema.onlyEnabled) {\n instances = instances.filter(instance => instance?.common?.enabled);\n }\n\n const selectOptions: { label: string; value: string; icon?: string }[] = instances.map(instance => ({\n value: this.props.schema.long\n ? instance._id\n : this.props.schema.short\n ? instance._id.split('.').pop()\n : instance._id.replace(/^system\\.adapter\\./, ''),\n label: `${instance.common.name} [${instance._id.replace(/^system\\.adapter\\./, '')}]`,\n icon: `${this.props.oContext.imagePrefix}/adapter/${instance.common.name}/${instance.common.icon}`,\n }));\n\n selectOptions.sort((a, b) => {\n if (a.value > b.value) {\n return 1;\n }\n if (a.value < b.value) {\n return -1;\n }\n return 0;\n });\n\n if (this.props.schema.allowDeactivate !== false) {\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n }\n if (this.props.schema.all) {\n selectOptions.unshift({ label: I18n.t('sch_all'), value: '*' });\n }\n\n this.setState({ value: value || '', selectOptions });\n\n await this.props.oContext.socket.subscribeObject(\n `system.adapter.${adapter ? `${adapter}.` : ''}*`,\n this.onInstancesUpdate,\n );\n })\n .catch(e => console.error(`Cannot get instances: ${e}`));\n }\n\n componentWillUnmount(): void {\n void this.props.oContext.socket.unsubscribeObject('system.adapter.*', this.onInstancesUpdate).then(() => {});\n super.componentWillUnmount();\n }\n\n onInstancesUpdate = (id: string, obj?: ioBroker.Object | null): void => {\n if (!id.match(/^system\\.adapter\\.[-_a-z\\d]+\\.\\d+$/)) {\n return;\n }\n const _id = this.props.schema.long\n ? id\n : this.props.schema.short\n ? id.split('.').pop()\n : id.replace(/^system\\.adapter\\./, '');\n const index = this.state.selectOptions.findIndex(item => item.value === _id);\n if (!obj) {\n // deleted\n if (index !== -1) {\n const selectOptions: { label: string; value: string; icon?: string }[] = JSON.parse(\n JSON.stringify(this.state.selectOptions),\n );\n\n const newState: Partial<ConfigInstanceSelectState> = {};\n if (this.state.value === selectOptions[index].value) {\n newState.value = ConfigGeneric.NONE_VALUE;\n }\n selectOptions.splice(index, 1);\n newState.selectOptions = selectOptions;\n\n this.setState(newState as ConfigInstanceSelectState);\n }\n } else {\n if (this.props.schema.adapter === '_dataSources' && (!obj.common || !obj.common.getHistory)) {\n return;\n }\n\n if (index === -1) {\n const selectOptions: { label: string; value: string; icon?: string }[] = JSON.parse(\n JSON.stringify(this.state.selectOptions),\n );\n const name =\n typeof obj.common.name === 'object'\n ? obj.common.name[I18n.getLanguage()] || obj.common.name.en\n : obj.common.name;\n selectOptions.push({\n value: this.props.schema.long\n ? obj._id\n : this.props.schema.short\n ? obj._id.split('.').pop()\n : obj._id.replace(/^system\\.adapter\\./, ''),\n label: `${name} [${obj._id.replace(/^system\\.adapter\\./, '')}]`,\n icon: `${this.props.oContext.imagePrefix}/adapter/${name}/${obj.common.icon}`,\n });\n selectOptions.sort((a, b) => (a.label > b.label ? 1 : a.label < b.label ? -1 : 0));\n this.setState({ selectOptions });\n }\n }\n };\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(it => it.value === this.state.value);\n\n return (\n <FormControl\n fullWidth\n key={this.props.attr}\n variant=\"standard\"\n >\n {this.props.schema.label ? (\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={this.state.value}\n renderValue={() => (\n <span style={{ display: 'flex' }}>\n {item?.icon ? (\n <img\n src={`./${item.icon}`}\n alt={item.value}\n style={styles.icon}\n />\n ) : null}\n {this.getText(item?.label, true)}\n </span>\n )}\n onChange={e =>\n this.setState({ value: e.target.value }, () => this.onChange(this.props.attr, this.state.value))\n }\n >\n {this.state.selectOptions.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n style={it.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {it.icon ? (\n <img\n src={`./${it.icon}`}\n alt={it.value}\n style={styles.icon}\n />\n ) : null}\n {this.getText(it.label, true)}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigInstanceSelect;\n"]}
|
|
@@ -10,7 +10,7 @@ class ConfigStaticImage extends ConfigGeneric {
|
|
|
10
10
|
!src.startsWith('http') &&
|
|
11
11
|
!src.startsWith(`adapter/${this.props.oContext.adapterName}/`) &&
|
|
12
12
|
!src.startsWith(`./adapter/${this.props.oContext.adapterName}/`)) {
|
|
13
|
-
src =
|
|
13
|
+
src = `${this.props.oContext.imagePrefix}/adapter/${this.props.oContext.adapterName}/${src}`;
|
|
14
14
|
}
|
|
15
15
|
return src;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigStaticImage.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigStaticImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGlD,OAAO,aAAmE,MAAM,iBAAiB,CAAC;AAUlG,MAAM,iBAAkB,SAAQ,aAA6D;IACjF,MAAM;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QAChC,IACI,GAAG;YACH,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACpB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YACvB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC;YAC9D,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAClE,CAAC;YACC,GAAG,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigStaticImage.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigStaticImage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { Button, Dialog, DialogActions, DialogContent, Tooltip } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemStaticImage } from '../types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigStaticImageProps extends ConfigGenericProps {\n schema: ConfigItemStaticImage;\n}\n\ninterface ConfigStaticImageState extends ConfigGenericState {\n showDialog?: boolean;\n}\n\nclass ConfigStaticImage extends ConfigGeneric<ConfigStaticImageProps, ConfigStaticImageState> {\n private getSrc(): string {\n let src = this.props.schema.src;\n if (\n src &&\n !src.startsWith('.') &&\n !src.startsWith('http') &&\n !src.startsWith(`adapter/${this.props.oContext.adapterName}/`) &&\n !src.startsWith(`./adapter/${this.props.oContext.adapterName}/`)\n ) {\n src = `${this.props.oContext.imagePrefix}/adapter/${this.props.oContext.adapterName}/${src}`;\n }\n return src;\n }\n\n renderItem(/* error: string, disabled: boolean, defaultValue */): JSX.Element {\n const { schema } = this.props;\n const src = this.getSrc();\n\n if (schema.showInDialog) {\n const smallSize = schema.showInDialogSmallSize || 100;\n const buttonLabel = schema.showInDialogButtonLabel ? this.getText(schema.showInDialogButtonLabel) : '';\n\n return (\n <>\n <Tooltip title={I18n.t('ra_Click to see in full size')}>\n <img\n src={src}\n style={{\n cursor: 'pointer',\n width: 'auto',\n height: smallSize,\n objectFit: 'contain',\n }}\n onClick={() => this.setState({ showDialog: true })}\n alt=\"\"\n />\n </Tooltip>{' '}\n {buttonLabel ? (\n <Button\n variant=\"outlined\"\n color=\"grey\"\n onClick={() => this.setState({ showDialog: true })}\n >\n {buttonLabel}\n </Button>\n ) : null}\n {this.state.showDialog ? (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showDialog: false })}\n maxWidth=\"lg\"\n >\n <DialogContent>\n <img\n src={src}\n style={{ width: '100%', height: '100%', objectFit: 'contain' }}\n alt=\"\"\n />\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ showDialog: false })}\n color=\"primary\"\n >\n {I18n.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog>\n ) : null}\n </>\n );\n }\n\n return (\n <img\n src={src}\n style={{ cursor: schema.href ? 'pointer' : undefined, width: '100%', height: '100%' }}\n onClick={schema.href ? () => schema.href && window.open(schema.href, '_blank') : null}\n alt=\"\"\n />\n );\n }\n}\n\nexport default ConfigStaticImage;\n"]}
|
|
@@ -236,8 +236,19 @@ export default class ConfigTable extends ConfigGeneric {
|
|
|
236
236
|
value = [];
|
|
237
237
|
}
|
|
238
238
|
if (this.props.schema.encryptedAttributes) {
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
let systemConfig;
|
|
240
|
+
try {
|
|
241
|
+
if (this.props.oContext.socket.getCompactSystemConfig) {
|
|
242
|
+
systemConfig = await this.props.oContext.socket.getCompactSystemConfig();
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
systemConfig = await this.props.oContext.socket.getObject('system.config');
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
console.error(`Cannot get system configuration: ${e}`);
|
|
250
|
+
}
|
|
251
|
+
this.secret = systemConfig?.native?.secret || this.secret;
|
|
241
252
|
_value.forEach((el) => {
|
|
242
253
|
this.props.schema.encryptedAttributes.forEach((attr) => {
|
|
243
254
|
if (el[attr]) {
|