@iobroker/json-config 7.4.3 → 7.4.4

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.
@@ -159,6 +159,7 @@ class ConfigPanel extends ConfigGeneric {
159
159
  }
160
160
  const type = items[attr].type || 'panel';
161
161
  let ItemComponent;
162
+ let socket = 'Use this.props.oContext.socket!';
162
163
  if (type === 'custom') {
163
164
  // name
164
165
  // url
@@ -172,6 +173,7 @@ class ConfigPanel extends ConfigGeneric {
172
173
  console.error(`Cannot find custom component: ${items[attr].component}`);
173
174
  ItemComponent = ConfigGeneric;
174
175
  }
176
+ socket = this.props.oContext.socket;
175
177
  }
176
178
  else if (type === 'panel') {
177
179
  ItemComponent = ConfigPanel;
@@ -179,7 +181,11 @@ class ConfigPanel extends ConfigGeneric {
179
181
  else {
180
182
  ItemComponent = components[type] || ConfigGeneric;
181
183
  }
182
- return (React.createElement(ItemComponent, { oContext: this.props.oContext, key: `${attr}_${this.props.index === undefined ? '' : this.props.index}`, index: this.props.index, changed: this.props.changed, arrayIndex: this.props.arrayIndex, commandRunning: this.props.commandRunning, style: styles.panel, common: this.props.common, alive: this.props.alive, themeName: this.props.themeName, data: this.props.data, originalData: this.props.originalData, onError: this.props.onError, onChange: this.props.onChange, disabled: disabled, customObj: this.props.customObj, custom: this.props.custom, schema: items[attr], attr: attr, table: this.props.table }));
184
+ return (React.createElement(ItemComponent
185
+ // @ts-expect-error Temporary work-around, till all custom components will not migrate to oContext
186
+ , {
187
+ // @ts-expect-error Temporary work-around, till all custom components will not migrate to oContext
188
+ socket: socket, oContext: this.props.oContext, key: `${attr}_${this.props.index === undefined ? '' : this.props.index}`, index: this.props.index, changed: this.props.changed, arrayIndex: this.props.arrayIndex, commandRunning: this.props.commandRunning, style: styles.panel, common: this.props.common, alive: this.props.alive, themeName: this.props.themeName, data: this.props.data, originalData: this.props.originalData, onError: this.props.onError, onChange: this.props.onChange, disabled: disabled, customObj: this.props.customObj, custom: this.props.custom, schema: items[attr], attr: attr, table: this.props.table }));
183
189
  })
184
190
  : null;
