@iobroker/gui-components 10.3.13 → 10.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/build/Components/AnimatedIcons/IconBell.d.ts +21 -0
- package/build/Components/AnimatedIcons/IconBell.js +50 -0
- package/build/Components/AnimatedIcons/IconBell.js.map +1 -0
- package/build/Components/AnimatedIcons/IconConnectionState.d.ts +19 -0
- package/build/Components/AnimatedIcons/IconConnectionState.js +25 -0
- package/build/Components/AnimatedIcons/IconConnectionState.js.map +1 -0
- package/build/Components/AnimatedIcons/IconExpertMode.d.ts +22 -0
- package/build/Components/AnimatedIcons/IconExpertMode.js +47 -0
- package/build/Components/AnimatedIcons/IconExpertMode.js.map +1 -0
- package/build/Components/AnimatedIcons/IconFolder.d.ts +22 -0
- package/build/Components/AnimatedIcons/IconFolder.js +29 -0
- package/build/Components/AnimatedIcons/IconFolder.js.map +1 -0
- package/build/Components/AnimatedIcons/IconMenuArrow.d.ts +23 -0
- package/build/Components/AnimatedIcons/IconMenuArrow.js +26 -0
- package/build/Components/AnimatedIcons/IconMenuArrow.js.map +1 -0
- package/build/Components/AnimatedIcons/IconPlayPause.d.ts +23 -0
- package/build/Components/AnimatedIcons/IconPlayPause.js +25 -0
- package/build/Components/AnimatedIcons/IconPlayPause.js.map +1 -0
- package/build/Components/AnimatedIcons/IconRefresh.d.ts +23 -0
- package/build/Components/AnimatedIcons/IconRefresh.js +86 -0
- package/build/Components/AnimatedIcons/IconRefresh.js.map +1 -0
- package/build/Components/AnimatedIcons/IconResult.d.ts +21 -0
- package/build/Components/AnimatedIcons/IconResult.js +36 -0
- package/build/Components/AnimatedIcons/IconResult.js.map +1 -0
- package/build/Components/AnimatedIcons/IconStatusLed.d.ts +25 -0
- package/build/Components/AnimatedIcons/IconStatusLed.js +58 -0
- package/build/Components/AnimatedIcons/IconStatusLed.js.map +1 -0
- package/build/Components/AnimatedIcons/IconTrash.d.ts +20 -0
- package/build/Components/AnimatedIcons/IconTrash.js +23 -0
- package/build/Components/AnimatedIcons/IconTrash.js.map +1 -0
- package/build/Components/AnimatedIcons/common.d.ts +31 -0
- package/build/Components/AnimatedIcons/common.js +164 -0
- package/build/Components/AnimatedIcons/common.js.map +1 -0
- package/build/Components/DeviceType/DeviceTypeIcon.js +2 -1
- package/build/Components/DeviceType/DeviceTypeIcon.js.map +1 -1
- package/build/Components/DeviceType/i18n/de.json +1 -0
- package/build/Components/DeviceType/i18n/en.json +1 -0
- package/build/Components/DeviceType/i18n/es.json +1 -0
- package/build/Components/DeviceType/i18n/fr.json +1 -0
- package/build/Components/DeviceType/i18n/it.json +1 -0
- package/build/Components/DeviceType/i18n/nl.json +1 -0
- package/build/Components/DeviceType/i18n/pl.json +1 -0
- package/build/Components/DeviceType/i18n/pt.json +1 -0
- package/build/Components/DeviceType/i18n/ru.json +1 -0
- package/build/Components/DeviceType/i18n/uk.json +1 -0
- package/build/Components/DeviceType/i18n/zh-cn.json +1 -0
- package/build/Components/FileBrowser.js +4 -5
- package/build/Components/FileBrowser.js.map +1 -1
- package/build/Components/Loaders/Community.d.ts +13 -2
- package/build/Components/Loaders/Community.js +176 -243
- package/build/Components/Loaders/Community.js.map +1 -1
- package/build/Components/Loaders/CommunityLegacy.d.ts +32 -0
- package/build/Components/Loaders/CommunityLegacy.js +266 -0
- package/build/Components/Loaders/CommunityLegacy.js.map +1 -0
- package/build/Components/ObjectBrowser/ObjectBrowserClass.d.ts +9 -0
- package/build/Components/ObjectBrowser/ObjectBrowserClass.js +62 -2
- package/build/Components/ObjectBrowser/ObjectBrowserClass.js.map +1 -1
- package/build/Components/ObjectBrowser/dialogs.js +2 -2
- package/build/Components/ObjectBrowser/dialogs.js.map +1 -1
- package/build/Components/ObjectBrowser/renderLeaf.js +6 -6
- package/build/Components/ObjectBrowser/renderLeaf.js.map +1 -1
- package/build/Components/ObjectBrowser/rowAnimation.d.ts +9 -0
- package/build/Components/ObjectBrowser/rowAnimation.js +122 -0
- package/build/Components/ObjectBrowser/rowAnimation.js.map +1 -0
- package/build/Components/ObjectBrowser/toolbar.js +5 -4
- package/build/Components/ObjectBrowser/toolbar.js.map +1 -1
- package/build/index.d.ts +13 -0
- package/build/index.js +12 -0
- package/build/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** The node was unfolded and its children are rendered: let them slide out from under its row */
|
|
2
|
+
export declare function unfold(container: HTMLElement | null, id: string): Animation[];
|
|
3
|
+
/**
|
|
4
|
+
* The node is about to be folded: its children slide back under its row. The rows stay in their end
|
|
5
|
+
* position until `onFinished` removed them and canceled the animations.
|
|
6
|
+
*
|
|
7
|
+
* @returns null if nothing can be animated, then fold at once
|
|
8
|
+
*/
|
|
9
|
+
export declare function fold(container: HTMLElement | null, id: string, onFinished: () => void): Animation[] | null;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 Denis Haev (bluefox) <dogafox@gmail.com>
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*
|
|
6
|
+
* Unfolding and folding of a node in the table: the children slide out from under the row of the node
|
|
7
|
+
* (or back under it), and the rows below them move along. Only `transform` and `clip-path` are animated,
|
|
8
|
+
* so the layout is the final one from the start, and `measureRenderedRows` still reads the real heights.
|
|
9
|
+
*/
|
|
10
|
+
import { prefersReducedMotion } from '../AnimatedIcons/common';
|
|
11
|
+
const EASING = 'cubic-bezier(0.2, 0, 0, 1)';
|
|
12
|
+
/** The row a child of the table container belongs to (rows in a drag-and-drop wrapper too) */
|
|
13
|
+
function rowIdOf(element) {
|
|
14
|
+
if (element.dataset.detailsOf) {
|
|
15
|
+
return element.dataset.detailsOf;
|
|
16
|
+
}
|
|
17
|
+
const row = (element.id ? element : element.firstElementChild);
|
|
18
|
+
return row?.id || undefined;
|
|
19
|
+
}
|
|
20
|
+
function collectParts(container, id) {
|
|
21
|
+
if (!container || !id || typeof Element === 'undefined' || !Element.prototype.animate || prefersReducedMotion()) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const prefix = `${id}.`;
|
|
25
|
+
let top = null;
|
|
26
|
+
const block = [];
|
|
27
|
+
const below = [];
|
|
28
|
+
for (const child of Array.from(container.children)) {
|
|
29
|
+
const rowId = rowIdOf(child);
|
|
30
|
+
if (!rowId) {
|
|
31
|
+
// the spacers above and below the rendered rows
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (rowId === id) {
|
|
35
|
+
top = child.getBoundingClientRect().bottom;
|
|
36
|
+
}
|
|
37
|
+
else if (top !== null) {
|
|
38
|
+
if (!below.length && rowId.startsWith(prefix)) {
|
|
39
|
+
block.push(child);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
below.push(child);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (top === null || !block.length) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const blockBottom = below.length
|
|
50
|
+
? below[0].getBoundingClientRect().top
|
|
51
|
+
: block[block.length - 1].getBoundingClientRect().bottom;
|
|
52
|
+
const distance = Math.min(blockBottom, container.getBoundingClientRect().bottom) - top;
|
|
53
|
+
if (distance < 2) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return { top, block, below, distance };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Key frames of a row of the children: it moves down from under the row of the node and is cut off,
|
|
60
|
+
* as long as it is still under it
|
|
61
|
+
*/
|
|
62
|
+
function childFrames(element, top, distance) {
|
|
63
|
+
const rect = element.getBoundingClientRect();
|
|
64
|
+
const y = rect.top - top;
|
|
65
|
+
const height = rect.height;
|
|
66
|
+
const from = `translateY(${-distance}px)`;
|
|
67
|
+
if (y >= distance || !height) {
|
|
68
|
+
return [{ transform: from }, { transform: 'translateY(0)' }];
|
|
69
|
+
}
|
|
70
|
+
// the part above the lower edge of the node row is hidden: distance * (1 - progress) - y
|
|
71
|
+
const frames = [
|
|
72
|
+
{ offset: 0, transform: from, clipPath: `inset(${Math.min(height, distance - y)}px 0 0 0)` },
|
|
73
|
+
];
|
|
74
|
+
const startsToShow = 1 - (y + height) / distance;
|
|
75
|
+
if (startsToShow > 0) {
|
|
76
|
+
frames.push({ offset: startsToShow, clipPath: `inset(${height}px 0 0 0)` });
|
|
77
|
+
}
|
|
78
|
+
const fullyShown = 1 - y / distance;
|
|
79
|
+
if (fullyShown < 1) {
|
|
80
|
+
frames.push({ offset: fullyShown, clipPath: 'inset(0px 0 0 0)' });
|
|
81
|
+
}
|
|
82
|
+
frames.push({ offset: 1, transform: 'translateY(0)', clipPath: 'inset(0px 0 0 0)' });
|
|
83
|
+
return frames;
|
|
84
|
+
}
|
|
85
|
+
function animate(parts, options) {
|
|
86
|
+
const animations = parts.block.map(element => element.animate(childFrames(element, parts.top, parts.distance), options));
|
|
87
|
+
const frames = [{ transform: `translateY(${-parts.distance}px)` }, { transform: 'translateY(0)' }];
|
|
88
|
+
parts.below.forEach(element => animations.push(element.animate(frames, options)));
|
|
89
|
+
return animations;
|
|
90
|
+
}
|
|
91
|
+
function duration(distance) {
|
|
92
|
+
return Math.round(Math.min(340, 140 + distance * 0.4));
|
|
93
|
+
}
|
|
94
|
+
/** The node was unfolded and its children are rendered: let them slide out from under its row */
|
|
95
|
+
export function unfold(container, id) {
|
|
96
|
+
const parts = collectParts(container, id);
|
|
97
|
+
if (!parts) {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
return animate(parts, { duration: duration(parts.distance), easing: EASING });
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The node is about to be folded: its children slide back under its row. The rows stay in their end
|
|
104
|
+
* position until `onFinished` removed them and canceled the animations.
|
|
105
|
+
*
|
|
106
|
+
* @returns null if nothing can be animated, then fold at once
|
|
107
|
+
*/
|
|
108
|
+
export function fold(container, id, onFinished) {
|
|
109
|
+
const parts = collectParts(container, id);
|
|
110
|
+
if (!parts) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
const animations = animate(parts, {
|
|
114
|
+
duration: Math.round(duration(parts.distance) * 0.8),
|
|
115
|
+
easing: EASING,
|
|
116
|
+
direction: 'reverse',
|
|
117
|
+
fill: 'forwards',
|
|
118
|
+
});
|
|
119
|
+
animations[0].onfinish = onFinished;
|
|
120
|
+
return animations;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=rowAnimation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowAnimation.js","sourceRoot":"./src/","sources":["Components/ObjectBrowser/rowAnimation.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2026 Denis Haev (bluefox) <dogafox@gmail.com>\n *\n * MIT License\n *\n * Unfolding and folding of a node in the table: the children slide out from under the row of the node\n * (or back under it), and the rows below them move along. Only `transform` and `clip-path` are animated,\n * so the layout is the final one from the start, and `measureRenderedRows` still reads the real heights.\n */\nimport { prefersReducedMotion } from '../AnimatedIcons/common';\n\nconst EASING = 'cubic-bezier(0.2, 0, 0, 1)';\n\ninterface RowParts {\n /** Lower edge of the row of the node (and of its details panel) */\n top: number;\n /** The rendered rows of the children (and of their children) */\n block: HTMLElement[];\n /** The rendered rows below the children */\n below: HTMLElement[];\n /** How far the rows move: the height of the children, at most down to the end of the visible area */\n distance: number;\n}\n\n/** The row a child of the table container belongs to (rows in a drag-and-drop wrapper too) */\nfunction rowIdOf(element: HTMLElement): string | undefined {\n if (element.dataset.detailsOf) {\n return element.dataset.detailsOf;\n }\n const row = (element.id ? element : element.firstElementChild) as HTMLElement | null;\n return row?.id || undefined;\n}\n\nfunction collectParts(container: HTMLElement | null, id: string): RowParts | null {\n if (!container || !id || typeof Element === 'undefined' || !Element.prototype.animate || prefersReducedMotion()) {\n return null;\n }\n const prefix = `${id}.`;\n let top: number | null = null;\n const block: HTMLElement[] = [];\n const below: HTMLElement[] = [];\n for (const child of Array.from(container.children) as HTMLElement[]) {\n const rowId = rowIdOf(child);\n if (!rowId) {\n // the spacers above and below the rendered rows\n continue;\n }\n if (rowId === id) {\n top = child.getBoundingClientRect().bottom;\n } else if (top !== null) {\n if (!below.length && rowId.startsWith(prefix)) {\n block.push(child);\n } else {\n below.push(child);\n }\n }\n }\n if (top === null || !block.length) {\n return null;\n }\n const blockBottom = below.length\n ? below[0].getBoundingClientRect().top\n : block[block.length - 1].getBoundingClientRect().bottom;\n const distance = Math.min(blockBottom, container.getBoundingClientRect().bottom) - top;\n if (distance < 2) {\n return null;\n }\n return { top, block, below, distance };\n}\n\n/**\n * Key frames of a row of the children: it moves down from under the row of the node and is cut off,\n * as long as it is still under it\n */\nfunction childFrames(element: HTMLElement, top: number, distance: number): Keyframe[] {\n const rect = element.getBoundingClientRect();\n const y = rect.top - top;\n const height = rect.height;\n const from = `translateY(${-distance}px)`;\n if (y >= distance || !height) {\n return [{ transform: from }, { transform: 'translateY(0)' }];\n }\n // the part above the lower edge of the node row is hidden: distance * (1 - progress) - y\n const frames: Keyframe[] = [\n { offset: 0, transform: from, clipPath: `inset(${Math.min(height, distance - y)}px 0 0 0)` },\n ];\n const startsToShow = 1 - (y + height) / distance;\n if (startsToShow > 0) {\n frames.push({ offset: startsToShow, clipPath: `inset(${height}px 0 0 0)` });\n }\n const fullyShown = 1 - y / distance;\n if (fullyShown < 1) {\n frames.push({ offset: fullyShown, clipPath: 'inset(0px 0 0 0)' });\n }\n frames.push({ offset: 1, transform: 'translateY(0)', clipPath: 'inset(0px 0 0 0)' });\n return frames;\n}\n\nfunction animate(parts: RowParts, options: KeyframeAnimationOptions): Animation[] {\n const animations = parts.block.map(element =>\n element.animate(childFrames(element, parts.top, parts.distance), options),\n );\n const frames: Keyframe[] = [{ transform: `translateY(${-parts.distance}px)` }, { transform: 'translateY(0)' }];\n parts.below.forEach(element => animations.push(element.animate(frames, options)));\n return animations;\n}\n\nfunction duration(distance: number): number {\n return Math.round(Math.min(340, 140 + distance * 0.4));\n}\n\n/** The node was unfolded and its children are rendered: let them slide out from under its row */\nexport function unfold(container: HTMLElement | null, id: string): Animation[] {\n const parts = collectParts(container, id);\n if (!parts) {\n return [];\n }\n return animate(parts, { duration: duration(parts.distance), easing: EASING });\n}\n\n/**\n * The node is about to be folded: its children slide back under its row. The rows stay in their end\n * position until `onFinished` removed them and canceled the animations.\n *\n * @returns null if nothing can be animated, then fold at once\n */\nexport function fold(container: HTMLElement | null, id: string, onFinished: () => void): Animation[] | null {\n const parts = collectParts(container, id);\n if (!parts) {\n return null;\n }\n const animations = animate(parts, {\n duration: Math.round(duration(parts.distance) * 0.8),\n easing: EASING,\n direction: 'reverse',\n fill: 'forwards',\n });\n animations[0].onfinish = onFinished;\n return animations;\n}\n"]}
|
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import { Badge, Box, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, Tooltip } from '@mui/material';
|
|
10
|
-
import { Add as AddIcon, Build as BuildIcon, Close as IconClose, LooksOne as LooksOneIcon, Publish as PublishIcon,
|
|
10
|
+
import { Add as AddIcon, Build as BuildIcon, Close as IconClose, LooksOne as LooksOneIcon, Publish as PublishIcon, TextFields as TextFieldsIcon, ViewColumn as IconColumns, ContentPaste, UploadFile, } from '@mui/icons-material';
|
|
11
11
|
import { Utils } from '../Utils';
|
|
12
|
-
import {
|
|
12
|
+
import { IconExpertMode } from '../AnimatedIcons/IconExpertMode';
|
|
13
13
|
import { IconClosed } from '../../icons/IconClosed';
|
|
14
14
|
import { IconOpen } from '../../icons/IconOpen';
|
|
15
15
|
import { IconClearFilter } from '../../icons/IconClearFilter';
|
|
16
16
|
import { Icon } from '../Icon';
|
|
17
|
+
import { IconRefresh } from '../AnimatedIcons/IconRefresh';
|
|
17
18
|
import { colGrow, colWidth, CustomFilterInput, CustomFilterSelect, getName, getSelectIdIconFromObjects, getVisibleItems, } from './utils';
|
|
18
19
|
import { styles } from './styles';
|
|
19
20
|
import { ITEM_IMAGES } from './constants';
|
|
@@ -116,7 +117,7 @@ export function getToolbar(that) {
|
|
|
116
117
|
React.createElement(Tooltip, { title: that.props.t('ra_Refresh tree'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
117
118
|
React.createElement("div", null,
|
|
118
119
|
React.createElement(IconButton, { onClick: () => that.refreshComponent(), disabled: that.state.updating, size: "large" },
|
|
119
|
-
React.createElement(
|
|
120
|
+
React.createElement(IconRefresh, { loading: !!that.state.updating })))),
|
|
120
121
|
that.props.showExpertButton && !that.props.expertMode && (React.createElement(Tooltip, { title: that.props.t('ra_expertMode'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
121
122
|
React.createElement(IconButton, { key: "expertMode", sx: (theme) => ({
|
|
122
123
|
color: that.state.filter.expertMode ? theme.palette.expert : undefined,
|
|
@@ -128,7 +129,7 @@ export function getToolbar(that) {
|
|
|
128
129
|
filter,
|
|
129
130
|
});
|
|
130
131
|
}, size: "large" },
|
|
131
|
-
React.createElement(
|
|
132
|
+
React.createElement(IconExpertMode, { active: !!that.state.filter.expertMode })))),
|
|
132
133
|
!that.props.disableColumnSelector && that.width !== 'xs' && (React.createElement(Tooltip, { title: that.props.t('ra_Configure'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
133
134
|
React.createElement(IconButton, { key: "columnSelector", color: that.state.columnsAuto ? 'primary' : 'default', onClick: () => that.setState({ columnsSelectorShow: true }), size: "large" },
|
|
134
135
|
React.createElement(IconColumns, null)))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.js","sourceRoot":"./src/","sources":["Components/ObjectBrowser/toolbar.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2020-2026, Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n * Part of the object browser, see ./ObjectBrowserClass.tsx\n */\nimport React, { type JSX } from 'react';\nimport { Badge, Box, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, type Theme, Tooltip } from '@mui/material';\nimport {\n Add as AddIcon,\n Build as BuildIcon,\n Close as IconClose,\n LooksOne as LooksOneIcon,\n Publish as PublishIcon,\n Refresh as RefreshIcon,\n TextFields as TextFieldsIcon,\n ViewColumn as IconColumns,\n ContentPaste,\n UploadFile,\n} from '@mui/icons-material';\nimport { Utils } from '../Utils';\nimport { IconExpert } from '../../icons/IconExpert';\nimport { IconClosed } from '../../icons/IconClosed';\nimport { IconOpen } from '../../icons/IconOpen';\nimport { IconClearFilter } from '../../icons/IconClearFilter';\nimport { Icon } from '../Icon';\nimport {\n colGrow,\n colWidth,\n CustomFilterInput,\n CustomFilterSelect,\n getName,\n getSelectIdIconFromObjects,\n getVisibleItems,\n} from './utils';\nimport type { IobTheme } from '../../types';\nimport { type InputSelectItem } from './types';\nimport { styles } from './styles';\nimport { ITEM_IMAGES } from './constants';\nimport type { ObjectBrowserClass } from './ObjectBrowserClass';\n\nexport function getFilterInput(that: ObjectBrowserClass, name: 'id' | 'name'): JSX.Element {\n return (\n <CustomFilterInput\n key={`${name}_${that.state.filterKey}`}\n styles={that.styles.filterInput}\n name={name}\n texts={that.texts}\n t={that.props.t}\n initialValue={that.state.filter[name]}\n onChange={(name, value) => {\n const filter = { ...that.state.filter };\n if (value === undefined) {\n delete filter[name];\n } else {\n filter[name] = value;\n }\n that.setState({ filter }, () => {\n that.doFilter();\n that.props.onFilterChanged?.(filter);\n });\n }}\n />\n );\n}\n\nexport function getFilterSelect(\n that: ObjectBrowserClass,\n name: 'room' | 'func' | 'type' | 'custom' | 'role',\n values?: (string | InputSelectItem)[],\n): JSX.Element {\n return (\n <CustomFilterSelect\n key={`${name}_${that.state.filterKey}`}\n name={name}\n texts={that.texts}\n initialValue={that.state.filter[name] || []}\n values={values || []}\n onChange={(name, value) => {\n const filter = { ...that.state.filter };\n if (value === undefined) {\n delete filter[name];\n } else {\n filter[name] = value;\n }\n that.setState({ filter }, () => {\n that.doFilter();\n that.props.onFilterChanged?.(filter);\n });\n }}\n />\n );\n}\n\nexport function getFilterSelectRole(that: ObjectBrowserClass): JSX.Element {\n return getFilterSelect(\n that,\n 'role',\n that.info.roles.map(it => it.role),\n );\n}\n\nexport function getFilterSelectRoom(that: ObjectBrowserClass): JSX.Element {\n const rooms: InputSelectItem[] = that.info.roomEnums.map(\n id =>\n ({\n name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),\n value: id,\n icon: (\n <Icon\n src={that.objects[id]?.common?.icon || ''}\n style={styles.selectIcon}\n />\n ),\n }) as InputSelectItem,\n );\n\n return getFilterSelect(that, 'room', rooms);\n}\n\nexport function getFilterSelectFunction(that: ObjectBrowserClass): JSX.Element {\n const func: InputSelectItem[] = that.info.funcEnums.map(\n id =>\n ({\n name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),\n value: id,\n icon: (\n <Icon\n src={that.objects[id]?.common?.icon || ''}\n style={styles.selectIcon}\n />\n ),\n }) as InputSelectItem,\n );\n\n return getFilterSelect(that, 'func', func);\n}\n\nexport function getFilterSelectType(that: ObjectBrowserClass): JSX.Element {\n const types = that.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type] || null,\n }));\n\n return getFilterSelect(that, 'type', types);\n}\n\nexport function getFilterSelectCustoms(that: ObjectBrowserClass): JSX.Element | null {\n if (that.info.customs.length > 1) {\n const customs = that.info.customs.map(id => ({\n name: id === '_' ? that.texts.filterCustomsWithout : id,\n value: id,\n icon:\n id === '_' ? null : (\n <Icon\n src={getSelectIdIconFromObjects(that.objects, id, that.props.lang, that.imagePrefix) || ''}\n style={styles.selectIcon}\n />\n ),\n }));\n return getFilterSelect(that, 'custom', customs);\n }\n return null;\n}\n\n/**\n * Renders the toolbar.\n */\nexport function getToolbar(that: ObjectBrowserClass): JSX.Element {\n let allowObjectCreation = false;\n if (that.state.selected.length || that.state.selectedNonObject) {\n const id = that.state.selected[0] || that.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (that.objects[id] && that.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (that.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return (\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n overflowX: 'auto',\n }}\n >\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip\n title={that.props.t('ra_Refresh tree')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>\n <IconButton\n onClick={() => that.refreshComponent()}\n disabled={that.state.updating}\n size=\"large\"\n >\n <RefreshIcon />\n </IconButton>\n </div>\n </Tooltip>\n {that.props.showExpertButton && !that.props.expertMode && (\n <Tooltip\n title={that.props.t('ra_expertMode')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expertMode\"\n sx={(theme: IobTheme) => ({\n color: that.state.filter.expertMode ? theme.palette.expert : undefined,\n })}\n onClick={() => {\n const filter = { ...that.state.filter };\n filter.expertMode = !filter.expertMode;\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n\n that.setState({\n filter,\n });\n }}\n size=\"large\"\n >\n <IconExpert />\n </IconButton>\n </Tooltip>\n )}\n {!that.props.disableColumnSelector && that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Configure')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"columnSelector\"\n color={that.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => that.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>\n )}\n {that.width !== 'xs' && that.state.expandAllVisible && (\n <Tooltip\n title={that.props.t('ra_Expand all nodes')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expandAll\"\n onClick={() => that.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip\n title={that.props.t('ra_Collapse all nodes')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"collapseAll\"\n onClick={() => that.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n {that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Expand one step node')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => that.onExpandVisible()}\n size=\"large\"\n >\n <Badge\n badgeContent={that.state.depth}\n color=\"secondary\"\n sx={(theme: Theme) => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n })}\n >\n <IconOpen />\n </Badge>\n </IconButton>\n </Tooltip>\n )}\n {that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Collapse one step node')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => that.onCollapseVisible()}\n size=\"large\"\n >\n <Badge\n sx={(theme: Theme) => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n })}\n badgeContent={that.state.depth}\n color=\"secondary\"\n >\n <IconClosed />\n </Badge>\n </IconButton>\n </Tooltip>\n )}\n {that.props.objectStatesView && (\n <Tooltip\n title={that.props.t('ra_Toggle the states view')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => that.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={that.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n\n <Tooltip\n title={that.props.t('ra_Show/Hide object descriptions')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => {\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.desc`,\n that.state.showDescription ? 'false' : 'true',\n );\n that.setState({ showDescription: !that.state.showDescription });\n }}\n size=\"large\"\n >\n <TextFieldsIcon color={that.state.showDescription ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n\n {that.props.objectAddBoolean ? (\n <Tooltip\n title={that.toolTipObjectCreating()}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() =>\n that.setState({\n modalNewObj: {\n id: that.state.selected[0] || that.state.selectedNonObject,\n },\n })\n }\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n ) : null}\n\n {that.props.objectImportExport && (\n <Tooltip\n title={that.props.t('ra_Add objects tree from JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={e => {\n if (that.props.objectBrowserInsertJsonObjects) {\n that.setState({ showImportMenu: e.currentTarget });\n } else {\n that.onOpenFile();\n }\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>\n )}\n {that.props.objectBrowserInsertJsonObjects ? (\n <Menu\n anchorEl={that.state.showImportMenu}\n open={!!that.state.showImportMenu}\n onClose={() => that.setState({ showImportMenu: null })}\n >\n <MenuItem onClick={() => that.setState({ showImportMenu: null }, () => that.onOpenFile())}>\n <ListItemIcon>\n <UploadFile />\n </ListItemIcon>\n <ListItemText>{that.props.t('ra_From file')}</ListItemText>\n </MenuItem>\n <MenuItem onClick={() => that.setState({ showImportMenu: null, showImportDialog: true })}>\n <ListItemIcon>\n <ContentPaste />\n </ListItemIcon>\n <ListItemText>{that.props.t('ra_From text')}</ListItemText>\n </MenuItem>\n </Menu>\n ) : null}\n {that.props.objectImportExport && (!!that.state.selected.length || that.state.selectedNonObject) && (\n <Tooltip\n title={that.props.t('ra_Save objects tree as JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => that.setState({ showExportDialog: that._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>\n )}\n </div>\n {!!that.props.objectBrowserEditObject && that.width !== 'xs' && (\n <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${that.props.t('ra_Objects')}: ${Object.keys(that.info.objects).length}, ${that.props.t(\n 'ra_States',\n )}: ${Object.keys(that.info.objects).filter(el => that.info.objects[el].type === 'state').length}`}\n </div>\n )}\n {that.props.objectEditBoolean && (\n <Tooltip\n title={that.props.t('ra_Edit custom config')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = that.root ? getVisibleItems(that.root, 'state', that.objects) : [];\n\n if (ids.length) {\n that.pauseSubscribe(true);\n\n if (ids.length === 1) {\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.objectSelected`,\n that.state.selected[0],\n );\n that.props.router?.doNavigate(null, 'custom', that.state.selected[0]);\n }\n that.setState({ customDialog: ids, customDialogAll: true });\n } else {\n that.setState({ toast: that.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n}\n\n/**\n * Render the right handle for resizing\n */\nexport function renderHandleRight(that: ObjectBrowserClass): JSX.Element {\n return (\n <Box\n component=\"div\"\n className=\"iob-ob-resize-handler\"\n sx={{ ...styles.resizeHandle, ...styles.resizeHandleRight }}\n onMouseDown={that.resizerMouseDown}\n onDoubleClick={that.resizerReset}\n title={that.props.t('ra_Double click to reset table layout')}\n />\n );\n}\n\nexport function renderHeader(that: ObjectBrowserClass): JSX.Element {\n let filterClearInValue = null;\n\n if (!that.columnsVisibility.buttons && !that.isFilterEmpty()) {\n filterClearInValue = (\n <IconButton\n onClick={() => that.clearFilter()}\n style={styles.buttonClearFilter}\n title={that.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose style={styles.buttonClearFilterIcon} />\n </IconButton>\n );\n }\n\n if (that.width === 'xs') {\n return (\n <div style={Utils.getStyle(that.props.theme, styles.headerRow)}>\n <div style={{ ...styles.headerCell, width: '100%' }}>{getFilterInput(that, 'id')}</div>\n </div>\n );\n }\n\n return (\n <div style={Utils.getStyle(that.props.theme, styles.headerRow)}>\n <div\n style={{ ...styles.headerCell, width: colWidth('id'), flexGrow: colGrow('id'), position: 'relative' }}\n data-min={240}\n data-name=\"id\"\n >\n {getFilterInput(that, 'id')}\n {renderHandleRight(that)}\n </div>\n {that.columnsVisibility.name ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('name'),\n flexGrow: colGrow('name'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"name\"\n >\n {getFilterInput(that, 'name')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {!that.state.statesView && (\n <>\n {that.columnsVisibility.type ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('type'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"type\"\n >\n {getFilterSelectType(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.role ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('role'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"role\"\n >\n {getFilterSelectRole(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.room ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('room'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"room\"\n >\n {getFilterSelectRoom(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.func ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('func'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"func\"\n >\n {getFilterSelectFunction(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n </>\n )}\n {that.state.statesView && (\n <>\n {/* Every one of these columns can be switched off in the configuration dialog,\n so the header must ask for it just like the columns of the normal view do. */}\n {that.columnsVisibility.changedFrom ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('changedFrom'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"changedFrom\"\n >\n {that.props.t('ra_Changed from')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.qualityCode ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('qualityCode'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"qualityCode\"\n >\n {that.props.t('ra_Quality code')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.timestamp ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('timestamp'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"timestamp\"\n >\n {that.props.t('ra_Timestamp')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.lastChange ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('lastChange'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"lastChange\"\n >\n {that.props.t('ra_Last change')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n </>\n )}\n {that.adapterColumns.map(item => (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: (that.columnsVisibility as Record<string, number | string>)[item.id],\n }}\n title={item.adapter}\n key={item.id}\n data-min={100}\n data-name={item.id}\n >\n {item.name}\n </div>\n ))}\n {that.columnsVisibility.val ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('val'),\n position: 'relative',\n }}\n data-min={120}\n data-name=\"val\"\n >\n {that.props.t('ra_Value')}\n {filterClearInValue}\n {/* A handle takes the place from the column that follows, so it is only useful\n if there is one. It is the only way to resize the buttons column. */}\n {that.columnsVisibility.buttons ? renderHandleRight(that) : null}\n </div>\n ) : null}\n {that.columnsVisibility.buttons ? (\n <div\n title={that.texts.filter_custom}\n style={{ ...styles.headerCell, width: colWidth('buttons') }}\n data-min={80}\n data-name=\"buttons\"\n >\n {' '}\n {getFilterSelectCustoms(that)}\n </div>\n ) : null}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"./src/","sources":["Components/ObjectBrowser/toolbar.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2020-2026, Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n * Part of the object browser, see ./ObjectBrowserClass.tsx\n */\nimport React, { type JSX } from 'react';\nimport { Badge, Box, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, type Theme, Tooltip } from '@mui/material';\nimport {\n Add as AddIcon,\n Build as BuildIcon,\n Close as IconClose,\n LooksOne as LooksOneIcon,\n Publish as PublishIcon,\n TextFields as TextFieldsIcon,\n ViewColumn as IconColumns,\n ContentPaste,\n UploadFile,\n} from '@mui/icons-material';\nimport { Utils } from '../Utils';\nimport { IconExpertMode } from '../AnimatedIcons/IconExpertMode';\nimport { IconClosed } from '../../icons/IconClosed';\nimport { IconOpen } from '../../icons/IconOpen';\nimport { IconClearFilter } from '../../icons/IconClearFilter';\nimport { Icon } from '../Icon';\nimport { IconRefresh } from '../AnimatedIcons/IconRefresh';\nimport {\n colGrow,\n colWidth,\n CustomFilterInput,\n CustomFilterSelect,\n getName,\n getSelectIdIconFromObjects,\n getVisibleItems,\n} from './utils';\nimport type { IobTheme } from '../../types';\nimport { type InputSelectItem } from './types';\nimport { styles } from './styles';\nimport { ITEM_IMAGES } from './constants';\nimport type { ObjectBrowserClass } from './ObjectBrowserClass';\n\nexport function getFilterInput(that: ObjectBrowserClass, name: 'id' | 'name'): JSX.Element {\n return (\n <CustomFilterInput\n key={`${name}_${that.state.filterKey}`}\n styles={that.styles.filterInput}\n name={name}\n texts={that.texts}\n t={that.props.t}\n initialValue={that.state.filter[name]}\n onChange={(name, value) => {\n const filter = { ...that.state.filter };\n if (value === undefined) {\n delete filter[name];\n } else {\n filter[name] = value;\n }\n that.setState({ filter }, () => {\n that.doFilter();\n that.props.onFilterChanged?.(filter);\n });\n }}\n />\n );\n}\n\nexport function getFilterSelect(\n that: ObjectBrowserClass,\n name: 'room' | 'func' | 'type' | 'custom' | 'role',\n values?: (string | InputSelectItem)[],\n): JSX.Element {\n return (\n <CustomFilterSelect\n key={`${name}_${that.state.filterKey}`}\n name={name}\n texts={that.texts}\n initialValue={that.state.filter[name] || []}\n values={values || []}\n onChange={(name, value) => {\n const filter = { ...that.state.filter };\n if (value === undefined) {\n delete filter[name];\n } else {\n filter[name] = value;\n }\n that.setState({ filter }, () => {\n that.doFilter();\n that.props.onFilterChanged?.(filter);\n });\n }}\n />\n );\n}\n\nexport function getFilterSelectRole(that: ObjectBrowserClass): JSX.Element {\n return getFilterSelect(\n that,\n 'role',\n that.info.roles.map(it => it.role),\n );\n}\n\nexport function getFilterSelectRoom(that: ObjectBrowserClass): JSX.Element {\n const rooms: InputSelectItem[] = that.info.roomEnums.map(\n id =>\n ({\n name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),\n value: id,\n icon: (\n <Icon\n src={that.objects[id]?.common?.icon || ''}\n style={styles.selectIcon}\n />\n ),\n }) as InputSelectItem,\n );\n\n return getFilterSelect(that, 'room', rooms);\n}\n\nexport function getFilterSelectFunction(that: ObjectBrowserClass): JSX.Element {\n const func: InputSelectItem[] = that.info.funcEnums.map(\n id =>\n ({\n name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),\n value: id,\n icon: (\n <Icon\n src={that.objects[id]?.common?.icon || ''}\n style={styles.selectIcon}\n />\n ),\n }) as InputSelectItem,\n );\n\n return getFilterSelect(that, 'func', func);\n}\n\nexport function getFilterSelectType(that: ObjectBrowserClass): JSX.Element {\n const types = that.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type] || null,\n }));\n\n return getFilterSelect(that, 'type', types);\n}\n\nexport function getFilterSelectCustoms(that: ObjectBrowserClass): JSX.Element | null {\n if (that.info.customs.length > 1) {\n const customs = that.info.customs.map(id => ({\n name: id === '_' ? that.texts.filterCustomsWithout : id,\n value: id,\n icon:\n id === '_' ? null : (\n <Icon\n src={getSelectIdIconFromObjects(that.objects, id, that.props.lang, that.imagePrefix) || ''}\n style={styles.selectIcon}\n />\n ),\n }));\n return getFilterSelect(that, 'custom', customs);\n }\n return null;\n}\n\n/**\n * Renders the toolbar.\n */\nexport function getToolbar(that: ObjectBrowserClass): JSX.Element {\n let allowObjectCreation = false;\n if (that.state.selected.length || that.state.selectedNonObject) {\n const id = that.state.selected[0] || that.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (that.objects[id] && that.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (that.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return (\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n overflowX: 'auto',\n }}\n >\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip\n title={that.props.t('ra_Refresh tree')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>\n <IconButton\n onClick={() => that.refreshComponent()}\n disabled={that.state.updating}\n size=\"large\"\n >\n <IconRefresh loading={!!that.state.updating} />\n </IconButton>\n </div>\n </Tooltip>\n {that.props.showExpertButton && !that.props.expertMode && (\n <Tooltip\n title={that.props.t('ra_expertMode')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expertMode\"\n sx={(theme: IobTheme) => ({\n color: that.state.filter.expertMode ? theme.palette.expert : undefined,\n })}\n onClick={() => {\n const filter = { ...that.state.filter };\n filter.expertMode = !filter.expertMode;\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n\n that.setState({\n filter,\n });\n }}\n size=\"large\"\n >\n <IconExpertMode active={!!that.state.filter.expertMode} />\n </IconButton>\n </Tooltip>\n )}\n {!that.props.disableColumnSelector && that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Configure')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"columnSelector\"\n color={that.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => that.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>\n )}\n {that.width !== 'xs' && that.state.expandAllVisible && (\n <Tooltip\n title={that.props.t('ra_Expand all nodes')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expandAll\"\n onClick={() => that.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip\n title={that.props.t('ra_Collapse all nodes')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"collapseAll\"\n onClick={() => that.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n {that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Expand one step node')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => that.onExpandVisible()}\n size=\"large\"\n >\n <Badge\n badgeContent={that.state.depth}\n color=\"secondary\"\n sx={(theme: Theme) => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n })}\n >\n <IconOpen />\n </Badge>\n </IconButton>\n </Tooltip>\n )}\n {that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Collapse one step node')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => that.onCollapseVisible()}\n size=\"large\"\n >\n <Badge\n sx={(theme: Theme) => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n })}\n badgeContent={that.state.depth}\n color=\"secondary\"\n >\n <IconClosed />\n </Badge>\n </IconButton>\n </Tooltip>\n )}\n {that.props.objectStatesView && (\n <Tooltip\n title={that.props.t('ra_Toggle the states view')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => that.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={that.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n\n <Tooltip\n title={that.props.t('ra_Show/Hide object descriptions')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => {\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.desc`,\n that.state.showDescription ? 'false' : 'true',\n );\n that.setState({ showDescription: !that.state.showDescription });\n }}\n size=\"large\"\n >\n <TextFieldsIcon color={that.state.showDescription ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n\n {that.props.objectAddBoolean ? (\n <Tooltip\n title={that.toolTipObjectCreating()}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() =>\n that.setState({\n modalNewObj: {\n id: that.state.selected[0] || that.state.selectedNonObject,\n },\n })\n }\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n ) : null}\n\n {that.props.objectImportExport && (\n <Tooltip\n title={that.props.t('ra_Add objects tree from JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={e => {\n if (that.props.objectBrowserInsertJsonObjects) {\n that.setState({ showImportMenu: e.currentTarget });\n } else {\n that.onOpenFile();\n }\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>\n )}\n {that.props.objectBrowserInsertJsonObjects ? (\n <Menu\n anchorEl={that.state.showImportMenu}\n open={!!that.state.showImportMenu}\n onClose={() => that.setState({ showImportMenu: null })}\n >\n <MenuItem onClick={() => that.setState({ showImportMenu: null }, () => that.onOpenFile())}>\n <ListItemIcon>\n <UploadFile />\n </ListItemIcon>\n <ListItemText>{that.props.t('ra_From file')}</ListItemText>\n </MenuItem>\n <MenuItem onClick={() => that.setState({ showImportMenu: null, showImportDialog: true })}>\n <ListItemIcon>\n <ContentPaste />\n </ListItemIcon>\n <ListItemText>{that.props.t('ra_From text')}</ListItemText>\n </MenuItem>\n </Menu>\n ) : null}\n {that.props.objectImportExport && (!!that.state.selected.length || that.state.selectedNonObject) && (\n <Tooltip\n title={that.props.t('ra_Save objects tree as JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => that.setState({ showExportDialog: that._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>\n )}\n </div>\n {!!that.props.objectBrowserEditObject && that.width !== 'xs' && (\n <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${that.props.t('ra_Objects')}: ${Object.keys(that.info.objects).length}, ${that.props.t(\n 'ra_States',\n )}: ${Object.keys(that.info.objects).filter(el => that.info.objects[el].type === 'state').length}`}\n </div>\n )}\n {that.props.objectEditBoolean && (\n <Tooltip\n title={that.props.t('ra_Edit custom config')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = that.root ? getVisibleItems(that.root, 'state', that.objects) : [];\n\n if (ids.length) {\n that.pauseSubscribe(true);\n\n if (ids.length === 1) {\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.objectSelected`,\n that.state.selected[0],\n );\n that.props.router?.doNavigate(null, 'custom', that.state.selected[0]);\n }\n that.setState({ customDialog: ids, customDialogAll: true });\n } else {\n that.setState({ toast: that.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>\n )}\n </div>\n );\n}\n\n/**\n * Render the right handle for resizing\n */\nexport function renderHandleRight(that: ObjectBrowserClass): JSX.Element {\n return (\n <Box\n component=\"div\"\n className=\"iob-ob-resize-handler\"\n sx={{ ...styles.resizeHandle, ...styles.resizeHandleRight }}\n onMouseDown={that.resizerMouseDown}\n onDoubleClick={that.resizerReset}\n title={that.props.t('ra_Double click to reset table layout')}\n />\n );\n}\n\nexport function renderHeader(that: ObjectBrowserClass): JSX.Element {\n let filterClearInValue = null;\n\n if (!that.columnsVisibility.buttons && !that.isFilterEmpty()) {\n filterClearInValue = (\n <IconButton\n onClick={() => that.clearFilter()}\n style={styles.buttonClearFilter}\n title={that.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose style={styles.buttonClearFilterIcon} />\n </IconButton>\n );\n }\n\n if (that.width === 'xs') {\n return (\n <div style={Utils.getStyle(that.props.theme, styles.headerRow)}>\n <div style={{ ...styles.headerCell, width: '100%' }}>{getFilterInput(that, 'id')}</div>\n </div>\n );\n }\n\n return (\n <div style={Utils.getStyle(that.props.theme, styles.headerRow)}>\n <div\n style={{ ...styles.headerCell, width: colWidth('id'), flexGrow: colGrow('id'), position: 'relative' }}\n data-min={240}\n data-name=\"id\"\n >\n {getFilterInput(that, 'id')}\n {renderHandleRight(that)}\n </div>\n {that.columnsVisibility.name ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('name'),\n flexGrow: colGrow('name'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"name\"\n >\n {getFilterInput(that, 'name')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {!that.state.statesView && (\n <>\n {that.columnsVisibility.type ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('type'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"type\"\n >\n {getFilterSelectType(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.role ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('role'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"role\"\n >\n {getFilterSelectRole(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.room ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('room'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"room\"\n >\n {getFilterSelectRoom(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.func ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('func'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"func\"\n >\n {getFilterSelectFunction(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n </>\n )}\n {that.state.statesView && (\n <>\n {/* Every one of these columns can be switched off in the configuration dialog,\n so the header must ask for it just like the columns of the normal view do. */}\n {that.columnsVisibility.changedFrom ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('changedFrom'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"changedFrom\"\n >\n {that.props.t('ra_Changed from')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.qualityCode ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('qualityCode'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"qualityCode\"\n >\n {that.props.t('ra_Quality code')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.timestamp ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('timestamp'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"timestamp\"\n >\n {that.props.t('ra_Timestamp')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.lastChange ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('lastChange'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"lastChange\"\n >\n {that.props.t('ra_Last change')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n </>\n )}\n {that.adapterColumns.map(item => (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: (that.columnsVisibility as Record<string, number | string>)[item.id],\n }}\n title={item.adapter}\n key={item.id}\n data-min={100}\n data-name={item.id}\n >\n {item.name}\n </div>\n ))}\n {that.columnsVisibility.val ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('val'),\n position: 'relative',\n }}\n data-min={120}\n data-name=\"val\"\n >\n {that.props.t('ra_Value')}\n {filterClearInValue}\n {/* A handle takes the place from the column that follows, so it is only useful\n if there is one. It is the only way to resize the buttons column. */}\n {that.columnsVisibility.buttons ? renderHandleRight(that) : null}\n </div>\n ) : null}\n {that.columnsVisibility.buttons ? (\n <div\n title={that.texts.filter_custom}\n style={{ ...styles.headerCell, width: colWidth('buttons') }}\n data-min={80}\n data-name=\"buttons\"\n >\n {' '}\n {getFilterSelectCustoms(that)}\n </div>\n ) : null}\n </div>\n );\n}\n"]}
|
package/build/index.d.ts
CHANGED
|
@@ -51,6 +51,19 @@ export { LoaderPT } from './Components/Loaders/PT';
|
|
|
51
51
|
export { LoaderMV } from './Components/Loaders/MV';
|
|
52
52
|
export { LoaderNW } from './Components/Loaders/NW';
|
|
53
53
|
export { LoaderHA } from './Components/Loaders/HA';
|
|
54
|
+
export { LoaderCommunity } from './Components/Loaders/Community';
|
|
55
|
+
export { LoaderCommunityLegacy } from './Components/Loaders/CommunityLegacy';
|
|
56
|
+
export { type AnimatedIconProps } from './Components/AnimatedIcons/common';
|
|
57
|
+
export { IconPlayPause, type IconPlayPauseProps } from './Components/AnimatedIcons/IconPlayPause';
|
|
58
|
+
export { IconStatusLed, type IconStatusLedProps } from './Components/AnimatedIcons/IconStatusLed';
|
|
59
|
+
export { IconResult, type IconResultProps } from './Components/AnimatedIcons/IconResult';
|
|
60
|
+
export { IconRefresh, type IconRefreshProps } from './Components/AnimatedIcons/IconRefresh';
|
|
61
|
+
export { IconBell, type IconBellProps } from './Components/AnimatedIcons/IconBell';
|
|
62
|
+
export { IconMenuArrow, type IconMenuArrowProps } from './Components/AnimatedIcons/IconMenuArrow';
|
|
63
|
+
export { IconTrash, type IconTrashProps } from './Components/AnimatedIcons/IconTrash';
|
|
64
|
+
export { IconConnectionState, type IconConnectionStateProps } from './Components/AnimatedIcons/IconConnectionState';
|
|
65
|
+
export { IconExpertMode, type IconExpertModeProps } from './Components/AnimatedIcons/IconExpertMode';
|
|
66
|
+
export { IconFolder, type IconFolderProps } from './Components/AnimatedIcons/IconFolder';
|
|
54
67
|
export { type IconProps } from './Components/Icon';
|
|
55
68
|
export { type IconsIconProps } from './icons/types';
|
|
56
69
|
export { IconAdapter } from './icons/IconAdapter';
|
package/build/index.js
CHANGED
|
@@ -48,6 +48,18 @@ export { LoaderPT } from './Components/Loaders/PT';
|
|
|
48
48
|
export { LoaderMV } from './Components/Loaders/MV';
|
|
49
49
|
export { LoaderNW } from './Components/Loaders/NW';
|
|
50
50
|
export { LoaderHA } from './Components/Loaders/HA';
|
|
51
|
+
export { LoaderCommunity } from './Components/Loaders/Community';
|
|
52
|
+
export { LoaderCommunityLegacy } from './Components/Loaders/CommunityLegacy';
|
|
53
|
+
export { IconPlayPause } from './Components/AnimatedIcons/IconPlayPause';
|
|
54
|
+
export { IconStatusLed } from './Components/AnimatedIcons/IconStatusLed';
|
|
55
|
+
export { IconResult } from './Components/AnimatedIcons/IconResult';
|
|
56
|
+
export { IconRefresh } from './Components/AnimatedIcons/IconRefresh';
|
|
57
|
+
export { IconBell } from './Components/AnimatedIcons/IconBell';
|
|
58
|
+
export { IconMenuArrow } from './Components/AnimatedIcons/IconMenuArrow';
|
|
59
|
+
export { IconTrash } from './Components/AnimatedIcons/IconTrash';
|
|
60
|
+
export { IconConnectionState } from './Components/AnimatedIcons/IconConnectionState';
|
|
61
|
+
export { IconExpertMode } from './Components/AnimatedIcons/IconExpertMode';
|
|
62
|
+
export { IconFolder } from './Components/AnimatedIcons/IconFolder';
|
|
51
63
|
export { IconAdapter } from './icons/IconAdapter';
|
|
52
64
|
export { IconAlias } from './icons/IconAlias';
|
|
53
65
|
export { IconButtonImage } from './icons/IconButtonImage';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"./src/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["export { Theme } from './Theme';\nexport { getModernTheme, MODERN_DARK, MODERN_LIGHT, type ModernTokens } from './ThemeModern';\nexport { GenericApp } from './GenericApp';\nexport { I18n } from './i18n';\nexport { printPrompt } from './Prompt';\nexport { ColorPicker, parseColor, formatColor } from './Components/ColorPicker';\nexport type { ColorPickerFormat, RGBColor } from './Components/ColorPicker';\nexport { ComplexCron } from './Components/ComplexCron';\nexport { copy } from './Components/CopyToClipboard';\nexport { CustomModal } from './Components/CustomModal';\nexport {\n FileBrowser,\n type MetaACL,\n type MetaObject,\n type FileBrowserProps,\n type FileBrowserNavigation,\n type FolderOrFileItem,\n type Folders,\n FileBrowserClass,\n} from './Components/FileBrowser';\nexport {\n EXTENSIONS,\n FileViewer,\n FileViewerClass,\n type FileViewerProps,\n type FileViewerState,\n} from './Components/FileViewer';\nexport { getSystemIcon, getSelectIdIcon, Icon } from './Components/Icon';\nexport { IconPicker } from './Components/IconPicker';\nexport { IconSelector } from './Components/IconSelector';\nexport {\n loadIconLibrary,\n getIconLibrarySvg,\n getIconLibraryName,\n isIconLibraryMatch,\n type IconLibrary,\n} from './Components/IconLibrary/iconLibrary';\nexport type { IconLibraryCategory, IconLibraryItem } from './Components/IconLibrary/types';\nexport { getClassicIconTemplates, type ClassicIconTemplate } from './Components/IconLibrary/classicIcons';\nexport { Image } from './Components/Image';\nexport { DeviceTypeSelector } from './Components/DeviceType/DeviceTypeSelector';\nexport { DeviceTypeIcon } from './Components/DeviceType/DeviceTypeIcon';\nexport { STATES_NAME_ICONS } from './Components/DeviceType/DeviceTypeOptions';\nexport { extendDeviceTypeTranslation } from './Components/DeviceType/deviceTypeTranslations';\nexport {\n type IconPropsSVG,\n Cleaner,\n DoorClosed,\n DoorOpened,\n FireOff,\n FireOn,\n FloodOff,\n FloodOn,\n Gate,\n HeatValve,\n Home,\n Humidity,\n IconHome,\n Jalousie,\n Material,\n MotionOff,\n MotionOn,\n PushButton,\n RepairExpert,\n RGB,\n Socket,\n Thermometer,\n ThermometerSimple,\n Thermostat,\n Valve,\n WindowClosed,\n WindowOpened,\n WindowTilted,\n} from './Components/DeviceType/icons';\nexport { Loader } from './Components/Loader';\nexport { Logo } from './Components/Logo';\nexport { MDUtils } from './Components/MDUtils';\nexport { ObjectBrowserClass, ObjectBrowser, getSelectIdIconFromObjects, ITEM_IMAGES } from './Components/ObjectBrowser';\nexport {\n type TreeItemData,\n type TreeItem,\n type ObjectBrowserFilter,\n type ObjectBrowserCustomFilter,\n type ObjectBrowserColumn,\n type ObjectBrowserProps,\n type ObjectBrowserNavigation,\n} from './Components/ObjectBrowser/types';\n\nexport { InfoBox } from './Components/InfoBox';\nexport { Router } from './Components/Router';\nexport { SaveCloseButtons } from './Components/SaveCloseButtons';\nexport { Schedule, type ScheduleConfig } from './Components/Schedule';\nexport { ScrollbarStyles } from './Components/ScrollbarStyles';\nexport { SelectWithIcon } from './Components/SelectWithIcon';\nexport { StatCard, CardTitle, InfoRow } from './Components/StatCard';\nexport { TabContainer } from './Components/TabContainer';\nexport { TabContent } from './Components/TabContent';\nexport { TabHeader } from './Components/TabHeader';\nexport { TableResize } from './Components/TableResize';\nexport { TextWithIcon } from './Components/TextWithIcon';\nexport { ToggleThemeMenu } from './Components/ToggleThemeMenu';\nexport { TreeTable } from './Components/TreeTable';\nexport { UploadImage } from './Components/UploadImage';\nexport { Utils } from './Components/Utils';\nexport { withWidth } from './Components/withWidth';\nexport { cron2state, SimpleCron } from './Components/SimpleCron';\nexport { convertCronToText } from './Components/SimpleCron/cronText';\nexport { LoaderVendor } from './Components/Loaders/Vendor';\nexport { LoaderPT } from './Components/Loaders/PT';\nexport { LoaderMV } from './Components/Loaders/MV';\nexport { LoaderNW } from './Components/Loaders/NW';\nexport { LoaderHA } from './Components/Loaders/HA';\nexport { type IconProps } from './Components/Icon';\nexport { type IconsIconProps } from './icons/types';\nexport { IconAdapter } from './icons/IconAdapter';\nexport { IconAlias } from './icons/IconAlias';\nexport { IconButtonImage } from './icons/IconButtonImage';\nexport { IconChannel } from './icons/IconChannel';\nexport { IconClearFilter } from './icons/IconClearFilter';\nexport { IconClosed } from './icons/IconClosed';\nexport { IconCopy } from './icons/IconCopy';\nexport { IconDevice } from './icons/IconDevice';\nexport { IconDocument } from './icons/IconDocument';\nexport { IconDocumentReadOnly } from './icons/IconDocumentReadOnly';\nexport { IconExpert } from './icons/IconExpert';\nexport { IconFx } from './icons/IconFx';\nexport { IconInstance } from './icons/IconInstance';\nexport { IconLogout } from './icons/IconLogout';\nexport { IconNoIcon } from './icons/IconNoIcon';\nexport { IconOpen } from './icons/IconOpen';\nexport { IconState } from './icons/IconState';\nexport { IconVacuum } from './icons/IconVacuum';\nexport { DialogComplexCron } from './Dialogs/ComplexCron';\nexport { DialogComplexCron as ComplexCronDialog } from './Dialogs/ComplexCron'; // deprecated\nexport { DialogConfirm } from './Dialogs/Confirm';\nexport { DialogConfirm as Confirm } from './Dialogs/Confirm'; // deprecated\nexport { DialogCron } from './Dialogs/Cron';\nexport { DialogCron as Cron } from './Dialogs/Cron'; // deprecated\nexport { DialogError } from './Dialogs/Error';\nexport { DialogError as Error } from './Dialogs/Error'; // deprecated\nexport { DialogMessage } from './Dialogs/Message';\nexport { DialogMessage as Message } from './Dialogs/Message'; // deprecated\nexport { DialogSelectID, type SelectIDFilters } from './Dialogs/SelectID';\nexport { DialogSelectID as SelectID } from './Dialogs/SelectID'; // deprecated\nexport { DialogSelectFile } from './Dialogs/SelectFile';\nexport { DialogSelectFile as SelectFile } from './Dialogs/SelectFile'; // deprecated\nexport { DialogSimpleCron } from './Dialogs/SimpleCron';\nexport { DialogSimpleCron as SimpleCronDialog } from './Dialogs/SimpleCron'; // deprecated\nexport { DialogTextInput } from './Dialogs/TextInput';\nexport { DialogTextInput as TextInput } from './Dialogs/TextInput'; // deprecated\nexport { Connection, PROGRESS, ERRORS, PERMISSION_ERROR } from './Connection';\nexport { AdminConnection } from './AdminConnection';\nexport { dictionary } from './dictionary';\n// `LegacyConnection` was removed in v9. The types it used to re-export now come directly\n// from `@iobroker/socket-client`, `pattern2RegEx` from the object browser utils.\nexport { type ConnectOptions, type SocketClient, type BinaryStateChangeHandler } from '@iobroker/socket-client';\nexport { pattern2RegEx } from './Components/ObjectBrowser/utils';\n\nexport {\n type IobUri,\n type IobUriType,\n type IobUriParsed,\n getAttrInObject,\n setAttrInObject,\n iobUriToString,\n iobUriParse,\n iobUriRead,\n} from './Components/IobUri';\n\nexport type {\n Translate,\n ConnectionProps,\n OldObject,\n ObjectChangeHandler,\n ThemeName,\n ThemeType,\n GenericAppProps,\n GenericAppSettings,\n IobTheme,\n Width,\n GenericAppState,\n} from './types';\n\nexport { moduleFederationShared } from './modulefederation.admin.config';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"./src/","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACH,WAAW,EAOX,gBAAgB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,UAAU,EACV,UAAU,EACV,eAAe,GAGlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GAErB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAA4B,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAEH,OAAO,EACP,UAAU,EACV,UAAU,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,GAAG,EACH,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAWxH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAuB,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,aAAa,EAA2B,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,aAAa,EAA2B,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,UAAU,EAAwB,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,WAAW,EAAyB,MAAM,wCAAwC,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAsB,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,aAAa,EAA2B,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,SAAS,EAAuB,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAiC,MAAM,gDAAgD,CAAC;AACpH,OAAO,EAAE,cAAc,EAA4B,MAAM,2CAA2C,CAAC;AACrG,OAAO,EAAE,UAAU,EAAwB,MAAM,uCAAuC,CAAC;AAGzF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC,CAAC,aAAa;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC,CAAC,aAAa;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAC,CAAC,aAAa;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC,CAAC,aAAa;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC,CAAC,aAAa;AAC3E,OAAO,EAAE,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC,CAAC,aAAa;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC,CAAC,aAAa;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC,CAAC,aAAa;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC,CAAC,aAAa;AACjF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAIH,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,GACb,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["export { Theme } from './Theme';\nexport { getModernTheme, MODERN_DARK, MODERN_LIGHT, type ModernTokens } from './ThemeModern';\nexport { GenericApp } from './GenericApp';\nexport { I18n } from './i18n';\nexport { printPrompt } from './Prompt';\nexport { ColorPicker, parseColor, formatColor } from './Components/ColorPicker';\nexport type { ColorPickerFormat, RGBColor } from './Components/ColorPicker';\nexport { ComplexCron } from './Components/ComplexCron';\nexport { copy } from './Components/CopyToClipboard';\nexport { CustomModal } from './Components/CustomModal';\nexport {\n FileBrowser,\n type MetaACL,\n type MetaObject,\n type FileBrowserProps,\n type FileBrowserNavigation,\n type FolderOrFileItem,\n type Folders,\n FileBrowserClass,\n} from './Components/FileBrowser';\nexport {\n EXTENSIONS,\n FileViewer,\n FileViewerClass,\n type FileViewerProps,\n type FileViewerState,\n} from './Components/FileViewer';\nexport { getSystemIcon, getSelectIdIcon, Icon } from './Components/Icon';\nexport { IconPicker } from './Components/IconPicker';\nexport { IconSelector } from './Components/IconSelector';\nexport {\n loadIconLibrary,\n getIconLibrarySvg,\n getIconLibraryName,\n isIconLibraryMatch,\n type IconLibrary,\n} from './Components/IconLibrary/iconLibrary';\nexport type { IconLibraryCategory, IconLibraryItem } from './Components/IconLibrary/types';\nexport { getClassicIconTemplates, type ClassicIconTemplate } from './Components/IconLibrary/classicIcons';\nexport { Image } from './Components/Image';\nexport { DeviceTypeSelector } from './Components/DeviceType/DeviceTypeSelector';\nexport { DeviceTypeIcon } from './Components/DeviceType/DeviceTypeIcon';\nexport { STATES_NAME_ICONS } from './Components/DeviceType/DeviceTypeOptions';\nexport { extendDeviceTypeTranslation } from './Components/DeviceType/deviceTypeTranslations';\nexport {\n type IconPropsSVG,\n Cleaner,\n DoorClosed,\n DoorOpened,\n FireOff,\n FireOn,\n FloodOff,\n FloodOn,\n Gate,\n HeatValve,\n Home,\n Humidity,\n IconHome,\n Jalousie,\n Material,\n MotionOff,\n MotionOn,\n PushButton,\n RepairExpert,\n RGB,\n Socket,\n Thermometer,\n ThermometerSimple,\n Thermostat,\n Valve,\n WindowClosed,\n WindowOpened,\n WindowTilted,\n} from './Components/DeviceType/icons';\nexport { Loader } from './Components/Loader';\nexport { Logo } from './Components/Logo';\nexport { MDUtils } from './Components/MDUtils';\nexport { ObjectBrowserClass, ObjectBrowser, getSelectIdIconFromObjects, ITEM_IMAGES } from './Components/ObjectBrowser';\nexport {\n type TreeItemData,\n type TreeItem,\n type ObjectBrowserFilter,\n type ObjectBrowserCustomFilter,\n type ObjectBrowserColumn,\n type ObjectBrowserProps,\n type ObjectBrowserNavigation,\n} from './Components/ObjectBrowser/types';\n\nexport { InfoBox } from './Components/InfoBox';\nexport { Router } from './Components/Router';\nexport { SaveCloseButtons } from './Components/SaveCloseButtons';\nexport { Schedule, type ScheduleConfig } from './Components/Schedule';\nexport { ScrollbarStyles } from './Components/ScrollbarStyles';\nexport { SelectWithIcon } from './Components/SelectWithIcon';\nexport { StatCard, CardTitle, InfoRow } from './Components/StatCard';\nexport { TabContainer } from './Components/TabContainer';\nexport { TabContent } from './Components/TabContent';\nexport { TabHeader } from './Components/TabHeader';\nexport { TableResize } from './Components/TableResize';\nexport { TextWithIcon } from './Components/TextWithIcon';\nexport { ToggleThemeMenu } from './Components/ToggleThemeMenu';\nexport { TreeTable } from './Components/TreeTable';\nexport { UploadImage } from './Components/UploadImage';\nexport { Utils } from './Components/Utils';\nexport { withWidth } from './Components/withWidth';\nexport { cron2state, SimpleCron } from './Components/SimpleCron';\nexport { convertCronToText } from './Components/SimpleCron/cronText';\nexport { LoaderVendor } from './Components/Loaders/Vendor';\nexport { LoaderPT } from './Components/Loaders/PT';\nexport { LoaderMV } from './Components/Loaders/MV';\nexport { LoaderNW } from './Components/Loaders/NW';\nexport { LoaderHA } from './Components/Loaders/HA';\nexport { LoaderCommunity } from './Components/Loaders/Community';\nexport { LoaderCommunityLegacy } from './Components/Loaders/CommunityLegacy';\nexport { type AnimatedIconProps } from './Components/AnimatedIcons/common';\nexport { IconPlayPause, type IconPlayPauseProps } from './Components/AnimatedIcons/IconPlayPause';\nexport { IconStatusLed, type IconStatusLedProps } from './Components/AnimatedIcons/IconStatusLed';\nexport { IconResult, type IconResultProps } from './Components/AnimatedIcons/IconResult';\nexport { IconRefresh, type IconRefreshProps } from './Components/AnimatedIcons/IconRefresh';\nexport { IconBell, type IconBellProps } from './Components/AnimatedIcons/IconBell';\nexport { IconMenuArrow, type IconMenuArrowProps } from './Components/AnimatedIcons/IconMenuArrow';\nexport { IconTrash, type IconTrashProps } from './Components/AnimatedIcons/IconTrash';\nexport { IconConnectionState, type IconConnectionStateProps } from './Components/AnimatedIcons/IconConnectionState';\nexport { IconExpertMode, type IconExpertModeProps } from './Components/AnimatedIcons/IconExpertMode';\nexport { IconFolder, type IconFolderProps } from './Components/AnimatedIcons/IconFolder';\nexport { type IconProps } from './Components/Icon';\nexport { type IconsIconProps } from './icons/types';\nexport { IconAdapter } from './icons/IconAdapter';\nexport { IconAlias } from './icons/IconAlias';\nexport { IconButtonImage } from './icons/IconButtonImage';\nexport { IconChannel } from './icons/IconChannel';\nexport { IconClearFilter } from './icons/IconClearFilter';\nexport { IconClosed } from './icons/IconClosed';\nexport { IconCopy } from './icons/IconCopy';\nexport { IconDevice } from './icons/IconDevice';\nexport { IconDocument } from './icons/IconDocument';\nexport { IconDocumentReadOnly } from './icons/IconDocumentReadOnly';\nexport { IconExpert } from './icons/IconExpert';\nexport { IconFx } from './icons/IconFx';\nexport { IconInstance } from './icons/IconInstance';\nexport { IconLogout } from './icons/IconLogout';\nexport { IconNoIcon } from './icons/IconNoIcon';\nexport { IconOpen } from './icons/IconOpen';\nexport { IconState } from './icons/IconState';\nexport { IconVacuum } from './icons/IconVacuum';\nexport { DialogComplexCron } from './Dialogs/ComplexCron';\nexport { DialogComplexCron as ComplexCronDialog } from './Dialogs/ComplexCron'; // deprecated\nexport { DialogConfirm } from './Dialogs/Confirm';\nexport { DialogConfirm as Confirm } from './Dialogs/Confirm'; // deprecated\nexport { DialogCron } from './Dialogs/Cron';\nexport { DialogCron as Cron } from './Dialogs/Cron'; // deprecated\nexport { DialogError } from './Dialogs/Error';\nexport { DialogError as Error } from './Dialogs/Error'; // deprecated\nexport { DialogMessage } from './Dialogs/Message';\nexport { DialogMessage as Message } from './Dialogs/Message'; // deprecated\nexport { DialogSelectID, type SelectIDFilters } from './Dialogs/SelectID';\nexport { DialogSelectID as SelectID } from './Dialogs/SelectID'; // deprecated\nexport { DialogSelectFile } from './Dialogs/SelectFile';\nexport { DialogSelectFile as SelectFile } from './Dialogs/SelectFile'; // deprecated\nexport { DialogSimpleCron } from './Dialogs/SimpleCron';\nexport { DialogSimpleCron as SimpleCronDialog } from './Dialogs/SimpleCron'; // deprecated\nexport { DialogTextInput } from './Dialogs/TextInput';\nexport { DialogTextInput as TextInput } from './Dialogs/TextInput'; // deprecated\nexport { Connection, PROGRESS, ERRORS, PERMISSION_ERROR } from './Connection';\nexport { AdminConnection } from './AdminConnection';\nexport { dictionary } from './dictionary';\n// `LegacyConnection` was removed in v9. The types it used to re-export now come directly\n// from `@iobroker/socket-client`, `pattern2RegEx` from the object browser utils.\nexport { type ConnectOptions, type SocketClient, type BinaryStateChangeHandler } from '@iobroker/socket-client';\nexport { pattern2RegEx } from './Components/ObjectBrowser/utils';\n\nexport {\n type IobUri,\n type IobUriType,\n type IobUriParsed,\n getAttrInObject,\n setAttrInObject,\n iobUriToString,\n iobUriParse,\n iobUriRead,\n} from './Components/IobUri';\n\nexport type {\n Translate,\n ConnectionProps,\n OldObject,\n ObjectChangeHandler,\n ThemeName,\n ThemeType,\n GenericAppProps,\n GenericAppSettings,\n IobTheme,\n Width,\n GenericAppState,\n} from './types';\n\nexport { moduleFederationShared } from './modulefederation.admin.config';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/gui-components",
|
|
3
|
-
"version": "10.3.
|
|
3
|
+
"version": "10.3.15",
|
|
4
4
|
"description": "Shared React components (React 19 / MUI 9) to develop ioBroker interfaces. Successor of @iobroker/adapter-react-v5.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "bluefox",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"@iobroker/js-controller-common": "^7.2.5",
|
|
62
62
|
"@iobroker/js-controller-common-db": "^7.2.5",
|
|
63
63
|
"@iobroker/socket-client": "^5.5.0",
|
|
64
|
-
"@iobroker/type-detector": "^6.0
|
|
64
|
+
"@iobroker/type-detector": "^6.2.0",
|
|
65
65
|
"@iobroker/types": "^7.2.5",
|
|
66
|
-
"@sentry/browser": "^11.
|
|
67
|
-
"cronstrue": "^3.
|
|
66
|
+
"@sentry/browser": "^11.9.0",
|
|
67
|
+
"cronstrue": "^3.38.0",
|
|
68
68
|
"file-selector": "^5.0.1",
|
|
69
69
|
"react-colorful": "^5.8.1",
|
|
70
70
|
"react-cropper": "^2.3.3",
|