@iobroker/adapter-react-v5 3.1.19 → 3.1.22

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.
@@ -1 +1 @@
1
- {"version":3,"file":"SelectID.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","DialogSelectID","props","dialogName","filters","window","_localStorage","localStorage","getItem","JSON","parse","e","selected","filter","id","state","name","isMobile","innerWidth","onClose","onOk","multiSelect","title","length","I18n","t","classes","paper","Utils","clsx","root","foldersFirst","imagePrefix","prefix","showExpertButton","undefined","columns","types","lang","getLanguage","socket","notEditable","themeName","themeType","customFilter","filterConfig","setItem","stringify","isDouble","setState","handleOk","filterFunc","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","object","bool","func","isRequired","isFloatComma","dateFormat","oneOfType","array","statesOnly","_export","withStyles"],"sources":["SelectID.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} DialogSelectIDProps\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component<DialogSelectIDProps>}\n */\nclass DialogSelectID extends React.Component {\n /**\n * @param {DialogSelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }</span>\n ];\n } else {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n I18n.t('%s items', this.state.selected.length)\n }</span>\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return <Dialog\n onClose={() => {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n <DialogTitle id=\"selectid-dialog-title\" classes={{root: this.props.classes.titleRoot}}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <ObjectBrowser\n foldersFirst={ this.props.foldersFirst }\n imagePrefix={ this.props.imagePrefix || this.props.prefix } // prefix is for back compatibility\n defaultFilters={ this.filters }\n dialogName={this.dialogName}\n showExpertButton={ this.props.showExpertButton !== undefined ? this.props.showExpertButton : true }\n style={ {width: '100%', height: '100%'} }\n columns={ this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'] }\n types={ this.props.types || ['state'] }\n t={ I18n.t }\n lang={ this.props.lang || I18n.getLanguage() }\n socket={ this.props.socket }\n selected={ this.state.selected }\n multiSelect={ this.props.multiSelect }\n notEditable={ this.props.notEditable === undefined ? true : this.props.notEditable }\n name={ this.state.name }\n themeName={ this.props.themeName }\n themeType={ this.props.themeType }\n customFilter={ this.props.customFilter }\n onFilterChanged={ filterConfig => {\n this.filters = filterConfig;\n (window._localStorage || window.localStorage).setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={ (selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n } }\n filterFunc={this.props.filterFunc}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected.length } color=\"primary\">{ this.props.ok || I18n.t('ra_Ok') }</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={ () => this.handleCancel() } startIcon={<IconCancel />}>{ this.props.cancel || I18n.t('ra_Cancel') }</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n notEditable: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof DialogSelectID} */\nconst _export = withStyles(styles)(DialogSelectID);\nexport default _export;\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectID.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","DialogSelectID","props","dialogName","filters","window","_localStorage","localStorage","getItem","JSON","parse","e","selected","filter","id","state","name","isMobile","innerWidth","onClose","onOk","multiSelect","title","length","I18n","t","classes","paper","Utils","clsx","root","foldersFirst","imagePrefix","prefix","showExpertButton","undefined","expertMode","columns","types","lang","getLanguage","socket","notEditable","themeName","themeType","customFilter","filterConfig","setItem","stringify","isDouble","setState","handleOk","filterFunc","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","object","bool","func","isRequired","isFloatComma","dateFormat","oneOfType","array","statesOnly","_export","withStyles"],"sources":["SelectID.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} DialogSelectIDProps\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component<DialogSelectIDProps>}\n */\nclass DialogSelectID extends React.Component {\n /**\n * @param {DialogSelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }</span>\n ];\n } else {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n I18n.t('%s items', this.state.selected.length)\n }</span>\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return <Dialog\n onClose={() => {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n <DialogTitle id=\"selectid-dialog-title\" classes={{root: this.props.classes.titleRoot}}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <ObjectBrowser\n foldersFirst={ this.props.foldersFirst }\n imagePrefix={ this.props.imagePrefix || this.props.prefix } // prefix is for back compatibility\n defaultFilters={ this.filters }\n dialogName={this.dialogName}\n showExpertButton={ this.props.showExpertButton !== undefined ? this.props.showExpertButton : true }\n expertMode={ this.props.expertMode }\n style={ {width: '100%', height: '100%'} }\n columns={ this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'] }\n types={ this.props.types || ['state'] }\n t={ I18n.t }\n lang={ this.props.lang || I18n.getLanguage() }\n socket={ this.props.socket }\n selected={ this.state.selected }\n multiSelect={ this.props.multiSelect }\n notEditable={ this.props.notEditable === undefined ? true : this.props.notEditable }\n name={ this.state.name }\n themeName={ this.props.themeName }\n themeType={ this.props.themeType }\n customFilter={ this.props.customFilter }\n onFilterChanged={ filterConfig => {\n this.filters = filterConfig;\n (window._localStorage || window.localStorage).setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={(selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n }}\n filterFunc={this.props.filterFunc}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected.length } color=\"primary\">{ this.props.ok || I18n.t('ra_Ok') }</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={ () => this.handleCancel() } startIcon={<IconCancel />}>{ this.props.cancel || I18n.t('ra_Cancel') }</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n notEditable: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool, // force expert mode\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof DialogSelectID} */\nconst _export = withStyles(styles)(DialogSelectID);\nexport default _export;\n"],"mappings":"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"}
package/README.md CHANGED
@@ -642,6 +642,12 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
642
642
  -->
