@ledvance/ui-biz-bundle 1.1.86 → 1.1.89

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 (29) hide show
  1. package/package.json +1 -1
  2. package/src/modules/flags/FlagHash.ts +346 -0
  3. package/src/modules/flags/FlagPage.tsx +10 -2
  4. package/src/modules/history/HistoryPage.tsx +233 -223
  5. package/src/modules/history/SwitchHistoryPageActions.ts +5 -5
  6. package/src/modules/timer/TimerPage.tsx +2 -2
  7. package/src/modules/timer/TimerPageAction.ts +2 -2
  8. package/src/newModules/biorhythm/BiorhythmEditPage.tsx +1 -1
  9. package/src/newModules/biorhythm/BiorhythmPage.tsx +1 -1
  10. package/src/newModules/energyConsumption/EnergyConsumptionChart.tsx +22 -30
  11. package/src/newModules/energyConsumption/EnergyConsumptionDetail.tsx +5 -5
  12. package/src/newModules/energyConsumption/EnergyConsumptionPage.tsx +4 -4
  13. package/src/newModules/energyConsumption/component/EnergyModal.tsx +1 -1
  14. package/src/newModules/energyConsumption/component/Overview.tsx +1 -1
  15. package/src/newModules/fixedTime/FixedTimeDetailPage.tsx +9 -11
  16. package/src/newModules/mood/AddMoodPage.tsx +1 -1
  17. package/src/newModules/mood/MoodActions.ts +13 -6
  18. package/src/newModules/mood/MoodInfo.ts +170 -18
  19. package/src/newModules/mood/MoodPage.tsx +69 -53
  20. package/src/newModules/mood/StaticMoodEditorPage.tsx +8 -0
  21. package/src/newModules/randomTime/RandomTimeDetailPage.tsx +2 -1
  22. package/src/newModules/randomTime/RandomTimePage.tsx +1 -1
  23. package/src/newModules/sleepWakeUp/Interface.ts +2 -0
  24. package/src/newModules/sleepWakeUp/SleepWakeUpActions.ts +21 -6
  25. package/src/newModules/sleepWakeUp/SleepWakeUpDetailPage.tsx +10 -33
  26. package/src/newModules/sleepWakeUp/SleepWakeUpPage.tsx +4 -3
  27. package/src/newModules/swithInching/SwithInching.tsx +4 -4
  28. package/src/newModules/timeSchedule/TimeScheduleDetailPage.tsx +1 -1
  29. package/src/newModules/timeSchedule/TimeSchedulePage.tsx +1 -1
@@ -12,6 +12,7 @@ import Spacer from "@ledvance/base/src/components/Spacer";
12
12
  import InfoText from "@ledvance/base/src/components/InfoText";
13
13
 
14
14
  const { convertX: cx, height, width } = Utils.RatioUtils
15
+ const { withTheme } = Utils.ThemeUtils
15
16
 
