@quec/panel-device-kit 1.0.4

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 (77) hide show
  1. package/README.md +253 -0
  2. package/dist/index.cjs +1426 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.ts +11 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +1352 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/src/API/TimeApi.d.ts +1 -0
  9. package/dist/src/API/TimeApi.d.ts.map +1 -0
  10. package/dist/src/API/associationApi.d.ts +1 -0
  11. package/dist/src/API/associationApi.d.ts.map +1 -0
  12. package/dist/src/API/deviceApi.d.ts +62 -0
  13. package/dist/src/API/deviceApi.d.ts.map +1 -0
  14. package/dist/src/API/index.d.ts +7 -0
  15. package/dist/src/API/index.d.ts.map +1 -0
  16. package/dist/src/API/offlineReminder.d.ts +29 -0
  17. package/dist/src/API/offlineReminder.d.ts.map +1 -0
  18. package/dist/src/API/otaPlan.d.ts +26 -0
  19. package/dist/src/API/otaPlan.d.ts.map +1 -0
  20. package/dist/src/API/productManual.d.ts +11 -0
  21. package/dist/src/API/productManual.d.ts.map +1 -0
  22. package/dist/src/API/timeZone.d.ts +54 -0
  23. package/dist/src/API/timeZone.d.ts.map +1 -0
  24. package/dist/src/API/unbindDevice.d.ts +51 -0
  25. package/dist/src/API/unbindDevice.d.ts.map +1 -0
  26. package/dist/src/DeviceKitParamsManager.d.ts +43 -0
  27. package/dist/src/DeviceKitParamsManager.d.ts.map +1 -0
  28. package/dist/src/SDK/getDeviceOnlineState.d.ts +9 -0
  29. package/dist/src/SDK/getDeviceOnlineState.d.ts.map +1 -0
  30. package/dist/src/SDK/getPropertyDataListWithParams.d.ts +11 -0
  31. package/dist/src/SDK/getPropertyDataListWithParams.d.ts.map +1 -0
  32. package/dist/src/SDK/subscriDevice.d.ts +9 -0
  33. package/dist/src/SDK/subscriDevice.d.ts.map +1 -0
  34. package/dist/src/config/DeviceConfig.d.ts +44 -0
  35. package/dist/src/config/DeviceConfig.d.ts.map +1 -0
  36. package/dist/src/device-list-utils.d.ts +28 -0
  37. package/dist/src/device-list-utils.d.ts.map +1 -0
  38. package/dist/src/deviceListStore.d.ts +135 -0
  39. package/dist/src/deviceListStore.d.ts.map +1 -0
  40. package/dist/src/deviceStore.d.ts +312 -0
  41. package/dist/src/deviceStore.d.ts.map +1 -0
  42. package/dist/src/i18n/i18n.d.ts +2 -0
  43. package/dist/src/i18n/i18n.d.ts.map +1 -0
  44. package/dist/src/i18n/locales/zh.d.ts +7 -0
  45. package/dist/src/i18n/locales/zh.d.ts.map +1 -0
  46. package/dist/src/initDeviceListUpdate.d.ts +27 -0
  47. package/dist/src/initDeviceListUpdate.d.ts.map +1 -0
  48. package/dist/src/initDeviceOnlineEvent.d.ts +24 -0
  49. package/dist/src/initDeviceOnlineEvent.d.ts.map +1 -0
  50. package/dist/src/initDeviceRefreshEvent.d.ts +15 -0
  51. package/dist/src/initDeviceRefreshEvent.d.ts.map +1 -0
  52. package/dist/src/types/Error.d.ts +12 -0
  53. package/dist/src/types/Error.d.ts.map +1 -0
  54. package/dist/src/types/common.type.d.ts +2 -0
  55. package/dist/src/types/common.type.d.ts.map +1 -0
  56. package/dist/src/types/deviceModel.d.ts +84 -0
  57. package/dist/src/types/deviceModel.d.ts.map +1 -0
  58. package/dist/src/types/dps.type.d.ts +125 -0
  59. package/dist/src/types/dps.type.d.ts.map +1 -0
  60. package/dist/src/types/familyModel.d.ts +5 -0
  61. package/dist/src/types/familyModel.d.ts.map +1 -0
  62. package/dist/src/types/index.d.ts +4 -0
  63. package/dist/src/types/index.d.ts.map +1 -0
  64. package/dist/src/types/propsModel.d.ts +27 -0
  65. package/dist/src/types/propsModel.d.ts.map +1 -0
  66. package/dist/src/utils/empty.d.ts +2 -0
  67. package/dist/src/utils/empty.d.ts.map +1 -0
  68. package/dist/src/utils/numberUtils.d.ts +9 -0
  69. package/dist/src/utils/numberUtils.d.ts.map +1 -0
  70. package/dist/src/utils/stringUtils.d.ts +3 -0
  71. package/dist/src/utils/stringUtils.d.ts.map +1 -0
  72. package/dist/src/utils/to.d.ts +8 -0
  73. package/dist/src/utils/to.d.ts.map +1 -0
  74. package/dist/tsconfig.tsbuildinfo +1 -0
  75. package/dist/tsup.config.d.ts +3 -0
  76. package/dist/tsup.config.d.ts.map +1 -0
  77. package/package.json +60 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,1426 @@
