@unif/react-native-hms-scan 0.6.2 → 2.0.0

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 (156) hide show
  1. package/README.md +3 -2
  2. package/android/src/main/AndroidManifest.xml +0 -9
  3. package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanImage.kt +135 -0
  4. package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanModule.kt +163 -147
  5. package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanResultMapper.kt +17 -9
  6. package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanView.kt +57 -19
  7. package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanViewManager.kt +1 -1
  8. package/ios/HmsScanModule.mm +13 -37
  9. package/ios/HmsScanResultMapper.h +4 -3
  10. package/ios/HmsScanResultMapper.mm +31 -19
  11. package/ios/HmsScanView.h +1 -1
  12. package/ios/HmsScanView.mm +140 -25
  13. package/lib/module/HmsScanView/HmsScanView.js +66 -0
  14. package/lib/module/HmsScanView/HmsScanView.js.map +1 -0
  15. package/lib/module/HmsScanView/HmsScanView.web.js +26 -0
  16. package/lib/module/HmsScanView/HmsScanView.web.js.map +1 -0
  17. package/lib/module/HmsScanView/types.js +4 -0
  18. package/lib/module/HmsScanView/types.js.map +1 -0
  19. package/lib/module/HmsScanViewNativeComponent.ts +7 -5
  20. package/lib/module/NativeHmsScan.js +1 -1
  21. package/lib/module/NativeHmsScan.js.map +1 -1
  22. package/lib/module/ScanError.js +12 -0
  23. package/lib/module/ScanError.js.map +1 -0
  24. package/lib/module/Scanner/DeniedOverlay.js +1 -1
  25. package/lib/module/Scanner/DeniedOverlay.js.map +1 -1
  26. package/lib/module/Scanner/ResultFail.js +3 -2
  27. package/lib/module/Scanner/ResultFail.js.map +1 -1
  28. package/lib/module/Scanner/ResultFocus/ResultFocus.js +56 -0
  29. package/lib/module/Scanner/ResultFocus/ResultFocus.js.map +1 -0
  30. package/lib/module/Scanner/ResultFocus/styles.js +39 -0
  31. package/lib/module/Scanner/ResultFocus/styles.js.map +1 -0
  32. package/lib/module/Scanner/ResultFocus/types.js +4 -0
  33. package/lib/module/Scanner/ResultFocus/types.js.map +1 -0
  34. package/lib/module/Scanner/Scanner.js +11 -310
  35. package/lib/module/Scanner/Scanner.js.map +1 -1
  36. package/lib/module/Scanner/Scanner.web.js +29 -0
  37. package/lib/module/Scanner/Scanner.web.js.map +1 -0
  38. package/lib/module/Scanner/ScannerInner.js +310 -0
  39. package/lib/module/Scanner/ScannerInner.js.map +1 -0
  40. package/lib/module/Scanner/styles.js +11 -0
  41. package/lib/module/Scanner/styles.js.map +1 -0
  42. package/lib/module/Scanner/types.js +4 -0
  43. package/lib/module/Scanner/types.js.map +1 -0
  44. package/lib/module/constants.js +20 -0
  45. package/lib/module/constants.js.map +1 -0
  46. package/lib/module/decodeImage.js +29 -24
  47. package/lib/module/decodeImage.js.map +1 -1
  48. package/lib/module/decodeImage.web.js +7 -0
  49. package/lib/module/decodeImage.web.js.map +1 -0
  50. package/lib/module/errors.js +24 -0
  51. package/lib/module/errors.js.map +1 -0
  52. package/lib/module/format.js +53 -47
  53. package/lib/module/format.js.map +1 -1
  54. package/lib/module/index.js +5 -19
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/module/index.web.js +8 -0
  57. package/lib/module/index.web.js.map +1 -0
  58. package/lib/module/mock.js +2 -23
  59. package/lib/module/mock.js.map +1 -1
  60. package/lib/module/permissions.js +24 -20
  61. package/lib/module/permissions.js.map +1 -1
  62. package/lib/module/permissions.web.js +10 -0
  63. package/lib/module/permissions.web.js.map +1 -0
  64. package/lib/module/types.js +1 -45
  65. package/lib/module/types.js.map +1 -1
  66. package/lib/typescript/src/HmsScanView/HmsScanView.d.ts +3 -0
  67. package/lib/typescript/src/HmsScanView/HmsScanView.d.ts.map +1 -0
  68. package/lib/typescript/src/HmsScanView/HmsScanView.web.d.ts +3 -0
  69. package/lib/typescript/src/HmsScanView/HmsScanView.web.d.ts.map +1 -0
  70. package/lib/typescript/src/HmsScanView/types.d.ts +12 -0
  71. package/lib/typescript/src/HmsScanView/types.d.ts.map +1 -0
  72. package/lib/typescript/src/HmsScanViewNativeComponent.d.ts +6 -4
  73. package/lib/typescript/src/HmsScanViewNativeComponent.d.ts.map +1 -1
  74. package/lib/typescript/src/NativeHmsScan.d.ts +3 -5
  75. package/lib/typescript/src/NativeHmsScan.d.ts.map +1 -1
  76. package/lib/typescript/src/ScanError.d.ts +7 -0
  77. package/lib/typescript/src/ScanError.d.ts.map +1 -0
  78. package/lib/typescript/src/Scanner/DeniedOverlay.d.ts.map +1 -1
  79. package/lib/typescript/src/Scanner/ResultFail.d.ts +2 -1
  80. package/lib/typescript/src/Scanner/ResultFail.d.ts.map +1 -1
  81. package/lib/typescript/src/Scanner/ResultFocus/ResultFocus.d.ts +4 -0
  82. package/lib/typescript/src/Scanner/ResultFocus/ResultFocus.d.ts.map +1 -0
  83. package/lib/typescript/src/Scanner/ResultFocus/styles.d.ts +36 -0
  84. package/lib/typescript/src/Scanner/ResultFocus/styles.d.ts.map +1 -0
  85. package/lib/typescript/src/Scanner/ResultFocus/types.d.ts +8 -0
  86. package/lib/typescript/src/Scanner/ResultFocus/types.d.ts.map +1 -0
  87. package/lib/typescript/src/Scanner/Scanner.d.ts +2 -45
  88. package/lib/typescript/src/Scanner/Scanner.d.ts.map +1 -1
  89. package/lib/typescript/src/Scanner/Scanner.web.d.ts +3 -0
  90. package/lib/typescript/src/Scanner/Scanner.web.d.ts.map +1 -0
  91. package/lib/typescript/src/Scanner/ScannerInner.d.ts +3 -0
  92. package/lib/typescript/src/Scanner/ScannerInner.d.ts.map +1 -0
  93. package/lib/typescript/src/Scanner/styles.d.ts +7 -0
  94. package/lib/typescript/src/Scanner/styles.d.ts.map +1 -0
  95. package/lib/typescript/src/Scanner/types.d.ts +20 -0
  96. package/lib/typescript/src/Scanner/types.d.ts.map +1 -0
  97. package/lib/typescript/src/constants.d.ts +8 -0
  98. package/lib/typescript/src/constants.d.ts.map +1 -0
  99. package/lib/typescript/src/decodeImage.d.ts +2 -12
  100. package/lib/typescript/src/decodeImage.d.ts.map +1 -1
  101. package/lib/typescript/src/decodeImage.web.d.ts +3 -0
  102. package/lib/typescript/src/decodeImage.web.d.ts.map +1 -0
  103. package/lib/typescript/src/errors.d.ts +6 -0
  104. package/lib/typescript/src/errors.d.ts.map +1 -0
  105. package/lib/typescript/src/format.d.ts +15 -12
  106. package/lib/typescript/src/format.d.ts.map +1 -1
  107. package/lib/typescript/src/index.d.ts +6 -7
  108. package/lib/typescript/src/index.d.ts.map +1 -1
  109. package/lib/typescript/src/index.web.d.ts +9 -0
  110. package/lib/typescript/src/index.web.d.ts.map +1 -0
  111. package/lib/typescript/src/mock.d.ts +9 -8
  112. package/lib/typescript/src/mock.d.ts.map +1 -1
  113. package/lib/typescript/src/permissions.d.ts +4 -8
  114. package/lib/typescript/src/permissions.d.ts.map +1 -1
  115. package/lib/typescript/src/permissions.web.d.ts +4 -0
  116. package/lib/typescript/src/permissions.web.d.ts.map +1 -0
  117. package/lib/typescript/src/types.d.ts +31 -56
  118. package/lib/typescript/src/types.d.ts.map +1 -1
  119. package/package.json +16 -9
  120. package/src/HmsScanView/HmsScanView.tsx +67 -0
  121. package/src/HmsScanView/HmsScanView.web.tsx +22 -0
  122. package/src/HmsScanView/types.ts +17 -0
  123. package/src/HmsScanViewNativeComponent.ts +7 -5
  124. package/src/NativeHmsScan.ts +3 -5
  125. package/src/ScanError.ts +13 -0
  126. package/src/Scanner/DeniedOverlay.tsx +4 -2
  127. package/src/Scanner/ResultFail.tsx +23 -5
  128. package/src/Scanner/ResultFocus/ResultFocus.tsx +43 -0
  129. package/src/Scanner/ResultFocus/styles.ts +25 -0
  130. package/src/Scanner/ResultFocus/types.ts +8 -0
  131. package/src/Scanner/Scanner.tsx +14 -432
  132. package/src/Scanner/Scanner.web.tsx +26 -0
  133. package/src/Scanner/ScannerInner.tsx +391 -0
  134. package/src/Scanner/styles.ts +6 -0
  135. package/src/Scanner/types.ts +36 -0
  136. package/src/constants.ts +55 -0
  137. package/src/decodeImage.ts +35 -29
  138. package/src/decodeImage.web.ts +8 -0
  139. package/src/errors.ts +26 -0
  140. package/src/format.ts +77 -76
  141. package/src/index.tsx +17 -32
  142. package/src/index.web.tsx +22 -0
  143. package/src/mock.ts +21 -29
  144. package/src/permissions.ts +33 -20
  145. package/src/permissions.web.ts +9 -0
  146. package/src/types.ts +38 -126
  147. package/lib/module/HmsScanView.js +0 -43
  148. package/lib/module/HmsScanView.js.map +0 -1
  149. package/lib/module/Scanner/ResultFocus.js +0 -171
  150. package/lib/module/Scanner/ResultFocus.js.map +0 -1
  151. package/lib/typescript/src/HmsScanView.d.ts +0 -33
  152. package/lib/typescript/src/HmsScanView.d.ts.map +0 -1
  153. package/lib/typescript/src/Scanner/ResultFocus.d.ts +0 -14
  154. package/lib/typescript/src/Scanner/ResultFocus.d.ts.map +0 -1
  155. package/src/HmsScanView.tsx +0 -87
  156. package/src/Scanner/ResultFocus.tsx +0 -122
