@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,234 @@
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
+ exports.getSelectIdIcon = getSelectIdIcon;
10
+ exports.getSystemIcon = getSystemIcon;
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _reactInlinesvg = _interopRequireDefault(require("react-inlinesvg"));
17
+
18
+ var _SettingsApplications = _interopRequireDefault(require("@mui/icons-material/SettingsApplications"));
19
+
20
+ var _Photo = _interopRequireDefault(require("@mui/icons-material/Photo"));
21
+
22
+ var _SupervisedUserCircle = _interopRequireDefault(require("@mui/icons-material/SupervisedUserCircle"));
23
+
24
+ var _PersonOutlined = _interopRequireDefault(require("@mui/icons-material/PersonOutlined"));
25
+
26
+ var _Router = _interopRequireDefault(require("@mui/icons-material/Router"));
27
+
28
+ var _Wifi = _interopRequireDefault(require("@mui/icons-material/Wifi"));
29
+
30
+ var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
31
+
32
+ var _Description = _interopRequireDefault(require("@mui/icons-material/Description"));
33
+
34
+ var _IconAlias = _interopRequireDefault(require("../icons/IconAlias"));
35
+
36
+ var _Utils = _interopRequireDefault(require("./Utils"));
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
39
+
40
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
+
42
+ 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); } }
43
+
44
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
45
+
46
+ 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); }
47
+
48
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
49
+
50
+ 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); }; }
51
+
52
+ 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); }
53
+
54
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
55
+
56
+ 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; } }
57
+
58
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
59
+
60
+ function getSystemIcon(obj) {
61
+ var icon;
62
+ var id = obj === null || obj === void 0 ? void 0 : obj._id;
63
+
64
+ if (!id) {
65
+ return null;
66
+ } // system or design have special icons
67
+
68
+
69
+ if (id.startsWith('_design/') || id === 'system') {
70
+ icon = /*#__PURE__*/_react["default"].createElement(_SettingsApplications["default"], {
71
+ className: "iconOwn"
72
+ });
73
+ } else if (id === '0_userdata' || id === '0_userdata.0') {
74
+ icon = /*#__PURE__*/_react["default"].createElement(_Photo["default"], {
75
+ className: "iconOwn"
76
+ });
77
+ } else if (id === 'alias' || id === 'alias.0') {
78
+ icon = /*#__PURE__*/_react["default"].createElement(_IconAlias["default"], {
79
+ className: "iconOwn"
80
+ });
81
+ } else if (id === 'system.adapter') {
82
+ icon = /*#__PURE__*/_react["default"].createElement(_SettingsApplications["default"], {
83
+ className: "iconOwn"
84
+ });
85
+ } else if (id === 'system.group') {
86
+ icon = /*#__PURE__*/_react["default"].createElement(_SupervisedUserCircle["default"], {
87
+ className: "iconOwn"
88
+ });
89
+ } else if (id === 'system.user') {
90
+ icon = /*#__PURE__*/_react["default"].createElement(_PersonOutlined["default"], {
91
+ className: "iconOwn"
92
+ });
93
+ } else if (id === 'system.host') {
94
+ icon = /*#__PURE__*/_react["default"].createElement(_Router["default"], {
95
+ className: "iconOwn"
96
+ });
97
+ } else if (id.endsWith('.connection') || id.endsWith('.connected')) {
98
+ icon = /*#__PURE__*/_react["default"].createElement(_Wifi["default"], {
99
+ className: "iconOwn"
100
+ });
101
+ } else if (id.endsWith('.info')) {
102
+ icon = /*#__PURE__*/_react["default"].createElement(_Info["default"], {
103
+ className: "iconOwn"
104
+ });
105
+ } else if ((obj === null || obj === void 0 ? void 0 : obj.type) === 'meta') {
106
+ icon = /*#__PURE__*/_react["default"].createElement(_Description["default"], {
107
+ className: "iconOwn"
108
+ });
109
+ }
110
+
111
+ return icon || null;
112
+ }
113
+
114
+ function getSelectIdIcon(obj, imagePrefix) {
115
+ imagePrefix = imagePrefix || '.'; //http://localhost:8081';
116
+
117
+ var src = '';
118
+ var common = obj === null || obj === void 0 ? void 0 : obj.common;
119
+
120
+ if (common) {
121
+ var cIcon = common.icon;
122
+
123
+ if (cIcon) {
124
+ if (!cIcon.startsWith('data:image/')) {
125
+ if (cIcon.includes('.')) {
126
+ var instance;
127
+
128
+ if (obj.type === 'instance' || obj.type === 'adapter') {
129
+ src = imagePrefix + '/adapter/' + common.name + '/' + cIcon;
130
+ } else if (obj._id && obj._id.startsWith('system.adapter.')) {
131
+ instance = obj._id.split('.', 3);
132
+
133
+ if (cIcon[0] === '/') {
134
+ instance[2] += cIcon;
135
+ } else {
136
+ instance[2] += '/' + cIcon;
137
+ }
138
+
139
+ src = imagePrefix + '/adapter/' + instance[2];
140
+ } else {
141
+ instance = obj._id.split('.', 2);
142
+
143
+ if (cIcon[0] === '/') {
144
+ instance[0] += cIcon;
145
+ } else {
146
+ instance[0] += '/' + cIcon;
147
+ }
148
+
149
+ src = imagePrefix + '/adapter/' + instance[0];
150
+ }
151
+ } else {
152
+ return null;
153
+ }
154
+ } else {
155
+ // base 64 image
156
+ src = cIcon;
157
+ }
158
+ }
159
+ }
160
+
161
+ return src || null;
162
+ }
163
+
164
+ var Icon = /*#__PURE__*/function (_React$Component) {
165
+ _inherits(Icon, _React$Component);
166
+
167
+ var _super = _createSuper(Icon);
168
+
169
+ function Icon() {
170
+ _classCallCheck(this, Icon);
171
+
172
+ return _super.apply(this, arguments);
173
+ }
174
+
175
+ _createClass(Icon, [{
176
+ key: "render",
177
+ value: function render() {
178
+ if (this.props.src) {
179
+ if (typeof this.props.src === 'string') {
180
+ if (this.props.src.length < 3) {
181
+ return /*#__PURE__*/_react["default"].createElement("span", {
182
+ title: this.props.title || undefined,
183
+ style: Object.assign({
184
+ height: 27,
185
+ marginTop: -8
186
+ }, this.props.styleUTF8 || this.props.style),
187
+ className: _Utils["default"].clsx(this.props.className, 'iconOwn')
188
+ }, this.props.src); // utf-8 char
189
+ } else {
190
+ if (this.props.src.startsWith('data:image/svg')) {
191
+ var _this$props$style, _this$props$style2, _this$props$style3;
192
+
193
+ return /*#__PURE__*/_react["default"].createElement(_reactInlinesvg["default"], {
194
+ title: this.props.title || undefined,
195
+ src: this.props.src,
196
+ className: _Utils["default"].clsx(this.props.className, 'iconOwn'),
197
+ width: ((_this$props$style = this.props.style) === null || _this$props$style === void 0 ? void 0 : _this$props$style.width) || 28,
198
+ height: ((_this$props$style2 = this.props.style) === null || _this$props$style2 === void 0 ? void 0 : _this$props$style2.height) || ((_this$props$style3 = this.props.style) === null || _this$props$style3 === void 0 ? void 0 : _this$props$style3.width) || 28,
199
+ style: this.props.style || {}
200
+ });
201
+ } else {
202
+ return /*#__PURE__*/_react["default"].createElement("img", {
203
+ title: this.props.title || undefined,
204
+ style: this.props.style || {},
205
+ className: _Utils["default"].clsx(this.props.className, 'iconOwn'),
206
+ src: this.props.src,
207
+ alt: ""
208
+ });
209
+ }
210
+ }
211
+ } else {
212
+ return this.props.src;
213
+ }
214
+ } else {
215
+ return null;
216
+ }
217
+ }
218
+ }]);
219
+
220
+ return Icon;
221
+ }(_react["default"].Component);
222
+
223
+ Icon.propTypes = {
224
+ color: _propTypes["default"].string,
225
+ title: _propTypes["default"].string,
226
+ src: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
227
+ className: _propTypes["default"].string,
228
+ imagePrefix: _propTypes["default"].string,
229
+ style: _propTypes["default"].object,
230
+ styleUTF8: _propTypes["default"].object
231
+ };
232
+ var _default = Icon;
233
+ exports["default"] = _default;
234
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Icon.js"],"names":["getSystemIcon","obj","icon","id","_id","startsWith","endsWith","type","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","name","split","Icon","props","length","title","undefined","Object","assign","height","marginTop","styleUTF8","style","Utils","clsx","className","width","React","Component","propTypes","color","PropTypes","string","oneOfType","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = imagePrefix + '/adapter/' + common.name + '/' + cIcon;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[2];\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[0];\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n return <span title={this.props.title || undefined} style={Object.assign({height: 27, marginTop: -8}, this.props.styleUTF8 || this.props.style)} className={ Utils.clsx(this.props.className, 'iconOwn') }>{this.props.src}</span>; // utf-8 char\n } else {\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG title={this.props.title || undefined} src={this.props.src} className={ Utils.clsx(this.props.className, 'iconOwn') } width={this.props.style?.width || 28} height={this.props.style?.height || this.props.style?.width || 28} style={this.props.style || {}}/>;\n } else {\n return <img title={this.props.title || undefined} style={this.props.style || {}} className={ Utils.clsx(this.props.className, 'iconOwn') } src={ this.props.src } alt=\"\" />;\n }\n }\n } else {\n return this.props.src;\n }\n } else {\n return null;\n }\n }\n}\n\nIcon.propTypes = {\n color: PropTypes.string,\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;"],"file":"Icon.js"}
@@ -0,0 +1,188 @@
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 = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _reactDropzone = require("react-dropzone");
15
+
16
+ var _makeStyles = _interopRequireDefault(require("@mui/styles/makeStyles"));
17
+
18
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
19
+
20
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
21
+
22
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
23
+
24
+ var _Clear = _interopRequireDefault(require("@mui/icons-material/Clear"));
25
+
26
+ var _IconSelector = _interopRequireDefault(require("./IconSelector"));
27
+
28
+ var _Icon = _interopRequireDefault(require("./Icon"));
29
+
30
+ var _i18n = _interopRequireDefault(require("../i18n"));
31
+
32
+ var _Utils = _interopRequireDefault(require("./Utils"));
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
41
+
42
+ /**
43
+ * @typedef {object} IconPickerProps
44
+ * @property {string} [value] The value.
45
+ * @property {string} [label] The label.
46
+ * @property {boolean} [disabled] Set to true to disable the icon picker.
47
+ * @property {(icon: string) => void} onChange The icon change callback.
48
+ * @property {import('../Connection').default} socket The socket connection.
49
+ * @property {string} [imagePrefix] The image prefix (default: './files/')
50
+ * @property {React.CSSProperties} [style] Additional styling for this component.
51
+ * @property {string} [className] The CSS class name.
52
+ *
53
+ * @extends {React.Component<IconPickerProps>}
54
+ */
55
+ var IconPicker = function IconPicker(props) {
56
+ var _props$customClasses, _props$customClasses2;
57
+
58
+ var IconCustom = props.icon;
59
+ var useStyles = (0, _makeStyles["default"])(function (theme) {
60
+ return {
61
+ formContainer: {
62
+ display: 'flex',
63
+ justifyContent: 'left',
64
+ alignItems: 'center'
65
+ },
66
+ formControl: {
67
+ display: 'flex',
68
+ padding: 24,
69
+ flexGrow: 1000
70
+ },
71
+ divContainer: {
72
+ width: 32 + 24,
73
+ height: 32,
74
+ whiteSpace: 'nowrap',
75
+ lineHeight: '32px',
76
+ marginRight: 8
77
+ },
78
+ dragField: {
79
+ textAlign: 'center',
80
+ display: 'table',
81
+ minHeight: 90,
82
+ width: 'calc(100% - 60px)',
83
+ border: '2px dashed #777',
84
+ borderRadius: 10,
85
+ padding: 4
86
+ },
87
+ formIcon: {
88
+ margin: 10,
89
+ opacity: 0.6
90
+ },
91
+ text: {
92
+ display: 'table-cell',
93
+ verticalAlign: 'middle'
94
+ }
95
+ };
96
+ });
97
+ var classes = useStyles();
98
+ var onDrop = (0, _react.useCallback)(function (acceptedFiles) {
99
+ var reader = new FileReader();
100
+ reader.addEventListener('load', function () {
101
+ return props.onChange(reader.result);
102
+ }, false);
103
+
104
+ if (acceptedFiles[0]) {
105
+ reader.readAsDataURL(acceptedFiles[0]);
106
+ }
107
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
108
+
109
+ var _useDropzone = (0, _reactDropzone.useDropzone)({
110
+ onDrop: onDrop
111
+ }),
112
+ getRootProps = _useDropzone.getRootProps,
113
+ getInputProps = _useDropzone.getInputProps,
114
+ isDragActive = _useDropzone.isDragActive;
115
+
116
+ return /*#__PURE__*/_react["default"].createElement("div", {
117
+ className: classes.formContainer
118
+ }, IconCustom ? /*#__PURE__*/_react["default"].createElement(IconCustom, {
119
+ className: classes.formIcon
120
+ }) : null, /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
121
+ variant: "standard",
122
+ className: classes.formControl,
123
+ style: {
124
+ padding: 3
125
+ }
126
+ }, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
127
+ shrink: true,
128
+ classes: {
129
+ root: (_props$customClasses = props.customClasses) === null || _props$customClasses === void 0 ? void 0 : _props$customClasses.label
130
+ }
131
+ }, props.label), /*#__PURE__*/_react["default"].createElement("div", {
132
+ className: classes.formContainer
133
+ }, props.value ? /*#__PURE__*/_react["default"].createElement("div", {
134
+ className: classes.divContainer
135
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
136
+ alt: "",
137
+ className: _Utils["default"].clsx(props.previewClassName, (_props$customClasses2 = props.customClasses) === null || _props$customClasses2 === void 0 ? void 0 : _props$customClasses2.icon),
138
+ src: props.value
139
+ }), !props.disabled && /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
140
+ style: {
141
+ verticalAlign: 'top'
142
+ },
143
+ title: _i18n["default"].t('ra_Clear icon'),
144
+ size: "small",
145
+ onClick: function onClick() {
146
+ return props.onChange('');
147
+ }
148
+ }, /*#__PURE__*/_react["default"].createElement(_Clear["default"], null))) : !props.disabled && /*#__PURE__*/_react["default"].createElement(_IconSelector["default"], {
149
+ icons: props.icons,
150
+ onlyRooms: props.onlyRooms,
151
+ onlyDevices: props.onlyDevices,
152
+ onSelect: function onSelect(base64) {
153
+ return props.onChange(base64);
154
+ },
155
+ t: _i18n["default"].t,
156
+ lang: _i18n["default"].getLanguage()
157
+ }), !props.disabled && /*#__PURE__*/_react["default"].createElement("div", _extends({}, getRootProps(), {
158
+ className: classes.dragField,
159
+ style: isDragActive ? {
160
+ backgroundColor: 'rgba(0, 255, 0, 0.1)'
161
+ } : {
162
+ cursor: 'pointer'
163
+ }
164
+ }), /*#__PURE__*/_react["default"].createElement("input", getInputProps()), isDragActive ? /*#__PURE__*/_react["default"].createElement("span", {
165
+ className: classes.text
166
+ }, _i18n["default"].t('ra_Drop the files here...')) : /*#__PURE__*/_react["default"].createElement("span", {
167
+ className: classes.text
168
+ }, _i18n["default"].t("ra_Drag 'n' drop some files here, or click to select files"))))));
169
+ };
170
+
171
+ IconPicker.propTypes = {
172
+ previewClassName: _propTypes["default"].string,
173
+ icon: _propTypes["default"].object,
174
+ customClasses: _propTypes["default"].object,
175
+ label: _propTypes["default"].string,
176
+ name: _propTypes["default"].string,
177
+ value: _propTypes["default"].any,
178
+ disabled: _propTypes["default"].bool,
179
+ onChange: _propTypes["default"].func,
180
+ icons: _propTypes["default"].array,
181
+ onlyRooms: _propTypes["default"].bool,
182
+ onlyDevices: _propTypes["default"].bool
183
+ };
184
+ /** @type {typeof IconPicker} */
185
+
186
+ var _default = IconPicker;
187
+ exports["default"] = _default;
188
+ //# sourceMappingURL=IconPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["IconPicker.js"],"names":["IconPicker","props","IconCustom","icon","useStyles","theme","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","getRootProps","getInputProps","isDragActive","root","customClasses","label","value","Utils","clsx","previewClassName","disabled","I18n","t","icons","onlyRooms","onlyDevices","base64","getLanguage","backgroundColor","cursor","propTypes","PropTypes","string","object","name","any","bool","func","array"],"mappings":"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","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={ classes.formIcon }/> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{padding: 3}}>\n <InputLabel shrink classes={{root: props.customClasses?.label}}>\n { props.label }\n </InputLabel>\n <div className={ classes.formContainer }>\n {props.value ?\n <div className={ classes.divContainer }>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value}/>\n {!props.disabled && <IconButton\n style={{verticalAlign: 'top'}}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon/>\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? {backgroundColor: 'rgba(0, 255, 0, 0.1)'} : {cursor: 'pointer'}}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;"],"file":"IconPicker.js"}