185
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigPanel.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { Grid2, Accordion, AccordionSummary, AccordionDetails, Typography, Box } from '@mui/material';\n\nimport { ExpandMore as ExpandMoreIcon } from '@mui/icons-material';\n\nimport { type IobTheme, Utils } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemPanel } from '#JC/types';\n\nimport ConfigGeneric, { type ConfigGenericState, type ConfigGenericProps } from './ConfigGeneric';\nimport ConfigAccordion from './ConfigAccordion';\nimport ConfigAlive from './ConfigAlive';\nimport ConfigAutocomplete from './ConfigAutocomplete';\nimport ConfigAutocompleteSendTo from './ConfigAutocompleteSendTo';\nimport ConfigCRON from './ConfigCRON';\nimport ConfigCertificateSelect from './ConfigCertificateSelect';\nimport ConfigCertificates from './ConfigCertificates';\nimport ConfigCertCollection from './ConfigCertCollection';\nimport ConfigCheckLicense from './ConfigCheckLicense';\nimport ConfigCheckbox from './ConfigCheckbox';\nimport ConfigChip from './ConfigChip';\nimport ConfigColor from './ConfigColor';\nimport ConfigCoordinates from './ConfigCoordinates';\nimport ConfigCustom from './ConfigCustom';\nimport ConfigDatePicker from './ConfigDatePicker';\nimport ConfigDeviceManager from './ConfigDeviceManager';\nimport ConfigFile from './ConfigFile';\nimport ConfigFileSelector from './ConfigFileSelector';\nimport ConfigFunc from './ConfigFunc';\nimport ConfigIP from './ConfigIP';\nimport ConfigImageSendTo from './ConfigImageSendTo';\nimport ConfigImageUpload from './ConfigImageUpload';\nimport ConfigInstanceSelect from './ConfigInstanceSelect';\nimport ConfigInterface from './ConfigInterface';\nimport ConfigJsonEditor from './ConfigJsonEditor';\nimport ConfigLanguage from './ConfigLanguage';\nimport ConfigLicense from './ConfigLicense';\nimport ConfigNumber from './ConfigNumber';\nimport ConfigObjectId from './ConfigObjectId';\nimport ConfigPassword from './ConfigPassword';\nimport ConfigPattern from './ConfigPattern';\nimport ConfigPort from './ConfigPort';\nimport ConfigRoom from './ConfigRoom';\nimport ConfigSelect from './ConfigSelect';\nimport ConfigSelectSendTo from './ConfigSelectSendTo';\nimport ConfigSendTo from './ConfigSendto';\nimport ConfigSetState from './ConfigSetState';\nimport ConfigSlider from './ConfigSlider';\nimport ConfigState from './ConfigState';\nimport ConfigStaticDivider from './ConfigStaticDivider';\nimport ConfigStaticHeader from './ConfigStaticHeader';\nimport ConfigStaticImage from './ConfigStaticImage';\nimport ConfigStaticInfo from './ConfigStaticInfo';\nimport ConfigStaticText from './ConfigStaticText';\nimport ConfigTable from './ConfigTable';\nimport ConfigText from './ConfigText';\nimport ConfigTextSendTo from './ConfigTextSendTo';\nimport ConfigTimePicker from './ConfigTimePicker';\nimport ConfigTopic from './ConfigTopic';\nimport ConfigUUID from './ConfigUUID';\nimport ConfigUser from './ConfigUser';\nimport ConfigQrCode from './ConfigQrCode';\n\nconst components: Record<string, typeof ConfigGeneric<any, any>> = {\n accordion: ConfigAccordion,\n alive: ConfigAlive,\n autocomplete: ConfigAutocomplete,\n autocompleteSendTo: ConfigAutocompleteSendTo,\n certCollection: ConfigCertCollection,\n certificate: ConfigCertificateSelect,\n certificates: ConfigCertificates,\n checkbox: ConfigCheckbox,\n checkLicense: ConfigCheckLicense,\n chip: ConfigChip, // deprecated. Use \"chips\"\n chips: ConfigChip,\n color: ConfigColor,\n coordinates: ConfigCoordinates,\n cron: ConfigCRON,\n custom: ConfigCustom,\n datePicker: ConfigDatePicker,\n deviceManager: ConfigDeviceManager,\n divider: ConfigStaticDivider,\n file: ConfigFile,\n fileSelector: ConfigFileSelector,\n func: ConfigFunc,\n header: ConfigStaticHeader,\n image: ConfigImageUpload,\n imageSendTo: ConfigImageSendTo,\n instance: ConfigInstanceSelect,\n interface: ConfigInterface,\n ip: ConfigIP,\n jsonEditor: ConfigJsonEditor,\n language: ConfigLanguage,\n license: ConfigLicense,\n number: ConfigNumber,\n objectId: ConfigObjectId,\n password: ConfigPassword,\n pattern: ConfigPattern,\n port: ConfigPort,\n qrCode: ConfigQrCode,\n room: ConfigRoom,\n select: ConfigSelect,\n selectSendTo: ConfigSelectSendTo,\n // @deprecated Use \"sendTo\"\n sendto: ConfigSendTo,\n sendTo: ConfigSendTo,\n setState: ConfigSetState,\n slider: ConfigSlider,\n state: ConfigState,\n staticImage: ConfigStaticImage,\n staticInfo: ConfigStaticInfo,\n staticLink: ConfigStaticText,\n staticText: ConfigStaticText,\n table: ConfigTable,\n text: ConfigText,\n textSendTo: ConfigTextSendTo,\n timePicker: ConfigTimePicker,\n topic: ConfigTopic,\n uuid: ConfigUUID,\n user: ConfigUser,\n};\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n // height: '100%',\n },\n paper: {\n margin: 1,\n width: 'auto !important',\n overflowY: 'auto',\n paddingBottom: 1,\n },\n paperWithIcons: {\n height: 'calc(100vh - 259px) !important',\n },\n paperWithoutIcons: {\n height: 'calc(100vh - 235px) !important',\n },\n padding: {\n padding: '10px',\n },\n heading: {},\n primary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.mode === 'dark' ? 'inherit' : '#FFF',\n }),\n secondary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.secondary.main,\n }),\n};\n\ninterface ConfigPanelProps extends ConfigGenericProps {\n schema: ConfigItemPanel;\n withIcons?: boolean;\n}\ninterface ConfigPanelState extends ConfigGenericState {\n expanded?: boolean;\n}\n\nclass ConfigPanel extends ConfigGeneric<ConfigPanelProps, ConfigPanelState> {\n componentDidMount(): void {\n super.componentDidMount();\n if (this.props.schema && this.props.schema.collapsable) {\n this.setState({\n expanded:\n (((window as any)._localStorage as Storage) || window.localStorage).getItem(\n `${this.props.oContext.adapterName}.${this.props.attr}`,\n ) === 'true',\n });\n }\n }\n\n renderItems(items: Record<string, any>, disabled: boolean): JSX.Element[] | null {\n return items\n ? Object.keys(items).map(attr => {\n if (this.props.oContext.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent: typeof ConfigGeneric<ConfigGenericProps, any>;\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else if (this.props.oContext.customs && this.props.oContext.customs[items[attr].component]) {\n ItemComponent = this.props.oContext.customs[items[attr].component];\n } else {\n console.error(`Cannot find custom component: ${items[attr].component}`);\n ItemComponent = ConfigGeneric;\n }\n } else if (type === 'panel') {\n ItemComponent = ConfigPanel;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return (\n <ItemComponent\n oContext={this.props.oContext}\n key={`${attr}_${this.props.index === undefined ? '' : this.props.index}`}\n index={this.props.index}\n changed={this.props.changed}\n arrayIndex={this.props.arrayIndex}\n commandRunning={this.props.commandRunning}\n style={styles.panel}\n common={this.props.common}\n alive={this.props.alive}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={this.props.originalData}\n onError={this.props.onError}\n onChange={this.props.onChange}\n disabled={disabled}\n customObj={this.props.customObj}\n custom={this.props.custom}\n schema={items[attr]}\n attr={attr}\n table={this.props.table}\n />\n );\n })\n : null;\n }\n\n render(): JSX.Element | null {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { disabled, hidden } = this.calculate(schema);\n\n const items = this.props.schema.items;\n const schemaStyle = this.props.schema.style || {};\n\n if (hidden) {\n if (schema.hideOnlyControl) {\n const item = (\n <Grid2\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n { marginBottom: 0, textAlign: 'left' /* marginRight: 8, */ },\n schemaStyle,\n this.props.oContext.themeType === 'dark' && schema.darkStyle,\n )}\n />\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return null;\n }\n\n if (this.props.table) {\n return this.renderItems(items, disabled) as any as JSX.Element;\n }\n\n if (this.props.custom) {\n return (\n <Grid2\n key={`${this.props.attr}_${this.props.index}`}\n container\n style={styles.fullWidth}\n columnSpacing={2}\n rowSpacing={1}\n sx={schemaStyle}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n );\n }\n\n let content;\n if (schema.collapsable) {\n content = (\n <Accordion\n key={`${this.props.attr}_${this.props.index}`}\n style={styles.fullWidth}\n expanded={!!this.state.expanded}\n onChange={() => {\n (((window as any)._localStorage as Storage) || window.localStorage).setItem(\n `${this.props.oContext.adapterName}.${this.props.attr}`,\n this.state.expanded ? 'false' : 'true',\n );\n this.setState({ expanded: !this.state.expanded });\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n schemaStyle,\n this.props.oContext.themeType && schema.darkStyle,\n schema.color === 'primary'\n ? styles.primary\n : schema.color === 'secondary' && styles.secondary,\n { width: '100%' },\n )}\n >\n <Typography style={styles.heading}>{this.getText(schema.label)}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={{ ...schemaStyle, width: '100%', padding: '10px' }}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </AccordionDetails>\n </Accordion>\n );\n } else {\n content = (\n <Box\n component=\"div\"\n key={`${this.props.attr}_${this.props.index}`}\n className={this.props.className}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n this.props.style,\n schemaStyle,\n { width: '100%' },\n this.props.isParentTab && styles.paper,\n this.props.isParentTab &&\n (this.props.withIcons ? styles.paperWithIcons : styles.paperWithoutIcons),\n )}\n >\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n { width: '100%' },\n this.props.isParentTab && styles.padding,\n this.props.schema.innerStyle,\n )}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </Box>\n );\n }\n\n if (!this.props.isParentTab) {\n const item = (\n <Grid2\n title={this.getText(schema.tooltip)}\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={{ marginBottom: 0, /* marginRight: 8, */ textAlign: 'left', ...schemaStyle }}\n >\n {content}\n </Grid2>\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return content;\n }\n}\n\nexport default ConfigPanel;\n"]}
1
+ {"version":3,"file":"ConfigPanel.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { Grid2, Accordion, AccordionSummary, AccordionDetails, Typography, Box } from '@mui/material';\n\nimport { ExpandMore as ExpandMoreIcon } from '@mui/icons-material';\n\nimport { type AdminConnection, type IobTheme, Utils } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemPanel } from '#JC/types';\n\nimport ConfigGeneric, { type ConfigGenericState, type ConfigGenericProps } from './ConfigGeneric';\nimport ConfigAccordion from './ConfigAccordion';\nimport ConfigAlive from './ConfigAlive';\nimport ConfigAutocomplete from './ConfigAutocomplete';\nimport ConfigAutocompleteSendTo from './ConfigAutocompleteSendTo';\nimport ConfigCRON from './ConfigCRON';\nimport ConfigCertificateSelect from './ConfigCertificateSelect';\nimport ConfigCertificates from './ConfigCertificates';\nimport ConfigCertCollection from './ConfigCertCollection';\nimport ConfigCheckLicense from './ConfigCheckLicense';\nimport ConfigCheckbox from './ConfigCheckbox';\nimport ConfigChip from './ConfigChip';\nimport ConfigColor from './ConfigColor';\nimport ConfigCoordinates from './ConfigCoordinates';\nimport ConfigCustom from './ConfigCustom';\nimport ConfigDatePicker from './ConfigDatePicker';\nimport ConfigDeviceManager from './ConfigDeviceManager';\nimport ConfigFile from './ConfigFile';\nimport ConfigFileSelector from './ConfigFileSelector';\nimport ConfigFunc from './ConfigFunc';\nimport ConfigIP from './ConfigIP';\nimport ConfigImageSendTo from './ConfigImageSendTo';\nimport ConfigImageUpload from './ConfigImageUpload';\nimport ConfigInstanceSelect from './ConfigInstanceSelect';\nimport ConfigInterface from './ConfigInterface';\nimport ConfigJsonEditor from './ConfigJsonEditor';\nimport ConfigLanguage from './ConfigLanguage';\nimport ConfigLicense from './ConfigLicense';\nimport ConfigNumber from './ConfigNumber';\nimport ConfigObjectId from './ConfigObjectId';\nimport ConfigPassword from './ConfigPassword';\nimport ConfigPattern from './ConfigPattern';\nimport ConfigPort from './ConfigPort';\nimport ConfigRoom from './ConfigRoom';\nimport ConfigSelect from './ConfigSelect';\nimport ConfigSelectSendTo from './ConfigSelectSendTo';\nimport ConfigSendTo from './ConfigSendto';\nimport ConfigSetState from './ConfigSetState';\nimport ConfigSlider from './ConfigSlider';\nimport ConfigState from './ConfigState';\nimport ConfigStaticDivider from './ConfigStaticDivider';\nimport ConfigStaticHeader from './ConfigStaticHeader';\nimport ConfigStaticImage from './ConfigStaticImage';\nimport ConfigStaticInfo from './ConfigStaticInfo';\nimport ConfigStaticText from './ConfigStaticText';\nimport ConfigTable from './ConfigTable';\nimport ConfigText from './ConfigText';\nimport ConfigTextSendTo from './ConfigTextSendTo';\nimport ConfigTimePicker from './ConfigTimePicker';\nimport ConfigTopic from './ConfigTopic';\nimport ConfigUUID from './ConfigUUID';\nimport ConfigUser from './ConfigUser';\nimport ConfigQrCode from './ConfigQrCode';\n\nconst components: Record<string, typeof ConfigGeneric<any, any>> = {\n accordion: ConfigAccordion,\n alive: ConfigAlive,\n autocomplete: ConfigAutocomplete,\n autocompleteSendTo: ConfigAutocompleteSendTo,\n certCollection: ConfigCertCollection,\n certificate: ConfigCertificateSelect,\n certificates: ConfigCertificates,\n checkbox: ConfigCheckbox,\n checkLicense: ConfigCheckLicense,\n chip: ConfigChip, // deprecated. Use \"chips\"\n chips: ConfigChip,\n color: ConfigColor,\n coordinates: ConfigCoordinates,\n cron: ConfigCRON,\n custom: ConfigCustom,\n datePicker: ConfigDatePicker,\n deviceManager: ConfigDeviceManager,\n divider: ConfigStaticDivider,\n file: ConfigFile,\n fileSelector: ConfigFileSelector,\n func: ConfigFunc,\n header: ConfigStaticHeader,\n image: ConfigImageUpload,\n imageSendTo: ConfigImageSendTo,\n instance: ConfigInstanceSelect,\n interface: ConfigInterface,\n ip: ConfigIP,\n jsonEditor: ConfigJsonEditor,\n language: ConfigLanguage,\n license: ConfigLicense,\n number: ConfigNumber,\n objectId: ConfigObjectId,\n password: ConfigPassword,\n pattern: ConfigPattern,\n port: ConfigPort,\n qrCode: ConfigQrCode,\n room: ConfigRoom,\n select: ConfigSelect,\n selectSendTo: ConfigSelectSendTo,\n // @deprecated Use \"sendTo\"\n sendto: ConfigSendTo,\n sendTo: ConfigSendTo,\n setState: ConfigSetState,\n slider: ConfigSlider,\n state: ConfigState,\n staticImage: ConfigStaticImage,\n staticInfo: ConfigStaticInfo,\n staticLink: ConfigStaticText,\n staticText: ConfigStaticText,\n table: ConfigTable,\n text: ConfigText,\n textSendTo: ConfigTextSendTo,\n timePicker: ConfigTimePicker,\n topic: ConfigTopic,\n uuid: ConfigUUID,\n user: ConfigUser,\n};\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n // height: '100%',\n },\n paper: {\n margin: 1,\n width: 'auto !important',\n overflowY: 'auto',\n paddingBottom: 1,\n },\n paperWithIcons: {\n height: 'calc(100vh - 259px) !important',\n },\n paperWithoutIcons: {\n height: 'calc(100vh - 235px) !important',\n },\n padding: {\n padding: '10px',\n },\n heading: {},\n primary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.mode === 'dark' ? 'inherit' : '#FFF',\n }),\n secondary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.secondary.main,\n }),\n};\n\ninterface ConfigPanelProps extends ConfigGenericProps {\n schema: ConfigItemPanel;\n withIcons?: boolean;\n}\ninterface ConfigPanelState extends ConfigGenericState {\n expanded?: boolean;\n}\n\nclass ConfigPanel extends ConfigGeneric<ConfigPanelProps, ConfigPanelState> {\n componentDidMount(): void {\n super.componentDidMount();\n if (this.props.schema && this.props.schema.collapsable) {\n this.setState({\n expanded:\n (((window as any)._localStorage as Storage) || window.localStorage).getItem(\n `${this.props.oContext.adapterName}.${this.props.attr}`,\n ) === 'true',\n });\n }\n }\n\n renderItems(items: Record<string, any>, disabled: boolean): JSX.Element[] | null {\n return items\n ? Object.keys(items).map(attr => {\n if (this.props.oContext.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent: typeof ConfigGeneric<ConfigGenericProps, any>;\n let socket: string | AdminConnection = 'Use this.props.oContext.socket!';\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else if (this.props.oContext.customs && this.props.oContext.customs[items[attr].component]) {\n ItemComponent = this.props.oContext.customs[items[attr].component];\n } else {\n console.error(`Cannot find custom component: ${items[attr].component}`);\n ItemComponent = ConfigGeneric;\n }\n socket = this.props.oContext.socket;\n } else if (type === 'panel') {\n ItemComponent = ConfigPanel;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return (\n <ItemComponent\n // @ts-expect-error Temporary work-around, till all custom components will not migrate to oContext\n socket={socket}\n oContext={this.props.oContext}\n key={`${attr}_${this.props.index === undefined ? '' : this.props.index}`}\n index={this.props.index}\n changed={this.props.changed}\n arrayIndex={this.props.arrayIndex}\n commandRunning={this.props.commandRunning}\n style={styles.panel}\n common={this.props.common}\n alive={this.props.alive}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={this.props.originalData}\n onError={this.props.onError}\n onChange={this.props.onChange}\n disabled={disabled}\n customObj={this.props.customObj}\n custom={this.props.custom}\n schema={items[attr]}\n attr={attr}\n table={this.props.table}\n />\n );\n })\n : null;\n }\n\n render(): JSX.Element | null {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { disabled, hidden } = this.calculate(schema);\n\n const items = this.props.schema.items;\n const schemaStyle = this.props.schema.style || {};\n\n if (hidden) {\n if (schema.hideOnlyControl) {\n const item = (\n <Grid2\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n { marginBottom: 0, textAlign: 'left' /* marginRight: 8, */ },\n schemaStyle,\n this.props.oContext.themeType === 'dark' && schema.darkStyle,\n )}\n />\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return null;\n }\n\n if (this.props.table) {\n return this.renderItems(items, disabled) as any as JSX.Element;\n }\n\n if (this.props.custom) {\n return (\n <Grid2\n key={`${this.props.attr}_${this.props.index}`}\n container\n style={styles.fullWidth}\n columnSpacing={2}\n rowSpacing={1}\n sx={schemaStyle}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n );\n }\n\n let content;\n if (schema.collapsable) {\n content = (\n <Accordion\n key={`${this.props.attr}_${this.props.index}`}\n style={styles.fullWidth}\n expanded={!!this.state.expanded}\n onChange={() => {\n (((window as any)._localStorage as Storage) || window.localStorage).setItem(\n `${this.props.oContext.adapterName}.${this.props.attr}`,\n this.state.expanded ? 'false' : 'true',\n );\n this.setState({ expanded: !this.state.expanded });\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n schemaStyle,\n this.props.oContext.themeType && schema.darkStyle,\n schema.color === 'primary'\n ? styles.primary\n : schema.color === 'secondary' && styles.secondary,\n { width: '100%' },\n )}\n >\n <Typography style={styles.heading}>{this.getText(schema.label)}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={{ ...schemaStyle, width: '100%', padding: '10px' }}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </AccordionDetails>\n </Accordion>\n );\n } else {\n content = (\n <Box\n component=\"div\"\n key={`${this.props.attr}_${this.props.index}`}\n className={this.props.className}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n this.props.style,\n schemaStyle,\n { width: '100%' },\n this.props.isParentTab && styles.paper,\n this.props.isParentTab &&\n (this.props.withIcons ? styles.paperWithIcons : styles.paperWithoutIcons),\n )}\n >\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={Utils.getStyle(\n this.props.oContext.theme,\n { width: '100%' },\n this.props.isParentTab && styles.padding,\n this.props.schema.innerStyle,\n )}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </Box>\n );\n }\n\n if (!this.props.isParentTab) {\n const item = (\n <Grid2\n title={this.getText(schema.tooltip)}\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={{ marginBottom: 0, /* marginRight: 8, */ textAlign: 'left', ...schemaStyle }}\n >\n {content}\n </Grid2>\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return content;\n }\n}\n\nexport default ConfigPanel;\n"]}
@@ -754,7 +754,7 @@ class ConfigTable extends ConfigGeneric {
754
754
  I18n.t('ra_All items are filtered out'),
755
755
  React.createElement(IconButton, { size: "small", onClick: () => this.applyFilter(true) },
756
756
  React.createElement(CloseIcon, null))))) : null),