@@ -1 +1 @@
1
- {"version":3,"names":["ALL_BARCODE_FORMATS","FORMAT_SET","Set","CONTENT_TYPES","CONTENT_SET","coerceFormat","value","has","coerceContentType","undefined","formatsToCsv","formats","length","join","coerceCornerPoints","Array","isArray","points","filter","p","x","y","map","coerceResult","raw","r","result","format","contentType","cornerPoints","parseResultsJson","json","parsed","JSON","parse","out","item","push"],"sourceRoot":"../../src","sources":["format.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SCAN_FORMAT_SET","SCAN_CONTENT_TYPE_SET","ScanError","coerceFormat","value","has","coerceContentType","undefined","formatsToCsv","Array","isArray","some","item","reason","message","Set","sort","join","formatConfiguration","csv","error","cornerPoints","points","filter","p","x","Number","isFinite","y","map","length","invalidResponse","parseResultsJson","json","data","JSON","parse","raw","format","result","contentType"],"sourceRoot":"../../src","sources":["format.ts"],"mappings":"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","ignoreList":[]}
@@ -1,22 +1,8 @@
1
1
  "use strict";
2
2
 
3
- // @unif/react-native-hms-scan —— 华为 HMS 统一扫码服务 RN bridge(Fabric 新架构)
4
- // 能力:定制视图扫码(底层 <HmsScanView> + 成品 <Scanner> 扫一扫页)+ 图片识别(decodeImage)+ 相机权限。
5
- // 文档站:https://unif-design.github.io/react-native-hms-scan/(版本随发版自动部署)。
6
-
7
- // ── 类型与常量 ──
8
- export { ALL_BARCODE_FORMATS, HmsScanError } from "./types.js";
9
- // ── 码制工具 ──
10
- export { coerceFormat, coerceContentType, formatsToCsv } from "./format.js";
11
-
12
- // ── 底层 headless 相机组件 ──
13
- export { HmsScanView } from "./HmsScanView.js";
14
- // ── 图片识别 ──
15
- export { decodeImage } from "./decodeImage.js";
16
-
17
- // ── 相机权限 ──
18
- export { getCameraPermissionStatus, requestCameraPermission } from "./permissions.js";
19
-
20
- // ── 成品扫一扫页(聚焦款,浅色) ──
21
- export { Scanner } from "./Scanner/Scanner.js";
3
+ export { ScanError } from "./ScanError.js";
4
+ export { HmsScanView } from './HmsScanView/HmsScanView';
5
+ export { decodeImage } from './decodeImage';
6
+ export { getCameraPermissionStatus, requestCameraPermission } from './permissions';
7
+ export { Scanner } from './Scanner/Scanner';
22
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ALL_BARCODE_FORMATS","HmsScanError","coerceFormat","coerceContentType","formatsToCsv","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","Scanner"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;;AAEA;AACA,SACEA,mBAAmB,EACnBC,YAAY,QACP,YAAS;AAahB;AACA,SAASC,YAAY,EAAEC,iBAAiB,EAAEC,YAAY,QAAQ,aAAU;;AAExE;AACA,SAASC,WAAW,QAAQ,kBAAe;AAG3C;AACA,SAASC,WAAW,QAAQ,kBAAe;;AAE3C;AACA,SAASC,yBAAyB,EAAEC,uBAAuB,QAAQ,kBAAe;;AAElF;AACA,SAASC,OAAO,QAAQ,sBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["ScanError","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","Scanner"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,gBAAa;AAavC,SAASC,WAAW,QAAQ,2BAA2B;AAEvD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,yBAAyB,EACzBC,uBAAuB,QAClB,eAAe;AACtB,SAASC,OAAO,QAAQ,mBAAmB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ export { ScanError } from "./ScanError.js";
4
+ export { HmsScanView } from "./HmsScanView/HmsScanView.web.js";
5
+ export { decodeImage } from "./decodeImage.web.js";
6
+ export { getCameraPermissionStatus, requestCameraPermission } from "./permissions.web.js";
7
+ export { Scanner } from "./Scanner/Scanner.web.js";
8
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScanError","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","Scanner"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,gBAAa;AAavC,SAASC,WAAW,QAAQ,kCAA+B;AAE3D,SAASC,WAAW,QAAQ,sBAAmB;AAC/C,SACEC,yBAAyB,EACzBC,uBAAuB,QAClB,sBAAmB;AAC1B,SAASC,OAAO,QAAQ,0BAAuB","ignoreList":[]}
@@ -1,30 +1,9 @@
1
1
  "use strict";
