@iobroker/adapter-react-v5 6.1.3 → 6.1.5

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 (66) hide show
  1. package/README.md +3 -0
  2. package/craco-module-federation.js +1 -1
  3. package/package.json +1 -1
  4. package/src/AdminConnection.tsx +3 -0
  5. package/src/Components/404.tsx +121 -0
  6. package/src/Components/ColorPicker.tsx +315 -0
  7. package/src/Components/ComplexCron.tsx +507 -0
  8. package/src/Components/CopyToClipboard.tsx +165 -0
  9. package/src/Components/CustomModal.tsx +163 -0
  10. package/src/Components/FileBrowser.tsx +2394 -0
  11. package/src/Components/FileViewer.tsx +384 -0
  12. package/src/Components/Icon.tsx +210 -0
  13. package/src/Components/IconPicker.tsx +149 -0
  14. package/src/Components/IconSelector.tsx +2202 -0
  15. package/src/Components/Image.tsx +176 -0
  16. package/src/Components/Loader.tsx +304 -0
  17. package/src/Components/Logo.tsx +166 -0
  18. package/src/Components/MDUtils.tsx +100 -0
  19. package/src/Components/ObjectBrowser.tsx +7915 -0
  20. package/src/Components/Router.tsx +90 -0
  21. package/src/Components/SaveCloseButtons.tsx +113 -0
  22. package/src/Components/Schedule.tsx +1724 -0
  23. package/src/Components/SelectWithIcon.tsx +197 -0
  24. package/src/Components/TabContainer.tsx +55 -0
  25. package/src/Components/TabContent.tsx +37 -0
  26. package/src/Components/TabHeader.tsx +19 -0
  27. package/src/Components/TableResize.tsx +259 -0
  28. package/src/Components/TextWithIcon.tsx +148 -0
  29. package/src/Components/ToggleThemeMenu.tsx +34 -0
  30. package/src/Components/TreeTable.tsx +919 -0
  31. package/src/Components/UploadImage.tsx +599 -0
  32. package/src/Components/Utils.tsx +1794 -0
  33. package/src/Components/loader.css +222 -0
  34. package/src/Components/withWidth.tsx +21 -0
  35. package/src/Connection.tsx +7 -0
  36. package/src/Dialogs/ComplexCron.tsx +129 -0
  37. package/src/Dialogs/Confirm.tsx +162 -0
  38. package/src/Dialogs/Cron.tsx +182 -0
  39. package/src/Dialogs/Error.tsx +72 -0
  40. package/src/Dialogs/Message.tsx +71 -0
  41. package/src/Dialogs/SelectFile.tsx +270 -0
  42. package/src/Dialogs/SelectID.tsx +298 -0
  43. package/src/Dialogs/SimpleCron.tsx +100 -0
  44. package/src/Dialogs/TextInput.tsx +107 -0
  45. package/src/GenericApp.tsx +976 -0
  46. package/src/LegacyConnection.tsx +3589 -0
  47. package/src/Prompt.tsx +20 -0
  48. package/src/Theme.tsx +479 -0
  49. package/src/icons/IconAdapter.tsx +20 -0
  50. package/src/icons/IconAlias.tsx +20 -0
  51. package/src/icons/IconChannel.tsx +21 -0
  52. package/src/icons/IconClearFilter.tsx +22 -0
  53. package/src/icons/IconClosed.tsx +17 -0
  54. package/src/icons/IconCopy.tsx +16 -0
  55. package/src/icons/IconDevice.tsx +27 -0
  56. package/src/icons/IconDocument.tsx +17 -0
  57. package/src/icons/IconDocumentReadOnly.tsx +18 -0
  58. package/src/icons/IconExpert.tsx +18 -0
  59. package/src/icons/IconFx.tsx +36 -0
  60. package/src/icons/IconInstance.tsx +20 -0
  61. package/src/icons/IconLogout.tsx +30 -0
  62. package/src/icons/IconNoIcon.tsx +19 -0
  63. package/src/icons/IconOpen.tsx +17 -0
  64. package/src/icons/IconProps.tsx +15 -0
  65. package/src/icons/IconState.tsx +17 -0
  66. package/src/index.css +55 -0
