@iobroker/adapter-react-v5 4.6.7 → 4.6.11

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.
Files changed (46) hide show
  1. package/Components/JsonConfigComponent/ChipInput.js +1 -22
  2. package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
  3. package/Components/JsonConfigComponent/ConfigCheckLicense.js +1 -1
  4. package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
  5. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
  6. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigFileSelector.js +15 -29
  8. package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
  9. package/Components/JsonConfigComponent/ConfigFunc.js +5 -9
  10. package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigIP.js +3 -2
  12. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigImageUpload.js +4 -6
  14. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigInstanceSelect.d.ts +1 -1
  16. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +45 -18
  17. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  18. package/Components/JsonConfigComponent/ConfigLanguage.js +5 -9
  19. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  20. package/Components/JsonConfigComponent/ConfigObjectId.js +2 -4
  21. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  22. package/Components/JsonConfigComponent/ConfigPanel.js +13 -15
  23. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  24. package/Components/JsonConfigComponent/ConfigPassword.js +10 -13
  25. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
  26. package/Components/JsonConfigComponent/ConfigPattern.js +3 -4
  27. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  28. package/Components/JsonConfigComponent/ConfigRoom.js +5 -9
  29. package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
  30. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  31. package/Components/JsonConfigComponent/ConfigSendto.js +0 -26
  32. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  33. package/Components/JsonConfigComponent/ConfigStaticText.js +0 -33
  34. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  35. package/Components/JsonConfigComponent/ConfigTable.js +149 -79
  36. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  37. package/Components/JsonConfigComponent/ConfigTabs.js +2 -0
  38. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
  39. package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -1
  40. package/Components/JsonConfigComponent/ConfigUser.js +3 -2
  41. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
  42. package/Components/ObjectBrowser.d.ts +24 -1
  43. package/Components/ObjectBrowser.js +223 -94
  44. package/Components/ObjectBrowser.js.map +1 -1
  45. package/README.md +3 -0
  46. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigUser.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_material","_Icon","_i18n","_Utils","_ConfigGeneric2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","styles","fullWidth","width","icon","height","marginRight","ConfigUser","_ConfigGeneric","_inherits2","_super","_classCallCheck2","_createClass2","key","value","componentDidMount","_this","_get2","props","socket","getUsers","then","users","_users","lang","I18n","getLanguage","schema","forEach","user","_user$common","_user$common2","_id","color","common","name","Utils","getObjectNameFromObj","_user$common3","_user$common4","replace","setState","renderItem","error","disabled","_this2","_this$state$users$val","_this$state$users$val2","ConfigGeneric","getValue","data","attr","createElement","FormControl","variant","className","classes","label","InputLabel","getText","state","TextField","onChange","target","Select","renderValue","val","_this2$state$users$va","_this2$state$users$va2","_this2$state$users$va3","src","style","undefined","backgroundColor","getInvertedColor","themeType","Object","keys","map","id","MenuItem","help","FormHelperText","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","onError","func","_default","exports","withStyles"],"sources":["JsonConfigComponent/ConfigUser.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport {\n InputLabel,\n TextField,\n MenuItem,\n FormHelperText,\n FormControl,\n Select,\n} from '@mui/material';\n\nimport Icon from './wrapper/Components/Icon';\nimport I18n from './wrapper/i18n';\nimport Utils from './wrapper/Components/Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\n fullWidth: {\n width: '100%',\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n },\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang),\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang),\n });\n }\n\n this.setState({ users: _users });\n });\n }\n\n renderItem(error, disabled /* , defaultValue */) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return <FormControl variant=\"standard\" className={this.props.classes.fullWidth}>\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n {!this.state.users ?\n <TextField\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n />\n :\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => <span>\n {this.state.users && this.state.users[val]?.icon ? <Icon src={this.state.users && this.state.users[val]?.icon} className={this.props.classes.icon} /> : null}\n {(this.state.users && this.state.users[val]?.name) || val || ''}\n </span>}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => <MenuItem style={{ color: this.state.users[id].color || undefined, backgroundColor: Utils.getInvertedColor(this.state.users[id].color, this.props.themeType) }} key={id} value={id}>\n {this.state.users[id].icon ? <Icon src={this.state.users[id].icon} className={this.props.classes.icon} /> : null}\n {this.state.users[id].name}\n </MenuItem>)}\n </Select>}\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigUser.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigUser);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigUser.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_material","_Icon","_i18n","_Utils","_ConfigGeneric2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","styles","fullWidth","width","icon","height","marginRight","ConfigUser","_ConfigGeneric","_inherits2","_super","_classCallCheck2","_createClass2","key","value","componentDidMount","_this","_get2","props","socket","getUsers","then","users","_users","lang","I18n","getLanguage","schema","forEach","user","_user$common","_user$common2","_id","color","common","name","Utils","getObjectNameFromObj","_user$common3","_user$common4","replace","setState","renderItem","error","disabled","_this2","_this$state$users$val","_this$state$users$val2","ConfigGeneric","getValue","data","attr","createElement","FormControl","variant","className","classes","state","label","InputLabel","getText","TextField","onChange","target","Select","renderValue","val","_this2$state$users$va","_this2$state$users$va2","_this2$state$users$va3","src","style","undefined","backgroundColor","getInvertedColor","themeType","Object","keys","map","id","MenuItem","help","FormHelperText","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","onError","func","_default","exports","withStyles"],"sources":["JsonConfigComponent/ConfigUser.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport {\n InputLabel,\n TextField,\n MenuItem,\n FormHelperText,\n FormControl,\n Select,\n} from '@mui/material';\n\nimport Icon from './wrapper/Components/Icon';\nimport I18n from './wrapper/i18n';\nimport Utils from './wrapper/Components/Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\n fullWidth: {\n width: '100%',\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n },\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang),\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang),\n });\n }\n\n this.setState({ users: _users });\n });\n }\n\n renderItem(error, disabled /* , defaultValue */) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return <FormControl variant=\"standard\" className={this.props.classes.fullWidth}>\n {this.state.users && this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n {!this.state.users ?\n <TextField\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n label={this.getText(this.props.schema.label)}\n />\n :\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => <span>\n {this.state.users && this.state.users[val]?.icon ? <Icon src={this.state.users && this.state.users[val]?.icon} className={this.props.classes.icon} /> : null}\n {(this.state.users && this.state.users[val]?.name) || val || ''}\n </span>}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => <MenuItem style={{ color: this.state.users[id].color || undefined, backgroundColor: Utils.getInvertedColor(this.state.users[id].color, this.props.themeType) }} key={id} value={id}>\n {this.state.users[id].icon ? <Icon src={this.state.users[id].icon} className={this.props.classes.icon} /> : null}\n {this.state.users[id].name}\n </MenuItem>)}\n </Select>}\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigUser.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigUser);\n"],"mappings":"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"}