2
2
 
3
- // Jest mock for @unif/react-native-hms-scan —— 供消费者在测试中替换本库,
4
- // 避免 jest 环境加载 HmsScan TurboModule / HmsScanView Fabric 组件而崩溃。
5
- //
6
- // 用法(消费者 jest setup 或单个测试文件):
7
- //
8
- // jest.mock('@unif/react-native-hms-scan', () =>
9
- // require('@unif/react-native-hms-scan/mock')
10
- // );
11
- //
12
- // 替换后 decodeImage / 权限方法都是 jest.fn;<HmsScanView> / <Scanner> 渲染为 null。
13
- // 按需覆盖单次返回:
14
- // (decodeImage as jest.Mock).mockResolvedValueOnce([{ value: '690...', format: 'EAN_13' }]);
15
-
16
- // 纯 JS 类型 / 常量 / Error / 码制工具:保留真实实现(不碰原生)。
17
- export * from "./types.js";
18
- export { coerceFormat, coerceContentType, formatsToCsv } from "./format.js";
19
-
20
- // ── 图片识别 ──
21
- export const decodeImage = jest.fn((_uri, _options) => Promise.resolve([]));
22
-
23
- // ── 相机权限 ──(默认已授权)
3
+ export { ScanError } from "./ScanError.js";
4
+ export const decodeImage = jest.fn(_input => Promise.resolve([]));
24
5
  export const getCameraPermissionStatus = jest.fn(() => Promise.resolve('granted'));
25
6
  export const requestCameraPermission = jest.fn(() => Promise.resolve('granted'));
26
-
27
- // ── 组件 ──(渲染 null,避免触碰原生)
28
7
  export const HmsScanView = () => null;