16
17
  export interface EnergyConsumptionChartProps {
17
18
  addEleDpCode: string
@@ -21,37 +22,48 @@ export interface EnergyConsumptionChartProps {
21
22
  over7Days?: boolean
22
23
  }
23
24
 
24
- const EnergyConsumptionChart = () => {
25
- const props = useRoute().params as EnergyConsumptionChartProps
25
+ const EnergyConsumptionChart = (props: { theme?: any }) => {
26
+ const params = useRoute().params as EnergyConsumptionChartProps
26
27
  const computeNum = Platform.OS === 'ios' && 180 || 130
28
+
29
+ const styles = StyleSheet.create({
30
+ listEmptyView: {
31
+ alignItems: 'center',
32
+ },
33
+ listEmptyImage: {
34
+ width: cx(200),
35
+ height: cx(200),
36
+ },
37
+ })
38
+
27
39
  return (
28
40
  <Page
29
41
  backText={I18n.getLang('consumption_data_annual_bar_chart_system_back_text')}
30
- headlineText={props.headlineText}
31
- headlineIcon={props.chartData?.length ? res.download_icon : undefined}
42
+ headlineText={params.headlineText}
43
+ headlineIcon={params.chartData?.length ? res.download_icon : undefined}
32
44
  onHeadlineIconClick={() => {
33
- exportFile(props.chartData)
45
+ exportFile(params.chartData)
34
46
  }}
35
47
  showGreenery={false}
36
48
  greeneryIcon={res.energy_consumption_greenery}
37
49
  >
38
50
  <View style={{ marginHorizontal: cx(24) }}>
39
51
  {
40
- props.over7Days ? (
52
+ params.over7Days ? (
41
53
  <View style={styles.listEmptyView}>
42
54
  <Spacer height={cx(26)} />
43
55
  <Image
44
56
  style={styles.listEmptyImage}
45
57
  source={{ uri: res.ldv_timer_empty }} />
46
58
  <Spacer height={cx(14)} />
47
- <InfoText
59
+ <InfoText
48
60
  text={I18n.getLang('energyconsumption_hourlylimit')}
49
61
  icon={res.ic_info}
50
- contentColor='#000'
62
+ contentColor={props.theme.global.fontColor}
51
63
  />
52
64
  </View>
53
65
  ) : (
54
- <BarChart height={height - cx(computeNum)} data={props.chartData} width={width - cx(80)} />
66
+ <BarChart height={height - cx(computeNum)} data={params.chartData} width={width - cx(80)} />
55
67
  )
56
68
  }
57
69
  </View>
@@ -59,24 +71,4 @@ const EnergyConsumptionChart = () => {
59
71
  )
60
72
  }
61
73
 
62
- const styles = StyleSheet.create({
63
- listEmptyView: {
64
- alignItems: 'center',
65
- },
66
- listEmptyImage: {
67
- width: cx(200),
68
- height: cx(200),
69
- },
70
- listEmptyTextIcon: {
71
- width: cx(16),
72
- height: cx(16),
73
- tintColor: '#000',
74
- },
75
- listEmptyText: {
76
- color: '#000',
77
- fontSize: cx(12),
78
- fontFamily: 'helvetica_neue_lt_std_roman',
79
- },
80
- });
81
-
82
- export default EnergyConsumptionChart
74
+ export default withTheme(EnergyConsumptionChart)
@@ -90,7 +90,7 @@ const EnergyConsumptionDetail = (props: {theme?: any}) => {
90
90
  const key = `${dateStr} (${loopsText[dayOfWeek]})`
91
91
  return {
92
92
  key,
93
- value: dayList[time],
93
+ value: Number(dayList[time] || 0).toFixed(2),
94
94
  headlineText: formattedDate,
95
95
  chartTitle: `${Number(key?.split('/')[0])}\n${loopsText[dayOfWeek]}`
96
96
  }
@@ -178,7 +178,7 @@ const EnergyConsumptionDetail = (props: {theme?: any}) => {
178
178
  paddingHorizontal: cx(10),
179
179
  paddingVertical: cx(8),
180
180
  marginTop: cx(8),
181
- backgroundColor: props.theme.button.active,
181
+ backgroundColor: props.theme.button.primary,
182
182
  alignItems: 'center',
183
183
  justifyContent: 'center'
184
184
  }
@@ -189,7 +189,7 @@ const EnergyConsumptionDetail = (props: {theme?: any}) => {
189
189
  backText={I18n.getLang('consumption_data_annual_bar_chart_system_back_text')}
190
190
  headlineText={params.curMonth.key}
191
191
  headlineIcon={state.overviewList.length ? res.download_icon : undefined}
192
- onHeadlineIconClick={() => {
192
+ onHeadlineIconClick={() => {
193
193
  exportFile(state.overviewList)
194
194
  }}
195
195
  showGreenery={false}
@@ -217,7 +217,7 @@ const EnergyConsumptionDetail = (props: {theme?: any}) => {
217
217
  <Image
218
218
  source={res.energy_consumption_cash}
219
219
  resizeMode="contain"
220
- style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.active }}
220
+ style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.primary }}
221
221
  />
222
222
  </View>
223
223
  <View style={styles.priceNum}>
@@ -247,7 +247,7 @@ const EnergyConsumptionDetail = (props: {theme?: any}) => {
247
247
  <Image
248
248
  source={res.energy_consumption_cash}
249
249
  resizeMode="contain"
250
- style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.active }}
250
+ style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.primary }}
251
251
  />
252
252
  </View>
253
253
  <View>
@@ -183,7 +183,7 @@ const EnergyConsumptionPage = (props: {theme?: any}) => {
183
183
  paddingHorizontal: cx(10),
184
184
  paddingVertical: cx(8),
185
185
  marginTop: cx(8),
186
- backgroundColor: props.theme.button.active,
186
+ backgroundColor: props.theme.button.primary,
187
187
  alignItems: 'center',
188
188
  justifyContent: 'center'
189
189
  },
@@ -290,7 +290,7 @@ const EnergyConsumptionPage = (props: {theme?: any}) => {
290
290
  <Image
291
291
  source={res.energy_consumption_cash}
292
292
  resizeMode="contain"
293
- style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.active }}
293
+ style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.primary }}
294
294
  />
