@iobroker/adapter-react-v5 0.0.2

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 (264) hide show
  1. package/Components/404.js +155 -0
  2. package/Components/404.js.map +1 -0
  3. package/Components/ColorPicker.js +313 -0
  4. package/Components/ColorPicker.js.map +1 -0
  5. package/Components/ComplexCron.js +606 -0
  6. package/Components/ComplexCron.js.map +1 -0
  7. package/Components/FileBrowser.js +2147 -0
  8. package/Components/FileBrowser.js.map +1 -0
  9. package/Components/FileViewer.js +245 -0
  10. package/Components/FileViewer.js.map +1 -0
  11. package/Components/Icon.js +234 -0
  12. package/Components/Icon.js.map +1 -0
  13. package/Components/IconPicker.js +188 -0
  14. package/Components/IconPicker.js.map +1 -0
  15. package/Components/IconSelector.js +337 -0
  16. package/Components/IconSelector.js.map +1 -0
  17. package/Components/Image.js +215 -0
  18. package/Components/Image.js.map +1 -0
  19. package/Components/Loader.js +134 -0
  20. package/Components/Loader.js.map +1 -0
  21. package/Components/Loaders/PT.css +109 -0
  22. package/Components/Loaders/PT.js +104 -0
  23. package/Components/Loaders/PT.js.map +1 -0
  24. package/Components/Loaders/Vendor.css +13 -0
  25. package/Components/Loaders/Vendor.js +108 -0
  26. package/Components/Loaders/Vendor.js.map +1 -0
  27. package/Components/Logo.js +230 -0
  28. package/Components/Logo.js.map +1 -0
  29. package/Components/MDUtils.js +141 -0
  30. package/Components/MDUtils.js.map +1 -0
  31. package/Components/ObjectBrowser.js +6119 -0
  32. package/Components/ObjectBrowser.js.map +1 -0
  33. package/Components/Router.js +152 -0
  34. package/Components/Router.js.map +1 -0
  35. package/Components/SaveCloseButtons.js +177 -0
  36. package/Components/SaveCloseButtons.js.map +1 -0
  37. package/Components/Schedule.js +1891 -0
  38. package/Components/Schedule.js.map +1 -0
  39. package/Components/SelectWithIcon.js +235 -0
  40. package/Components/SelectWithIcon.js.map +1 -0
  41. package/Components/SimpleCron/cron2text.js +563 -0
  42. package/Components/SimpleCron/cron2text.js.map +1 -0
  43. package/Components/SimpleCron/cronText.js +60 -0
  44. package/Components/SimpleCron/cronText.js.map +1 -0
  45. package/Components/SimpleCron/index.js +861 -0
  46. package/Components/SimpleCron/index.js.map +1 -0
  47. package/Components/SimpleCron/jquery.cron.locale.js +322 -0
  48. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -0
  49. package/Components/TabContainer.js +108 -0
  50. package/Components/TabContainer.js.map +1 -0
  51. package/Components/TabContent.js +96 -0
  52. package/Components/TabContent.js.map +1 -0
  53. package/Components/TabHeader.js +72 -0
  54. package/Components/TabHeader.js.map +1 -0
  55. package/Components/TextWithIcon.js +148 -0
  56. package/Components/TextWithIcon.js.map +1 -0
  57. package/Components/ToggleThemeMenu.js +49 -0
  58. package/Components/ToggleThemeMenu.js.map +1 -0
  59. package/Components/TreeTable.js +1030 -0
  60. package/Components/TreeTable.js.map +1 -0
  61. package/Components/Utils.js +1763 -0
  62. package/Components/Utils.js.map +1 -0
  63. package/Components/copy-to-clipboard.js +183 -0
  64. package/Components/copy-to-clipboard.js.map +1 -0
  65. package/Components/loader.css +222 -0
  66. package/Components/types.d.ts +121 -0
  67. package/Connection.js +3334 -0
  68. package/Connection.js.map +1 -0
  69. package/Dialogs/ComplexCron.js +193 -0
  70. package/Dialogs/ComplexCron.js.map +1 -0
  71. package/Dialogs/Confirm.js +211 -0
  72. package/Dialogs/Confirm.js.map +1 -0
  73. package/Dialogs/Cron.js +254 -0
  74. package/Dialogs/Cron.js.map +1 -0
  75. package/Dialogs/Error.js +137 -0
  76. package/Dialogs/Error.js.map +1 -0
  77. package/Dialogs/Message.js +118 -0
  78. package/Dialogs/Message.js.map +1 -0
  79. package/Dialogs/SelectID.js +313 -0
  80. package/Dialogs/SelectID.js.map +1 -0
  81. package/Dialogs/SimpleCron.js +177 -0
  82. package/Dialogs/SimpleCron.js.map +1 -0
  83. package/Dialogs/TextInput.js +194 -0
  84. package/Dialogs/TextInput.js.map +1 -0
  85. package/GenericApp.js +1022 -0
  86. package/GenericApp.js.map +1 -0
  87. package/LICENSE +22 -0
  88. package/Prompt.js +21 -0
  89. package/Prompt.js.map +1 -0
  90. package/README.md +645 -0
  91. package/Theme.js +422 -0
  92. package/Theme.js.map +1 -0
  93. package/assets/devices/Alarm Systems.svg +19 -0
  94. package/assets/devices/Amplifier.svg +22 -0
  95. package/assets/devices/Awnings.svg +5 -0
  96. package/assets/devices/Battery Status.svg +5 -0
  97. package/assets/devices/Ceiling Spotlights.svg +16 -0
  98. package/assets/devices/Chandelier.svg +7 -0
  99. package/assets/devices/Climate.svg +12 -0
  100. package/assets/devices/Coffee Makers.svg +6 -0
  101. package/assets/devices/Cold Water.svg +31 -0
  102. package/assets/devices/Computer.svg +21 -0
  103. package/assets/devices/Consumption.svg +8 -0
  104. package/assets/devices/Curtains.svg +43 -0
  105. package/assets/devices/Dishwashers.svg +12 -0
  106. package/assets/devices/Doors.svg +6 -0
  107. package/assets/devices/Doorstep.svg +35 -0
  108. package/assets/devices/Dryer.svg +14 -0
  109. package/assets/devices/Fan.svg +20 -0
  110. package/assets/devices/Floor Lamps.svg +5 -0
  111. package/assets/devices/Garage Doors.svg +9 -0
  112. package/assets/devices/Gates.svg +32 -0
  113. package/assets/devices/Hairdryer.svg +23 -0
  114. package/assets/devices/Handle.svg +6 -0
  115. package/assets/devices/Hanging Lamps.svg +9 -0
  116. package/assets/devices/Heater.svg +44 -0
  117. package/assets/devices/Hoods.svg +12 -0
  118. package/assets/devices/Hot Water.svg +10 -0
  119. package/assets/devices/Humidity.svg +41 -0
  120. package/assets/devices/Iron.svg +5 -0
  121. package/assets/devices/Irrigation.svg +42 -0
  122. package/assets/devices/Led Strip.svg +31 -0
  123. package/assets/devices/Light.svg +30 -0
  124. package/assets/devices/Lightings.svg +46 -0
  125. package/assets/devices/Lock.svg +19 -0
  126. package/assets/devices/Louvre.svg +7 -0
  127. package/assets/devices/Mowing Machine.svg +9 -0
  128. package/assets/devices/Music.svg +13 -0
  129. package/assets/devices/Outdoor Blinds.svg +7 -0
  130. package/assets/devices/People.svg +19 -0
  131. package/assets/devices/Pool.svg +8 -0
  132. package/assets/devices/Power Consumption.svg +13 -0
  133. package/assets/devices/Printer.svg +10 -0
  134. package/assets/devices/Pump.svg +10 -0
  135. package/assets/devices/Receiver.svg +19 -0
  136. package/assets/devices/Sconces.svg +10 -0
  137. package/assets/devices/Security.svg +34 -0
  138. package/assets/devices/Shading.svg +5 -0
  139. package/assets/devices/Shutters.svg +11 -0
  140. package/assets/devices/SmokeDetector.svg +13 -0
  141. package/assets/devices/Sockets.svg +13 -0
  142. package/assets/devices/Speaker.svg +35 -0
  143. package/assets/devices/Stove.svg +12 -0
  144. package/assets/devices/Table Lamps.svg +12 -0
  145. package/assets/devices/Temperature Sensors.svg +28 -0
  146. package/assets/devices/Tv.svg +8 -0
  147. package/assets/devices/Vacuum Cleaner.svg +16 -0
  148. package/assets/devices/Ventilation.svg +12 -0
  149. package/assets/devices/Washing Machines.svg +16 -0
  150. package/assets/devices/Water Consumption.svg +6 -0
  151. package/assets/devices/Water Heater.svg +8 -0
  152. package/assets/devices/Water.svg +40 -0
  153. package/assets/devices/Weather.svg +28 -0
  154. package/assets/devices/Window.svg +8 -0
  155. package/assets/devices/list.json +994 -0
  156. package/assets/devices/names.txt +63 -0
  157. package/assets/devices/parseNames.js +34 -0
  158. package/assets/lamp_ceiling.svg +9 -0
  159. package/assets/lamp_table.svg +8 -0
  160. package/assets/no_icon.svg +9 -0
  161. package/assets/rooms/Anteroom.svg +53 -0
  162. package/assets/rooms/Attic.svg +21 -0
  163. package/assets/rooms/Balcony.svg +13 -0
  164. package/assets/rooms/Barn.svg +6 -0
  165. package/assets/rooms/Basement.svg +5 -0
  166. package/assets/rooms/Bathroom.svg +38 -0
  167. package/assets/rooms/Bedroom.svg +5 -0
  168. package/assets/rooms/Boiler Room.svg +13 -0
  169. package/assets/rooms/Carport.svg +17 -0
  170. package/assets/rooms/Cellar.svg +89 -0
  171. package/assets/rooms/Chamber.svg +9 -0
  172. package/assets/rooms/Corridor.svg +53 -0
  173. package/assets/rooms/Dining Area.svg +37 -0
  174. package/assets/rooms/Dining Room.svg +37 -0
  175. package/assets/rooms/Dining.svg +37 -0
  176. package/assets/rooms/Dressing Room.svg +5 -0
  177. package/assets/rooms/Driveway.svg +15 -0
  178. package/assets/rooms/Entrance.svg +44 -0
  179. package/assets/rooms/Equipment Room.svg +15 -0
  180. package/assets/rooms/Front Yard.svg +64 -0
  181. package/assets/rooms/Gallery.svg +14 -0
  182. package/assets/rooms/Garage.svg +20 -0
  183. package/assets/rooms/Garden.svg +13 -0
  184. package/assets/rooms/Ground Floor.svg +95 -0
  185. package/assets/rooms/Guest Bathroom.svg +33 -0
  186. package/assets/rooms/Guest Room.svg +5 -0
  187. package/assets/rooms/Gym.svg +5 -0
  188. package/assets/rooms/Hall.svg +19 -0
  189. package/assets/rooms/Home Theater.svg +8 -0
  190. package/assets/rooms/Kitchen.svg +18 -0
  191. package/assets/rooms/Laundry Room.svg +12 -0
  192. package/assets/rooms/Living Area.svg +11 -0
  193. package/assets/rooms/Living Room.svg +10 -0
  194. package/assets/rooms/Locker Room.svg +17 -0
  195. package/assets/rooms/Nursery.svg +5 -0
  196. package/assets/rooms/Office.svg +8 -0
  197. package/assets/rooms/Outdoors.svg +7 -0
  198. package/assets/rooms/Playroom.svg +6 -0
  199. package/assets/rooms/Pool.svg +8 -0
  200. package/assets/rooms/Rear Wall.svg +30 -0
  201. package/assets/rooms/Second Floor.svg +95 -0
  202. package/assets/rooms/Shed.svg +16 -0
  203. package/assets/rooms/Sleeping Area.svg +22 -0
  204. package/assets/rooms/Stairway.svg +5 -0
  205. package/assets/rooms/Stairwell.svg +15 -0
  206. package/assets/rooms/Storeroom.svg +5 -0
  207. package/assets/rooms/Summer House.svg +27 -0
  208. package/assets/rooms/Swimming Pool.svg +21 -0
  209. package/assets/rooms/Terrace.svg +7 -0
  210. package/assets/rooms/Toilet.svg +10 -0
  211. package/assets/rooms/Upstairs.svg +6 -0
  212. package/assets/rooms/Wardrobe.svg +60 -0
  213. package/assets/rooms/Washroom.svg +20 -0
  214. package/assets/rooms/Wc.svg +10 -0
  215. package/assets/rooms/Windscreen.svg +60 -0
  216. package/assets/rooms/Workshop.svg +23 -0
  217. package/assets/rooms/Workspace.svg +8 -0
  218. package/assets/rooms/list.json +946 -0
  219. package/assets/rooms/names.txt +60 -0
  220. package/assets/rooms/parseNames.js +34 -0
  221. package/gulpfile.js +113 -0
  222. package/i18n/de.json +280 -0
  223. package/i18n/en.json +280 -0
  224. package/i18n/es.json +267 -0
  225. package/i18n/fr.json +267 -0
  226. package/i18n/it.json +267 -0
  227. package/i18n/nl.json +267 -0
  228. package/i18n/pl.json +267 -0
  229. package/i18n/pt.json +267 -0
  230. package/i18n/ru.json +280 -0
  231. package/i18n/zh-cn.json +267 -0
  232. package/i18n.js +171 -0
  233. package/i18n.js.map +1 -0
  234. package/icons/IconAdapter.js +39 -0
  235. package/icons/IconAdapter.js.map +1 -0
  236. package/icons/IconAlias.js +39 -0
  237. package/icons/IconAlias.js.map +1 -0
  238. package/icons/IconChannel.js +80 -0
  239. package/icons/IconChannel.js.map +1 -0
  240. package/icons/IconClearFilter.js +41 -0
  241. package/icons/IconClearFilter.js.map +1 -0
  242. package/icons/IconClosed.js +39 -0
  243. package/icons/IconClosed.js.map +1 -0
  244. package/icons/IconCopy.js +48 -0
  245. package/icons/IconCopy.js.map +1 -0
  246. package/icons/IconDevice.js +147 -0
  247. package/icons/IconDevice.js.map +1 -0
  248. package/icons/IconDocument.js +39 -0
  249. package/icons/IconDocument.js.map +1 -0
  250. package/icons/IconExpert.js +50 -0
  251. package/icons/IconExpert.js.map +1 -0
  252. package/icons/IconFx.js +39 -0
  253. package/icons/IconFx.js.map +1 -0
  254. package/icons/IconInstance.js +39 -0
  255. package/icons/IconInstance.js.map +1 -0
  256. package/icons/IconLogout.js +50 -0
  257. package/icons/IconLogout.js.map +1 -0
  258. package/icons/IconOpen.js +39 -0
  259. package/icons/IconOpen.js.map +1 -0
  260. package/icons/IconState.js +58 -0
  261. package/icons/IconState.js.map +1 -0
  262. package/index.css +55 -0
  263. package/package.json +42 -0
  264. package/types.d.ts +84 -0
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
15
+
16
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
17
+
18
+ var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
19
+
20
+ var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
21
+
22
+ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
23
+
24
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
25
+
26
+ var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
27
+
28
+ var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
29
+
30
+ var _i18n = _interopRequireDefault(require("../i18n"));
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
+
34
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
+
36
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
37
+
38
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
39
+
40
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
41
+
42
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
43
+
44
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
45
+
46
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
47
+
48
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
49
+
50
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
+
52
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
53
+
54
+ var styles = function styles(theme) {
55
+ return {
56
+ titleBackground: {},
57
+ titleColor: {}
58
+ };
59
+ };
60
+ /**
61
+ * @typedef {object} DialogErrorProps
62
+ * @property {string} [key] The key to identify this component.
63
+ * @property {string} [title] The dialog title; default: Error (translated)
64
+ * @property {string | JSX.Element} text The dialog text.
65
+ * @property {() => void} [onClose] Close handler.
66
+ * @property {{titleBackground: string; titleColor: string}} classes The styling class names.
67
+ *
68
+ * @extends {React.Component<DialogErrorProps>}
69
+ */
70
+
71
+
72
+ var DialogError = /*#__PURE__*/function (_React$Component) {
73
+ _inherits(DialogError, _React$Component);
74
+
75
+ var _super = _createSuper(DialogError);
76
+
77
+ function DialogError() {
78
+ _classCallCheck(this, DialogError);
79
+
80
+ return _super.apply(this, arguments);
81
+ }
82
+
83
+ _createClass(DialogError, [{
84
+ key: "handleOk",
85
+ value: function handleOk() {
86
+ this.props.onClose && this.props.onClose();
87
+ }
88
+ }, {
89
+ key: "render",
90
+ value: function render() {
91
+ var _this = this;
92
+
93
+ return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
94
+ open: true,
95
+ maxWidth: "sm",
96
+ fullWidth: true,
97
+ onClose: function onClose() {
98
+ return _this.handleOk();
99
+ },
100
+ "aria-labelledby": "alert-dialog-title",
101
+ "aria-describedby": "alert-dialog-description"
102
+ }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
103
+ className: this.props.classes.titleBackground,
104
+ classes: {
105
+ root: this.props.classes.titleColor
106
+ },
107
+ id: "alert-dialog-title"
108
+ }, this.props.title || _i18n["default"].t('ra_Error')), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], {
109
+ id: "alert-dialog-description"
110
+ }, this.props.text || _i18n["default"].t('ra_Unknown error!'))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
111
+ variant: "contained",
112
+ onClick: function onClick() {
113
+ return _this.handleOk();
114
+ },
115
+ color: "primary",
116
+ autoFocus: true,
117
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Check["default"], null)
118
+ }, _i18n["default"].t('ra_Ok'))));
119
+ }
120
+ }]);
121
+
122
+ return DialogError;
123
+ }(_react["default"].Component);
124
+
125
+ DialogError.propTypes = {
126
+ onClose: _propTypes["default"].func,
127
+ title: _propTypes["default"].string,
128
+ text: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]),
129
+ icon: _propTypes["default"].object
130
+ };
131
+ /** @type {typeof DialogError} */
132
+
133
+ var _export = (0, _withStyles["default"])(styles)(DialogError);
134
+
135
+ var _default = _export;
136
+ exports["default"] = _default;
137
+ //# sourceMappingURL=Error.js.map
@@ -0,0 +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","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,IADC;AAEpBR,EAAAA,KAAK,EAAEO,sBAAUE,MAFG;AAGpBN,EAAAA,IAAI,EAAEI,sBAAUG,SAAV,CAAoB,CACtBH,sBAAUE,MADY,EAEtBF,sBAAUI,OAFY,CAApB,CAHc;AAOpBC,EAAAA,IAAI,EAAEL,sBAAUM;AAPI,CAAxB;AAUA;;AACA,IAAMC,OAAO,GAAG,4BAAWxB,MAAX,EAAmBI,WAAnB,CAAhB;;eACeoB,O","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 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,\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"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
15
+
16
+ var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
17
+
18
+ var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
19
+
20
+ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
21
+
22
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
23
+
24
+ var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
25
+
26
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
27
+
28
+ var _i18n = _interopRequireDefault(require("../i18n"));
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
+
32
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33
+
34
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
35
+
36
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
37
+
38
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
39
+
40
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
41
+
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
43
+
44
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
45
+
46
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
47
+
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+
50
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
51
+
52
+ /**
53
+ * @typedef {object} DialogMessageProps
54
+ * @property {string} [key] The key to identify this component.
55
+ * @property {string} [title] The dialog title; default: Message (translated)
56
+ * @property {string} text The dialog text.
57
+ * @property {() => void} [onClose] Close handler.
58
+ *
59
+ * @extends {React.Component<DialogMessageProps>}
60
+ */
61
+ var DialogMessage = /*#__PURE__*/function (_React$Component) {
62
+ _inherits(DialogMessage, _React$Component);
63
+
64
+ var _super = _createSuper(DialogMessage);
65
+
66
+ function DialogMessage() {
67
+ _classCallCheck(this, DialogMessage);
68
+
69
+ return _super.apply(this, arguments);
70
+ }
71
+
72
+ _createClass(DialogMessage, [{
73
+ key: "handleOk",
74
+ value: function handleOk() {
75
+ this.props.onClose && this.props.onClose();
76
+ }
77
+ }, {
78
+ key: "render",
79
+ value: function render() {
80
+ var _this = this;
81
+
82
+ return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
83
+ open: true,
84
+ maxWidth: "sm",
85
+ fullWidth: true,
86
+ onClose: function onClose() {
87
+ return _this.handleOk();
88
+ },
89
+ "aria-labelledby": "message-dialog-title",
90
+ "aria-describedby": "message-dialog-description"
91
+ }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
92
+ id: "message-dialog-title"
93
+ }, this.props.title || _i18n["default"].t('ra_Message')), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], {
94
+ id: "message-dialog-description"
95
+ }, this.props.text)), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
96
+ variant: "contained",
97
+ onClick: function onClick() {
98
+ return _this.handleOk();
99
+ },
100
+ color: "primary",
101
+ autoFocus: true,
102
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Close["default"], null)
103
+ }, _i18n["default"].t('ra_Close'))));
104
+ }
105
+ }]);
106
+
107
+ return DialogMessage;
108
+ }(_react["default"].Component);
109
+
110
+ DialogMessage.propTypes = {
111
+ onClose: _propTypes["default"].func,
112
+ title: _propTypes["default"].string,
113
+ text: _propTypes["default"].string,
114
+ icon: _propTypes["default"].object
115
+ };
116
+ var _default = DialogMessage;
117
+ exports["default"] = _default;
118
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Message.js"],"names":["DialogMessage","props","onClose","handleOk","title","I18n","t","text","React","Component","propTypes","PropTypes","func","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,IADG;AAEtBR,EAAAA,KAAK,EAAEO,sBAAUE,MAFK;AAGtBN,EAAAA,IAAI,EAAEI,sBAAUE,MAHM;AAItBC,EAAAA,IAAI,EAAEH,sBAAUI;AAJM,CAA1B;eAOef,a","sourcesContent":["/**\n * Copyright 2018-2021 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,\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.object\n};\n\nexport default DialogMessage;\n"],"file":"Message.js"}
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
13
+
14
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
15
+
16
+ var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
17
+
18
+ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
19
+
20
+ var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
21
+
22
+ var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
23
+
24
+ var _Cancel = _interopRequireDefault(require("@mui/icons-material/Cancel"));
25
+
26
+ var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
27
+
28
+ var _Utils = _interopRequireDefault(require("../Components/Utils"));
29
+
30
+ var _i18n = _interopRequireDefault(require("../i18n"));
31
+
32
+ var _ObjectBrowser = _interopRequireDefault(require("../Components/ObjectBrowser"));
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
+
36
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
37
+
38
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39
+
40
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
41
+
42
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
43
+
44
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
45
+
46
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
47
+
48
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
49
+
50
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
51
+
52
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
53
+
54
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
+
56
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
57
+
58
+ var styles = function styles(theme) {
59
+ return {
60
+ headerID: {
61
+ fontWeight: 'bold',
62
+ fontStyle: 'italic'
63
+ },
64
+ dialog: {
65
+ height: '95%'
66
+ },
67
+ dialogMobile: {
68
+ padding: 4,
69
+ width: '100%',
70
+ maxWidth: '100%',
71
+ maxHeight: 'calc(100% - 16px)',
72
+ height: '100%'
73
+ },
74
+ content: {
75
+ height: '100%',
76
+ overflow: 'hidden'
77
+ },
78
+ contentMobile: {
79
+ padding: '8px 4px'
80
+ },
81
+ titleRoot: {
82
+ whiteSpace: 'nowrap',
83
+ width: 'calc(100% - 72px)',
84
+ overflow: 'hidden',
85
+ display: 'inline-block',
86
+ textOverflow: 'ellipsis'
87
+ }
88
+ };
89
+ };
90
+ /**
91
+ * @typedef {object} SelectIDProps
92
+ * @property {string} [key] The key to identify this component.
93
+ * @property {string} [dialogName] The internal name of the dialog; default: "default"
94
+ * @property {string} [title] The dialog title; default: Please select object ID... (translated)
95
+ * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.
96
+ * @property {boolean} [foldersFirst] Show folders before any leaves.
97
+ * @property {string} [imagePrefix] Prefix (default: '.')
98
+ * @property {boolean} [showExpertButton] Show the expert button?
99
+ * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'
100
+ * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only
101
+ * @property {ioBroker.Languages} [lang] The language.
102
+ * @property {import('../Connection').default} socket The socket connection.
103
+ * @property {boolean} [notEditable] Can't objects be edited? (default: true)
104
+ * @property {string} [themeName] Theme name.
105
+ * @property {string} [themeType] Theme type.
106
+ * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.
107
+ * @property {string | string[]} [selected] The selected IDs.
108
+ * @property {string} [ok] The ok button text; default: OK (translated)
109
+ * @property {string} [cancel] The cancel button text; default: Cancel (translated)
110
+ * @property {() => void} onClose Close handler that is always called when the dialog is closed.
111
+ * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.
112
+ * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.
113
+ *
114
+ * @extends {React.Component<SelectIDProps>}
115
+ */
116
+
117
+
118
+ var SelectID = /*#__PURE__*/function (_React$Component) {
119
+ _inherits(SelectID, _React$Component);
120
+
121
+ var _super = _createSuper(SelectID);
122
+
123
+ /**
124
+ * @param {SelectIDProps} props
125
+ */
126
+ function SelectID(props) {
127
+ var _this;
128
+
129
+ _classCallCheck(this, SelectID);
130
+
131
+ _this = _super.call(this, props);
132
+ _this.dialogName = _this.props.dialogName || 'default';
133
+ _this.dialogName = 'SelectID.' + _this.dialogName;
134
+ _this.filters = window.localStorage.getItem(_this.dialogName) || '{}';
135
+
136
+ try {
137
+ _this.filters = JSON.parse(_this.filters);
138
+ } catch (e) {
139
+ _this.filters = {};
140
+ }
141
+
142
+ var selected = _this.props.selected || [];
143
+
144
+ if (_typeof(selected) !== 'object') {
145
+ selected = [selected];
146
+ }
147
+
148
+ selected = selected.filter(function (id) {
149
+ return id;
150
+ });
151
+ _this.state = {
152
+ selected: selected,
153
+ name: '',
154
+ isMobile: window.innerWidth < 800
155
+ };
156
+ return _this;
157
+ }
158
+
159
+ _createClass(SelectID, [{
160
+ key: "handleCancel",
161
+ value: function handleCancel() {
162
+ this.props.onClose();
163
+ }
164
+ }, {
165
+ key: "handleOk",
166
+ value: function handleOk() {
167
+ this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);
168
+ this.props.onClose();
169
+ }
170
+ }, {
171
+ key: "render",
172
+ value: function render() {
173
+ var _this2 = this;
174
+
175
+ var title;
176
+
177
+ if (this.state.name || this.state.selected.length) {
178
+ if (this.state.selected.length === 1) {
179
+ title = [/*#__PURE__*/_react["default"].createElement("span", {
180
+ key: "selected"
181
+ }, _i18n["default"].t('ra_Selected'), " "), /*#__PURE__*/_react["default"].createElement("span", {
182
+ key: "id",
183
+ className: this.props.classes.headerID
184
+ }, (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : ''))];
185
+ } else {
186
+ title = [/*#__PURE__*/_react["default"].createElement("span", {
187
+ key: "selected"
188
+ }, _i18n["default"].t('ra_Selected'), " "), /*#__PURE__*/_react["default"].createElement("span", {
189
+ key: "id",
190
+ className: this.props.classes.headerID
191
+ }, _i18n["default"].t('%s items', this.state.selected.length))];
192
+ }
193
+ } else {
194
+ title = this.props.title || _i18n["default"].t('ra_Please select object ID...');
195
+ }
196
+
197
+ return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
198
+ onClose: function onClose() {},
199
+ maxWidth: false,
200
+ classes: {
201
+ paper: _Utils["default"].clsx(this.props.classes.dialog, this.props.classes.dialogMobile)
202
+ },
203
+ fullWidth: true,
204
+ open: true,
205
+ "aria-labelledby": "selectid-dialog-title"
206
+ }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
207
+ id: "selectid-dialog-title",
208
+ classes: {
209
+ root: this.props.classes.titleRoot
210
+ }
211
+ }, title), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
212
+ className: _Utils["default"].clsx(this.props.classes.content, this.props.classes.contentMobile)
213
+ }, /*#__PURE__*/_react["default"].createElement(_ObjectBrowser["default"], {
214
+ foldersFirst: this.props.foldersFirst,
215
+ imagePrefix: this.props.imagePrefix || this.props.prefix // prefix is for back compatibility
216
+ ,
217
+ defaultFilters: this.filters,
218
+ dialogName: this.dialogName,
219
+ showExpertButton: this.props.showExpertButton !== undefined ? this.props.showExpertButton : true,
220
+ style: {
221
+ width: '100%',
222
+ height: '100%'
223
+ },
224
+ columns: this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'],
225
+ types: this.props.types || ['state'],
226
+ t: _i18n["default"].t,
227
+ lang: this.props.lang || _i18n["default"].getLanguage(),
228
+ socket: this.props.socket,
229
+ selected: this.state.selected,
230
+ multiSelect: this.props.multiSelect,
231
+ notEditable: this.props.notEditable === undefined ? true : this.props.notEditable,
232
+ name: this.state.name,
233
+ themeName: this.props.themeName,
234
+ themeType: this.props.themeType,
235
+ customFilter: this.props.customFilter,
236
+ onFilterChanged: function onFilterChanged(filterConfig) {
237
+ _this2.filters = filterConfig;
238
+ window.localStorage.setItem(_this2.dialogName, JSON.stringify(filterConfig));
239
+ },
240
+ onSelect: function onSelect(selected, name, isDouble) {
241
+ if (JSON.stringify(selected) !== JSON.stringify(_this2.state.selected)) {
242
+ _this2.setState({
243
+ selected: selected,
244
+ name: name
245
+ }, function () {
246
+ return isDouble && _this2.handleOk();
247
+ });
248
+ } else if (isDouble) {
249
+ _this2.handleOk();
250
+ }
251
+ },
252
+ filterFunc: this.props.filterFunc
253
+ })), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
254
+ variant: "contained",
255
+ onClick: function onClick() {
256
+ return _this2.handleOk();
257
+ },
258
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Check["default"], null),
259
+ disabled: !this.state.selected.length,
260
+ color: "primary"
261
+ }, this.props.ok || _i18n["default"].t('ra_Ok')), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
262
+ color: "grey",
263
+ variant: "contained",
264
+ onClick: function onClick() {
265
+ return _this2.handleCancel();
266
+ },
267
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Cancel["default"], null)
268
+ }, this.props.cancel || _i18n["default"].t('ra_Cancel'))));
269
+ }
270
+ }]);
271
+
272
+ return SelectID;
273
+ }(_react["default"].Component);
274
+
275
+ SelectID.propTypes = {
276
+ dialogName: _propTypes["default"].string,
277
+ // where to store settings in localStorage
278
+ classes: _propTypes["default"].object,
279
+ onClose: _propTypes["default"].func,
280
+ notEditable: _propTypes["default"].bool,
281
+ onOk: _propTypes["default"].func.isRequired,
282
+ title: _propTypes["default"].string,
283
+ lang: _propTypes["default"].string,
284
+ foldersFirst: _propTypes["default"].bool,
285
+ isFloatComma: _propTypes["default"].bool,
286
+ dateFormat: _propTypes["default"].string,
287
+ selected: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
288
+ customFilter: _propTypes["default"].object,
289
+ // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}
290
+ statesOnly: _propTypes["default"].bool,
291
+ socket: _propTypes["default"].object.isRequired,
292
+ cancel: _propTypes["default"].string,
293
+ imagePrefix: _propTypes["default"].string,
294
+ ok: _propTypes["default"].string,
295
+ themeName: _propTypes["default"].string,
296
+ themeType: _propTypes["default"].string,
297
+ showExpertButton: _propTypes["default"].bool,
298
+ multiSelect: _propTypes["default"].bool,
299
+ types: _propTypes["default"].array,
300
+ // optional ['state', 'instance', 'channel']
301
+ columns: _propTypes["default"].array,
302
+ // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']
303
+ filterFunc: _propTypes["default"].func // function to filter out all unneccessary objects. It cannot be used together with "types"
304
+ // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states
305
+
306
+ };
307
+ /** @type {typeof SelectID} */
308
+
309
+ var _export = (0, _withStyles["default"])(styles)(SelectID);
310
+
311
+ var _default = _export;
312
+ exports["default"] = _default;
313
+ //# sourceMappingURL=SelectID.js.map
@@ -0,0 +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","func","bool","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 onClose: PropTypes.func,\n notEditable: PropTypes.bool,\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"}