1
+ 'use strict';
2
+
3
+ var QuecRNLogModule = require('@quec/rn-log-module/src/module');
4
+ var QuecRNDeviceModule5 = require('@quec/rn-device-module/src/module');
5
+ var camelCase = require('lodash.camelcase');
6
+ var zustand = require('zustand');
7
+ var react = require('react');
8
+ var reactNative = require('react-native');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var QuecRNLogModule__default = /*#__PURE__*/_interopDefault(QuecRNLogModule);
13
+ var QuecRNDeviceModule5__default = /*#__PURE__*/_interopDefault(QuecRNDeviceModule5);
14
+ var camelCase__default = /*#__PURE__*/_interopDefault(camelCase);
15
+
16
+ // src/config/DeviceConfig.ts
17
+ var NOT_CONNECTING = 0;
18
+ var DEVICE_TYPE_BIND = 1;
19
+ var DEVICE_TYPE_SHARE = 2;
20
+ var DEVICE_ACCESS_TYPE_DIRECTLY = 0;
21
+ var DEVICE_ACCESS_TYPE_GATEWAY = 1;
22
+ var DEVICE_ACCESS_TYPE_GATEWAY_CHILD = 2;
23
+ var DEVICE_NAME_MAX_LENGTH = 14;
24
+ var onlineStatus = /* @__PURE__ */ ((onlineStatus2) => {
25
+ onlineStatus2[onlineStatus2["ALL_OFFLINE"] = 0] = "ALL_OFFLINE";
26
+ onlineStatus2[onlineStatus2["WS_ONLINE"] = 1] = "WS_ONLINE";
27
+ onlineStatus2[onlineStatus2["WIFI_ONLINE"] = 2] = "WIFI_ONLINE";
28
+ onlineStatus2[onlineStatus2["WS_WIFI_ONLINE"] = 3] = "WS_WIFI_ONLINE";
29
+ onlineStatus2[onlineStatus2["BLE_ONLINE"] = 4] = "BLE_ONLINE";
30
+ onlineStatus2[onlineStatus2["WS_BLE_ONLINE"] = 5] = "WS_BLE_ONLINE";
31
+ onlineStatus2[onlineStatus2["WIFI_BLE_ONLINE"] = 6] = "WIFI_BLE_ONLINE";
32
+ onlineStatus2[onlineStatus2["ALL_ONLINE"] = 7] = "ALL_ONLINE";
33
+ return onlineStatus2;
34
+ })(onlineStatus || {});
35
+ var LOADING_SEND_TIMEOUT = 6e4;
36
+ var BASE_TAG = "\u{1F4AB} Quec_Device_Kit ";
37
+ var _DeviceKitParamsManager = class _DeviceKitParamsManager {
38
+ /** 是否使用内部管理器 */
39
+ static setTSLStore() {
40
+ }
41
+ /** 注册回调 */
42
+ registerCallbacks({
43
+ loadingCallback,
44
+ loadingDismissCallback,
45
+ tipCallback
46
+ }) {
47
+ if (loadingCallback) _DeviceKitParamsManager.loadingCallback = loadingCallback;
48
+ if (loadingDismissCallback)
49
+ _DeviceKitParamsManager.loadingDismissCallback = loadingDismissCallback;
50
+ if (tipCallback) _DeviceKitParamsManager.tipCallback = tipCallback;
51
+ }
52
+ /** 触发 Loading */
53
+ loading() {
54
+ _DeviceKitParamsManager.loadingCallback?.();
55
+ }
56
+ /** 关闭 Loading */
57
+ loadingDismiss() {
58
+ _DeviceKitParamsManager.loadingDismissCallback?.();
59
+ }
60
+ /** 触发提示 */
61
+ tip(message) {
62
+ _DeviceKitParamsManager.tipCallback?.(message);
63
+ }
64
+ setAutoConnectCurrentDevice(autoConnectCurrentDevice) {
65
+ _DeviceKitParamsManager.autoConnectCurrentDevice = autoConnectCurrentDevice;
66
+ }
67
+ getAutoConnectCurrentDevice() {
68
+ return _DeviceKitParamsManager.autoConnectCurrentDevice === true;
69
+ }
70
+ /** 设置外部日志模块 */
71
+ static setLogger(logModule) {
72
+ this.logModule = logModule;
73
+ }
74
+ /** 自动关闭所有 console 输出(仅限生产环境) */
75
+ static autoDisableLog() {
76
+ const isProduction = !__DEV__;
77
+ if (isProduction) {
78
+ const noop = () => {
79
+ };
80
+ console.log = noop;
81
+ console.info = noop;
82
+ console.warn = noop;
83
+ console.error = noop;
84
+ console.debug = noop;
85
+ console.trace = noop;
86
+ }
87
+ }
88
+ /** 通用日志方法 */
89
+ log(level, tag, message) {
90
+ if (typeof message === "object") {
91
+ message = JSON.stringify(message);
92
+ }
93
+ if (_DeviceKitParamsManager.logModule) {
94
+ _DeviceKitParamsManager.logModule[level](BASE_TAG + tag, "" + message);
95
+ }
96
+ console.log(`${BASE_TAG}${tag} ${level} ==> ${"" + message}`);
97
+ }
98
+ /** info日志方法 */
99
+ info(tag, message) {
100
+ this.log("i", tag, message);
101
+ }
102
+ /** err日志方法 */
103
+ error(tag, message) {
104
+ this.log("e", tag, message);
105
+ }
106
+ };
107
+ _DeviceKitParamsManager.useInternalStore = true;
108
+ // 是否使用内部 store,默认 true
109
+ _DeviceKitParamsManager.loadingCallback = null;
110
+ _DeviceKitParamsManager.loadingDismissCallback = null;
111
+ _DeviceKitParamsManager.tipCallback = null;
112
+ _DeviceKitParamsManager.logModule = QuecRNLogModule__default.default;
113
+ var DeviceKitParamsManager = _DeviceKitParamsManager;
114
+ var deviceKitParamsManager = new DeviceKitParamsManager();
115
+
116
+ // src/utils/to.ts
117
+ async function to(promise, errorExt) {
118
+ return promise.then((data) => [null, data]).catch((err) => {
119
+ if (errorExt) {
120
+ const parsedError = Object.assign({}, err, errorExt);
121
+ return [parsedError, void 0];
122
+ }
123
+ return [err, void 0];
124
+ });
125
+ }
126
+ var to_default = to;
127
+
128
+ // src/SDK/getDeviceOnlineState.ts
129
+ var getDeviceOnline = async ({
130
+ pk,
131
+ dk
132
+ }) => {
133
+ const [err, res] = await to_default(
134
+ QuecRNDeviceModule5__default.default.getDeviceOnlineState(pk, dk)
135
+ );
136
+ if (err) {
137
+ deviceKitParamsManager.error(
138
+ "\u274C \u2754 getDeviceOnlineState \u83B7\u53D6\u8BBE\u5907\u72B6\u6001\u5931\u8D25",
139
+ "error ==> " + err
140
+ );
141
+ return false;
142
+ }
143
+ if (res) {
144
+ deviceKitParamsManager.info(
145
+ " \u2705 \u2754 getDeviceOnlineState \u83B7\u53D6\u8BBE\u5907\u72B6\u6001\u6210\u529F",
146
+ "res ==> " + pk + "_" + dk + JSON.stringify(res)
147
+ );
148
+ if (Number(res.onlineState) !== 0) {
149
+ return true;
150
+ }
151
+ }
152
+ return false;
153
+ };
154
+ var getPropertyDataListWithParams = async (params) => {
155
+ const { productKey, deviceKey, codeList } = params;
156
+ deviceKitParamsManager.info(
157
+ "getPropertyDataListWithParams",
158
+ "===\u83B7\u53D6\u8BBE\u5907\u5C5E\u6027\u4FE1\u606F:" + productKey + "_" + deviceKey
159
+ );
160
+ const [err, res] = await to_default(
161
+ QuecRNDeviceModule5__default.default.getDeviceBusinessAttributesWithProductKey({
162
+ ...params,
163
+ codeList: codeList.join(","),
164
+ type: "2"
165
+ })
166
+ );
167
+ if (err) {
168
+ deviceKitParamsManager.error("getDeviceList", "error ==> " + err);
169
+ deviceKitParamsManager.loadingDismiss();
170
+ if (err.code && err.code.length > 0) {
171
+ deviceKitParamsManager.tip(err.message);
172
+ }
173
+ return;
174
+ }
175
+ if (res && res.data && Array.isArray(res.data?.customizeTslInfo) && res.data?.customizeTslInfo?.length > 0) {
176
+ deviceKitParamsManager.info(
177
+ "\u83B7\u53D6\u8BBE\u5907\u5C5E\u6027\u4FE1\u606F",
178
+ productKey + "_" + deviceKey + "===>" + JSON.stringify(res)
179
+ );
180
+ let propertyValueArr = {};
181
+ codeList.forEach((code) => {
182
+ const findRes = res.data.customizeTslInfo?.find(
183
+ (item) => item.resourceCode === code
184
+ );
185
+ propertyValueArr[code] = findRes?.resourceValce;
186
+ propertyValueArr[code + "Id"] = findRes?.abId;
187
+ });
188
+ return propertyValueArr;
189
+ }
190
+ };
191
+
192
+ // src/utils/stringUtils.ts
193
+ var strToObj = (str) => {
194
+ if (typeof str === "object" && str !== null) {
195
+ return str;
196
+ }
197
+ if (typeof str === "string" && str.trim() !== "") {
198
+ try {
199
+ const res = JSON.parse(str);
200
+ if (typeof res === "object" && res !== null) {
201
+ return res;
202
+ }
203
+ } catch (error) {
204
+ deviceKitParamsManager.error("strToObj", error);
205
+ }
206
+ }
207
+ return {};
208
+ };
209
+ var getCircularReplacer = () => {
210
+ const seen = /* @__PURE__ */ new WeakSet();
211
+ return (_key, value) => {
212
+ if (typeof value === "object" && value !== null) {
213
+ if (seen.has(value)) {
214
+ return "[Circular]";
215
+ }
216
+ seen.add(value);
217
+ }
218
+ return value;
219
+ };
220
+ };
221
+ var objToStr = (obj) => {
222
+ if (obj instanceof Error) {
223
+ return obj.stack || obj.message || "Unknown Error";
224
+ }
225
+ if (typeof obj === "object") {
226
+ try {
227
+ return JSON.stringify(obj, getCircularReplacer(), 2);
228
+ } catch (e) {
229
+ return "[Cannot stringify object]";
230
+ }
231
+ }
232
+ if (typeof obj === "undefined") {
233
+ return "undefined";
234
+ }
235
+ if (obj === null) {
236
+ return "null";
237
+ }
238
+ return String(obj);
239
+ };
240
+
241
+ // src/SDK/subscriDevice.ts
242
+ var subscribeDevice = (pk, dk) => {
243
+ try {
244
+ QuecRNDeviceModule5__default.default.subscribeDevice(pk, dk);
245
+ deviceKitParamsManager.info(
246
+ "\u2705 \u{1F91D} subscribeDevice \u6210\u529F\u8BA2\u9605\u8BBE\u5907",
247
+ "pk_dk===>" + pk + "_" + dk
248
+ );
249
+ } catch (error) {
250
+ deviceKitParamsManager.error(
251
+ "\u274C \u{1F91D} subscribeDevice \u8BA2\u9605\u8BBE\u5907\u5931\u8D25",
252
+ "pk_dk===>" + pk + "_" + dk + " ===> \u5931\u8D25\u539F\u56E0\uFF1A" + objToStr(error)
253
+ );
254
+ }
255
+ };
256
+
257
+ // src/deviceListStore.ts
258
+ var DEFAULT_PAGE_NUM = 1;
259
+ var DEFAULT_PAGE_SIZE = 15;
260
+ var initialState = {
261
+ deviceList: [],
262
+ total: null,
263
+ networkError: false,
264
+ listIsEmpty: false,
265
+ deviceListPlus: [],
266
+ //提供给自己想要简化device的数据的开发
267
+ subscribeDevicesList: [],
268
+ pageNum: DEFAULT_PAGE_NUM,
269
+ pageSize: DEFAULT_PAGE_SIZE,
270
+ canLoadMore: false
271
+ };
272
+ var deviceListStore = null;
273
+ var createDeviceListStore = (params) => {
274
+ const {
275
+ pageSize = DEFAULT_PAGE_SIZE,
276
+ processDeviceList,
277
+ isSubScribeAllDevice = false,
278
+ subscribeCodeList
279
+ } = params || {};
280
+ if (pageSize <= 1 || !Number.isInteger(pageSize)) {
281
+ throw new Error("\u274C pageSize\u8981\u6C42\u662F\u6B63\u6574\u6570\u4E14\u5927\u4E8E\u7B49\u4E8E1");
282
+ } else {
283
+ DEFAULT_PAGE_SIZE = pageSize;
284
+ }
285
+ if (!deviceListStore) {
286
+ deviceListStore = zustand.create((set, get) => ({
287
+ ...initialState,
288
+ // 刷新设备列表
289
+ refreshDeviceList(successCallback, failCallback) {
290
+ let deviceList = [];
291
+ set({
292
+ deviceList,
293
+ pageNum: 1,
294
+ canLoadMore: false
295
+ });
296
+ get().getDeviceList(
297
+ 1,
298
+ get().pageSize,
299
+ (list, canLoadMore) => {
300
+ successCallback && successCallback(list);
301
+ },
302
+ failCallback
303
+ );
304
+ },
305
+ // 加载更多设备列表
306
+ loadMoreDeviceList(successCallback, failCallback) {
307
+ if (get().canLoadMore) {
308
+ get().getDeviceList(
309
+ get().pageNum,
310
+ get().pageSize,
311
+ (list, canLoadMore) => {
312
+ successCallback && successCallback(list);
313
+ },
314
+ failCallback
315
+ );
316
+ }
317
+ },
318
+ // 请求设备列表
319
+ async getDeviceList(pageNum, paseSize, successCallback, failCallback) {
320
+ deviceKitParamsManager.loading();
321
+ const [err, res] = await to_default(
322
+ QuecRNDeviceModule5__default.default.getDeviceListWithPageNumber(pageNum, paseSize)
323
+ );
324
+ if (err) {
325
+ deviceKitParamsManager.error("\u274C getDeviceList", "\u83B7\u53D6\u8BBE\u5907\u5217\u8868error ==> " + err);
326
+ deviceKitParamsManager.loadingDismiss();
327
+ if (err.code && err.code.length > 0) {
328
+ deviceKitParamsManager.tip(err.message);
329
+ }
330
+ set({
331
+ networkError: true
332
+ });
333
+ failCallback && failCallback(err);
334
+ return;
335
+ }
336
+ let returnSuccessDeviceList = [];
337
+ if (res && res.data && res.data.list && Array.isArray(res.data?.list)) {
338
+ deviceKitParamsManager.info("getDeviceList", "res ==> " + objToStr(res));
339
+ const { data } = res;
340
+ const { list } = data;
341
+ set({ total: data.total });
342
+ if (pageNum === 1) {
343
+ await get().updateDeviceList(list);
344
+ returnSuccessDeviceList = list;
345
+ successCallback && successCallback(returnSuccessDeviceList, data.total > list.length);
346
+ if (deviceKitParamsManager.getAutoConnectCurrentDevice() && list.length > 0) {
347
+ deviceKitParamsManager.info("getDeviceList", "auto connect device");
348
+ QuecRNDeviceModule5__default.default.connectChannel(0);
349
+ }
350
+ set({
351
+ canLoadMore: data.total > list.length,
352
+ pageNum: data.total > list.length ? pageNum + 1 : 1
353
+ });
354
+ } else {
355
+ const nextListRes = list;
356
+ const preDevicesList = [...get().deviceList, ...nextListRes];
357
+ await get().updateDeviceList(preDevicesList);
358
+ returnSuccessDeviceList = list;
359
+ successCallback && successCallback(returnSuccessDeviceList, data.total > preDevicesList.length);
360
+ set({
361
+ canLoadMore: data.total > preDevicesList.length,
362
+ pageNum: data.total > preDevicesList.length ? pageNum + 1 : pageNum
363
+ });
364
+ }
365
+ } else {
366
+ deviceKitParamsManager.error("getDeviceList", "no res ==> " + objToStr(res));
367
+ failCallback && failCallback(null);
368
+ }
369
+ deviceKitParamsManager.loadingDismiss();
370
+ },
371
+ // 更新设备列表
372
+ async updateDeviceList(deviceList) {
373
+ set({
374
+ listIsEmpty: Array.isArray(deviceList) && deviceList.length === 0,
375
+ deviceList,
376
+ networkError: deviceList === void 0
377
+ });
378
+ if (!!processDeviceList && processDeviceList instanceof Function) {
379
+ await get().updateDeviceListPlus(deviceList);
380
+ }
381
+ },
382
+ // 处理更新的设备列表数据使其符合自己使用的习惯
383
+ async updateDeviceListPlus(devicesArr) {
384
+ const deviceListPlus = devicesArr.filter(
385
+ (item) => item.deviceKey !== void 0 && item.productKey !== void 0 && item.deviceKey !== null && item.productKey !== null
386
+ ).map((item) => processDeviceList(item));
387
+ if (!isSubScribeAllDevice) {
388
+ set({
389
+ deviceListPlus
390
+ });
391
+ return;
392
+ }
393
+ for (let i = 0; i < deviceListPlus.length; i++) {
394
+ const item = deviceListPlus[i];
395
+ get().addSubscribeDeviceList(item.productKey, item.deviceKey);
396
+ const isOnline = await getDeviceOnline({
397
+ pk: item.productKey,
398
+ dk: item.deviceKey
399
+ });
400
+ item.isOnline = isOnline;
401
+ if (!(subscribeCodeList && subscribeCodeList?.length > 0)) {
402
+ return;
403
+ }
404
+ const propertyData = await getPropertyDataListWithParams({
405
+ productKey: item.productKey,
406
+ deviceKey: item.deviceKey,
407
+ codeList: subscribeCodeList
408
+ });
409
+ for (let index = 0; index < subscribeCodeList.length; index++) {
410
+ const subscribeModelCode = subscribeCodeList[index];
411
+ if (propertyData && propertyData[subscribeModelCode]) {
412
+ deviceListPlus[i].subscribeModel[camelCase__default.default(subscribeModelCode)] = Number(
413
+ propertyData[subscribeModelCode]
414
+ );
415
+ deviceListPlus[i].subscribeModel[camelCase__default.default(subscribeModelCode) + "Id"] = Number(
416
+ propertyData[subscribeModelCode + "Id"]
417
+ );
418
+ }
419
+ }
420
+ }
421
+ set({
422
+ deviceListPlus
423
+ });
424
+ },
425
+ /**
426
+ * 更新列表中单个设备的在离线状态
427
+ * @param event
428
+ */
429
+ updateDeviceOnlineState(event) {
430
+ const deviceListPlus = [...get().deviceListPlus];
431
+ const eventDevice = typeof event?.device === "object" ? event?.device : JSON.parse(event?.device ?? "{}");
432
+ deviceListPlus.forEach((item) => {
433
+ if (item.deviceKey === eventDevice?.deviceKey && item.productKey === eventDevice?.productKey && event?.onlineState !== void 0 && !Number.isNaN(Number(event.onlineState))) {
434
+ item.isOnline = Number(event.onlineState) !== 0;
435
+ item.onlineState = Number(event.onlineState);
436
+ }
437
+ });
438
+ set({
439
+ deviceListPlus
440
+ });
441
+ },
442
+ /**
443
+ * 更新列表中单个设备的物模型
444
+ * @param deviceListPlus
445
+ */
446
+ updateDeviceDPSData(event) {
447
+ if (!isSubScribeAllDevice || !subscribeCodeList || subscribeCodeList?.length <= 0) {
448
+ return;
449
+ }
450
+ const { dps, dk, pk } = event;
451
+ if (dps === void 0 || dps === null || dk === void 0 || dk === null || pk === void 0 || pk === null) {
452
+ return;
453
+ } else {
454
+ const deviceListPlus = [...get().deviceListPlus];
455
+ deviceListPlus.forEach((device) => {
456
+ if (device.deviceKey === event.dk && device.productKey === event.pk) {
457
+ dps.map((item) => {
458
+ Object.entries(device.subscribeModel).forEach(([key, value]) => {
459
+ if (key.endsWith("Id")) {
460
+ const modelId = value;
461
+ if (modelId === item.id) {
462
+ device.subscribeModel[key] = item.value;
463
+ }
464
+ }
465
+ });
466
+ });
467
+ }
468
+ });
469
+ set({
470
+ deviceListPlus
471
+ });
472
+ }
473
+ },
474
+ /**
475
+ * 增加已订阅设备列表并订阅设备
476
+ * @param deviceList
477
+ */
478
+ addSubscribeDeviceList(pk, dk) {
479
+ const subscribeDevicesListCopy = [...get().subscribeDevicesList];
480
+ if (subscribeDevicesListCopy.find((item) => {
481
+ item.dk === dk && item.pk === pk;
482
+ }) === void 0) {
483
+ subscribeDevicesListCopy.push({ pk, dk });
484
+ subscribeDevice(pk, dk);
485
+ }
486
+ set({
487
+ subscribeDevicesList: subscribeDevicesListCopy
488
+ });
489
+ }
490
+ }));
491
+ }
492
+ return deviceListStore;
493
+ };
494
+ var getDeviceListStore = () => {
495
+ if (!deviceListStore) {
496
+ throw new Error("\u2757\u8BF7\u5148\u8C03\u7528 createDeviceListStore() \u521D\u59CB\u5316 Store");
497
+ }
498
+ return deviceListStore;
499
+ };
500
+ var getDeviceListStoreWithoutError = () => {
501
+ if (!deviceListStore) {
502
+ return null;
503
+ }
504
+ return deviceListStore;
505
+ };
506
+ var selectFromStore = (selector) => {
507
+ const store = getDeviceListStore();
508
+ return store(selector);
509
+ };
510
+ var useDeviceListStoreState = () => {
511
+ return selectFromStore((state) => state);
512
+ };
513
+ var useDeviceList = () => {
514
+ return selectFromStore((state) => state.deviceList);
515
+ };
516
+ var useDeviceListLoadMore = () => {
517
+ return selectFromStore((state) => state.loadMoreDeviceList);
518
+ };
519
+ var useDeviceListRefresh = () => {
520
+ return selectFromStore((state) => state.refreshDeviceList);
521
+ };
522
+ var getDeviceOnlineState = async ({
523
+ productKey,
524
+ deviceKey
525
+ }) => {
526
+ try {
527
+ const { onlineState } = await QuecRNDeviceModule5__default.default.getDeviceOnlineState(productKey, deviceKey);
528
+ deviceKitParamsManager.info(
529
+ "\u{1F50E}QuecRNDeviceModule.getDeviceOnlineState....",
530
+ "\u83B7\u53D6\u8BBE\u5907\u72B6\u6001 ===> onlineState:" + onlineState
531
+ );
532
+ return onlineState;
533
+ } catch (error) {
534
+ deviceKitParamsManager.error(
535
+ "\u274CQuecRNDeviceModule.getDeviceOnlineState(\u83B7\u53D6\u8BBE\u5907\u72B6\u6001\u5931\u8D25)",
536
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
537
+ );
538
+ return null;
539
+ }
540
+ };
541
+ var getDeviceConnectingState = async () => {
542
+ try {
543
+ const result = await QuecRNDeviceModule5__default.default.getDeviceConnectingState();
544
+ deviceKitParamsManager.info(
545
+ "\u{1F4F6} QuecRNDeviceModule.getDeviceConnectingState",
546
+ `\u5F53\u524D\u8FDE\u63A5\u72B6\u6001\uFF1A${result?.connectingState}`
547
+ );
548
+ return result?.connectingState;
549
+ } catch (error) {
550
+ deviceKitParamsManager.error(
551
+ "\u274C QuecRNDeviceModule.getDeviceConnectingState(\u83B7\u53D6\u8FDE\u63A5\u72B6\u6001\u5931\u8D25)",
552
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
553
+ );
554
+ throw null;
555
+ }
556
+ };
557
+ var disconnectChannel = (type) => {
558
+ try {
559
+ QuecRNDeviceModule5__default.default.disconnectChannel(type);
560
+ deviceKitParamsManager.info(
561
+ "\u{1F502} QuecRNDeviceModule.disconnectChannel",
562
+ `\u65AD\u5F00\u8BBE\u5907\u8FDE\u63A5\u901A\u9053\u6210\u529F\uFF0C\u901A\u9053\u7C7B\u578B\uFF1A${type}`
563
+ );
564
+ } catch (error) {
565
+ deviceKitParamsManager.error(
566
+ "\u274C QuecRNDeviceModule.disconnectChannel(\u65AD\u5F00\u8BBE\u5907\u8FDE\u63A5\u901A\u9053\u5931\u8D25)",
567
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
568
+ );
569
+ }
570
+ };
571
+ var connectChannel = (mode) => {
572
+ try {
573
+ QuecRNDeviceModule5__default.default.connectChannel(mode);
574
+ deviceKitParamsManager.info(
575
+ "\u{1F502} QuecRNDeviceModule.connectChannel",
576
+ `\u5EFA\u7ACB\u8BBE\u5907\u8FDE\u63A5\u901A\u9053\u6210\u529F\uFF0C\u901A\u9053\u7C7B\u578B\uFF1A${mode}`
577
+ );
578
+ } catch (error) {
579
+ deviceKitParamsManager.error(
580
+ "\u274C QuecRNDeviceModule.connectChannel(\u5EFA\u7ACB\u8BBE\u5907\u8FDE\u63A5\u901A\u9053\u5931\u8D25)",
581
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
582
+ );
583
+ }
584
+ };
585
+ var getProductDescription = async (productKey) => {
586
+ try {
587
+ const { data } = await QuecRNDeviceModule5__default.default.getProductDescription(productKey);
588
+ deviceKitParamsManager.info(
589
+ "\u{1F4D8} QuecRNDeviceModule.getProductDescription",
590
+ `\u8BF4\u660E\u4E66\u5730\u5740\uFF1A${objToStr(data)}`
591
+ );
592
+ if (data?.url === void 0 || data?.url === "") {
593
+ return null;
594
+ }
595
+ return data.url;
596
+ } catch (error) {
597
+ deviceKitParamsManager.error(
598
+ "\u274C QuecRNDeviceModule.getProductDescription(\u83B7\u53D6\u8BF4\u660E\u4E66\u5931\u8D25)",
599
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
600
+ );
601
+ return null;
602
+ }
603
+ };
604
+
605
+ // src/types/Error.ts
606
+ function createCustomError(name, defaultCode) {
607
+ return class CustomError extends Error {
608
+ constructor(code, message) {
609
+ super(message);
610
+ this.name = name;
611
+ this.code = code;
612
+ Object.setPrototypeOf(this, new.target.prototype);
613
+ }
614
+ };
615
+ }
616
+ var GetDeviceInfoError = createCustomError(
617
+ "\u{1F4FA} GetDeviceInfoError");
618
+
619
+ // src/utils/empty.ts
620
+ var EmptyARR = [null, void 0, ""];
621
+ var isEmpty = (value) => {
622
+ return EmptyARR.some((empty) => {
623
+ if (typeof empty === "object" && empty !== null) {
624
+ return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).length === 0;
625
+ }
626
+ return value === empty;
627
+ });
628
+ };
629
+
630
+ // src/utils/numberUtils.ts
631
+ var handlerNumberVal = (val, final) => {
632
+ let nextNumber = Number(val);
633
+ nextNumber = Number.isNaN(nextNumber) ? final : nextNumber;
634
+ return nextNumber;
635
+ };
636
+ var trueNumber = (val, final = 0) => {
637
+ return handlerNumberVal(val, final);
638
+ };
639
+
640
+ // src/deviceStore.ts
641
+ var initialState2 = {
642
+ device: null,
643
+ props: null,
644
+ isOnlyBle: false,
645
+ productUrl: null,
646
+ family: null,
647
+ area: null,
648
+ deviceIsEmpty: false,
649
+ deviceSate: 1,
650
+ connectingState: 0,
651
+ online: true,
652
+ wsOnline: true,
653
+ lanOnline: false,
654
+ bleOnline: false
655
+ };
656
+ var deviceStore = null;
657
+ var createDeviceStore = ({
658
+ offlineTip,
659
+ onlineTip
660
+ }) => {
661
+ if (!deviceStore) {
662
+ deviceStore = zustand.create((set, get) => ({
663
+ ...initialState2,
664
+ useSetProps: (propsSource) => {
665
+ if (isEmpty(propsSource)) {
666
+ deviceKitParamsManager.error(
667
+ "\u274C\u5904\u7406props\u5931\u8D25",
668
+ "\u5F53\u524Dprops\u6CA1\u6709\u521D\u59CB\u5316\uFF0Capp\u4F20\u5165\u7684\u4FE1\u606F\u4E3A\u7A7A props ==>" + objToStr(propsSource)
669
+ );
670
+ return null;
671
+ } else {
672
+ deviceKitParamsManager.info(" \u{1F680}\u5904\u7406props \u25B6 ", propsSource);
673
+ }
674
+ let props = typeof propsSource === "string" || typeof propsSource === "object" ? strToObj(propsSource) : null;
675
+ set({
676
+ props
677
+ });
678
+ if (props?.area) {
679
+ set({
680
+ area: props.area
681
+ });
682
+ }
683
+ if (props?.endUserId) {
684
+ set({
685
+ endUserId: props.endUserId
686
+ });
687
+ }
688
+ if (props?.userAccount) {
689
+ set({
690
+ userAccount: props.userAccount
691
+ });
692
+ }
693
+ if (props?.familyModeEnabled && props?.familyRole) {
694
+ set({
695
+ family: {
696
+ familyModeEnabled: props?.familyModeEnabled,
697
+ familyRole: props?.familyRole
698
+ }
699
+ });
700
+ }
701
+ let deviceSource = props?.device;
702
+ let device = deviceSource === void 0 ? null : strToObj(deviceSource);
703
+ if (isEmpty(device)) {
704
+ deviceKitParamsManager.error(
705
+ "\u274C\u5904\u7406device\u5931\u8D25",
706
+ "\u5F53\u524Ddevice\u6CA1\u6709\u521D\u59CB\u5316\uFF0C\u8BBE\u5907\u4FE1\u606F\u4E3A\u7A7A device ==>" + objToStr(device)
707
+ );
708
+ set({ deviceIsEmpty: true });
709
+ return props;
710
+ } else {
711
+ set({ deviceIsEmpty: false });
712
+ deviceKitParamsManager.info(" \u{1F680}\u5904\u7406device \u25B6 ", device);
713
+ get().getProductManual(device.productKey);
714
+ }
715
+ set({
716
+ device,
717
+ isOnlyBle: (device?.capabilitiesBitmask && 4) === 4 && device?.verified === "0" || device?.capabilitiesBitmask === 4
718
+ });
719
+ return props;
720
+ },
721
+ updateDevice: (device) => {
722
+ if (isEmpty(device)) {
723
+ deviceKitParamsManager.error(
724
+ "\u274C\u5904\u7406device\u5931\u8D25",
725
+ "device\u4E3A\u7A7A newDevice ==>" + objToStr(device)
726
+ );
727
+ set({ deviceIsEmpty: true });
728
+ return;
729
+ }
730
+ set({ deviceIsEmpty: false });
731
+ const newDevice = typeof device === "string" ? strToObj(device) : device;
732
+ deviceKitParamsManager.info("\u2705 \u65B0\u7684device \u25B6 ", newDevice);
733
+ set({
734
+ device: newDevice
735
+ });
736
+ get().getProductManual(newDevice.productKey);
737
+ get().getDeviceState();
738
+ },
739
+ updateDeviceName: (newName) => {
740
+ if (isEmpty(newName) || isEmpty(get().device)) {
741
+ deviceKitParamsManager.error(
742
+ "\u274C\u5904\u7406deviceName\u5931\u8D25",
743
+ "newName\u6216\u8005device\u4E3A\u7A7A newName ==>" + objToStr(newName)
744
+ );
745
+ return;
746
+ }
747
+ deviceKitParamsManager.info("\u2705 \u65B0\u7684deviceName \u25B6 ", newName);
748
+ const deviceNew = get().device;
749
+ if (deviceNew) {
750
+ deviceNew.deviceName = newName;
751
+ set({
752
+ device: deviceNew
753
+ });
754
+ }
755
+ },
756
+ getDeviceState: async () => {
757
+ try {
758
+ const { onlineState } = await QuecRNDeviceModule5__default.default.getOnlineState();
759
+ deviceKitParamsManager.info(
760
+ "\u{1F50E}QuecRNDeviceModule.getOnlineState....",
761
+ "\u83B7\u53D6\u8BBE\u5907\u72B6\u6001 ===> onlineState:" + onlineState
762
+ );
763
+ get().updateOnlineStatus(onlineState);
764
+ return onlineState;
765
+ } catch (error) {
766
+ deviceKitParamsManager.error("\u274C\u83B7\u53D6\u8BBE\u5907\u72B6\u6001\u5931\u8D25", "\u5931\u8D25\u539F\u56E0===> " + objToStr(error));
767
+ return null;
768
+ }
769
+ },
770
+ updateOnlineStatus: (deviceSate) => {
771
+ deviceSate = Number(deviceSate);
772
+ let nextOnlineState = trueNumber(deviceSate, 0 /* ALL_OFFLINE */);
773
+ if (nextOnlineState === get().deviceSate) {
774
+ return;
775
+ }
776
+ const online = nextOnlineState !== 0 /* ALL_OFFLINE */;
777
+ if (!online) {
778
+ offlineTip && offlineTip();
779
+ } else {
780
+ onlineTip && onlineTip();
781
+ }
782
+ set({
783
+ deviceSate,
784
+ online,
785
+ wsOnline: (deviceSate & 1 /* WS_ONLINE */) === 1 /* WS_ONLINE */,
786
+ lanOnline: (deviceSate & 2 /* WIFI_ONLINE */) === 2 /* WIFI_ONLINE */,
787
+ bleOnline: (deviceSate & 4 /* BLE_ONLINE */) === 4 /* BLE_ONLINE */
788
+ });
789
+ },
790
+ getDeviceConnectingState: async () => {
791
+ const connectingState = await getDeviceConnectingState();
792
+ set({
793
+ connectingState: connectingState ?? 0
794
+ });
795
+ },
796
+ updateConnectingState: (connectingState) => {
797
+ set({
798
+ connectingState
799
+ });
800
+ },
801
+ getProductManual: async (productKey) => {
802
+ const finalProductKey = productKey ?? get().device?.productKey;
803
+ if (finalProductKey === void 0) {
804
+ deviceKitParamsManager.error(
805
+ "\u{1F4D6}getProductManual",
806
+ `\u274C getProductDescription error====\uFF08\u83B7\u53D6\u8BF4\u660E\u4E66\u9519\u8BEF\uFF09==> there is not productKey(value:${productKey}) for getProductManual params`
807
+ );
808
+ return;
809
+ }
810
+ const url = await getProductDescription(finalProductKey);
811
+ set({ productUrl: url });
812
+ },
813
+ checkCurrentDeviceExist: async () => {
814
+ const currentDevice = get().device;
815
+ deviceKitParamsManager.info(
816
+ "\u{1F4FA} checkCurrentDeviceExist device.name \u25B6",
817
+ currentDevice?.deviceName
818
+ );
819
+ if (!currentDevice) {
820
+ deviceKitParamsManager.error("\u{1F4FA} \u5F53\u524D\u6CA1\u6709\u9009\u4E2D\u7684\u8BBE\u5907", currentDevice);
821
+ return void 0;
822
+ }
823
+ try {
824
+ const res = currentDevice?.isShared === true ? await get().getShareDeviceInfo() : await get().getDeviceInfo();
825
+ const exist = !!res;
826
+ deviceKitParamsManager.info("\u{1F4FA} \u5F53\u524D\u8BBE\u5907\u662F\u5426\u5B58\u5728 \u25B6", exist);
827
+ return exist;
828
+ } catch (e) {
829
+ if (e instanceof GetDeviceInfoError) {
830
+ switch (e.code) {
831
+ case "request_failed":
832
+ case "no_device":
833
+ deviceKitParamsManager.info("\u{1F4FA} \u8BBE\u5907\u4E0D\u5B58\u5728\u6216\u8BF7\u6C42\u5931\u8D25\uFF0C\u5224\u5B9A\u4E3A\u4E0D\u5B58\u5728", e.message);
834
+ return false;
835
+ case "invalid_param":
836
+ deviceKitParamsManager.error("\u{1F4FA} \u53C2\u6570\u65E0\u6548\uFF0C\u65E0\u6CD5\u5224\u65AD\u8BBE\u5907\u662F\u5426\u5B58\u5728", e.message);
837
+ return void 0;
838
+ default:
839
+ deviceKitParamsManager.error("\u{1F4FA} \u672A\u77E5\u9519\u8BEF\u7801", e);
840
+ return void 0;
841
+ }
842
+ } else {
843
+ deviceKitParamsManager.error("\u{1F4FA} \u975E\u9884\u671F\u9519\u8BEF", e);
844
+ return void 0;
845
+ }
846
+ }
847
+ },
848
+ getDeviceInfo: async (deviceKey, productKey) => {
849
+ const finalDeviceKey = deviceKey || get().device?.deviceKey;
850
+ const finalProductKey = productKey || get().device?.productKey;
851
+ deviceKitParamsManager.info(
852
+ "\u{1F4FA} getDeviceInfoByDeviceKey params \u25B6",
853
+ `${finalDeviceKey}_${finalProductKey}`
854
+ );
855
+ if (!finalDeviceKey || !finalProductKey) {
856
+ throw new GetDeviceInfoError("invalid_param", "deviceKey \u6216 productKey \u4E0D\u5B8C\u6574");
857
+ }
858
+ const [err, res] = await to_default(
859
+ QuecRNDeviceModule5__default.default.getDeviceInfoByDeviceKey(finalDeviceKey, finalProductKey)
860
+ );
861
+ if (err) {
862
+ throw new GetDeviceInfoError(
863
+ "no_device",
864
+ `\u8BF7\u6C42\u5931\u8D25,\u8BBE\u5907\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u79FB\u9664: ${err.message || err}`
865
+ );
866
+ }
867
+ if (!res) {
868
+ throw new GetDeviceInfoError("no_device", "\u8BBE\u5907\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u79FB\u9664");
869
+ }
870
+ deviceKitParamsManager.info("\u{1F4FA} getDeviceInfoByDeviceKey res \u25B6", res);
871
+ return res;
872
+ },
873
+ getShareDeviceInfo: async (shareCode) => {
874
+ deviceKitParamsManager.info("\u{1F4FA} getShareDeviceInfo shareCode \u25B6", shareCode);
875
+ const finalShareCode = shareCode || get().device?.shareCode;
876
+ if (!finalShareCode) {
877
+ throw new GetDeviceInfoError("invalid_param", "\u53C2\u6570\u65E0\u6548\uFF1A\u7F3A\u5C11 shareCode");
878
+ }
879
+ const [err, res] = await to_default(
880
+ QuecRNDeviceModule5__default.default.getDeviceInfoByShareCode(finalShareCode)
881
+ );
882
+ if (err) {
883
+ throw new GetDeviceInfoError(
884
+ "no_device",
885
+ `\u8BF7\u6C42\u5931\u8D25,\u8BBE\u5907\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u79FB\u9664: ${err.message || err}`
886
+ );
887
+ }
888
+ if (!res) {
889
+ throw new GetDeviceInfoError("no_device", "\u8BBE\u5907\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u79FB\u9664");
890
+ }
891
+ deviceKitParamsManager.info("\u{1F4FA} getShareDeviceInfo res \u25B6", res);
892
+ return res;
893
+ }
894
+ }));
895
+ }
896
+ return deviceStore;
897
+ };
898
+ var getDeviceStore = () => {
899
+ if (!deviceStore) {
900
+ throw new Error("\u2757\u8BF7\u5148\u8C03\u7528 createDeviceStore() \u521D\u59CB\u5316 deviceStore");
901
+ }
902
+ return deviceStore;
903
+ };
904
+ var getDeviceStoreWithoutError = () => {
905
+ if (!deviceStore) {
906
+ return null;
907
+ }
908
+ return deviceStore;
909
+ };
910
+ var selectFromStore2 = (selector) => {
911
+ const store = getDeviceStore();
912
+ return store(selector);
913
+ };
914
+ var useDeviceStoreState = () => selectFromStore2((state) => state);
915
+ var useDevice = () => selectFromStore2((state) => state.device);
916
+ var useDeviceProps = () => selectFromStore2((state) => state.props);
917
+ var useDeviceFamily = () => selectFromStore2((state) => state.family);
918
+ var useDeviceArea = () => selectFromStore2((state) => state.area);
919
+ var useDeviceProductUrl = () => selectFromStore2((state) => state.productUrl);
920
+ var useEndUserId = () => selectFromStore2((state) => state.endUserId);
921
+ var useUserAccount = () => selectFromStore2((state) => state.userAccount);
922
+ var useDeviceIsOnlyBle = () => selectFromStore2((state) => state.isOnlyBle);
923
+ var useDeviceOnline = () => selectFromStore2((state) => state.online);
924
+ var useDeviceState = () => selectFromStore2((state) => state.deviceSate);
925
+ var useDeviceWsOnline = () => selectFromStore2((state) => state.wsOnline);
926
+ var useDeviceLanOnline = () => selectFromStore2((state) => state.lanOnline);
927
+ var useDeviceBleOnline = () => selectFromStore2((state) => state.bleOnline);
928
+ var useDeviceIsConnecting = () => selectFromStore2((state) => Number(state.connectingState) !== 0);
929
+ var useGetDeviceStatus = () => selectFromStore2((state) => state.getDeviceState);
930
+ var useUpdateDeviceConnectingState = () => selectFromStore2((state) => state.updateConnectingState);
931
+ var useSetProps = () => selectFromStore2((state) => state.useSetProps);
932
+ var useUpdateDevice = () => selectFromStore2((state) => state.updateDevice);
933
+ var useUpdateDeviceName = () => selectFromStore2((state) => state.updateDeviceName);
934
+ var useUpdateOnlineStatus = () => selectFromStore2((state) => state.updateOnlineStatus);
935
+ var useCheckCurrentDeviceExist = () => selectFromStore2((state) => state.checkCurrentDeviceExist);
936
+ var EVENT_TYPE_DEVICE_ONLINE = "onDeviceOnlineState";
937
+ var EVENT_TYPE_DEVICE_CONNECTING = "onDeviceConnectingState";
938
+ var eventEmitter = new reactNative.NativeEventEmitter(reactNative.NativeModules.QuecRNDeviceModule);
939
+ var onDeviceStateUpdateListener;
940
+ var onDeviceConnectingStateUpdateListener;
941
+ var useInitUpdateDeviceStateEvent = (updateDeviceStateCallback, updateDeviceConnectingStateCallback) => {
942
+ const deviceListStore2 = getDeviceListStoreWithoutError();
943
+ const deviceListStoreState = deviceListStore2 ? deviceListStore2((state) => state) : null;
944
+ if (deviceListStoreState === null) {
945
+ deviceKitParamsManager.info(
946
+ "PS\uFF1A\u5982\u679C\u4F60\u4E0D\u4F7F\u7528\u8BBE\u5907\u4FE1\u606F\u72B6\u6001\u7BA1\u7406\uFF0C\u8BF7\u5FFD\u7565\u6B64\u8B66\u544A",
947
+ "WARNING \u4F60\u672A\u521D\u59CB\u5316 createDeviceListStore "
948
+ );
949
+ }
950
+ const updateDeviceOnlineState = deviceListStoreState?.updateDeviceOnlineState ?? null;
951
+ const deviceStore2 = getDeviceStoreWithoutError();
952
+ const deviceStoreState = deviceStore2 ? deviceStore2((state) => state) : null;
953
+ if (deviceStoreState === null) {
954
+ deviceKitParamsManager.info(
955
+ "PS\uFF1A\u5982\u679C\u4F60\u4E0D\u4F7F\u7528\u8BBE\u5907\u5217\u8868\u4FE1\u606F\u72B6\u6001\u7BA1\u7406\uFF0C\u8BF7\u5FFD\u7565\u6B64\u8B66\u544A",
956
+ "WARNING \u4F60\u672A\u521D\u59CB\u5316 createDeviceStore "
957
+ );
958
+ }
959
+ const updateOnlineStatus = deviceStoreState?.updateOnlineStatus ?? null;
960
+ const updateConnectingState = deviceStoreState?.updateConnectingState ?? null;
961
+ const device = deviceStoreState?.device ?? null;
962
+ react.useEffect(() => {
963
+ removeListener(onDeviceStateUpdateListener);
964
+ onDeviceStateUpdateListener = eventEmitter.addListener(
965
+ EVENT_TYPE_DEVICE_ONLINE,
966
+ (event) => {
967
+ deviceKitParamsManager.info(
968
+ EVENT_TYPE_DEVICE_ONLINE,
969
+ " \u{1F91D} ==OnlineState==" + objToStr(event)
970
+ );
971
+ if (isEmpty(event)) {
972
+ return;
973
+ }
974
+ const eventDevice = strToObj(event.device);
975
+ if (device?.deviceKey === eventDevice?.deviceKey && device?.productKey === eventDevice?.productKey && updateOnlineStatus) {
976
+ updateOnlineStatus(event.onlineState);
977
+ }
978
+ if (updateDeviceOnlineState) {
979
+ updateDeviceOnlineState(event);
980
+ }
981
+ updateDeviceStateCallback && updateDeviceStateCallback(event);
982
+ }
983
+ );
984
+ return () => {
985
+ removeListener(onDeviceStateUpdateListener);
986
+ onDeviceStateUpdateListener = null;
987
+ };
988
+ }, [updateDeviceOnlineState, updateOnlineStatus, device]);
989
+ react.useEffect(() => {
990
+ removeListener(onDeviceConnectingStateUpdateListener);
991
+ onDeviceConnectingStateUpdateListener = eventEmitter.addListener(
992
+ EVENT_TYPE_DEVICE_ONLINE,
993
+ (event) => {
994
+ deviceKitParamsManager.info(
995
+ EVENT_TYPE_DEVICE_CONNECTING,
996
+ " \u26A1 ==ConnectingState==" + objToStr(event)
997
+ );
998
+ const connectingState = isNaN(event?.connectingState) ? 0 : Number(event?.connectingState);
999
+ updateConnectingState && updateConnectingState(connectingState);
1000
+ updateDeviceConnectingStateCallback && updateDeviceConnectingStateCallback(event);
1001
+ }
1002
+ );
1003
+ return () => {
1004
+ removeListener(onDeviceConnectingStateUpdateListener);
1005
+ onDeviceConnectingStateUpdateListener = null;
1006
+ };
1007
+ }, [updateConnectingState, updateDeviceConnectingStateCallback]);
1008
+ };
1009
+ var removeListener = (listener) => {
1010
+ if (listener) {
1011
+ listener.remove();
1012
+ listener = void 0;
1013
+ }
1014
+ };
1015
+
1016
+ // src/device-list-utils.ts
1017
+ var QuecRNBusinessPanelModule = {
1018
+ changeBusinessPanel: (params) => {
1019
+ console.warn("QuecRNBusinessPanelModule.changeBusinessPanel is not available", params);
1020
+ },
1021
+ switchBusinessPanel: () => {
1022
+ console.warn("QuecRNBusinessPanelModule.switchBusinessPanel is not available");
1023
+ }
1024
+ };
1025
+ var changeDevicePanel = (newDevice) => {
1026
+ deviceKitParamsManager.info(
1027
+ "changeDevicePanel",
1028
+ "__\u66F4\u6362\u8BBE\u5907\u9762\u677F => \u8BBE\u5907\uFF1A" + newDevice.deviceName
1029
+ );
1030
+ QuecRNBusinessPanelModule.changeBusinessPanel({
1031
+ device: JSON.stringify(newDevice)
1032
+ });
1033
+ };
1034
+ var checkoutEmptyPanel = () => {
1035
+ deviceKitParamsManager.info("checkoutEmptyPanel", "__\u66F4\u6362\u6258\u5E95\u9762\u677F");
1036
+ QuecRNBusinessPanelModule.switchBusinessPanel();
1037
+ };
1038
+
1039
+ // src/initDeviceListUpdate.ts
1040
+ var EVENT_TYPE_REFRESH_DEVICE_LIST = "QuecRefreshDeviceList";
1041
+ var refreshDeviceListListener;
1042
+ var panelEventEmitter = new reactNative.NativeEventEmitter(reactNative.NativeModules.QuecRNBusinessPanelModule);
1043
+ var useInitDeviceListUpdateEvent = (params) => {
1044
+ const {
1045
+ refreshDeviceListEventCallback,
1046
+ refreshDeviceListSuccessCallback,
1047
+ enableAutoCheckoutDevice
1048
+ } = params ?? {};
1049
+ const deviceListStore2 = getDeviceListStoreWithoutError();
1050
+ const deviceListStoreState = deviceListStore2 ? deviceListStore2((state) => state) : null;
1051
+ if (deviceListStoreState === null) {
1052
+ deviceKitParamsManager.info(
1053
+ "PS\uFF1A\u5982\u679C\u4F60\u4E0D\u4F7F\u7528\u8BBE\u5907\u5217\u8868\u4FE1\u606F\u72B6\u6001\u7BA1\u7406\uFF0C\u8BF7\u5FFD\u7565\u6B64\u8B66\u544A",
1054
+ "WARNING \u4F60\u672A\u521D\u59CB\u5316 createDeviceListStore "
1055
+ );
1056
+ }
1057
+ const deviceStore2 = getDeviceStoreWithoutError();
1058
+ const deviceStoreState = deviceStore2 ? deviceStore2((state) => state) : null;
1059
+ if (deviceStoreState === null) {
1060
+ deviceKitParamsManager.info(
1061
+ "PS\uFF1A\u5982\u679C\u4F60\u4E0D\u4F7F\u7528\u8BBE\u5907\u4FE1\u606F\u72B6\u6001\u7BA1\u7406\uFF0C\u8BF7\u5FFD\u7565\u6B64\u8B66\u544A",
1062
+ "WARNING \u4F60\u672A\u521D\u59CB\u5316 createDeviceStore "
1063
+ );
1064
+ }
1065
+ const listIsEmpty = deviceListStoreState?.listIsEmpty ?? null;
1066
+ const refreshDeviceList = deviceListStoreState?.refreshDeviceList ?? null;
1067
+ const device = deviceStoreState?.device ?? null;
1068
+ const deviceIsEmpty = deviceStoreState?.deviceIsEmpty ?? null;
1069
+ const checkCurrentDeviceExist = deviceStoreState?.checkCurrentDeviceExist ?? null;
1070
+ const [onceCheckNowDevice, setOnceCheckNowDevice] = react.useState(true);
1071
+ react.useEffect(() => {
1072
+ removeListener2(refreshDeviceListListener);
1073
+ refreshDeviceListListener = panelEventEmitter.addListener(
1074
+ EVENT_TYPE_REFRESH_DEVICE_LIST,
1075
+ (event) => {
1076
+ deviceKitParamsManager.info(EVENT_TYPE_REFRESH_DEVICE_LIST, "==refresh device list \u{1F504}==");
1077
+ refreshDeviceList && refreshDeviceList((list) => {
1078
+ refreshDeviceListSuccessCallback && refreshDeviceListSuccessCallback(list);
1079
+ if (checkCurrentDeviceExist && enableAutoCheckoutDevice) {
1080
+ checkCurrentDeviceExist().then((res) => {
1081
+ if (res === false && list?.length > 0) {
1082
+ changeDevicePanel(list[0]);
1083
+ }
1084
+ });
1085
+ }
1086
+ });
1087
+ refreshDeviceListEventCallback && refreshDeviceListEventCallback(event);
1088
+ }
1089
+ );
1090
+ return () => {
1091
+ removeListener2(refreshDeviceListListener);
1092
+ refreshDeviceListListener = null;
1093
+ };
1094
+ }, [refreshDeviceList]);
1095
+ react.useEffect(() => {
1096
+ if (!enableAutoCheckoutDevice) return;
1097
+ if (deviceIsEmpty === true || listIsEmpty === true) {
1098
+ checkoutEmptyPanel();
1099
+ }
1100
+ }, [deviceIsEmpty, listIsEmpty, enableAutoCheckoutDevice]);
1101
+ react.useEffect(() => {
1102
+ if (!enableAutoCheckoutDevice) return;
1103
+ if (device && onceCheckNowDevice) {
1104
+ setOnceCheckNowDevice(false);
1105
+ if (checkCurrentDeviceExist && enableAutoCheckoutDevice) {
1106
+ checkCurrentDeviceExist().then((res) => {
1107
+ if (res === false) {
1108
+ refreshDeviceList && refreshDeviceList((list) => {
1109
+ if (list[0]) {
1110
+ changeDevicePanel(list[0]);
1111
+ }
1112
+ });
1113
+ }
1114
+ });
1115
+ }
1116
+ }
1117
+ }, [device, onceCheckNowDevice, enableAutoCheckoutDevice]);
1118
+ };
1119
+ var removeListener2 = (listener) => {
1120
+ if (listener) {
1121
+ listener.remove();
1122
+ listener = void 0;
1123
+ }
1124
+ };
1125
+ var EVENT_TYPE_REFRESH_DEVICE = "QuecRefreshDeviceInfo";
1126
+ var refreshDeviceListListener2;
1127
+ var panelEventEmitter2 = new reactNative.NativeEventEmitter(reactNative.NativeModules.QuecRNBusinessPanelModule);
1128
+ var useInitDeviceInfoUpdateEvent = (refreshDeviceEventCallback) => {
1129
+ const deviceStore2 = getDeviceStoreWithoutError();
1130
+ const deviceStoreState = deviceStore2 ? deviceStore2((state) => state) : null;
1131
+ if (deviceStoreState === null) {
1132
+ deviceKitParamsManager.info(
1133
+ "PS\uFF1A\u5982\u679C\u4F60\u4E0D\u4F7F\u7528\u8BBE\u5907\u5217\u8868\u4FE1\u606F\u72B6\u6001\u7BA1\u7406\uFF0C\u8BF7\u5FFD\u7565\u6B64\u8B66\u544A",
1134
+ "WARNING \u4F60\u672A\u521D\u59CB\u5316 createDeviceStore "
1135
+ );
1136
+ }
1137
+ const updateDevice = deviceStoreState?.updateDevice ?? null;
1138
+ react.useEffect(() => {
1139
+ removeListener3(refreshDeviceListListener2);
1140
+ refreshDeviceListListener2 = panelEventEmitter2.addListener(
1141
+ EVENT_TYPE_REFRESH_DEVICE,
1142
+ (e) => {
1143
+ deviceKitParamsManager.info(EVENT_TYPE_REFRESH_DEVICE, "\u{1F4DE} ==refresh device info \u{1F504}==");
1144
+ let newDevice = {};
1145
+ try {
1146
+ newDevice = typeof e.device === "string" ? JSON.parse(e.device) : e.device;
1147
+ } catch (error) {
1148
+ deviceKitParamsManager.info(
1149
+ EVENT_TYPE_REFRESH_DEVICE + " \u{1F4DE} ==refresh device info get new device info ERROR \u274C==",
1150
+ error
1151
+ );
1152
+ }
1153
+ updateDevice && updateDevice(newDevice);
1154
+ refreshDeviceEventCallback && refreshDeviceEventCallback(e);
1155
+ }
1156
+ );
1157
+ return () => {
1158
+ removeListener3(refreshDeviceListListener2);
1159
+ refreshDeviceListListener2 = null;
1160
+ };
1161
+ }, [updateDevice]);
1162
+ };
1163
+ var removeListener3 = (listener) => {
1164
+ if (listener) {
1165
+ listener.remove();
1166
+ listener = void 0;
1167
+ }
1168
+ };
1169
+ var setOfflineReminder = async ({
1170
+ enableOfflineReminder,
1171
+ deviceKey,
1172
+ productKey
1173
+ }) => {
1174
+ try {
1175
+ await QuecRNDeviceModule5__default.default.setOfflineReminder(enableOfflineReminder, productKey, deviceKey);
1176
+ deviceKitParamsManager.info("\u{1F50E} QuecRNDeviceModule.setOfflineReminder....", "\u8BBE\u7F6E\u79BB\u7EBF\u63D0\u9192\u5F00\u5173");
1177
+ } catch (error) {
1178
+ deviceKitParamsManager.error(
1179
+ "\u274C QuecRNDeviceModule.setOfflineReminder(\u83B7\u53D6\u8BBE\u5907\u72B6\u6001\u5931\u8D25)",
1180
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1181
+ );
1182
+ }
1183
+ };
1184
+ var getOfflineReminderInfo = async ({
1185
+ productKey,
1186
+ deviceKey
1187
+ }) => {
1188
+ try {
1189
+ const result = await QuecRNDeviceModule5__default.default.getOfflineReminderInfo(productKey, deviceKey);
1190
+ deviceKitParamsManager.info("\u{1F50D} QuecRNDeviceModule.getOfflineReminderInfo", result);
1191
+ return +result?.data === 1;
1192
+ } catch (error) {
1193
+ deviceKitParamsManager.error(
1194
+ "\u274C QuecRNDeviceModule.getOfflineReminderInfo(\u67E5\u8BE2\u5931\u8D25)",
1195
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1196
+ );
1197
+ throw false;
1198
+ }
1199
+ };
1200
+ var checkDeviceUpdatePlan = async (device) => {
1201
+ try {
1202
+ await QuecRNDeviceModule5__default.default.checkDeviceUpdatePlan(device);
1203
+ deviceKitParamsManager.info("\u{1F50D} QuecRNDeviceModule.checkDeviceUpdatePlan", "\u6709\u5347\u7EA7\u8BA1\u5212");
1204
+ return true;
1205
+ } catch (error) {
1206
+ deviceKitParamsManager.info("\u{1F50D} QuecRNDeviceModule.checkDeviceUpdatePlan", "\u65E0\u5347\u7EA7\u8BA1\u5212");
1207
+ throw false;
1208
+ }
1209
+ };
1210
+ var openDeviceOTAPage = async ({
1211
+ productKey,
1212
+ deviceKey
1213
+ }) => {
1214
+ try {
1215
+ await QuecRNDeviceModule5__default.default.openDeviceOTAPage(productKey, deviceKey);
1216
+ deviceKitParamsManager.info("\u{1F4C2} QuecRNDeviceModule.openDeviceOTAPage", "\u5DF2\u6253\u5F00\u8BBE\u5907OTA\u8BE6\u60C5\u9875");
1217
+ } catch (error) {
1218
+ deviceKitParamsManager.error(
1219
+ "\u274C QuecRNDeviceModule.openDeviceOTAPage(\u6253\u5F00\u5931\u8D25)",
1220
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1221
+ );
1222
+ throw error;
1223
+ }
1224
+ };
1225
+ var getTimeDifferenceWithGMT = async () => {
1226
+ try {
1227
+ const result = await QuecRNDeviceModule5__default.default.getTimeDifferenceWithGMT();
1228
+ deviceKitParamsManager.info(
1229
+ "\u{1F552} QuecRNDeviceModule.getTimeDifferenceWithGMT(\u83B7\u53D6\u5F53\u524D\u624B\u673A\u8BBE\u7F6E\u7684\u65F6\u533A\u4E0E GMT \u7684\u5DEE\u503C) ==>",
1230
+ result
1231
+ );
1232
+ return result;
1233
+ } catch (error) {
1234
+ deviceKitParamsManager.error(
1235
+ "\u274C QuecRNDeviceModule.getTimeDifferenceWithGMT(\u83B7\u53D6\u5F53\u524D\u624B\u673A\u8BBE\u7F6E\u7684\u65F6\u533A\u4E0E GMT \u7684\u5DEE\u503C\u5931\u8D25) ==>",
1236
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1237
+ );
1238
+ throw error;
1239
+ }
1240
+ };
1241
+ var getDeviceTimeZone = async ({
1242
+ productKey,
1243
+ deviceKey
1244
+ }) => {
1245
+ try {
1246
+ const result = await QuecRNDeviceModule5__default.default.getDeviceTimeZone(productKey, deviceKey);
1247
+ deviceKitParamsManager.info(
1248
+ "\u{1F30D} QuecRNDeviceModule.getDeviceTimeZone(\u83B7\u53D6\u8BBE\u5907\u8BBE\u7F6E\u7684\u65F6\u533A) ==>",
1249
+ result
1250
+ );
1251
+ return result;
1252
+ } catch (error) {
1253
+ deviceKitParamsManager.error(
1254
+ "\u274C QuecRNDeviceModule.getDeviceTimeZone(\u83B7\u53D6\u8BBE\u5907\u8BBE\u7F6E\u7684\u65F6\u533A\u5931\u8D25) ==>",
1255
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1256
+ );
1257
+ throw error;
1258
+ }
1259
+ };
1260
+ var setDeviceTimeZone = async ({
1261
+ productKey,
1262
+ deviceKey,
1263
+ timezone
1264
+ }) => {
1265
+ try {
1266
+ await QuecRNDeviceModule5__default.default.setDeviceTimeZone(productKey, deviceKey, timezone);
1267
+ deviceKitParamsManager.info(
1268
+ "\u2705 QuecRNDeviceModule.setDeviceTimeZone",
1269
+ `\u5DF2\u8BBE\u7F6E\u65F6\u533A\u4E3A ${timezone}`
1270
+ );
1271
+ } catch (error) {
1272
+ deviceKitParamsManager.error(
1273
+ "\u274C QuecRNDeviceModule.setDeviceTimeZone(\u8BBE\u7F6E\u5931\u8D25)",
1274
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1275
+ );
1276
+ throw error;
1277
+ }
1278
+ };
1279
+ var timeZoneSyncForBleDevice = async ({
1280
+ productKey,
1281
+ deviceKey
1282
+ }) => {
1283
+ try {
1284
+ await QuecRNDeviceModule5__default.default.timeZoneSync(productKey, deviceKey);
1285
+ deviceKitParamsManager.info(
1286
+ "\u23F1\uFE0F QuecRNDeviceModule.timeZoneSync",
1287
+ `\u8BBE\u5907\u5DF2\u6821\u65F6\uFF08productKey: ${productKey}, deviceKey: ${deviceKey}\uFF09`
1288
+ );
1289
+ } catch (error) {
1290
+ deviceKitParamsManager.error(
1291
+ "\u274C QuecRNDeviceModule.timeZoneSync(\u8BBE\u5907\u6821\u65F6\u5931\u8D25)",
1292
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1293
+ );
1294
+ throw error;
1295
+ }
1296
+ };
1297
+ var unbindBleDevice = async ({
1298
+ productKey,
1299
+ deviceKey,
1300
+ isInit,
1301
+ random,
1302
+ pureBtResetCredentials
1303
+ }) => {
1304
+ try {
1305
+ await QuecRNDeviceModule5__default.default.unbindlingPureBtDevice(
1306
+ productKey,
1307
+ deviceKey,
1308
+ isInit,
1309
+ random,
1310
+ pureBtResetCredentials
1311
+ );
1312
+ deviceKitParamsManager.info(
1313
+ "\u{1F513} QuecRNDeviceModule.unbindlingPureBtDevice",
1314
+ `\u89E3\u7ED1\u6210\u529F\uFF08productKey: ${productKey}, deviceKey: ${deviceKey}\uFF09`
1315
+ );
1316
+ } catch (error) {
1317
+ deviceKitParamsManager.error(
1318
+ "\u274C QuecRNDeviceModule.unbindlingPureBtDevice(\u89E3\u7ED1\u5931\u8D25)",
1319
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1320
+ );
1321
+ throw error;
1322
+ }
1323
+ };
1324
+ var unbindShareDevice = async ({ shareCode }) => {
1325
+ try {
1326
+ await QuecRNDeviceModule5__default.default.unShareDeviceByShareUserWithShareCode(shareCode);
1327
+ deviceKitParamsManager.info(
1328
+ "\u{1F513} QuecRNDeviceModule.unShareDeviceByShareUserWithShareCode",
1329
+ `\u89E3\u7ED1\u6210\u529F\uFF08shareCode: ${shareCode}\uFF09`
1330
+ );
1331
+ } catch (error) {
1332
+ deviceKitParamsManager.error(
1333
+ "\u274C QuecRNDeviceModule.unShareDeviceByShareUserWithShareCode(\u89E3\u7ED1\u5931\u8D25)",
1334
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1335
+ );
1336
+ throw error;
1337
+ }
1338
+ };
1339
+ var unbindDevice = async ({
1340
+ deviceKey,
1341
+ productKey
1342
+ }) => {
1343
+ try {
1344
+ await QuecRNDeviceModule5__default.default.unbindDeviceWithDeviceKey(deviceKey, productKey);
1345
+ deviceKitParamsManager.info(
1346
+ "\u{1F513} QuecRNDeviceModule.unbindDeviceWithDeviceKey",
1347
+ `\u89E3\u7ED1\u6210\u529F\uFF08deviceKey: ${deviceKey}, productKey: ${productKey}\uFF09`
1348
+ );
1349
+ } catch (error) {
1350
+ deviceKitParamsManager.error(
1351
+ "\u274C QuecRNDeviceModule.unbindDeviceWithDeviceKey(\u89E3\u7ED1\u5931\u8D25)",
1352
+ "\u5931\u8D25\u539F\u56E0===> " + objToStr(error)
1353
+ );
1354
+ throw error;
1355
+ }
1356
+ };
1357
+
1358
+ exports.DEVICE_ACCESS_TYPE_DIRECTLY = DEVICE_ACCESS_TYPE_DIRECTLY;
1359
+ exports.DEVICE_ACCESS_TYPE_GATEWAY = DEVICE_ACCESS_TYPE_GATEWAY;
1360
+ exports.DEVICE_ACCESS_TYPE_GATEWAY_CHILD = DEVICE_ACCESS_TYPE_GATEWAY_CHILD;
1361
+ exports.DEVICE_NAME_MAX_LENGTH = DEVICE_NAME_MAX_LENGTH;
1362
+ exports.DEVICE_TYPE_BIND = DEVICE_TYPE_BIND;
1363
+ exports.DEVICE_TYPE_SHARE = DEVICE_TYPE_SHARE;
1364
+ exports.EVENT_TYPE_DEVICE_CONNECTING = EVENT_TYPE_DEVICE_CONNECTING;
1365
+ exports.EVENT_TYPE_DEVICE_ONLINE = EVENT_TYPE_DEVICE_ONLINE;
1366
+ exports.EVENT_TYPE_REFRESH_DEVICE = EVENT_TYPE_REFRESH_DEVICE;
1367
+ exports.EVENT_TYPE_REFRESH_DEVICE_LIST = EVENT_TYPE_REFRESH_DEVICE_LIST;
1368
+ exports.LOADING_SEND_TIMEOUT = LOADING_SEND_TIMEOUT;
1369
+ exports.NOT_CONNECTING = NOT_CONNECTING;
1370
+ exports.changeDevicePanel = changeDevicePanel;
1371
+ exports.checkDeviceUpdatePlan = checkDeviceUpdatePlan;
1372
+ exports.checkoutEmptyPanel = checkoutEmptyPanel;
1373
+ exports.connectChannel = connectChannel;
1374
+ exports.createDeviceListStore = createDeviceListStore;
1375
+ exports.createDeviceStore = createDeviceStore;
1376
+ exports.deviceKitParamsManager = deviceKitParamsManager;
1377
+ exports.disconnectChannel = disconnectChannel;
1378
+ exports.getDeviceConnectingState = getDeviceConnectingState;
1379
+ exports.getDeviceListStore = getDeviceListStore;
1380
+ exports.getDeviceListStoreWithoutError = getDeviceListStoreWithoutError;
1381
+ exports.getDeviceOnlineState = getDeviceOnlineState;
1382
+ exports.getDeviceStore = getDeviceStore;
1383
+ exports.getDeviceStoreWithoutError = getDeviceStoreWithoutError;
1384
+ exports.getDeviceTimeZone = getDeviceTimeZone;
1385
+ exports.getOfflineReminderInfo = getOfflineReminderInfo;
1386
+ exports.getProductDescription = getProductDescription;
1387
+ exports.getTimeDifferenceWithGMT = getTimeDifferenceWithGMT;
1388
+ exports.onlineStatus = onlineStatus;
1389
+ exports.openDeviceOTAPage = openDeviceOTAPage;
1390
+ exports.setDeviceTimeZone = setDeviceTimeZone;
1391
+ exports.setOfflineReminder = setOfflineReminder;
1392
+ exports.timeZoneSyncForBleDevice = timeZoneSyncForBleDevice;
1393
+ exports.unbindBleDevice = unbindBleDevice;
1394
+ exports.unbindDevice = unbindDevice;
1395
+ exports.unbindShareDevice = unbindShareDevice;
1396
+ exports.useCheckCurrentDeviceExist = useCheckCurrentDeviceExist;
1397
+ exports.useDevice = useDevice;
1398
+ exports.useDeviceArea = useDeviceArea;
1399
+ exports.useDeviceBleOnline = useDeviceBleOnline;
1400
+ exports.useDeviceFamily = useDeviceFamily;
1401
+ exports.useDeviceIsConnecting = useDeviceIsConnecting;
1402
+ exports.useDeviceIsOnlyBle = useDeviceIsOnlyBle;
1403
+ exports.useDeviceLanOnline = useDeviceLanOnline;
1404
+ exports.useDeviceList = useDeviceList;
1405
+ exports.useDeviceListLoadMore = useDeviceListLoadMore;
1406
+ exports.useDeviceListRefresh = useDeviceListRefresh;
1407
+ exports.useDeviceListStoreState = useDeviceListStoreState;
1408
+ exports.useDeviceOnline = useDeviceOnline;
1409
+ exports.useDeviceProductUrl = useDeviceProductUrl;
1410
+ exports.useDeviceProps = useDeviceProps;
1411
+ exports.useDeviceState = useDeviceState;
1412
+ exports.useDeviceStoreState = useDeviceStoreState;
1413
+ exports.useDeviceWsOnline = useDeviceWsOnline;
1414
+ exports.useEndUserId = useEndUserId;
1415
+ exports.useGetDeviceStatus = useGetDeviceStatus;
1416
+ exports.useInitDeviceInfoUpdateEvent = useInitDeviceInfoUpdateEvent;
1417
+ exports.useInitDeviceListUpdateEvent = useInitDeviceListUpdateEvent;
1418
+ exports.useInitUpdateDeviceStateEvent = useInitUpdateDeviceStateEvent;
1419
+ exports.useSetProps = useSetProps;
1420
+ exports.useUpdateDevice = useUpdateDevice;
1421
+ exports.useUpdateDeviceConnectingState = useUpdateDeviceConnectingState;
1422
+ exports.useUpdateDeviceName = useUpdateDeviceName;
1423
+ exports.useUpdateOnlineStatus = useUpdateOnlineStatus;
1424
+ exports.useUserAccount = useUserAccount;
1425
+ //# sourceMappingURL=index.cjs.map
1426
+ //# sourceMappingURL=index.cjs.map