295
295
  </View>
296
296
  <View style={styles.priceNum}>
@@ -305,7 +305,7 @@ const EnergyConsumptionPage = (props: {theme?: any}) => {
305
305
  <Image
306
306
  source={res.co2Icon}
307
307
  resizeMode="contain"
308
- style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.active }}
308
+ style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.primary }}
309
309
  />
310
310
  </TouchableOpacity>
311
311
  </View>
@@ -320,7 +320,7 @@ const EnergyConsumptionPage = (props: {theme?: any}) => {
320
320
  <Image
321
321
  source={res.energy_consumption_cash}
322
322
  resizeMode="contain"
323
- style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.active }}
323
+ style={{ height: cx(20), width: cx(20), tintColor: props.theme.button.primary }}
324
324
  />
325
325
  </View>
326
326
  <View>
@@ -58,7 +58,7 @@ const EnergyModal = (props: EnergyModalProps) => {
58
58
  <Text style={{ color: props.theme.global.fontColor }}>{text[length - 4] + text[length - 3] + ':'}</Text>
59
59
  <Spacer />
60
60
  <Text
61
- style={{ textDecorationLine: 'underline', color: props.theme.button.active }}
61
+ style={{ textDecorationLine: 'underline', color: props.theme.button.primary }}
62
62
  onPress={() => openLink(`${text[length - 2]}:${text[length - 1]}${text[length]}`)}
63
63
  >
64
64
  {`${text[length - 2]}:${text[length - 1]}${text[length]}`}
@@ -80,7 +80,7 @@ const OverView = (props: OverViewProps) => {
80
80
  </View>
81
81
  <Image
82
82
  source={res.energy_consumption_right}
83
- style={{ width: cx(16), height: cx(16), marginLeft: cx(8) }}
83
+ style={{ width: cx(16), height: cx(16), marginLeft: cx(8), tintColor: props.theme.global.secondFontColor }}
84
84
  />
85
85
  </View>
86
86
  </View>
@@ -25,6 +25,7 @@ import { useParams } from "@ledvance/base/src/hooks/Hooks";
25
25
 
26
26
  const { convertX: cx } = Utils.RatioUtils;
27
27
  const { toFixedString } = Utils.NumberUtils;
28
+ const {parseTimer} = Utils.TimeUtils
28
29
 
29
30
  export interface FixedTimeDetailPageParams extends FixedTimePageParams {
30
31
  mode: 'add' | 'edit'
@@ -62,14 +63,11 @@ const FixedTimeDetailPage = () => {
62
63
  }, [state.fixedTime.openTime, state.fixedTime.closeTime])
63
64
 
64
65
  const inRangeTime = useMemo(() => {
65
- const { startTime, endTime, closeTime, openTime } = state.fixedTime
66
- const poweredTime = openTime + closeTime
67
- if (startTime < endTime) {
68
- return (endTime - startTime) >= poweredTime
69
- } else {
70
- return (1440 - endTime - startTime) >= poweredTime
71
- }
72
- }, [JSON.stringify(state.fixedTime)])
66
+ const { startTime, endTime, openTime, closeTime } = state.fixedTime
67
+ const timeInterval = endTime - startTime + ((startTime > endTime) ? 1440 : 0) // 跨天要加1440
68
+ const workTime = openTime + closeTime
69
+ return timeInterval >= workTime
70
+ }, [state.fixedTime.startTime, state.fixedTime.endTime, state.fixedTime.openTime, state.fixedTime.closeTime])
73
71
 
