@cloudparse/up-miniapps-sdk 0.5.4 → 0.5.6
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/dist/index.browser.min.js +100 -96
- package/dist/index.browser.min.js.map +1 -1
- package/dist/index.cjs +412 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +137 -2
- package/dist/index.d.ts +137 -2
- package/dist/index.js +409 -31
- package/dist/index.js.map +1 -1
- package/dist/style.css +6 -0
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -44,6 +44,7 @@ __export(src_exports, {
|
|
|
44
44
|
MapMenuTitle: () => MapMenuTitle,
|
|
45
45
|
MiniAppSDK: () => MiniAppSDK,
|
|
46
46
|
MockLocationContext: () => MockLocationContext,
|
|
47
|
+
QRScanner: () => QRScanner,
|
|
47
48
|
RouteLayer: () => RouteLayer,
|
|
48
49
|
SDKMapProvider: () => SDKMapProvider,
|
|
49
50
|
SDKProvider: () => SDKProvider,
|
|
@@ -410,6 +411,7 @@ var resolveHeightToPixels = (height, containerHeight) => {
|
|
|
410
411
|
};
|
|
411
412
|
var CONTENT_EDGE_PULL_THRESHOLD_PX = 24;
|
|
412
413
|
var HANDLE_BAR_HEIGHT_PX = 32;
|
|
414
|
+
var HANDLE_TAP_CLICK_SUPPRESSION_MS = 400;
|
|
413
415
|
var MapDrawer = (0, import_react2.forwardRef)(
|
|
414
416
|
({
|
|
415
417
|
menuItems,
|
|
@@ -674,7 +676,7 @@ var MapDrawer = (0, import_react2.forwardRef)(
|
|
|
674
676
|
suppressNextClickRef.current = true;
|
|
675
677
|
setTimeout(() => {
|
|
676
678
|
suppressNextClickRef.current = false;
|
|
677
|
-
},
|
|
679
|
+
}, HANDLE_TAP_CLICK_SUPPRESSION_MS);
|
|
678
680
|
}
|
|
679
681
|
setTouchStartY(null);
|
|
680
682
|
setCurrentTouchY(null);
|
|
@@ -738,6 +740,12 @@ var MapDrawer = (0, import_react2.forwardRef)(
|
|
|
738
740
|
}
|
|
739
741
|
});
|
|
740
742
|
};
|
|
743
|
+
const handleNativeClickCapture = (e) => {
|
|
744
|
+
if (!suppressNextClickRef.current) return;
|
|
745
|
+
suppressNextClickRef.current = false;
|
|
746
|
+
e.preventDefault();
|
|
747
|
+
e.stopPropagation();
|
|
748
|
+
};
|
|
741
749
|
container.addEventListener("touchstart", handleNativeTouchStart, {
|
|
742
750
|
passive: true
|
|
743
751
|
});
|
|
@@ -747,10 +755,16 @@ var MapDrawer = (0, import_react2.forwardRef)(
|
|
|
747
755
|
container.addEventListener("touchend", handleNativeTouchEnd, {
|
|
748
756
|
passive: true
|
|
749
757
|
});
|
|
758
|
+
container.addEventListener("click", handleNativeClickCapture, {
|
|
759
|
+
capture: true
|
|
760
|
+
});
|
|
750
761
|
return () => {
|
|
751
762
|
container.removeEventListener("touchstart", handleNativeTouchStart);
|
|
752
763
|
container.removeEventListener("touchmove", handleNativeTouchMove);
|
|
753
764
|
container.removeEventListener("touchend", handleNativeTouchEnd);
|
|
765
|
+
container.removeEventListener("click", handleNativeClickCapture, {
|
|
766
|
+
capture: true
|
|
767
|
+
});
|
|
754
768
|
};
|
|
755
769
|
}, [
|
|
756
770
|
side,
|
|
@@ -3318,6 +3332,173 @@ function renderMap(containerId, props = {}) {
|
|
|
3318
3332
|
return root;
|
|
3319
3333
|
}
|
|
3320
3334
|
|
|
3335
|
+
// src/services/qrCodeService.ts
|
|
3336
|
+
var import_qr_code_styling = __toESM(require("qr-code-styling"), 1);
|
|
3337
|
+
var DEFAULT_SIZE = 512;
|
|
3338
|
+
var DEFAULT_COLOR = "#18181b";
|
|
3339
|
+
var DEFAULT_BACKGROUND = "#ffffff";
|
|
3340
|
+
var DEFAULT_BORDER_RADIUS_PERCENT = 6;
|
|
3341
|
+
var DEFAULT_LOGO_IMAGE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+oIBggpDsP9ZQ0AACAASURBVHja7L15tG3rVRf4m3ufc+6953bv3Zc83ktCBQgh9OkEAwgYQEKgpEBURB02Y6ChRALRSBqsGAgEIyKOoIJWY6FWjeGowbCaIVKWHVJhlF1ZqNiVFgUlMQl5zb339HvvNeuPtZu1vjW7b+1zX+65Z84x9jjn7LPWt9bXzjl/swOSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkh4IUQ5B0nkTf/9X7jBNnibC06DJbezuvxRXblzD3v4emsXjaBY3wHwFwLRdhctlyKsVSe3v4aVLxa/S/RRY+tR+zd1r2LiXhWevvqaiHePZq3duGmB2BsxO5Wu5GKv12LHzDKGvLLxvr93O7zdudS4m+RpvbM17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";
|
|
3342
|
+
var LABEL_FONT = "600 %PXpx -apple-system, BlinkMacSystemFont, sans-serif";
|
|
3343
|
+
var LABEL_AREA_RATIO = 0.175;
|
|
3344
|
+
var LABEL_PADDING_RATIO = -0.04;
|
|
3345
|
+
async function generateQrCode(data, options = {}) {
|
|
3346
|
+
const size = options.size ?? DEFAULT_SIZE;
|
|
3347
|
+
const color = options.color ?? DEFAULT_COLOR;
|
|
3348
|
+
const backgroundColor = options.backgroundColor ?? DEFAULT_BACKGROUND;
|
|
3349
|
+
const label = options.label || (options.appName ? `UP - ${options.appName}` : "");
|
|
3350
|
+
const qr = new import_qr_code_styling.default({
|
|
3351
|
+
backgroundOptions: {
|
|
3352
|
+
color: backgroundColor,
|
|
3353
|
+
...options.backgroundGradient ? { gradient: options.backgroundGradient } : {}
|
|
3354
|
+
},
|
|
3355
|
+
cornersDotOptions: {
|
|
3356
|
+
color: options.cornersDotColor ?? color,
|
|
3357
|
+
type: options.cornersDotType ?? "extra-rounded",
|
|
3358
|
+
...options.cornersDotGradient ? { gradient: options.cornersDotGradient } : {}
|
|
3359
|
+
},
|
|
3360
|
+
cornersSquareOptions: {
|
|
3361
|
+
color: options.cornersSquareColor ?? color,
|
|
3362
|
+
type: options.cornersSquareType ?? "extra-rounded",
|
|
3363
|
+
...options.cornersSquareGradient ? { gradient: options.cornersSquareGradient } : {}
|
|
3364
|
+
},
|
|
3365
|
+
data,
|
|
3366
|
+
dotsOptions: {
|
|
3367
|
+
color,
|
|
3368
|
+
type: options.dotsType ?? "extra-rounded",
|
|
3369
|
+
...options.dotsGradient ? { gradient: options.dotsGradient } : {}
|
|
3370
|
+
},
|
|
3371
|
+
height: size,
|
|
3372
|
+
margin: options.margin ?? 0,
|
|
3373
|
+
qrOptions: {
|
|
3374
|
+
errorCorrectionLevel: options.errorCorrectionLevel ?? "Q",
|
|
3375
|
+
mode: "Byte",
|
|
3376
|
+
typeNumber: 0
|
|
3377
|
+
},
|
|
3378
|
+
shape: options.shape ?? "square",
|
|
3379
|
+
type: "canvas",
|
|
3380
|
+
width: size,
|
|
3381
|
+
...options.logo !== null ? {
|
|
3382
|
+
image: options.logo ?? DEFAULT_LOGO_IMAGE,
|
|
3383
|
+
imageOptions: {
|
|
3384
|
+
hideBackgroundDots: options.hideBackgroundDots ?? true,
|
|
3385
|
+
imageSize: options.logoSize ?? 0.3,
|
|
3386
|
+
margin: options.logoMargin ?? 0
|
|
3387
|
+
}
|
|
3388
|
+
} : {}
|
|
3389
|
+
});
|
|
3390
|
+
const qrBlob = await qr.getRawData("png");
|
|
3391
|
+
if (!qrBlob || !(qrBlob instanceof Blob)) {
|
|
3392
|
+
throw new Error("Failed to generate QR code image");
|
|
3393
|
+
}
|
|
3394
|
+
const qrDataUrl = await blobToDataUrl(qrBlob);
|
|
3395
|
+
const outerPadding = options.outerPadding ?? 32;
|
|
3396
|
+
const borderRadiusPercent = options.borderRadius ?? DEFAULT_BORDER_RADIUS_PERCENT;
|
|
3397
|
+
const composed = label ? await composeWithLabel(qrDataUrl, label, size, backgroundColor, color) : qrDataUrl;
|
|
3398
|
+
return finalizeImage(composed, outerPadding, borderRadiusPercent, backgroundColor);
|
|
3399
|
+
}
|
|
3400
|
+
var blobToDataUrl = (blob) => new Promise((resolve, reject) => {
|
|
3401
|
+
const reader = new FileReader();
|
|
3402
|
+
reader.onloadend = () => resolve(reader.result);
|
|
3403
|
+
reader.onerror = reject;
|
|
3404
|
+
reader.readAsDataURL(blob);
|
|
3405
|
+
});
|
|
3406
|
+
var loadImage = (src) => new Promise((resolve, reject) => {
|
|
3407
|
+
const img = new Image();
|
|
3408
|
+
img.onload = () => resolve(img);
|
|
3409
|
+
img.onerror = reject;
|
|
3410
|
+
img.src = src;
|
|
3411
|
+
});
|
|
3412
|
+
async function composeWithLabel(qrDataUrl, label, size, backgroundColor, textColor) {
|
|
3413
|
+
const qrImage = await loadImage(qrDataUrl);
|
|
3414
|
+
const labelAreaHeight = Math.round(size * LABEL_AREA_RATIO);
|
|
3415
|
+
const padding = Math.round(size * LABEL_PADDING_RATIO);
|
|
3416
|
+
const canvas = document.createElement("canvas");
|
|
3417
|
+
canvas.width = size;
|
|
3418
|
+
canvas.height = size + labelAreaHeight;
|
|
3419
|
+
const ctx = canvas.getContext("2d");
|
|
3420
|
+
if (!ctx) {
|
|
3421
|
+
return qrDataUrl;
|
|
3422
|
+
}
|
|
3423
|
+
ctx.fillStyle = backgroundColor;
|
|
3424
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
3425
|
+
const fontSize = Math.round(labelAreaHeight * 0.45);
|
|
3426
|
+
ctx.fillStyle = textColor;
|
|
3427
|
+
ctx.font = LABEL_FONT.replace("%PX", String(fontSize));
|
|
3428
|
+
ctx.textAlign = "center";
|
|
3429
|
+
ctx.textBaseline = "middle";
|
|
3430
|
+
ctx.fillText(
|
|
3431
|
+
label,
|
|
3432
|
+
canvas.width / 2,
|
|
3433
|
+
labelAreaHeight / 2 + padding / 2,
|
|
3434
|
+
canvas.width - padding * 2
|
|
3435
|
+
);
|
|
3436
|
+
ctx.drawImage(qrImage, 0, labelAreaHeight, size, size);
|
|
3437
|
+
return canvas.toDataURL("image/png");
|
|
3438
|
+
}
|
|
3439
|
+
function traceRoundedRectPath(ctx, x, y, width, height, radius) {
|
|
3440
|
+
ctx.beginPath();
|
|
3441
|
+
ctx.moveTo(x + radius, y);
|
|
3442
|
+
ctx.arcTo(x + width, y, x + width, y + height, radius);
|
|
3443
|
+
ctx.arcTo(x + width, y + height, x, y + height, radius);
|
|
3444
|
+
ctx.arcTo(x, y + height, x, y, radius);
|
|
3445
|
+
ctx.arcTo(x, y, x + width, y, radius);
|
|
3446
|
+
ctx.closePath();
|
|
3447
|
+
}
|
|
3448
|
+
async function finalizeImage(imageDataUrl, outerPadding, borderRadiusPercent, backgroundColor) {
|
|
3449
|
+
const image = await loadImage(imageDataUrl);
|
|
3450
|
+
const paddedWidth = image.width + outerPadding * 2;
|
|
3451
|
+
const paddedHeight = image.height + outerPadding * 2;
|
|
3452
|
+
const squareSize = Math.max(paddedWidth, paddedHeight);
|
|
3453
|
+
const radius = Math.min(Math.max(borderRadiusPercent, 0), 50) / 100 * squareSize;
|
|
3454
|
+
const needsCanvas = radius > 0 || paddedWidth !== squareSize || paddedHeight !== squareSize;
|
|
3455
|
+
if (!needsCanvas) {
|
|
3456
|
+
return imageDataUrl;
|
|
3457
|
+
}
|
|
3458
|
+
const canvas = document.createElement("canvas");
|
|
3459
|
+
canvas.width = squareSize;
|
|
3460
|
+
canvas.height = squareSize;
|
|
3461
|
+
const ctx = canvas.getContext("2d");
|
|
3462
|
+
if (!ctx) {
|
|
3463
|
+
return imageDataUrl;
|
|
3464
|
+
}
|
|
3465
|
+
if (radius > 0) {
|
|
3466
|
+
traceRoundedRectPath(ctx, 0, 0, squareSize, squareSize, radius);
|
|
3467
|
+
ctx.clip();
|
|
3468
|
+
}
|
|
3469
|
+
ctx.fillStyle = backgroundColor;
|
|
3470
|
+
ctx.fillRect(0, 0, squareSize, squareSize);
|
|
3471
|
+
const offsetX = Math.round((squareSize - image.width) / 2);
|
|
3472
|
+
const offsetY = Math.round((squareSize - image.height) / 2);
|
|
3473
|
+
ctx.drawImage(image, offsetX, offsetY);
|
|
3474
|
+
return canvas.toDataURL("image/png");
|
|
3475
|
+
}
|
|
3476
|
+
|
|
3477
|
+
// src/services/qrDecodeService.ts
|
|
3478
|
+
var import_jsqr = __toESM(require("jsqr"), 1);
|
|
3479
|
+
async function decodeQrCode(imageDataUrl) {
|
|
3480
|
+
const image = await loadImage2(imageDataUrl);
|
|
3481
|
+
const canvas = document.createElement("canvas");
|
|
3482
|
+
canvas.width = image.naturalWidth || image.width;
|
|
3483
|
+
canvas.height = image.naturalHeight || image.height;
|
|
3484
|
+
const ctx = canvas.getContext("2d");
|
|
3485
|
+
if (!ctx) {
|
|
3486
|
+
throw new Error("No 2D canvas context available to decode the image.");
|
|
3487
|
+
}
|
|
3488
|
+
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
|
|
3489
|
+
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
|
3490
|
+
const code = (0, import_jsqr.default)(imageData.data, imageData.width, imageData.height, {
|
|
3491
|
+
inversionAttempts: "attemptBoth"
|
|
3492
|
+
});
|
|
3493
|
+
return code?.data ?? null;
|
|
3494
|
+
}
|
|
3495
|
+
var loadImage2 = (src) => new Promise((resolve, reject) => {
|
|
3496
|
+
const img = new Image();
|
|
3497
|
+
img.onload = () => resolve(img);
|
|
3498
|
+
img.onerror = reject;
|
|
3499
|
+
img.src = src;
|
|
3500
|
+
});
|
|
3501
|
+
|
|
3321
3502
|
// src/services/routingService.ts
|
|
3322
3503
|
var RoutingService = {
|
|
3323
3504
|
createErrorResponse(req, code, message) {
|
|
@@ -3499,7 +3680,7 @@ var RoutingService = {
|
|
|
3499
3680
|
};
|
|
3500
3681
|
|
|
3501
3682
|
// package.json
|
|
3502
|
-
var version = "0.5.
|
|
3683
|
+
var version = "0.5.6";
|
|
3503
3684
|
|
|
3504
3685
|
// src/sdk.ts
|
|
3505
3686
|
function deepFreeze(obj) {
|
|
@@ -3601,7 +3782,7 @@ var MiniAppSDK = class {
|
|
|
3601
3782
|
permission = Object.freeze({
|
|
3602
3783
|
/**
|
|
3603
3784
|
* Explicitly request access to sensitive data.
|
|
3604
|
-
* @param type The type of permission to request ('location' or '
|
|
3785
|
+
* @param type The type of permission to request ('location', 'profile', or 'camera').
|
|
3605
3786
|
* @param fields If requesting 'profile', the specific fields required.
|
|
3606
3787
|
*/
|
|
3607
3788
|
request: ((type, fields) => {
|
|
@@ -3612,6 +3793,13 @@ var MiniAppSDK = class {
|
|
|
3612
3793
|
* Media & Gallery integration.
|
|
3613
3794
|
*/
|
|
3614
3795
|
media = Object.freeze({
|
|
3796
|
+
/**
|
|
3797
|
+
* Opens the device's native photo gallery picker via the Host Shell and
|
|
3798
|
+
* returns the chosen image as base64. Distinct permission grant from
|
|
3799
|
+
* `saveImage` (read vs. write access to the photo library) — the Host
|
|
3800
|
+
* Shell requests it independently.
|
|
3801
|
+
*/
|
|
3802
|
+
pickImage: () => this.bridge.send("PICK_IMAGE", {}),
|
|
3615
3803
|
/**
|
|
3616
3804
|
* Saves a base64-encoded image to the device's photo gallery via the Host Shell.
|
|
3617
3805
|
* A plain browser `<a download>` does not work inside the native WebView (no
|
|
@@ -3622,6 +3810,28 @@ var MiniAppSDK = class {
|
|
|
3622
3810
|
*/
|
|
3623
3811
|
saveImage: (base64, filename) => this.bridge.send("SAVE_IMAGE", { base64, filename })
|
|
3624
3812
|
});
|
|
3813
|
+
/**
|
|
3814
|
+
* QR code generation — the single source of truth for every Mini-App.
|
|
3815
|
+
* Runs entirely client-side (canvas, no Host Shell round-trip) and returns
|
|
3816
|
+
* a base64 PNG data URI, ready for an `<img src>` or `media.saveImage()`.
|
|
3817
|
+
* Mini-Apps must not reimplement this on their own.
|
|
3818
|
+
*/
|
|
3819
|
+
qrCode = Object.freeze({
|
|
3820
|
+
/**
|
|
3821
|
+
* @param data The value to encode (e.g. a deep link).
|
|
3822
|
+
* @param options Styling/labeling options — see {@link IGenerateQrCodeOptions}.
|
|
3823
|
+
* @returns A base64 PNG data URI.
|
|
3824
|
+
*/
|
|
3825
|
+
generate: (data, options) => generateQrCode(data, options),
|
|
3826
|
+
/**
|
|
3827
|
+
* Decodes a QR code from a static image (base64 data URI or URL) —
|
|
3828
|
+
* e.g. a photo picked via `sdk.media.pickImage()` that already
|
|
3829
|
+
* contains a QR code, as an alternative to the live `<QRScanner>`.
|
|
3830
|
+
* @param imageDataUrl A base64 data URI (e.g. from `sdk.media.pickImage()`).
|
|
3831
|
+
* @returns The decoded string, or `null` if no QR code was found.
|
|
3832
|
+
*/
|
|
3833
|
+
decode: (imageDataUrl) => decodeQrCode(imageDataUrl)
|
|
3834
|
+
});
|
|
3625
3835
|
/**
|
|
3626
3836
|
* Payments integration.
|
|
3627
3837
|
*/
|
|
@@ -3857,6 +4067,41 @@ var sdk = deepFreeze(new MiniAppSDK());
|
|
|
3857
4067
|
// src/components/BridgeMocker.tsx
|
|
3858
4068
|
var import_react14 = require("react");
|
|
3859
4069
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
4070
|
+
var AVATAR_MOUTH_VARIANTS = [
|
|
4071
|
+
"variant03",
|
|
4072
|
+
"variant06",
|
|
4073
|
+
"variant07",
|
|
4074
|
+
"variant08",
|
|
4075
|
+
"variant09",
|
|
4076
|
+
"variant10",
|
|
4077
|
+
"variant11",
|
|
4078
|
+
"variant12",
|
|
4079
|
+
"variant13",
|
|
4080
|
+
"variant14",
|
|
4081
|
+
"variant15",
|
|
4082
|
+
"variant16",
|
|
4083
|
+
"variant21",
|
|
4084
|
+
"variant22",
|
|
4085
|
+
"variant23",
|
|
4086
|
+
"variant25",
|
|
4087
|
+
"variant26",
|
|
4088
|
+
"variant27",
|
|
4089
|
+
"variant28",
|
|
4090
|
+
"variant29",
|
|
4091
|
+
"variant30"
|
|
4092
|
+
].join(",");
|
|
4093
|
+
var AVATAR_EYES_VARIANTS = ["variant03", "variant04", "variant05"].join(",");
|
|
4094
|
+
function hashToShortSeed(input) {
|
|
4095
|
+
let hash = 5381;
|
|
4096
|
+
for (let i = 0; i < input.length; i++) {
|
|
4097
|
+
hash = hash * 33 ^ input.charCodeAt(i);
|
|
4098
|
+
}
|
|
4099
|
+
return (hash >>> 0).toString(36);
|
|
4100
|
+
}
|
|
4101
|
+
function getMockAvatarUrl(seed) {
|
|
4102
|
+
const shortSeed = hashToShortSeed(seed);
|
|
4103
|
+
return `https://api.dicebear.com/10.x/notionists-neutral/png?seed=${shortSeed}&mouth=${AVATAR_MOUTH_VARIANTS}&eyes=${AVATAR_EYES_VARIANTS}&glassesProbability=50`;
|
|
4104
|
+
}
|
|
3860
4105
|
var getBearing = (p1, p2) => {
|
|
3861
4106
|
const lat1 = p1[1] * Math.PI / 180;
|
|
3862
4107
|
const lat2 = p2[1] * Math.PI / 180;
|
|
@@ -4160,13 +4405,11 @@ var BridgeMocker = ({
|
|
|
4160
4405
|
if (type === "GET_PROFILE_PICTURE") {
|
|
4161
4406
|
const uuids = payload?.uuids || [];
|
|
4162
4407
|
if (uuids.length === 0) {
|
|
4163
|
-
return Promise.resolve(
|
|
4164
|
-
`https://api.dicebear.com/9.x/rings/png?seed=dummy`
|
|
4165
|
-
);
|
|
4408
|
+
return Promise.resolve(getMockAvatarUrl("dummy"));
|
|
4166
4409
|
}
|
|
4167
4410
|
const map = {};
|
|
4168
4411
|
for (const uuid of uuids) {
|
|
4169
|
-
map[uuid] =
|
|
4412
|
+
map[uuid] = getMockAvatarUrl(uuid);
|
|
4170
4413
|
}
|
|
4171
4414
|
return Promise.resolve(map);
|
|
4172
4415
|
}
|
|
@@ -4553,31 +4796,166 @@ var DebugConsole = ({
|
|
|
4553
4796
|
] });
|
|
4554
4797
|
};
|
|
4555
4798
|
|
|
4556
|
-
// src/components/
|
|
4799
|
+
// src/components/QRScanner.tsx
|
|
4800
|
+
var import_jsqr2 = __toESM(require("jsqr"), 1);
|
|
4557
4801
|
var import_react16 = require("react");
|
|
4558
4802
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
4559
|
-
|
|
4560
|
-
|
|
4803
|
+
function QRScanner({ onScan, onError, className = "" }) {
|
|
4804
|
+
const videoRef = (0, import_react16.useRef)(null);
|
|
4805
|
+
const canvasRef = (0, import_react16.useRef)(null);
|
|
4806
|
+
const streamRef = (0, import_react16.useRef)(null);
|
|
4807
|
+
const tickRequestRef = (0, import_react16.useRef)(null);
|
|
4808
|
+
const hasScannedRef = (0, import_react16.useRef)(false);
|
|
4809
|
+
const [isReady, setIsReady] = (0, import_react16.useState)(false);
|
|
4810
|
+
(0, import_react16.useEffect)(() => {
|
|
4811
|
+
let cancelled = false;
|
|
4812
|
+
hasScannedRef.current = false;
|
|
4813
|
+
const cleanup = () => {
|
|
4814
|
+
if (tickRequestRef.current) {
|
|
4815
|
+
cancelAnimationFrame(tickRequestRef.current);
|
|
4816
|
+
tickRequestRef.current = null;
|
|
4817
|
+
}
|
|
4818
|
+
if (streamRef.current) {
|
|
4819
|
+
for (const track of streamRef.current.getTracks()) {
|
|
4820
|
+
track.stop();
|
|
4821
|
+
}
|
|
4822
|
+
streamRef.current = null;
|
|
4823
|
+
}
|
|
4824
|
+
};
|
|
4825
|
+
const tick = () => {
|
|
4826
|
+
if (cancelled || hasScannedRef.current) return;
|
|
4827
|
+
const video = videoRef.current;
|
|
4828
|
+
const canvas = canvasRef.current;
|
|
4829
|
+
if (!video || video.readyState !== video.HAVE_ENOUGH_DATA || !canvas) {
|
|
4830
|
+
tickRequestRef.current = requestAnimationFrame(tick);
|
|
4831
|
+
return;
|
|
4832
|
+
}
|
|
4833
|
+
const ctx = canvas.getContext("2d");
|
|
4834
|
+
if (!ctx) {
|
|
4835
|
+
tickRequestRef.current = requestAnimationFrame(tick);
|
|
4836
|
+
return;
|
|
4837
|
+
}
|
|
4838
|
+
canvas.height = video.videoHeight;
|
|
4839
|
+
canvas.width = video.videoWidth;
|
|
4840
|
+
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
|
4841
|
+
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
|
4842
|
+
const code = (0, import_jsqr2.default)(imageData.data, imageData.width, imageData.height, {
|
|
4843
|
+
inversionAttempts: "dontInvert"
|
|
4844
|
+
});
|
|
4845
|
+
if (code?.data) {
|
|
4846
|
+
hasScannedRef.current = true;
|
|
4847
|
+
cleanup();
|
|
4848
|
+
onScan(code.data);
|
|
4849
|
+
return;
|
|
4850
|
+
}
|
|
4851
|
+
tickRequestRef.current = requestAnimationFrame(tick);
|
|
4852
|
+
};
|
|
4853
|
+
const start = async () => {
|
|
4854
|
+
try {
|
|
4855
|
+
const granted = await sdk.permission.request("camera");
|
|
4856
|
+
if (!granted) {
|
|
4857
|
+
onError?.("Permission cam\xE9ra refus\xE9e par l'utilisateur.");
|
|
4858
|
+
return;
|
|
4859
|
+
}
|
|
4860
|
+
if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {
|
|
4861
|
+
onError?.(
|
|
4862
|
+
"L'acc\xE8s \xE0 la cam\xE9ra requiert une connexion s\xE9curis\xE9e (HTTPS) ou n'est pas support\xE9 par ce navigateur."
|
|
4863
|
+
);
|
|
4864
|
+
return;
|
|
4865
|
+
}
|
|
4866
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
4867
|
+
video: { facingMode: "environment" }
|
|
4868
|
+
});
|
|
4869
|
+
if (cancelled) {
|
|
4870
|
+
for (const track of stream.getTracks()) track.stop();
|
|
4871
|
+
return;
|
|
4872
|
+
}
|
|
4873
|
+
streamRef.current = stream;
|
|
4874
|
+
const video = videoRef.current;
|
|
4875
|
+
if (!video) return;
|
|
4876
|
+
video.srcObject = stream;
|
|
4877
|
+
video.setAttribute("playsinline", "true");
|
|
4878
|
+
await video.play();
|
|
4879
|
+
if (cancelled) return;
|
|
4880
|
+
setIsReady(true);
|
|
4881
|
+
tickRequestRef.current = requestAnimationFrame(tick);
|
|
4882
|
+
} catch (err) {
|
|
4883
|
+
console.error("QRScanner: camera access failed:", err);
|
|
4884
|
+
onError?.("Acc\xE8s cam\xE9ra refus\xE9 ou non disponible sur cet appareil.");
|
|
4885
|
+
}
|
|
4886
|
+
};
|
|
4887
|
+
start();
|
|
4888
|
+
return () => {
|
|
4889
|
+
cancelled = true;
|
|
4890
|
+
cleanup();
|
|
4891
|
+
};
|
|
4892
|
+
}, []);
|
|
4893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
4894
|
+
"div",
|
|
4895
|
+
{
|
|
4896
|
+
className,
|
|
4897
|
+
style: {
|
|
4898
|
+
alignItems: "center",
|
|
4899
|
+
display: "flex",
|
|
4900
|
+
justifyContent: "center",
|
|
4901
|
+
overflow: "hidden",
|
|
4902
|
+
position: "relative"
|
|
4903
|
+
},
|
|
4904
|
+
children: [
|
|
4905
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
4906
|
+
"video",
|
|
4907
|
+
{
|
|
4908
|
+
playsInline: true,
|
|
4909
|
+
ref: videoRef,
|
|
4910
|
+
style: { height: "100%", objectFit: "cover", width: "100%" }
|
|
4911
|
+
}
|
|
4912
|
+
),
|
|
4913
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("canvas", { ref: canvasRef, style: { display: "none" } }),
|
|
4914
|
+
isReady && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
4915
|
+
"div",
|
|
4916
|
+
{
|
|
4917
|
+
style: {
|
|
4918
|
+
border: "2px dashed rgba(255,255,255,0.8)",
|
|
4919
|
+
borderRadius: 12,
|
|
4920
|
+
bottom: "10%",
|
|
4921
|
+
left: "10%",
|
|
4922
|
+
pointerEvents: "none",
|
|
4923
|
+
position: "absolute",
|
|
4924
|
+
right: "10%",
|
|
4925
|
+
top: "10%"
|
|
4926
|
+
}
|
|
4927
|
+
}
|
|
4928
|
+
)
|
|
4929
|
+
]
|
|
4930
|
+
}
|
|
4931
|
+
);
|
|
4932
|
+
}
|
|
4933
|
+
|
|
4934
|
+
// src/components/SDKProvider.tsx
|
|
4935
|
+
var import_react17 = require("react");
|
|
4936
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
4937
|
+
var SDKContext = (0, import_react17.createContext)({ isMocked: false });
|
|
4938
|
+
var useIsMocked = () => (0, import_react17.useContext)(SDKContext).isMocked;
|
|
4561
4939
|
var SDKProvider = ({
|
|
4562
4940
|
children,
|
|
4563
4941
|
debug = false,
|
|
4564
4942
|
...mockerProps
|
|
4565
4943
|
}) => {
|
|
4566
4944
|
const isMocked = typeof window !== "undefined" && !(window.__UP_REACT_NATIVE_APP__ === true || !!window.ReactNativeWebView);
|
|
4567
|
-
const value = (0,
|
|
4568
|
-
const content = /* @__PURE__ */ (0,
|
|
4945
|
+
const value = (0, import_react17.useMemo)(() => ({ isMocked }), [isMocked]);
|
|
4946
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
4569
4947
|
children,
|
|
4570
|
-
(debug || isMocked) && /* @__PURE__ */ (0,
|
|
4948
|
+
(debug || isMocked) && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DebugConsole, {})
|
|
4571
4949
|
] });
|
|
4572
4950
|
if (isMocked) {
|
|
4573
|
-
return /* @__PURE__ */ (0,
|
|
4951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SDKContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(BridgeMocker, { ...mockerProps, children: content }) });
|
|
4574
4952
|
}
|
|
4575
|
-
return /* @__PURE__ */ (0,
|
|
4953
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SDKContext.Provider, { value, children: content });
|
|
4576
4954
|
};
|
|
4577
4955
|
|
|
4578
4956
|
// src/components/SwipeCarousel.tsx
|
|
4579
|
-
var
|
|
4580
|
-
var
|
|
4957
|
+
var import_react18 = require("react");
|
|
4958
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
4581
4959
|
var DIRECTION_LOCK_THRESHOLD_PX = 8;
|
|
4582
4960
|
var SWIPE_DISTANCE_THRESHOLD_PX = 40;
|
|
4583
4961
|
var SWIPE_VELOCITY_THRESHOLD = 0.4;
|
|
@@ -4604,28 +4982,28 @@ var SwipeCarousel = ({
|
|
|
4604
4982
|
overscan = DEFAULT_OVERSCAN,
|
|
4605
4983
|
visibleOverscan = DEFAULT_VISIBLE_OVERSCAN
|
|
4606
4984
|
}) => {
|
|
4607
|
-
const containerRef = (0,
|
|
4608
|
-
const [containerWidth, setContainerWidth] = (0,
|
|
4609
|
-
const [dragX, setDragX] = (0,
|
|
4610
|
-
const [dragY, setDragY] = (0,
|
|
4611
|
-
const [isDraggingX, setIsDraggingX] = (0,
|
|
4612
|
-
const [isDraggingY, setIsDraggingY] = (0,
|
|
4613
|
-
const touchStateRef = (0,
|
|
4614
|
-
const [internalIndex, setInternalIndex] = (0,
|
|
4985
|
+
const containerRef = (0, import_react18.useRef)(null);
|
|
4986
|
+
const [containerWidth, setContainerWidth] = (0, import_react18.useState)(0);
|
|
4987
|
+
const [dragX, setDragX] = (0, import_react18.useState)(0);
|
|
4988
|
+
const [dragY, setDragY] = (0, import_react18.useState)(0);
|
|
4989
|
+
const [isDraggingX, setIsDraggingX] = (0, import_react18.useState)(false);
|
|
4990
|
+
const [isDraggingY, setIsDraggingY] = (0, import_react18.useState)(false);
|
|
4991
|
+
const touchStateRef = (0, import_react18.useRef)(null);
|
|
4992
|
+
const [internalIndex, setInternalIndex] = (0, import_react18.useState)(
|
|
4615
4993
|
() => Math.max(
|
|
4616
4994
|
0,
|
|
4617
4995
|
items.findIndex((item) => item.id === activeId)
|
|
4618
4996
|
)
|
|
4619
4997
|
);
|
|
4620
|
-
const prevActiveIdRef = (0,
|
|
4621
|
-
const [timingWaiting, setTimingWaiting] = (0,
|
|
4622
|
-
(0,
|
|
4998
|
+
const prevActiveIdRef = (0, import_react18.useRef)(activeId);
|
|
4999
|
+
const [timingWaiting, setTimingWaiting] = (0, import_react18.useState)(true);
|
|
5000
|
+
(0, import_react18.useEffect)(() => {
|
|
4623
5001
|
const timer = setTimeout(() => {
|
|
4624
5002
|
setTimingWaiting(false);
|
|
4625
5003
|
}, 1e3);
|
|
4626
5004
|
return () => clearTimeout(timer);
|
|
4627
5005
|
}, []);
|
|
4628
|
-
(0,
|
|
5006
|
+
(0, import_react18.useEffect)(() => {
|
|
4629
5007
|
if (activeId !== prevActiveIdRef.current) {
|
|
4630
5008
|
const idx = items.findIndex((item) => item.id === activeId);
|
|
4631
5009
|
if (idx !== -1) setInternalIndex(idx);
|
|
@@ -4636,7 +5014,7 @@ var SwipeCarousel = ({
|
|
|
4636
5014
|
Math.max(internalIndex, 0),
|
|
4637
5015
|
Math.max(items.length - 1, 0)
|
|
4638
5016
|
);
|
|
4639
|
-
(0,
|
|
5017
|
+
(0, import_react18.useLayoutEffect)(() => {
|
|
4640
5018
|
const el = containerRef.current;
|
|
4641
5019
|
if (!el) return;
|
|
4642
5020
|
const update = () => setContainerWidth(el.clientWidth);
|
|
@@ -4754,7 +5132,7 @@ var SwipeCarousel = ({
|
|
|
4754
5132
|
};
|
|
4755
5133
|
const windowStart = Math.max(0, activeIndex - overscan);
|
|
4756
5134
|
const windowEnd = Math.min(items.length - 1, activeIndex + overscan);
|
|
4757
|
-
return /* @__PURE__ */ (0,
|
|
5135
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4758
5136
|
"div",
|
|
4759
5137
|
{
|
|
4760
5138
|
className: `relative overflow-hidden touch-pan-y ${className ?? ""}`,
|
|
@@ -4763,7 +5141,7 @@ var SwipeCarousel = ({
|
|
|
4763
5141
|
onTouchMove: handleTouchMove,
|
|
4764
5142
|
onTouchStart: handleTouchStart,
|
|
4765
5143
|
ref: containerRef,
|
|
4766
|
-
children: /* @__PURE__ */ (0,
|
|
5144
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4767
5145
|
"div",
|
|
4768
5146
|
{
|
|
4769
5147
|
className: "relative h-full",
|
|
@@ -4778,7 +5156,7 @@ var SwipeCarousel = ({
|
|
|
4778
5156
|
const verticalOffset = isActive ? dragY : 0;
|
|
4779
5157
|
const distance = Math.abs(index - activeIndex);
|
|
4780
5158
|
const isVisible = distance <= visibleOverscan;
|
|
4781
|
-
return /* @__PURE__ */ (0,
|
|
5159
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4782
5160
|
"div",
|
|
4783
5161
|
{
|
|
4784
5162
|
className: `absolute top-0 left-0 h-full shrink-0 ${itemClassName ?? ""} ${item.className ?? ""}`,
|
|
@@ -4889,6 +5267,7 @@ var src_default = sdk;
|
|
|
4889
5267
|
MapMenuTitle,
|
|
4890
5268
|
MiniAppSDK,
|
|
4891
5269
|
MockLocationContext,
|
|
5270
|
+
QRScanner,
|
|
4892
5271
|
RouteLayer,
|
|
4893
5272
|
SDKMapProvider,
|
|
4894
5273
|
SDKProvider,
|