@iobroker/adapter-react-v5 4.14.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/SaveCloseButtons.d.ts +5 -7
- package/Components/SaveCloseButtons.js +3 -5
- package/Components/Schedule.d.ts +1 -30
- package/Components/Schedule.js +1 -1
- package/Components/SimpleCron/cronText.js +1 -0
- package/Components/TabContainer.d.ts +2 -6
- package/Components/TabContainer.js +4 -30
- package/Components/TabContent.js +2 -5
- package/Components/TabHeader.d.ts +1 -3
- package/Components/TabHeader.js +2 -4
- package/Components/TreeTable.js +33 -104
- package/Components/Utils.d.ts +1 -1
- package/GenericApp.d.ts +4 -4
- package/README.md +2 -1
- package/Theme.d.ts +2 -2
- package/package.json +1 -1
- package/types.d.ts +2 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { IobTheme } from '../types';
|
|
2
3
|
interface SaveCloseButtonsProps {
|
|
3
4
|
noTextOnButtons?: boolean;
|
|
4
|
-
theme:
|
|
5
|
+
theme: IobTheme;
|
|
5
6
|
isIFrame?: boolean;
|
|
6
7
|
newReact?: boolean;
|
|
7
8
|
onSave: (close: boolean) => void;
|
|
@@ -10,10 +11,7 @@ interface SaveCloseButtonsProps {
|
|
|
10
11
|
paddingLeft?: number;
|
|
11
12
|
changed: boolean;
|
|
12
13
|
error?: boolean;
|
|
13
|
-
classes:
|
|
14
|
-
buttonIcon: string;
|
|
15
|
-
};
|
|
14
|
+
classes: Record<string, string>;
|
|
16
15
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
export default _export;
|
|
16
|
+
declare const _default: React.JSXElementConstructor<Omit<SaveCloseButtonsProps, "classes"> & import("@mui/styles").StyledComponentProps<string> & object>;
|
|
17
|
+
export default _default;
|
|
@@ -9,11 +9,11 @@ const styles_1 = require("@mui/styles");
|
|
|
9
9
|
const material_1 = require("@mui/material");
|
|
10
10
|
const icons_material_1 = require("@mui/icons-material");
|
|
11
11
|
const i18n_1 = __importDefault(require("../i18n"));
|
|
12
|
-
const styles =
|
|
12
|
+
const styles = {
|
|
13
13
|
buttonIcon: {
|
|
14
14
|
marginRight: 8,
|
|
15
15
|
},
|
|
16
|
-
}
|
|
16
|
+
};
|
|
17
17
|
/**
|
|
18
18
|
* @typedef {object} SaveCloseButtonsProps
|
|
19
19
|
* @property {boolean} noTextOnButtons Are the buttons without text
|
|
@@ -76,6 +76,4 @@ class SaveCloseButtons extends react_1.default.Component {
|
|
|
76
76
|
!noTextOnButtons && i18n_1.default.t('ra_Close')));
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
const _export = (0, styles_1.withStyles)(styles)(SaveCloseButtons);
|
|
81
|
-
exports.default = _export;
|
|
79
|
+
exports.default = (0, styles_1.withStyles)(styles)(SaveCloseButtons);
|
package/Components/Schedule.d.ts
CHANGED
|
@@ -1,32 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
time: {
|
|
4
|
-
exactTime: boolean;
|
|
5
|
-
start: string;
|
|
6
|
-
end: string;
|
|
7
|
-
mode: string;
|
|
8
|
-
interval: number;
|
|
9
|
-
};
|
|
10
|
-
period: {
|
|
11
|
-
once: string;
|
|
12
|
-
days: number;
|
|
13
|
-
dows: string;
|
|
14
|
-
dates: string;
|
|
15
|
-
weeks: number;
|
|
16
|
-
months: string | number;
|
|
17
|
-
years: number;
|
|
18
|
-
yearMonth: number;
|
|
19
|
-
yearDate: number;
|
|
20
|
-
};
|
|
21
|
-
valid: {
|
|
22
|
-
from: string;
|
|
23
|
-
to?: string;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
interface ScheduleProps {
|
|
27
|
-
classes: Record<string, string>;
|
|
28
|
-
schedule: string | ScheduleConfig;
|
|
29
|
-
onChange: (schedule: string, desc?: string) => void;
|
|
30
|
-
}
|
|
31
|
-
declare const _default: React.JSXElementConstructor<Omit<ScheduleProps, "classes"> & import("@mui/styles").StyledComponentProps<"hr" | "scrollWindow" | "rowDiv" | "modeDiv" | "settingsDiv" | "inputTime" | "inputDate" | "inputEvery" | "inputRadio" | "inputGroup" | "inputGroupElement" | "inputDateDay" | "inputDateDayCheck" | "inputSmallCheck" | "rowOnce" | "rowDays" | "rowDows" | "rowDates" | "rowWeeks" | "rowMonths" | "rowMonthsDates" | "rowYears" | "rowDaysDows" | "rowDowsDows"> & object>;
|
|
2
|
+
declare const _default: React.JSXElementConstructor<any>;
|
|
32
3
|
export default _default;
|
package/Components/Schedule.js
CHANGED
|
@@ -30,7 +30,7 @@ const react_1 = __importStar(require("react"));
|
|
|
30
30
|
const styles_1 = require("@mui/styles");
|
|
31
31
|
const material_1 = require("@mui/material");
|
|
32
32
|
const i18n_1 = __importDefault(require("../i18n"));
|
|
33
|
-
const styles =
|
|
33
|
+
const styles = theme => ({
|
|
34
34
|
hr: {
|
|
35
35
|
border: 0,
|
|
36
36
|
borderTop: '1px solid gray',
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const cron2text_1 = __importDefault(require("./cron2text"));
|
|
7
7
|
const jquery_cron_locale_1 = __importDefault(require("./jquery.cron.locale"));
|
|
8
|
+
// TODO: other languages
|
|
8
9
|
function correctCasus(text /* , seconds */) {
|
|
9
10
|
text = text.replace('Каждую(ый) минуту', 'Каждую минуту');
|
|
10
11
|
text = text.replace('Каждую(ый) минут(у)', 'Каждую минуту');
|
|
@@ -5,13 +5,9 @@ interface TabContainerProps {
|
|
|
5
5
|
className?: string;
|
|
6
6
|
onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
7
7
|
tabIndex?: number;
|
|
8
|
-
classes:
|
|
9
|
-
root: string;
|
|
10
|
-
overflowHidden: string;
|
|
11
|
-
container: string;
|
|
12
|
-
};
|
|
8
|
+
classes: Record<string, string>;
|
|
13
9
|
children: React.ReactNode;
|
|
14
10
|
}
|
|
15
11
|
/** @type {typeof TabContainer} */
|
|
16
|
-
declare const _export: React.JSXElementConstructor<Omit<TabContainerProps, "classes"> & import("@mui/styles").StyledComponentProps<
|
|
12
|
+
declare const _export: React.JSXElementConstructor<Omit<TabContainerProps, "classes"> & import("@mui/styles").StyledComponentProps<string> & object>;
|
|
17
13
|
export default _export;
|
|
@@ -1,32 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const react_1 =
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
30
7
|
const styles_1 = require("@mui/styles");
|
|
31
8
|
const material_1 = require("@mui/material");
|
|
32
9
|
const Utils_1 = __importDefault(require("./Utils"));
|
|
@@ -42,12 +19,9 @@ const styles = {
|
|
|
42
19
|
height: '100%',
|
|
43
20
|
},
|
|
44
21
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return react_1.default.createElement(material_1.Paper, { elevation: !Number.isNaN(this.props.elevation) ? this.props.elevation : 1, className: Utils_1.default.clsx(classes.root, { [classes.overflowHidden]: this.props.overflow !== 'visible' }, this.props.className), onKeyDown: this.props.onKeyDown, tabIndex: this.props.tabIndex },
|
|
49
|
-
react_1.default.createElement(material_1.Grid, { container: true, direction: "column", wrap: "nowrap", className: classes.container }, this.props.children));
|
|
50
|
-
}
|
|
22
|
+
function TabContainer(props) {
|
|
23
|
+
return react_1.default.createElement(material_1.Paper, { elevation: !Number.isNaN(props.elevation) ? props.elevation : 1, className: Utils_1.default.clsx(props.classes.root, { [props.classes.overflowHidden]: props.overflow !== 'visible' }, props.className), onKeyDown: props.onKeyDown, tabIndex: props.tabIndex },
|
|
24
|
+
react_1.default.createElement(material_1.Grid, { container: true, direction: "column", wrap: "nowrap", className: props.classes.container }, props.children));
|
|
51
25
|
}
|
|
52
26
|
/** @type {typeof TabContainer} */
|
|
53
27
|
const _export = (0, styles_1.withStyles)(styles)(TabContainer);
|
package/Components/TabContent.js
CHANGED
|
@@ -17,10 +17,7 @@ const styles = {
|
|
|
17
17
|
overflow: 'auto',
|
|
18
18
|
},
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const { classes } = this.props;
|
|
23
|
-
return react_1.default.createElement(material_1.Grid, { item: true, className: Utils_1.default.clsx(classes.root, this.props.overflow === 'auto' ? classes.overflowAuto : '') }, this.props.children);
|
|
24
|
-
}
|
|
20
|
+
function TabContent(props) {
|
|
21
|
+
return react_1.default.createElement(material_1.Grid, { item: true, className: Utils_1.default.clsx(props.classes.root, props.overflow === 'auto' ? props.classes.overflowAuto : '') }, props.children);
|
|
25
22
|
}
|
|
26
23
|
exports.default = (0, styles_1.withStyles)(styles)(TabContent);
|
|
@@ -2,7 +2,5 @@ import React from 'react';
|
|
|
2
2
|
interface TabHeaderProps {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
}
|
|
5
|
-
declare
|
|
6
|
-
render(): React.JSX.Element;
|
|
7
|
-
}
|
|
5
|
+
declare function TabHeader(props: TabHeaderProps): React.JSX.Element;
|
|
8
6
|
export default TabHeader;
|
package/Components/TabHeader.js
CHANGED
|
@@ -5,9 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
7
|
const material_1 = require("@mui/material");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return react_1.default.createElement(material_1.Grid, { item: true, container: true, alignItems: "center" }, this.props.children);
|
|
11
|
-
}
|
|
8
|
+
function TabHeader(props) {
|
|
9
|
+
return react_1.default.createElement(material_1.Grid, { item: true, container: true, alignItems: "center" }, props.children);
|
|
12
10
|
}
|
|
13
11
|
exports.default = TabHeader;
|
package/Components/TreeTable.js
CHANGED
|
@@ -241,63 +241,46 @@ class TreeTable extends react_1.Component {
|
|
|
241
241
|
val = val[0];
|
|
242
242
|
}
|
|
243
243
|
if (col.lookup) {
|
|
244
|
-
return this.renderCellEditSelect(
|
|
244
|
+
return this.renderCellEditSelect(col, val);
|
|
245
245
|
}
|
|
246
246
|
if (col.editComponent) {
|
|
247
|
-
return this.renderCellEditCustom(
|
|
247
|
+
return this.renderCellEditCustom(col, val, item);
|
|
248
248
|
}
|
|
249
249
|
if (col.type === 'boolean' || (!col.type && typeof val === 'boolean')) {
|
|
250
|
-
return this.renderCellEditBoolean(
|
|
250
|
+
return this.renderCellEditBoolean(col, val);
|
|
251
251
|
}
|
|
252
252
|
if (col.type === 'color') {
|
|
253
|
-
return this.renderCellEditColor(
|
|
253
|
+
return this.renderCellEditColor(col, val);
|
|
254
254
|
}
|
|
255
255
|
if (col.type === 'oid') {
|
|
256
|
-
return this.renderCellEditObjectID(
|
|
256
|
+
return this.renderCellEditObjectID(col, val);
|
|
257
257
|
}
|
|
258
258
|
if (col.type === 'numeric') {
|
|
259
|
-
return this.renderCellEditNumber(
|
|
259
|
+
return this.renderCellEditNumber(col, val);
|
|
260
260
|
}
|
|
261
|
-
return this.renderCellEditString(
|
|
261
|
+
return this.renderCellEditString(col, val);
|
|
262
262
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
263
|
+
onChange(col, oldValue, newValue) {
|
|
264
|
+
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
265
|
+
if (newValue === oldValue) {
|
|
266
|
+
delete editData[col.field];
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
editData[col.field] = newValue;
|
|
270
|
+
}
|
|
271
|
+
this.setState({ editData });
|
|
272
|
+
}
|
|
273
|
+
renderCellEditSelect(col, val) {
|
|
274
|
+
return react_1.default.createElement(material_1.Select, { variant: "standard", onChange: e => this.onChange(col, val, e.target.value), value: (this.state.editData && this.state.editData[col.field]) || val }, col.lookup && Object.keys(col.lookup)
|
|
274
275
|
.map((v, i) => { var _c; return react_1.default.createElement(material_1.MenuItem, { key: i, value: v }, (_c = col.lookup) === null || _c === void 0 ? void 0 : _c[v]); }));
|
|
275
276
|
}
|
|
276
|
-
renderCellEditString(
|
|
277
|
-
return react_1.default.createElement(material_1.TextField, { variant: "standard", className: this.props.classes.fieldEdit, fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val, onChange: e =>
|
|
278
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
279
|
-
if (e.target.value === val) {
|
|
280
|
-
delete editData[col.field];
|
|
281
|
-
}
|
|
282
|
-
else {
|
|
283
|
-
editData[col.field] = e.target.value;
|
|
284
|
-
}
|
|
285
|
-
this.setState({ editData });
|
|
286
|
-
} });
|
|
277
|
+
renderCellEditString(col, val) {
|
|
278
|
+
return react_1.default.createElement(material_1.TextField, { variant: "standard", className: this.props.classes.fieldEdit, fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val, onChange: e => this.onChange(col, val, e.target.value) });
|
|
287
279
|
}
|
|
288
|
-
renderCellEditNumber(
|
|
289
|
-
return react_1.default.createElement(material_1.TextField, { variant: "standard", className: this.props.classes.fieldEdit, type: "number", fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val, onChange: e =>
|
|
290
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
291
|
-
if (e.target.value === val) {
|
|
292
|
-
delete editData[col.field];
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
editData[col.field] = e.target.value;
|
|
296
|
-
}
|
|
297
|
-
this.setState({ editData });
|
|
298
|
-
} });
|
|
280
|
+
renderCellEditNumber(col, val) {
|
|
281
|
+
return react_1.default.createElement(material_1.TextField, { variant: "standard", className: this.props.classes.fieldEdit, type: "number", fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val, onChange: e => this.onChange(col, val, e.target.value) });
|
|
299
282
|
}
|
|
300
|
-
renderCellEditCustom(
|
|
283
|
+
renderCellEditCustom(col, val, item) {
|
|
301
284
|
const EditComponent = col.editComponent;
|
|
302
285
|
// use new value if exists
|
|
303
286
|
if (this.state.editData && this.state.editData[col.field] !== undefined) {
|
|
@@ -305,28 +288,10 @@ class TreeTable extends react_1.Component {
|
|
|
305
288
|
item = JSON.parse(JSON.stringify(item));
|
|
306
289
|
item[col.field] = val;
|
|
307
290
|
}
|
|
308
|
-
return react_1.default.createElement(EditComponent, { value: val, rowData: item, onChange: (newVal) =>
|
|
309
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
310
|
-
if (newVal === val) {
|
|
311
|
-
delete editData[col.field];
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
editData[col.field] = newVal;
|
|
315
|
-
}
|
|
316
|
-
this.setState({ editData });
|
|
317
|
-
} });
|
|
291
|
+
return react_1.default.createElement(EditComponent, { value: val, rowData: item, onChange: (newVal) => this.onChange(col, val, newVal) });
|
|
318
292
|
}
|
|
319
|
-
renderCellEditBoolean(
|
|
320
|
-
return react_1.default.createElement(material_1.Checkbox, { checked: this.state.editData && this.state.editData[col.field] !== undefined ? !!this.state.editData[col.field] : !!val, onChange: e => {
|
|
321
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
322
|
-
if (e.target.checked === !!val) {
|
|
323
|
-
delete editData[col.field];
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
editData[col.field] = e.target.checked;
|
|
327
|
-
}
|
|
328
|
-
this.setState({ editData });
|
|
329
|
-
}, inputProps: { 'aria-label': 'checkbox' } });
|
|
293
|
+
renderCellEditBoolean(col, val) {
|
|
294
|
+
return react_1.default.createElement(material_1.Checkbox, { checked: this.state.editData && this.state.editData[col.field] !== undefined ? !!this.state.editData[col.field] : !!val, onChange: e => this.onChange(col, !!val, e.target.checked), inputProps: { 'aria-label': 'checkbox' } });
|
|
330
295
|
}
|
|
331
296
|
renderSelectColorDialog() {
|
|
332
297
|
return react_1.default.createElement(material_1.Dialog, { classes: { root: this.props.classes.colorDialog, paper: this.props.classes.colorDialog }, onClose: () => {
|
|
@@ -335,30 +300,12 @@ class TreeTable extends react_1.Component {
|
|
|
335
300
|
}, open: this.state.showSelectColor },
|
|
336
301
|
react_1.default.createElement(react_colorful_1.HexColorPicker, { color: this.state.selectIdValue, onChange: color => this.setState({ selectIdValue: color }, () => this.selectCallback && this.selectCallback(color)) }));
|
|
337
302
|
}
|
|
338
|
-
renderCellEditColor(
|
|
303
|
+
renderCellEditColor(col, val) {
|
|
339
304
|
const _val = this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val;
|
|
340
305
|
return react_1.default.createElement("div", { className: this.props.classes.fieldEdit },
|
|
341
|
-
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, className: this.props.classes.fieldEditWithButton, value: _val, inputProps: { style: { backgroundColor: _val, color: Utils_1.default.isUseBright(_val) ? '#FFF' : '#000' } }, onChange: e =>
|
|
342
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
343
|
-
if (e.target.value === val) {
|
|
344
|
-
delete editData[col.field];
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
editData[col.field] = e.target.value;
|
|
348
|
-
}
|
|
349
|
-
this.setState({ editData });
|
|
350
|
-
} }),
|
|
306
|
+
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, className: this.props.classes.fieldEditWithButton, value: _val, inputProps: { style: { backgroundColor: _val, color: Utils_1.default.isUseBright(_val) ? '#FFF' : '#000' } }, onChange: e => this.onChange(col, !!val, e.target.value) }),
|
|
351
307
|
react_1.default.createElement(material_1.IconButton, { className: this.props.classes.fieldButton, onClick: () => {
|
|
352
|
-
this.selectCallback = newColor =>
|
|
353
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
354
|
-
if (newColor === val) {
|
|
355
|
-
delete editData[col.field];
|
|
356
|
-
}
|
|
357
|
-
else {
|
|
358
|
-
editData[col.field] = newColor;
|
|
359
|
-
}
|
|
360
|
-
this.setState({ editData });
|
|
361
|
-
};
|
|
308
|
+
this.selectCallback = newColor => this.onChange(col, val, newColor);
|
|
362
309
|
this.setState({ showSelectColor: true, selectIdValue: val });
|
|
363
310
|
}, size: "large" },
|
|
364
311
|
react_1.default.createElement(icons_material_1.Colorize, null)));
|
|
@@ -373,29 +320,11 @@ class TreeTable extends react_1.Component {
|
|
|
373
320
|
}
|
|
374
321
|
return null;
|
|
375
322
|
}
|
|
376
|
-
renderCellEditObjectID(
|
|
323
|
+
renderCellEditObjectID(col, val) {
|
|
377
324
|
return react_1.default.createElement("div", { className: this.props.classes.fieldEdit },
|
|
378
|
-
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, className: this.props.classes.fieldEditWithButton, value: this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val, onChange: e =>
|
|
379
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
380
|
-
if (e.target.value === val) {
|
|
381
|
-
delete editData[col.field];
|
|
382
|
-
}
|
|
383
|
-
else {
|
|
384
|
-
editData[col.field] = e.target.value;
|
|
385
|
-
}
|
|
386
|
-
this.setState({ editData });
|
|
387
|
-
} }),
|
|
325
|
+
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, className: this.props.classes.fieldEditWithButton, value: this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val, onChange: e => this.onChange(col, val, e.target.value) }),
|
|
388
326
|
react_1.default.createElement(material_1.IconButton, { className: this.props.classes.fieldButton, onClick: () => {
|
|
389
|
-
this.selectCallback = selected =>
|
|
390
|
-
const editData = this.state.editData ? Object.assign({}, this.state.editData) : {};
|
|
391
|
-
if (selected === val) {
|
|
392
|
-
delete editData[col.field];
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
editData[col.field] = selected;
|
|
396
|
-
}
|
|
397
|
-
this.setState({ editData });
|
|
398
|
-
};
|
|
327
|
+
this.selectCallback = selected => this.onChange(col, val, selected);
|
|
399
328
|
this.setState({ showSelectId: true, selectIdValue: val });
|
|
400
329
|
}, size: "large" },
|
|
401
330
|
react_1.default.createElement(icons_material_1.ViewHeadline, null)));
|
package/Components/Utils.d.ts
CHANGED
package/GenericApp.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { AdminConnection } from '@iobroker/socket-client';
|
|
9
9
|
import Router from './Components/Router';
|
|
10
|
-
import { GenericAppProps, GenericAppState, GenericAppSettings, ThemeName, ThemeType,
|
|
10
|
+
import { GenericAppProps, GenericAppState, GenericAppSettings, ThemeName, ThemeType, IobTheme, Width } from './types';
|
|
11
11
|
declare global {
|
|
12
12
|
/** If config has been changed */
|
|
13
13
|
var changed: boolean;
|
|
@@ -69,15 +69,15 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
69
69
|
* Get a theme
|
|
70
70
|
* @param name Theme name
|
|
71
71
|
*/
|
|
72
|
-
createTheme(name?: ThemeName | null | undefined):
|
|
72
|
+
createTheme(name?: ThemeName | null | undefined): IobTheme;
|
|
73
73
|
/**
|
|
74
74
|
* Get the theme name
|
|
75
75
|
*/
|
|
76
|
-
getThemeName(currentTheme:
|
|
76
|
+
getThemeName(currentTheme: IobTheme): ThemeName;
|
|
77
77
|
/**
|
|
78
78
|
* Get the theme type
|
|
79
79
|
*/
|
|
80
|
-
getThemeType(currentTheme:
|
|
80
|
+
getThemeType(currentTheme: IobTheme): ThemeType;
|
|
81
81
|
onThemeChanged(newThemeName: string): void;
|
|
82
82
|
onToggleExpertMode(expertMode: boolean): void;
|
|
83
83
|
/**
|
package/README.md
CHANGED
|
@@ -670,9 +670,10 @@ socket.getObjectViewCustom('custom', 'state', 'startKey', 'endKey')
|
|
|
670
670
|
-->
|
|
671
671
|
|
|
672
672
|
## Changelog
|
|
673
|
-
###
|
|
673
|
+
### 5.0.0 (2024-05-29)
|
|
674
674
|
* (bluefox) Types are now exported
|
|
675
675
|
* (bluefox) Translator renamed to Translate
|
|
676
|
+
* (bluefox) Breaking: Theme renamed to IobTheme because of the naming conflict
|
|
676
677
|
|
|
677
678
|
### 4.13.24 (2024-05-25)
|
|
678
679
|
* (bluefox) Updated packages
|
package/Theme.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type IobTheme, type ThemeName } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* The theme creation factory function.
|
|
4
4
|
*/
|
|
5
|
-
declare const CustomTheme: (type: ThemeName) =>
|
|
5
|
+
declare const CustomTheme: (type: ThemeName) => IobTheme;
|
|
6
6
|
export default CustomTheme;
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ export interface GenericAppState {
|
|
|
79
79
|
loaded: boolean;
|
|
80
80
|
themeType: ThemeType;
|
|
81
81
|
themeName: ThemeName;
|
|
82
|
-
theme:
|
|
82
|
+
theme: IobTheme;
|
|
83
83
|
expertMode: boolean;
|
|
84
84
|
selectedTab: string;
|
|
85
85
|
selectedTabNum: number | undefined;
|
|
@@ -123,7 +123,7 @@ interface Palette extends MuiPalette {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
export interface
|
|
126
|
+
export interface IobTheme extends MuiTheme {
|
|
127
127
|
name: ThemeName;
|
|
128
128
|
palette: Palette;
|
|
129
129
|
toolbar: React.CSSProperties;
|