74
72
  const checkItemChanged = useMemo(() =>{
75
73
  return isEqual(state.fixedTime, state.initFixedTime)
@@ -142,7 +140,7 @@ const FixedTimeDetailPage = () => {
142
140
  state.fixedTime.weeks[rawIndex] = state.fixedTime.weeks[rawIndex] === 1 ? 0 : 1
143
141
  }} />
144
142
  <Spacer />
145
- <Text style={styles.cardContainer}>{loopText(state.fixedTime.weeks)}</Text>
143
+ <Text style={styles.cardContainer}>{loopText(state.fixedTime.weeks, parseTimer(state.fixedTime.endTime * 60))}</Text>
146
144
  <Spacer />
147
145
  {/* Apply for */}
148
146
  <View style={styles.cardContainer}>
@@ -268,7 +266,7 @@ const FixedTimeDetailPage = () => {
268
266
  </View>
269
267
  {/* summary */}
270
268
  <Summary
271
- frequency={loopText(state.fixedTime.weeks)}
269
+ frequency={loopText(state.fixedTime.weeks, parseTimer(state.fixedTime.endTime * 60))}
272
270
  time={`${convertMinutesTo12HourFormat(state.fixedTime.startTime, is24Hour)} - ${convertMinutesTo12HourFormat(state.fixedTime.endTime, is24Hour)}`}
273
271
  actions={(
274
272
  <View style={{ flexDirection: 'column' }}>
@@ -349,4 +347,4 @@ const styles = StyleSheet.create({
349
347
  }
350
348
  })
351
349
 
352
- export default FixedTimeDetailPage
350
+ export default FixedTimeDetailPage
@@ -183,7 +183,7 @@ function newMood(
183
183
  },
184
184
  secondaryLamp: {
185
185
  id: isStatic ? -1 : secondaryId,
186
- enable: true,
186
+ enable: !isStatic,
187
187
  mode: MoodJumpGradientMode.StripJump,
188
188
  speed: 75,
189
189
  ...defStripConfig,
@@ -93,12 +93,22 @@ const remoteMoodInfo2MoodUIState = (
93
93
  export const getRemoteMoodList = async (
94
94
  devId: string,
95
95
  option: DefMoodOption,
96
- featureId = SceneFeatureId
96
+ featureId = SceneFeatureId,
97
+ isRefresh?: boolean
97
98
  ) => {
98
99
  const isFeature = !(option.isCeilingLight || option.isStringLight || option.isStripLight);
100
+ const moodFeatureId = isFeature ? (option.isMixLight ? MixLightSceneListFeatureId : SceneFeatureId) : (option.isCeilingLight ? SceneFeatureId : featureId)
101
+ if (isRefresh){
102
+ const defScene = getDefMoodList(option)
103
+ const res = await setRemoteMoodList(devId, isFeature, defScene, featureId)
104
+ if (res.success){
105
+ return {
106
+ success: true,
107
+ data: defScene.map((item, index) => remoteMoodInfo2MoodUIState(item, index, option))
108
+ }
109
+ }
110
+ }
99
111
  if (isFeature) {
100
- const moodFeatureId = option.isMixLight ? MixLightSceneListFeatureId : SceneFeatureId;
101
- // await setRemoteMoodList(devId, isFeature, getDefMoodList(option), moodFeatureId);
102
112
  const res = await getFeature(devId, moodFeatureId);
103
113
  if (!res.result) {
104
114
  return { success: false };
@@ -123,9 +133,6 @@ export const getRemoteMoodList = async (
123
133
  data: res.data.map((item, index) => remoteMoodInfo2MoodUIState(item, index, option)),
124
134
  };
125
135
  } else {
126
- const moodFeatureId = option.isCeilingLight ? SceneFeatureId : featureId;
127
- // const defaultScene = getDefMoodList(option);
128
- // await setRemoteMoodList(devId, isFeature, defaultScene, moodFeatureId);
129
136
  const res = await NativeApi.getJson(devId, moodFeatureId);
130
137
  const isNormalData = Array.isArray(parseJSON(res?.data));
131
138
  if (res.success && isNormalData) {
@@ -319,59 +319,211 @@ function getDIMDefSceneList(): RemoteMoodInfo[] {
319
319
  function getStringLightSceneList(): RemoteMoodInfo[] {
320
320
  return [
321
321
  {
322
- n: I18n.getLang('strip_lights_modes_flow_text'),
323
- i: '010d0d3232000000640000640000000064003c64000000006400f06400000000',
322
+ n: I18n.getLang('dynamicmoods_forest'),
323
+ i: "0107104b4b0000003700784c0000000064003364000000002700786400000000",
324
324
  s: '',
325
325
  t: 0,
326
326
  e: false,
327
327
  },
328
328
  {
329
- n: I18n.getLang('strip_lights_modes_rainbow_text'),
330
- i: '0102023232000000640000640000000064003c64000000006400f06400000000',
329
+ n: I18n.getLang('dynamicmoods_desert'),
330
+ i: "0108104b4b000000520022210000000064001045000000006400106400000000",
331
331
  s: '',
332
332
  t: 0,
333
333
  e: false,
334
334
  },
335
335
  {
336
- n: I18n.getLang('string_lights_modes_chase_text'),
337
- i:
338
- '010e0e3232000000640000640000000064003c640000000064007864000000006400b464000000006400f0640000000064012c6400000000',
336
+ n: I18n.getLang('dynamicmoods_dreams'),
337
+ i: "0109104b4b00000064014b14000000005d00b41a0000000064001c1b00000000",
339
338
  s: '',
340
339
  t: 0,
341
340
  e: false,
342
341
  },
343
342
  {
344
- n: I18n.getLang('string_lights_modes_dazzle_text'),
345
- i:
346
- '010f0f3232000000640000640000000064003c640000000064007864000000006400b464000000006400f0640000000064012c6400000000',
343
+ n: I18n.getLang('dynamicmoods_breeze'),
344
+ i: "010a104b4b00000055002b550000000046000051000000006400276400000000",
345
+ s: '',
346
+ t: 0,
347
+ e: false,
348
+ },
349
+ {
350
+ n: I18n.getLang('dynamicmoods_waters'),
351
+ i: "010b104b4b0000006400c364000000006400a032000000002c00f04e00000000",
352
+ s: '',
353
+ t: 0,
354
+ e: false,
355
+ },
356
+ {
357
+ n: I18n.getLang('dynamicmoods_splash'),
358
+ i: "010c104b4b00000064003c640000000064002764000000006400106400000000",
359
+ s: '',
360
+ t: 0,
361
+ e: false,
362
+ },
363
+ {
364
+ n: I18n.getLang('dynamicmoods_sunrise'),
365
+ i: "010d104b4b00000064000948000000006400261d000000006400336400000000",
366
+ s: '',
367
+ t: 0,
368
+ e: false,
369
+ },
370
+ {
371
+ n: I18n.getLang('dynamicmoods_wonderland'),
372
+ i: "010e104b4b0000005a00bb170000000064000002000000004b00000000000000",
373
+ s: '',
374
+ t: 0,
375
+ e: false,
376
+ },
377
+ {
378
+ n: I18n.getLang('dynamicmoods_Twilight'),
379
+ i: "010f104b4b00000064014a3b0000000064002764000000003200b46400000000",
380
+ s: '',
381
+ t: 0,
382
+ e: false,
383
+ },
384
+ {
385
+ n: I18n.getLang('dynamicmoods_symphony'),
386
+ i: "0110104b4b0000006400d2580000000064000000000000006400336400000000",
387
+ s: '',
388
+ t: 0,
389
+ e: false,
390
+ },
391
+ {
392
+ n: I18n.getLang('dynamicmoods_sorbet'),
393
+ i: "0110104b4b0000006400d2580000000064000000000000006400336400000000",
394
+ s: '',
395
+ t: 0,
396
+ e: false,
397
+ },
398
+ {
399
+ n: I18n.getLang('dynamicmoods_mansion'),
400
+ i: "0112104b4b00000032012c64000000006400b464000000006400276400000000",
401
+ s: '',
402
+ t: 0,
403
+ e: false,
404
+ },
405
+ {
406
+ n: I18n.getLang('dynamicmoods_hour'),
407
+ i: "0113104b4b000000640033640000000064002164000000006400261d00000000",
408
+ s: '',
409
+ t: 0,
410
+ e: false,
411
+ },
412
+ {
413
+ n: I18n.getLang('dynamicmoods_isle'),
414
+ i: "0114104b4b0000003200786400000000370092430000000063005a6400000000",
415
+ s: '',
416
+ t: 0,
417
+ e: false,
418
+ },
419
+ {
420
+ n: I18n.getLang('dynamicmoods_Beat'),
421
+ i: "0115104b4b0000006400b4640000000064012c640000000064003c6400000000",
422
+ s: '',
423
+ t: 0,
424
+ e: false,
425
+ },
426
+ {
427
+ n: I18n.getLang('dynamicmoods_glamour'),
428
+ i: "0116104b4b000000640033640000000032012c640000000064015e1900000000",
429
+ s: '',
430
+ t: 0,
431
+ e: false,
432
+ },
433
+ {
434
+ n: I18n.getLang('dynamicmoods_edreams'),
435
+ i: "0117104b4b00000064012c64000000006400b464000000006400276400000000",
436
+ s: '',
437
+ t: 0,
438
+ e: false,
439
+ },
440
+ {
441
+ n: I18n.getLang('dynamicmoods_sunset'),
442
+ i: "0118104b4b000000640010640000000064001d450000000055002b5500000000",
443
+ s: '',
444
+ t: 0,
445
+ e: false,
446
+ },
447
+ {
448
+ n: I18n.getLang('dynamicmoods_carnival'),
449
+ i: "0119104b4b00000064012c6400000000640027640000000064003c6400000000",
450
+ s: '',
451
+ t: 0,
452
+ e: false,
453
+ },
454
+ {
455
+ n: I18n.getLang('dynamicmoods_serenade'),
456
+ i: "011a104b4b0000002c00f04e000000001f00b429000000006200f00800000000",
457
+ s: '',
458
+ t: 0,
459
+ e: false,
460
+ },
461
+ {
462
+ n: I18n.getLang('dynamicmoods_glow'),
463
+ i: "011b104b4b00000064001e640000000064003064000000006400005000000000",
464
+ s: '',
465
+ t: 0,
466
+ e: false,
467
+ },
468
+ {
469
+ n: I18n.getLang('dynamicmoods_Canopy'),
470
+ i: "011c104b4b00000028007864000000003c007843000000003c001e4300000000",
471
+ s: '',
472
+ t: 0,
473
+ e: false,
474
+ },
475
+ {
476
+ n: I18n.getLang('dynamicmoods_Burst'),
477
+ i: "011d104b4b0000006400006400000000640027640000000064003c640000000064007864000000006400d264000000006401116400000000",
478
+ s: '',
479
+ t: 0,
480
+ e: false,
481
+ },
482
+ {
483
+ n: I18n.getLang('dynamicmoods_Lights'),
484
+ i: "011e104b4b00000064012c640000000064003c64000000006400b464000000006400186400000000",
485
+ s: '',
486
+ t: 0,
487
+ e: false,
488
+ },
489
+ {
490
+ n: I18n.getLang('dynamicmoods_Dreamscape'),
491
+ i: "011f104b4b00000064012c14000000006400f0140000000064003c14000000006400b41400000000",
492
+ s: '',
493
+ t: 0,
494
+ e: false,
495
+ },
496
+ {
497
+ n: I18n.getLang('dynamicmoods_NLights'),
498
+ i: "0120104b4b00000064009664000000006400d2640000000064010e6400000000",
347
499
  s: '',
348
500
  t: 0,
349
501
  e: false,
350
502
  },
351
503
  {
352
- n: I18n.getLang('other_lights_modes_gradient_text'),
353
- i: '01101032320000006400f0640000000064012c640000000064003c6400000000',
504
+ n: I18n.getLang('dynamicmoods_paradise'),
505
+ i: "0121104b4b0000006401403c0000000064001e500000000064003c3c00000000",
354
506
  s: '',
355
507
  t: 0,
356
508
  e: false,
357
509
  },
358
510
  {
359
- n: I18n.getLang('other_lights_modes_jump_text'),
360
- i: '010a0a32320000006400f0640000000064012c640000000064003c6400000000',
511
+ n: I18n.getLang('dynamicmoods_ice'),
512
+ i: "0122104b4b000000640018640000000064000000000000006400d86400000000",
361
513
  s: '',
362
514
  t: 0,
363
515
  e: false,
364
516
  },
365
517
  {
366
- n: I18n.getLang('strip_lights_modes_breath_text'),
367
- i: '010b0b32320000006400f0640000000064012c640000000064003c6400000000',
518
+ n: I18n.getLang('dynamicmoods_voyage'),
519
+ i: "0123104b4b0000002800f0640000000028010e64000000006400000000000000",
368
520
  s: '',
369
521
  t: 0,
370
522
  e: false,
371
523
  },
372
524
  {
373
- n: I18n.getLang('string_lights_modes_blink_text'),
374
- i: '010c0c32320000006400f0640000000064012c640000000064003c6400000000',
525
+ n: I18n.getLang('dynamicmoods_wave'),
526
+ i: "0124104b4b0000006400d264000000006400b464000000006400966400000000",
375
527
  s: '',
376
528
  t: 0,
377
529
  e: false,