@@ -99,6 +99,9 @@ declare class ObjectBrowser extends React.Component<import("./types").ObjectBrow
99
99
  showDescription: boolean;
100
100
  showContextMenu: any;
101
101
  noStatesByExportImport: boolean;
102
+ beautifyJsonExport: boolean;
103
+ excludeSystemRepositoriesFromExport: boolean;
104
+ excludeTranslations: boolean;
102
105
  };
103
106
  edit: {};
104
107
  texts: {
@@ -281,6 +284,16 @@ declare class ObjectBrowser extends React.Component<import("./types").ObjectBrow
281
284
  * @param {ioBroker.Object} obj
282
285
  */
283
286
  onObjectChange: (id: string, obj: ioBroker.Object) => void;
287
+ /**
288
+ * Processes a single element in regard to certain filters, columns for admin and updates object dict
289
+ * @param id The id of the object
290
+ * @param obj The object itself
291
+ * @returns {{filtered: boolean, newState: null}} Returns an object containing the new state (if any) and whether the object was filtered.
292
+ */
293
+ processOnObjectChangeElement(id: any, obj: any): {
294
+ filtered: boolean;
295
+ newState: null;
296
+ };
284
297
  /**
285
298
  * @private
286
299
  * @param {string} id
@@ -381,7 +394,17 @@ declare class ObjectBrowser extends React.Component<import("./types").ObjectBrow
381
394
  */
382
395
  private loadObjects;
383
396
  _getSelectedIdsForExport(): string[];
384
- _exportObjects(isAll: any, noStatesByExportImport: any): Promise<void>;
397
+ /**
398
+ * Exports the selected objects based on the given options and triggers file generation
399
+ * @param options Options to filter/reduce the output
400
+ * @param options.isAll {boolean} Whether all objects should be exported or only the selected ones
401
+ * @param options.beautify {boolean} Whether the output should be beautified
402
+ * @param options.excludeSystemRepositories {boolean} Whether "system.repositories" should be excluded
403
+ * @param options.excludeTranslations {boolean} Whether translations should be reduced to only the english value
404
+ * @returns {Promise<void>}
405
+ * @private
406
+ */
407
+ private _exportObjects;
385
408
  renderExportDialog(): React.JSX.Element;
386
409
  /**
387
410
  * @private
@@ -751,9 +751,73 @@ var styles = function styles(theme) {
751
751
  }
752
752
  };
753
753
  };
754
- function generateFile(filename, obj) {
754
+
755
+ /**
756
+ * Function that walks through all keys of an object or array and applies a function to each key.
757
+ * @returns {unknown} The copied object
758
+ */
759
+ function walkThrough(object, iteratee) {
760
+ if (Array.isArray(object)) {
761
+ var _copiedObject = [];
762
+ for (var index = 0; index < object.length; index++) {
763
+ iteratee(_copiedObject, object[index], index);
764
+ }
765
+ return _copiedObject;
766
+ }
767
+ var copiedObject = {};
768
+ for (var key in object) {
769
+ if (Object.prototype.hasOwnProperty.call(object, key)) {
770
+ iteratee(copiedObject, object[key], key);
771
+ }
772
+ }
773
+ return copiedObject;
774
+ }
775
+
776
+ /**
777
+ * Function to reduce an object primarily by a given list of keys
778
+ * @param obj The object which should be filtered
779
+ * @param filterKeys The keys which should be excluded
780
+ * @param excludeTranslations Whether translations should be reduced to only the english value
781
+ * @returns {unknown} The filtered object
782
+ */
783
+ function filterObject(obj, filterKeys, excludeTranslations) {
784
+ return walkThrough(obj, function (result, value, key) {
785
+ if (value === undefined || value === null) {
786
+ return;
787
+ }
788
+ if (typeof key === 'string' && filterKeys.includes(key)) {
789
+ return;
790
+ }
791
+ // if the key is an object, run it through the inner function - omitFromObject
792
+ var isObject = (0, _typeof2["default"])(value) === 'object';
793
+ if (excludeTranslations && isObject) {
794
+ if (typeof value.en === 'string' && typeof value.de === 'string') {
795
+ result[key] = value.en;
796
+ return;
797
+ }
798
+ }
799
+ result[key] = isObject ? filterObject(value, filterKeys, excludeTranslations) : value;
800
+ });
801
+ }
802
+
803
+ /**
804
+ * Function to generate a json-file for an object and trigger download it
805
+ * @param filename {string} The desired filename
806
+ * @param obj {unknown} The obj which should be downloaded
807
+ * @param options Options to filter/reduce the output
808
+ * @param options.beautify {boolean} Whether the output should be beautified
809
+ * @param options.excludeSystemRepositories {boolean} Whether "system.repositories" should be excluded
810
+ * @param options.excludeTranslations {boolean} Whether translations should be reduced to only the english value
811
+ */
812
+ function generateFile(filename, obj, options) {
755
813
  var el = document.createElement('a');
756
- el.setAttribute('href', "data:application/json;charset=utf-8,".concat(encodeURIComponent(JSON.stringify(obj, null, 2))));
814
+ var filterKeys = [];
815
+ if (options.excludeSystemRepositories) {
816
+ filterKeys.push('system.repositories');
817
+ }
818
+ var filteredObject = filterKeys.length > 0 || options.excludeTranslations ? filterObject(obj, filterKeys, options.excludeTranslations) : obj;
819
+ var data = options.beautify ? JSON.stringify(filteredObject, null, 2) : JSON.stringify(filteredObject);
820
+ el.setAttribute('href', "data:application/json;charset=utf-8,".concat(encodeURIComponent(data)));
757
821
  el.setAttribute('download', filename);
758
822
  el.style.display = 'none';
759
823
  document.body.appendChild(el);
@@ -1891,50 +1955,24 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
1891
1955
  var newState;
1892
1956
  if (Array.isArray(id)) {
1893
1957
  id.forEach(function (event) {
1894
- console.log("> objectChange ".concat(event.id));
1895
- if (event.obj && typeof _this.props.filterFunc === 'function' && !_this.props.filterFunc(event.obj)) {
1958
+ var _this$processOnObject = _this.processOnObjectChangeElement(event.id, event.obj),
1959
+ newInnerState = _this$processOnObject.newInnerState,
1960
+ filtered = _this$processOnObject.filtered;
1961
+ if (filtered) {
1896
1962
  return;
1897
1963
  }
1898
- if (event.id.startsWith('system.adapter.') && event.obj && event.obj.type === 'adapter') {
1899
- var columnsForAdmin = JSON.parse(JSON.stringify(_this.state.columnsForAdmin));
1900
- _this.parseObjectForAdmins(columnsForAdmin, event.obj);
1901
- if (JSON.stringify(_this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {
1902
- newState = {
1903
- columnsForAdmin: columnsForAdmin
1904
- };
1905
- }
1906
- }
1907
- _this.objects = _this.objects || [];
1908
- if (_this.objects[event.id]) {
1909
- if (event.obj) {
1910
- _this.objects[event.id] = event.obj;
1911
- } else {
1912
- delete _this.objects[event.id];
1913
- }
1964
+ if (newInnerState) {
1965
+ newState = newInnerState;
1914
1966
  }
1915
1967
  });
1916
1968
  } else {
1917
- console.log("> objectChange ".concat(id));
1918
- _this.objects = _this.objects || [];
1919
- if (obj && typeof _this.props.filterFunc === 'function' && !_this.props.filterFunc(obj)) {
1969
+ var _this$processOnObject2 = _this.processOnObjectChangeElement(id, obj),
1970
+ newInnerState = _this$processOnObject2.newInnerState,
1971
+ filtered = _this$processOnObject2.filtered;
1972
+ if (filtered) {
1920
1973
  return;
1921
1974
  }
1922
- if (id.startsWith('system.adapter.') && obj && obj.type === 'adapter') {
1923
- var columnsForAdmin = JSON.parse(JSON.stringify(_this.state.columnsForAdmin));
1924
- _this.parseObjectForAdmins(columnsForAdmin, obj);
1925
- if (JSON.stringify(_this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {
1926
- newState = {
1927
- columnsForAdmin: columnsForAdmin
1928
- };
1929
- }
1930
- }
1931
- if (_this.objects[id]) {
1932
- if (obj) {
1933
- _this.objects[id] = obj;
1934
- } else {
1935
- delete _this.objects[id];
1936
- }
1937
- }
1975
+ newState = newInnerState;
1938
1976
  }
1939
1977
  newState && _this.setState(newState);
1940
1978
  if (!_this.objectsUpdateTimer && _this.objects) {
@@ -2091,12 +2129,6 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
2091
2129
  }
2092
2130
  if (obj.val) {
2093
2131
  val = obj.val;
2094
- try {
2095
- val = JSON.parse(val);
2096
- } catch (e) {
2097
- console.log("Cannot parse value: ".concat(e));
2098
- val = null;
2099
- }
2100
2132
  delete obj.val;
2101
2133
  }
2102
2134
  if (obj.ack !== undefined) {
@@ -2226,12 +2258,6 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
2226
2258
  }
2227
2259
  if (json.val) {
2228
2260
  val = json.val;
2229
- try {
2230
- val = JSON.parse(val);
2231
- } catch (err) {
2232
- console.log("Cannot parse value: ".concat(err));
2233
- val = null;
2234
- }
2235
2261
  delete json.val;
2236
2262
  }
2237
2263
  if (json.ack !== undefined) {
@@ -2701,7 +2727,10 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
2701
2727
  linesEnabled: (window._localStorage || window.localStorage).getItem("".concat(props.dialogName || 'App', ".lines")) === 'true',
2702
2728
  showDescription: (window._localStorage || window.localStorage).getItem("".concat(props.dialogName || 'App', ".desc")) !== 'false',
2703
2729
  showContextMenu: null,
2704
- noStatesByExportImport: false
2730
+ noStatesByExportImport: false,
2731
+ beautifyJsonExport: true,
2732
+ excludeSystemRepositoriesFromExport: true,
2733
+ excludeTranslations: false
2705
2734
  };
2706
2735
  _this.edit = {};
2707
2736
  _this.texts = {
@@ -3502,13 +3531,51 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
3502
3531
  return columnsForAdmin;
3503
3532
  }
3504
3533
  }, {
3505
- key: "subscribe",
3534
+ key: "processOnObjectChangeElement",
3506
3535
  value:
3536
+ /**
3537
+ * Processes a single element in regard to certain filters, columns for admin and updates object dict
3538
+ * @param id The id of the object
3539
+ * @param obj The object itself
3540
+ * @returns {{filtered: boolean, newState: null}} Returns an object containing the new state (if any) and whether the object was filtered.
3541
+ */
3542
+ function processOnObjectChangeElement(id, obj) {
3543
+ console.log("> objectChange ".concat(id));
3544
+ var newState = null;
3545
+ if (obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(obj)) {
3546
+ return {
3547
+ newState: newState,
3548
+ filtered: true
3549
+ };
3550
+ }
3551
+ if (id.startsWith('system.adapter.') && obj && obj.type === 'adapter') {
3552
+ var columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));
3553
+ this.parseObjectForAdmins(columnsForAdmin, obj);
3554
+ if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {
3555
+ newState = {
3556
+ columnsForAdmin: columnsForAdmin
3557
+ };
3558
+ }
3559
+ }
3560
+ this.objects = this.objects || [];
3561
+ if (obj) {
3562
+ this.objects[id] = obj;
3563
+ } else if (this.objects[id]) {
3564
+ delete this.objects[id];
3565
+ }
3566
+ return {
3567
+ newState: newState,
3568
+ filtered: false
3569
+ };
3570
+ }
3571
+
3507
3572
  /**
3508
3573
  * @private
3509
3574
  * @param {string} id
3510
3575
  */
3511
- function subscribe(id) {
3576
+ }, {
3577
+ key: "subscribe",
3578
+ value: function subscribe(id) {
3512
3579
  if (!this.subscribes.includes(id)) {
3513
3580
  this.subscribes.push(id);
3514
3581
  console.log("+ subscribe ".concat(id));
@@ -3990,52 +4057,66 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
3990
4057
  }
3991
4058
  return [];
3992
4059
  }
4060
+
4061
+ /**
4062
+ * Exports the selected objects based on the given options and triggers file generation
4063
+ * @param options Options to filter/reduce the output
4064
+ * @param options.isAll {boolean} Whether all objects should be exported or only the selected ones
4065
+ * @param options.beautify {boolean} Whether the output should be beautified
4066
+ * @param options.excludeSystemRepositories {boolean} Whether "system.repositories" should be excluded
4067
+ * @param options.excludeTranslations {boolean} Whether translations should be reduced to only the english value
4068
+ * @returns {Promise<void>}
4069
+ * @private
4070
+ */
3993
4071
  }, {
3994
4072
  key: "_exportObjects",
3995
4073
  value: function () {
3996
- var _exportObjects2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(isAll, noStatesByExportImport) {
3997
- var result, id, ids, i, _result$key, key, state, enums;
4074
+ var _exportObjects2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(options) {
4075
+ var result, id, ids, _iterator2, _step2, _result$key, key, state, enums;
3998
4076
  return _regenerator["default"].wrap(function _callee5$(_context5) {
3999
4077
  while (1) switch (_context5.prev = _context5.next) {
4000
4078
  case 0:
4001
- if (!isAll) {
4002
- _context5.next = 4;
4079
+ if (!options.isAll) {
4080
+ _context5.next = 3;
4003
4081
  break;
4004
4082
  }
4005
- generateFile('allObjects.json', this.objects);
4006
- _context5.next = 25;
4007
- break;
4008
- case 4:
4009
- if (!(this.state.selected.length || this.state.selectedNonObject)) {
4010
- _context5.next = 24;
4083
+ generateFile('allObjects.json', this.objects, options);
4084
+ return _context5.abrupt("return");
4085
+ case 3:
4086
+ if (this.state.selected.length || this.state.selectedNonObject) {
4087
+ _context5.next = 6;
4011
4088
  break;
4012
4089
  }
4090
+ window.alert(this.props.t('ra_Save of objects-tree is not possible'));
4091
+ return _context5.abrupt("return");
4092
+ case 6:
4013
4093
  result = {};
4014
4094
  id = this.state.selected[0] || this.state.selectedNonObject;
4015
4095
  ids = this._getSelectedIdsForExport();
4016
- i = 0;
4017
- case 9:
4018
- if (!(i < ids.length)) {
4019
- _context5.next = 21;
4096
+ _iterator2 = _createForOfIteratorHelper(ids);
4097
+ _context5.prev = 10;
4098
+ _iterator2.s();
4099
+ case 12:
4100
+ if ((_step2 = _iterator2.n()).done) {
4101
+ _context5.next = 23;
4020
4102
  break;
4021
4103
  }
4022
- key = ids[i];
4104
+ key = _step2.value;
4023
4105
  result[key] = JSON.parse(JSON.stringify(this.objects[key]));
4024
-
4025
4106
  // read states values
4026
- if (!(((_result$key = result[key]) === null || _result$key === void 0 ? void 0 : _result$key.type) === 'state' && !noStatesByExportImport)) {
4027
- _context5.next = 17;
4107
+ if (!(((_result$key = result[key]) === null || _result$key === void 0 ? void 0 : _result$key.type) === 'state' && !options.noStatesByExportImport)) {
4108
+ _context5.next = 20;
4028
4109
  break;
4029
4110
  }
4030
- _context5.next = 15;
4111
+ _context5.next = 18;
4031
4112
  return this.props.socket.getState(key);
4032
- case 15:
4113
+ case 18:
4033
4114
  state = _context5.sent;
4034
4115
  if (state) {
4035
4116
  result[key].val = state.val;
4036
4117
  result[key].ack = state.ack;
4037
4118
  }
4038
- case 17:
4119
+ case 20:
4039
4120
  // add enum information
4040
4121
  if (result[key].common) {
4041
4122
  enums = this.getEnumsForId(key);
@@ -4043,23 +4124,29 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4043
4124
  result[key].common.enums = enums;
4044
4125
  }
4045
4126
  }
4046
- case 18:
4047
- i++;
4048
- _context5.next = 9;
4049
- break;
4050
4127
  case 21:
4051
- generateFile("".concat(id, ".json"), result, noStatesByExportImport);
4052
- _context5.next = 25;
4128
+ _context5.next = 12;
4129
+ break;
4130
+ case 23:
4131
+ _context5.next = 28;
4053
4132
  break;
4054
- case 24:
4055
- window.alert(this.props.t('ra_Save of objects-tree is not possible'));
4056
4133
  case 25:
4134
+ _context5.prev = 25;
4135
+ _context5.t0 = _context5["catch"](10);
4136
+ _iterator2.e(_context5.t0);
4137
+ case 28:
4138
+ _context5.prev = 28;
4139
+ _iterator2.f();
4140
+ return _context5.finish(28);
4141
+ case 31:
4142
+ generateFile("".concat(id, ".json"), result, options);
4143
+ case 32:
4057
4144
  case "end":
4058
4145
  return _context5.stop();
4059
4146
  }
4060
- }, _callee5, this);
4147
+ }, _callee5, this, [[10, 25, 28, 31]]);
4061
4148
  }));
4062
- function _exportObjects(_x5, _x6) {
4149
+ function _exportObjects(_x5) {
4063
4150
  return _exportObjects2.apply(this, arguments);
4064
4151
  }
4065
4152
  return _exportObjects;
@@ -4073,7 +4160,7 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4073
4160
  }
4074
4161
  return /*#__PURE__*/_react["default"].createElement(_material.Dialog, {
4075
4162
  open: !0
4076
- }, /*#__PURE__*/_react["default"].createElement(_material.DialogTitle, null, this.props.t('Select type of export')), /*#__PURE__*/_react["default"].createElement(_material.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_material.DialogContentText, null, this.props.t('You can export all objects or just the selected branch.'), /*#__PURE__*/_react["default"].createElement("br", null), this.props.t('Selected %s object(s)', this.state.showExportDialog), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_material.FormControlLabel, {
4163
+ }, /*#__PURE__*/_react["default"].createElement(_material.DialogTitle, null, this.props.t('ra_Select type of export')), /*#__PURE__*/_react["default"].createElement(_material.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_material.DialogContentText, null, this.props.t('ra_You can export all objects or just the selected branch.'), /*#__PURE__*/_react["default"].createElement("br", null), this.props.t('ra_Selected %s object(s)', this.state.showExportDialog), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_material.FormControlLabel, {
4077
4164
  control: /*#__PURE__*/_react["default"].createElement(_material.Checkbox, {
4078
4165
  checked: this.state.noStatesByExportImport,
4079
4166
  onChange: function onChange(e) {
@@ -4083,6 +4170,36 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4083
4170
  }
4084
4171
  }),
4085
4172
  label: this.props.t('ra_Do not export values of states')
4173
+ }), /*#__PURE__*/_react["default"].createElement("br", null), this.props.t('These options can reduce the size of the export file:'), /*#__PURE__*/_react["default"].createElement(_material.FormControlLabel, {
4174
+ control: /*#__PURE__*/_react["default"].createElement(_material.Checkbox, {
4175
+ checked: this.state.beautifyJsonExport,
4176
+ onChange: function onChange(e) {
4177
+ return _this24.setState({
4178
+ beautifyJsonExport: e.target.checked
4179
+ });
4180
+ }
4181
+ }),
4182
+ label: this.props.t('Beautify JSON output')
4183
+ }), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_material.FormControlLabel, {
4184
+ control: /*#__PURE__*/_react["default"].createElement(_material.Checkbox, {
4185
+ checked: this.state.excludeSystemRepositoriesFromExport,
4186
+ onChange: function onChange(e) {
4187
+ return _this24.setState({
4188
+ excludeSystemRepositoriesFromExport: e.target.checked
4189
+ });
4190
+ }
4191
+ }),
4192
+ label: this.props.t('Exclude system repositories from export JSON')
4193
+ }), /*#__PURE__*/_react["default"].createElement(_material.FormControlLabel, {
4194
+ control: /*#__PURE__*/_react["default"].createElement(_material.Checkbox, {
4195
+ checked: this.state.excludeTranslations,
4196
+ onChange: function onChange(e) {
4197
+ return _this24.setState({
4198
+ excludeTranslations: e.target.checked
4199
+ });
4200
+ }
4201
+ }),
4202
+ label: this.props.t('Exclude translations (except english) from export JSON')
4086
4203
  }))), /*#__PURE__*/_react["default"].createElement(_material.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_material.Button, {
4087
4204
  color: "grey",
4088
4205
  variant: "outlined",
@@ -4090,7 +4207,13 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4090
4207
  return _this24.setState({
4091
4208
  showExportDialog: false
4092
4209
  }, function () {
4093
- return _this24._exportObjects(true, _this24.state.noStatesByExportImport);
4210
+ return _this24._exportObjects({
4211
+ isAll: true,
4212
+ noStatesByExportImport: _this24.state.noStatesByExportImport,
4213
+ beautify: _this24.state.beautifyJsonExport,
4214
+ excludeSystemRepositories: _this24.state.excludeSystemRepositoriesFromExport,
4215
+ excludeTranslations: _this24.state.excludeTranslations
4216
+ });
4094
4217
  });
4095
4218
  }
4096
4219
  }, this.props.t('ra_All objects'), ' ', "(", Object.keys(this.objects).length, ")"), /*#__PURE__*/_react["default"].createElement(_material.Button, {
@@ -4101,7 +4224,13 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
4101
4224
  return _this24.setState({
4102
4225
  showExportDialog: false
4103
4226
  }, function () {
4104
- return _this24._exportObjects(false, _this24.state.noStatesByExportImport);
4227
+ return _this24._exportObjects({
4228
+ isAll: false,
4229
+ noStatesByExportImport: _this24.state.noStatesByExportImport,
4230
+ beautify: _this24.state.beautifyJsonExport,
4231
+ excludeSystemRepositories: _this24.state.excludeSystemRepositoriesFromExport,
4232
+ excludeTranslations: _this24.state.excludeTranslations
4233
+ });
4105
4234
  });
4106
4235
  }
4107
4236
  }, this.props.t('ra_Only selected'), ' ', "(", this.state.showExportDialog, ")"), /*#__PURE__*/_react["default"].createElement(_material.Button, {
@@ -5839,20 +5968,20 @@ var ObjectBrowser = /*#__PURE__*/function (_Component) {
5839
5968
  value: function getItemFromRoot(root, id) {
5840
5969
  var idArr = id.split('.');
5841
5970
  var currId = '';
5842
- var _iterator2 = _createForOfIteratorHelper(idArr),
5843
- _step2;
5971
+ var _iterator3 = _createForOfIteratorHelper(idArr),
5972
+ _step3;
5844
5973
  try {
5845
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5846
- var idEntry = _step2.value;
5974
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5975
+ var idEntry = _step3.value;
5847
5976
  currId = currId ? "".concat(currId, ".").concat(idEntry) : idEntry;
5848
5977
  root = root.children.find(function (item) {
5849
5978
  return item.data.id === currId;
5850
5979
  });
5851
5980
  }
5852
5981
  } catch (err) {
5853
- _iterator2.e(err);
5982
+ _iterator3.e(err);
5854
5983
  } finally {
5855
- _iterator2.f();
5984
+ _iterator3.f();
5856
5985
  }
5857
5986
  return root;
5858
5987
  }