@iobroker/adapter-react-v5 7.0.1 → 7.1.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/404.d.ts +3 -2
- package/Components/404.js +16 -15
- package/Components/ColorPicker.d.ts +22 -8
- package/Components/ColorPicker.js +34 -17
- package/Components/ComplexCron.js +24 -24
- package/Components/CopyToClipboard.d.ts +10 -1
- package/Components/CopyToClipboard.js +17 -8
- package/Components/CustomModal.d.ts +1 -1
- package/Components/CustomModal.js +8 -8
- package/Components/FileBrowser.d.ts +11 -11
- package/Components/FileBrowser.js +173 -164
- package/Components/FileViewer.js +34 -23
- package/Components/Icon.d.ts +16 -2
- package/Components/Icon.js +19 -8
- package/Components/IconPicker.js +10 -14
- package/Components/IconSelector.d.ts +1 -1
- package/Components/IconSelector.js +64 -74
- package/Components/Image.d.ts +8 -4
- package/Components/Image.js +13 -32
- package/Components/Loader.d.ts +2 -2
- package/Components/Loader.js +244 -241
- package/Components/Loaders/MV.d.ts +6 -1
- package/Components/Loaders/MV.js +23 -7
- package/Components/Loaders/PT.d.ts +7 -2
- package/Components/Loaders/PT.js +123 -110
- package/Components/Loaders/Vendor.d.ts +2 -2
- package/Components/Loaders/Vendor.js +22 -14
- package/Components/Logo.js +16 -18
- package/Components/MDUtils.d.ts +1 -1
- package/Components/MDUtils.js +8 -4
- package/Components/ObjectBrowser.d.ts +49 -38
- package/Components/ObjectBrowser.js +757 -494
- package/Components/Router.d.ts +1 -3
- package/Components/Router.js +3 -1
- package/Components/SaveCloseButtons.d.ts +3 -3
- package/Components/SaveCloseButtons.js +3 -3
- package/Components/Schedule.d.ts +15 -15
- package/Components/Schedule.js +177 -154
- package/Components/SelectWithIcon.d.ts +2 -2
- package/Components/SelectWithIcon.js +45 -34
- package/Components/SimpleCron/index.js +83 -43
- package/Components/TabContainer.js +2 -2
- package/Components/TabContent.js +1 -1
- package/Components/TabHeader.js +1 -1
- package/Components/TableResize.d.ts +2 -2
- package/Components/TableResize.js +5 -5
- package/Components/TextWithIcon.d.ts +1 -1
- package/Components/TextWithIcon.js +10 -8
- package/Components/ToggleThemeMenu.d.ts +2 -2
- package/Components/ToggleThemeMenu.js +3 -3
- package/Components/TreeTable.d.ts +18 -18
- package/Components/TreeTable.js +76 -72
- package/Components/UploadImage.d.ts +2 -2
- package/Components/UploadImage.js +330 -326
- package/Components/Utils.d.ts +42 -22
- package/Components/Utils.js +66 -65
- package/Components/withWidth.d.ts +2 -2
- package/Components/withWidth.js +10 -6
- package/Dialogs/ComplexCron.d.ts +2 -2
- package/Dialogs/ComplexCron.js +3 -3
- package/Dialogs/Confirm.d.ts +4 -4
- package/Dialogs/Confirm.js +18 -8
- package/Dialogs/Cron.d.ts +3 -3
- package/Dialogs/Cron.js +21 -17
- package/Dialogs/Error.d.ts +3 -3
- package/Dialogs/Error.js +6 -4
- package/Dialogs/Message.d.ts +3 -3
- package/Dialogs/Message.js +6 -4
- package/Dialogs/SelectFile.d.ts +4 -4
- package/Dialogs/SelectFile.js +6 -4
- package/Dialogs/SelectID.d.ts +12 -10
- package/Dialogs/SelectID.js +12 -8
- package/Dialogs/SimpleCron.d.ts +2 -2
- package/Dialogs/SimpleCron.js +2 -2
- package/Dialogs/TextInput.d.ts +2 -2
- package/Dialogs/TextInput.js +3 -3
- package/GenericApp.d.ts +19 -13
- package/GenericApp.js +177 -134
- package/LICENSE +22 -22
- package/LegacyConnection.d.ts +240 -248
- package/LegacyConnection.js +500 -525
- package/Prompt.js +7 -7
- package/README.md +1239 -1166
- package/Theme.d.ts +1 -1
- package/Theme.js +9 -12
- package/assets/devices.json +1 -0
- package/assets/lamp_ceiling.svg +8 -8
- package/assets/lamp_table.svg +7 -7
- package/assets/no_icon.svg +9 -9
- package/assets/rooms.json +1 -0
- package/craco-module-federation.js +62 -71
- package/i18n/de.json +434 -431
- package/i18n/en.json +434 -431
- package/i18n/es.json +434 -431
- package/i18n/fr.json +434 -431
- package/i18n/it.json +434 -431
- package/i18n/nl.json +434 -431
- package/i18n/pl.json +434 -431
- package/i18n/pt.json +434 -431
- package/i18n/ru.json +434 -431
- package/i18n/uk.json +434 -431
- package/i18n/zh-cn.json +434 -431
- package/i18n.d.ts +26 -19
- package/i18n.js +28 -22
- package/icons/IconAdapter.js +2 -2
- package/icons/IconAlias.js +2 -2
- package/icons/IconChannel.js +2 -2
- package/icons/IconClearFilter.js +2 -2
- package/icons/IconClosed.js +2 -2
- package/icons/IconCopy.js +2 -2
- package/icons/IconDevice.js +2 -2
- package/icons/IconDocument.js +2 -2
- package/icons/IconDocumentReadOnly.js +2 -2
- package/icons/IconExpert.js +2 -2
- package/icons/IconFx.js +2 -2
- package/icons/IconInstance.js +2 -2
- package/icons/IconLogout.js +2 -2
- package/icons/IconNoIcon.js +2 -2
- package/icons/IconOpen.d.ts +2 -2
- package/icons/IconOpen.js +2 -2
- package/icons/IconProps.d.ts +4 -3
- package/icons/IconState.d.ts +2 -2
- package/icons/IconState.js +2 -2
- package/index.css +56 -55
- package/modulefederation.admin.config.js +31 -31
- package/package.json +5 -5
- package/src/AdminConnection.tsx +3 -3
- package/src/Components/404.tsx +122 -121
- package/src/Components/ColorPicker.tsx +343 -315
- package/src/Components/ComplexCron.tsx +544 -507
- package/src/Components/CopyToClipboard.tsx +178 -165
- package/src/Components/CustomModal.tsx +170 -163
- package/src/Components/FileBrowser.tsx +2550 -2414
- package/src/Components/FileViewer.tsx +412 -393
- package/src/Components/Icon.tsx +238 -210
- package/src/Components/IconPicker.tsx +165 -149
- package/src/Components/IconSelector.tsx +2220 -2202
- package/src/Components/Image.tsx +193 -176
- package/src/Components/Loader.tsx +328 -304
- package/src/Components/Logo.tsx +176 -166
- package/src/Components/MDUtils.tsx +104 -100
- package/src/Components/ObjectBrowser.tsx +8935 -8032
- package/src/Components/Router.tsx +90 -90
- package/src/Components/SaveCloseButtons.tsx +117 -113
- package/src/Components/Schedule.tsx +1962 -1724
- package/src/Components/SelectWithIcon.tsx +239 -197
- package/src/Components/TabContainer.tsx +57 -55
- package/src/Components/TabContent.tsx +38 -37
- package/src/Components/TabHeader.tsx +20 -19
- package/src/Components/TableResize.tsx +274 -259
- package/src/Components/TextWithIcon.tsx +159 -148
- package/src/Components/ToggleThemeMenu.tsx +52 -34
- package/src/Components/TreeTable.tsx +1002 -919
- package/src/Components/UploadImage.tsx +631 -599
- package/src/Components/Utils.tsx +1802 -1794
- package/src/Components/loader.css +231 -222
- package/src/Components/withWidth.tsx +32 -21
- package/src/Connection.tsx +5 -7
- package/src/Dialogs/ComplexCron.tsx +123 -129
- package/src/Dialogs/Confirm.tsx +185 -162
- package/src/Dialogs/Cron.tsx +192 -182
- package/src/Dialogs/Error.tsx +67 -72
- package/src/Dialogs/Message.tsx +73 -71
- package/src/Dialogs/SelectFile.tsx +280 -270
- package/src/Dialogs/SelectID.tsx +310 -298
- package/src/Dialogs/SimpleCron.tsx +100 -100
- package/src/Dialogs/TextInput.tsx +99 -107
- package/src/GenericApp.tsx +1076 -976
- package/src/LegacyConnection.tsx +3719 -3589
- package/src/Prompt.tsx +22 -20
- package/src/Theme.tsx +472 -479
- package/src/icons/IconAdapter.tsx +22 -20
- package/src/icons/IconAlias.tsx +22 -20
- package/src/icons/IconChannel.tsx +60 -21
- package/src/icons/IconClearFilter.tsx +24 -22
- package/src/icons/IconClosed.tsx +22 -17
- package/src/icons/IconCopy.tsx +21 -16
- package/src/icons/IconDevice.tsx +126 -27
- package/src/icons/IconDocument.tsx +22 -17
- package/src/icons/IconDocumentReadOnly.tsx +27 -18
- package/src/icons/IconExpert.tsx +26 -18
- package/src/icons/IconFx.tsx +38 -36
- package/src/icons/IconInstance.tsx +22 -20
- package/src/icons/IconLogout.tsx +32 -30
- package/src/icons/IconNoIcon.tsx +21 -19
- package/src/icons/IconOpen.tsx +22 -17
- package/src/icons/IconProps.tsx +16 -15
- package/src/icons/IconState.tsx +38 -17
- package/src/index.css +56 -55
- package/tasks.js +91 -0
- package/types.d.ts +141 -134
- package/Components/Loaders/PT.css +0 -109
- package/Components/Loaders/Vendor.css +0 -13
- package/Components/loader.css +0 -222
- package/Components/types.d.ts +0 -82
- package/assets/devices/Alarm Systems.svg +0 -19
- package/assets/devices/Amplifier.svg +0 -22
- package/assets/devices/Awnings.svg +0 -5
- package/assets/devices/Battery Status.svg +0 -5
- package/assets/devices/Ceiling Spotlights.svg +0 -16
- package/assets/devices/Chandelier.svg +0 -7
- package/assets/devices/Climate.svg +0 -12
- package/assets/devices/Coffee Makers.svg +0 -6
- package/assets/devices/Cold Water.svg +0 -31
- package/assets/devices/Computer.svg +0 -21
- package/assets/devices/Consumption.svg +0 -8
- package/assets/devices/Curtains.svg +0 -43
- package/assets/devices/Dishwashers.svg +0 -12
- package/assets/devices/Doors.svg +0 -6
- package/assets/devices/Doorstep.svg +0 -35
- package/assets/devices/Dryer.svg +0 -14
- package/assets/devices/Fan.svg +0 -20
- package/assets/devices/Floor Lamps.svg +0 -5
- package/assets/devices/Garage Doors.svg +0 -9
- package/assets/devices/Gates.svg +0 -32
- package/assets/devices/Hairdryer.svg +0 -23
- package/assets/devices/Handle.svg +0 -6
- package/assets/devices/Hanging Lamps.svg +0 -9
- package/assets/devices/Heater.svg +0 -44
- package/assets/devices/Hoods.svg +0 -12
- package/assets/devices/Hot Water.svg +0 -10
- package/assets/devices/Humidity.svg +0 -41
- package/assets/devices/Iron.svg +0 -5
- package/assets/devices/Irrigation.svg +0 -23
- package/assets/devices/Led Strip.svg +0 -31
- package/assets/devices/Light.svg +0 -30
- package/assets/devices/Lightings.svg +0 -46
- package/assets/devices/Lock.svg +0 -19
- package/assets/devices/Louvre.svg +0 -7
- package/assets/devices/Mowing Machine.svg +0 -9
- package/assets/devices/Music.svg +0 -13
- package/assets/devices/Outdoor Blinds.svg +0 -7
- package/assets/devices/People.svg +0 -19
- package/assets/devices/Pool.svg +0 -8
- package/assets/devices/Power Consumption.svg +0 -13
- package/assets/devices/Printer.svg +0 -10
- package/assets/devices/Pump.svg +0 -10
- package/assets/devices/Receiver.svg +0 -19
- package/assets/devices/Sconces.svg +0 -10
- package/assets/devices/Security.svg +0 -34
- package/assets/devices/Shading.svg +0 -5
- package/assets/devices/Shutters.svg +0 -11
- package/assets/devices/SmokeDetector.svg +0 -13
- package/assets/devices/Sockets.svg +0 -13
- package/assets/devices/Speaker.svg +0 -35
- package/assets/devices/Stove.svg +0 -12
- package/assets/devices/Table Lamps.svg +0 -12
- package/assets/devices/Temperature Sensors.svg +0 -28
- package/assets/devices/Tv.svg +0 -8
- package/assets/devices/Vacuum Cleaner.svg +0 -16
- package/assets/devices/Ventilation.svg +0 -12
- package/assets/devices/Washing Machines.svg +0 -16
- package/assets/devices/Water Consumption.svg +0 -6
- package/assets/devices/Water Heater.svg +0 -8
- package/assets/devices/Water.svg +0 -40
- package/assets/devices/Weather.svg +0 -28
- package/assets/devices/Window.svg +0 -8
- package/assets/rooms/Anteroom.svg +0 -53
- package/assets/rooms/Attic.svg +0 -21
- package/assets/rooms/Balcony.svg +0 -13
- package/assets/rooms/Barn.svg +0 -6
- package/assets/rooms/Basement.svg +0 -5
- package/assets/rooms/Bathroom.svg +0 -38
- package/assets/rooms/Bedroom.svg +0 -5
- package/assets/rooms/Boiler Room.svg +0 -13
- package/assets/rooms/Carport.svg +0 -17
- package/assets/rooms/Cellar.svg +0 -89
- package/assets/rooms/Chamber.svg +0 -9
- package/assets/rooms/Corridor.svg +0 -53
- package/assets/rooms/Dining Area.svg +0 -37
- package/assets/rooms/Dining Room.svg +0 -37
- package/assets/rooms/Dining.svg +0 -37
- package/assets/rooms/Dressing Room.svg +0 -5
- package/assets/rooms/Driveway.svg +0 -15
- package/assets/rooms/Entrance.svg +0 -44
- package/assets/rooms/Equipment Room.svg +0 -15
- package/assets/rooms/Front Yard.svg +0 -64
- package/assets/rooms/Gallery.svg +0 -14
- package/assets/rooms/Garage.svg +0 -20
- package/assets/rooms/Garden.svg +0 -13
- package/assets/rooms/Ground Floor.svg +0 -95
- package/assets/rooms/Guest Bathroom.svg +0 -33
- package/assets/rooms/Guest Room.svg +0 -5
- package/assets/rooms/Gym.svg +0 -5
- package/assets/rooms/Hall.svg +0 -19
- package/assets/rooms/Home Theater.svg +0 -8
- package/assets/rooms/Kitchen.svg +0 -18
- package/assets/rooms/Laundry Room.svg +0 -12
- package/assets/rooms/Living Area.svg +0 -11
- package/assets/rooms/Living Room.svg +0 -10
- package/assets/rooms/Locker Room.svg +0 -17
- package/assets/rooms/Nursery.svg +0 -5
- package/assets/rooms/Office.svg +0 -8
- package/assets/rooms/Outdoors.svg +0 -7
- package/assets/rooms/Playroom.svg +0 -6
- package/assets/rooms/Pool.svg +0 -8
- package/assets/rooms/Rear Wall.svg +0 -30
- package/assets/rooms/Second Floor.svg +0 -95
- package/assets/rooms/Shed.svg +0 -16
- package/assets/rooms/Sleeping Area.svg +0 -22
- package/assets/rooms/Stairway.svg +0 -5
- package/assets/rooms/Stairwell.svg +0 -15
- package/assets/rooms/Storeroom.svg +0 -5
- package/assets/rooms/Summer House.svg +0 -27
- package/assets/rooms/Swimming Pool.svg +0 -21
- package/assets/rooms/Terrace.svg +0 -7
- package/assets/rooms/Toilet.svg +0 -10
- package/assets/rooms/Upstairs.svg +0 -6
- package/assets/rooms/Wardrobe.svg +0 -60
- package/assets/rooms/Washroom.svg +0 -20
- package/assets/rooms/Wc.svg +0 -10
- package/assets/rooms/Windscreen.svg +0 -60
- package/assets/rooms/Workshop.svg +0 -23
- package/assets/rooms/Workspace.svg +0 -8
package/Components/TreeTable.js
CHANGED
|
@@ -53,7 +53,7 @@ function setAttr(obj, attr, value) {
|
|
|
53
53
|
attr = attr.split('.');
|
|
54
54
|
}
|
|
55
55
|
if (attr.length === 1) {
|
|
56
|
-
return obj[attr[0]] = value;
|
|
56
|
+
return (obj[attr[0]] = value);
|
|
57
57
|
}
|
|
58
58
|
const name = attr.shift();
|
|
59
59
|
if (obj[name] === null || obj[name] === undefined) {
|
|
@@ -191,7 +191,7 @@ class TreeTable extends react_1.Component {
|
|
|
191
191
|
try {
|
|
192
192
|
opened = JSON.parse(opened) || [];
|
|
193
193
|
}
|
|
194
|
-
catch (
|
|
194
|
+
catch (_c) {
|
|
195
195
|
opened = [];
|
|
196
196
|
}
|
|
197
197
|
if (!Array.isArray(opened)) {
|
|
@@ -270,14 +270,21 @@ class TreeTable extends react_1.Component {
|
|
|
270
270
|
this.setState({ editData });
|
|
271
271
|
}
|
|
272
272
|
renderCellEditSelect(col, val) {
|
|
273
|
-
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 &&
|
|
274
|
-
.map((v, i) => {
|
|
273
|
+
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 &&
|
|
274
|
+
Object.keys(col.lookup).map((v, i) => {
|
|
275
|
+
var _c;
|
|
276
|
+
return (react_1.default.createElement(material_1.MenuItem, { key: i, value: v }, (_c = col.lookup) === null || _c === void 0 ? void 0 : _c[v]));
|
|
277
|
+
})));
|
|
275
278
|
}
|
|
276
279
|
renderCellEditString(col, val) {
|
|
277
|
-
return react_1.default.createElement(material_1.TextField, { variant: "standard", style: styles.fieldEdit, fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined
|
|
280
|
+
return (react_1.default.createElement(material_1.TextField, { variant: "standard", style: styles.fieldEdit, fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined
|
|
281
|
+
? this.state.editData[col.field]
|
|
282
|
+
: val, onChange: e => this.onChange(col, val, e.target.value) }));
|
|
278
283
|
}
|
|
279
284
|
renderCellEditNumber(col, val) {
|
|
280
|
-
return react_1.default.createElement(material_1.TextField, { variant: "standard", style: styles.fieldEdit, type: "number", fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined
|
|
285
|
+
return (react_1.default.createElement(material_1.TextField, { variant: "standard", style: styles.fieldEdit, type: "number", fullWidth: true, value: this.state.editData && this.state.editData[col.field] !== undefined
|
|
286
|
+
? this.state.editData[col.field]
|
|
287
|
+
: val, onChange: e => this.onChange(col, val, e.target.value) }));
|
|
281
288
|
}
|
|
282
289
|
renderCellEditCustom(col, val, item) {
|
|
283
290
|
const EditComponent = col.editComponent;
|
|
@@ -287,49 +294,53 @@ class TreeTable extends react_1.Component {
|
|
|
287
294
|
item = JSON.parse(JSON.stringify(item));
|
|
288
295
|
item[col.field] = val;
|
|
289
296
|
}
|
|
290
|
-
return EditComponent ? react_1.default.createElement(EditComponent, { value: val, rowData: item, onChange: (newVal) => this.onChange(col, val, newVal) }) : null;
|
|
297
|
+
return EditComponent ? (react_1.default.createElement(EditComponent, { value: val, rowData: item, onChange: (newVal) => this.onChange(col, val, newVal) })) : null;
|
|
291
298
|
}
|
|
292
299
|
renderCellEditBoolean(col, val) {
|
|
293
|
-
return react_1.default.createElement(material_1.Checkbox, { checked: this.state.editData && this.state.editData[col.field] !== undefined
|
|
300
|
+
return (react_1.default.createElement(material_1.Checkbox, { checked: this.state.editData && this.state.editData[col.field] !== undefined
|
|
301
|
+
? !!this.state.editData[col.field]
|
|
302
|
+
: !!val, onChange: e => this.onChange(col, !!val, e.target.checked), inputProps: { 'aria-label': 'checkbox' } }));
|
|
294
303
|
}
|
|
295
304
|
renderSelectColorDialog() {
|
|
296
|
-
return react_1.default.createElement(material_1.Dialog, { sx: {
|
|
305
|
+
return (react_1.default.createElement(material_1.Dialog, { sx: {
|
|
297
306
|
'& .MuiPaper-root': styles.root,
|
|
298
307
|
'& .MuiPaper-paper': styles.paper,
|
|
299
308
|
}, onClose: () => {
|
|
300
309
|
this.selectCallback = null;
|
|
301
310
|
this.setState({ showSelectColor: false });
|
|
302
311
|
}, open: this.state.showSelectColor },
|
|
303
|
-
react_1.default.createElement(react_colorful_1.HexColorPicker, { color: this.state.selectIdValue, onChange: color => this.setState({ selectIdValue: color }, () => this.selectCallback && this.selectCallback(color)) }));
|
|
312
|
+
react_1.default.createElement(react_colorful_1.HexColorPicker, { color: this.state.selectIdValue, onChange: color => this.setState({ selectIdValue: color }, () => this.selectCallback && this.selectCallback(color)) })));
|
|
304
313
|
}
|
|
305
314
|
renderCellEditColor(col, val) {
|
|
306
315
|
const _val = this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val;
|
|
307
|
-
return react_1.default.createElement("div", { style: styles.fieldEdit },
|
|
316
|
+
return (react_1.default.createElement("div", { style: styles.fieldEdit },
|
|
308
317
|
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, style: styles.fieldEditWithButton, value: _val, inputProps: { style: { backgroundColor: _val, color: Utils_1.default.isUseBright(_val) ? '#FFF' : '#000' } }, onChange: e => this.onChange(col, !!val, e.target.value) }),
|
|
309
318
|
react_1.default.createElement(material_1.IconButton, { style: styles.fieldButton, onClick: () => {
|
|
310
319
|
this.selectCallback = newColor => this.onChange(col, val, newColor);
|
|
311
320
|
this.setState({ showSelectColor: true, selectIdValue: val });
|
|
312
321
|
}, size: "large" },
|
|
313
|
-
react_1.default.createElement(icons_material_1.Colorize, null)));
|
|
322
|
+
react_1.default.createElement(icons_material_1.Colorize, null))));
|
|
314
323
|
}
|
|
315
324
|
renderSelectIdDialog() {
|
|
316
325
|
if (this.state.showSelectId && this.props.socket) {
|
|
317
|
-
return react_1.default.createElement(SelectID_1.default, { key: "tableSelect", imagePrefix: "../..", dialogName: this.props.adapterName, themeType: this.props.themeType, theme: this.props.theme, socket: this.props.socket, selected: this.state.selectIdValue, onClose: () => this.setState({ showSelectId: false }), onOk: (selected /* , name */) => {
|
|
326
|
+
return (react_1.default.createElement(SelectID_1.default, { key: "tableSelect", imagePrefix: "../..", dialogName: this.props.adapterName, themeType: this.props.themeType, theme: this.props.theme, socket: this.props.socket, selected: this.state.selectIdValue, onClose: () => this.setState({ showSelectId: false }), onOk: (selected /* , name */) => {
|
|
318
327
|
this.setState({ showSelectId: false, selectIdValue: null });
|
|
319
328
|
this.selectCallback && this.selectCallback(selected);
|
|
320
329
|
this.selectCallback = null;
|
|
321
|
-
} });
|
|
330
|
+
} }));
|
|
322
331
|
}
|
|
323
332
|
return null;
|
|
324
333
|
}
|
|
325
334
|
renderCellEditObjectID(col, val) {
|
|
326
|
-
return react_1.default.createElement("div", { style: styles.fieldEdit },
|
|
327
|
-
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, style: styles.fieldEditWithButton, value: this.state.editData && this.state.editData[col.field] !== undefined
|
|
335
|
+
return (react_1.default.createElement("div", { style: styles.fieldEdit },
|
|
336
|
+
react_1.default.createElement(material_1.TextField, { variant: "standard", fullWidth: true, style: styles.fieldEditWithButton, value: this.state.editData && this.state.editData[col.field] !== undefined
|
|
337
|
+
? this.state.editData[col.field]
|
|
338
|
+
: val, onChange: e => this.onChange(col, val, e.target.value) }),
|
|
328
339
|
react_1.default.createElement(material_1.IconButton, { style: styles.fieldButton, onClick: () => {
|
|
329
340
|
this.selectCallback = selected => this.onChange(col, val, selected);
|
|
330
341
|
this.setState({ showSelectId: true, selectIdValue: val });
|
|
331
342
|
}, size: "large" },
|
|
332
|
-
react_1.default.createElement(icons_material_1.ViewHeadline, null)));
|
|
343
|
+
react_1.default.createElement(icons_material_1.ViewHeadline, null))));
|
|
333
344
|
}
|
|
334
345
|
static renderCellNonEdit(item, col) {
|
|
335
346
|
let val = getAttr(item, col.field, col.lookup);
|
|
@@ -337,26 +348,26 @@ class TreeTable extends react_1.Component {
|
|
|
337
348
|
val = val[0];
|
|
338
349
|
}
|
|
339
350
|
if (col.type === 'boolean') {
|
|
340
|
-
return react_1.default.createElement(material_1.Checkbox, { checked: !!val, disabled: true, inputProps: { 'aria-label': 'checkbox' } });
|
|
351
|
+
return (react_1.default.createElement(material_1.Checkbox, { checked: !!val, disabled: true, inputProps: { 'aria-label': 'checkbox' } }));
|
|
341
352
|
}
|
|
342
353
|
return val;
|
|
343
354
|
}
|
|
344
355
|
renderCell(item, col, level, i) {
|
|
345
356
|
if (this.state.editMode === i && col.editable !== 'never' && col.editable !== false) {
|
|
346
|
-
return react_1.default.createElement(material_1.TableCell, { key: col.field, style: Object.assign(Object.assign(Object.assign({}, styles.cell), (level ? styles.cellSecondary : undefined)), col.cellStyle), component: "th" }, this.renderCellEdit(item, col));
|
|
357
|
+
return (react_1.default.createElement(material_1.TableCell, { key: col.field, style: Object.assign(Object.assign(Object.assign({}, styles.cell), (level ? styles.cellSecondary : undefined)), col.cellStyle), component: "th" }, this.renderCellEdit(item, col)));
|
|
347
358
|
}
|
|
348
|
-
return react_1.default.createElement(material_1.TableCell, { key: col.field, style: Object.assign(Object.assign(Object.assign({}, styles.cell), (level ? styles.cellSecondary : undefined)), col.cellStyle), component: "th" }, TreeTable.renderCellNonEdit(item, col));
|
|
359
|
+
return (react_1.default.createElement(material_1.TableCell, { key: col.field, style: Object.assign(Object.assign(Object.assign({}, styles.cell), (level ? styles.cellSecondary : undefined)), col.cellStyle), component: "th" }, TreeTable.renderCellNonEdit(item, col)));
|
|
349
360
|
}
|
|
350
361
|
static renderCellWithSubField(item, col) {
|
|
351
362
|
const main = getAttr(item, col.field, col.lookup);
|
|
352
363
|
if (col.subField) {
|
|
353
364
|
const sub = getAttr(item, col.subField, col.subLookup);
|
|
354
|
-
return react_1.default.createElement("div", null,
|
|
365
|
+
return (react_1.default.createElement("div", null,
|
|
355
366
|
react_1.default.createElement("div", { style: styles.mainText }, main),
|
|
356
|
-
react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.subText), (col.subStyle || undefined)) }, sub));
|
|
367
|
+
react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.subText), (col.subStyle || undefined)) }, sub)));
|
|
357
368
|
}
|
|
358
|
-
return react_1.default.createElement("div", null,
|
|
359
|
-
react_1.default.createElement("div", { style: styles.mainText }, main));
|
|
369
|
+
return (react_1.default.createElement("div", null,
|
|
370
|
+
react_1.default.createElement("div", { style: styles.mainText }, main)));
|
|
360
371
|
}
|
|
361
372
|
renderLine(item, level) {
|
|
362
373
|
const levelShift = this.props.levelShift === undefined ? 24 : this.props.levelShift;
|
|
@@ -374,8 +385,8 @@ class TreeTable extends react_1.Component {
|
|
|
374
385
|
// try to find children
|
|
375
386
|
const opened = this.state.opened.includes(item.id);
|
|
376
387
|
const children = this.props.data.filter(it => it.parentId === item.id);
|
|
377
|
-
const row = react_1.default.createElement(material_1.TableRow, { key: item.id, className: `table-row-${(item.id || '').toString().replace(/[.$]/g, '_')}`, style: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ((this.state.update && this.state.update.includes(item.id) && styles.glow) || undefined)), styles.row), (level ? styles.rowSecondary : undefined)), (!level && children.length ? styles.rowMainWithChildren : undefined)), (!level && !children.length ? styles.rowMainWithoutChildren : undefined)), (this.state.editMode !== false && this.state.editMode !== i ? styles.rowNoEdit : undefined)), (this.state.deleteMode !== false && this.state.deleteMode !== i ? styles.rowNoEdit : undefined)) },
|
|
378
|
-
react_1.default.createElement(material_1.TableCell, { style: Object.assign(Object.assign(Object.assign({}, styles.cell), styles.cellExpand), (level ? styles.cellSecondary : undefined)) }, children.length ? react_1.default.createElement(material_1.IconButton, { onClick: () => {
|
|
388
|
+
const row = (react_1.default.createElement(material_1.TableRow, { key: item.id, className: `table-row-${(item.id || '').toString().replace(/[.$]/g, '_')}`, style: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ((this.state.update && this.state.update.includes(item.id) && styles.glow) || undefined)), styles.row), (level ? styles.rowSecondary : undefined)), (!level && children.length ? styles.rowMainWithChildren : undefined)), (!level && !children.length ? styles.rowMainWithoutChildren : undefined)), (this.state.editMode !== false && this.state.editMode !== i ? styles.rowNoEdit : undefined)), (this.state.deleteMode !== false && this.state.deleteMode !== i ? styles.rowNoEdit : undefined)) },
|
|
389
|
+
react_1.default.createElement(material_1.TableCell, { style: Object.assign(Object.assign(Object.assign({}, styles.cell), styles.cellExpand), (level ? styles.cellSecondary : undefined)) }, children.length ? (react_1.default.createElement(material_1.IconButton, { onClick: () => {
|
|
379
390
|
const _opened = [...this.state.opened];
|
|
380
391
|
const pos = _opened.indexOf(item.id);
|
|
381
392
|
if (pos === -1) {
|
|
@@ -387,39 +398,31 @@ class TreeTable extends react_1.Component {
|
|
|
387
398
|
}
|
|
388
399
|
(window._localStorage || window.localStorage).setItem(this.props.name || 'iob-table', JSON.stringify(_opened));
|
|
389
400
|
this.setState({ opened: _opened });
|
|
390
|
-
}, size: "small" }, opened ? react_1.default.createElement(icons_material_1.ExpandMore, null) : react_1.default.createElement(icons_material_1.NavigateNext, null)) : null),
|
|
391
|
-
react_1.default.createElement(material_1.TableCell, { scope: "row", style: Object.assign(Object.assign(Object.assign(Object.assign({}, styles.cell), (level ? styles.cellSecondary : undefined)), this.props.columns[0].cellStyle), { paddingLeft: levelShift * level }) }, this.props.columns[0].subField
|
|
392
|
-
TreeTable.renderCellWithSubField(item, this.props.columns[0])
|
|
393
|
-
:
|
|
394
|
-
|
|
395
|
-
this.props.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
:
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
:
|
|
416
|
-
null) : null,
|
|
417
|
-
this.props.onUpdate || this.props.onDelete ? react_1.default.createElement(material_1.TableCell, { style: Object.assign(Object.assign({}, styles.cell), styles.cellButton) }, this.state.editMode === i || this.state.deleteMode === i ?
|
|
418
|
-
react_1.default.createElement(material_1.IconButton, { onClick: () => this.setState({ editMode: false, deleteMode: false }), size: "large" },
|
|
419
|
-
react_1.default.createElement(icons_material_1.Close, null))
|
|
420
|
-
:
|
|
421
|
-
(this.props.onDelete ? react_1.default.createElement(material_1.IconButton, { disabled: this.state.deleteMode !== false, onClick: () => this.setState({ deleteMode: i }), size: "large" },
|
|
422
|
-
react_1.default.createElement(icons_material_1.Delete, null)) : null)) : null);
|
|
401
|
+
}, size: "small" }, opened ? react_1.default.createElement(icons_material_1.ExpandMore, null) : react_1.default.createElement(icons_material_1.NavigateNext, null))) : null),
|
|
402
|
+
react_1.default.createElement(material_1.TableCell, { scope: "row", style: Object.assign(Object.assign(Object.assign(Object.assign({}, styles.cell), (level ? styles.cellSecondary : undefined)), this.props.columns[0].cellStyle), { paddingLeft: levelShift * level }) }, this.props.columns[0].subField
|
|
403
|
+
? TreeTable.renderCellWithSubField(item, this.props.columns[0])
|
|
404
|
+
: getAttr(item, this.props.columns[0].field, this.props.columns[0].lookup)),
|
|
405
|
+
this.props.columns.map((col, ii) => !ii && !col.hidden ? null : this.renderCell(item, col, level, i)),
|
|
406
|
+
this.props.onUpdate ? (react_1.default.createElement(material_1.TableCell, { style: Object.assign(Object.assign({}, styles.cell), styles.cellButton) }, this.state.editMode === i || this.state.deleteMode === i ? (react_1.default.createElement(material_1.IconButton, { disabled: this.state.editMode !== false &&
|
|
407
|
+
(!this.state.editData || !Object.keys(this.state.editData).length), onClick: () => {
|
|
408
|
+
if (this.state.editMode !== false) {
|
|
409
|
+
const newData = JSON.parse(JSON.stringify(item));
|
|
410
|
+
this.state.editData &&
|
|
411
|
+
Object.keys(this.state.editData).forEach(attr => { var _c; return setAttr(newData, attr, (_c = this.state.editData) === null || _c === void 0 ? void 0 : _c[attr]); });
|
|
412
|
+
this.setState({ editMode: false }, () => this.props.onUpdate && this.props.onUpdate(newData, item));
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
this.setState({ deleteMode: false }, () => this.props.onDelete && this.props.onDelete(item));
|
|
416
|
+
}
|
|
417
|
+
}, size: "large" },
|
|
418
|
+
react_1.default.createElement(icons_material_1.Check, null))) : (react_1.default.createElement(material_1.IconButton, { disabled: this.state.editMode !== false, onClick: () => this.setState({ editMode: i, editData: null }), size: "large" },
|
|
419
|
+
react_1.default.createElement(icons_material_1.Edit, null))))) : null,
|
|
420
|
+
this.props.onDelete && !this.props.onUpdate ? (react_1.default.createElement(material_1.TableCell, { style: Object.assign(Object.assign({}, styles.cell), styles.cellButton) }, this.state.deleteMode === i ? (react_1.default.createElement(material_1.IconButton, { disabled: this.state.editMode !== false &&
|
|
421
|
+
(!this.state.editData || !Object.keys(this.state.editData).length), onClick: () => this.setState({ deleteMode: false }, () => this.props.onDelete && this.props.onDelete(item)), size: "large" },
|
|
422
|
+
react_1.default.createElement(icons_material_1.Check, null))) : null)) : null,
|
|
423
|
+
this.props.onUpdate || this.props.onDelete ? (react_1.default.createElement(material_1.TableCell, { style: Object.assign(Object.assign({}, styles.cell), styles.cellButton) }, this.state.editMode === i || this.state.deleteMode === i ? (react_1.default.createElement(material_1.IconButton, { onClick: () => this.setState({ editMode: false, deleteMode: false }), size: "large" },
|
|
424
|
+
react_1.default.createElement(icons_material_1.Close, null))) : this.props.onDelete ? (react_1.default.createElement(material_1.IconButton, { disabled: this.state.deleteMode !== false, onClick: () => this.setState({ deleteMode: i }), size: "large" },
|
|
425
|
+
react_1.default.createElement(icons_material_1.Delete, null))) : null)) : null));
|
|
423
426
|
if (!level && opened) {
|
|
424
427
|
const items = children.map(it => this.renderLine(it, level + 1));
|
|
425
428
|
items.unshift(row);
|
|
@@ -432,21 +435,22 @@ class TreeTable extends react_1.Component {
|
|
|
432
435
|
this.setState({ order: isAsc ? 'desc' : 'asc', orderBy: property });
|
|
433
436
|
}
|
|
434
437
|
renderHead() {
|
|
435
|
-
return react_1.default.createElement(material_1.TableHead, null,
|
|
438
|
+
return (react_1.default.createElement(material_1.TableHead, null,
|
|
436
439
|
react_1.default.createElement(material_1.TableRow, { key: "headerRow" },
|
|
437
440
|
react_1.default.createElement(material_1.TableCell, { component: "th", sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles.cellExpand) }),
|
|
438
|
-
react_1.default.createElement(material_1.TableCell, { component: "th", sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles[`width_${this.props.columns[0].field.replace(/\./g, '_')}`]), style: this.props.columns[0].headerStyle || this.props.columns[0].cellStyle, sortDirection: this.props.noSort
|
|
441
|
+
react_1.default.createElement(material_1.TableCell, { component: "th", sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles[`width_${this.props.columns[0].field.replace(/\./g, '_')}`]), style: this.props.columns[0].headerStyle || this.props.columns[0].cellStyle, sortDirection: this.props.noSort
|
|
442
|
+
? false
|
|
443
|
+
: this.state.orderBy === this.props.columns[0].field
|
|
444
|
+
? this.state.order
|
|
445
|
+
: false }, this.props.noSort ? null : (react_1.default.createElement(material_1.TableSortLabel, { active: this.state.orderBy === this.props.columns[0].field, direction: this.state.orderBy === this.props.columns[0].field ? this.state.order : 'asc', onClick: () => this.handleRequestSort(this.props.columns[0].field) },
|
|
439
446
|
this.props.columns[0].title || this.props.columns[0].field,
|
|
440
|
-
this.state.orderBy === this.props.columns[0].field ?
|
|
441
|
-
|
|
442
|
-
this.props.columns.map((col, i) => (!i && !col.hidden ? null : react_1.default.createElement(material_1.TableCell, { key: col.field, sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles[`width_${col.field.replace(/\./g, '_')}`]), style: col.headerStyle || col.cellStyle, component: "th" }, this.props.noSort ? null : react_1.default.createElement(material_1.TableSortLabel, { active: this.state.orderBy === col.field, direction: this.state.orderBy === col.field ? this.state.order : 'asc', onClick: () => this.handleRequestSort(col.field) },
|
|
447
|
+
this.state.orderBy === this.props.columns[0].field ? (react_1.default.createElement("span", { style: styles.visuallyHidden }, this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending')) : null))),
|
|
448
|
+
this.props.columns.map((col, i) => !i && !col.hidden ? null : (react_1.default.createElement(material_1.TableCell, { key: col.field, sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles[`width_${col.field.replace(/\./g, '_')}`]), style: col.headerStyle || col.cellStyle, component: "th" }, this.props.noSort ? null : (react_1.default.createElement(material_1.TableSortLabel, { active: this.state.orderBy === col.field, direction: this.state.orderBy === col.field ? this.state.order : 'asc', onClick: () => this.handleRequestSort(col.field) },
|
|
443
449
|
col.title || col.field,
|
|
444
|
-
this.state.orderBy === col.field ?
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
this.props.onDelete || this.props.onUpdate ?
|
|
449
|
-
react_1.default.createElement(material_1.TableCell, { component: "th", sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles.cellButton) }) : null));
|
|
450
|
+
this.state.orderBy === col.field ? (react_1.default.createElement("span", { style: styles.visuallyHidden }, this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending')) : null))))),
|
|
451
|
+
this.props.onUpdate ? (react_1.default.createElement(material_1.TableCell, { component: "th", sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles.cellButton) }, !this.props.noAdd ? (react_1.default.createElement(material_1.Fab, { color: "primary", size: "small", disabled: this.state.editMode !== false, onClick: () => this.props.onUpdate && this.props.onUpdate(true) },
|
|
452
|
+
react_1.default.createElement(icons_material_1.Add, null))) : null)) : null,
|
|
453
|
+
this.props.onDelete || this.props.onUpdate ? (react_1.default.createElement(material_1.TableCell, { component: "th", sx: Utils_1.default.getStyle(this.props.theme, styles.cell, styles.cellHeader, styles.cellButton) })) : null)));
|
|
450
454
|
}
|
|
451
455
|
render() {
|
|
452
456
|
const col = this.props.columns.find(_col => _col.field === this.state.orderBy);
|
|
@@ -460,12 +464,12 @@ class TreeTable extends react_1.Component {
|
|
|
460
464
|
this.setState({ update: null });
|
|
461
465
|
}, 500);
|
|
462
466
|
}
|
|
463
|
-
return react_1.default.createElement("div", { style: styles.tableContainer, className: this.props.className },
|
|
467
|
+
return (react_1.default.createElement("div", { style: styles.tableContainer, className: this.props.className },
|
|
464
468
|
react_1.default.createElement(material_1.Table, { style: styles.table, "aria-label": "simple table", size: "small", stickyHeader: true },
|
|
465
469
|
this.renderHead(),
|
|
466
470
|
react_1.default.createElement(material_1.TableBody, null, table.map(it => this.renderLine(it)))),
|
|
467
471
|
this.renderSelectIdDialog(),
|
|
468
|
-
this.renderSelectColorDialog());
|
|
472
|
+
this.renderSelectColorDialog()));
|
|
469
473
|
}
|
|
470
474
|
return null;
|
|
471
475
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Component, type JSX } from 'react';
|
|
2
2
|
interface UploadImageProps {
|
|
3
3
|
maxSize?: number;
|
|
4
4
|
disabled?: boolean;
|
|
@@ -18,6 +18,6 @@ declare class UploadImage extends Component<UploadImageProps, UploadImageState>
|
|
|
18
18
|
private readonly cropperRef;
|
|
19
19
|
constructor(props: UploadImageProps);
|
|
20
20
|
onDrop(acceptedFiles: File[]): void;
|
|
21
|
-
render():
|
|
21
|
+
render(): JSX.Element;
|
|
22
22
|
}
|
|
23
23
|
export default UploadImage;
|