757
- schema.help ? (React.createElement(FormHelperText, null, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation))) : null,
757
+ schema.help ? (React.createElement(FormHelperText, { style: { paddingLeft: 16 } }, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation))) : null,
758
758
  this.state.errorMessage ? (React.createElement("div", { style: { display: 'flex', padding: '5px' } },
759
759
  React.createElement(ErrorIcon, { color: "error" }),
760
760
  React.createElement("span", { style: { color: 'red', alignSelf: 'center' } }, this.state.errorMessage))) : null));
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigTable.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createRef, type JSX, type RefObject } from 'react';\nimport Dropzone from 'react-dropzone';\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n TextField,\n Toolbar,\n Tooltip,\n Typography,\n FormHelperText,\n} from '@mui/material';\n\nimport {\n Add as AddIcon,\n Delete as DeleteIcon,\n Close as CloseIcon,\n ArrowUpward as UpIcon,\n ArrowDownward as DownIcon,\n FilterAlt as IconFilterOn,\n FilterAltOff as IconFilterOff,\n ContentCopy as CopyContentIcon,\n Download as ExportIcon,\n Warning as ErrorIcon,\n UploadFile as ImportIcon,\n Close as IconClose,\n} from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemTableIndexed, ConfigItemPanel, ConfigItemTable } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst MAX_SIZE = 1024 * 1024; // 1MB\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: 16,\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n },\n headerText: {\n width: '100%',\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n label: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n // highlight: (theme: IobTheme): React.CSSProperties => (theme.palette.mode === 'light'\n // ? {\n // color: theme.palette.secondary.main,\n // // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n // }\n // : {\n // color: theme.palette.text.primary,\n // backgroundColor: theme.palette.secondary.dark,\n // }),\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: 16,\n paddingRight: 8,\n },\n silver: {\n opacity: 0.2,\n },\n flex: {\n display: 'flex',\n alignItems: 'baseline',\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center',\n },\n buttonEmpty: {\n width: 34,\n display: 'inline-block',\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n },\n\n dropZone: {\n width: '100%',\n height: 100,\n position: 'relative',\n },\n dropZoneEmpty: {},\n uploadDiv: {\n position: 'relative',\n width: '100%',\n minHeight: 300,\n opacity: 0.9,\n marginTop: 30,\n cursor: 'pointer',\n outline: 'none',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)',\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: 'calc(100% - 10px)',\n height: 'calc(100% - 10px)',\n minHeight: 300,\n position: 'relative',\n display: 'flex',\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonRemoveWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0,\n },\n error: {\n border: '2px solid red',\n boxSizing: 'border-box',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n};\n\nfunction objectToArray(\n object: Record<string, any>,\n nameOfFirstAttr: string,\n nameOfSecondAttr?: string,\n): Record<string, any>[] {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array: Record<string, any>[] = [];\n Object.keys(object).forEach(key => {\n const item: Record<string, any> = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key];\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(\n array: Record<string, any>[],\n nameOfFirstAttr: string,\n nameOfSecondAttr?: string,\n): Record<string, any> {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object: Record<string, any> = {};\n\n array.forEach((row: Record<string, any>) => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\ninterface ConfigTableProps extends ConfigGenericProps {\n schema: ConfigItemTable;\n}\n\ninterface ConfigTableState extends ConfigGenericState {\n value: Record<string, any>[];\n visibleValue: number[] | null;\n orderBy: string;\n order: 'asc' | 'desc';\n iteration: number;\n filterOn: string[];\n errorMessage: string;\n showImportDialog: boolean;\n showTypeOfImportDialog: Record<string, any>[] | false;\n instanceObj: ioBroker.InstanceObject;\n customObj: Record<string, any>;\n uploadFile: boolean | 'dragging';\n icon: boolean;\n}\n\nfunction encrypt(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\nfunction decrypt(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\n\nclass ConfigTable extends ConfigGeneric<ConfigTableProps, ConfigTableState> {\n private readonly filterRefs: Record<string, RefObject<HTMLInputElement>>;\n\n private typingTimer: ReturnType<typeof setTimeout> | null = null;\n\n private secret: string = 'Zgfr56gFe87jJOM';\n\n constructor(props: ConfigTableProps) {\n super(props);\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach((el: ConfigItemTableIndexed) => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n /**\n * React lifecycle hook, called once as component is mounted\n */\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n const _value: Record<string, any>[] | Record<string, any> =\n ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n let value: Record<string, any>[];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(\n _value as Record<string, any>,\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n } else {\n value = _value as Record<string, any>[];\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n if (this.props.schema.encryptedAttributes) {\n const systemConfig = await this.props.oContext.socket.getCompactSystemConfig();\n this.secret = systemConfig?.native.secret || this.secret;\n\n _value.forEach((el: Record<string, any>) => {\n this.props.schema.encryptedAttributes.forEach((attr: string) => {\n if (el[attr]) {\n el[attr] = decrypt(this.secret, el[attr]);\n }\n });\n });\n }\n\n this.setState(\n {\n value,\n visibleValue: null,\n orderBy: /* this.props.schema.items.length ? this.props.schema.items[0].attr : */ '',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n },\n () => this.validateUniqueProps(),\n );\n }\n\n componentWillUnmount(): void {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n this.typingTimer = null;\n }\n super.componentWillUnmount();\n }\n\n itemTable(attrItem: string, data: Record<string, any>, idx: number): JSX.Element | null {\n const { schema } = this.props;\n const schemaForAttribute =\n schema.items && schema.items.find((el: ConfigItemTableIndexed) => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute,\n },\n };\n\n return (\n <ConfigPanel\n oContext={this.props.oContext}\n alive={this.props.alive}\n arrayIndex={idx}\n changed={this.props.changed}\n common={this.props.common}\n custom\n data={data}\n globalData={this.props.data}\n index={idx + this.state.iteration}\n onChange={(attr: string, valueChange: any) => {\n const newObj: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () => {\n this.validateUniqueProps();\n this.onChangeWrapper(newObj, true);\n });\n }}\n onError={(error: string, attr?: string) => this.onError(error, attr)}\n originalData={this.props.originalData}\n schema={schemaItem as ConfigItemPanel}\n table\n themeName={this.props.themeName}\n />\n );\n }\n\n /**\n * Validate that columns configured in `uniqueColumns` have unique values\n */\n validateUniqueProps(): void {\n if (!this.props.schema.uniqueColumns) {\n return;\n }\n\n for (const uniqueCol of this.props.schema.uniqueColumns) {\n const allVals: (string | number)[] = [];\n const found = this.state.value.find(entry => {\n const val = entry[uniqueCol];\n if (allVals.includes(val)) {\n this.onError(uniqueCol, 'is not unique');\n this.setState({\n errorMessage: I18n.t('Non-allowed duplicate entry \"%s\" in column \"%s\"', val, uniqueCol),\n });\n return true;\n }\n allVals.push(val);\n return false;\n });\n\n if (!found) {\n this.onError(uniqueCol, null);\n this.setState({ errorMessage: '' });\n }\n }\n }\n\n static descendingComparator(a: Record<string, any>, b: Record<string, any>, orderBy: string): number {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n }\n\n static getComparator(\n order: 'desc' | 'asc',\n orderBy: string,\n ): (a: Record<string, any>, b: Record<string, any>) => number {\n return order === 'desc'\n ? (a: Record<string, any>, b: Record<string, any>) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a: Record<string, any>, b: Record<string, any>) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n static getFilterValue(el: React.RefObject<HTMLInputElement>): string {\n return (el?.current?.children[0]?.children[0] as HTMLInputElement)?.value;\n }\n\n static setFilterValue(el: React.RefObject<HTMLInputElement>, filterValue: string): string {\n return ((el.current.children[0].children[0] as HTMLInputElement).value = filterValue);\n }\n\n handleRequestSort = (property: string, orderCheck: boolean = false): void => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : isAsc ? 'desc' : 'asc';\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue),\n );\n }\n };\n\n stableSort = (order: 'desc' | 'asc', orderBy: string): Record<string, any>[] => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => ({ el, index }));\n\n stabilizedThis.sort((a, b) => {\n const order_ = comparator(a.el, b.el);\n if (order_ !== 0) {\n return order_;\n }\n return a.index - b.index;\n });\n\n return stabilizedThis.map(el => el.el);\n };\n\n enhancedTableHead(buttonsWidth: number, doAnyFilterSet: boolean): JSX.Element {\n const { schema } = this.props;\n const { order, orderBy } = this.state;\n return (\n <TableHead>\n <TableRow>\n {schema.items &&\n schema.items.map((headCell: ConfigItemTableIndexed, i: number) => (\n <TableCell\n style={{\n width:\n typeof headCell.width === 'string' && headCell.width.endsWith('%')\n ? headCell.width\n : headCell.width,\n }}\n key={`${headCell.attr}_${i}`}\n align=\"left\"\n sortDirection={orderBy === headCell.attr ? order : false}\n >\n <div\n style={{\n ...styles.flex,\n ...(schema.showFirstAddOnTop ? { flexDirection: 'column' } : undefined),\n }}\n >\n {!i && !schema.noDelete ? (\n <Tooltip\n title={\n doAnyFilterSet\n ? I18n.t('ra_Cannot add items with set filter')\n : I18n.t('ra_Add row')\n }\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n color=\"primary\"\n disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter}\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip>\n ) : null}\n {headCell.sort && (\n <TableSortLabel\n active\n style={orderBy !== headCell.attr ? styles.silver : undefined}\n direction={orderBy === headCell.attr ? order : 'asc'}\n onClick={() => this.handleRequestSort(headCell.attr)}\n />\n )}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ? (\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n slotProps={{\n input: {\n endAdornment: ConfigTable.getFilterValue(\n this.filterRefs[headCell.attr],\n ) && (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n ConfigTable.setFilterValue(\n this.filterRefs[headCell.attr],\n '',\n );\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>\n ),\n },\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n ) : (\n <span style={styles.headerText}>{this.getText(headCell.title)}</span>\n )}\n {headCell.filter ? (\n <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (\n pos &&\n ConfigTable.getFilterValue(this.filterRefs[headCell.attr])\n ) {\n ConfigTable.setFilterValue(this.filterRefs[headCell.attr], '');\n this.applyFilter();\n }\n });\n }}\n >\n {this.state.filterOn.includes(headCell.attr) ? (\n <IconFilterOff />\n ) : (\n <IconFilterOn />\n )}\n </IconButton>\n ) : null}\n </div>\n </TableCell>\n ))}\n {!schema.noDelete && (\n <TableCell\n style={{\n paddingLeft: 20,\n paddingRight: 20,\n width: buttonsWidth,\n textAlign: 'right',\n }}\n padding=\"checkbox\"\n >\n {schema.import ? (\n <IconButton\n style={{ marginRight: 10 }}\n size=\"small\"\n onClick={() => this.setState({ showImportDialog: true })}\n title={I18n.t('ra_import data from %s file', 'CSV')}\n >\n <ImportIcon />\n </IconButton>\n ) : null}\n {schema.export ? (\n <IconButton\n style={{ marginRight: 10 }}\n size=\"small\"\n onClick={() => this.onExport()}\n title={I18n.t('ra_Export data to %s file', 'CSV')}\n >\n <ExportIcon />\n </IconButton>\n ) : null}\n <IconButton\n disabled\n size=\"small\"\n >\n <DeleteIcon />\n </IconButton>\n </TableCell>\n )}\n </TableRow>\n </TableHead>\n );\n }\n\n onDelete = (index: number) => (): void => {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n newValue.splice(index, 1);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10_000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n };\n\n onExport(): void {\n const { schema } = this.props;\n const { value } = this.state;\n const cols = schema.items.map((it: ConfigItemTableIndexed) => it.attr);\n const lines = [cols.join(';')];\n value.forEach(row => {\n const line: string[] = [];\n schema.items.forEach((it: ConfigItemTableIndexed) => {\n if (row[it.attr]?.includes(';')) {\n line.push(`\"${row[it.attr]}\"`);\n } else {\n line.push(row[it.attr] === undefined || row[it.attr] === null ? '' : row[it.attr]);\n }\n });\n lines.push(line.join(';'));\n });\n const el = document.createElement('a');\n el.setAttribute('href', `data:text/csv;charset=utf-8,${encodeURIComponent(lines.join('\\n'))}`);\n const now = new Date();\n el.setAttribute(\n 'download',\n `${now.getFullYear()}_${(now.getMonth() + 1).toString().padStart(2, '0')}_${now.getDate().toString().padStart(2, '0')}_${this.props.oContext.adapterName}.${this.props.oContext.instance}_${this.props.attr}.csv`,\n );\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n onImport(text: string): void {\n const lines = text.split('\\n').map((line: string) => line.replace('\\r', '').trim());\n // the first line is header\n const { schema } = this.props;\n\n const header = lines\n .shift()\n .split(';')\n .filter(it => it && schema.items.find((it2: ConfigItemTableIndexed) => it2.attr === it));\n\n const values: Record<string, any>[] = [];\n lines.forEach((line: string) => {\n const parts: string[] = line.split(';');\n const obj: Record<string, string | number | boolean> = {};\n for (let p = 0; p < parts.length; p++) {\n let value = parts[p];\n if (value.startsWith('\"')) {\n value = value.substring(1);\n while (p < parts.length && !value.endsWith('\"')) {\n value += `;${parts[++p]}`;\n }\n value = value.substring(0, value.length - 1);\n }\n\n let val: string | number | boolean = value;\n\n if (value === 'true') {\n val = true;\n } else if (value === 'false') {\n val = false;\n } else if (window.isFinite(value as any as number)) {\n const attr = this.props.schema.items.find((it: ConfigItemTableIndexed) => it.attr === header[p]);\n if (attr && attr.type === 'number') {\n // if a type of attribute is a \"number\"\n val = parseFloat(value);\n } else {\n val = value;\n }\n } else {\n val = value;\n }\n\n obj[header[p]] = val;\n }\n values.push(obj);\n });\n\n if (values.length) {\n if (this.state.value?.length) {\n this.setState({ showTypeOfImportDialog: values, showImportDialog: false });\n } else {\n this.setState({ value: values, showImportDialog: false });\n }\n } else {\n window.alert('ra_No data found in file');\n }\n }\n\n onClone = (index: number) => (): void => {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const cloned: Record<string, any> = JSON.parse(JSON.stringify(newValue[index]));\n if (typeof this.props.schema.clone === 'string' && typeof cloned[this.props.schema.clone] === 'string') {\n let i = 1;\n let text = cloned[this.props.schema.clone];\n const pattern = text.match(/(\\d+)$/);\n if (pattern) {\n text = text.replace(pattern[0], '');\n i = parseInt(pattern[0], 10) + 1;\n } else {\n text += '_';\n }\n while (\n newValue.find(\n (it: Record<string, any>) => it[this.props.schema.clone as string] === text + i.toString(),\n )\n ) {\n i++;\n }\n cloned[this.props.schema.clone] = `${cloned[this.props.schema.clone]}_${i}`;\n }\n\n newValue.splice(index, 0, cloned);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n };\n\n onChangeWrapper = (newValue: Record<string, any>[], updateVisible?: boolean): void => {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n }\n\n this.typingTimer = setTimeout(\n (value, _updateVisible) => {\n this.typingTimer = null;\n\n let mayBePromise: Promise<void> | void;\n if (this.props.schema.encryptedAttributes) {\n const _value = JSON.parse(JSON.stringify(value));\n _value.forEach((el: Record<string, any>) => {\n this.props.schema.encryptedAttributes.forEach((attr: string) => {\n if (el[attr]) {\n el[attr] = encrypt(this.secret, el[attr]);\n }\n });\n });\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(\n _value,\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n mayBePromise = this.onChange(this.props.attr, objValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, _value);\n }\n } else if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(\n JSON.parse(JSON.stringify(value)),\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n mayBePromise = this.onChange(this.props.attr, objValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, value);\n }\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot save: ${e}`));\n }\n if (_updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n },\n 300,\n newValue,\n updateVisible,\n );\n };\n\n onAdd = (): void => {\n const { schema } = this.props;\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const newItem = schema.items?.reduce(\n (accumulator: Record<string, any>, currentValue: ConfigItemTableIndexed) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc\n ? this.executeCustom(\n currentValue.defaultFunc,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc\n ? this.execute(\n currentValue.defaultFunc,\n this.props.schema.default,\n this.props.data,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n },\n {},\n );\n\n newValue.push(newItem);\n\n this.setState({ value: newValue }, () => this.applyFilter(false, null, () => this.onChangeWrapper(newValue)));\n };\n\n isAnyFilterSet(): boolean {\n return !!Object.keys(this.filterRefs).find(attr => ConfigTable.getFilterValue(this.filterRefs[attr]));\n }\n\n applyFilter = (clear?: boolean, value?: Record<string, any>[], cb?: () => void): void => {\n value = value || this.state.value;\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = ConfigTable.getFilterValue(this.filterRefs[attr]);\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(\n idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef),\n );\n } else if (this.filterRefs[attr].current) {\n ConfigTable.setFilterValue(this.filterRefs[attr], '');\n }\n });\n\n if (visibleValue.length === value.length) {\n visibleValue = null;\n }\n\n if (visibleValue === null && this.state.visibleValue === null) {\n if (cb) {\n cb();\n }\n return;\n }\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue }, () => cb && cb());\n } else if (cb) {\n cb();\n }\n };\n\n onMoveUp(idx: number): void {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx - 1, 0, item);\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n }\n\n onMoveDown(idx: number): void {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx + 1, 0, item);\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n }\n\n onDrop(acceptedFiles: File[]): void {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n if (file.size > MAX_SIZE) {\n window.alert(I18n.t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(MAX_SIZE / 1024)));\n return;\n }\n const text = new Uint8Array(reader.result as ArrayBufferLike).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n '',\n );\n\n this.onImport(text);\n };\n reader.readAsArrayBuffer(file);\n }\n\n showTypeOfImportDialog(): JSX.Element | null {\n if (!this.state.showTypeOfImportDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showTypeOfImportDialog: false })}\n maxWidth=\"md\"\n >\n <DialogTitle>{I18n.t('ra_Append or replace?')}</DialogTitle>\n <DialogContent>\n {I18n.t('ra_Append %s entries or replace existing?', this.state.showTypeOfImportDialog.length)}\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n color=\"primary\"\n autoFocus\n onClick={() => {\n const value: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n\n (this.state.showTypeOfImportDialog as Record<string, any>[]).forEach(\n (obj: Record<string, any>) => value.push(obj),\n );\n\n this.setState(\n {\n value,\n iteration: this.state.iteration + 10000,\n showTypeOfImportDialog: false,\n },\n () => this.applyFilter(false, null, () => this.onChangeWrapper(value)),\n );\n }}\n >\n {I18n.t('ra_Append')}\n </Button>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n autoFocus\n onClick={() => {\n const value: Record<string, any>[] = this.state.showTypeOfImportDialog as Record<\n string,\n any\n >[];\n this.setState(\n {\n value,\n iteration: this.state.iteration + 10000,\n showTypeOfImportDialog: false,\n },\n () => this.applyFilter(false, null, () => this.onChangeWrapper(value)),\n );\n }}\n >\n {I18n.t('ra_Replace')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n showImportDialog(): JSX.Element | null {\n if (!this.state.showImportDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showImportDialog: false })}\n sx={{\n '& .MuiDialog-paper': {\n minHeight: 500,\n },\n }}\n maxWidth=\"md\"\n fullWidth\n >\n <DialogTitle>{I18n.t('ra_Import from %s', 'CSV')}</DialogTitle>\n <DialogContent>\n <Dropzone\n multiple={false}\n accept={{ 'text/csv': ['.csv'] }}\n maxSize={MAX_SIZE}\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert(\n (errors &&\n errors[0] &&\n errors[0].errors &&\n errors[0].errors[0] &&\n errors[0].errors[0].message) ||\n I18n.t('ra_Cannot upload'),\n );\n } else {\n this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => (\n <div\n style={{\n ...styles.uploadDiv,\n ...(this.state.uploadFile === 'dragging' ? styles.uploadDivDragging : undefined),\n ...styles.dropZone,\n ...(!this.state.icon ? styles.dropZoneEmpty : undefined),\n }}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n <div style={styles.uploadCenterDiv}>\n <div style={styles.uploadCenterTextAndIcon}>\n <ImportIcon style={styles.uploadCenterIcon} />\n <div style={styles.uploadCenterText}>\n {this.state.uploadFile === 'dragging'\n ? I18n.t('ra_Drop file here')\n : I18n.t(\n 'ra_Place your files here or click here to open the browse dialog',\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </Dropzone>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ showImportDialog: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {I18n.t('Cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element | null {\n const { schema } = this.props;\n let { visibleValue } = this.state;\n\n if (!this.state.value || !Array.isArray(this.state.value)) {\n return null;\n }\n\n visibleValue = visibleValue || this.state.value.map((_, i) => i);\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n let tdStyle: React.CSSProperties | undefined;\n if (this.props.schema.compact) {\n tdStyle = { paddingTop: 1, paddingBottom: 1 };\n }\n\n return (\n <Paper style={styles.paper}>\n {this.showImportDialog()}\n {this.showTypeOfImportDialog()}\n {schema.label ? (\n <div style={styles.label}>\n <Toolbar\n variant=\"dense\"\n style={styles.rootTool}\n >\n <Typography\n style={styles.title}\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {this.getText(schema.label)}\n </Typography>\n </Toolbar>\n </div>\n ) : null}\n <TableContainer>\n <Table\n style={styles.table}\n size=\"small\"\n >\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64, doAnyFilterSet)}\n <TableBody>\n {visibleValue.map((idx, i) => (\n <TableRow\n hover\n key={`${idx}_${i}`}\n >\n {schema.items &&\n schema.items.map((headCell: ConfigItemTableIndexed) => (\n <TableCell\n key={`${headCell.attr}_${idx}`}\n align=\"left\"\n style={tdStyle}\n >\n {this.itemTable(headCell.attr, this.state.value[idx], idx)}\n </TableCell>\n ))}\n {!schema.noDelete && (\n <TableCell\n align=\"left\"\n style={{ ...tdStyle, ...styles.buttonCell }}\n >\n {!doAnyFilterSet && !this.state.orderBy ? (\n i ? (\n <Tooltip\n title={I18n.t('ra_Move up')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveUp(idx)}\n >\n <UpIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )\n ) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (\n i < visibleValue.length - 1 ? (\n <Tooltip\n title={I18n.t('ra_Move down')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveDown(idx)}\n >\n <DownIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )\n ) : null}\n <Tooltip\n title={I18n.t('ra_Delete current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onDelete(idx)}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n {this.props.schema.clone ? (\n <Tooltip\n title={I18n.t('ra_Clone current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onClone(idx)}\n >\n <CopyContentIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n </TableCell>\n )}\n </TableRow>\n ))}\n {!schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ? (\n <TableRow>\n <TableCell\n colSpan={schema.items.length + 1}\n style={{ ...tdStyle }}\n >\n <Tooltip\n title={\n doAnyFilterSet\n ? I18n.t('ra_Cannot add items with set filter')\n : I18n.t('ra_Add row')\n }\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n color=\"primary\"\n disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter}\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip>\n </TableCell>\n </TableRow>\n ) : null}\n </TableBody>\n </Table>\n {!visibleValue.length && this.state.value.length ? (\n <div style={styles.filteredOut}>\n <Typography\n style={styles.title}\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={() => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div>\n ) : null}\n </TableContainer>\n {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 {this.state.errorMessage ? (\n <div style={{ display: 'flex', padding: '5px' }}>\n <ErrorIcon color=\"error\" />\n <span style={{ color: 'red', alignSelf: 'center' }}>{this.state.errorMessage}</span>\n </div>\n ) : null}\n </Paper>\n );\n }\n}\n\nexport default ConfigTable;\n"]}
1
+ {"version":3,"file":"ConfigTable.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createRef, type JSX, type RefObject } from 'react';\nimport Dropzone from 'react-dropzone';\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n TextField,\n Toolbar,\n Tooltip,\n Typography,\n FormHelperText,\n} from '@mui/material';\n\nimport {\n Add as AddIcon,\n Delete as DeleteIcon,\n Close as CloseIcon,\n ArrowUpward as UpIcon,\n ArrowDownward as DownIcon,\n FilterAlt as IconFilterOn,\n FilterAltOff as IconFilterOff,\n ContentCopy as CopyContentIcon,\n Download as ExportIcon,\n Warning as ErrorIcon,\n UploadFile as ImportIcon,\n Close as IconClose,\n} from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemTableIndexed, ConfigItemPanel, ConfigItemTable } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst MAX_SIZE = 1024 * 1024; // 1MB\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: 16,\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n },\n headerText: {\n width: '100%',\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n label: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n // highlight: (theme: IobTheme): React.CSSProperties => (theme.palette.mode === 'light'\n // ? {\n // color: theme.palette.secondary.main,\n // // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n // }\n // : {\n // color: theme.palette.text.primary,\n // backgroundColor: theme.palette.secondary.dark,\n // }),\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: 16,\n paddingRight: 8,\n },\n silver: {\n opacity: 0.2,\n },\n flex: {\n display: 'flex',\n alignItems: 'baseline',\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center',\n },\n buttonEmpty: {\n width: 34,\n display: 'inline-block',\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n },\n\n dropZone: {\n width: '100%',\n height: 100,\n position: 'relative',\n },\n dropZoneEmpty: {},\n uploadDiv: {\n position: 'relative',\n width: '100%',\n minHeight: 300,\n opacity: 0.9,\n marginTop: 30,\n cursor: 'pointer',\n outline: 'none',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)',\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: 'calc(100% - 10px)',\n height: 'calc(100% - 10px)',\n minHeight: 300,\n position: 'relative',\n display: 'flex',\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonRemoveWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0,\n },\n error: {\n border: '2px solid red',\n boxSizing: 'border-box',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n};\n\nfunction objectToArray(\n object: Record<string, any>,\n nameOfFirstAttr: string,\n nameOfSecondAttr?: string,\n): Record<string, any>[] {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array: Record<string, any>[] = [];\n Object.keys(object).forEach(key => {\n const item: Record<string, any> = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key];\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(\n array: Record<string, any>[],\n nameOfFirstAttr: string,\n nameOfSecondAttr?: string,\n): Record<string, any> {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object: Record<string, any> = {};\n\n array.forEach((row: Record<string, any>) => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\ninterface ConfigTableProps extends ConfigGenericProps {\n schema: ConfigItemTable;\n}\n\ninterface ConfigTableState extends ConfigGenericState {\n value: Record<string, any>[];\n visibleValue: number[] | null;\n orderBy: string;\n order: 'asc' | 'desc';\n iteration: number;\n filterOn: string[];\n errorMessage: string;\n showImportDialog: boolean;\n showTypeOfImportDialog: Record<string, any>[] | false;\n instanceObj: ioBroker.InstanceObject;\n customObj: Record<string, any>;\n uploadFile: boolean | 'dragging';\n icon: boolean;\n}\n\nfunction encrypt(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\nfunction decrypt(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\n\nclass ConfigTable extends ConfigGeneric<ConfigTableProps, ConfigTableState> {\n private readonly filterRefs: Record<string, RefObject<HTMLInputElement>>;\n\n private typingTimer: ReturnType<typeof setTimeout> | null = null;\n\n private secret: string = 'Zgfr56gFe87jJOM';\n\n constructor(props: ConfigTableProps) {\n super(props);\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach((el: ConfigItemTableIndexed) => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n /**\n * React lifecycle hook, called once as component is mounted\n */\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n const _value: Record<string, any>[] | Record<string, any> =\n ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n let value: Record<string, any>[];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(\n _value as Record<string, any>,\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n } else {\n value = _value as Record<string, any>[];\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n if (this.props.schema.encryptedAttributes) {\n const systemConfig = await this.props.oContext.socket.getCompactSystemConfig();\n this.secret = systemConfig?.native.secret || this.secret;\n\n _value.forEach((el: Record<string, any>) => {\n this.props.schema.encryptedAttributes.forEach((attr: string) => {\n if (el[attr]) {\n el[attr] = decrypt(this.secret, el[attr]);\n }\n });\n });\n }\n\n this.setState(\n {\n value,\n visibleValue: null,\n orderBy: /* this.props.schema.items.length ? this.props.schema.items[0].attr : */ '',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n },\n () => this.validateUniqueProps(),\n );\n }\n\n componentWillUnmount(): void {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n this.typingTimer = null;\n }\n super.componentWillUnmount();\n }\n\n itemTable(attrItem: string, data: Record<string, any>, idx: number): JSX.Element | null {\n const { schema } = this.props;\n const schemaForAttribute =\n schema.items && schema.items.find((el: ConfigItemTableIndexed) => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute,\n },\n };\n\n return (\n <ConfigPanel\n oContext={this.props.oContext}\n alive={this.props.alive}\n arrayIndex={idx}\n changed={this.props.changed}\n common={this.props.common}\n custom\n data={data}\n globalData={this.props.data}\n index={idx + this.state.iteration}\n onChange={(attr: string, valueChange: any) => {\n const newObj: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () => {\n this.validateUniqueProps();\n this.onChangeWrapper(newObj, true);\n });\n }}\n onError={(error: string, attr?: string) => this.onError(error, attr)}\n originalData={this.props.originalData}\n schema={schemaItem as ConfigItemPanel}\n table\n themeName={this.props.themeName}\n />\n );\n }\n\n /**\n * Validate that columns configured in `uniqueColumns` have unique values\n */\n validateUniqueProps(): void {\n if (!this.props.schema.uniqueColumns) {\n return;\n }\n\n for (const uniqueCol of this.props.schema.uniqueColumns) {\n const allVals: (string | number)[] = [];\n const found = this.state.value.find(entry => {\n const val = entry[uniqueCol];\n if (allVals.includes(val)) {\n this.onError(uniqueCol, 'is not unique');\n this.setState({\n errorMessage: I18n.t('Non-allowed duplicate entry \"%s\" in column \"%s\"', val, uniqueCol),\n });\n return true;\n }\n allVals.push(val);\n return false;\n });\n\n if (!found) {\n this.onError(uniqueCol, null);\n this.setState({ errorMessage: '' });\n }\n }\n }\n\n static descendingComparator(a: Record<string, any>, b: Record<string, any>, orderBy: string): number {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n }\n\n static getComparator(\n order: 'desc' | 'asc',\n orderBy: string,\n ): (a: Record<string, any>, b: Record<string, any>) => number {\n return order === 'desc'\n ? (a: Record<string, any>, b: Record<string, any>) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a: Record<string, any>, b: Record<string, any>) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n static getFilterValue(el: React.RefObject<HTMLInputElement>): string {\n return (el?.current?.children[0]?.children[0] as HTMLInputElement)?.value;\n }\n\n static setFilterValue(el: React.RefObject<HTMLInputElement>, filterValue: string): string {\n return ((el.current.children[0].children[0] as HTMLInputElement).value = filterValue);\n }\n\n handleRequestSort = (property: string, orderCheck: boolean = false): void => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : isAsc ? 'desc' : 'asc';\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue),\n );\n }\n };\n\n stableSort = (order: 'desc' | 'asc', orderBy: string): Record<string, any>[] => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => ({ el, index }));\n\n stabilizedThis.sort((a, b) => {\n const order_ = comparator(a.el, b.el);\n if (order_ !== 0) {\n return order_;\n }\n return a.index - b.index;\n });\n\n return stabilizedThis.map(el => el.el);\n };\n\n enhancedTableHead(buttonsWidth: number, doAnyFilterSet: boolean): JSX.Element {\n const { schema } = this.props;\n const { order, orderBy } = this.state;\n return (\n <TableHead>\n <TableRow>\n {schema.items &&\n schema.items.map((headCell: ConfigItemTableIndexed, i: number) => (\n <TableCell\n style={{\n width:\n typeof headCell.width === 'string' && headCell.width.endsWith('%')\n ? headCell.width\n : headCell.width,\n }}\n key={`${headCell.attr}_${i}`}\n align=\"left\"\n sortDirection={orderBy === headCell.attr ? order : false}\n >\n <div\n style={{\n ...styles.flex,\n ...(schema.showFirstAddOnTop ? { flexDirection: 'column' } : undefined),\n }}\n >\n {!i && !schema.noDelete ? (\n <Tooltip\n title={\n doAnyFilterSet\n ? I18n.t('ra_Cannot add items with set filter')\n : I18n.t('ra_Add row')\n }\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n color=\"primary\"\n disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter}\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip>\n ) : null}\n {headCell.sort && (\n <TableSortLabel\n active\n style={orderBy !== headCell.attr ? styles.silver : undefined}\n direction={orderBy === headCell.attr ? order : 'asc'}\n onClick={() => this.handleRequestSort(headCell.attr)}\n />\n )}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ? (\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n slotProps={{\n input: {\n endAdornment: ConfigTable.getFilterValue(\n this.filterRefs[headCell.attr],\n ) && (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n ConfigTable.setFilterValue(\n this.filterRefs[headCell.attr],\n '',\n );\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>\n ),\n },\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n ) : (\n <span style={styles.headerText}>{this.getText(headCell.title)}</span>\n )}\n {headCell.filter ? (\n <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (\n pos &&\n ConfigTable.getFilterValue(this.filterRefs[headCell.attr])\n ) {\n ConfigTable.setFilterValue(this.filterRefs[headCell.attr], '');\n this.applyFilter();\n }\n });\n }}\n >\n {this.state.filterOn.includes(headCell.attr) ? (\n <IconFilterOff />\n ) : (\n <IconFilterOn />\n )}\n </IconButton>\n ) : null}\n </div>\n </TableCell>\n ))}\n {!schema.noDelete && (\n <TableCell\n style={{\n paddingLeft: 20,\n paddingRight: 20,\n width: buttonsWidth,\n textAlign: 'right',\n }}\n padding=\"checkbox\"\n >\n {schema.import ? (\n <IconButton\n style={{ marginRight: 10 }}\n size=\"small\"\n onClick={() => this.setState({ showImportDialog: true })}\n title={I18n.t('ra_import data from %s file', 'CSV')}\n >\n <ImportIcon />\n </IconButton>\n ) : null}\n {schema.export ? (\n <IconButton\n style={{ marginRight: 10 }}\n size=\"small\"\n onClick={() => this.onExport()}\n title={I18n.t('ra_Export data to %s file', 'CSV')}\n >\n <ExportIcon />\n </IconButton>\n ) : null}\n <IconButton\n disabled\n size=\"small\"\n >\n <DeleteIcon />\n </IconButton>\n </TableCell>\n )}\n </TableRow>\n </TableHead>\n );\n }\n\n onDelete = (index: number) => (): void => {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n newValue.splice(index, 1);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10_000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n };\n\n onExport(): void {\n const { schema } = this.props;\n const { value } = this.state;\n const cols = schema.items.map((it: ConfigItemTableIndexed) => it.attr);\n const lines = [cols.join(';')];\n value.forEach(row => {\n const line: string[] = [];\n schema.items.forEach((it: ConfigItemTableIndexed) => {\n if (row[it.attr]?.includes(';')) {\n line.push(`\"${row[it.attr]}\"`);\n } else {\n line.push(row[it.attr] === undefined || row[it.attr] === null ? '' : row[it.attr]);\n }\n });\n lines.push(line.join(';'));\n });\n const el = document.createElement('a');\n el.setAttribute('href', `data:text/csv;charset=utf-8,${encodeURIComponent(lines.join('\\n'))}`);\n const now = new Date();\n el.setAttribute(\n 'download',\n `${now.getFullYear()}_${(now.getMonth() + 1).toString().padStart(2, '0')}_${now.getDate().toString().padStart(2, '0')}_${this.props.oContext.adapterName}.${this.props.oContext.instance}_${this.props.attr}.csv`,\n );\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n onImport(text: string): void {\n const lines = text.split('\\n').map((line: string) => line.replace('\\r', '').trim());\n // the first line is header\n const { schema } = this.props;\n\n const header = lines\n .shift()\n .split(';')\n .filter(it => it && schema.items.find((it2: ConfigItemTableIndexed) => it2.attr === it));\n\n const values: Record<string, any>[] = [];\n lines.forEach((line: string) => {\n const parts: string[] = line.split(';');\n const obj: Record<string, string | number | boolean> = {};\n for (let p = 0; p < parts.length; p++) {\n let value = parts[p];\n if (value.startsWith('\"')) {\n value = value.substring(1);\n while (p < parts.length && !value.endsWith('\"')) {\n value += `;${parts[++p]}`;\n }\n value = value.substring(0, value.length - 1);\n }\n\n let val: string | number | boolean = value;\n\n if (value === 'true') {\n val = true;\n } else if (value === 'false') {\n val = false;\n } else if (window.isFinite(value as any as number)) {\n const attr = this.props.schema.items.find((it: ConfigItemTableIndexed) => it.attr === header[p]);\n if (attr && attr.type === 'number') {\n // if a type of attribute is a \"number\"\n val = parseFloat(value);\n } else {\n val = value;\n }\n } else {\n val = value;\n }\n\n obj[header[p]] = val;\n }\n values.push(obj);\n });\n\n if (values.length) {\n if (this.state.value?.length) {\n this.setState({ showTypeOfImportDialog: values, showImportDialog: false });\n } else {\n this.setState({ value: values, showImportDialog: false });\n }\n } else {\n window.alert('ra_No data found in file');\n }\n }\n\n onClone = (index: number) => (): void => {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const cloned: Record<string, any> = JSON.parse(JSON.stringify(newValue[index]));\n if (typeof this.props.schema.clone === 'string' && typeof cloned[this.props.schema.clone] === 'string') {\n let i = 1;\n let text = cloned[this.props.schema.clone];\n const pattern = text.match(/(\\d+)$/);\n if (pattern) {\n text = text.replace(pattern[0], '');\n i = parseInt(pattern[0], 10) + 1;\n } else {\n text += '_';\n }\n while (\n newValue.find(\n (it: Record<string, any>) => it[this.props.schema.clone as string] === text + i.toString(),\n )\n ) {\n i++;\n }\n cloned[this.props.schema.clone] = `${cloned[this.props.schema.clone]}_${i}`;\n }\n\n newValue.splice(index, 0, cloned);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n };\n\n onChangeWrapper = (newValue: Record<string, any>[], updateVisible?: boolean): void => {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n }\n\n this.typingTimer = setTimeout(\n (value, _updateVisible) => {\n this.typingTimer = null;\n\n let mayBePromise: Promise<void> | void;\n if (this.props.schema.encryptedAttributes) {\n const _value = JSON.parse(JSON.stringify(value));\n _value.forEach((el: Record<string, any>) => {\n this.props.schema.encryptedAttributes.forEach((attr: string) => {\n if (el[attr]) {\n el[attr] = encrypt(this.secret, el[attr]);\n }\n });\n });\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(\n _value,\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n mayBePromise = this.onChange(this.props.attr, objValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, _value);\n }\n } else if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(\n JSON.parse(JSON.stringify(value)),\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n mayBePromise = this.onChange(this.props.attr, objValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, value);\n }\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot save: ${e}`));\n }\n if (_updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n },\n 300,\n newValue,\n updateVisible,\n );\n };\n\n onAdd = (): void => {\n const { schema } = this.props;\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const newItem = schema.items?.reduce(\n (accumulator: Record<string, any>, currentValue: ConfigItemTableIndexed) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc\n ? this.executeCustom(\n currentValue.defaultFunc,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc\n ? this.execute(\n currentValue.defaultFunc,\n this.props.schema.default,\n this.props.data,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n },\n {},\n );\n\n newValue.push(newItem);\n\n this.setState({ value: newValue }, () => this.applyFilter(false, null, () => this.onChangeWrapper(newValue)));\n };\n\n isAnyFilterSet(): boolean {\n return !!Object.keys(this.filterRefs).find(attr => ConfigTable.getFilterValue(this.filterRefs[attr]));\n }\n\n applyFilter = (clear?: boolean, value?: Record<string, any>[], cb?: () => void): void => {\n value = value || this.state.value;\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = ConfigTable.getFilterValue(this.filterRefs[attr]);\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(\n idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef),\n );\n } else if (this.filterRefs[attr].current) {\n ConfigTable.setFilterValue(this.filterRefs[attr], '');\n }\n });\n\n if (visibleValue.length === value.length) {\n visibleValue = null;\n }\n\n if (visibleValue === null && this.state.visibleValue === null) {\n if (cb) {\n cb();\n }\n return;\n }\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue }, () => cb && cb());\n } else if (cb) {\n cb();\n }\n };\n\n onMoveUp(idx: number): void {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx - 1, 0, item);\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n }\n\n onMoveDown(idx: number): void {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx + 1, 0, item);\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n }\n\n onDrop(acceptedFiles: File[]): void {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n if (file.size > MAX_SIZE) {\n window.alert(I18n.t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(MAX_SIZE / 1024)));\n return;\n }\n const text = new Uint8Array(reader.result as ArrayBufferLike).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n '',\n );\n\n this.onImport(text);\n };\n reader.readAsArrayBuffer(file);\n }\n\n showTypeOfImportDialog(): JSX.Element | null {\n if (!this.state.showTypeOfImportDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showTypeOfImportDialog: false })}\n maxWidth=\"md\"\n >\n <DialogTitle>{I18n.t('ra_Append or replace?')}</DialogTitle>\n <DialogContent>\n {I18n.t('ra_Append %s entries or replace existing?', this.state.showTypeOfImportDialog.length)}\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n color=\"primary\"\n autoFocus\n onClick={() => {\n const value: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n\n (this.state.showTypeOfImportDialog as Record<string, any>[]).forEach(\n (obj: Record<string, any>) => value.push(obj),\n );\n\n this.setState(\n {\n value,\n iteration: this.state.iteration + 10000,\n showTypeOfImportDialog: false,\n },\n () => this.applyFilter(false, null, () => this.onChangeWrapper(value)),\n );\n }}\n >\n {I18n.t('ra_Append')}\n </Button>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n autoFocus\n onClick={() => {\n const value: Record<string, any>[] = this.state.showTypeOfImportDialog as Record<\n string,\n any\n >[];\n this.setState(\n {\n value,\n iteration: this.state.iteration + 10000,\n showTypeOfImportDialog: false,\n },\n () => this.applyFilter(false, null, () => this.onChangeWrapper(value)),\n );\n }}\n >\n {I18n.t('ra_Replace')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n showImportDialog(): JSX.Element | null {\n if (!this.state.showImportDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showImportDialog: false })}\n sx={{\n '& .MuiDialog-paper': {\n minHeight: 500,\n },\n }}\n maxWidth=\"md\"\n fullWidth\n >\n <DialogTitle>{I18n.t('ra_Import from %s', 'CSV')}</DialogTitle>\n <DialogContent>\n <Dropzone\n multiple={false}\n accept={{ 'text/csv': ['.csv'] }}\n maxSize={MAX_SIZE}\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert(\n (errors &&\n errors[0] &&\n errors[0].errors &&\n errors[0].errors[0] &&\n errors[0].errors[0].message) ||\n I18n.t('ra_Cannot upload'),\n );\n } else {\n this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => (\n <div\n style={{\n ...styles.uploadDiv,\n ...(this.state.uploadFile === 'dragging' ? styles.uploadDivDragging : undefined),\n ...styles.dropZone,\n ...(!this.state.icon ? styles.dropZoneEmpty : undefined),\n }}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n <div style={styles.uploadCenterDiv}>\n <div style={styles.uploadCenterTextAndIcon}>\n <ImportIcon style={styles.uploadCenterIcon} />\n <div style={styles.uploadCenterText}>\n {this.state.uploadFile === 'dragging'\n ? I18n.t('ra_Drop file here')\n : I18n.t(\n 'ra_Place your files here or click here to open the browse dialog',\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </Dropzone>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ showImportDialog: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {I18n.t('Cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element | null {\n const { schema } = this.props;\n let { visibleValue } = this.state;\n\n if (!this.state.value || !Array.isArray(this.state.value)) {\n return null;\n }\n\n visibleValue = visibleValue || this.state.value.map((_, i) => i);\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n let tdStyle: React.CSSProperties | undefined;\n if (this.props.schema.compact) {\n tdStyle = { paddingTop: 1, paddingBottom: 1 };\n }\n\n return (\n <Paper style={styles.paper}>\n {this.showImportDialog()}\n {this.showTypeOfImportDialog()}\n {schema.label ? (\n <div style={styles.label}>\n <Toolbar\n variant=\"dense\"\n style={styles.rootTool}\n >\n <Typography\n style={styles.title}\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {this.getText(schema.label)}\n </Typography>\n </Toolbar>\n </div>\n ) : null}\n <TableContainer>\n <Table\n style={styles.table}\n size=\"small\"\n >\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64, doAnyFilterSet)}\n <TableBody>\n {visibleValue.map((idx, i) => (\n <TableRow\n hover\n key={`${idx}_${i}`}\n >\n {schema.items &&\n schema.items.map((headCell: ConfigItemTableIndexed) => (\n <TableCell\n key={`${headCell.attr}_${idx}`}\n align=\"left\"\n style={tdStyle}\n >\n {this.itemTable(headCell.attr, this.state.value[idx], idx)}\n </TableCell>\n ))}\n {!schema.noDelete && (\n <TableCell\n align=\"left\"\n style={{ ...tdStyle, ...styles.buttonCell }}\n >\n {!doAnyFilterSet && !this.state.orderBy ? (\n i ? (\n <Tooltip\n title={I18n.t('ra_Move up')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveUp(idx)}\n >\n <UpIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )\n ) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (\n i < visibleValue.length - 1 ? (\n <Tooltip\n title={I18n.t('ra_Move down')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveDown(idx)}\n >\n <DownIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )\n ) : null}\n <Tooltip\n title={I18n.t('ra_Delete current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onDelete(idx)}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n {this.props.schema.clone ? (\n <Tooltip\n title={I18n.t('ra_Clone current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onClone(idx)}\n >\n <CopyContentIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n </TableCell>\n )}\n </TableRow>\n ))}\n {!schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ? (\n <TableRow>\n <TableCell\n colSpan={schema.items.length + 1}\n style={{ ...tdStyle }}\n >\n <Tooltip\n title={\n doAnyFilterSet\n ? I18n.t('ra_Cannot add items with set filter')\n : I18n.t('ra_Add row')\n }\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n color=\"primary\"\n disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter}\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip>\n </TableCell>\n </TableRow>\n ) : null}\n </TableBody>\n </Table>\n {!visibleValue.length && this.state.value.length ? (\n <div style={styles.filteredOut}>\n <Typography\n style={styles.title}\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={() => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div>\n ) : null}\n </TableContainer>\n {schema.help ? (\n <FormHelperText style={{ paddingLeft: 16 }}>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n {this.state.errorMessage ? (\n <div style={{ display: 'flex', padding: '5px' }}>\n <ErrorIcon color=\"error\" />\n <span style={{ color: 'red', alignSelf: 'center' }}>{this.state.errorMessage}</span>\n </div>\n ) : null}\n </Paper>\n );\n }\n}\n\nexport default ConfigTable;\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iobroker/json-config",
3
3
  "description": "This package contains the ioBroker JSON config UI components",
4
- "version": "7.4.3",
4
+ "version": "7.4.4",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
7
7
  "scripts": {
@@ -18,7 +18,7 @@
18
18
  "access": "public"
19
19
  },
20
20
  "dependencies": {
21
- "@iobroker/adapter-react-v5": "7.4.3",
21
+ "@iobroker/adapter-react-v5": "7.4.4",
22
22
  "@mui/x-date-pickers": "^7.23.0",
23
23
  "crypto-js": "^4.2.0",
24
24
  "react-ace": "^13.0.0",
@@ -34,5 +34,5 @@
34
34
  "build/",
35
35
  "LICENSE"
36
36
  ],
37
- "gitHead": "a36a282da4418ffd052c700aa871ae9381b087d3"
37
+ "gitHead": "000ac03a48b960b3e55a2ef5ca82eb4e1de09ab2"
38
38
  }