@iobroker/adapter-react-v5 2.1.3 → 2.1.6
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/ColorPicker.js.map +1 -1
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.css +1 -1
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.css +1 -1
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/TreeTable.js +2 -7
- package/Components/TreeTable.js.map +1 -1
- package/Components/Utils.js.map +1 -1
- package/Components/loader.css +1 -1
- package/Connection.js +33 -0
- package/Connection.js.map +1 -1
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.js.map +1 -1
- package/README.md +2 -1
- package/i18n.js +2 -2
- package/i18n.js.map +1 -1
- package/index.css +1 -1
- package/package.json +6 -4
- package/gulpfile.js +0 -113
package/Dialogs/Error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Error.js"],"names":["styles","theme","titleBackground","titleColor","DialogError","props","onClose","handleOk","classes","root","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","oneOfType","element","icon","object","_export"],"mappings":";;;;;;;;;AAOA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACrBC,IAAAA,eAAe,EAAE,EADI;AAIrBC,IAAAA,UAAU,EAAE;AAJS,GAAL;AAAA,CAApB;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC,W;;;;;;;;;;;;;WACF,oBAAW;AACP,WAAKC,KAAL,CAAWC,OAAX,IAAsB,KAAKD,KAAL,CAAWC,OAAX,EAAtB;AACH;;;WAED,kBAAS;AAAA;;AACL,0BAAO,gCAAC,kBAAD;AACH,QAAA,IAAI,EAAE,IADH;AAEH,QAAA,QAAQ,EAAC,IAFN;AAGH,QAAA,SAAS,EAAE,IAHR;AAIH,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACC,QAAL,EAAN;AAAA,SAJN;AAKH,2BAAgB,oBALb;AAMH,4BAAiB;AANd,sBAQH,gCAAC,uBAAD;AAAa,QAAA,SAAS,EAAE,KAAKF,KAAL,CAAWG,OAAX,CAAmBN,eAA3C;AACa,QAAA,OAAO,EAAE;AAACO,UAAAA,IAAI,EAAE,KAAKJ,KAAL,CAAWG,OAAX,CAAmBL;AAA1B,SADtB;AAEa,QAAA,EAAE,EAAC;AAFhB,SAEsC,KAAKE,KAAL,CAAWK,KAAX,IAAoBC,iBAAKC,CAAL,CAAO,UAAP,CAF1D,CARG,eAWH,gCAAC,yBAAD,qBACI,gCAAC,6BAAD;AAAmB,QAAA,EAAE,EAAC;AAAtB,SACK,KAAKP,KAAL,CAAWQ,IAAX,IAAmBF,iBAAKC,CAAL,CAAO,mBAAP,CADxB,CADJ,CAXG,eAgBH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAC,WAAhB;AAA4B,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACL,QAAL,EAAN;AAAA,SAArC;AAA4D,QAAA,KAAK,EAAC,SAAlE;AAA4E,QAAA,SAAS,MAArF;AAAsF,QAAA,SAAS,eAAE,gCAAC,iBAAD;AAAjG,SAAiHI,iBAAKC,CAAL,CAAO,OAAP,CAAjH,CADJ,CAhBG,CAAP;AAoBH;;;;EA1BqBE,kBAAMC,S;;AA6BhCX,WAAW,CAACY,SAAZ,GAAwB;AACpBV,EAAAA,OAAO,EAAEW,sBAAUC,IAAV,CAAeC,UADJ;AAEpBT,EAAAA,KAAK,EAAEO,sBAAUG,MAFG;AAGpBP,EAAAA,IAAI,EAAEI,sBAAUI,SAAV,CAAoB,CACtBJ,sBAAUG,MADY,EAEtBH,sBAAUK,OAFY,CAApB,CAHc;AAOpBC,EAAAA,IAAI,EAAEN,sBAAUO;AAPI,CAAxB;AAUA;;AACA,IAAMC,OAAO,GAAG,4BAAWzB,MAAX,EAAmBI,WAAnB,CAAhB;;eACeqB,O","sourcesContent":["/**\n * Copyright 2018-
|
|
1
|
+
{"version":3,"sources":["Error.js"],"names":["styles","theme","titleBackground","titleColor","DialogError","props","onClose","handleOk","classes","root","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","oneOfType","element","icon","object","_export"],"mappings":";;;;;;;;;AAOA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACrBC,IAAAA,eAAe,EAAE,EADI;AAIrBC,IAAAA,UAAU,EAAE;AAJS,GAAL;AAAA,CAApB;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC,W;;;;;;;;;;;;;WACF,oBAAW;AACP,WAAKC,KAAL,CAAWC,OAAX,IAAsB,KAAKD,KAAL,CAAWC,OAAX,EAAtB;AACH;;;WAED,kBAAS;AAAA;;AACL,0BAAO,gCAAC,kBAAD;AACH,QAAA,IAAI,EAAE,IADH;AAEH,QAAA,QAAQ,EAAC,IAFN;AAGH,QAAA,SAAS,EAAE,IAHR;AAIH,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACC,QAAL,EAAN;AAAA,SAJN;AAKH,2BAAgB,oBALb;AAMH,4BAAiB;AANd,sBAQH,gCAAC,uBAAD;AAAa,QAAA,SAAS,EAAE,KAAKF,KAAL,CAAWG,OAAX,CAAmBN,eAA3C;AACa,QAAA,OAAO,EAAE;AAACO,UAAAA,IAAI,EAAE,KAAKJ,KAAL,CAAWG,OAAX,CAAmBL;AAA1B,SADtB;AAEa,QAAA,EAAE,EAAC;AAFhB,SAEsC,KAAKE,KAAL,CAAWK,KAAX,IAAoBC,iBAAKC,CAAL,CAAO,UAAP,CAF1D,CARG,eAWH,gCAAC,yBAAD,qBACI,gCAAC,6BAAD;AAAmB,QAAA,EAAE,EAAC;AAAtB,SACK,KAAKP,KAAL,CAAWQ,IAAX,IAAmBF,iBAAKC,CAAL,CAAO,mBAAP,CADxB,CADJ,CAXG,eAgBH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAC,WAAhB;AAA4B,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACL,QAAL,EAAN;AAAA,SAArC;AAA4D,QAAA,KAAK,EAAC,SAAlE;AAA4E,QAAA,SAAS,MAArF;AAAsF,QAAA,SAAS,eAAE,gCAAC,iBAAD;AAAjG,SAAiHI,iBAAKC,CAAL,CAAO,OAAP,CAAjH,CADJ,CAhBG,CAAP;AAoBH;;;;EA1BqBE,kBAAMC,S;;AA6BhCX,WAAW,CAACY,SAAZ,GAAwB;AACpBV,EAAAA,OAAO,EAAEW,sBAAUC,IAAV,CAAeC,UADJ;AAEpBT,EAAAA,KAAK,EAAEO,sBAAUG,MAFG;AAGpBP,EAAAA,IAAI,EAAEI,sBAAUI,SAAV,CAAoB,CACtBJ,sBAAUG,MADY,EAEtBH,sBAAUK,OAFY,CAApB,CAHc;AAOpBC,EAAAA,IAAI,EAAEN,sBAAUO;AAPI,CAAxB;AAUA;;AACA,IAAMC,OAAO,GAAG,4BAAWzB,MAAX,EAAmBI,WAAnB,CAAhB;;eACeqB,O","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 Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconCheck from '@mui/icons-material/Check';\n\nimport I18n from '../i18n';\n\nconst styles = theme => ({\n titleBackground: {\n\n },\n titleColor: {\n\n }\n});\n\n/**\n * @typedef {object} DialogErrorProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [title] The dialog title; default: Error (translated)\n * @property {string | JSX.Element} text The dialog text.\n * @property {() => void} [onClose] Close handler.\n * @property {{titleBackground: string; titleColor: string}} classes The styling class names.\n *\n * @extends {React.Component<DialogErrorProps>}\n */\nclass DialogError extends React.Component {\n handleOk() {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return <Dialog\n open={true}\n maxWidth=\"sm\"\n fullWidth={true}\n onClose={() => this.handleOk()}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n <DialogTitle className={this.props.classes.titleBackground}\n classes={{root: this.props.classes.titleColor}}\n id=\"alert-dialog-title\">{this.props.title || I18n.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.props.text || I18n.t('ra_Unknown error!')}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" autoFocus startIcon={<IconCheck />}>{I18n.t('ra_Ok')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogError.propTypes = {\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string,\n text: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n icon: PropTypes.object\n};\n\n/** @type {typeof DialogError} */\nconst _export = withStyles(styles)(DialogError);\nexport default _export;\n"],"file":"Error.js"}
|
package/Dialogs/Message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Message.js"],"names":["DialogMessage","props","onClose","handleOk","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","icon","object"],"mappings":";;;;;;;;;AAQA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,a;;;;;;;;;;;;;WAEF,oBAAW;AACP,WAAKC,KAAL,CAAWC,OAAX,IAAsB,KAAKD,KAAL,CAAWC,OAAX,EAAtB;AACH;;;WAED,kBAAS;AAAA;;AACL,0BAAO,gCAAC,kBAAD;AACH,QAAA,IAAI,EAAE,IADH;AAEH,QAAA,QAAQ,EAAC,IAFN;AAGH,QAAA,SAAS,EAAE,IAHR;AAIH,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACC,QAAL,EAAN;AAAA,SAJN;AAKH,2BAAgB,sBALb;AAMH,4BAAiB;AANd,sBAQH,gCAAC,uBAAD;AAAa,QAAA,EAAE,EAAC;AAAhB,SAAwC,KAAKF,KAAL,CAAWG,KAAX,IAAoBC,iBAAKC,CAAL,CAAO,YAAP,CAA5D,CARG,eASH,gCAAC,yBAAD,qBACI,gCAAC,6BAAD;AAAmB,QAAA,EAAE,EAAC;AAAtB,SACK,KAAKL,KAAL,CAAWM,IADhB,CADJ,CATG,eAcH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAC,WAAhB;AAA4B,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACJ,QAAL,EAAN;AAAA,SAArC;AAA4D,QAAA,KAAK,EAAC,SAAlE;AAA4E,QAAA,SAAS,MAArF;AAAsF,QAAA,SAAS,eAAE,gCAAC,iBAAD;AAAjG,SAAiHE,iBAAKC,CAAL,CAAO,UAAP,CAAjH,CADJ,CAdG,CAAP;AAkBH;;;;EAzBuBE,kBAAMC,S;;AA4BlCT,aAAa,CAACU,SAAd,GAA0B;AACtBR,EAAAA,OAAO,EAAES,sBAAUC,IAAV,CAAeC,UADF;AAEtBT,EAAAA,KAAK,EAAEO,sBAAUG,MAFK;AAGtBP,EAAAA,IAAI,EAAEI,sBAAUG,MAHM;AAItBC,EAAAA,IAAI,EAAEJ,sBAAUK;AAJM,CAA1B;eAOehB,a","sourcesContent":["/**\n * Copyright 2018-
|
|
1
|
+
{"version":3,"sources":["Message.js"],"names":["DialogMessage","props","onClose","handleOk","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","icon","object"],"mappings":";;;;;;;;;AAQA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,a;;;;;;;;;;;;;WAEF,oBAAW;AACP,WAAKC,KAAL,CAAWC,OAAX,IAAsB,KAAKD,KAAL,CAAWC,OAAX,EAAtB;AACH;;;WAED,kBAAS;AAAA;;AACL,0BAAO,gCAAC,kBAAD;AACH,QAAA,IAAI,EAAE,IADH;AAEH,QAAA,QAAQ,EAAC,IAFN;AAGH,QAAA,SAAS,EAAE,IAHR;AAIH,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACC,QAAL,EAAN;AAAA,SAJN;AAKH,2BAAgB,sBALb;AAMH,4BAAiB;AANd,sBAQH,gCAAC,uBAAD;AAAa,QAAA,EAAE,EAAC;AAAhB,SAAwC,KAAKF,KAAL,CAAWG,KAAX,IAAoBC,iBAAKC,CAAL,CAAO,YAAP,CAA5D,CARG,eASH,gCAAC,yBAAD,qBACI,gCAAC,6BAAD;AAAmB,QAAA,EAAE,EAAC;AAAtB,SACK,KAAKL,KAAL,CAAWM,IADhB,CADJ,CATG,eAcH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAC,WAAhB;AAA4B,QAAA,OAAO,EAAE;AAAA,iBAAM,KAAI,CAACJ,QAAL,EAAN;AAAA,SAArC;AAA4D,QAAA,KAAK,EAAC,SAAlE;AAA4E,QAAA,SAAS,MAArF;AAAsF,QAAA,SAAS,eAAE,gCAAC,iBAAD;AAAjG,SAAiHE,iBAAKC,CAAL,CAAO,UAAP,CAAjH,CADJ,CAdG,CAAP;AAkBH;;;;EAzBuBE,kBAAMC,S;;AA4BlCT,aAAa,CAACU,SAAd,GAA0B;AACtBR,EAAAA,OAAO,EAAES,sBAAUC,IAAV,CAAeC,UADF;AAEtBT,EAAAA,KAAK,EAAEO,sBAAUG,MAFK;AAGtBP,EAAAA,IAAI,EAAEI,sBAAUG,MAHM;AAItBC,EAAAA,IAAI,EAAEJ,sBAAUK;AAJM,CAA1B;eAOehB,a","sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\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';\n\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport I18n from '../i18n';\n\n/**\n * @typedef {object} DialogMessageProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [title] The dialog title; default: Message (translated)\n * @property {string} text The dialog text.\n * @property {() => void} [onClose] Close handler.\n *\n * @extends {React.Component<DialogMessageProps>}\n */\nclass DialogMessage extends React.Component {\n\n handleOk() {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return <Dialog\n open={true}\n maxWidth=\"sm\"\n fullWidth={true}\n onClose={() => this.handleOk()}\n aria-labelledby=\"message-dialog-title\"\n aria-describedby=\"message-dialog-description\"\n >\n <DialogTitle id=\"message-dialog-title\">{this.props.title || I18n.t('ra_Message')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"message-dialog-description\">\n {this.props.text}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" autoFocus startIcon={<IconClose />}>{I18n.t('ra_Close')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogMessage.propTypes = {\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.object\n};\n\nexport default DialogMessage;\n"],"file":"Message.js"}
|
package/Dialogs/SelectID.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SelectID.js"],"names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","SelectID","props","dialogName","filters","window","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"],"mappings":"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","sourcesContent":["/**\n * Copyright 2018-2021 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} SelectIDProps\n * @property {string} [key] The key to identify this component.\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<SelectIDProps>}\n */\nclass SelectID extends React.Component {\n /**\n * @param {SelectIDProps} 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.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.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\nSelectID.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 unneccessary 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 SelectID} */\nconst _export = withStyles(styles)(SelectID);\nexport default _export;\n"],"file":"SelectID.js"}
|
|
1
|
+
{"version":3,"sources":["SelectID.js"],"names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","SelectID","props","dialogName","filters","window","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"],"mappings":"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","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} SelectIDProps\n * @property {string} [key] The key to identify this component.\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<SelectIDProps>}\n */\nclass SelectID extends React.Component {\n /**\n * @param {SelectIDProps} 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.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.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\nSelectID.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 unneccessary 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 SelectID} */\nconst _export = withStyles(styles)(SelectID);\nexport default _export;\n"],"file":"SelectID.js"}
|
package/README.md
CHANGED
|
@@ -639,7 +639,8 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
|
|
|
639
639
|
-->
|
|
640
640
|
|
|
641
641
|
## Changelog
|
|
642
|
-
### 2.1.
|
|
642
|
+
### 2.1.6 (2022-03-28)
|
|
643
|
+
* (bluefox) Added `log` method to connection
|
|
643
644
|
* (bluefox) Corrected translations
|
|
644
645
|
|
|
645
646
|
### 2.1.1 (2022-03-27)
|
package/i18n.js
CHANGED
|
@@ -14,7 +14,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
14
14
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
15
|
|
|
16
16
|
/***
|
|
17
|
-
* Copyright 2018-
|
|
17
|
+
* Copyright 2018-2022 bluefox <dogafox@gmail.com>
|
|
18
18
|
*
|
|
19
19
|
* MIT License
|
|
20
20
|
*
|
|
@@ -120,7 +120,7 @@ var I18n = /*#__PURE__*/function () {
|
|
|
120
120
|
/**
|
|
121
121
|
* Translate the given string to the selected language.
|
|
122
122
|
* @param {string} word The (key) word to look up the string.
|
|
123
|
-
* @param {string[]} args Optional arguments which will replace the first (second, third, ...)
|
|
123
|
+
* @param {string[]} args Optional arguments which will replace the first (second, third, ...) occurrences of %s
|
|
124
124
|
*/
|
|
125
125
|
|
|
126
126
|
}, {
|
package/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["i18n.js"],"names":["I18n","lang","words","Object","keys","forEach","word","translations","console","warn","e","error","translation","w","log","args","arg","replace","window","sysLang"],"mappings":"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","sourcesContent":["/***\n * Copyright 2018-
|
|
1
|
+
{"version":3,"sources":["i18n.js"],"names":["I18n","lang","words","Object","keys","forEach","word","translations","console","warn","e","error","translation","w","log","args","arg","replace","window","sysLang"],"mappings":"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","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 /**\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 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 } 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 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/*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;"],"file":"i18n.js"}
|
package/index.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/adapter-react-v5",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.6",
|
|
4
4
|
"description": "React classes to develop admin interfaces for ioBroker with react.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "bluefox",
|
|
@@ -26,17 +26,19 @@
|
|
|
26
26
|
"homepage": "https://github.com/ioBroker/adapter-react-v5#readme",
|
|
27
27
|
"devDependencies": {},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@sentry/browser": "^6.19.1",
|
|
30
|
-
"@sentry/integrations": "^6.19.1",
|
|
31
29
|
"@emotion/react": "^11.8.2",
|
|
32
30
|
"@emotion/styled": "^11.8.1",
|
|
33
31
|
"@mui/icons-material": "^5.5.1",
|
|
34
32
|
"@mui/material": "^5.5.2",
|
|
35
33
|
"@mui/styles": "^5.5.1",
|
|
34
|
+
"@sentry/browser": "^6.19.1",
|
|
35
|
+
"@sentry/integrations": "^6.19.1",
|
|
36
|
+
"@types/iobroker": "^4.0.1",
|
|
36
37
|
"react-color": "^2.19.3",
|
|
37
38
|
"react-colorful": "^5.5.1",
|
|
38
39
|
"react-dropzone": "^12.0.4",
|
|
40
|
+
"react-icons": "^4.3.1",
|
|
39
41
|
"react-inlinesvg": "^2.3.0",
|
|
40
|
-
"
|
|
42
|
+
"react-text-mask": "^5.4.3"
|
|
41
43
|
}
|
|
42
44
|
}
|
package/gulpfile.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2018-2109 bluefox <dogafox@gmail.com>
|
|
3
|
-
*
|
|
4
|
-
* MIT License
|
|
5
|
-
*
|
|
6
|
-
**/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
const gulp = require('gulp');
|
|
10
|
-
const fs = require('fs');
|
|
11
|
-
|
|
12
|
-
const dir = __dirname + '/src/i18n/';
|
|
13
|
-
gulp.task('i18n=>flat', done => {
|
|
14
|
-
const files = fs.readdirSync(dir).filter(name => name.match(/\.json$/));
|
|
15
|
-
const index = {};
|
|
16
|
-
const langs = [];
|
|
17
|
-
files.forEach(file => {
|
|
18
|
-
const lang = file.replace(/\.json$/, '');
|
|
19
|
-
langs.push(lang);
|
|
20
|
-
const text = require(dir + file);
|
|
21
|
-
|
|
22
|
-
for (const id in text) {
|
|
23
|
-
if (text.hasOwnProperty(id)) {
|
|
24
|
-
index[id] = index[id] || {};
|
|
25
|
-
index[id][lang] = text[id] === undefined ? id : text[id];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
const keys = Object.keys(index);
|
|
31
|
-
keys.sort();
|
|
32
|
-
|
|
33
|
-
if (!fs.existsSync(dir + '/flat/')) {
|
|
34
|
-
fs.mkdirSync(dir + '/flat/');
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
langs.forEach(lang => {
|
|
38
|
-
const words = [];
|
|
39
|
-
keys.forEach(key => {
|
|
40
|
-
words.push(index[key][lang]);
|
|
41
|
-
});
|
|
42
|
-
fs.writeFileSync(dir + '/flat/' + lang + '.txt', words.join('\n'));
|
|
43
|
-
});
|
|
44
|
-
fs.writeFileSync(dir + '/flat/index.txt', keys.join('\n'));
|
|
45
|
-
done();
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
gulp.task('flat=>i18n', done => {
|
|
49
|
-
if (!fs.existsSync(dir + '/flat/')) {
|
|
50
|
-
console.error(dir + '/flat/ directory not found');
|
|
51
|
-
return done();
|
|
52
|
-
}
|
|
53
|
-
const keys = fs.readFileSync(dir + '/flat/index.txt').toString().split(/[\r\n]/);
|
|
54
|
-
while (!keys[keys.length - 1]) keys.splice(keys.length - 1, 1);
|
|
55
|
-
|
|
56
|
-
const files = fs.readdirSync(dir + '/flat/').filter(name => name.match(/\.txt$/) && name !== 'index.txt');
|
|
57
|
-
const index = {};
|
|
58
|
-
const langs = [];
|
|
59
|
-
files.forEach(file => {
|
|
60
|
-
const lang = file.replace(/\.txt$/, '');
|
|
61
|
-
langs.push(lang);
|
|
62
|
-
const lines = fs.readFileSync(dir + '/flat/' + file).toString().split(/[\r\n]/);
|
|
63
|
-
lines.forEach((word, i) => {
|
|
64
|
-
index[keys[i]] = index[keys[i]] || {};
|
|
65
|
-
index[keys[i]][lang] = word;
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
langs.forEach(lang => {
|
|
69
|
-
const words = {};
|
|
70
|
-
keys.forEach((key, line) => {
|
|
71
|
-
if (!index[key]) {
|
|
72
|
-
console.log('No word ' + key + ', ' + lang + ', line: ' + line);
|
|
73
|
-
}
|
|
74
|
-
words[key] = index[key][lang];
|
|
75
|
-
});
|
|
76
|
-
fs.writeFileSync(dir + '/' + lang + '.json', JSON.stringify(words, null, 2));
|
|
77
|
-
});
|
|
78
|
-
done();
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
gulp.task('build', done => {
|
|
82
|
-
const { fork } = require('child_process');
|
|
83
|
-
|
|
84
|
-
const child = fork(__dirname + '/node_modules/react-scripts/scripts/build.js', {
|
|
85
|
-
cwd: __dirname
|
|
86
|
-
});
|
|
87
|
-
child.on('exit', (code, signal) => done());
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
gulp.task('clean', () => {
|
|
91
|
-
const del = require('del');
|
|
92
|
-
return del(['admin/*/**', 'admin/*', '!admin/actions.js', '!admin/alexalogo.png', '!admin/blockly.js', '!admin/iot.png']);
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
gulp.task('copy', () => {
|
|
96
|
-
return gulp.src(['build/*/**', 'build/*'])
|
|
97
|
-
.pipe(gulp.dest('../admin/'));
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
gulp.task('renameIndex', gulp.series('copy', done => {
|
|
101
|
-
if (fs.existsSync(__dirname + '/../admin/index.html')) {
|
|
102
|
-
fs.renameSync(__dirname + '/admin/index.html', __dirname + '/admin/index_m.html')
|
|
103
|
-
}
|
|
104
|
-
done();
|
|
105
|
-
}));
|
|
106
|
-
|
|
107
|
-
gulp.task('renameTab', gulp.series('copy', done => {
|
|
108
|
-
if (fs.existsSync(__dirname + '/../admin/index.html')) {
|
|
109
|
-
fs.renameSync(__dirname + '/../admin/index.html', __dirname + '/../admin/tab.html')
|
|
110
|
-
}
|
|
111
|
-
done();
|
|
112
|
-
}));
|
|
113
|
-
|