zmp-sdk 2.53.2 → 2.53.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.
package/index.d.ts CHANGED
@@ -71,7 +71,6 @@ declare enum ShareSheetType {
71
71
  video = 12,
72
72
  link = 4,
73
73
  oa = 5,
74
- zmp = 20,
75
74
  multi_image = 21,
76
75
  zmp_deep_link = 4,
77
76
  text = 22
@@ -1442,6 +1441,10 @@ type VoucherAction = {
1442
1441
  */
1443
1442
  cta: string;
1444
1443
  };
1444
+ /**
1445
+ * @deprecated Dùng `AddCardParams` với `type` là `voucher`; type này sẽ bị loại bỏ cùng
1446
+ * `addVoucher`.
1447
+ */
1445
1448
  type AddVoucherData = {
1446
1449
  /**
1447
1450
  * Tên voucher / ưu đãi.
@@ -1504,6 +1507,112 @@ type AddVoucherReturns = {
1504
1507
  */
1505
1508
  oaMessageToken: string;
1506
1509
  };
1510
+ /**
1511
+ * Loại thẻ mà `addCard` hỗ trợ. Hiện chỉ có `voucher`.
1512
+ */
1513
+ type CardType = "voucher";
1514
+ type VoucherCardMeta = {
1515
+ /**
1516
+ * Mã voucher dạng plain text, hệ thống tự render thành QR / barcode;
1517
+ * tối đa 140 ký tự. Bỏ trống thì thẻ không hiển thị mã.
1518
+ */
1519
+ code?: string;
1520
+ /**
1521
+ * Loại mã hiển thị, chỉ có tác dụng khi có `code`. Mặc định là `qr_code`.
1522
+ */
1523
+ display?: VoucherDisplayType;
1524
+ /**
1525
+ * Nguồn phát hành voucher.
1526
+ */
1527
+ partner?: string;
1528
+ /**
1529
+ * Tên ưu đãi, khác với `data.name`; tối đa 200 ký tự. Hiện chưa được sử dụng: thẻ
1530
+ * không hiển thị trường này.
1531
+ */
1532
+ name?: string;
1533
+ /**
1534
+ * Tên thương hiệu / cửa hàng phát hành; tối đa 100 ký tự.
1535
+ */
1536
+ merchantName: string;
1537
+ /**
1538
+ * OA ID của merchant trên Zalo; tối đa 50 ký tự.
1539
+ */
1540
+ merchantOaId: string;
1541
+ /**
1542
+ * Tên chủ thẻ; tối đa 100 ký tự. Bỏ trống thì thẻ không hiển thị tên chủ thẻ.
1543
+ */
1544
+ ownerName?: string;
1545
+ /**
1546
+ * Điều kiện áp dụng tóm tắt, hiển thị trực tiếp trên thẻ; tối đa 500 ký tự.
1547
+ */
1548
+ condition: string;
1549
+ /**
1550
+ * Điều kiện áp dụng chi tiết; tối đa 2000 ký tự.
1551
+ */
1552
+ conditionDetail?: string;
1553
+ /**
1554
+ * Thời gian bắt đầu hiệu lực, epoch milliseconds; phải nhỏ hơn `expiredAt`.
1555
+ */
1556
+ validAt?: number;
1557
+ /**
1558
+ * Hạn sử dụng, epoch milliseconds; phải ở tương lai và không quá 365 ngày.
1559
+ */
1560
+ expiredAt: number;
1561
+ /**
1562
+ * Danh sách CTA hiển thị trên thẻ (tối đa 3).
1563
+ */
1564
+ actions?: VoucherAction[];
1565
+ };
1566
+ type VoucherCardData = {
1567
+ /**
1568
+ * Tiêu đề hiển thị trên thẻ, thường đặt bằng tên merchant; tối đa 200 ký tự.
1569
+ */
1570
+ title: string;
1571
+ /**
1572
+ * Tên voucher / ưu đãi, hiển thị nổi bật; tối đa 200 ký tự.
1573
+ */
1574
+ name: string;
1575
+ /**
1576
+ * Mô tả phụ dưới tên voucher, thường là tên chủ thẻ; tối đa 500 ký tự.
1577
+ */
1578
+ desc?: string;
1579
+ /**
1580
+ * Logo merchant dạng tròn; tối đa 500 ký tự. Dùng cho cả cửa sổ xem trước lẫn Ví QR.
1581
+ * Bỏ trống hoặc URL load lỗi thì dùng ảnh mặc định.
1582
+ */
1583
+ avatarUrl?: string;
1584
+ /**
1585
+ * Thông tin nghiệp vụ của voucher.
1586
+ */
1587
+ meta: VoucherCardMeta;
1588
+ };
1589
+ /**
1590
+ * Dữ liệu thẻ, tương ứng với `type` được truyền vào `addCard`.
1591
+ */
1592
+ type AddCardData = VoucherCardData;
1593
+ type AddCardParams = {
1594
+ /**
1595
+ * Loại thẻ; hiện chỉ hỗ trợ `voucher`.
1596
+ */
1597
+ type: CardType;
1598
+ /**
1599
+ * Dữ liệu thẻ, tương ứng với `type`.
1600
+ */
1601
+ data: AddCardData;
1602
+ /**
1603
+ * Token để merchant gửi tin nhắn không tốn phí. Lấy từ callback
1604
+ * `onDataReceived` của `showFunctionButtonWidget`.
1605
+ */
1606
+ interactToken?: string;
1607
+ };
1608
+ type AddCardReturns = {
1609
+ /**
1610
+ * Token để merchant gửi tin nhắn OA cho người dùng; không có trường này nếu không gửi
1611
+ * `interactToken` hoặc token không hợp lệ. Vẫn có giá trị khi người dùng không
1612
+ * thêm thẻ.
1613
+ */
1614
+ oaMessageToken?: string;
1615
+ };
1507
1616
  type TempFile = {
1508
1617
  /**
1509
1618
  * Đường dẫn các temp file đã chọn.
@@ -3869,7 +3978,7 @@ declare const openShareSheetArgs: ZodUnion<[ZodObject<{
3869
3978
  title: string;
3870
3979
  thumbnail: string;
3871
3980
  };
3872
- type: "zmp" | "zmp_deep_link";
3981
+ type: "zmp_deep_link" | "zmp";
3873
3982
  }, {
3874
3983
  data: {
3875
3984
  path?: string | undefined;
@@ -3877,7 +3986,7 @@ declare const openShareSheetArgs: ZodUnion<[ZodObject<{
3877
3986
  title: string;
3878
3987
  thumbnail: string;
3879
3988
  };
3880
- type: "zmp" | "zmp_deep_link";
3989
+ type: "zmp_deep_link" | "zmp";
3881
3990
  }>]>[];
3882
3991
  /**
3883
3992
  * API cho phép ứng dụng mở giao diện chia sẻ để người dùng chia sẻ thông tin với bạn bè Zalo.
@@ -3892,7 +4001,7 @@ declare const openShareSheetArgs: ZodUnion<[ZodObject<{
3892
4001
  * - `oa`: Chia sẻ Official Account.
3893
4002
  * - `gif`: Chia sẻ ảnh động.
3894
4003
  * - `video`: Chia sẻ video.
3895
- * - `zmp`: Chia sẻ page hiện tại của Zalo Mini App.
4004
+ * - `zmp`: Đã ngừng hỗ trợ. SDK tự chuyển sang `zmp_deep_link`, Mini App nên đổi sang dùng `zmp_deep_link`.
3896
4005
  * - `zmp_deep_link`: Chia sẻ page hiện tại của Zalo Mini App thông qua deep link (hỗ trợ từ API 2.25.7).
3897
4006
  * @param {object} data Nội dung cần chia sẻ, tùy thuộc vào `type`.
3898
4007
  *
@@ -3971,19 +4080,6 @@ declare const openShareSheetArgs: ZodUnion<[ZodObject<{
3971
4080
  * console.log(data);
3972
4081
  * ```
3973
4082
  *
3974
- * @example Chia sẻ page hiện tại của Zalo Mini App:
3975
- * ```ts
3976
- * const data = await openShareSheet({
3977
- * type: "zmp",
3978
- * data: {
3979
- * title: "My Zalo Mini App - HomePage",
3980
- * description: "Home page",
3981
- * thumbnail: "https://sample-videos.com/img/Sample-jpg-image-50kb.jpg",
3982
- * },
3983
- * });
3984
- * console.log(data);
3985
- * ```
3986
- *
3987
4083
  * @example Chia sẻ page hiện tại của Zalo Mini App thông qua deep link:
3988
4084
  * ```ts
3989
4085
  * const data = await openShareSheet({
@@ -5356,11 +5452,12 @@ declare function addRating(args?: AsyncVoidCallback): Promise<void>;
5356
5452
  /**
5357
5453
  * Lưu voucher vào Ví QR của người dùng.
5358
5454
  *
5359
- * API này gửi dữ liệu voucher từ Mini App về server trung gian. Server trung gian
5360
- * chịu trách nhiệm đăng nhập Ví QR, mã hoá dữ liệu bằng `secureKey`, sau đó trả về
5361
- * deeplink thêm thẻ vào Ví QR. SDK sẽ tự mở deeplink này bằng `openWebview` để đưa
5362
- * người dùng tới màn hình thêm thẻ; deeplink không được trả về cho bên gọi, chỉ
5363
- * trả về `oaMessageToken`.
5455
+ * Khi gọi API, Zalo mở cửa sổ xem trước thẻ ở nửa dưới màn hình như {@link addCard}.
5456
+ * Người dùng chọn "Thêm vào ví" thì voucher được lưu vào Ví QR, chọn "Bỏ qua" hoặc
5457
+ * đóng cửa sổ thì không có thẻ nào được lưu. API hoàn tất khi cửa sổ đóng và trả về
5458
+ * `oaMessageToken`.
5459
+ *
5460
+ * @deprecated Dùng {@link addCard} với `type` là `voucher`.
5364
5461
  *
5365
5462
  * @zaloOnly Chỉ hoạt động khi chạy bên trong ứng dụng Zalo mobile.
5366
5463
  *
@@ -5373,7 +5470,7 @@ declare function addRating(args?: AsyncVoidCallback): Promise<void>;
5373
5470
  * @param {string} merchantLogoUrl Logo OA, dùng làm logo hiển thị trên voucher.
5374
5471
  * @param {string} [conditionDetail] Điều kiện áp dụng chi tiết (phụ).
5375
5472
  * @param {number} [validAt] Thời gian bắt đầu hiệu lực, epoch milliseconds.
5376
- * @param {string} [code] Mã voucher; không truyền thì tự sinh QR OA của merchant.
5473
+ * @param {string} [code] Mã voucher; không truyền thì thẻ không hiển thị mã.
5377
5474
  * @param {"qr_code" | "bar_code"} [display="qr_code"] Loại mã hiển thị.
5378
5475
  * @param {string} [ownerName] Tên khách hàng sở hữu; không truyền thì không hiển thị trên vé.
5379
5476
  * @param {string} [interactToken] Token để merchant gửi tin nhắn không tốn phí.
@@ -5382,9 +5479,9 @@ declare function addRating(args?: AsyncVoidCallback): Promise<void>;
5382
5479
  * @param {VoucherAction[]} [actions] Danh sách CTA hiển thị trên thẻ (tối đa 2);
5383
5480
  * nội dung button (`cta`) tối đa 15 ký tự.
5384
5481
  *
5385
- * @returns {Promise<AddVoucherReturns>} Promise resolve khi tạo thẻ thành công và
5386
- * deeplink đã được mở, trả về `oaMessageToken` (chuỗi rỗng nếu server không
5387
- * trả về); reject kèm mã lỗi từ server nếu thất bại.
5482
+ * @returns {Promise<AddVoucherReturns>} Promise resolve khi cửa sổ đóng lại, kể cả
5483
+ * khi người dùng không lưu thẻ, trả về `oaMessageToken` (chuỗi rỗng nếu không truyền
5484
+ * `interactToken` hoặc token không còn hợp lệ); reject kèm mã lỗi nếu lưu thẻ thất bại.
5388
5485
  *
5389
5486
  * @example Thêm voucher vào Ví QR:
5390
5487
  * ```ts
@@ -5420,6 +5517,56 @@ declare function addRating(args?: AsyncVoidCallback): Promise<void>;
5420
5517
  */
5421
5518
  declare function addVoucher(args: AsyncCallback<AddVoucherReturns> & AddVoucherData): Promise<AddVoucherReturns>;
5422
5519
 
5520
+ /**
5521
+ * API lưu thẻ vào Ví QR của người dùng, hiện hỗ trợ thẻ voucher (ưu đãi).
5522
+ *
5523
+ * Khi gọi API, Zalo mở cửa sổ xem trước thẻ ở nửa dưới màn hình. Người dùng chọn "Thêm vào ví" thì thẻ được lưu vào Ví QR và Zalo hiện thông báo kết quả; lưu thẻ thất bại thì API trả về lỗi. Người dùng chọn "Bỏ qua" hoặc đóng cửa sổ thì không có thẻ nào được lưu; API hoàn tất ngay sau khi cửa sổ được đóng.
5524
+ *
5525
+ * @zaloOnly Chỉ hoạt động khi chạy bên trong ứng dụng Zalo mobile.
5526
+ *
5527
+ * @param {CardType} type Loại thẻ, hiện chỉ hỗ trợ `voucher`.
5528
+ * @param {AddCardData} data Dữ liệu thẻ tương ứng với `type`. Với `voucher`, các trường bắt buộc là `title`, `name`, `meta.merchantName`, `meta.merchantOaId`, `meta.condition` và `meta.expiredAt`; xem {@link VoucherCardData} để biết toàn bộ các trường.
5529
+ * @param {string} [interactToken] Token để Mini App gửi tin nhắn OA cho người dùng không tốn phí, lấy từ callback `onDataReceived` của {@link showFunctionButtonWidget}.
5530
+ *
5531
+ * @returns {AddCardReturns} `oaMessageToken` để gửi tin nhắn OA cho người dùng. Không có trường `oaMessageToken` nếu không truyền `interactToken` hoặc token không còn hợp lệ; nếu có, token vẫn được trả về kể cả người dùng không thêm vào ví.
5532
+ *
5533
+ * @example Thêm voucher vào Ví QR:
5534
+ * ```ts
5535
+ * await addCard({
5536
+ * type: "voucher",
5537
+ * data: {
5538
+ * title: "The Face Shop",
5539
+ * name: "Giảm 50% giá trị đơn hàng",
5540
+ * avatarUrl: "https://static.example.com/logo.png",
5541
+ * meta: {
5542
+ * code: "SUMMER50",
5543
+ * merchantName: "The Face Shop",
5544
+ * merchantOaId: "2646373759294038927",
5545
+ * condition: "Áp dụng cho hóa đơn trên 200.000đ",
5546
+ * expiredAt: 1743440399000,
5547
+ * },
5548
+ * },
5549
+ * });
5550
+ * ```
5551
+ *
5552
+ * @example Gửi kèm `interactToken` lấy từ Function Button Widget:
5553
+ * ```ts
5554
+ * showFunctionButtonWidget({
5555
+ * id: "orderButton",
5556
+ * type: "ORDER",
5557
+ * text: "Tạo đơn hàng",
5558
+ * onDataReceived: async (interactToken) => {
5559
+ * const { oaMessageToken } = await addCard({
5560
+ * type: "voucher",
5561
+ * data: voucherCardData,
5562
+ * interactToken,
5563
+ * });
5564
+ * },
5565
+ * });
5566
+ * ```
5567
+ */
5568
+ declare function addCard(args: AsyncCallback<AddCardReturns> & AddCardParams): Promise<AddCardReturns>;
5569
+
5423
5570
  declare const interactOAArgs$1: ZodObject<{
5424
5571
  oaId: ZodString;
5425
5572
  }, "strip", ZodTypeAny, {
@@ -6372,6 +6519,7 @@ declare const otherApis: {
6372
6519
  requestSendNotification: typeof requestSendNotification;
6373
6520
  addRating: typeof addRating;
6374
6521
  addVoucher: typeof addVoucher;
6522
+ addCard: typeof addCard;
6375
6523
  interactOA: typeof interactOA;
6376
6524
  interactOa: typeof interactOA;
6377
6525
  isAllowedInteractWithOA: typeof checkIsAllowedInteractWithOA;
@@ -6438,4 +6586,4 @@ declare const otherApis: {
6438
6586
  ZMACameraImp: typeof ZMACameraImp;
6439
6587
  };
6440
6588
 
6441
- export { Action, AddVoucherData, AddVoucherReturns, AndroidBottomNavigationBarType, AppError, AsyncCallback, AsyncCallbackFailObject, AsyncProgressCallback, AsyncVoidCallback, AuthorizeType, CameraEvents, CameraParams, ChatType, CheckStateBioAuthenticationReturns, CheckTransactionReturns, CheckZaloCameraPermissionReturns, CheckoutKit, CheckoutPopupOpenParams, CheckoutPopupResponseData, CheckoutSDK, ChooseImageReturns, Common, ContextInfo, CreateOrderIAPReturns, CreateOrderReturns, Events as EventName, Events, FacingMode, FileInfo, FunctionProps, GetAppInfoReturns, GetAuthCodeReturns, GetBeaconDiscoveryReturns, GetDeviceInfoReturn, GetFileInfoReturns, GetLocationReturns, GetNetworkTypeReturns, GetPhoneNumberReturns, GetSettingReturn, GetStorageReturns, GetUserInfoReturns, GetZPITokenReturns, IAPMethodType, IAPPayType, IAPPayTypeType, IOSSafeAreaBottomType, IsSupportReturns, JumpStatus, KeepScreenReturns, LFSStorage, ListFile, LogData, MediaConstraints, MediaDevice, MediaPickerType, NativeCallBackData, NetworkType, OpenBioAuthenticationReturns, OpenMediaPickerReturns, OpenPostFeedReturns, OpenProfilePickerReturns, OpenProfilePickerType, OpenShareSheetReturns, OpenWebviewReturns, OrientationType, Payment, PhotoConstraint, PhotoFormat, PhotoFrame, PhotoQuality, PickAttr, PickedProfile, PlatformType, PostFeedType, ProfileInfo, ProfileType, ProrationMode, ProrationModeType, RemoveStorageReturns, RequestCameraPermissionReturns, SaveFileReturns, ScanNFCType, ScanQRCodeReturns, SelectPaymentMethodReturns, SetStorageReturns, ShareSheetType, StatusBarType, StorageInfo, StreamType, SystemInfo, TempFile, TextAlignType, UserInfo, VibrateType, VoucherAction, VoucherActionType, VoucherDisplayType, ZMACamera, ZMACameraImp, addRating, addVoucher, authorize, checkNFC, checkStateBioAuthentication, checkTransaction, checkZaloCameraPermission, chooseImage, clearStorage, closeApp, closeLoading, configAppView, connectWifi, createCameraContext, createOrder, createOrderIAP, createShortcut, otherApis as default, displayAd, downloadFile, events, favoriteApp, followOA, getAccessToken, getAppInfo, getAuthCode, getBeacons, getContext, getContextAsync, getDeviceId, getDeviceIdAsync, getDeviceInfo, getEntrySource, getIDToken, getLocation, getNetworkType, getPhoneNumber, getRouteParams, getSetting, getShareableLink, getStorage, getStorageInfo, getSystemInfo, getUserID, getUserInfo, getVersion, getZPIToken, hideKeyboard, iBeaconInfo, interactOA, interactOA as interactOa, checkIsAllowedInteractWithOA as isAllowedInteractWithOA, keepScreen, loadAd, login, minimizeApp, nativeStorage, offConfirmToExit, offKeepScreen, onCallbackData, onConfirmToExit, onKeepScreen, onNetworkStatusChange, openBioAuthentication, openChat, openDocument, openGroupList, openMediaPicker, openMiniApp, openOutApp, openPermissionSetting, openPhone, openPostFeed, openProfile, openProfilePicker, openSMS, openShareSheet, openWebview, purchase, refreshAd, removeStorage, requestCameraPermission, requestSendNotification, requestUpdateZalo, saveImageToGallery, saveVideoToGallery, scanNFC, scanQRCode, selectPaymentMethod, sendDataToPreviousMiniApp, setAccessToken, setAndroidBottomNavigationBar, setIOSBottomSafeArea, setNavigationBarColor, setNavigationBarLeftButton, setNavigationBarTitle, setStatusBar, setStorage, setupAd, showCustomOAWidget, showFunctionButtonWidget, showOAWidget, showToast, startBeaconDiscovery, stopBeaconDiscovery, trackingManager, unfollowOA, vibrate, viewOAQr };
6589
+ export { Action, AddCardData, AddCardParams, AddCardReturns, AddVoucherData, AddVoucherReturns, AndroidBottomNavigationBarType, AppError, AsyncCallback, AsyncCallbackFailObject, AsyncProgressCallback, AsyncVoidCallback, AuthorizeType, CameraEvents, CameraParams, CardType, ChatType, CheckStateBioAuthenticationReturns, CheckTransactionReturns, CheckZaloCameraPermissionReturns, CheckoutKit, CheckoutPopupOpenParams, CheckoutPopupResponseData, CheckoutSDK, ChooseImageReturns, Common, ContextInfo, CreateOrderIAPReturns, CreateOrderReturns, Events as EventName, Events, FacingMode, FileInfo, FunctionProps, GetAppInfoReturns, GetAuthCodeReturns, GetBeaconDiscoveryReturns, GetDeviceInfoReturn, GetFileInfoReturns, GetLocationReturns, GetNetworkTypeReturns, GetPhoneNumberReturns, GetSettingReturn, GetStorageReturns, GetUserInfoReturns, GetZPITokenReturns, IAPMethodType, IAPPayType, IAPPayTypeType, IOSSafeAreaBottomType, IsSupportReturns, JumpStatus, KeepScreenReturns, LFSStorage, ListFile, LogData, MediaConstraints, MediaDevice, MediaPickerType, NativeCallBackData, NetworkType, OpenBioAuthenticationReturns, OpenMediaPickerReturns, OpenPostFeedReturns, OpenProfilePickerReturns, OpenProfilePickerType, OpenShareSheetReturns, OpenWebviewReturns, OrientationType, Payment, PhotoConstraint, PhotoFormat, PhotoFrame, PhotoQuality, PickAttr, PickedProfile, PlatformType, PostFeedType, ProfileInfo, ProfileType, ProrationMode, ProrationModeType, RemoveStorageReturns, RequestCameraPermissionReturns, SaveFileReturns, ScanNFCType, ScanQRCodeReturns, SelectPaymentMethodReturns, SetStorageReturns, ShareSheetType, StatusBarType, StorageInfo, StreamType, SystemInfo, TempFile, TextAlignType, UserInfo, VibrateType, VoucherAction, VoucherActionType, VoucherCardData, VoucherCardMeta, VoucherDisplayType, ZMACamera, ZMACameraImp, addCard, addRating, addVoucher, authorize, checkNFC, checkStateBioAuthentication, checkTransaction, checkZaloCameraPermission, chooseImage, clearStorage, closeApp, closeLoading, configAppView, connectWifi, createCameraContext, createOrder, createOrderIAP, createShortcut, otherApis as default, displayAd, downloadFile, events, favoriteApp, followOA, getAccessToken, getAppInfo, getAuthCode, getBeacons, getContext, getContextAsync, getDeviceId, getDeviceIdAsync, getDeviceInfo, getEntrySource, getIDToken, getLocation, getNetworkType, getPhoneNumber, getRouteParams, getSetting, getShareableLink, getStorage, getStorageInfo, getSystemInfo, getUserID, getUserInfo, getVersion, getZPIToken, hideKeyboard, iBeaconInfo, interactOA, interactOA as interactOa, checkIsAllowedInteractWithOA as isAllowedInteractWithOA, keepScreen, loadAd, login, minimizeApp, nativeStorage, offConfirmToExit, offKeepScreen, onCallbackData, onConfirmToExit, onKeepScreen, onNetworkStatusChange, openBioAuthentication, openChat, openDocument, openGroupList, openMediaPicker, openMiniApp, openOutApp, openPermissionSetting, openPhone, openPostFeed, openProfile, openProfilePicker, openSMS, openShareSheet, openWebview, purchase, refreshAd, removeStorage, requestCameraPermission, requestSendNotification, requestUpdateZalo, saveImageToGallery, saveVideoToGallery, scanNFC, scanQRCode, selectPaymentMethod, sendDataToPreviousMiniApp, setAccessToken, setAndroidBottomNavigationBar, setIOSBottomSafeArea, setNavigationBarColor, setNavigationBarLeftButton, setNavigationBarTitle, setStatusBar, setStorage, setupAd, showCustomOAWidget, showFunctionButtonWidget, showOAWidget, showToast, startBeaconDiscovery, stopBeaconDiscovery, trackingManager, unfollowOA, vibrate, viewOAQr };