@ledvance/ui-biz-bundle 1.1.69 → 1.1.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/.babelrc +31 -31
  2. package/.eslintignore +5 -5
  3. package/.eslintrc.js +27 -27
  4. package/.prettierrc.js +1 -1
  5. package/.versionrc +5 -5
  6. package/package.json +74 -74
  7. package/rn-cli.config.js +8 -8
  8. package/src/hooks/DeviceDpStateHooks.d.ts +14 -14
  9. package/src/hooks/DeviceDpStateHooks.ts +50 -50
  10. package/src/modules/biorhythm/BiorhythmActions.d.ts +8 -8
  11. package/src/modules/biorhythm/BiorhythmActions.ts +324 -324
  12. package/src/modules/biorhythm/BiorhythmBean.d.ts +58 -58
  13. package/src/modules/biorhythm/BiorhythmBean.ts +230 -230
  14. package/src/modules/biorhythm/BiorhythmEditPage.d.ts +14 -14
  15. package/src/modules/biorhythm/BiorhythmEditPage.tsx +324 -324
  16. package/src/modules/biorhythm/BiorhythmPage.d.ts +10 -10
  17. package/src/modules/biorhythm/BiorhythmPage.tsx +796 -796
  18. package/src/modules/biorhythm/IconSelect.d.ts +2 -2
  19. package/src/modules/biorhythm/IconSelect.tsx +81 -81
  20. package/src/modules/biorhythm/Router.ts +34 -34
  21. package/src/modules/biorhythm/circular/ItemIcon.d.ts +22 -22
  22. package/src/modules/biorhythm/circular/ItemIcon.tsx +172 -172
  23. package/src/modules/biorhythm/circular/Progress.d.ts +24 -24
  24. package/src/modules/biorhythm/circular/Progress.tsx +411 -411
  25. package/src/modules/biorhythm/circular/TimeCircular.d.ts +11 -11
  26. package/src/modules/biorhythm/circular/TimeCircular.tsx +70 -70
  27. package/src/modules/biorhythm/iconListData.d.ts +7 -7
  28. package/src/modules/biorhythm/iconListData.ts +29 -29
  29. package/src/modules/biorhythm/pIdList.d.ts +2 -2
  30. package/src/modules/biorhythm/pIdList.ts +35 -35
  31. package/src/modules/biorhythm/res/BiologicalRes.d.ts +43 -43
  32. package/src/modules/biorhythm/res/BiologicalRes.ts +41 -41
  33. package/src/modules/config/ldvConfig.d.ts +2 -2
  34. package/src/modules/config/ldvConfig.tsx +18 -18
  35. package/src/modules/fixedTime/FixedTimeActions.ts +173 -173
  36. package/src/modules/fixedTime/FixedTimeDetailPage.tsx +372 -372
  37. package/src/modules/fixedTime/FixedTimePage.tsx +213 -213
  38. package/src/modules/fixedTime/Router.ts +26 -26
  39. package/src/modules/flags/FlagActions.ts +267 -267
  40. package/src/modules/flags/FlagEditPage.tsx +441 -441
  41. package/src/modules/flags/FlagInfo.tsx +563 -563
  42. package/src/modules/flags/FlagItem.tsx +90 -90
  43. package/src/modules/flags/FlagPage.tsx +277 -277
  44. package/src/modules/flags/Router.ts +25 -25
  45. package/src/modules/history/HistoryPage.d.ts +2 -2
  46. package/src/modules/history/HistoryPage.tsx +261 -261
  47. package/src/modules/history/Router.ts +16 -16
  48. package/src/modules/history/SwitchHistoryPageActions.d.ts +14 -14
  49. package/src/modules/history/SwitchHistoryPageActions.ts +76 -76
  50. package/src/modules/mood/AddMoodPage.d.ts +10 -10
  51. package/src/modules/mood/AddMoodPage.tsx +792 -792
  52. package/src/modules/mood/DynamicMoodEditorPage.d.ts +6 -6
  53. package/src/modules/mood/DynamicMoodEditorPage.tsx +561 -561
  54. package/src/modules/mood/FantasyMood.tsx +176 -176
  55. package/src/modules/mood/FantasyMoodEditPage.tsx +582 -582
  56. package/src/modules/mood/FantasyMoodItem.tsx +104 -104
  57. package/src/modules/mood/FantasyRouter.ts +35 -35
  58. package/src/modules/mood/MixMood/AddMixMoodPage.tsx +247 -247
  59. package/src/modules/mood/MixMood/MixMoodActions.ts +128 -128
  60. package/src/modules/mood/MixMood/MixMoodEditPage.tsx +721 -721
  61. package/src/modules/mood/MixMood/MixMoodItem.tsx +134 -134
  62. package/src/modules/mood/MixMood/MixMoodPage.tsx +326 -326
  63. package/src/modules/mood/MixMood/MixSceneBeans.ts +364 -364
  64. package/src/modules/mood/MixMood/RecommendMixMoodItem.tsx +69 -69
  65. package/src/modules/mood/MixMood/Router.ts +44 -44
  66. package/src/modules/mood/MoodItem.d.ts +11 -11
  67. package/src/modules/mood/MoodItem.tsx +114 -114
  68. package/src/modules/mood/MoodPage.d.ts +16 -16
  69. package/src/modules/mood/MoodPage.tsx +296 -296
  70. package/src/modules/mood/RecommendMoodItem.d.ts +13 -13
  71. package/src/modules/mood/RecommendMoodItem.tsx +74 -74
  72. package/src/modules/mood/Router.ts +53 -53
  73. package/src/modules/mood/StaticMoodEditorPage.d.ts +16 -16
  74. package/src/modules/mood/StaticMoodEditorPage.tsx +320 -320
  75. package/src/modules/mood/tools.d.ts +3 -3
  76. package/src/modules/mood/tools.ts +11 -11
  77. package/src/modules/music/MusicDataBean.d.ts +47 -47
  78. package/src/modules/music/MusicDataBean.ts +167 -167
  79. package/src/modules/music/MusicManager.d.ts +27 -27
  80. package/src/modules/music/MusicManager.ts +207 -207
  81. package/src/modules/music/MusicPage.d.ts +10 -10
  82. package/src/modules/music/MusicPage.tsx +347 -347
  83. package/src/modules/music/MusicPageActions.d.ts +35 -35
  84. package/src/modules/music/MusicPageActions.ts +317 -317
  85. package/src/modules/music/Router.ts +16 -16
  86. package/src/modules/music/SelecetGenre.d.ts +7 -7
  87. package/src/modules/music/SelecetGenre.tsx +63 -63
  88. package/src/modules/music/color.d.ts +2 -2
  89. package/src/modules/music/color.ts +73 -73
  90. package/src/modules/music/res/index.d.ts +10 -10
  91. package/src/modules/music/res/index.ts +9 -9
  92. package/src/modules/powerOnBehavior/PowerOnBehaviorActions.ts +11 -11
  93. package/src/modules/powerOnBehavior/PowerOnBehaviorPage.tsx +173 -173
  94. package/src/modules/powerOnBehavior/Router.ts +16 -16
  95. package/src/modules/randomTime/RandomTimeActions.ts +160 -160
  96. package/src/modules/randomTime/RandomTimeDetailPage.tsx +337 -337
  97. package/src/modules/randomTime/RandomTimePage.tsx +214 -214
  98. package/src/modules/randomTime/Router.ts +25 -25
  99. package/src/modules/randomTime/Summary.tsx +122 -122
  100. package/src/modules/scene/SceneAction.d.ts +13 -13
  101. package/src/modules/scene/SceneAction.ts +473 -473
  102. package/src/modules/scene/SceneDetailPage.d.ts +1 -1
  103. package/src/modules/scene/SceneDetailPage.tsx +421 -421
  104. package/src/modules/scene/SceneInfo.d.ts +72 -72
  105. package/src/modules/scene/SceneInfo.ts +1059 -1059
  106. package/src/modules/scene/ScenePage.d.ts +7 -7
  107. package/src/modules/scene/ScenePage.tsx +147 -147
  108. package/src/modules/select/SelectPage.d.ts +12 -12
  109. package/src/modules/select/SelectPage.tsx +137 -137
  110. package/src/modules/sleepWakeup/DeviceState.d.ts +9 -9
  111. package/src/modules/sleepWakeup/DeviceState.tsx +99 -99
  112. package/src/modules/sleepWakeup/LdvScheduleItem.d.ts +15 -15
  113. package/src/modules/sleepWakeup/LdvScheduleItem.tsx +176 -176
  114. package/src/modules/sleepWakeup/Router.ts +25 -25
  115. package/src/modules/sleepWakeup/SleepWakeUpActions.d.ts +2 -2
  116. package/src/modules/sleepWakeup/SleepWakeUpActions.ts +180 -180
  117. package/src/modules/sleepWakeup/SleepWakeUpDetailPage.d.ts +2 -2
  118. package/src/modules/sleepWakeup/SleepWakeUpDetailPage.tsx +616 -616
  119. package/src/modules/sleepWakeup/SleepWakeUpPage.d.ts +13 -13
  120. package/src/modules/sleepWakeup/SleepWakeUpPage.tsx +424 -424
  121. package/src/modules/sleepWakeup/utils.d.ts +44 -44
  122. package/src/modules/sleepWakeup/utils.ts +253 -253
  123. package/src/modules/timeSchedule/DeviceState.d.ts +17 -17
  124. package/src/modules/timeSchedule/DeviceState.tsx +94 -94
  125. package/src/modules/timeSchedule/LdvScheduleItem.d.ts +15 -15
  126. package/src/modules/timeSchedule/LdvScheduleItem.tsx +130 -130
  127. package/src/modules/timeSchedule/ManualSetting.d.ts +14 -14
  128. package/src/modules/timeSchedule/ManualSetting.tsx +219 -219
  129. package/src/modules/timeSchedule/MoodSetting.d.ts +11 -11
  130. package/src/modules/timeSchedule/MoodSetting.tsx +228 -228
  131. package/src/modules/timeSchedule/Router.ts +25 -25
  132. package/src/modules/timeSchedule/ScheduleScene.d.ts +6 -6
  133. package/src/modules/timeSchedule/ScheduleScene.tsx +144 -144
  134. package/src/modules/timeSchedule/SingleLightView.d.ts +12 -12
  135. package/src/modules/timeSchedule/SingleLightView.tsx +175 -175
  136. package/src/modules/timeSchedule/TimeScheduleBean.d.ts +14 -14
  137. package/src/modules/timeSchedule/TimeScheduleBean.ts +18 -18
  138. package/src/modules/timeSchedule/TimeScheduleEditpage.d.ts +6 -6
  139. package/src/modules/timeSchedule/TimeScheduleEditpage.tsx +765 -765
  140. package/src/modules/timeSchedule/TimeSchedulePage.d.ts +13 -13
  141. package/src/modules/timeSchedule/TimeSchedulePage.tsx +358 -358
  142. package/src/modules/timeSchedule/components/ColorList.ts +23 -23
  143. package/src/modules/timeSchedule/components/LampSwitchCard.tsx +106 -106
  144. package/src/modules/timeSchedule/mix/MixLightActions.d.ts +3 -3
  145. package/src/modules/timeSchedule/mix/MixLightActions.ts +49 -49
  146. package/src/modules/timeSchedule/mix/MixLightBean.d.ts +10 -10
  147. package/src/modules/timeSchedule/mix/MixLightBean.ts +9 -9
  148. package/src/modules/timeSchedule/mix/MixLightView.d.ts +7 -7
  149. package/src/modules/timeSchedule/mix/MixLightView.tsx +197 -197
  150. package/src/modules/timeSchedule/utils.d.ts +1 -1
  151. package/src/modules/timeSchedule/utils.ts +6 -6
  152. package/src/modules/timer/Router.ts +16 -16
  153. package/src/modules/timer/TimerPage.d.ts +11 -11
  154. package/src/modules/timer/TimerPage.tsx +384 -384
  155. package/src/modules/timer/TimerPageAction.d.ts +22 -22
  156. package/src/modules/timer/TimerPageAction.ts +131 -131
  157. package/src/navigation/Routers.d.ts +15 -15
  158. package/src/navigation/Routers.ts +46 -46
  159. package/src/navigation/tools.d.ts +9 -9
  160. package/src/navigation/tools.ts +21 -21
  161. package/src/newModules/biorhythm/BiorhythmActions.ts +62 -11
  162. package/src/newModules/biorhythm/BiorhythmPage.tsx +1 -4
  163. package/src/newModules/childLock/ChildLockPage.tsx +97 -97
  164. package/src/newModules/childLock/Router.ts +16 -16
  165. package/src/newModules/energyConsumption/EnergyConsumptionActions.ts +23 -23
  166. package/src/newModules/energyConsumption/EnergyConsumptionChart.tsx +84 -84
  167. package/src/newModules/energyConsumption/EnergyConsumptionDetail.tsx +322 -322
  168. package/src/newModules/energyConsumption/EnergyConsumptionPage.tsx +393 -393
  169. package/src/newModules/energyConsumption/Router.ts +34 -34
  170. package/src/newModules/energyConsumption/co2Data.ts +23655 -23655
  171. package/src/newModules/energyConsumption/component/BarChart.tsx +93 -93
  172. package/src/newModules/energyConsumption/component/EnergyModal.tsx +284 -284
  173. package/src/newModules/energyConsumption/component/Overview.tsx +118 -118
  174. package/src/newModules/fixedTime/FixedTimeActions.ts +241 -241
  175. package/src/newModules/fixedTime/FixedTimeDetailPage.tsx +345 -345
  176. package/src/newModules/fixedTime/FixedTimePage.tsx +302 -302
  177. package/src/newModules/fixedTime/Router.ts +25 -25
  178. package/src/newModules/lightMode/LightModePage.tsx +204 -204
  179. package/src/newModules/lightMode/Router.ts +16 -16
  180. package/src/newModules/mood/Interface.ts +5 -0
  181. package/src/newModules/mood/MixDynamicMoodEditor.tsx +8 -5
  182. package/src/newModules/mood/MoodActions.ts +32 -20
  183. package/src/newModules/mood/MoodItem.tsx +3 -3
  184. package/src/newModules/mood/MoodPage.tsx +31 -15
  185. package/src/newModules/mood/MoodParse.ts +5 -6
  186. package/src/newModules/mood/RecommendMoodItem.tsx +3 -3
  187. package/src/newModules/mood/Router.ts +9 -0
  188. package/src/newModules/overchargeSwitch/OverchargeSwitchPage.tsx +96 -96
  189. package/src/newModules/overchargeSwitch/Router.ts +16 -16
  190. package/src/newModules/powerOnBehavior/LightBehaviorPage.tsx +266 -266
  191. package/src/newModules/powerOnBehavior/PlugBehaviorPage.tsx +173 -173
  192. package/src/newModules/powerOnBehavior/PowerOnBehaviorActions.ts +106 -106
  193. package/src/newModules/powerOnBehavior/Router.ts +27 -27
  194. package/src/newModules/randomTime/RandomTimeActions.ts +238 -238
  195. package/src/newModules/randomTime/RandomTimeDetailPage.tsx +325 -325
  196. package/src/newModules/randomTime/RandomTimePage.tsx +299 -299
  197. package/src/newModules/randomTime/Router.ts +25 -25
  198. package/src/newModules/randomTime/Summary.tsx +116 -116
  199. package/src/newModules/remoteControl/RemoteControlActions.ts +5 -5
  200. package/src/newModules/remoteControl/RemoteControlPage.tsx +51 -51
  201. package/src/newModules/remoteControl/Router.ts +15 -15
  202. package/src/newModules/select/Route.ts +16 -16
  203. package/src/newModules/select/SelectPage.d.ts +12 -12
  204. package/src/newModules/select/SelectPage.tsx +137 -137
  205. package/src/newModules/sleepWakeUp/Interface.ts +69 -69
  206. package/src/newModules/sleepWakeUp/Router.ts +24 -24
  207. package/src/newModules/sleepWakeUp/SleepWakeUpActions.ts +317 -317
  208. package/src/newModules/sleepWakeUp/SleepWakeUpDetailPage.tsx +661 -661
  209. package/src/newModules/sleepWakeUp/SleepWakeUpPage.tsx +455 -455
  210. package/src/newModules/sleepWakeUp/utils.ts +253 -253
  211. package/src/newModules/swithInching/Router.ts +16 -16
  212. package/src/newModules/swithInching/SwithInching.tsx +231 -231
  213. package/src/newModules/swithInching/SwithInchingAction.ts +55 -55
  214. package/src/newModules/swithInching/pickerView.tsx +91 -91
  215. package/src/newModules/timeSchedule/Interface.ts +142 -142
  216. package/src/newModules/timeSchedule/Router.ts +25 -25
  217. package/src/newModules/timeSchedule/TimeScheduleActions.ts +53 -53
  218. package/src/newModules/timeSchedule/TimeScheduleDetailPage.tsx +648 -648
  219. package/src/newModules/timeSchedule/TimeSchedulePage.tsx +253 -253
  220. package/src/newModules/timeSchedule/components/ManuaSettings.tsx +460 -460
  221. package/src/newModules/timeSchedule/components/ScheduleCard.tsx +125 -125
  222. package/tsconfig.json +50 -50
