@unif/react-native-hms-scan 0.6.1 → 1.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.
- package/README.md +24 -72
- package/android/src/main/AndroidManifest.xml +0 -9
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanImage.kt +135 -0
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanModule.kt +163 -147
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanResultMapper.kt +17 -9
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanView.kt +57 -19
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanViewManager.kt +1 -1
- package/ios/HmsScanModule.mm +13 -37
- package/ios/HmsScanResultMapper.h +4 -3
- package/ios/HmsScanResultMapper.mm +31 -19
- package/ios/HmsScanView.h +1 -1
- package/ios/HmsScanView.mm +140 -25
- package/lib/module/HmsScanView/HmsScanView.js +66 -0
- package/lib/module/HmsScanView/HmsScanView.js.map +1 -0
- package/lib/module/HmsScanView/HmsScanView.web.js +26 -0
- package/lib/module/HmsScanView/HmsScanView.web.js.map +1 -0
- package/lib/module/HmsScanView/types.js +4 -0
- package/lib/module/HmsScanView/types.js.map +1 -0
- package/lib/module/HmsScanViewNativeComponent.ts +7 -5
- package/lib/module/NativeHmsScan.js +1 -1
- package/lib/module/NativeHmsScan.js.map +1 -1
- package/lib/module/ScanError.js +12 -0
- package/lib/module/ScanError.js.map +1 -0
- package/lib/module/Scanner/DeniedOverlay.js +1 -1
- package/lib/module/Scanner/DeniedOverlay.js.map +1 -1
- package/lib/module/Scanner/ResultFail.js +3 -2
- package/lib/module/Scanner/ResultFail.js.map +1 -1
- package/lib/module/Scanner/ResultFocus/ResultFocus.js +56 -0
- package/lib/module/Scanner/ResultFocus/ResultFocus.js.map +1 -0
- package/lib/module/Scanner/ResultFocus/styles.js +39 -0
- package/lib/module/Scanner/ResultFocus/styles.js.map +1 -0
- package/lib/module/Scanner/ResultFocus/types.js +4 -0
- package/lib/module/Scanner/ResultFocus/types.js.map +1 -0
- package/lib/module/Scanner/ScanHint.js +6 -3
- package/lib/module/Scanner/ScanHint.js.map +1 -1
- package/lib/module/Scanner/ScanToolbar.js +6 -3
- package/lib/module/Scanner/ScanToolbar.js.map +1 -1
- package/lib/module/Scanner/ScanTopBar.js +6 -3
- package/lib/module/Scanner/ScanTopBar.js.map +1 -1
- package/lib/module/Scanner/Scanner.js +9 -311
- package/lib/module/Scanner/Scanner.js.map +1 -1
- package/lib/module/Scanner/Scanner.web.js +29 -0
- package/lib/module/Scanner/Scanner.web.js.map +1 -0
- package/lib/module/Scanner/ScannerInner.js +310 -0
- package/lib/module/Scanner/ScannerInner.js.map +1 -0
- package/lib/module/Scanner/styles.js +11 -0
- package/lib/module/Scanner/styles.js.map +1 -0
- package/lib/module/Scanner/types.js +4 -0
- package/lib/module/Scanner/types.js.map +1 -0
- package/lib/module/constants.js +20 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/decodeImage.js +29 -24
- package/lib/module/decodeImage.js.map +1 -1
- package/lib/module/decodeImage.web.js +7 -0
- package/lib/module/decodeImage.web.js.map +1 -0
- package/lib/module/errors.js +24 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/format.js +53 -47
- package/lib/module/format.js.map +1 -1
- package/lib/module/index.js +5 -19
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +8 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/mock.js +2 -23
- package/lib/module/mock.js.map +1 -1
- package/lib/module/permissions.js +24 -20
- package/lib/module/permissions.js.map +1 -1
- package/lib/module/permissions.web.js +10 -0
- package/lib/module/permissions.web.js.map +1 -0
- package/lib/module/types.js +1 -45
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/HmsScanView/HmsScanView.d.ts +3 -0
- package/lib/typescript/src/HmsScanView/HmsScanView.d.ts.map +1 -0
- package/lib/typescript/src/HmsScanView/HmsScanView.web.d.ts +3 -0
- package/lib/typescript/src/HmsScanView/HmsScanView.web.d.ts.map +1 -0
- package/lib/typescript/src/HmsScanView/types.d.ts +12 -0
- package/lib/typescript/src/HmsScanView/types.d.ts.map +1 -0
- package/lib/typescript/src/HmsScanViewNativeComponent.d.ts +6 -4
- package/lib/typescript/src/HmsScanViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/NativeHmsScan.d.ts +3 -5
- package/lib/typescript/src/NativeHmsScan.d.ts.map +1 -1
- package/lib/typescript/src/ScanError.d.ts +7 -0
- package/lib/typescript/src/ScanError.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/DeniedOverlay.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ResultFail.d.ts +2 -1
- package/lib/typescript/src/Scanner/ResultFail.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ResultFocus/ResultFocus.d.ts +4 -0
- package/lib/typescript/src/Scanner/ResultFocus/ResultFocus.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ResultFocus/styles.d.ts +36 -0
- package/lib/typescript/src/Scanner/ResultFocus/styles.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ResultFocus/types.d.ts +8 -0
- package/lib/typescript/src/Scanner/ResultFocus/types.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ScanHint.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ScanToolbar.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ScanTopBar.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/Scanner.d.ts +2 -45
- package/lib/typescript/src/Scanner/Scanner.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/Scanner.web.d.ts +3 -0
- package/lib/typescript/src/Scanner/Scanner.web.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ScannerInner.d.ts +3 -0
- package/lib/typescript/src/Scanner/ScannerInner.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/styles.d.ts +7 -0
- package/lib/typescript/src/Scanner/styles.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/types.d.ts +20 -0
- package/lib/typescript/src/Scanner/types.d.ts.map +1 -0
- package/lib/typescript/src/constants.d.ts +8 -0
- package/lib/typescript/src/constants.d.ts.map +1 -0
- package/lib/typescript/src/decodeImage.d.ts +2 -12
- package/lib/typescript/src/decodeImage.d.ts.map +1 -1
- package/lib/typescript/src/decodeImage.web.d.ts +3 -0
- package/lib/typescript/src/decodeImage.web.d.ts.map +1 -0
- package/lib/typescript/src/errors.d.ts +6 -0
- package/lib/typescript/src/errors.d.ts.map +1 -0
- package/lib/typescript/src/format.d.ts +15 -12
- package/lib/typescript/src/format.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +6 -7
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +9 -0
- package/lib/typescript/src/index.web.d.ts.map +1 -0
- package/lib/typescript/src/mock.d.ts +9 -8
- package/lib/typescript/src/mock.d.ts.map +1 -1
- package/lib/typescript/src/permissions.d.ts +4 -8
- package/lib/typescript/src/permissions.d.ts.map +1 -1
- package/lib/typescript/src/permissions.web.d.ts +4 -0
- package/lib/typescript/src/permissions.web.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +31 -56
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +9 -2
- package/src/HmsScanView/HmsScanView.tsx +67 -0
- package/src/HmsScanView/HmsScanView.web.tsx +22 -0
- package/src/HmsScanView/types.ts +17 -0
- package/src/HmsScanViewNativeComponent.ts +7 -5
- package/src/NativeHmsScan.ts +3 -5
- package/src/ScanError.ts +13 -0
- package/src/Scanner/DeniedOverlay.tsx +4 -2
- package/src/Scanner/ResultFail.tsx +23 -5
- package/src/Scanner/ResultFocus/ResultFocus.tsx +43 -0
- package/src/Scanner/ResultFocus/styles.ts +25 -0
- package/src/Scanner/ResultFocus/types.ts +8 -0
- package/src/Scanner/ScanHint.tsx +16 -11
- package/src/Scanner/ScanToolbar.tsx +35 -13
- package/src/Scanner/ScanTopBar.tsx +20 -12
- package/src/Scanner/Scanner.tsx +13 -436
- package/src/Scanner/Scanner.web.tsx +26 -0
- package/src/Scanner/ScannerInner.tsx +391 -0
- package/src/Scanner/styles.ts +6 -0
- package/src/Scanner/types.ts +36 -0
- package/src/constants.ts +55 -0
- package/src/decodeImage.ts +35 -29
- package/src/decodeImage.web.ts +8 -0
- package/src/errors.ts +26 -0
- package/src/format.ts +77 -76
- package/src/index.tsx +17 -32
- package/src/index.web.tsx +22 -0
- package/src/mock.ts +21 -29
- package/src/permissions.ts +33 -20
- package/src/permissions.web.ts +9 -0
- package/src/types.ts +38 -126
- package/lib/module/HmsScanView.js +0 -43
- package/lib/module/HmsScanView.js.map +0 -1
- package/lib/module/Scanner/ResultFocus.js +0 -171
- package/lib/module/Scanner/ResultFocus.js.map +0 -1
- package/lib/typescript/src/HmsScanView.d.ts +0 -33
- package/lib/typescript/src/HmsScanView.d.ts.map +0 -1
- package/lib/typescript/src/Scanner/ResultFocus.d.ts +0 -14
- package/lib/typescript/src/Scanner/ResultFocus.d.ts.map +0 -1
- package/src/HmsScanView.tsx +0 -87
- package/src/Scanner/ResultFocus.tsx +0 -122
package/lib/module/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
package/lib/module/mock.js
CHANGED
|
@@ -1,30 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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
|
package/lib/module/mock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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","
|
|
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":[]}
|
package/lib/module/types.js
CHANGED
|
@@ -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
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
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
|
|
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
|
-
/** 限定码制(逗号分隔的
|
|
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
|
-
|
|
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,
|
|
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
|
|
6
|
-
*
|
|
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
|
|
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,
|
|
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,
|
|
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 @@
|
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanHint.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanHint.tsx"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"ScanHint.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanHint.tsx"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,aAAa,2CAQ1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanToolbar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanToolbar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScanToolbar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanToolbar.tsx"],"names":[],"mappings":"AAYA,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAGD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAO,GACR,EAAE,gBAAgB,2CAmBlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanTopBar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanTopBar.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"ScanTopBar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanTopBar.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAU9D"}
|
|
@@ -1,47 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
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 的主题令牌与组件绘制(统一风格)。自带 ThemeProvider,
|
|
44
|
-
* 可直接整屏接入;放进宿主已有的 ThemeProvider 里也兼容。
|
|
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":"
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|