@ledvance/base 1.1.14 → 1.1.16
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/api/native.d.ts +13 -0
- package/src/api/native.ts +197 -179
- package/src/api/nativeEventEmitter.ts +54 -54
- package/src/components/Card.tsx +25 -25
- package/src/components/Cell.tsx +32 -32
- package/src/components/ColorAdjustView.tsx +44 -44
- package/src/components/ColorTempAdjustView.tsx +37 -37
- package/src/components/ColorsLine.d.ts +7 -0
- package/src/components/ColorsLine.tsx +34 -34
- package/src/components/DeleteButton.d.ts +1 -1
- package/src/components/DeleteButton.tsx +27 -27
- package/src/components/Dialog.tsx +28 -28
- package/src/components/FanAdjustView.tsx +115 -105
- package/src/components/InfoText.tsx +29 -29
- package/src/components/LampAdjustView.tsx +52 -52
- package/src/components/LinearGradientLine.tsx +53 -53
- package/src/components/MoodColorsLine.d.ts +9 -0
- package/src/components/MoodColorsLine.tsx +23 -23
- package/src/components/Page.tsx +34 -34
- package/src/components/Popup.tsx +17 -17
- package/src/components/Segmented.d.ts +2 -2
- package/src/components/Segmented.tsx +66 -65
- package/src/components/Spacer.tsx +5 -5
- package/src/components/Tag.tsx +42 -42
- package/src/components/TextButton.d.ts +1 -1
- package/src/components/TextButton.tsx +23 -23
- package/src/components/TextField.tsx +58 -58
- package/src/components/connect.tsx +10 -10
- package/src/components/ldvColorBrightness.tsx +12 -12
- package/src/components/ldvColorSlider.tsx +109 -109
- package/src/components/ldvPickerView.tsx +70 -70
- package/src/components/ldvPresetView.tsx +68 -68
- package/src/components/ldvSaturation.tsx +14 -14
- package/src/components/ldvSlider.d.ts +3 -3
- package/src/components/ldvSlider.tsx +93 -93
- package/src/components/ldvSwitch.tsx +35 -35
- package/src/components/ldvTemperatureSlider.tsx +120 -120
- package/src/components/ldvTopBar.tsx +50 -50
- package/src/components/ldvTopName.tsx +44 -44
- package/src/components/segmentControl.tsx +59 -59
- package/src/components/weekSelect.tsx +76 -76
- package/src/composeLayout.tsx +165 -165
- package/src/i18n/index.ts +12 -12
- package/src/i18n/strings.ts +11004 -11004
- package/src/main.tsx +4 -4
- package/src/models/GlobalParams.ts +7 -7
- package/src/models/TuyaApi.d.ts +3 -3
- package/src/models/TuyaApi.ts +61 -61
- package/src/models/combine.ts +7 -7
- package/src/models/configureStore.ts +14 -14
- package/src/models/index.ts +4 -4
- package/src/models/modules/NativePropsSlice.d.ts +5 -2
- package/src/models/modules/NativePropsSlice.tsx +170 -169
- package/src/models/modules/Result.ts +8 -8
- package/src/models/modules/common.ts +90 -90
- package/src/res/index.ts +35 -35
- package/src/utils/ColorParser.ts +150 -150
- package/src/utils/ColorUtils.tsx +414 -414
- package/src/utils/Support.d.ts +9 -0
- package/src/utils/Support.ts +73 -73
- package/src/utils/cctUtils.d.ts +1 -0
- package/src/utils/cctUtils.ts +106 -106
- package/src/utils/common.ts +186 -174
- package/src/utils/index.ts +123 -123
package/src/utils/index.ts
CHANGED
|
@@ -4,19 +4,19 @@ import {store} from '../models'
|
|
|
4
4
|
import I18n from '../i18n/index'
|
|
5
5
|
|
|
6
6
|
export const getFaultStrings = (faultCode: string, faultValue: number, onlyPrior = true) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
7
|
+
const {devInfo} = store.getState()
|
|
8
|
+
if (!faultValue) return ''
|
|
9
|
+
const {label} = devInfo.schema[faultCode]
|
|
10
|
+
const labels: string[] = []
|
|
11
|
+
for (let i = 0; i < label!.length; i++) {
|
|
12
|
+
const value = label![i]
|
|
13
|
+
const isExist = Utils.NumberUtils.getBitValue(faultValue, i)
|
|
14
|
+
if (isExist) {
|
|
15
|
+
labels.push(I18n.getDpLang(faultCode, value))
|
|
16
|
+
if (onlyPrior) break
|
|
18
17
|
}
|
|
19
|
-
|
|
18
|
+
}
|
|
19
|
+
return onlyPrior ? labels[0] : labels.join(', ')
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
const RGB_MAX = 255
|
|
@@ -24,141 +24,141 @@ const HUE_MAX = 360
|
|
|
24
24
|
const SV_MAX = 100
|
|
25
25
|
|
|
26
26
|
export const hsv2Rgb = (h, s, v) => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
27
|
+
if (typeof h === 'object') {
|
|
28
|
+
const args = h
|
|
29
|
+
h = args.h
|
|
30
|
+
s = args.s
|
|
31
|
+
v = args.v
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
h = _normalizeAngle(h)
|
|
35
|
+
h = (h === HUE_MAX) ? 1 : (h % HUE_MAX / parseFloat(HUE_MAX.toString()) * 6)
|
|
36
|
+
s = (s === SV_MAX) ? 1 : (s % SV_MAX / parseFloat(SV_MAX.toString()))
|
|
37
|
+
v = (v === SV_MAX) ? 1 : (v % SV_MAX / parseFloat(SV_MAX.toString()))
|
|
38
|
+
|
|
39
|
+
var i = Math.floor(h)
|
|
40
|
+
var f = h - i
|
|
41
|
+
var p = v * (1 - s)
|
|
42
|
+
var q = v * (1 - f * s)
|
|
43
|
+
var t = v * (1 - (1 - f) * s)
|
|
44
|
+
var mod = i % 6
|
|
45
|
+
var r = [v, q, p, p, t, v][mod]
|
|
46
|
+
var g = [t, v, v, q, p, p][mod]
|
|
47
|
+
var b = [p, p, t, v, v, q][mod]
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
r: Math.floor(r * RGB_MAX),
|
|
51
|
+
g: Math.floor(g * RGB_MAX),
|
|
52
|
+
b: Math.floor(b * RGB_MAX),
|
|
53
|
+
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function _normalizeAngle(degrees) {
|
|
57
|
-
|
|
57
|
+
return (degrees % 360 + 360) % 360
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
export const hex2Hsv = function (hex) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
var rgb = hex2Rgb(hex)
|
|
62
|
+
if (rgb) {
|
|
63
|
+
return rgb2Hsv(rgb.r, rgb.g, rgb.b)
|
|
64
|
+
} else {
|
|
65
|
+
return null
|
|
66
|
+
}
|
|
67
67
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
const hex2Rgb = function (hex) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
72
|
+
return result ? {
|
|
73
|
+
r: parseInt(result[1], 16),
|
|
74
|
+
g: parseInt(result[2], 16),
|
|
75
|
+
b: parseInt(result[3], 16),
|
|
76
|
+
} : null
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
export const rgb2Hsv = function (r, g, b) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
h /= 6
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return {
|
|
118
|
-
h: Math.round(h * HUE_MAX),
|
|
119
|
-
s: Math.round(s * SV_MAX),
|
|
120
|
-
v: Math.round(v * SV_MAX),
|
|
80
|
+
if (typeof r === 'object') {
|
|
81
|
+
const args = r
|
|
82
|
+
r = args.r
|
|
83
|
+
g = args.g
|
|
84
|
+
b = args.b
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// It converts [0,255] format, to [0,1]
|
|
88
|
+
r = (r === RGB_MAX) ? 1 : (r % RGB_MAX / parseFloat(RGB_MAX.toString()))
|
|
89
|
+
g = (g === RGB_MAX) ? 1 : (g % RGB_MAX / parseFloat(RGB_MAX.toString()))
|
|
90
|
+
b = (b === RGB_MAX) ? 1 : (b % RGB_MAX / parseFloat(RGB_MAX.toString()))
|
|
91
|
+
|
|
92
|
+
var max = Math.max(r, g, b)
|
|
93
|
+
var min = Math.min(r, g, b)
|
|
94
|
+
var h, s, v = max
|
|
95
|
+
|
|
96
|
+
var d = max - min
|
|
97
|
+
|
|
98
|
+
s = max === 0 ? 0 : d / max
|
|
99
|
+
|
|
100
|
+
if (max === min) {
|
|
101
|
+
h = 0 // achromatic
|
|
102
|
+
} else {
|
|
103
|
+
switch (max) {
|
|
104
|
+
case r:
|
|
105
|
+
h = (g - b) / d + (g < b ? 6 : 0)
|
|
106
|
+
break
|
|
107
|
+
case g:
|
|
108
|
+
h = (b - r) / d + 2
|
|
109
|
+
break
|
|
110
|
+
case b:
|
|
111
|
+
h = (r - g) / d + 4
|
|
112
|
+
break
|
|
121
113
|
}
|
|
114
|
+
h /= 6
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
h: Math.round(h * HUE_MAX),
|
|
119
|
+
s: Math.round(s * SV_MAX),
|
|
120
|
+
v: Math.round(v * SV_MAX),
|
|
121
|
+
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
export const rgb2Hex = function (r, g, b) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
125
|
+
if (typeof r === 'object') {
|
|
126
|
+
const args = r
|
|
127
|
+
r = args.r
|
|
128
|
+
g = args.g
|
|
129
|
+
b = args.b
|
|
130
|
+
}
|
|
131
|
+
r = Math.round(r).toString(16)
|
|
132
|
+
g = Math.round(g).toString(16)
|
|
133
|
+
b = Math.round(b).toString(16)
|
|
134
|
+
|
|
135
|
+
r = r.length === 1 ? '0' + r : r
|
|
136
|
+
g = g.length === 1 ? '0' + g : g
|
|
137
|
+
b = b.length === 1 ? '0' + b : b
|
|
138
|
+
|
|
139
|
+
return '#' + r + g + b
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
export const hsv2Hex = function (h, s, v) {
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
let rgb = hsv2Rgb(h, s, v)
|
|
144
|
+
return rgb2Hex(rgb.r, rgb.g, rgb.b)
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
export const getHexByHSV = (hsv) => {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
148
|
+
const hueHex = hsv.h.toString(16).padStart(4, '0')
|
|
149
|
+
const satHex = (hsv.s).toString(16).padStart(4, '0')
|
|
150
|
+
const colorBrightnessHex = (hsv.v).toString(16).padStart(4, '0')
|
|
151
|
+
const allHex = hueHex + satHex + colorBrightnessHex
|
|
152
|
+
return allHex
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
export const getHSVByHex = (string) => {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
156
|
+
const h = string.substring(0, 4)
|
|
157
|
+
const s = string.substring(4, 8)
|
|
158
|
+
const v = string.substring(8, 12)
|
|
159
|
+
return {
|
|
160
|
+
h: parseInt(h, 16),
|
|
161
|
+
s: parseInt(s, 16),
|
|
162
|
+
v: parseInt(v, 16),
|
|
163
|
+
}
|
|
164
164
|
}
|