package/src/Prompt.tsx ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Print the ioBroker welcome screen to the developer console.
3
+ */
4
+ function printPrompt(): void {
5
+ const prompt = `
6
+ ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗
7
+ ██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗
8
+ ██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝
9
+ ██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗
10
+ ██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║
11
+ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
12
+ `;
13
+
14
+ console.log(prompt);
15
+ console.log('Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters');
16
+ console.log('Help us to create open source project with reactJS!');
17
+ console.log('See you :)');
18
+ }
19
+
20
+ export default printPrompt;
package/src/Theme.tsx ADDED
@@ -0,0 +1,479 @@
1
+ import React from 'react';
2
+ import { createTheme, alpha, PaletteOptions as PaletteOptionsMui } from '@mui/material/styles';
3
+ import { orange, grey } from '@mui/material/colors';
4
+
5
+ import { SimplePaletteColorOptions } from '@mui/material/styles/createPalette';
6
+ import { ThemeOptions as ThemeOptionsMui } from '@mui/material/styles/createTheme';
7
+ import { type IobTheme, type ThemeName, ThemeType } from './types';
8
+
9
+ const step = (16 - 5) / 23 / 100;
10
+
11
+ /**
12
+ * Convert hex color in the format '#rrggbb' or '#rgb' to an RGB object.
13
+ */
14
+ function toInt(hex: string): { r: number; g: number; b: number } {
15
+ const rgb: { r: number; g: number; b: number } = {
16
+ r: 0,
17
+ g: 0,
18
+ b: 0,
19
+ };
20
+
21
+ if (hex.length === 7) {
22
+ rgb.r = parseInt(hex.substr(1, 2), 16);
23
+ rgb.g = parseInt(hex.substr(3, 2), 16);
24
+ rgb.b = parseInt(hex.substr(5, 2), 16);
25
+ } else if (hex.length === 4) {
26
+ const r = hex.substr(1, 1);
27
+ const g = hex.substr(2, 1);
28
+ const b = hex.substr(3, 1);
29
+
30
+ rgb.r = parseInt(r + r, 16);
31
+ rgb.g = parseInt(g + g, 16);
32
+ rgb.b = parseInt(b + b, 16);
33
+ }
34
+
35
+ return rgb;
36
+ }
37
+
38
+ /**
39
+ * Convert an RGB object to a hex color string in the format '#rrggbb'.
40
+ */
41
+ function toHex(int: { r: number; g: number; b: number }): string {
42
+ return `#${Math.round(int.r).toString(16)}${Math.round(int.g).toString(16)}${Math.round(int.b).toString(16)}`;
43
+ }
44
+
45
+ /** Returns the hex color string in the format '#rrggbb' */
46
+ function getElevation(
47
+ /** color in the format '#rrggbb' or '#rgb' */
48
+ color: string,
49
+ /** overlay color in the format '#rrggbb' or '#rgb' */
50
+ overlayColor: string,
51
+ /** elevation as an integer starting with 1 */
52
+ elevation: number,
53
+ ): string {
54
+ const rgb: { r: number; g: number; b: number } = toInt(color);
55
+ const overlay: { r: number; g: number; b: number } = toInt(overlayColor);
56
+
57
+ rgb.r += overlay.r * (0.05 + step * (elevation - 1));
58
+ rgb.g += overlay.g * (0.05 + step * (elevation - 1));
59
+ rgb.b += overlay.b * (0.05 + step * (elevation - 1));
60
+
61
+ return toHex(rgb);
62
+ }
63
+
64
+ /**
65
+ * Get all 24 elevations of the given color and overlay.
66
+ */
67
+ function getElevations(
68
+ /** color in the format '#rrggbb' or '#rgb' */
69
+ color: string,
70
+ /** overlay color in the format '#rrggbb' or '#rgb' */
71
+ overlay: string,
72
+ ): Record<string, React.CSSProperties> {
73
+ const elevations: Record<string, React.CSSProperties> = {};
74
+
75
+ for (let i = 1; i <= 24; i++) {
76
+ elevations[`elevation${i}`] = {
77
+ backgroundColor: getElevation(color, overlay, i),
78
+ };
79
+ }
80
+
81
+ return elevations;
82
+ }
83
+
84
+ // const buttonsPalette = () => ({
85
+ // palette: {
86
+ // // mode: "dark",
87
+ // grey: {
88
+ // main: grey[300],
89
+ // dark: grey[400],
90
+ // },
91
+ // },
92
+ // });
93
+
94
+ // const buttonsTheme = theme => ({
95
+ // components: {
96
+ // MuiButton: {
97
+ // variants: [
98
+ // {
99
+ // props: { variant: 'contained', color: 'grey' },
100
+ // style: {
101
+ // color: theme.palette.getContrastText(theme.palette.grey[300]),
102
+ // },
103
+ // },
104
+ // {
105
+ // props: { variant: 'outlined', color: 'grey' },
106
+ // style: {
107
+ // color: theme.palette.text.primary,
108
+ // borderColor:
109
+ // theme.palette.mode === 'light'
110
+ // ? 'rgba(0, 0, 0, 0.23)'
111
+ // : 'rgba(255, 255, 255, 0.23)',
112
+ // '&.Mui-disabled': {
113
+ // border: `1px solid ${theme.palette.action.disabledBackground}`,
114
+ // },
115
+ // '&:hover': {
116
+ // borderColor:
117
+ // theme.palette.mode === 'light'
118
+ // ? 'rgba(0, 0, 0, 0.23)'
119
+ // : 'rgba(255, 255, 255, 0.23)',
120
+ // backgroundColor: alpha(
121
+ // theme.palette.text.primary,
122
+ // theme.palette.action.hoverOpacity,
123
+ // ),
124
+ // },
125
+ // },
126
+ // },
127
+ // {
128
+ // props: { color: 'grey', variant: 'text' },
129
+ // style: {
130
+ // color: 'black',
131
+ // '&:hover': {
132
+ // backgroundColor: alpha(
133
+ // theme.palette.text.primary,
134
+ // theme.palette.action.hoverOpacity,
135
+ // ),
136
+ // },
137
+ // },
138
+ // },
139
+ // ],
140
+ // },
141
+ // },
142
+ // });
143
+
144
+ interface PaletteOptions extends PaletteOptionsMui {
145
+ mode: ThemeType;
146
+ expert: string;
147
+ grey?: {
148
+ main?: string;
149
+ dark?: string;
150
+ 50?: string;
151
+ 100?: string;
152
+ 200?: string;
153
+ 300?: string;
154
+ 400?: string;
155
+ 500?: string;
156
+ 600?: string;
157
+ 700?: string;
158
+ 800?: string;
159
+ 900?: string;
160
+ A100?: string;
161
+ A200?: string;
162
+ A400?: string;
163
+ A700?: string;
164
+ };
165
+ }
166
+
167
+ interface ThemeOptions extends ThemeOptionsMui {
168
+ name: ThemeName;
169
+ palette?: PaletteOptions;
170
+ toolbar?: React.CSSProperties;
171
+ saveToolbar?: {
172
+ background: string;
173
+ button: React.CSSProperties;
174
+ };
175
+ }
176
+
177
+ /**
178
+ * The theme creation factory function.
179
+ */
180
+ function customTheme(type: ThemeName, overrides?: Record<string, any>): IobTheme {
181
+ let options: ThemeOptions;
182
+ let localOverrides: Record<string, any>;
183
+
184
+ if (type === 'dark') {
185
+ localOverrides = {
186
+ MuiAppBar: {
187
+ colorDefault: {
188
+ backgroundColor: '#272727',
189
+ },
190
+ },
191
+ MuiLink: {
192
+ root: {
193
+ textTransform: 'uppercase',
194
+ transition: 'color .3s ease',
195
+ color: orange[200],
196
+ '&:hover': {
197
+ color: orange[100],
198
+ },
199
+ },
200
+ },
201
+ MuiPaper: getElevations('#121212', '#fff'),
202
+ };
203
+
204
+ options = {
205
+ name: type,
206
+ palette: {
207
+ mode: 'dark',
208
+ background: {
209
+ paper: '#121212',
210
+ default: '#121212',
211
+ },
212
+ primary: {
213
+ main: '#4dabf5',
214
+ },
215
+ secondary: {
216
+ main: '#436a93',
217
+ },
218
+ expert: '#14bb00',
219
+ text: {
220
+ primary: '#ffffff',
221
+ secondary: '#ffffff',
222
+ },
223
+ },
224
+ };
225
+ } else if (type === 'blue') {
226
+ localOverrides = {
227
+ MuiAppBar: {
228
+ colorDefault: {
229
+ backgroundColor: '#3399CC',
230
+ },
231
+ },
232
+ MuiLink: {
233
+ root: {
234
+ textTransform: 'uppercase',
235
+ transition: 'color .3s ease',
236
+ color: orange[400],
237
+ '&:hover': {
238
+ color: orange[300],
239
+ },
240
+ },
241
+ },
242
+ };
243
+
244
+ options = {
245
+ name: type,
246
+ palette: {
247
+ mode: 'dark',
248
+ background: {
249
+ paper: '#151d21',
250
+ default: '#151d21',
251
+ },
252
+ primary: {
253
+ main: '#4dabf5',
254
+ },
255
+ secondary: {
256
+ main: '#436a93',
257
+ },
258
+ expert: '#14bb00',
259
+ text: {
260
+ primary: '#ffffff',
261
+ secondary: '#ffffff',
262
+ },
263
+ },
264
+
265
+ };
266
+ } else if (type === 'colored') {
267
+ localOverrides = {
268
+ MuiAppBar: {
269
+ colorDefault: {
270
+ backgroundColor: '#2a3135',
271
+ },
272
+ },
273
+ MuiLink: {
274
+ root: {
275
+ textTransform: 'uppercase',
276
+ transition: 'color .3s ease',
277
+ color: orange[200],
278
+ '&:hover': {
279
+ color: orange[100],
280
+ },
281
+ },
282
+ },
283
+ MuiPaper: getElevations('#151d21', '#fff'),
284
+ };
285
+
286
+ options = {
287
+ name: type,
288
+ palette: {
289
+ mode: 'light',
290
+ primary: {
291
+ main: '#3399CC',
292
+ },
293
+ secondary: {
294
+ main: '#164477',
295
+ },
296
+ expert: '#96fc96',
297
+ },
298
+
299
+ };
300
+ } else if (type === 'PT') {
301
+ localOverrides = {
302
+ MuiAppBar: {
303
+ colorDefault: {
304
+ backgroundColor: '#0F99DE',
305
+ },
306
+ },
307
+ MuiLink: {
308
+ root: {
309
+ textTransform: 'uppercase',
310
+ transition: 'color .3s ease',
311
+ color: orange[400],
312
+ '&:hover': {
313
+ color: orange[300],
314
+ },
315
+ },
316
+ },
317
+ };
318
+
319
+ options = {
320
+ name: type,
321
+ palette: {
322
+ mode: 'light',
323
+ primary: {
324
+ main: '#0F99DE',
325
+ },
326
+ secondary: {
327
+ main: '#88A536',
328
+ },
329
+ expert: '#BD1B24',
330
+ },
331
+
332
+ };
333
+ } else if (type === 'DX') {
334
+ localOverrides = {
335
+ MuiAppBar: {
336
+ colorDefault: {
337
+ backgroundColor: '#a9a9a9',
338
+ },
339
+ },
340
+ MuiLink: {
341
+ root: {
342
+ textTransform: 'uppercase',
343
+ transition: 'color .3s ease',
344
+ color: orange[400],
345
+ '&:hover': {
346
+ color: orange[300],
347
+ },
348
+ },
349
+ },
350
+ };
351
+
352
+ options = {
353
+ name: type,
354
+ palette: {
355
+ mode: 'light',
356
+ primary: {
357
+ main: '#F5F5F7',
358
+ },
359
+ secondary: {
360
+ main: '#a9a9a9',
361
+ },
362
+ expert: '#BD1B24',
363
+ text: {
364
+ primary: '#007AFE',
365
+ secondary: '#007AFE',
366
+ disabled: '#007AFEAA',
367
+ },
368
+ },
369
+
370
+ };
371
+ } else {
372
+ localOverrides = {
373
+ MuiLink: {
374
+ root: {
375
+ textTransform: 'uppercase',
376
+ transition: 'color .3s ease',
377
+ color: orange[400],
378
+ '&:hover': {
379
+ color: orange[300],
380
+ },
381
+ },
382
+ },
383
+ };
384
+
385
+ options = {
386
+ name: type,
387
+ palette: {
388
+ mode: 'light',
389
+ primary: {
390
+ main: '#3399CC',
391
+ dark: '#256c97',
392
+ light: '#76d0fd',
393
+ },
394
+ secondary: {
395
+ main: '#164477',
396
+ },
397
+ expert: '#14bb00',
398
+ },
399
+ };
400
+ }
401
+
402
+ options.toolbar = {
403
+ height: 48,
404
+ };
405
+
406
+ options.saveToolbar = {
407
+ background: (options.palette?.primary as SimplePaletteColorOptions)?.main,
408
+ button: {
409
+ borderRadius: 3,
410
+ height: 32,
411
+ },
412
+ };
413
+
414
+ if (options.palette) {
415
+ options.palette.grey = {
416
+ main: grey[300],
417
+ dark: grey[400],
418
+ };
419
+ }
420
+
421
+ const theme: IobTheme = createTheme(options) as IobTheme;
422
+
423
+ const palette: PaletteOptions = (theme.palette as PaletteOptions);
424
+
425
+ return createTheme(theme, {
426
+ ...(overrides || undefined),
427
+ components: {
428
+ ...localOverrides,
429
+ MuiButton: {
430
+ variants: [
431
+ {
432
+ props: { variant: 'contained', color: 'grey' },
433
+ style: {
434
+ color: palette.getContrastText && palette.grey && palette.grey[300] ? palette.getContrastText(palette.grey[300]) : undefined,
435
+ },
436
+ },
437
+ {
438
+ props: { variant: 'outlined', color: 'grey' },
439
+ style: {
440
+ color: palette.text?.primary,
441
+ borderColor:
442
+ palette.mode === 'light'
443
+ ? 'rgba(0, 0, 0, 0.23)'
444
+ : 'rgba(255, 255, 255, 0.23)',
445
+ '&.Mui-disabled': {
446
+ border: `1px solid ${palette.action?.disabledBackground}`,
447
+ },
448
+ '&:hover': {
449
+ borderColor:
450
+ palette.mode === 'light'
451
+ ? 'rgba(0, 0, 0, 0.23)'
452
+ : 'rgba(255, 255, 255, 0.23)',
453
+ backgroundColor: alpha(
454
+ palette.text?.primary || '',
455
+ palette.action?.hoverOpacity || 0.04,
456
+ ),
457
+ },
458
+ },
459
+ },
460
+ {
461
+ props: { variant: 'text', color: 'grey' },
462
+ style: {
463
+ color: palette.text?.primary,
464
+ '&:hover': {
465
+ backgroundColor: alpha(
466
+ palette.text?.primary || '',
467
+ palette.action?.hoverOpacity || 0.04,
468
+ ),
469
+ },
470
+ },
471
+ },
472
+ ],
473
+ },
474
+ ...(overrides?.components || undefined),
475
+ },
476
+ }) as IobTheme;
477
+ }
478
+
479
+ export default customTheme;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ // Icon copied from https://github.com/FortAwesome/Font-Awesome/blob/0d1f27efb836eb2ab994ba37221849ed64a73e5c/svgs/regular/
5
+ const IconAdapter = (props: IconProps) => <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ onClick={e => props.onClick && props.onClick(e)}
8
+ viewBox="0 0 512 512"
9
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
11
+ className={props.className}
12
+ style={props.style}
13
+ >
14
+ <path
15
+ fill="currentColor"
16
+ d="M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"
17
+ />
18
+ </svg>;
19
+
20
+ export default IconAdapter;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ // Icon copied from https://github.com/FortAwesome/Font-Awesome/blob/0d1f27efb836eb2ab994ba37221849ed64a73e5c/svgs/regular/
5
+ const IconAlias = (props: IconProps) => <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ onClick={e => props.onClick && props.onClick(e)}
8
+ viewBox="0 0 512 512"
9
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
11
+ className={props.className}
12
+ style={props.style}
13
+ >
14
+ <path
15
+ fill="currentColor"
16
+ d="M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"
17
+ />
18
+ </svg>;
19
+
20
+ export default IconAlias;
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ const IconChannel = (props: IconProps) => <svg
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ onClick={e => props.onClick && props.onClick(e)}
7
+ viewBox="0 0 320 320"
8
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ className={props.className}
11
+ style={props.style}
12
+ >
13
+ <g fill="currentColor">
14
+ <rect rx="32" height="272" width="267" y="25" x="25" strokeWidth="15" stroke="currentColor" fill="none" />
15
+ <ellipse stroke="currentColor" ry="26" rx="26" cy="248" cx="160" fill="none" strokeWidth="15" />
16
+ <line y2="201.94531" x2="159.5" y1="46.94531" x1="159.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="none" />
17
+ <rect height="27" width="50" y="79.7979" x="133.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="#fff" />
18
+ </g>
19
+ </svg>;
20
+
21
+ export default IconChannel;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ // Copyright Apache 2.0 https://raw.githubusercontent.com/material-icons/material-icons/master/svg/filter_alt/baseline.svg
5
+ // https://github.com/material-icons/material-icons/blob/master/LICENSE
6
+ const IconClearFilter = (props: IconProps) => <svg
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ onClick={e => props.onClick && props.onClick(e)}
9
+ viewBox="0 0 24 24"
10
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
11
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
12
+ className={props.className}
13
+ style={props.style}
14
+ >
15
+ <path
16
+ fill="currentColor"
17
+ stroke="currentColor"
18
+ d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"
19
+ />
20
+ </svg>;
21
+
22
+ export default IconClearFilter;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ // Icon copied from https://github.com/FortAwesome/Font-Awesome/blob/0d1f27efb836eb2ab994ba37221849ed64a73e5c/svgs/regular/
5
+ const IconClosed = (props: IconProps) => <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ onClick={e => props.onClick && props.onClick(e)}
8
+ viewBox="0 0 650 512"
9
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
11
+ className={props.className}
12
+ style={props.style}
13
+ >
14
+ <path fill="currentColor" d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z" />
15
+ </svg>;
16
+
17
+ export default IconClosed;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ const IconCopy = (props: IconProps) => <svg
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ onClick={e => props.onClick && props.onClick(e)}
7
+ viewBox="0 0 512 512"
8
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ className={props.className}
11
+ style={props.style}
12
+ >
13
+ <path fill="currentColor" d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z" />
14
+ </svg>;
15
+
16
+ export default IconCopy;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ const IconDevice = (props: IconProps) => <svg
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ onClick={e => props.onClick && props.onClick(e)}
7
+ viewBox="0 0 320 320"
8
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ className={props.className}
11
+ style={props.style}
12
+ >
13
+ <g fill="currentColor">
14
+ <rect rx="32" height="272" width="267" y="25" x="25" strokeWidth="15" stroke="currentColor" fill="none" />
15
+ <ellipse stroke="currentColor" ry="26" rx="26" cy="252" cx="160" fillOpacity="null" strokeOpacity="null" strokeWidth="15" fill="#fff" />
16
+ <line y2="201.94531" x2="159.5" y1="46.94531" x1="159.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="none" />
17
+ <rect height="27" width="50" y="140.83068" x="133.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="#fff" />
18
+ <ellipse stroke="currentColor" ry="26" rx="26" cy="251" cx="241" fillOpacity="null" strokeOpacity="null" strokeWidth="15" fill="#fff" />
19
+ <line y2="200.94531" x2="240.5" y1="45.94531" x1="240.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="none" />
20
+ <rect height="27" width="50" y="78.7979" x="214.5" strokeWidth="15" stroke="currentColor" fill="#fff" />
21
+ <ellipse stroke="currentColor" ry="26" rx="26" cy="252" cx="84" fillOpacity="null" strokeOpacity="null" strokeWidth="15" fill="#fff" />
22
+ <line y2="201.94531" x2="83.5" y1="46.94531" x1="83.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="none" />
23
+ <rect height="27" width="50" y="79.7979" x="57.5" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" fill="#fff" />
24
+ </g>
25
+ </svg>;
26
+
27
+ export default IconDevice;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ // Icon copied from https://github.com/FortAwesome/Font-Awesome/blob/0d1f27efb836eb2ab994ba37221849ed64a73e5c/svgs/regular/
5
+ const IconDocument = (props: IconProps) => <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ viewBox="0 0 512 512"
8
+ onClick={e => props.onClick && props.onClick(e)}
9
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
11
+ className={props.className}
12
+ style={props.style}
13
+ >
14
+ <path fill="currentColor" d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z" />
15
+ </svg>;
16
+
17
+ export default IconDocument;