29
8
  export const Scanner = () => null;
30
9
  //# sourceMappingURL=mock.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["coerceFormat","coerceContentType","formatsToCsv","decodeImage","jest","fn","_uri","_options","Promise","resolve","getCameraPermissionStatus","requestCameraPermission","HmsScanView","Scanner"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA,cAAc,YAAS;AACvB,SAASA,YAAY,EAAEC,iBAAiB,EAAEC,YAAY,QAAQ,aAAU;;AAExE;AACA,OAAO,MAAMC,WAAW,GAAGC,IAAI,CAACC,EAAE,CAChC,CAACC,IAAY,EAAEC,QAA6B,KAC1CC,OAAO,CAACC,OAAO,CAAC,EAAE,CACtB,CAAC;;AAED;AACA,OAAO,MAAMC,yBAAyB,GAAGN,IAAI,CAACC,EAAE,CAC9C,MAAuCG,OAAO,CAACC,OAAO,CAAC,SAAS,CAClE,CAAC;AACD,OAAO,MAAME,uBAAuB,GAAGP,IAAI,CAACC,EAAE,CAC5C,MAAuCG,OAAO,CAACC,OAAO,CAAC,SAAS,CAClE,CAAC;;AAED;AACA,OAAO,MAAMG,WAAiC,GAAGA,CAAA,KAAM,IAAI;AAC3D,OAAO,MAAMC,OAAyB,GAAGA,CAAA,KAAM,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["ScanError","decodeImage","jest","fn","_input","Promise","resolve","getCameraPermissionStatus","requestCameraPermission","HmsScanView","Scanner"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":";;AASA,SAASA,SAAS,QAAQ,gBAAa;AAcvC,OAAO,MAAMC,WAAW,GAAGC,IAAI,CAACC,EAAE,CAC/BC,MAAsC,IACrCC,OAAO,CAACC,OAAO,CAAC,EAAE,CACtB,CAAC;AACD,OAAO,MAAMC,yBAAyB,GAAGL,IAAI,CAACC,EAAE,CAC9C,MAAqCE,OAAO,CAACC,OAAO,CAAC,SAAS,CAChE,CAAC;AACD,OAAO,MAAME,uBAAuB,GAAGN,IAAI,CAACC,EAAE,CAC5C,MAAqCE,OAAO,CAACC,OAAO,CAAC,SAAS,CAChE,CAAC;AACD,OAAO,MAAMG,WAAiC,GAAGA,CAAA,KAAM,IAAI;AAC3D,OAAO,MAAMC,OAAyB,GAAGA,CAAA,KAAM,IAAI","ignoreList":[]}