643
643
 
644
644
  ## Changelog
645
+ ### 3.1.22 (2022-07-22)
646
+ * (bluefox) Added i18n tools for development
647
+
648
+ ### 3.1.20 (2022-07-14)
649
+ * (bluefox) Allowed to show select dialog with the expert mode enabled
650
+
645
651
  ### 3.1.19 (2022-07-08)
646
652
  * (bluefox) Allowed to extend translations for all languages together
647
653
 
package/i18n.js CHANGED
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -36,6 +38,11 @@ var I18n = /*#__PURE__*/function () {
36
38
  * @type {{ [lang in ioBroker.Languages]?: Record<string, string>; }}
37
39
  */
38
40
 
41
+ /**
42
+ * List of unknown translations during development.
43
+ * @type {string[]}
44
+ */
45
+
39
46
  /**
40
47
  * The currently displayed language.
41
48
  * @type {ioBroker.Languages}
@@ -141,7 +148,10 @@ var I18n = /*#__PURE__*/function () {
141
148
  if (w) {
142
149
  word = w;
143
150
  } else {
144
- I18n._disableWarning && console.log("Translate: ".concat(word));
151
+ if (!I18n.unknownTranslations.includes(word)) {
152
+ I18n.unknownTranslations.push(word);
153
+ !I18n._disableWarning && console.log("Translate: ".concat(word));
154
+ }
145
155
  }
146
156
  }
147
157
 
@@ -156,6 +166,42 @@ var I18n = /*#__PURE__*/function () {
156
166
 
157
167
  return word;
158
168
  }
169
+ /**
170
+ * Show non-translated words
171
+ * Required during development
172
+ * @param {string | RegExp} filter filter words
173
+ */
174
+
175
+ }, {
176
+ key: "i18nShow",
177
+ value: function i18nShow(filter) {
178
+ /**
179
+ * List words with their translations.
180
+ * @type {Record<string, string>}
181
+ */
182
+ var result = {};
183
+
184
+ if (!filter) {
185
+ I18n.unknownTranslations.forEach(function (word) {
186
+ result[word] = word;
187
+ });
188
+ console.log(JSON.stringify(result, null, 2));
189
+ } else if (typeof filter === 'string') {
190
+ I18n.unknownTranslations.forEach(function (word) {
191
+ if (word.startsWith(filter)) {
192
+ result[word] = word.replace(filter, '');
193
+ }
194
+ });
195
+ console.log(JSON.stringify(result, null, 2));
196
+ } else if ((0, _typeof2["default"])(filter) === 'object') {
197
+ I18n.unknownTranslations.forEach(function (word) {
198
+ if (filter.test(word)) {
199
+ result[word] = word;
200
+ }
201
+ });
202
+ console.log(JSON.stringify(result, null, 2));
203
+ }
204
+ }
159
205
  /**
160
206
  * Disable warning about non-translated words
161
207
  * Required during development
@@ -169,7 +215,15 @@ var I18n = /*#__PURE__*/function () {
169
215
  }
170
216
  }]);
