@ledvance/base 1.3.92 → 1.3.93
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/package.json +1 -1
- package/src/components/AdvanceCard.tsx +1 -0
- package/src/components/AdvanceList.tsx +73 -47
- package/src/components/Cell.tsx +49 -29
- package/src/components/Popup.tsx +2 -2
- package/src/components/rect-color-and-bright-picker/Thumb.tsx +16 -9
- package/src/composeLayout.tsx +15 -10
- package/src/i18n/strings.ts +20 -20
package/package.json
CHANGED
|
@@ -1,57 +1,92 @@
|
|
|
1
|
-
import React, { useCallback } from 'react'
|
|
2
|
-
import { FlatList, StyleSheet, View, Image } from 'react-native'
|
|
3
|
-
import AdvanceCard, { AdvancedData } from './AdvanceCard'
|
|
4
|
-
import Spacer from './Spacer'
|
|
5
1
|
import { useNavigation } from '@react-navigation/core'
|
|
2
|
+
import React, { useCallback } from 'react'
|
|
3
|
+
import { FlatList, Image, StyleSheet, View } from 'react-native'
|
|
6
4
|
import { Utils } from 'tuya-panel-kit'
|
|
7
5
|
import { getMicrophoneAccess } from '../api/native'
|
|
6
|
+
import AdvanceCard, { AdvancedData } from './AdvanceCard'
|
|
7
|
+
import Spacer from './Spacer'
|
|
8
8
|
|
|
9
9
|
const { convertX: cx } = Utils.RatioUtils
|
|
10
10
|
|
|
11
11
|
const MusicRouterKey = ['ui_biz_music', 'group_ui_biz_music']
|
|
12
12
|
|
|
13
13
|
export interface AdvanceListProps {
|
|
14
|
-
advanceData
|
|
15
|
-
onAdvanceItemClick?: (advanceData: AdvancedData, index: number) => void | undefined
|
|
14
|
+
advanceData?: AdvancedData[]
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
function AdvanceList(props: AdvanceListProps) {
|
|
19
18
|
const navigation = useNavigation()
|
|
20
19
|
|
|
21
|
-
const { advanceData
|
|
20
|
+
const { advanceData = [] } = props
|
|
22
21
|
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if(
|
|
29
|
-
|
|
30
|
-
if(!res) return
|
|
31
|
-
navigation.navigate(item.router.key, item.router.params)
|
|
32
|
-
})
|
|
33
|
-
}else{
|
|
34
|
-
if (!onAdvanceItemClick || onAdvanceItemClick(item, index)) {
|
|
35
|
-
navigation.navigate(item.router.key, item.router.params)
|
|
36
|
-
}
|
|
22
|
+
const handleNavigate = useCallback(
|
|
23
|
+
async (item: AdvancedData) => {
|
|
24
|
+
try {
|
|
25
|
+
if (MusicRouterKey.includes(item.router.key)) {
|
|
26
|
+
const hasPermission = await getMicrophoneAccess()
|
|
27
|
+
if (hasPermission) {
|
|
28
|
+
navigation.navigate(item.router.key as any, item.router.params)
|
|
37
29
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
)
|
|
30
|
+
} else if (item.onPress) {
|
|
31
|
+
item.onPress()
|
|
32
|
+
} else {
|
|
33
|
+
navigation.navigate(item.router.key as any, item.router.params)
|
|
34
|
+
}
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.warn('Failed to check microphone access or navigate:', error)
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
[navigation]
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
const renderItem = useCallback(
|
|
43
|
+
({ item }: { item: AdvancedData; index: number }) => (
|
|
44
|
+
<View style={styles.item}>
|
|
45
|
+
<AdvanceCard
|
|
46
|
+
data={item}
|
|
47
|
+
onPress={async () => {
|
|
48
|
+
await handleNavigate(item)
|
|
49
|
+
}}
|
|
50
|
+
>
|
|
51
|
+
{item.icons && (
|
|
52
|
+
<View style={styles.iconContainer}>
|
|
53
|
+
<Image source={typeof item.icons === 'string' ? { uri: item.icons } : item.icons} style={styles.iconImage}/>
|
|
54
|
+
</View>
|
|
55
|
+
)}
|
|
56
|
+
</AdvanceCard>
|
|
57
|
+
</View>
|
|
58
|
+
),
|
|
59
|
+
[handleNavigate]
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
const keyExtractor = useCallback((item: AdvancedData, index: number) => {
|
|
63
|
+
return item.dp?.code ?? `key-${index}`
|
|
64
|
+
}, [])
|
|
49
65
|
|
|
50
|
-
|
|
66
|
+
// 改为普通函数组件提升性能
|
|
67
|
+
const Header = () => <Spacer height={cx(10)}/>
|
|
68
|
+
const Separator = () => <Spacer/>
|
|
69
|
+
const Footer = () => <Spacer height={cx(30)}/>
|
|
51
70
|
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
71
|
+
const styles = StyleSheet.create({
|
|
72
|
+
container: {
|
|
73
|
+
marginHorizontal: cx(14),
|
|
74
|
+
},
|
|
75
|
+
item: {
|
|
76
|
+
flex: 0.5,
|
|
77
|
+
justifyContent: 'center',
|
|
78
|
+
alignItems: 'center',
|
|
79
|
+
},
|
|
80
|
+
iconContainer: {
|
|
81
|
+
height: cx(118),
|
|
82
|
+
justifyContent: 'center' as const,
|
|
83
|
+
alignItems: 'center' as const,
|
|
84
|
+
},
|
|
85
|
+
iconImage: {
|
|
86
|
+
width: cx(80),
|
|
87
|
+
height: cx(80),
|
|
88
|
+
}
|
|
89
|
+
})
|
|
55
90
|
|
|
56
91
|
return (
|
|
57
92
|
<FlatList
|
|
@@ -63,19 +98,10 @@ function AdvanceList(props: AdvanceListProps) {
|
|
|
63
98
|
keyExtractor={keyExtractor}
|
|
64
99
|
ListHeaderComponent={Header}
|
|
65
100
|
ItemSeparatorComponent={Separator}
|
|
66
|
-
ListFooterComponent={Footer}
|
|
101
|
+
ListFooterComponent={Footer}
|
|
102
|
+
/>
|
|
67
103
|
)
|
|
68
104
|
}
|
|
69
105
|
|
|
70
|
-
const styles = StyleSheet.create({
|
|
71
|
-
container: {
|
|
72
|
-
marginHorizontal: cx(14),
|
|
73
|
-
},
|
|
74
|
-
item: {
|
|
75
|
-
flex: .5,
|
|
76
|
-
justifyContent: 'center',
|
|
77
|
-
alignItems: 'center',
|
|
78
|
-
},
|
|
79
|
-
})
|
|
80
106
|
|
|
81
107
|
export default AdvanceList
|
package/src/components/Cell.tsx
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
import { IconFont, Utils } from 'tuya-panel-kit'
|
|
2
|
-
import { StyleProp, Text, TextStyle, TouchableOpacity, View, ViewStyle, Image, ImageSourcePropType, ImageStyle } from 'react-native'
|
|
3
1
|
import React from 'react'
|
|
4
|
-
import
|
|
2
|
+
import {
|
|
3
|
+
Image,
|
|
4
|
+
ImageSourcePropType,
|
|
5
|
+
ImageStyle,
|
|
6
|
+
StyleProp,
|
|
7
|
+
Text,
|
|
8
|
+
TextStyle,
|
|
9
|
+
TouchableOpacity,
|
|
10
|
+
View,
|
|
11
|
+
ViewStyle
|
|
12
|
+
} from 'react-native'
|
|
13
|
+
import { IconFont, Utils } from 'tuya-panel-kit'
|
|
14
|
+
import ThemeType from '../config/themeType'
|
|
5
15
|
|
|
6
16
|
const cx = Utils.RatioUtils.convertX
|
|
7
17
|
const { withTheme } = Utils.ThemeUtils
|
|
@@ -11,19 +21,20 @@ interface CellProps {
|
|
|
11
21
|
icon?: ImageSourcePropType
|
|
12
22
|
iconStyle?: StyleProp<ImageStyle>
|
|
13
23
|
title: string,
|
|
14
|
-
value
|
|
15
|
-
onPress
|
|
24
|
+
value?: string,
|
|
25
|
+
onPress?: () => void,
|
|
16
26
|
hideArrow?: boolean
|
|
17
27
|
style?: StyleProp<ViewStyle>
|
|
18
28
|
contentStyle?: StyleProp<ViewStyle>
|
|
19
29
|
titleStyle?: StyleProp<TextStyle>
|
|
20
30
|
valueStyle?: StyleProp<TextStyle>
|
|
31
|
+
rightContent?: React.ReactNode
|
|
21
32
|
}
|
|
22
33
|
|
|
23
34
|
export default withTheme(function Cell(props: CellProps) {
|
|
24
35
|
return (
|
|
25
36
|
<TouchableOpacity
|
|
26
|
-
accessibilityLabel={
|
|
37
|
+
accessibilityLabel={'Cell'}
|
|
27
38
|
accessibilityHint={props.value}
|
|
28
39
|
style={[{
|
|
29
40
|
height: cx(50),
|
|
@@ -31,7 +42,9 @@ export default withTheme(function Cell(props: CellProps) {
|
|
|
31
42
|
justifyContent: 'center',
|
|
32
43
|
backgroundColor: props.theme?.card.background,
|
|
33
44
|
}, props.style]}
|
|
34
|
-
onPress={
|
|
45
|
+
onPress={() => {
|
|
46
|
+
props.onPress && props.onPress()
|
|
47
|
+
}}>
|
|
35
48
|
<CellContent
|
|
36
49
|
icon={props.icon}
|
|
37
50
|
iconStyle={props.iconStyle}
|
|
@@ -41,6 +54,7 @@ export default withTheme(function Cell(props: CellProps) {
|
|
|
41
54
|
valueStyle={props.valueStyle}
|
|
42
55
|
hideArrow={props.hideArrow}
|
|
43
56
|
style={props.contentStyle}
|
|
57
|
+
rightContent={props.rightContent}
|
|
44
58
|
/>
|
|
45
59
|
</TouchableOpacity>
|
|
46
60
|
)
|
|
@@ -51,12 +65,13 @@ interface CellContentProps {
|
|
|
51
65
|
icon?: ImageSourcePropType
|
|
52
66
|
iconStyle?: StyleProp<ImageStyle>
|
|
53
67
|
title: string
|
|
54
|
-
value
|
|
68
|
+
value?: string
|
|
55
69
|
style?: StyleProp<ViewStyle>
|
|
56
70
|
titleStyle?: StyleProp<TextStyle>
|
|
57
71
|
valueStyle?: StyleProp<TextStyle>
|
|
58
72
|
hideArrow?: boolean
|
|
59
73
|
arrowStyle?: { color?: any, size?: number }
|
|
74
|
+
rightContent?: React.ReactNode
|
|
60
75
|
}
|
|
61
76
|
|
|
62
77
|
const CellContentBase = (props: CellContentProps) => {
|
|
@@ -67,7 +82,8 @@ const CellContentBase = (props: CellContentProps) => {
|
|
|
67
82
|
props.style,
|
|
68
83
|
]}>
|
|
69
84
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
|
70
|
-
{props.icon && (<Image source={props.icon}
|
|
85
|
+
{props.icon && (<Image source={props.icon}
|
|
86
|
+
style={[{ width: cx(24), height: cx(24), marginRight: cx(10) }, props.iconStyle]}/>)}
|
|
71
87
|
<Text
|
|
72
88
|
style={[
|
|
73
89
|
{
|
|
@@ -78,28 +94,32 @@ const CellContentBase = (props: CellContentProps) => {
|
|
|
78
94
|
props.titleStyle,
|
|
79
95
|
]}>{props.title}</Text>
|
|
80
96
|
</View>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
{
|
|
98
|
+
props.rightContent !== undefined ? props.rightContent : (
|
|
99
|
+
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
|
100
|
+
<Text style={[
|
|
101
|
+
{
|
|
102
|
+
fontSize: cx(14),
|
|
103
|
+
color: props.theme?.global.secondFontColor,
|
|
104
|
+
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
105
|
+
},
|
|
106
|
+
props.valueStyle,
|
|
107
|
+
]}>{props.value}</Text>
|
|
108
|
+
<View style={{ width: cx(4) }}/>
|
|
109
|
+
{
|
|
110
|
+
!props.hideArrow && (
|
|
111
|
+
<IconFont
|
|
112
|
+
name="arrow"
|
|
113
|
+
color={props.arrowStyle?.color || props.theme?.global.secondFontColor}
|
|
114
|
+
size={props.arrowStyle?.size || cx(11)}/>
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
</View>
|
|
118
|
+
)
|
|
119
|
+
}
|
|
100
120
|
</View>
|
|
101
121
|
)
|
|
102
122
|
}
|
|
103
123
|
const CellContent = withTheme(CellContentBase) as React.ComponentType<CellContentProps>
|
|
104
124
|
|
|
105
|
-
export { CellContent }
|
|
125
|
+
export { CellContent }
|
package/src/components/Popup.tsx
CHANGED
|
@@ -3,7 +3,7 @@ import {Text, TouchableOpacity, View} from 'react-native'
|
|
|
3
3
|
import {Popup, Utils} from 'tuya-panel-kit'
|
|
4
4
|
import ThemeType from '../config/themeType'
|
|
5
5
|
|
|
6
|
-
const {convertX: cx, height} = Utils.RatioUtils
|
|
6
|
+
const {convertX: cx, height, statusBarHeight} = Utils.RatioUtils
|
|
7
7
|
const { withTheme } = Utils.ThemeUtils
|
|
8
8
|
|
|
9
9
|
interface InformationPopupProps {
|
|
@@ -50,7 +50,7 @@ const InformationPopup = (props: InformationPopupProps) => {
|
|
|
50
50
|
})
|
|
51
51
|
|
|
52
52
|
Popup.custom({
|
|
53
|
-
content: <View style={{height: height - cx(
|
|
53
|
+
content: <View style={{height: height - statusBarHeight - cx(40), padding: cx(24)}}>
|
|
54
54
|
{props.content}
|
|
55
55
|
</View>,
|
|
56
56
|
title: <TitleNode />,
|
|
@@ -11,11 +11,22 @@ interface IProps {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export default class Thumb extends Component<IProps> {
|
|
14
|
+
private animateX: Animated.Value;
|
|
15
|
+
private animateY: Animated.Value;
|
|
16
|
+
private previewRef: NativeComponent;
|
|
17
|
+
|
|
18
|
+
constructor(props: IProps) {
|
|
19
|
+
super(props);
|
|
20
|
+
// 确保在构造函数中初始化
|
|
21
|
+
this.animateX = new Animated.Value(props.x);
|
|
22
|
+
this.animateY = new Animated.Value(props.y);
|
|
23
|
+
}
|
|
24
|
+
|
|
14
25
|
componentDidUpdate(prevProps: IProps) {
|
|
15
|
-
if (prevProps.x !== this.props.x) {
|
|
26
|
+
if (prevProps.x !== this.props.x && this.animateX) {
|
|
16
27
|
this.animateX.setValue(this.props.x);
|
|
17
28
|
}
|
|
18
|
-
if (prevProps.y !== this.props.y) {
|
|
29
|
+
if (prevProps.y !== this.props.y && this.animateY) {
|
|
19
30
|
this.animateY.setValue(this.props.y);
|
|
20
31
|
}
|
|
21
32
|
}
|
|
@@ -34,13 +45,13 @@ export default class Thumb extends Component<IProps> {
|
|
|
34
45
|
|
|
35
46
|
setNativeProps(props: IProps) {
|
|
36
47
|
const { x, y, color } = props;
|
|
37
|
-
if (typeof x === 'number') {
|
|
48
|
+
if (typeof x === 'number' && this.animateX) {
|
|
38
49
|
this.animateX.setValue(x);
|
|
39
50
|
}
|
|
40
|
-
if (typeof y === 'number') {
|
|
51
|
+
if (typeof y === 'number' && this.animateY) {
|
|
41
52
|
this.animateY.setValue(y);
|
|
42
53
|
}
|
|
43
|
-
if (typeof color === 'string') {
|
|
54
|
+
if (typeof color === 'string' && this.previewRef) {
|
|
44
55
|
this.previewRef.setNativeProps({
|
|
45
56
|
style: {
|
|
46
57
|
backgroundColor: color,
|
|
@@ -49,10 +60,6 @@ export default class Thumb extends Component<IProps> {
|
|
|
49
60
|
}
|
|
50
61
|
}
|
|
51
62
|
|
|
52
|
-
private animateX = new Animated.Value(this.props.x);
|
|
53
|
-
private animateY = new Animated.Value(this.props.y);
|
|
54
|
-
private previewRef: NativeComponent;
|
|
55
|
-
|
|
56
63
|
render() {
|
|
57
64
|
const { color, size, img } = this.props;
|
|
58
65
|
const maskWidth = (size / 38) * 62;
|
package/src/composeLayout.tsx
CHANGED
|
@@ -3,8 +3,8 @@ import React, { Component } from 'react'
|
|
|
3
3
|
import { Provider } from 'react-redux'
|
|
4
4
|
import { DevInfo, DpValue, Theme, TYSdk } from 'tuya-panel-kit'
|
|
5
5
|
import { actions, store } from './models'
|
|
6
|
-
import {addListener, nativeEventEmitter, removeListener} from './api/nativeEventEmitter'
|
|
7
|
-
import {getSystemTimeFormat, getTimeZone, NativeApi} from './api/native'
|
|
6
|
+
import { addListener, nativeEventEmitter, removeListener } from './api/nativeEventEmitter'
|
|
7
|
+
import { getSystemTimeFormat, getTimeZone, NativeApi } from './api/native'
|
|
8
8
|
import {
|
|
9
9
|
DeviceInfo,
|
|
10
10
|
NativeProps,
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
} from './models/modules/NativePropsSlice'
|
|
18
18
|
import { LdvDpSchema, GlobalParams } from './models/GlobalParams'
|
|
19
19
|
import Connect from './components/connect'
|
|
20
|
-
import darkTheme from
|
|
21
|
-
import lightTheme from
|
|
20
|
+
import darkTheme from './config/dark-theme'
|
|
21
|
+
import lightTheme from './config/light-theme'
|
|
22
22
|
|
|
23
23
|
interface Props {
|
|
24
24
|
devInfo: DevInfo
|
|
@@ -78,7 +78,11 @@ const composeLayout = (component: React.ComponentType) => {
|
|
|
78
78
|
* 每当设备信息变更时,会将变更的设备信息值同步更新到`redux`中去。
|
|
79
79
|
*/
|
|
80
80
|
TYSdk.event.on('networkStateChange', data => {
|
|
81
|
-
|
|
81
|
+
if (actions && actions.common && actions.common.deviceChange) {
|
|
82
|
+
dispatch(actions.common.deviceChange(data as any))
|
|
83
|
+
} else {
|
|
84
|
+
console.warn('actions.common.deviceChange is not available')
|
|
85
|
+
}
|
|
82
86
|
})
|
|
83
87
|
|
|
84
88
|
class PanelComponent extends Component<Props> {
|
|
@@ -92,6 +96,7 @@ const composeLayout = (component: React.ComponentType) => {
|
|
|
92
96
|
state = {
|
|
93
97
|
colorScheme: 'light'
|
|
94
98
|
}
|
|
99
|
+
|
|
95
100
|
constructor(props: Props) {
|
|
96
101
|
super(props)
|
|
97
102
|
if (props && props.devInfo && props.devInfo.devId) {
|
|
@@ -153,7 +158,7 @@ const composeLayout = (component: React.ComponentType) => {
|
|
|
153
158
|
config: {},
|
|
154
159
|
groupDevices: []
|
|
155
160
|
},
|
|
156
|
-
initialDps: {...dps, ...JSON.parse(ldvDevInfo.dps)},
|
|
161
|
+
initialDps: { ...dps, ...JSON.parse(ldvDevInfo.dps) },
|
|
157
162
|
familyName: ldvDevInfo.familyName,
|
|
158
163
|
role: ldvDevInfo.role,
|
|
159
164
|
moods: [],
|
|
@@ -198,10 +203,10 @@ const composeLayout = (component: React.ComponentType) => {
|
|
|
198
203
|
dispatch(setGroupNativeProps(nativeProps))
|
|
199
204
|
}
|
|
200
205
|
|
|
201
|
-
async initGroupDevices(tyGroupId: number){
|
|
202
|
-
if(!tyGroupId) return
|
|
206
|
+
async initGroupDevices(tyGroupId: number) {
|
|
207
|
+
if (!tyGroupId) return
|
|
203
208
|
const res = await NativeApi.getGroupDevices(tyGroupId)
|
|
204
|
-
if(res.success && Array.isArray(res.data)){
|
|
209
|
+
if (res.success && Array.isArray(res.data)) {
|
|
205
210
|
dispatch(setGroupDevices(res.data))
|
|
206
211
|
}
|
|
207
212
|
}
|
|
@@ -218,7 +223,7 @@ const composeLayout = (component: React.ComponentType) => {
|
|
|
218
223
|
type: schemaItem.type,
|
|
219
224
|
mode: schemaItem.mode,
|
|
220
225
|
property: schemaItem.property,
|
|
221
|
-
}
|
|
226
|
+
}
|
|
222
227
|
dpSchemaMap[schemaItem.code] = dpSchema
|
|
223
228
|
dpSchemaMap[schemaItem.id] = dpSchema
|
|
224
229
|
dps[schemaItem.id] = null
|
package/src/i18n/strings.ts
CHANGED
|
@@ -17128,7 +17128,7 @@ export default {
|
|
|
17128
17128
|
"Onoff_button_socket": "켜기 / 끄기",
|
|
17129
17129
|
"Remotecontrol_Title": "WiFi 리모컨을 정말로 활성화하시겠습니까?",
|
|
17130
17130
|
"Remotecontrol_description": "WiFi 리모컨이 활성화되면 대기 전력이 증가한다는 점에 유의하세요.",
|
|
17131
|
-
"activate_sensor": "센서
|
|
17131
|
+
"activate_sensor": "센서 활성화하기",
|
|
17132
17132
|
"addTimeCycle_settings_sec_text": "장치의 전원을 얼마동안 켜두어야 합니까?",
|
|
17133
17133
|
"addTimeCycle_settings_sec_text2": "장치의 전원을 얼마동안 꺼두어야 합니까?",
|
|
17134
17134
|
"addTimeCycle_warning_text": "시간 설정이 사용 가능한 기간을 초과했습니다.",
|
|
@@ -17603,7 +17603,7 @@ export default {
|
|
|
17603
17603
|
"curtain_fast_calibration_step2": "커튼이 완전히 닫힌 상태에서 완전히 열리는 시간까지 필요한 시간을 입력하십시오.",
|
|
17604
17604
|
"curtain_fast_toast_text": "커튼이 0% 로 완전히 닫혔을 때만 빠른 보정이 가능합니다.",
|
|
17605
17605
|
"curtain_intelligent_calibration": "지능형 캘리브레이션",
|
|
17606
|
-
"curtain_intelligent_calibration_step1": "
|
|
17606
|
+
"curtain_intelligent_calibration_step1": "자동커튼을 보정할시 커튼을 완전히 열고 닫을 수 있는 벽 스위치가 필요하다는 점에 유의하세요. 벽 스위치를 사용하지 않는 경우에는 고속 보정모드를 사용하십시오.\n\n1. 자동 보정 전에 커튼 모터를 올바르게 설치하여 커튼을 완전히 열고 닫을 수 있도록 하십시오.\n\n2. 벽 스위치를 눌러 커튼이 완전히 닫히도록 하십시오.\n\n3. \"다음 단계 \"를 눌러주세요.",
|
|
17607
17607
|
"curtain_intelligent_calibration_step2": "1.커튼이 완전히 열릴 때까지 벽 스위치를 눌러 커튼을 엽니다.\n\n2.커튼이 완전히 닫힐 때까지 벽 스위치를 눌러 커튼을 닫습니다.\n\n3.1과 2의 단계가 완료되면 “보정”을 클릭합니다.",
|
|
17608
17608
|
"curtain_motor_steering": "모터 스티어링",
|
|
17609
17609
|
"curtain_motor_steering1": "전진 방향",
|
|
@@ -18617,11 +18617,11 @@ export default {
|
|
|
18617
18617
|
"ceiling_fan_tile_uvc_fan_speed": "Greitis",
|
|
18618
18618
|
"ceiling_light_title_lighting_headline": "Papildomas apšvietimas",
|
|
18619
18619
|
"chartdisplay_energy": "Energija",
|
|
18620
|
-
"chartdisplay_power": "
|
|
18621
|
-
"charttime_type1": "24
|
|
18622
|
-
"charttime_type2": "6
|
|
18623
|
-
"charttime_type3": "1
|
|
18624
|
-
"charttime_type4": "5 min",
|
|
18620
|
+
"chartdisplay_power": "Maitinimas",
|
|
18621
|
+
"charttime_type1": "24 val.",
|
|
18622
|
+
"charttime_type2": "6 val.",
|
|
18623
|
+
"charttime_type3": "1 val.",
|
|
18624
|
+
"charttime_type4": "5 min.",
|
|
18625
18625
|
"childlock_overview_description_text": "Ši funkcija išjungia įtaiso fizinį jungiklį. Funkciją galima išjungti čia arba per penkias sekundes paspausti jungiklį keturis kartus iš eilės.",
|
|
18626
18626
|
"conflict_dialog_active_item_bio_rhythm_description": "Žinokite, kad biologinis ritmas yra priešingas vienai ar daugiau funkcijų. Priešingos funkcijos bus išjungtos.",
|
|
18627
18627
|
"conflict_dialog_active_item_bio_rhythm_titel": "Ar tikrai norite įjungti šį biologinio ritmo grafiką?",
|
|
@@ -18826,7 +18826,7 @@ export default {
|
|
|
18826
18826
|
"curtain_fast_calibration_step2": "Įveskite laiką, kurio reikia užuolaidai pilnai atsidaryti",
|
|
18827
18827
|
"curtain_fast_toast_text": "Greitas kalibravimas yra leidžiamas tik tuomet, kai užuolaida yra 0% atidarymo lygyje.",
|
|
18828
18828
|
"curtain_intelligent_calibration": "Išmanus kalibravimas",
|
|
18829
|
-
"curtain_intelligent_calibration_step1": "Atkreipkite dėmesį, kad norint atlikti
|
|
18829
|
+
"curtain_intelligent_calibration_step1": "Atkreipkite dėmesį, kad norint atlikti pažangų kalibravimą, reikia sieninio jungiklio, kad užuolaidos būtų visiškai atidarytos/uždarytos. Jei nenaudojate sieninio jungiklio, naudokite greito kalibravimo režimą.\n\n1. Prieš kalibravimą teisingai sumontuokite užuolaidų variklį, kad užuolaidos galėtų būti visiškai atidarytos/uždarytos.\n\n2. Paspauskite sieninį jungiklį, kad užuolaidos būtų uždarytos, kol jos bus visiškai uždarytos.\n\n3. Spustelėkite „Kitas žingsnis“.",
|
|
18830
18830
|
"curtain_intelligent_calibration_step2": "1. Paspauskite sieninį jungiklį, kad atidarytumėte užuolaidą, kol ji bus visiškai atidaryta.\n\n2. Paspauskite sieninį jungiklį, kad uždarytumėte užuolaidą, kol ji bus visiškai uždaryta.\n\n3. Atlikę 1 ir 2 veiksmus, spustelėkite “Kalibruoti”.",
|
|
18831
18831
|
"curtain_motor_steering": "Variklio valdymas",
|
|
18832
18832
|
"curtain_motor_steering1": "Į priekį",
|
|
@@ -19183,7 +19183,7 @@ export default {
|
|
|
19183
19183
|
"plug_energyconsumptionswitch": "Perjungti į energijos suvartojimo režimą",
|
|
19184
19184
|
"plug_energygenerationswitch": "Perjungti į energijos gamybos režimą",
|
|
19185
19185
|
"pos_mode_switching_fail_tips": "Neteisingas slaptažodis. Patikrinkite ir įveskite teisingą slaptažodį.",
|
|
19186
|
-
"power_chart_empty": "
|
|
19186
|
+
"power_chart_empty": "Dabartiniu laikotarpiu duomenų nėra",
|
|
19187
19187
|
"power_management_battery_remaining": "Likęs akumuliatoriaus lygis",
|
|
19188
19188
|
"power_management_low_battery_alarm_threshold": "Nustatykite signalą, kai akumuliatoriaus įkrovos lygis sumažės",
|
|
19189
19189
|
"power_management_power_source": "Maitinimo šaltinis",
|
|
@@ -19543,13 +19543,13 @@ export default {
|
|
|
19543
19543
|
"timeschedule_add_schedule_weekday5_text": "Pn",
|
|
19544
19544
|
"timeschedule_add_schedule_weekday6_text": "Š",
|
|
19545
19545
|
"timeschedule_add_schedule_weekday7_text": "S",
|
|
19546
|
-
"timeschedule_off": "
|
|
19547
|
-
"timeschedule_on": "
|
|
19546
|
+
"timeschedule_off": "IŠJUNGTA – Laiko grafikas",
|
|
19547
|
+
"timeschedule_on": "ĮJUNGTA – Laiko grafikas",
|
|
19548
19548
|
"timeschedule_overview_description_text": "Gali būti nedidelių vėlavimų iki 30 sekundžių.",
|
|
19549
19549
|
"timeschedule_overview_empty_button_add_text": "Pridėkite laiko grafiką",
|
|
19550
19550
|
"timeschedule_overview_empty_information_text": "Dar nepridėjote laiko grafiko.",
|
|
19551
19551
|
"timeschedule_overview_headline_text": "Laiko grafikas",
|
|
19552
|
-
"timeschedule_own": "
|
|
19552
|
+
"timeschedule_own": "Sukurkite savo laiko grafiką",
|
|
19553
19553
|
"title_COsensor": "CO detektorius",
|
|
19554
19554
|
"title_smokesensor": "Dūmų detektorius",
|
|
19555
19555
|
"title_watersensor": "Vandens nuotėkio detektorius",
|
|
@@ -19841,9 +19841,9 @@ export default {
|
|
|
19841
19841
|
"ceiling_light_title_lighting_headline": "Sekundārais apgaismojums",
|
|
19842
19842
|
"chartdisplay_energy": "Enerģija",
|
|
19843
19843
|
"chartdisplay_power": "Jauda",
|
|
19844
|
-
"charttime_type1": "24
|
|
19845
|
-
"charttime_type2": "6
|
|
19846
|
-
"charttime_type3": "1
|
|
19844
|
+
"charttime_type1": "24 h",
|
|
19845
|
+
"charttime_type2": "6 h",
|
|
19846
|
+
"charttime_type3": "1 h",
|
|
19847
19847
|
"charttime_type4": "5 minūtes",
|
|
19848
19848
|
"childlock_overview_description_text": "Šī funkcija atspējo ierīces fizisko slēdzi. Lai to izslēgtu, varat nospiest slēdzi četras reizes pēc kārtas piecu sekunžu laikā vai izslēgt šo funkciju no šejienes.",
|
|
19849
19849
|
"conflict_dialog_active_item_bio_rhythm_description": "Ņemiet vērā, ka bioloģiskais ritms ir pretrunā ar vienu vai vairākām funkcijām. Konfliktējošās funkcijas tiks deaktivizētas.",
|
|
@@ -20049,7 +20049,7 @@ export default {
|
|
|
20049
20049
|
"curtain_fast_calibration_step2": "Lūdzu, ievadiet laiku, kas nepieciešams aizkaram no pilnīgas aizvēršanas līdz pilnīgai atvēršanai.",
|
|
20050
20050
|
"curtain_fast_toast_text": "Ātrā kalibrēšana ir atļauta tikai tad, ja aizkars ir pilnībā aizvērts 0 %.",
|
|
20051
20051
|
"curtain_intelligent_calibration": "Viedā kalibrēšana",
|
|
20052
|
-
"curtain_intelligent_calibration_step1": "Lūdzu, ņemiet vērā, ka
|
|
20052
|
+
"curtain_intelligent_calibration_step1": "Lūdzu, ņemiet vērā, ka, lai veiktu viedo kalibrēšanu, ir nepieciešams sienas slēdzis, lai pilnībā atvērtu/aizvērtu aizkaru. Ja neizmantojat sienas slēdzi, lūdzu, izmantojiet ātrās kalibrēšanas režīmu.\n\n1. Pirms kalibrēšanas pareizi uzstādiet aizkara motoru, lai aizkaru varētu pilnībā atvērt/aizvērt.\n\n2. Nospiediet sienas slēdzi, lai aizvērtu aizkaru, līdz tas ir pilnībā aizvērtas.\n\n3. Noklikšķiniet uz “Nākamais solis”.",
|
|
20053
20053
|
"curtain_intelligent_calibration_step2": "1. Nospiediet sienas slēdzi, lai atvērtu aizkaru, līdz tas ir pilnībā atvērts.\n\n2. Nospiediet sienas slēdzi, lai aizkaru aizvērtu, līdz tas ir pilnībā aizvērts.\n\n3. Kad 1. un 2. darbība ir pabeigta, noklikšķiniet uz \"Kalibrēt\".",
|
|
20054
20054
|
"curtain_motor_steering": "Motora vadīšana",
|
|
20055
20055
|
"curtain_motor_steering1": "Virziens uz priekšu",
|
|
@@ -20406,7 +20406,7 @@ export default {
|
|
|
20406
20406
|
"plug_energyconsumptionswitch": "Pārslēgšanās uz enerģijas patēriņa režīmu",
|
|
20407
20407
|
"plug_energygenerationswitch": "Pārslēgšanās uz enerģijas ražošanas režīmu",
|
|
20408
20408
|
"pos_mode_switching_fail_tips": "Nepareiza parole. Lūdzu, pārbaudiet un ievadiet pareizo paroli.",
|
|
20409
|
-
"power_chart_empty": "
|
|
20409
|
+
"power_chart_empty": "Pašreizējā laika periodā nav datu.",
|
|
20410
20410
|
"power_management_battery_remaining": "Atlikušais akumulatora uzlādes līmenis",
|
|
20411
20411
|
"power_management_low_battery_alarm_threshold": "Iestatiet trauksmes signālu zema akumulatora sliekšņa gadījumā",
|
|
20412
20412
|
"power_management_power_source": "Enerģijas avots",
|
|
@@ -20766,13 +20766,13 @@ export default {
|
|
|
20766
20766
|
"timeschedule_add_schedule_weekday5_text": "Pk",
|
|
20767
20767
|
"timeschedule_add_schedule_weekday6_text": "S",
|
|
20768
20768
|
"timeschedule_add_schedule_weekday7_text": "Sv",
|
|
20769
|
-
"timeschedule_off": "
|
|
20770
|
-
"timeschedule_on": "
|
|
20769
|
+
"timeschedule_off": "IZSLĒGTS - Laika grafiks",
|
|
20770
|
+
"timeschedule_on": "IESLĒGTS — Laika grafiks",
|
|
20771
20771
|
"timeschedule_overview_description_text": "Var rasties nelieli kavējumi līdz 30 sekundēm.",
|
|
20772
20772
|
"timeschedule_overview_empty_button_add_text": "Pievienot laika grafiku",
|
|
20773
20773
|
"timeschedule_overview_empty_information_text": "Jūs vēl neesat pievienojis laika grafiku.",
|
|
20774
20774
|
"timeschedule_overview_headline_text": "Laika grafiks",
|
|
20775
|
-
"timeschedule_own": "
|
|
20775
|
+
"timeschedule_own": "Izveidojiet savu laika grafiku",
|
|
20776
20776
|
"title_COsensor": "CO detektors",
|
|
20777
20777
|
"title_smokesensor": "Dūmu detektors",
|
|
20778
20778
|
"title_watersensor": "Ūdens noplūdes detektors",
|