@@ -1,28 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  import NativeHmsScan from "./NativeHmsScan.js";
4
- function normalize(status) {
5
- switch (status) {
6
- case 'granted':
7
- case 'denied':
8
- case 'blocked':
9
- case 'undetermined':
10
- return status;
11
- default:
12
- return 'undetermined';
4
+ import { scanError } from "./errors.js";
5
+ import { ScanError } from "./ScanError.js";
6
+ async function permission(request) {
7
+ if (!NativeHmsScan) throw new ScanError({
8
+ reason: 'unavailable',
9
+ message: 'HMS Scan 原生模块未安装'
10
+ });
11
+ try {
12
+ const status = await (request ? NativeHmsScan.requestCameraPermission() : NativeHmsScan.getCameraPermissionStatus());
13
+ if (status === 'granted' || status === 'denied' || status === 'blocked' || status === 'undetermined') return status;
14
+ throw new ScanError({
15
+ reason: 'invalid_response',
16
+ message: '原生相机权限状态无法识别'
17
+ });
18
+ } catch (error) {
19
+ throw scanError(error, {
20
+ reason: 'unavailable',
21
+ message: '读取相机权限失败'
22
+ });
13
23
  }
14
24
  }
15
-
16
- /** 查询当前相机权限状态(不弹窗)。 */
17
- export async function getCameraPermissionStatus() {
18
- return normalize(await NativeHmsScan.getCameraPermissionStatus());
25
+ /** Reads the actual status without presenting a system permission prompt. */
26
+ export function getCameraPermissionStatus() {
27
+ return permission(false);
19
28
  }
20
-
21
- /**
22
- * 发起相机权限请求(必要时弹系统授权框),返回请求后的状态。
23
- * 若用户已永久拒绝(blocked),需引导去系统设置开启。
24
- */
25
- export async function requestCameraPermission() {
26
- return normalize(await NativeHmsScan.requestCameraPermission());
29
+ export function requestCameraPermission() {
30
+ return permission(true);
27
31
  }
28
32
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeHmsScan","normalize","status","getCameraPermissionStatus","requestCameraPermission"],"sourceRoot":"../../src","sources":["permissions.ts"],"mappings":";;AAAA,OAAOA,aAAa,MAAM,oBAAiB;AAG3C,SAASC,SAASA,CAACC,MAAc,EAA0B;EACzD,QAAQA,MAAM;IACZ,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,SAAS;IACd,KAAK,cAAc;MACjB,OAAOA,MAAM;IACf;MACE,OAAO,cAAc;EACzB;AACF;;AAEA;AACA,OAAO,eAAeC,yBAAyBA,CAAA,EAAoC;EACjF,OAAOF,SAAS,CAAC,MAAMD,aAAa,CAACG,yBAAyB,CAAC,CAAC,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeC,uBAAuBA,CAAA,EAAoC;EAC/E,OAAOH,SAAS,CAAC,MAAMD,aAAa,CAACI,uBAAuB,CAAC,CAAC,CAAC;AACjE","ignoreList":[]}
1
+ {"version":3,"names":["NativeHmsScan","scanError","ScanError","permission","request","reason","message","status","requestCameraPermission","getCameraPermissionStatus","error"],"sourceRoot":"../../src","sources":["permissions.ts"],"mappings":";;AAAA,OAAOA,aAAa,MAAM,oBAAiB;AAC3C,SAASC,SAAS,QAAQ,aAAU;AACpC,SAASC,SAAS,QAAQ,gBAAa;AAGvC,eAAeC,UAAUA,CAACC,OAAgB,EAAiC;EACzE,IAAI,CAACJ,aAAa,EAChB,MAAM,IAAIE,SAAS,CAAC;IAClBG,MAAM,EAAE,aAAa;IACrBC,OAAO,EAAE;EACX,CAAC,CAAC;EACJ,IAAI;IACF,MAAMC,MAAM,GAAG,OAAOH,OAAO,GACzBJ,aAAa,CAACQ,uBAAuB,CAAC,CAAC,GACvCR,aAAa,CAACS,yBAAyB,CAAC,CAAC,CAAC;IAC9C,IACEF,MAAM,KAAK,SAAS,IACpBA,MAAM,KAAK,QAAQ,IACnBA,MAAM,KAAK,SAAS,IACpBA,MAAM,KAAK,cAAc,EAEzB,OAAOA,MAAM;IACf,MAAM,IAAIL,SAAS,CAAC;MAClBG,MAAM,EAAE,kBAAkB;MAC1BC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOI,KAAK,EAAE;IACd,MAAMT,SAAS,CAACS,KAAK,EAAE;MACrBL,MAAM,EAAE,aAAa;MACrBC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;AACF;AACA;AACA,OAAO,SAASG,yBAAyBA,CAAA,EAAkC;EACzE,OAAON,UAAU,CAAC,KAAK,CAAC;AAC1B;AACA,OAAO,SAASK,uBAAuBA,CAAA,EAAkC;EACvE,OAAOL,UAAU,CAAC,IAAI,CAAC;AACzB","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { unsupportedScanError } from "./errors.js";
4
+ export async function getCameraPermissionStatus() {
5
+ throw unsupportedScanError();
6
+ }
7
+ export async function requestCameraPermission() {
8
+ throw unsupportedScanError();
9
+ }
10
+ //# sourceMappingURL=permissions.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["unsupportedScanError","getCameraPermissionStatus","requestCameraPermission"],"sourceRoot":"../../src","sources":["permissions.web.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,aAAU;AAG/C,OAAO,eAAeC,yBAAyBA,CAAA,EAAkC;EAC/E,MAAMD,oBAAoB,CAAC,CAAC;AAC9B;AACA,OAAO,eAAeE,uBAAuBA,CAAA,EAAkC;EAC7E,MAAMF,oBAAoB,CAAC,CAAC;AAC9B","ignoreList":[]}
@@ -1,48 +1,4 @@
1
1
  "use strict";
2
2
 
3
- // ──────────────────────────────────────────────────────────────
4
- // @unif/react-native-hms-scan —— 公共类型
5
- //
6
- // 这些是纯 JS/TS 类型与常量(不触碰原生),index 与 mock 都从这里导出。
7
- // 码制 / 内容类型在原生侧(Android HmsScan.*_SCAN_TYPE / getScanTypeForm,
8
- // iOS HMSScanFormatTypeCode / sceneType)已统一映射成下面的字符串枚举再回 JS。
9
- // ──────────────────────────────────────────────────────────────
10
-
11
- /** 统一码制枚举(两端归一)。 */
12
-
13
- /** 所有可用码制(不含 UNKNOWN)。传给原生即"识别全部码制"。 */
14
- export const ALL_BARCODE_FORMATS = ['QR_CODE', 'AZTEC', 'DATA_MATRIX', 'PDF417', 'CODABAR', 'CODE_39', 'CODE_93', 'CODE_128', 'EAN_8', 'EAN_13', 'UPC_A', 'UPC_E', 'ITF14', 'MULTI_FUNCTIONAL'];
15
-
16
- /**
17
- * 码内容语义类型(尽力归一)。
18
- * Android 来自 HmsScan.getScanTypeForm(),iOS 来自 sceneType(精度有限,未知归 OTHER)。
19
- */
20
-
21
- /** 取景框/解码命中的角点(图像坐标系,单位 px)。 */
22
-
23
- /** 一次扫码/解码命中的结果。 */
24
-
25
- /** decodeImage 选项。 */
26
-
27
- /** `<HmsScanView>` / `<Scanner>` 通过回调上报的普通错误对象。 */
28
-
29
- /** 相机权限状态。 */
30
-
31
- /** 错误码。 */
32
-
33
- /** 库统一抛出的错误类型。 */
34
- export class HmsScanError extends Error {
35
- constructor(code, message) {
36
- super(message ?? code);
37
- this.name = 'HmsScanError';
38
- this.code = code;
39
- // 兼容 TS 继承内建类的 instanceof
40
- Object.setPrototypeOf(this, HmsScanError.prototype);
41
- }
42
- }
43
-
44
- /**
45
- * 业务层商品信息——`<Scanner>` 扫到条码后,由宿主通过 resolveProduct 解析返回,
46
- * 用于聚焦款"浮层确认卡"展示。仅 name 必填,其余可缺省。
47
- */
3
+ export {};
48
4
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ALL_BARCODE_FORMATS","HmsScanError","Error","constructor","code","message","name","Object","setPrototypeOf","prototype"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAkBA;AACA,OAAO,MAAMA,mBAA6C,GAAG,CAC3D,SAAS,EACT,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,kBAAkB,CACV;;AAEV;AACA;AACA;AACA;;AAgBA;;AAMA;;AAYA;;AAMA;;AAMA;;AAOA;;AAUA;AACA,OAAO,MAAMC,YAAY,SAASC,KAAK,CAAC;EAEtCC,WAAWA,CAACC,IAAsB,EAAEC,OAAgB,EAAE;IACpD,KAAK,CAACA,OAAO,IAAID,IAAI,CAAC;IACtB,IAAI,CAACE,IAAI,GAAG,cAAc;IAC1B,IAAI,CAACF,IAAI,GAAGA,IAAI;IAChB;IACAG,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEP,YAAY,CAACQ,SAAS,CAAC;EACrD;AACF;;AAEA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { HmsScanViewProps } from './types';
2
+ export declare function HmsScanView({ formats, continuous, paused, torch, onScanResult, onScanError, onTorchState, ...viewProps }: HmsScanViewProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HmsScanView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HmsScanView.d.ts","sourceRoot":"","sources":["../../../../src/HmsScanView/HmsScanView.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAiB,EACjB,MAAc,EACd,KAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,GAAG,SAAS,EACb,EAAE,gBAAgB,2CAiDlB"}
@@ -0,0 +1,3 @@
1
+ import type { HmsScanViewProps } from './types';
2
+ export declare function HmsScanView({ onScanError, formats: _formats, paused: _paused, torch: _torch, continuous: _continuous, onScanResult: _onScanResult, onTorchState: _onTorchState, ...props }: HmsScanViewProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HmsScanView.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HmsScanView.web.d.ts","sourceRoot":"","sources":["../../../../src/HmsScanView/HmsScanView.web.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,aAAa,EAC3B,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAOlB"}
@@ -0,0 +1,12 @@
1
+ import type { ViewProps } from 'react-native';
2
+ import type { RequestedScanFormat, ScanFailure, ScanResult, ScanTorchState } from '../types';
3
+ export interface HmsScanViewProps extends ViewProps {
4
+ formats?: readonly RequestedScanFormat[];
5
+ continuous?: boolean;
6
+ paused?: boolean;
7
+ torch?: boolean;
8
+ onScanResult?(results: readonly ScanResult[]): void;
9
+ onScanError?(error: Readonly<ScanFailure>): void;
10
+ onTorchState?(state: Readonly<ScanTorchState>): void;
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/HmsScanView/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD,YAAY,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CACtD"}
@@ -8,14 +8,16 @@ type ScanErrorEvent = Readonly<{
8
8
  code: string;
9
9
  message: string;
10
10
  }>;
11
- type TorchStatusEvent = Readonly<{
12
- /** 环境是否暗到建议显示手电按钮(Android OnLightVisibleCallBack)。 */
11
+ type TorchStateEvent = Readonly<{
13
12
  available: boolean;
13
+ hasAvailable: boolean;
14
+ lowLight: boolean;
15
+ hasLowLight: boolean;
14
16
  /** 手电当前是否点亮。 */
15
17
  on: boolean;
16
18
  }>;
17
19
  export interface NativeProps extends ViewProps {
18
- /** 限定码制(逗号分隔的 BarcodeFormat),空串 = 全部。 */
20
+ /** 限定码制(逗号分隔的 ScanFormat),空串 = 全部。 */
19
21
  formatsCsv?: WithDefault<string, ''>;
20
22
  /** 连续扫码(命中后继续,不自动停)。 */
21
23
  continuous?: WithDefault<boolean, true>;
@@ -25,7 +27,7 @@ export interface NativeProps extends ViewProps {
25
27
  torch?: WithDefault<boolean, false>;
26
28
  onScanResult?: DirectEventHandler<ScanResultEvent>;
27
29
  onScanError?: DirectEventHandler<ScanErrorEvent>;
28
- onTorchStatus?: DirectEventHandler<TorchStatusEvent>;
30
+ onTorchState?: DirectEventHandler<TorchStateEvent>;
29
31
  }
30
32
  declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeProps>;
31
33
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"HmsScanViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/HmsScanViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,2CAA2C,CAAC;AAOnD,KAAK,eAAe,GAAG,QAAQ,CAAC;IAC9B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,KAAK,cAAc,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,KAAK,gBAAgB,GAAG,QAAQ,CAAC;IAC/B,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,EAAE,EAAE,OAAO,CAAC;CACb,CAAC,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,yCAAyC;IACzC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,wBAAwB;IACxB,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,mDAAmD;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEpC,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CACtD;;AAED,wBAAkE"}
1
+ {"version":3,"file":"HmsScanViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/HmsScanViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,2CAA2C,CAAC;AAOnD,KAAK,eAAe,GAAG,QAAQ,CAAC;IAC9B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,KAAK,cAAc,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,KAAK,eAAe,GAAG,QAAQ,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB;IAChB,EAAE,EAAE,OAAO,CAAC;CACb,CAAC,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,sCAAsC;IACtC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,wBAAwB;IACxB,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,mDAAmD;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEpC,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACpD;;AAED,wBAAkE"}
@@ -2,10 +2,8 @@ import type { TurboModule } from 'react-native';
2
2
  export interface Spec extends TurboModule {
3
3
  /**
4
4
  * 解码本地图片里的条码 / 二维码。
5
- * @param uri 本地图片。iOS 支持 file://、绝对路径、data:;Android 支持
6
- * file://、绝对路径、content://、android.resource://。
7
- * 两端都不下载远程 URL,也不支持 ph:// / assets-library://。
8
- * @param formatsCsv 限定码制(逗号分隔的 BarcodeFormat),空串 = 全部。
5
+ * @param uri 本地图片 file URI,由公共能力边界校验。
6
+ * @param formatsCsv 限定码制(逗号分隔的 ScanFormat),空串 = 全部。
9
7
  * @returns JSON 编码的 ScanResult[](可能为空数组)。
10
8
  */
11
9
  decodeImage(uri: string, formatsCsv: string): Promise<string>;
@@ -14,6 +12,6 @@ export interface Spec extends TurboModule {
14
12
  /** 发起相机权限请求,返回请求后的状态字符串。 */
15
13
  requestCameraPermission(): Promise<string>;
16
14
  }
17
- declare const _default: Spec;
15
+ declare const _default: Spec | null;
18
16
  export default _default;
19
17
  //# sourceMappingURL=NativeHmsScan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeHmsScan.d.ts","sourceRoot":"","sources":["../../../src/NativeHmsScan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D,gEAAgE;IAChE,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,4BAA4B;IAC5B,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;;AAED,wBAAiE"}
1
+ {"version":3,"file":"NativeHmsScan.d.ts","sourceRoot":"","sources":["../../../src/NativeHmsScan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D,gEAAgE;IAChE,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,4BAA4B;IAC5B,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;;AAED,wBAAwD"}
@@ -0,0 +1,7 @@
1
+ import type { ScanFailure } from './types';
2
+ export declare class ScanError extends Error implements ScanFailure {
3
+ readonly reason: ScanFailure['reason'];
4
+ readonly sourceCode?: string;
5
+ constructor(error: Readonly<ScanFailure>);
6
+ }
7
+ //# sourceMappingURL=ScanError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScanError.d.ts","sourceRoot":"","sources":["../../../src/ScanError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,qBAAa,SAAU,SAAQ,KAAM,YAAW,WAAW;IACzD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;CAOzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeniedOverlay.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/DeniedOverlay.tsx"],"names":[],"mappings":"AASA,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAGD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAuBxE"}
1
+ {"version":3,"file":"DeniedOverlay.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/DeniedOverlay.tsx"],"names":[],"mappings":"AASA,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAGD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAyBxE"}
@@ -1,8 +1,9 @@
1
1
  interface ResultFailProps {
2
2
  bottomInset: number;
3
+ failed?: boolean;
3
4
  /** 重扫:回到取景重新扫描。(退出扫码页是外层工具栏「返回」的事。) */
4
5
  onRescan: () => void;
5
6
  }
6
- export declare function ResultFail({ bottomInset, onRescan }: ResultFailProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ResultFail({ bottomInset, failed, onRescan }: ResultFailProps): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
8
9
  //# sourceMappingURL=ResultFail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResultFail.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFail.tsx"],"names":[],"mappings":"AAWA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAID,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAyBpE"}
1
+ {"version":3,"file":"ResultFail.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFail.tsx"],"names":[],"mappings":"AAWA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAID,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA0C5E"}
@@ -0,0 +1,4 @@
1
+ import type { ResultFocusProps } from './types';
2
+ /** A raw result is selected here; interpreting it belongs to the consumer. */
3
+ export declare function ResultFocus({ result, bottomInset, onRescan, onConfirm, }: ResultFocusProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=ResultFocus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResultFocus.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/ResultFocus.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAyBlB"}
@@ -0,0 +1,36 @@
1
+ import { type ColorTokens } from '@unif/react-native-design';
2
+ export declare const styles: {
3
+ wrap: {
4
+ position: "absolute";
5
+ left: number;
6
+ right: number;
7
+ zIndex: number;
8
+ };
9
+ content: {
10
+ maxHeight: number;
11
+ marginVertical: number;
12
+ };
13
+ actions: {
14
+ flexDirection: "row";
15
+ columnGap: number;
16
+ };
17
+ };
18
+ export declare const makeStyles: (colors: ColorTokens) => {
19
+ badge: {
20
+ fontSize: number;
21
+ fontWeight: "600";
22
+ color: string;
23
+ };
24
+ format: {
25
+ fontSize: number;
26
+ color: string;
27
+ fontFamily: string;
28
+ marginTop: number;
29
+ };
30
+ value: {
31
+ fontSize: number;
32
+ lineHeight: number;
33
+ color: string;
34
+ };
35
+ };
36
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAIjB,CAAC;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW;;;;;;;;;;;;;;;;;CAU1C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ScanResult } from '../../types';
2
+ export interface ResultFocusProps {
3
+ result: Readonly<ScanResult>;
4
+ bottomInset: number;
5
+ onRescan(): void;
6
+ onConfirm(): void;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,IAAI,IAAI,CAAC;IACjB,SAAS,IAAI,IAAI,CAAC;CACnB"}
@@ -1,47 +1,4 @@
1
- import type { BarcodeFormat, ScanError, ScanProduct, ScanResult } from '../types';
2
- export interface ScannerProps {
3
- /** 顶栏标题,默认 "扫一扫"。 */
4
- title?: string;
5
- /** 限定识别码制;不传 = 全部。 */
6
- formats?: readonly BarcodeFormat[];
7
- /** 取景态提示文案。 */
8
- hintText?: string;
9
- /** 顶部安全区(默认 54)。用 react-native-safe-area-context 时可传 insets.top。 */
10
- topInset?: number;
11
- /** 底部安全区(默认 34)。 */
12
- bottomInset?: number;
13
- /** 是否显示手电筒按钮,默认 true。手电由库内自管(Android 可用;iOS 为 best-effort,可在 iOS 上关掉)。 */
14
- showTorch?: boolean;
15
- /** 返回回调(退出扫码页,回到上一级);按钮在底部工具栏,与手电筒并排。 */
16
- onClose?: () => void;
17
- /** 扫码相机或权限检查出错时上报。 */
18
- onScanError?: (error: ScanError) => void;
19
- /**
20
- * 扫到条码后由宿主解析商品信息(用于浮层确认卡)。
21
- * 返回 null/undefined 视为"未识别",抛错亦然。不传则默认用扫到的原文当商品名。
22
- */
23
- resolveProduct?: (result: ScanResult) => ScanProduct | null | undefined | Promise<ScanProduct | null | undefined>;
24
- /** 用户点"确认":把结果带回上一级(宿主通常在此导航返回)。 */
25
- onConfirm?: (product: ScanProduct, result: ScanResult) => void;
26
- /**
27
- * 自动确认:传 `onConfirm` 时,扫到并解析成功后**不显示结果卡**,直接触发
28
- * `onConfirm(product, result)`;未传回调时仍显示结果卡。默认 `false`(显示结果卡,
29
- * 由用户点"确定")。
30
- * 适合"扫到即用、不需要二次确认"的场景。回调后相机暂停、不自动重扫——宿主通常在
31
- * `onConfirm` 里导航离开;若需再扫由宿主控制(如重新挂载 `<Scanner>`)。
32
- * 注:未识别(`resolveProduct` 返回 `null`/抛错)仍走失败态可重扫,不会误触发。
33
- */
34
- autoConfirm?: boolean;
35
- /**
36
- * 点"相册":宿主用自己的图片选择器选图并返回本地 uri(取消则返回 null)。
37
- * 库不内置图片选择器(遵循 RN 惯例):**传了才显示相册按钮**,不传则隐藏。
38
- */
39
- pickImage?: () => Promise<string | null>;
40
- }
41
- /**
42
- * 成品「扫一扫」界面(聚焦款)。底层 <HmsScanView> 出相机画面,取景框 / 工具栏 / 结果卡
43
- * 全用 @unif/react-native-design 的主题令牌与组件绘制(统一风格),继承宿主主题与字号。
44
- * 无外层 ThemeProvider 时采用 Design 默认主题。
45
- */
1
+ import type { ScannerProps } from './types';
2
+ /** Uses the current window's SafeAreaProvider, or measures a local one. */
46
3
  export declare function Scanner(props: ScannerProps): import("react/jsx-runtime").JSX.Element;
47
4
  //# sourceMappingURL=Scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scanner.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Scanner.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,EACX,MAAM,UAAU,CAAC;AAoClB,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sBAAsB;IACtB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,UAAU,KACf,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9E,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/D;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAE1C"}
1
+ {"version":3,"file":"Scanner.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Scanner.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAS1C"}
@@ -0,0 +1,3 @@
1
+ import type { ScannerProps } from './types';
2
+ export declare function Scanner({ onError, onClose }: ScannerProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=Scanner.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scanner.web.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Scanner.web.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,2CAoBzD"}
@@ -0,0 +1,3 @@
1
+ import type { ScannerProps } from './types';
2
+ export declare function ScannerInner({ title, hintText, formats, topInset, bottomInset, showTorch, autoConfirm, pickImage, onConfirm, onClose, onError, }: ScannerProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ScannerInner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScannerInner.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScannerInner.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAS,YAAY,EAAkB,MAAM,SAAS,CAAC;AAEnE,wBAAgB,YAAY,CAAC,EAC3B,KAAa,EACb,QAA+B,EAC/B,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAgB,EAChB,WAAmB,EACnB,SAAS,EACT,SAAS,EACT,OAAO,EACP,OAAO,GACR,EAAE,YAAY,2CA6Vd"}
@@ -0,0 +1,7 @@
1
+ export declare const styles: {
2
+ root: {
3
+ flex: number;
4
+ backgroundColor: "#0c0b0a";
5
+ };
6
+ };
7
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;;;;;CAEjB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { RequestedScanFormat, ScannerImage, ScanFailure, ScanResult } from '../types';
2
+ export type Phase = 'init' | 'scan' | 'processing' | 'result' | 'empty' | 'imageError' | 'denied' | 'error' | 'done' | 'closed';
3
+ export interface ScannerProps {
4
+ title?: string;
5
+ hintText?: string;
6
+ formats?: readonly RequestedScanFormat[];
7
+ topInset?: number;
8
+ bottomInset?: number;
9
+ showTorch?: boolean;
10
+ autoConfirm?: boolean;
11
+ pickImage?(): Promise<ScannerImage | null>;
12
+ onConfirm(result: Readonly<ScanResult>): void;
13
+ onClose?(): void;
14
+ onError?(error: Readonly<ScanFailure>): void;
15
+ }
16
+ export interface SelectedResult {
17
+ result: Readonly<ScanResult>;
18
+ delivered: boolean;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,CAAC;AACb,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC3C,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,8 @@
1
+ import type { ScanFailure } from './types';
2
+ /** The one source for public scan formats and input validation. */
3
+ export declare const SCAN_FORMATS: readonly ["QR_CODE", "AZTEC", "DATA_MATRIX", "PDF417", "CODABAR", "CODE_39", "CODE_93", "CODE_128", "EAN_8", "EAN_13", "UPC_A", "UPC_E", "ITF14", "MULTI_FUNCTIONAL", "UNKNOWN"];
4
+ export declare const SCAN_CONTENT_TYPES: readonly ["TEXT", "URL", "EMAIL", "PHONE", "SMS", "WIFI", "CONTACT", "EVENT", "LOCATION", "DRIVER", "ISBN", "ARTICLE", "OTHER"];
5
+ export declare const SCAN_FORMAT_SET: ReadonlySet<string>;
6
+ export declare const SCAN_CONTENT_TYPE_SET: ReadonlySet<string>;
7
+ export declare const SCAN_ERROR_REASONS: Readonly<Record<string, ScanFailure['reason']>>;
8
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,mEAAmE;AACnE,eAAO,MAAM,YAAY,kLAgBf,CAAC;AACX,eAAO,MAAM,kBAAkB,iIAcrB,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAAyB,CAAC;AAC1E,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAErD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CACvC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAYtC,CAAC"}