@@ -1,793 +1,793 @@
1
- import Strings from '@ledvance/base/src/i18n'
2
- import Page from '@ledvance/base/src/components/Page'
3
- import React, {useCallback} from 'react'
4
- import {FlatList, StyleSheet, Text, View} from 'react-native'
5
- import {Utils} from 'tuya-panel-kit'
6
- import RecommendMoodItem, {ColorsLineProps} from './RecommendMoodItem'
7
- import Spacer from '@ledvance/base/src/components/Spacer'
8
- import {useReactive, useCreation} from 'ahooks'
9
- import {useNavigation, useRoute} from '@react-navigation/native'
10
- import {SceneNodeTransitionMode, SceneUIState} from '../scene/SceneInfo'
11
- import {toDynamicMoodEditorPage, toStaticMoodEditorPage} from '../../navigation/tools'
12
- import {MoodPageProps} from './MoodPage'
13
- import { difference, head, map, range } from 'lodash'
14
-
15
- const cx = Utils.RatioUtils.convertX
16
-
17
- export interface AddMoodPageParams {
18
- isStatic: boolean,
19
- moods: SceneUIState[],
20
- onSave: () => void,
21
- moduleParams: MoodPageProps
22
- }
23
-
24
- interface AddMoodPageState {
25
- data: RecommendMood[]
26
- }
27
-
28
- const AddMoodPage = () => {
29
- const navigation = useNavigation()
30
- const routeParams = useRoute().params as AddMoodPageParams
31
- const moduleParams = routeParams.moduleParams
32
- const moodId = useCreation(() => {
33
- const useIds = map(routeParams.moods, 'id')
34
- const idRange = range(0, 256)
35
- return Math.max(head(difference(idRange, useIds)) || 0, 0)
36
- }, [routeParams.moods])
37
- const state = useReactive<AddMoodPageState>({
38
- data: getRecommendMoods(
39
- routeParams.isStatic,
40
- moduleParams.isSupportColor,
41
- moduleParams.isSupportTemperature,
42
- ),
43
- })
44
- const recommendMood2SceneUIState = useCallback((recommendMood: RecommendMood) => {
45
- return {
46
- id: moodId,
47
- image: '',
48
- fanEnable: recommendMood.fanEnable,
49
- fanSpeed: recommendMood.fanSpeed,
50
- name: recommendMood.name,
51
- nodes: recommendMood.moodColorsLineProps?.nodes || [],
52
- }
53
- }, [routeParams, routeParams.moods, moodId])
54
-
55
- return (
56
- <Page
57
- backText={Strings.getLang('add_new_static_mood_system_back')}
58
- headlineText={Strings.getLang(routeParams.isStatic ? 'add_new_static_mood_headline_text' : 'add_new_dynamic_mood_headline_text')}>
59
- <View style={styles.root}>
60
- <Text style={styles.desc}>
61
- {Strings.getLang(routeParams.isStatic ? 'add_new_static_mood_description_text' : 'add_new_dynamic_mood_description_text')}
62
- </Text>
63
- <FlatList
64
- style={{flex: 1}}
65
- data={state.data}
66
- renderItem={({item, index}) => {
67
- return <RecommendMoodItem
68
- title={item.name}
69
- moodColorsLineProps={item.moodColorsLineProps}
70
- onPress={() => {
71
- if (routeParams.isStatic) {
72
- toStaticMoodEditorPage(navigation,
73
- {
74
- mode: 'add',
75
- currentMood: index === 0 ? newMood(
76
- moodId,
77
- moduleParams.isSupportColor && moduleParams.isSupportTemperature,
78
- routeParams.isStatic,
79
- moduleParams.isSupportColor,
80
- ) : recommendMood2SceneUIState(item),
81
- moods: routeParams.moods,
82
- moduleParams: moduleParams,
83
- onSave: routeParams.onSave,
84
- })
85
- } else {
86
- toDynamicMoodEditorPage(navigation,
87
- {
88
- mode: 'add',
89
- currentMood: index === 0 ? newMood(
90
- moodId,
91
- moduleParams.isSupportColor && moduleParams.isSupportTemperature,
92
- routeParams.isStatic,
93
- moduleParams.isSupportColor,
94
- ) : recommendMood2SceneUIState(item),
95
- moods: routeParams.moods,
96
- moduleParams: moduleParams,
97
- onSave: routeParams.onSave,
98
- })
99
- }
100
- }}/>
101
- }}
102
- ItemSeparatorComponent={() => <Spacer/>}
103
- ListHeaderComponent={() => <Spacer/>}
104
- ListFooterComponent={() => <Spacer/>}
105
- keyExtractor={item => item.name}/>
106
- </View>
107
- </Page>
108
- )
109
- }
110
-
111
- const styles = StyleSheet.create({
112
- root: {
113
- flex: 1,
114
- flexDirection: 'column',
115
- },
116
- desc: {
117
- color: '#000',
118
- fontSize: cx(16),
119
- marginHorizontal: cx(24),
120
- marginTop: cx(12),
121
- },
122
- })
123
-
124
- export default AddMoodPage
125
-
126
- function newMood(
127
- id: number,
128
- isColorMode: boolean,
129
- isStatic: boolean,
130
- isSupportColor: boolean,
131
- ): SceneUIState {
132
- const node = {
133
- brightness: 100,
134
- colorTemp: 100,
135
- h: 0,
136
- s: 100,
137
- v: isSupportColor ? 100 : 1,
138
- isColorNode: isColorMode,
139
- switchingInterval: 13,
140
- transitionMode: isStatic ? SceneNodeTransitionMode.Static : SceneNodeTransitionMode.Jump,
141
- transitionTime: 13,
142
- }
143
- return {
144
- name: '',
145
- image: '',
146
- id: id,
147
- fanEnable: false,
148
- fanSpeed: 2,
149
- nodes: isStatic ? [node] : [node, {...node, brightness: 100}],
150
- }
151
- }
152
-
153
- type RecommendMood = {
154
- name: string
155
- fanEnable: boolean
156
- fanSpeed: number
157
- moodColorsLineProps?: ColorsLineProps
158
- }
159
-
160
- function getRecommendMoods(
161
- isStatic: boolean,
162
- isSupportColor: boolean,
163
- isSupportTemperature: boolean,
164
- ): RecommendMood[] {
165
- if (isStatic) {
166
- if (isSupportColor) {
167
- return [
168
- {
169
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
170
- fanEnable: true,
171
- fanSpeed: 1,
172
- },
173
- {
174
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
175
- fanEnable: true,
176
- fanSpeed: 1,
177
- moodColorsLineProps: {
178
- type: 'gradient',
179
- nodes: [
180
- {
181
- h: 125,
182
- s: 46,
183
- v: 100,
184
- brightness: 0,
185
- colorTemp: 0,
186
- isColorNode: true,
187
- switchingInterval: 0,
188
- transitionTime: 14,
189
- transitionMode: SceneNodeTransitionMode.Static,
190
- },
191
- ],
192
- },
193
- },
194
- {
195
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
196
- fanEnable: true,
197
- fanSpeed: 1,
198
- moodColorsLineProps: {
199
- type: 'gradient',
200
- nodes: [
201
- {
202
- h: 0,
203
- s: 46,
204
- v: 100,
205
- brightness: 0,
206
- colorTemp: 0,
207
- isColorNode: true,
208
- switchingInterval: 0,
209
- transitionTime: 14,
210
- transitionMode: SceneNodeTransitionMode.Static,
211
- },
212
- ],
213
- },
214
- },
215
- {
216
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
217
- fanEnable: true,
218
- fanSpeed: 1,
219
- moodColorsLineProps: {
220
- type: 'gradient',
221
- nodes: [
222
- {
223
- h: 34,
224
- s: 67,
225
- v: 100,
226
- brightness: 0,
227
- colorTemp: 0,
228
- isColorNode: true,
229
- switchingInterval: 0,
230
- transitionTime: 14,
231
- transitionMode: SceneNodeTransitionMode.Static,
232
- },
233
- ],
234
- },
235
- },
236
- ]
237
- } else if (isSupportTemperature) {
238
- return [
239
- {
240
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
241
- fanEnable: true,
242
- fanSpeed: 1,
243
- },
244
- {
245
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
246
- fanEnable: true,
247
- fanSpeed: 1,
248
- moodColorsLineProps: {
249
- type: 'gradient',
250
- nodes: [
251
- {
252
- h: 0,
253
- s: 0,
254
- v: 0,
255
- brightness: 60,
256
- colorTemp: 20,
257
- isColorNode: false,
258
- switchingInterval: 0,
259
- transitionTime: 14,
260
- transitionMode: SceneNodeTransitionMode.Static,
261
- },
262
- ],
263
- },
264
- },
265
- {
266
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
267
- fanEnable: true,
268
- fanSpeed: 1,
269
- moodColorsLineProps: {
270
- type: 'gradient',
271
- nodes: [
272
- {
273
- h: 0,
274
- s: 0,
275
- v: 0,
276
- brightness: 80,
277
- colorTemp: 40,
278
- isColorNode: false,
279
- switchingInterval: 0,
280
- transitionTime: 14,
281
- transitionMode: SceneNodeTransitionMode.Static,
282
- },
283
- ],
284
- },
285
- },
286
- {
287
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
288
- fanEnable: true,
289
- fanSpeed: 1,
290
- moodColorsLineProps: {
291
- type: 'gradient',
292
- nodes: [
293
- {
294
- h: 0,
295
- s: 0,
296
- v: 0,
297
- brightness: 100,
298
- colorTemp: 100,
299
- isColorNode: false,
300
- switchingInterval: 0,
301
- transitionTime: 14,
302
- transitionMode: SceneNodeTransitionMode.Static,
303
- },
304
- ],
305
- },
306
- },
307
- ]
308
- } else {
309
- return [
310
- {
311
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
312
- fanEnable: true,
313
- fanSpeed: 1,
314
- },
315
- {
316
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
317
- fanEnable: true,
318
- fanSpeed: 1,
319
- moodColorsLineProps: {
320
- type: 'gradient',
321
- nodes: [
322
- {
323
- h: 0,
324
- s: 0,
325
- v: 0,
326
- brightness: 60,
327
- colorTemp: 100,
328
- isColorNode: false,
329
- switchingInterval: 0,
330
- transitionTime: 14,
331
- transitionMode: SceneNodeTransitionMode.Static,
332
- },
333
- ],
334
- },
335
- },
336
- {
337
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
338
- fanEnable: true,
339
- fanSpeed: 1,
340
- moodColorsLineProps: {
341
- type: 'gradient',
342
- nodes: [
343
- {
344
- h: 0,
345
- s: 0,
346
- v: 0,
347
- brightness: 80,
348
- colorTemp: 100,
349
- isColorNode: false,
350
- switchingInterval: 0,
351
- transitionTime: 14,
352
- transitionMode: SceneNodeTransitionMode.Static,
353
- },
354
- ],
355
- },
356
- },
357
- {
358
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
359
- fanEnable: true,
360
- fanSpeed: 1,
361
- moodColorsLineProps: {
362
- type: 'gradient',
363
- nodes: [
364
- {
365
- h: 0,
366
- s: 0,
367
- v: 0,
368
- brightness: 100,
369
- colorTemp: 100,
370
- isColorNode: false,
371
- switchingInterval: 0,
372
- transitionTime: 14,
373
- transitionMode: SceneNodeTransitionMode.Static,
374
- },
375
- ],
376
- },
377
- },
378
- ]
379
- }
380
- }
381
- if (isSupportColor) {
382
- return [
383
- {
384
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
385
- fanEnable: true,
386
- fanSpeed: 1,
387
- },
388
- {
389
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
390
- fanEnable: true,
391
- fanSpeed: 1,
392
- moodColorsLineProps: {
393
- type: 'separate',
394
- nodes: [
395
- {
396
- h: 75,
397
- s: 90,
398
- v: 48,
399
- brightness: 0,
400
- colorTemp: 0,
401
- isColorNode: true,
402
- switchingInterval: 0,
403
- transitionTime: 14,
404
- transitionMode: SceneNodeTransitionMode.Jump,
405
- },
406
- {
407
- h: 200,
408
- s: 26,
409
- v: 86,
410
- brightness: 0,
411
- colorTemp: 0,
412
- isColorNode: true,
413
- switchingInterval: 0,
414
- transitionTime: 14,
415
- transitionMode: SceneNodeTransitionMode.Jump,
416
- },
417
- {
418
- h: 75,
419
- s: 90,
420
- v: 80,
421
- brightness: 0,
422
- colorTemp: 0,
423
- isColorNode: true,
424
- switchingInterval: 0,
425
- transitionTime: 14,
426
- transitionMode: SceneNodeTransitionMode.Jump,
427
- },
428
- ],
429
- },
430
- },
431
- {
432
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
433
- fanEnable: true,
434
- fanSpeed: 1,
435
- moodColorsLineProps: {
436
- type: 'gradient',
437
- nodes: [
438
- {
439
- h: 40,
440
- s: 100,
441
- v: 100,
442
- brightness: 0,
443
- colorTemp: 0,
444
- isColorNode: true,
445
- switchingInterval: 0,
446
- transitionTime: 14,
447
- transitionMode: SceneNodeTransitionMode.Gradient,
448
- },
449
- {
450
- h: 24,
451
- s: 100,
452
- v: 100,
453
- brightness: 0,
454
- colorTemp: 0,
455
- isColorNode: true,
456
- switchingInterval: 0,
457
- transitionTime: 14,
458
- transitionMode: SceneNodeTransitionMode.Gradient,
459
- },
460
- {
461
- h: 0,
462
- s: 100,
463
- v: 100,
464
- brightness: 0,
465
- colorTemp: 0,
466
- isColorNode: true,
467
- switchingInterval: 0,
468
- transitionTime: 14,
469
- transitionMode: SceneNodeTransitionMode.Gradient,
470
- },
471
- ],
472
- },
473
- },
474
- {
475
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
476
- fanEnable: true,
477
- fanSpeed: 1,
478
- moodColorsLineProps: {
479
- type: 'separate',
480
- nodes: [
481
- {
482
- h: 300,
483
- s: 17,
484
- v: 59,
485
- brightness: 0,
486
- colorTemp: 0,
487
- isColorNode: true,
488
- switchingInterval: 0,
489
- transitionTime: 14,
490
- transitionMode: SceneNodeTransitionMode.Jump,
491
- },
492
- {
493
- h: 183,
494
- s: 51,
495
- v: 82,
496
- brightness: 0,
497
- colorTemp: 0,
498
- isColorNode: true,
499
- switchingInterval: 0,
500
- transitionTime: 14,
501
- transitionMode: SceneNodeTransitionMode.Jump,
502
- },
503
- {
504
- h: 40,
505
- s: 100,
506
- v: 100,
507
- brightness: 0,
508
- colorTemp: 0,
509
- isColorNode: true,
510
- switchingInterval: 0,
511
- transitionTime: 14,
512
- transitionMode: SceneNodeTransitionMode.Jump,
513
- },
514
- ],
515
- },
516
- },
517
- ]
518
- } else if (isSupportTemperature) {
519
- return [
520
- {
521
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
522
- fanEnable: true,
523
- fanSpeed: 1,
524
- },
525
- {
526
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
527
- fanEnable: true,
528
- fanSpeed: 1,
529
- moodColorsLineProps: {
530
- type: 'separate',
531
- nodes: [
532
- {
533
- h: 0,
534
- s: 0,
535
- v: 0,
536
- brightness: 20,
537
- colorTemp: 20,
538
- isColorNode: false,
539
- switchingInterval: 0,
540
- transitionTime: 14,
541
- transitionMode: SceneNodeTransitionMode.Jump,
542
- },
543
- {
544
- h: 0,
545
- s: 0,
546
- v: 0,
547
- brightness: 40,
548
- colorTemp: 40,
549
- isColorNode: false,
550
- switchingInterval: 0,
551
- transitionTime: 14,
552
- transitionMode: SceneNodeTransitionMode.Jump,
553
- },
554
- {
555
- h: 0,
556
- s: 0,
557
- v: 0,
558
- brightness: 60,
559
- colorTemp: 60,
560
- isColorNode: false,
561
- switchingInterval: 0,
562
- transitionTime: 14,
563
- transitionMode: SceneNodeTransitionMode.Jump,
564
- },
565
- ],
566
- },
567
- },
568
- {
569
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
570
- fanEnable: true,
571
- fanSpeed: 1,
572
- moodColorsLineProps: {
573
- type: 'gradient',
574
- nodes: [
575
- {
576
- h: 0,
577
- s: 0,
578
- v: 0,
579
- brightness: 40,
580
- colorTemp: 40,
581
- isColorNode: false,
582
- switchingInterval: 0,
583
- transitionTime: 14,
584
- transitionMode: SceneNodeTransitionMode.Gradient,
585
- },
586
- {
587
- h: 0,
588
- s: 0,
589
- v: 0,
590
- brightness: 60,
591
- colorTemp: 60,
592
- isColorNode: false,
593
- switchingInterval: 0,
594
- transitionTime: 14,
595
- transitionMode: SceneNodeTransitionMode.Gradient,
596
- },
597
- {
598
- h: 0,
599
- s: 0,
600
- v: 0,
601
- brightness: 80,
602
- colorTemp: 80,
603
- isColorNode: false,
604
- switchingInterval: 0,
605
- transitionTime: 14,
606
- transitionMode: SceneNodeTransitionMode.Gradient,
607
- },
608
- ],
609
- },
610
- },
611
- {
612
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
613
- fanEnable: true,
614
- fanSpeed: 1,
615
- moodColorsLineProps: {
616
- type: 'separate',
617
- nodes: [
618
- {
619
- h: 0,
620
- s: 0,
621
- v: 0,
622
- brightness: 50,
623
- colorTemp: 50,
624
- isColorNode: false,
625
- switchingInterval: 0,
626
- transitionTime: 14,
627
- transitionMode: SceneNodeTransitionMode.Jump,
628
- },
629
- {
630
- h: 0,
631
- s: 0,
632
- v: 0,
633
- brightness: 70,
634
- colorTemp: 70,
635
- isColorNode: false,
636
- switchingInterval: 0,
637
- transitionTime: 14,
638
- transitionMode: SceneNodeTransitionMode.Jump,
639
- },
640
- {
641
- h: 0,
642
- s: 0,
643
- v: 0,
644
- brightness: 100,
645
- colorTemp: 100,
646
- isColorNode: false,
647
- switchingInterval: 0,
648
- transitionTime: 14,
649
- transitionMode: SceneNodeTransitionMode.Jump,
650
- },
651
- ],
652
- },
653
- },
654
- ]
655
- } else {
656
- return [
657
- {
658
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
659
- fanEnable: true,
660
- fanSpeed: 1,
661
- },
662
- {
663
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
664
- fanEnable: true,
665
- fanSpeed: 1,
666
- moodColorsLineProps: {
667
- type: 'separate',
668
- nodes: [
669
- {
670
- h: 0,
671
- s: 0,
672
- v: 0,
673
- brightness: 20,
674
- colorTemp: 100,
675
- isColorNode: false,
676
- switchingInterval: 0,
677
- transitionTime: 14,
678
- transitionMode: SceneNodeTransitionMode.Jump,
679
- },
680
- {
681
- h: 0,
682
- s: 0,
683
- v: 0,
684
- brightness: 40,
685
- colorTemp: 100,
686
- isColorNode: false,
687
- switchingInterval: 0,
688
- transitionTime: 14,
689
- transitionMode: SceneNodeTransitionMode.Jump,
690
- },
691
- {
692
- h: 0,
693
- s: 0,
694
- v: 0,
695
- brightness: 60,
696
- colorTemp: 100,
697
- isColorNode: false,
698
- switchingInterval: 0,
699
- transitionTime: 14,
700
- transitionMode: SceneNodeTransitionMode.Jump,
701
- },
702
- ],
703
- },
704
- },
705
- {
706
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
707
- fanEnable: true,
708
- fanSpeed: 1,
709
- moodColorsLineProps: {
710
- type: 'gradient',
711
- nodes: [
712
- {
713
- h: 0,
714
- s: 0,
715
- v: 0,
716
- brightness: 40,
717
- colorTemp: 100,
718
- isColorNode: false,
719
- switchingInterval: 0,
720
- transitionTime: 14,
721
- transitionMode: SceneNodeTransitionMode.Gradient,
722
- },
723
- {
724
- h: 0,
725
- s: 0,
726
- v: 0,
727
- brightness: 60,
728
- colorTemp: 100,
729
- isColorNode: false,
730
- switchingInterval: 0,
731
- transitionTime: 14,
732
- transitionMode: SceneNodeTransitionMode.Gradient,
733
- },
734
- {
735
- h: 0,
736
- s: 0,
737
- v: 0,
738
- brightness: 80,
739
- colorTemp: 100,
740
- isColorNode: false,
741
- switchingInterval: 0,
742
- transitionTime: 14,
743
- transitionMode: SceneNodeTransitionMode.Gradient,
744
- },
745
- ],
746
- },
747
- },
748
- {
749
- name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
750
- fanEnable: true,
751
- fanSpeed: 1,
752
- moodColorsLineProps: {
753
- type: 'separate',
754
- nodes: [
755
- {
756
- h: 0,
757
- s: 0,
758
- v: 0,
759
- brightness: 50,
760
- colorTemp: 100,
761
- isColorNode: false,
762
- switchingInterval: 0,
763
- transitionTime: 14,
764
- transitionMode: SceneNodeTransitionMode.Jump,
765
- },
766
- {
767
- h: 0,
768
- s: 0,
769
- v: 0,
770
- brightness: 70,
771
- colorTemp: 100,
772
- isColorNode: false,
773
- switchingInterval: 0,
774
- transitionTime: 14,
775
- transitionMode: SceneNodeTransitionMode.Jump,
776
- },
777
- {
778
- h: 0,
779
- s: 0,
780
- v: 0,
781
- brightness: 100,
782
- colorTemp: 100,
783
- isColorNode: false,
784
- switchingInterval: 0,
785
- transitionTime: 14,
786
- transitionMode: SceneNodeTransitionMode.Jump,
787
- },
788
- ],
789
- },
790
- },
791
- ]
792
- }
1
+ import Strings from '@ledvance/base/src/i18n'
2
+ import Page from '@ledvance/base/src/components/Page'
3
+ import React, {useCallback} from 'react'
4
+ import {FlatList, StyleSheet, Text, View} from 'react-native'
5
+ import {Utils} from 'tuya-panel-kit'
6
+ import RecommendMoodItem, {ColorsLineProps} from './RecommendMoodItem'
7
+ import Spacer from '@ledvance/base/src/components/Spacer'
8
+ import {useReactive, useCreation} from 'ahooks'
9
+ import {useNavigation, useRoute} from '@react-navigation/native'
10
+ import {SceneNodeTransitionMode, SceneUIState} from '../scene/SceneInfo'
11
+ import {toDynamicMoodEditorPage, toStaticMoodEditorPage} from '../../navigation/tools'
12
+ import {MoodPageProps} from './MoodPage'
13
+ import { difference, head, map, range } from 'lodash'
14
+
15
+ const cx = Utils.RatioUtils.convertX
16
+
17
+ export interface AddMoodPageParams {
18
+ isStatic: boolean,
19
+ moods: SceneUIState[],
20
+ onSave: () => void,
21
+ moduleParams: MoodPageProps
22
+ }
23
+
24
+ interface AddMoodPageState {
25
+ data: RecommendMood[]
26
+ }
27
+
28
+ const AddMoodPage = () => {
29
+ const navigation = useNavigation()
30
+ const routeParams = useRoute().params as AddMoodPageParams
31
+ const moduleParams = routeParams.moduleParams
32
+ const moodId = useCreation(() => {
33
+ const useIds = map(routeParams.moods, 'id')
34
+ const idRange = range(0, 256)
35
+ return Math.max(head(difference(idRange, useIds)) || 0, 0)
36
+ }, [routeParams.moods])
37
+ const state = useReactive<AddMoodPageState>({
38
+ data: getRecommendMoods(
39
+ routeParams.isStatic,
40
+ moduleParams.isSupportColor,
41
+ moduleParams.isSupportTemperature,
42
+ ),
43
+ })
44
+ const recommendMood2SceneUIState = useCallback((recommendMood: RecommendMood) => {
45
+ return {
46
+ id: moodId,
47
+ image: '',
48
+ fanEnable: recommendMood.fanEnable,
49
+ fanSpeed: recommendMood.fanSpeed,
50
+ name: recommendMood.name,
51
+ nodes: recommendMood.moodColorsLineProps?.nodes || [],
52
+ }
53
+ }, [routeParams, routeParams.moods, moodId])
54
+
55
+ return (
56
+ <Page
57
+ backText={Strings.getLang('add_new_static_mood_system_back')}
58
+ headlineText={Strings.getLang(routeParams.isStatic ? 'add_new_static_mood_headline_text' : 'add_new_dynamic_mood_headline_text')}>
59
+ <View style={styles.root}>
60
+ <Text style={styles.desc}>
61
+ {Strings.getLang(routeParams.isStatic ? 'add_new_static_mood_description_text' : 'add_new_dynamic_mood_description_text')}
62
+ </Text>
63
+ <FlatList
64
+ style={{flex: 1}}
65
+ data={state.data}
66
+ renderItem={({item, index}) => {
67
+ return <RecommendMoodItem
68
+ title={item.name}
69
+ moodColorsLineProps={item.moodColorsLineProps}
70
+ onPress={() => {
71
+ if (routeParams.isStatic) {
72
+ toStaticMoodEditorPage(navigation,
73
+ {
74
+ mode: 'add',
75
+ currentMood: index === 0 ? newMood(
76
+ moodId,
77
+ moduleParams.isSupportColor && moduleParams.isSupportTemperature,
78
+ routeParams.isStatic,
79
+ moduleParams.isSupportColor,
80
+ ) : recommendMood2SceneUIState(item),
81
+ moods: routeParams.moods,
82
+ moduleParams: moduleParams,
83
+ onSave: routeParams.onSave,
84
+ })
85
+ } else {
86
+ toDynamicMoodEditorPage(navigation,
87
+ {
88
+ mode: 'add',
89
+ currentMood: index === 0 ? newMood(
90
+ moodId,
91
+ moduleParams.isSupportColor && moduleParams.isSupportTemperature,
92
+ routeParams.isStatic,
93
+ moduleParams.isSupportColor,
94
+ ) : recommendMood2SceneUIState(item),
95
+ moods: routeParams.moods,
96
+ moduleParams: moduleParams,
97
+ onSave: routeParams.onSave,
98
+ })
99
+ }
100
+ }}/>
101
+ }}
102
+ ItemSeparatorComponent={() => <Spacer/>}
103
+ ListHeaderComponent={() => <Spacer/>}
104
+ ListFooterComponent={() => <Spacer/>}
105
+ keyExtractor={item => item.name}/>
106
+ </View>
107
+ </Page>
108
+ )
109
+ }
110
+
111
+ const styles = StyleSheet.create({
112
+ root: {
113
+ flex: 1,
114
+ flexDirection: 'column',
115
+ },
116
+ desc: {
117
+ color: '#000',
118
+ fontSize: cx(16),
119
+ marginHorizontal: cx(24),
120
+ marginTop: cx(12),
121
+ },
122
+ })
123
+
124
+ export default AddMoodPage
125
+
126
+ function newMood(
127
+ id: number,
128
+ isColorMode: boolean,
129
+ isStatic: boolean,
130
+ isSupportColor: boolean,
131
+ ): SceneUIState {
132
+ const node = {
133
+ brightness: 100,
134
+ colorTemp: 100,
135
+ h: 0,
136
+ s: 100,
137
+ v: isSupportColor ? 100 : 1,
138
+ isColorNode: isColorMode,
139
+ switchingInterval: 13,
140
+ transitionMode: isStatic ? SceneNodeTransitionMode.Static : SceneNodeTransitionMode.Jump,
141
+ transitionTime: 13,
142
+ }
143
+ return {
144
+ name: '',
145
+ image: '',
146
+ id: id,
147
+ fanEnable: false,
148
+ fanSpeed: 2,
149
+ nodes: isStatic ? [node] : [node, {...node, brightness: 100}],
150
+ }
151
+ }
152
+
153
+ type RecommendMood = {
154
+ name: string
155
+ fanEnable: boolean
156
+ fanSpeed: number
157
+ moodColorsLineProps?: ColorsLineProps
158
+ }
159
+
160
+ function getRecommendMoods(
161
+ isStatic: boolean,
162
+ isSupportColor: boolean,
163
+ isSupportTemperature: boolean,
164
+ ): RecommendMood[] {
165
+ if (isStatic) {
166
+ if (isSupportColor) {
167
+ return [
168
+ {
169
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
170
+ fanEnable: true,
171
+ fanSpeed: 1,
172
+ },
173
+ {
174
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
175
+ fanEnable: true,
176
+ fanSpeed: 1,
177
+ moodColorsLineProps: {
178
+ type: 'gradient',
179
+ nodes: [
180
+ {
181
+ h: 125,
182
+ s: 46,
183
+ v: 100,
184
+ brightness: 0,
185
+ colorTemp: 0,
186
+ isColorNode: true,
187
+ switchingInterval: 0,
188
+ transitionTime: 14,
189
+ transitionMode: SceneNodeTransitionMode.Static,
190
+ },
191
+ ],
192
+ },
193
+ },
194
+ {
195
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
196
+ fanEnable: true,
197
+ fanSpeed: 1,
198
+ moodColorsLineProps: {
199
+ type: 'gradient',
200
+ nodes: [
201
+ {
202
+ h: 0,
203
+ s: 46,
204
+ v: 100,
205
+ brightness: 0,
206
+ colorTemp: 0,
207
+ isColorNode: true,
208
+ switchingInterval: 0,
209
+ transitionTime: 14,
210
+ transitionMode: SceneNodeTransitionMode.Static,
211
+ },
212
+ ],
213
+ },
214
+ },
215
+ {
216
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
217
+ fanEnable: true,
218
+ fanSpeed: 1,
219
+ moodColorsLineProps: {
220
+ type: 'gradient',
221
+ nodes: [
222
+ {
223
+ h: 34,
224
+ s: 67,
225
+ v: 100,
226
+ brightness: 0,
227
+ colorTemp: 0,
228
+ isColorNode: true,
229
+ switchingInterval: 0,
230
+ transitionTime: 14,
231
+ transitionMode: SceneNodeTransitionMode.Static,
232
+ },
233
+ ],
234
+ },
235
+ },
236
+ ]
237
+ } else if (isSupportTemperature) {
238
+ return [
239
+ {
240
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
241
+ fanEnable: true,
242
+ fanSpeed: 1,
243
+ },
244
+ {
245
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
246
+ fanEnable: true,
247
+ fanSpeed: 1,
248
+ moodColorsLineProps: {
249
+ type: 'gradient',
250
+ nodes: [
251
+ {
252
+ h: 0,
253
+ s: 0,
254
+ v: 0,
255
+ brightness: 60,
256
+ colorTemp: 20,
257
+ isColorNode: false,
258
+ switchingInterval: 0,
259
+ transitionTime: 14,
260
+ transitionMode: SceneNodeTransitionMode.Static,
261
+ },
262
+ ],
263
+ },
264
+ },
265
+ {
266
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
267
+ fanEnable: true,
268
+ fanSpeed: 1,
269
+ moodColorsLineProps: {
270
+ type: 'gradient',
271
+ nodes: [
272
+ {
273
+ h: 0,
274
+ s: 0,
275
+ v: 0,
276
+ brightness: 80,
277
+ colorTemp: 40,
278
+ isColorNode: false,
279
+ switchingInterval: 0,
280
+ transitionTime: 14,
281
+ transitionMode: SceneNodeTransitionMode.Static,
282
+ },
283
+ ],
284
+ },
285
+ },
286
+ {
287
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
288
+ fanEnable: true,
289
+ fanSpeed: 1,
290
+ moodColorsLineProps: {
291
+ type: 'gradient',
292
+ nodes: [
293
+ {
294
+ h: 0,
295
+ s: 0,
296
+ v: 0,
297
+ brightness: 100,
298
+ colorTemp: 100,
299
+ isColorNode: false,
300
+ switchingInterval: 0,
301
+ transitionTime: 14,
302
+ transitionMode: SceneNodeTransitionMode.Static,
303
+ },
304
+ ],
305
+ },
306
+ },
307
+ ]
308
+ } else {
309
+ return [
310
+ {
311
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
312
+ fanEnable: true,
313
+ fanSpeed: 1,
314
+ },
315
+ {
316
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
317
+ fanEnable: true,
318
+ fanSpeed: 1,
319
+ moodColorsLineProps: {
320
+ type: 'gradient',
321
+ nodes: [
322
+ {
323
+ h: 0,
324
+ s: 0,
325
+ v: 0,
326
+ brightness: 60,
327
+ colorTemp: 100,
328
+ isColorNode: false,
329
+ switchingInterval: 0,
330
+ transitionTime: 14,
331
+ transitionMode: SceneNodeTransitionMode.Static,
332
+ },
333
+ ],
334
+ },
335
+ },
336
+ {
337
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
338
+ fanEnable: true,
339
+ fanSpeed: 1,
340
+ moodColorsLineProps: {
341
+ type: 'gradient',
342
+ nodes: [
343
+ {
344
+ h: 0,
345
+ s: 0,
346
+ v: 0,
347
+ brightness: 80,
348
+ colorTemp: 100,
349
+ isColorNode: false,
350
+ switchingInterval: 0,
351
+ transitionTime: 14,
352
+ transitionMode: SceneNodeTransitionMode.Static,
353
+ },
354
+ ],
355
+ },
356
+ },
357
+ {
358
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
359
+ fanEnable: true,
360
+ fanSpeed: 1,
361
+ moodColorsLineProps: {
362
+ type: 'gradient',
363
+ nodes: [
364
+ {
365
+ h: 0,
366
+ s: 0,
367
+ v: 0,
368
+ brightness: 100,
369
+ colorTemp: 100,
370
+ isColorNode: false,
371
+ switchingInterval: 0,
372
+ transitionTime: 14,
373
+ transitionMode: SceneNodeTransitionMode.Static,
374
+ },
375
+ ],
376
+ },
377
+ },
378
+ ]
379
+ }
380
+ }
381
+ if (isSupportColor) {
382
+ return [
383
+ {
384
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
385
+ fanEnable: true,
386
+ fanSpeed: 1,
387
+ },
388
+ {
389
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
390
+ fanEnable: true,
391
+ fanSpeed: 1,
392
+ moodColorsLineProps: {
393
+ type: 'separate',
394
+ nodes: [
395
+ {
396
+ h: 75,
397
+ s: 90,
398
+ v: 48,
399
+ brightness: 0,
400
+ colorTemp: 0,
401
+ isColorNode: true,
402
+ switchingInterval: 0,
403
+ transitionTime: 14,
404
+ transitionMode: SceneNodeTransitionMode.Jump,
405
+ },
406
+ {
407
+ h: 200,
408
+ s: 26,
409
+ v: 86,
410
+ brightness: 0,
411
+ colorTemp: 0,
412
+ isColorNode: true,
413
+ switchingInterval: 0,
414
+ transitionTime: 14,
415
+ transitionMode: SceneNodeTransitionMode.Jump,
416
+ },
417
+ {
418
+ h: 75,
419
+ s: 90,
420
+ v: 80,
421
+ brightness: 0,
422
+ colorTemp: 0,
423
+ isColorNode: true,
424
+ switchingInterval: 0,
425
+ transitionTime: 14,
426
+ transitionMode: SceneNodeTransitionMode.Jump,
427
+ },
428
+ ],
429
+ },
430
+ },
431
+ {
432
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
433
+ fanEnable: true,
434
+ fanSpeed: 1,
435
+ moodColorsLineProps: {
436
+ type: 'gradient',
437
+ nodes: [
438
+ {
439
+ h: 40,
440
+ s: 100,
441
+ v: 100,
442
+ brightness: 0,
443
+ colorTemp: 0,
444
+ isColorNode: true,
445
+ switchingInterval: 0,
446
+ transitionTime: 14,
447
+ transitionMode: SceneNodeTransitionMode.Gradient,
448
+ },
449
+ {
450
+ h: 24,
451
+ s: 100,
452
+ v: 100,
453
+ brightness: 0,
454
+ colorTemp: 0,
455
+ isColorNode: true,
456
+ switchingInterval: 0,
457
+ transitionTime: 14,
458
+ transitionMode: SceneNodeTransitionMode.Gradient,
459
+ },
460
+ {
461
+ h: 0,
462
+ s: 100,
463
+ v: 100,
464
+ brightness: 0,
465
+ colorTemp: 0,
466
+ isColorNode: true,
467
+ switchingInterval: 0,
468
+ transitionTime: 14,
469
+ transitionMode: SceneNodeTransitionMode.Gradient,
470
+ },
471
+ ],
472
+ },
473
+ },
474
+ {
475
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
476
+ fanEnable: true,
477
+ fanSpeed: 1,
478
+ moodColorsLineProps: {
479
+ type: 'separate',
480
+ nodes: [
481
+ {
482
+ h: 300,
483
+ s: 17,
484
+ v: 59,
485
+ brightness: 0,
486
+ colorTemp: 0,
487
+ isColorNode: true,
488
+ switchingInterval: 0,
489
+ transitionTime: 14,
490
+ transitionMode: SceneNodeTransitionMode.Jump,
491
+ },
492
+ {
493
+ h: 183,
494
+ s: 51,
495
+ v: 82,
496
+ brightness: 0,
497
+ colorTemp: 0,
498
+ isColorNode: true,
499
+ switchingInterval: 0,
500
+ transitionTime: 14,
501
+ transitionMode: SceneNodeTransitionMode.Jump,
502
+ },
503
+ {
504
+ h: 40,
505
+ s: 100,
506
+ v: 100,
507
+ brightness: 0,
508
+ colorTemp: 0,
509
+ isColorNode: true,
510
+ switchingInterval: 0,
511
+ transitionTime: 14,
512
+ transitionMode: SceneNodeTransitionMode.Jump,
513
+ },
514
+ ],
515
+ },
516
+ },
517
+ ]
518
+ } else if (isSupportTemperature) {
519
+ return [
520
+ {
521
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
522
+ fanEnable: true,
523
+ fanSpeed: 1,
524
+ },
525
+ {
526
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
527
+ fanEnable: true,
528
+ fanSpeed: 1,
529
+ moodColorsLineProps: {
530
+ type: 'separate',
531
+ nodes: [
532
+ {
533
+ h: 0,
534
+ s: 0,
535
+ v: 0,
536
+ brightness: 20,
537
+ colorTemp: 20,
538
+ isColorNode: false,
539
+ switchingInterval: 0,
540
+ transitionTime: 14,
541
+ transitionMode: SceneNodeTransitionMode.Jump,
542
+ },
543
+ {
544
+ h: 0,
545
+ s: 0,
546
+ v: 0,
547
+ brightness: 40,
548
+ colorTemp: 40,
549
+ isColorNode: false,
550
+ switchingInterval: 0,
551
+ transitionTime: 14,
552
+ transitionMode: SceneNodeTransitionMode.Jump,
553
+ },
554
+ {
555
+ h: 0,
556
+ s: 0,
557
+ v: 0,
558
+ brightness: 60,
559
+ colorTemp: 60,
560
+ isColorNode: false,
561
+ switchingInterval: 0,
562
+ transitionTime: 14,
563
+ transitionMode: SceneNodeTransitionMode.Jump,
564
+ },
565
+ ],
566
+ },
567
+ },
568
+ {
569
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
570
+ fanEnable: true,
571
+ fanSpeed: 1,
572
+ moodColorsLineProps: {
573
+ type: 'gradient',
574
+ nodes: [
575
+ {
576
+ h: 0,
577
+ s: 0,
578
+ v: 0,
579
+ brightness: 40,
580
+ colorTemp: 40,
581
+ isColorNode: false,
582
+ switchingInterval: 0,
583
+ transitionTime: 14,
584
+ transitionMode: SceneNodeTransitionMode.Gradient,
585
+ },
586
+ {
587
+ h: 0,
588
+ s: 0,
589
+ v: 0,
590
+ brightness: 60,
591
+ colorTemp: 60,
592
+ isColorNode: false,
593
+ switchingInterval: 0,
594
+ transitionTime: 14,
595
+ transitionMode: SceneNodeTransitionMode.Gradient,
596
+ },
597
+ {
598
+ h: 0,
599
+ s: 0,
600
+ v: 0,
601
+ brightness: 80,
602
+ colorTemp: 80,
603
+ isColorNode: false,
604
+ switchingInterval: 0,
605
+ transitionTime: 14,
606
+ transitionMode: SceneNodeTransitionMode.Gradient,
607
+ },
608
+ ],
609
+ },
610
+ },
611
+ {
612
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
613
+ fanEnable: true,
614
+ fanSpeed: 1,
615
+ moodColorsLineProps: {
616
+ type: 'separate',
617
+ nodes: [
618
+ {
619
+ h: 0,
620
+ s: 0,
621
+ v: 0,
622
+ brightness: 50,
623
+ colorTemp: 50,
624
+ isColorNode: false,
625
+ switchingInterval: 0,
626
+ transitionTime: 14,
627
+ transitionMode: SceneNodeTransitionMode.Jump,
628
+ },
629
+ {
630
+ h: 0,
631
+ s: 0,
632
+ v: 0,
633
+ brightness: 70,
634
+ colorTemp: 70,
635
+ isColorNode: false,
636
+ switchingInterval: 0,
637
+ transitionTime: 14,
638
+ transitionMode: SceneNodeTransitionMode.Jump,
639
+ },
640
+ {
641
+ h: 0,
642
+ s: 0,
643
+ v: 0,
644
+ brightness: 100,
645
+ colorTemp: 100,
646
+ isColorNode: false,
647
+ switchingInterval: 0,
648
+ transitionTime: 14,
649
+ transitionMode: SceneNodeTransitionMode.Jump,
650
+ },
651
+ ],
652
+ },
653
+ },
654
+ ]
655
+ } else {
656
+ return [
657
+ {
658
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text1'),
659
+ fanEnable: true,
660
+ fanSpeed: 1,
661
+ },
662
+ {
663
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text2'),
664
+ fanEnable: true,
665
+ fanSpeed: 1,
666
+ moodColorsLineProps: {
667
+ type: 'separate',
668
+ nodes: [
669
+ {
670
+ h: 0,
671
+ s: 0,
672
+ v: 0,
673
+ brightness: 20,
674
+ colorTemp: 100,
675
+ isColorNode: false,
676
+ switchingInterval: 0,
677
+ transitionTime: 14,
678
+ transitionMode: SceneNodeTransitionMode.Jump,
679
+ },
680
+ {
681
+ h: 0,
682
+ s: 0,
683
+ v: 0,
684
+ brightness: 40,
685
+ colorTemp: 100,
686
+ isColorNode: false,
687
+ switchingInterval: 0,
688
+ transitionTime: 14,
689
+ transitionMode: SceneNodeTransitionMode.Jump,
690
+ },
691
+ {
692
+ h: 0,
693
+ s: 0,
694
+ v: 0,
695
+ brightness: 60,
696
+ colorTemp: 100,
697
+ isColorNode: false,
698
+ switchingInterval: 0,
699
+ transitionTime: 14,
700
+ transitionMode: SceneNodeTransitionMode.Jump,
701
+ },
702
+ ],
703
+ },
704
+ },
705
+ {
706
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text4'),
707
+ fanEnable: true,
708
+ fanSpeed: 1,
709
+ moodColorsLineProps: {
710
+ type: 'gradient',
711
+ nodes: [
712
+ {
713
+ h: 0,
714
+ s: 0,
715
+ v: 0,
716
+ brightness: 40,
717
+ colorTemp: 100,
718
+ isColorNode: false,
719
+ switchingInterval: 0,
720
+ transitionTime: 14,
721
+ transitionMode: SceneNodeTransitionMode.Gradient,
722
+ },
723
+ {
724
+ h: 0,
725
+ s: 0,
726
+ v: 0,
727
+ brightness: 60,
728
+ colorTemp: 100,
729
+ isColorNode: false,
730
+ switchingInterval: 0,
731
+ transitionTime: 14,
732
+ transitionMode: SceneNodeTransitionMode.Gradient,
733
+ },
734
+ {
735
+ h: 0,
736
+ s: 0,
737
+ v: 0,
738
+ brightness: 80,
739
+ colorTemp: 100,
740
+ isColorNode: false,
741
+ switchingInterval: 0,
742
+ transitionTime: 14,
743
+ transitionMode: SceneNodeTransitionMode.Gradient,
744
+ },
745
+ ],
746
+ },
747
+ },
748
+ {
749
+ name: Strings.getLang('add_new_dynamic_mood_field_headline_text3'),
750
+ fanEnable: true,
751
+ fanSpeed: 1,
752
+ moodColorsLineProps: {
753
+ type: 'separate',
754
+ nodes: [
755
+ {
756
+ h: 0,
757
+ s: 0,
758
+ v: 0,
759
+ brightness: 50,
760
+ colorTemp: 100,
761
+ isColorNode: false,
762
+ switchingInterval: 0,
763
+ transitionTime: 14,
764
+ transitionMode: SceneNodeTransitionMode.Jump,
765
+ },
766
+ {
767
+ h: 0,
768
+ s: 0,
769
+ v: 0,
770
+ brightness: 70,
771
+ colorTemp: 100,
772
+ isColorNode: false,
773
+ switchingInterval: 0,
774
+ transitionTime: 14,
775
+ transitionMode: SceneNodeTransitionMode.Jump,
776
+ },
777
+ {
778
+ h: 0,
779
+ s: 0,
780
+ v: 0,
781
+ brightness: 100,
782
+ colorTemp: 100,
783
+ isColorNode: false,
784
+ switchingInterval: 0,
785
+ transitionTime: 14,
786
+ transitionMode: SceneNodeTransitionMode.Jump,
787
+ },
788
+ ],
789
+ },
790
+ },
791
+ ]
792
+ }
793
793
  }