171
217
  return I18n;
172
- }();
218
+ }(); // install global handlers
219
+
220
+
221
+ (0, _defineProperty2["default"])(I18n, "translations", {});
222
+ (0, _defineProperty2["default"])(I18n, "unknownTranslations", []);
223
+ (0, _defineProperty2["default"])(I18n, "lang", window.sysLang || 'en');
224
+ (0, _defineProperty2["default"])(I18n, "_disableWarning", false);
225
+ window.i18nShow = I18n.i18nShow;
226
+ window.i18nDisableWarning = I18n.disableWarning;
173
227
  /*I18n.translations = {
174
228
  'en': require('./i18n/en'),
175
229
  'ru': require('./i18n/ru'),
@@ -178,10 +232,6 @@ var I18n = /*#__PURE__*/function () {
178
232
  I18n.fallbacks = true;
179
233
  I18n.t = function () {};*/
180
234
 
181
-
182
- (0, _defineProperty2["default"])(I18n, "translations", {});
183
- (0, _defineProperty2["default"])(I18n, "lang", window.sysLang || 'en');
184
- (0, _defineProperty2["default"])(I18n, "_disableWarning", false);
185
235
  var _default = I18n;
186
236
  exports["default"] = _default;
187
237
  //# sourceMappingURL=i18n.js.map
package/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","names":["I18n","lang","words","en","de","ru","Object","keys","forEach","translations","assign","word","console","warn","e","error","translation","w","_disableWarning","log","args","arg","replace","disable","window","sysLang"],"sources":["i18n.js"],"sourcesContent":["/***\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n ***/\n\n /**\n * Translation string management.\n */\nclass I18n {\n /**\n * List of all languages with their translations.\n * @type {{ [lang in ioBroker.Languages]?: Record<string, string>; }}\n */\n static translations = {};\n\n /**\n * The currently displayed language.\n * @type {ioBroker.Languages}\n */\n static lang = window.sysLang || 'en';\n\n static _disableWarning = false;\n\n /**\n * Set the language to display.\n * @param {ioBroker.Languages} lang\n */\n static setLanguage(lang) {\n if (lang) {\n I18n.lang = lang;\n }\n }\n\n /**\n * Add translations\n * User can provide two types of structures:\n * - {\"word1\": \"translated word1\", \"word2\": \"translated word2\"}, but in this case the lang must be provided\n * - {\"word1\": {\"en\": \"translated en word1\", \"de\": \"translated de word1\"}, \"word2\": {\"en\": \"translated en word2\", \"de\": \"translated de word2\"}}, but no lang must be provided\n * @param {object} words additional words for specific language\n * @param {ioBroker.Languages} lang\n */\n static extendTranslations(words, lang) {\n try {\n if (!lang) {\n if (words.en && words.de && words.ru) {\n Object.keys(words).forEach(lang => {\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.assign(I18n.translations[lang], words[lang]);\n });\n } else {\n Object.keys(words).forEach(word => {\n Object.keys(words[word]).forEach(lang => {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word][lang];\n } else if (I18n.translations[lang][word] !== words[word][lang]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word][lang]}`);\n }\n });\n });\n }\n } else {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.keys(words)\n .forEach(word => {\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word];\n } else if (I18n.translations[lang][word] !== words[word]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word]}`);\n }\n });\n }\n } catch (e) {\n console.error(`Cannot apply translations: ${e}`);\n }\n }\n\n /**\n * Sets all translations (in all languages).\n * @param {{ [lang in ioBroker.Languages]?: Record<string, string>; }} translations\n */\n static setTranslations(translations) {\n if (translations) {\n I18n.translations = translations;\n }\n }\n\n /**\n * Get the currently chosen language.\n * @returns {ioBroker.Languages} The current language.\n */\n static getLanguage() {\n return I18n.lang;\n }\n\n /**\n * Translate the given string to the selected language.\n * @param {string} word The (key) word to look up the string.\n * @param {string[]} args Optional arguments which will replace the first (second, third, ...) occurrences of %s\n */\n static t(word, ...args) {\n const translation = I18n.translations[I18n.lang];\n if (translation) {\n const w = translation[word];\n if (w) {\n word = w;\n } else {\n I18n._disableWarning && console.log(`Translate: ${word}`);\n }\n }\n for (const arg of args) {\n word = word.replace('%s', arg);\n }\n return word;\n }\n\n /**\n * Disable warning about non-translated words\n * Required during development\n * @param {boolean} disable Do the warning should be disabled\n */\n static disableWarning(disable) {\n I18n._disableWarning = !!disable;\n }\n}\n\n/*I18n.translations = {\n 'en': require('./i18n/en'),\n 'ru': require('./i18n/ru'),\n 'de': require('./i18n/de'),\n};\nI18n.fallbacks = true;\nI18n.t = function () {};*/\n\nexport default I18n;"],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","names":["I18n","lang","words","en","de","ru","Object","keys","forEach","translations","assign","word","console","warn","e","error","translation","w","unknownTranslations","includes","push","_disableWarning","log","args","arg","replace","filter","result","JSON","stringify","startsWith","test","disable","window","sysLang","i18nShow","i18nDisableWarning","disableWarning"],"sources":["i18n.js"],"sourcesContent":["/***\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n ***/\n\n /**\n * Translation string management.\n */\nclass I18n {\n /**\n * List of all languages with their translations.\n * @type {{ [lang in ioBroker.Languages]?: Record<string, string>; }}\n */\n static translations = {};\n\n /**\n * List of unknown translations during development.\n * @type {string[]}\n */\n static unknownTranslations = [];\n\n /**\n * The currently displayed language.\n * @type {ioBroker.Languages}\n */\n static lang = window.sysLang || 'en';\n\n static _disableWarning = false;\n\n /**\n * Set the language to display.\n * @param {ioBroker.Languages} lang\n */\n static setLanguage(lang) {\n if (lang) {\n I18n.lang = lang;\n }\n }\n\n /**\n * Add translations\n * User can provide two types of structures:\n * - {\"word1\": \"translated word1\", \"word2\": \"translated word2\"}, but in this case the lang must be provided\n * - {\"word1\": {\"en\": \"translated en word1\", \"de\": \"translated de word1\"}, \"word2\": {\"en\": \"translated en word2\", \"de\": \"translated de word2\"}}, but no lang must be provided\n * @param {object} words additional words for specific language\n * @param {ioBroker.Languages} lang\n */\n static extendTranslations(words, lang) {\n try {\n if (!lang) {\n if (words.en && words.de && words.ru) {\n Object.keys(words).forEach(lang => {\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.assign(I18n.translations[lang], words[lang]);\n });\n } else {\n Object.keys(words).forEach(word => {\n Object.keys(words[word]).forEach(lang => {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word][lang];\n } else if (I18n.translations[lang][word] !== words[word][lang]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word][lang]}`);\n }\n });\n });\n }\n } else {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.keys(words)\n .forEach(word => {\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word];\n } else if (I18n.translations[lang][word] !== words[word]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word]}`);\n }\n });\n }\n } catch (e) {\n console.error(`Cannot apply translations: ${e}`);\n }\n }\n\n /**\n * Sets all translations (in all languages).\n * @param {{ [lang in ioBroker.Languages]?: Record<string, string>; }} translations\n */\n static setTranslations(translations) {\n if (translations) {\n I18n.translations = translations;\n }\n }\n\n /**\n * Get the currently chosen language.\n * @returns {ioBroker.Languages} The current language.\n */\n static getLanguage() {\n return I18n.lang;\n }\n\n /**\n * Translate the given string to the selected language.\n * @param {string} word The (key) word to look up the string.\n * @param {string[]} args Optional arguments which will replace the first (second, third, ...) occurrences of %s\n */\n static t(word, ...args) {\n const translation = I18n.translations[I18n.lang];\n if (translation) {\n const w = translation[word];\n if (w) {\n word = w;\n } else {\n if (!I18n.unknownTranslations.includes(word)) {\n I18n.unknownTranslations.push(word);\n !I18n._disableWarning && console.log(`Translate: ${word}`);\n }\n }\n }\n for (const arg of args) {\n word = word.replace('%s', arg);\n }\n return word;\n }\n\n /**\n * Show non-translated words\n * Required during development\n * @param {string | RegExp} filter filter words\n */\n static i18nShow(filter) {\n /**\n * List words with their translations.\n * @type {Record<string, string>}\n */\n const result = {};\n if (!filter) {\n I18n.unknownTranslations.forEach(word => {\n result[word] = word;\n });\n console.log(JSON.stringify(result, null, 2));\n } else if (typeof filter === 'string') {\n I18n.unknownTranslations.forEach(word => {\n if (word.startsWith(filter)) {\n result[word] = word.replace(filter, '');\n }\n });\n console.log(JSON.stringify(result, null, 2));\n } else if (typeof filter === 'object') {\n I18n.unknownTranslations.forEach(word => {\n if (filter.test(word)) {\n result[word] = word;\n }\n });\n console.log(JSON.stringify(result, null, 2));\n }\n }\n\n /**\n * Disable warning about non-translated words\n * Required during development\n * @param {boolean} disable Do the warning should be disabled\n */\n static disableWarning(disable) {\n I18n._disableWarning = !!disable;\n }\n}\n\n// install global handlers\nwindow.i18nShow = I18n.i18nShow;\nwindow.i18nDisableWarning = I18n.disableWarning;\n\n\n/*I18n.translations = {\n 'en': require('./i18n/en'),\n 'ru': require('./i18n/ru'),\n 'de': require('./i18n/de'),\n};\nI18n.fallbacks = true;\nI18n.t = function () {};*/\n\nexport default I18n;"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "3.1.19",
3
+ "version": "3.1.22",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -27,20 +27,20 @@
27
27
  "homepage": "https://github.com/ioBroker/adapter-react-v5#readme",
28
28
  "devDependencies": {},
29
29
  "dependencies": {
30
- "@emotion/react": "^11.9.0",
31
- "@emotion/styled": "^11.8.1",
32
- "@mui/icons-material": "^5.8.0",
33
- "@mui/material": "^5.8.1",
34
- "@mui/styles": "^5.8.0",
35
- "@mui/x-date-pickers": "^5.0.0-alpha.4",
30
+ "@emotion/react": "^11.9.3",
31
+ "@emotion/styled": "^11.9.3",
32
+ "@mui/icons-material": "^5.8.4",
33
+ "@mui/material": "^5.9.0",
34
+ "@mui/styles": "^5.9.0",
35
+ "@mui/x-date-pickers": "^5.0.0-beta.0",
36
36
  "react-cropper": "^2.1.8",
37
- "@sentry/browser": "^6.19.7",
38
- "@sentry/integrations": "^6.19.7",
39
- "@types/iobroker": "^4.0.3",
37
+ "@sentry/browser": "^7.6.0",
38
+ "@sentry/integrations": "^7.6.0",
39
+ "@types/iobroker": "^4.0.4",
40
40
  "react-color": "^2.19.3",
41
41
  "react-colorful": "^5.5.1",
42
- "react-dropzone": "^14.2.1",
43
- "react-icons": "^4.3.1",
42
+ "react-dropzone": "^14.2.2",
43
+ "react-icons": "^4.4.0",
44
44
  "react-inlinesvg": "^3.0.0",
45
45
  "react-text-mask": "^5.4.3"
46
46
  }