@ekyc_qoobiss/qbs-ect-cmp 1.10.21 → 1.11.1
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/cjs/{agreement-check_17.cjs.entry.js → agreement-check_16.cjs.entry.js} +223 -3347
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/qbs-ect-cmp.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/common/agreement-check/agreement-check.js +1 -1
- package/dist/collection/components/common/capture-error/capture-error.js +1 -1
- package/dist/collection/components/common/how-to-info/how-to-info.js +1 -1
- package/dist/collection/components/flow/agreement-info/agreement-info.js +1 -1
- package/dist/collection/components/flow/id-double-side/id-double-side.js +3 -7
- package/dist/collection/components/flow/id-single-side/id-single-side.js +3 -7
- package/dist/collection/components/flow/landing-validation/landing-validation.js +1 -1
- package/dist/collection/components/flow/sms-code-validation/sms-code-validation.js +1 -1
- package/dist/collection/components/flow/user-liveness/user-liveness.js +3 -7
- package/dist/collection/components/identification-component/identification-component.css +6 -4
- package/dist/collection/components/identification-component/identification-component.js +12 -63
- package/dist/collection/helpers/ApiCall.js +3 -30
- package/dist/collection/helpers/ML5.js +3 -16
- package/dist/collection/helpers/Stream.js +3 -5
- package/dist/collection/helpers/store.js +0 -1
- package/dist/collection/helpers/textValues.js +8 -17
- package/dist/collection/libs/FaceML5Detector/FaceML5Detector.js +41 -54
- package/dist/collection/libs/FaceML5Detector/FacePose.js +4 -4
- package/dist/esm/{agreement-check_17.entry.js → agreement-check_16.entry.js} +224 -3347
- package/dist/esm/loader.js +1 -1
- package/dist/esm/qbs-ect-cmp.js +1 -1
- package/dist/qbs-ect-cmp/{p-9ac1b29a.entry.js → p-bf9a0f2a.entry.js} +26 -26
- package/dist/qbs-ect-cmp/qbs-ect-cmp.esm.js +1 -1
- package/dist/types/components/identification-component/identification-component.d.ts +1 -3
- package/dist/types/components.d.ts +0 -20
- package/dist/types/helpers/ApiCall.d.ts +1 -6
- package/dist/types/helpers/ML5.d.ts +0 -2
- package/dist/types/helpers/Stream.d.ts +0 -12
- package/dist/types/helpers/store.d.ts +0 -1
- package/dist/types/helpers/textValues.d.ts +0 -9
- package/dist/types/libs/FaceML5Detector/FaceML5Detector.d.ts +3 -0
- package/dist/types/libs/FaceML5Detector/FacePose.d.ts +3 -2
- package/dist/types/models/IAddRequest.d.ts +0 -1
- package/package.json +2 -4
- package/dist/assets/ml5-preload.png +0 -0
- package/dist/collection/components/flow/mobile-redirect/mobile-redirect.css +0 -10
- package/dist/collection/components/flow/mobile-redirect/mobile-redirect.js +0 -123
- package/dist/collection/models/ILinkSend.js +0 -1
- package/dist/collection/models/ILogResult.js +0 -1
- package/dist/collection/models/IOrderStatus.js +0 -1
- package/dist/collection/models/OrderStatuses.js +0 -7
- package/dist/types/components/flow/mobile-redirect/mobile-redirect.d.ts +0 -22
- package/dist/types/models/ILinkSend.d.ts +0 -3
- package/dist/types/models/ILogResult.d.ts +0 -3
- package/dist/types/models/IOrderStatus.d.ts +0 -4
- package/dist/types/models/OrderStatuses.d.ts +0 -6
|
@@ -4,14 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-79f82518.js');
|
|
6
6
|
|
|
7
|
-
var OrderStatuses;
|
|
8
|
-
(function (OrderStatuses) {
|
|
9
|
-
OrderStatuses[OrderStatuses["Capturing"] = 0] = "Capturing";
|
|
10
|
-
OrderStatuses[OrderStatuses["FinishedCapturing"] = 1] = "FinishedCapturing";
|
|
11
|
-
OrderStatuses[OrderStatuses["Waiting"] = 2] = "Waiting";
|
|
12
|
-
OrderStatuses[OrderStatuses["NotFound"] = 3] = "NotFound";
|
|
13
|
-
})(OrderStatuses || (OrderStatuses = {}));
|
|
14
|
-
|
|
15
7
|
const appendToMap = (map, propName, value) => {
|
|
16
8
|
const items = map.get(propName);
|
|
17
9
|
if (!items) {
|
|
@@ -294,19 +286,19 @@ SelfieCaptureValues.FacePoseMapping = {
|
|
|
294
286
|
0: 'Întoarce capul spre stânga.',
|
|
295
287
|
1: 'Întoarce capul spre dreapta.',
|
|
296
288
|
2: 'Înclină capul spre spate.',
|
|
297
|
-
3: 'Înclină capul în față.',
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
289
|
+
//3: 'Înclină capul în față.',
|
|
290
|
+
3: 'Înclină capul spre stânga.',
|
|
291
|
+
4: 'Înclină capul spre dreapta.',
|
|
292
|
+
5: '',
|
|
301
293
|
};
|
|
302
294
|
SelfieCaptureValues.FacePoseDemoMapping = {
|
|
303
295
|
0: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_rotate_left.mp4',
|
|
304
296
|
1: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_rotate_right.mp4',
|
|
305
297
|
2: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_back.mp4',
|
|
306
|
-
3: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_front.mp4',
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
298
|
+
//3: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_front.mp4',
|
|
299
|
+
3: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_left.mp4',
|
|
300
|
+
4: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_tilt_right.mp4',
|
|
301
|
+
5: 'https://ekyc.blob.core.windows.net/$web/animations/selfie/selfie_main.mp4',
|
|
310
302
|
};
|
|
311
303
|
class AgreementInfoValues extends GlobalValues {
|
|
312
304
|
}
|
|
@@ -328,23 +320,13 @@ class ApiUrls {
|
|
|
328
320
|
this.UploadCapture = this.uriEnv + 'validation/upload/capture';
|
|
329
321
|
this.GetAgreement = this.uriEnv + 'validation/agreement/content';
|
|
330
322
|
this.GenerateAgreement = this.uriEnv + 'validation/agreement/generate';
|
|
331
|
-
this.SendLink = this.uriEnv + 'validation/otp/sendlink';
|
|
332
|
-
this.GetStatus = this.uriEnv + 'validation/identity/status';
|
|
333
|
-
this.AddLog = this.uriEnv + 'validation/logs/add';
|
|
334
323
|
}
|
|
335
|
-
}
|
|
336
|
-
class MobileRedirectValues extends GlobalValues {
|
|
337
|
-
}
|
|
338
|
-
MobileRedirectValues.InfoTop = 'Pentru a continua scanați codul de mai jos cu un smartphone.';
|
|
339
|
-
MobileRedirectValues.InfoBottom = 'Sau introduceți un număr de telefon pentru a primi link-ul pe smartphone.';
|
|
340
|
-
MobileRedirectValues.Validation = 'Număr de telefon invalid!';
|
|
341
|
-
MobileRedirectValues.InfoWaiting = 'Așteptăm finalizarea procesului pe smartphone.';
|
|
324
|
+
}
|
|
342
325
|
|
|
343
326
|
const { state, onChange } = createStore({
|
|
344
327
|
flowStatus: FlowStatus.LANDING,
|
|
345
328
|
environment: 'PROD',
|
|
346
329
|
requestId: '',
|
|
347
|
-
redirectId: '',
|
|
348
330
|
initialised: false,
|
|
349
331
|
token: '',
|
|
350
332
|
cameraIds: [],
|
|
@@ -410,17 +392,9 @@ class ApiCall {
|
|
|
410
392
|
let jsonResp = await this.post(this.urls.OtpCheck, JSON.stringify(data));
|
|
411
393
|
return jsonResp.valid;
|
|
412
394
|
}
|
|
413
|
-
async AddIdentificationRequest(deviceInfo) {
|
|
414
|
-
let data = {
|
|
415
|
-
requestId: state.requestId,
|
|
416
|
-
clientDeviceInfo: JSON.stringify(deviceInfo),
|
|
417
|
-
redirectId: state.redirectId,
|
|
418
|
-
};
|
|
395
|
+
async AddIdentificationRequest(requestId, deviceInfo) {
|
|
396
|
+
let data = { requestId: requestId, clientDeviceInfo: deviceInfo };
|
|
419
397
|
let jsonResp = await this.post(this.urls.IdentityInsert, JSON.stringify(data));
|
|
420
|
-
if (state.requestId == '') {
|
|
421
|
-
state.requestId = jsonResp.requestId;
|
|
422
|
-
sessionStorage.setItem(SessionKeys.RequestIdKey, jsonResp.requestId);
|
|
423
|
-
}
|
|
424
398
|
state.hasIdBack = jsonResp.hasIdBack;
|
|
425
399
|
state.agreementsValidation = jsonResp.agreementsValidation;
|
|
426
400
|
state.phoneValidation = jsonResp.phoneValidation;
|
|
@@ -450,23 +424,6 @@ class ApiCall {
|
|
|
450
424
|
let resp = await this.post(this.urls.GenerateAgreement, JSON.stringify(data));
|
|
451
425
|
return resp.generation;
|
|
452
426
|
}
|
|
453
|
-
async GetStatus(requestId) {
|
|
454
|
-
let resp = await this.get(this.urls.GetStatus + '?orderId=' + requestId);
|
|
455
|
-
return OrderStatuses[resp.status];
|
|
456
|
-
}
|
|
457
|
-
async SendLink(link, phoneNumber) {
|
|
458
|
-
let data = { link: link, phoneNumber: phoneNumber };
|
|
459
|
-
let resp = await this.post(this.urls.SendLink, JSON.stringify(data));
|
|
460
|
-
return resp.sent;
|
|
461
|
-
}
|
|
462
|
-
async AddLog(error) {
|
|
463
|
-
try {
|
|
464
|
-
let data = { requestId: state.requestId, action: FlowStatus[state.flowStatus], message: JSON.stringify(error !== null && error !== void 0 ? error : 'no error data') };
|
|
465
|
-
let result = await this.post(this.urls.AddLog, JSON.stringify(data));
|
|
466
|
-
return result.saved;
|
|
467
|
-
}
|
|
468
|
-
catch (_a) { }
|
|
469
|
-
}
|
|
470
427
|
}
|
|
471
428
|
|
|
472
429
|
const agreementCheckCss = "";
|
|
@@ -492,7 +449,7 @@ const AgreementCheck = class {
|
|
|
492
449
|
this.agreementAcceptance.emit({ agreementType: this.agreementType, result });
|
|
493
450
|
}
|
|
494
451
|
render() {
|
|
495
|
-
let content = (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { class: "scroll", innerHTML: this.htmlContent }), index.h("div", { class: "pos-relative" }, index.h("div", { class: "btn-buletin" }, index.h("div", { class: "d-flex two-buttons" }, index.h("button", { class: "normal-button red-button", onClick: () => this.buttonClick(false) }, AgreementCheckValues.ButtonNo), index.h("button", { class: "normal-button", onClick: () => this.buttonClick(true) }, AgreementCheckValues.ButtonYes)), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, AgreementInfoValues.FooterText))))));
|
|
452
|
+
let content = (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { class: "scroll", innerHTML: this.htmlContent }), index.h("div", { class: "pos-relative show-bottom" }, index.h("div", { class: "btn-buletin" }, index.h("div", { class: "d-flex two-buttons" }, index.h("button", { class: "normal-button red-button", onClick: () => this.buttonClick(false) }, AgreementCheckValues.ButtonNo), index.h("button", { class: "normal-button", onClick: () => this.buttonClick(true) }, AgreementCheckValues.ButtonYes)), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, AgreementInfoValues.FooterText))))));
|
|
496
453
|
return this.htmlContent ? content : index.h("div", null);
|
|
497
454
|
}
|
|
498
455
|
};
|
|
@@ -538,7 +495,7 @@ const AgreementInfo = class {
|
|
|
538
495
|
render() {
|
|
539
496
|
let agreementsCheck = index.h("agreement-check", { agreementType: "agreement" });
|
|
540
497
|
let termsCheck = index.h("agreement-check", { agreementType: "terms" });
|
|
541
|
-
let mainComp = (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", null, index.h("h1", { class: "text-center" }, AgreementInfoValues.Title), index.h("div", { class: "d-flex space-between align-center" }, index.h("h3", { class: "main-text font-size-2", onClick: () => this.agreementsClicked() }, index.h("input", { type: "checkbox", readOnly: true, checked: this.agreementsChecked }), AgreementInfoValues.Agreement)), index.h("div", { class: "d-flex space-between align-center" }, index.h("h3", { class: "main-text font-size-2", onClick: () => this.termsClicked() }, index.h("input", { type: "checkbox", readOnly: true, checked: this.termsChecked }), AgreementInfoValues.Terms))), index.h("div", { class: "pos-relative" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, AgreementInfoValues.Button), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, AgreementInfoValues.FooterText))))));
|
|
498
|
+
let mainComp = (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", null, index.h("h1", { class: "text-center" }, AgreementInfoValues.Title), index.h("div", { class: "d-flex space-between align-center" }, index.h("h3", { class: "main-text font-size-2", onClick: () => this.agreementsClicked() }, index.h("input", { type: "checkbox", readOnly: true, checked: this.agreementsChecked }), AgreementInfoValues.Agreement)), index.h("div", { class: "d-flex space-between align-center" }, index.h("h3", { class: "main-text font-size-2", onClick: () => this.termsClicked() }, index.h("input", { type: "checkbox", readOnly: true, checked: this.termsChecked }), AgreementInfoValues.Terms))), index.h("div", { class: "pos-relative show-bottom" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, AgreementInfoValues.Button), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, AgreementInfoValues.FooterText))))));
|
|
542
499
|
return this.openAgreements ? agreementsCheck : this.openTerms ? termsCheck : mainComp;
|
|
543
500
|
}
|
|
544
501
|
};
|
|
@@ -1832,8 +1789,6 @@ e.read=function(t,e,n,r,i){var o,a,s=8*i-r-1,u=(1<<s)-1,c=u>>1,l=-7,f=n?i-1:0,h=
|
|
|
1832
1789
|
|
|
1833
1790
|
const ml5 = /*@__PURE__*/getDefaultExportFromCjs(ml5_min);
|
|
1834
1791
|
|
|
1835
|
-
const content = 'data:image/png;charset=utf-8;base64,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';
|
|
1836
|
-
|
|
1837
1792
|
class ML5 {
|
|
1838
1793
|
static getInstance() {
|
|
1839
1794
|
if (!ML5.instance) {
|
|
@@ -1847,23 +1802,12 @@ class ML5 {
|
|
|
1847
1802
|
async init() {
|
|
1848
1803
|
return new Promise(async (resolve) => {
|
|
1849
1804
|
const modelPath = state.hasIdBack ? 'https://ekyc.blob.core.windows.net/$web/md/model.json' : 'https://ekyc.blob.core.windows.net/$web/model.json';
|
|
1850
|
-
this.classifier = await ml5.imageClassifier(modelPath
|
|
1851
|
-
this.faceapi = await ml5.faceApi({ withLandmarks: true, withDescriptors: false }
|
|
1852
|
-
//warmup
|
|
1853
|
-
const img = new Image();
|
|
1854
|
-
img.src = content;
|
|
1855
|
-
this.classifier.classify(img, this.gotResults);
|
|
1856
|
-
this.faceapi.detect(img, this.gotResults);
|
|
1805
|
+
this.classifier = await ml5.imageClassifier(modelPath);
|
|
1806
|
+
this.faceapi = await ml5.faceApi({ withLandmarks: true, withDescriptors: false });
|
|
1857
1807
|
resolve();
|
|
1808
|
+
console.log('ML5 LOADED!!!');
|
|
1858
1809
|
});
|
|
1859
1810
|
}
|
|
1860
|
-
loaded() {
|
|
1861
|
-
console.log('ML5 LOADED!!!');
|
|
1862
|
-
}
|
|
1863
|
-
gotResults(error, results) {
|
|
1864
|
-
console.log(error);
|
|
1865
|
-
console.log(results);
|
|
1866
|
-
}
|
|
1867
1811
|
}
|
|
1868
1812
|
|
|
1869
1813
|
var IDPose;
|
|
@@ -1976,15 +1920,21 @@ class IDML5Detector {
|
|
|
1976
1920
|
}
|
|
1977
1921
|
}
|
|
1978
1922
|
|
|
1923
|
+
function getVideoRatio(videoElement) {
|
|
1924
|
+
const hRatio = videoElement.clientWidth / videoElement.videoWidth;
|
|
1925
|
+
const vRatio = videoElement.clientHeight / videoElement.videoHeight;
|
|
1926
|
+
return Math.min(hRatio, vRatio);
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1979
1929
|
var FacePose;
|
|
1980
1930
|
(function (FacePose) {
|
|
1981
1931
|
FacePose[FacePose["LookLeft"] = 0] = "LookLeft";
|
|
1982
1932
|
FacePose[FacePose["LookRight"] = 1] = "LookRight";
|
|
1983
1933
|
FacePose[FacePose["LookUp"] = 2] = "LookUp";
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
FacePose[FacePose["Main"] =
|
|
1934
|
+
//LookDown,
|
|
1935
|
+
FacePose[FacePose["TiltLeft"] = 3] = "TiltLeft";
|
|
1936
|
+
FacePose[FacePose["TiltRight"] = 4] = "TiltRight";
|
|
1937
|
+
FacePose[FacePose["Main"] = 5] = "Main";
|
|
1988
1938
|
})(FacePose || (FacePose = {}));
|
|
1989
1939
|
class FacePosePick {
|
|
1990
1940
|
static randomEnum(anEnum) {
|
|
@@ -2076,6 +2026,7 @@ class FaceML5Detector {
|
|
|
2076
2026
|
constructor(stream, isMobile) {
|
|
2077
2027
|
this.MAX_DETECTION = 1000 * 30;
|
|
2078
2028
|
this.initTime = null;
|
|
2029
|
+
this.videoRatio = 1;
|
|
2079
2030
|
this.validFaceFound = false;
|
|
2080
2031
|
this.start = null;
|
|
2081
2032
|
this.frontFace = null;
|
|
@@ -2085,12 +2036,12 @@ class FaceML5Detector {
|
|
|
2085
2036
|
this.validFaceFoundAgain = false;
|
|
2086
2037
|
this.MAX_NUMBER_FACES = 1;
|
|
2087
2038
|
this.MIN_FACE_SCORE = 0.65;
|
|
2088
|
-
|
|
2089
|
-
|
|
2039
|
+
this.MIN_FACE_SIZE_FOR_MOBILE = 200;
|
|
2040
|
+
this.MIN_FACE_SIZE_FOR_DESKTOP = 350;
|
|
2090
2041
|
this.MIN_OCCUPIED_SPACE_FOR_DESKTOP = 15;
|
|
2091
|
-
this.MIN_OCCUPIED_SPACE_FOR_MOBILE =
|
|
2092
|
-
this.X_OFFSET_FROM_FRAME =
|
|
2093
|
-
this.Y_OFFSET_FROM_FRAME =
|
|
2042
|
+
this.MIN_OCCUPIED_SPACE_FOR_MOBILE = 15;
|
|
2043
|
+
this.X_OFFSET_FROM_FRAME = 5;
|
|
2044
|
+
this.Y_OFFSET_FROM_FRAME = 5;
|
|
2094
2045
|
this.stream = stream;
|
|
2095
2046
|
this.ml5 = ML5.getInstance();
|
|
2096
2047
|
this.isMobile = isMobile;
|
|
@@ -2105,7 +2056,7 @@ class FaceML5Detector {
|
|
|
2105
2056
|
this.continue = true;
|
|
2106
2057
|
this.width = this.videoElement.videoWidth;
|
|
2107
2058
|
this.height = this.videoElement.videoHeight;
|
|
2108
|
-
|
|
2059
|
+
this.videoRatio = getVideoRatio(this.videoElement);
|
|
2109
2060
|
this.drawFrame('white');
|
|
2110
2061
|
this.delay(2000).then(() => this.detectFaces());
|
|
2111
2062
|
}
|
|
@@ -2140,12 +2091,12 @@ class FaceML5Detector {
|
|
|
2140
2091
|
if (!this.validFaceFound) {
|
|
2141
2092
|
this.validFaceFound = true;
|
|
2142
2093
|
this.stream.autoCapturing();
|
|
2143
|
-
|
|
2094
|
+
this.frontFace = new FaceLandmarks(results[0], this.width, this.height);
|
|
2144
2095
|
await this.drawFrame('green');
|
|
2145
2096
|
this.requestedFacePose = this.stream.requestFacePose();
|
|
2146
2097
|
await this.delay(GlobalValues.VideoLenght);
|
|
2147
2098
|
}
|
|
2148
|
-
|
|
2099
|
+
if (this.validFaceFound && !this.validFaceFoundAgain) {
|
|
2149
2100
|
await this.checkFacePose(results);
|
|
2150
2101
|
}
|
|
2151
2102
|
}
|
|
@@ -2190,74 +2141,61 @@ class FaceML5Detector {
|
|
|
2190
2141
|
}
|
|
2191
2142
|
checkFaceSize(result) {
|
|
2192
2143
|
const faceBox = result[0].detection.box;
|
|
2193
|
-
const { area } = faceBox;
|
|
2194
|
-
// const { width, height, area } = faceBox;
|
|
2144
|
+
const { width, height, area } = faceBox;
|
|
2195
2145
|
const { imageHeight, imageWidth } = result[0].detection;
|
|
2196
2146
|
const occupiedSize = 100 / ((imageHeight * imageWidth) / area);
|
|
2197
|
-
|
|
2198
|
-
return (
|
|
2199
|
-
|
|
2200
|
-
occupiedSize > (this.isMobile ? this.MIN_OCCUPIED_SPACE_FOR_MOBILE : this.MIN_OCCUPIED_SPACE_FOR_DESKTOP));
|
|
2147
|
+
const minSide = Math.min(width / this.videoRatio, height / this.videoRatio);
|
|
2148
|
+
return (minSide > (this.isMobile ? this.MIN_FACE_SIZE_FOR_MOBILE : this.MIN_FACE_SIZE_FOR_DESKTOP) &&
|
|
2149
|
+
occupiedSize > (this.isMobile ? this.MIN_OCCUPIED_SPACE_FOR_MOBILE : this.MIN_OCCUPIED_SPACE_FOR_DESKTOP));
|
|
2201
2150
|
}
|
|
2202
2151
|
checkFaceIndent(result) {
|
|
2203
2152
|
const faceBox = result[0].detection.box;
|
|
2204
|
-
const { top, left, bottom, right } = faceBox;
|
|
2205
2153
|
const { imageHeight, imageWidth } = result[0].detection;
|
|
2206
|
-
const
|
|
2207
|
-
const
|
|
2208
|
-
const
|
|
2209
|
-
const
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
rightIndent < this.X_OFFSET_FROM_FRAME ||
|
|
2213
|
-
bottomIndent < this.Y_OFFSET_FROM_FRAME);
|
|
2154
|
+
const { top, left, bottom, right } = faceBox;
|
|
2155
|
+
const topIndent = top;
|
|
2156
|
+
const leftIndent = left;
|
|
2157
|
+
const rightIndent = imageWidth - right;
|
|
2158
|
+
const bottomIndent = imageHeight - bottom;
|
|
2159
|
+
return !(topIndent < this.Y_OFFSET_FROM_FRAME || leftIndent < this.X_OFFSET_FROM_FRAME || rightIndent < this.X_OFFSET_FROM_FRAME || bottomIndent < this.Y_OFFSET_FROM_FRAME);
|
|
2214
2160
|
}
|
|
2215
2161
|
async checkFacePose(results) {
|
|
2216
2162
|
let face = new FaceLandmarks(results[0], this.width, this.height);
|
|
2217
2163
|
// this.drawLandmarks(results);
|
|
2218
2164
|
// this.drawPoints(face);
|
|
2219
|
-
if (this.
|
|
2220
|
-
this.frontFace = face;
|
|
2221
|
-
}
|
|
2222
|
-
else if (this.frontFace != null && this.presentedFacePose == null) {
|
|
2165
|
+
if (this.presentedFacePose == null) {
|
|
2223
2166
|
let ff = this.frontFace;
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
if (face.nose.x > ff.nose.x + (ff.eyesDistance() * 0.5))
|
|
2229
|
-
this.presentedFacePose = FacePose.LookLeft;
|
|
2230
|
-
if (face.nose.x < ff.nose.x - (ff.eyesDistance() * 0.5))
|
|
2231
|
-
this.presentedFacePose = FacePose.LookRight;
|
|
2232
|
-
/*
|
|
2233
|
-
if (
|
|
2234
|
-
face.leftEyeNoseDistanceX() < ff.leftEyeNoseDistanceX() * 0.6 &&
|
|
2167
|
+
// console.log(face.eyesLevel() +'-'+ '');
|
|
2168
|
+
// console.log(ff.eyesLevel() +'-'+ '');
|
|
2169
|
+
// console.log('-----');
|
|
2170
|
+
if (face.leftEyeNoseDistanceX() < ff.leftEyeNoseDistanceX() * 0.6 &&
|
|
2235
2171
|
face.rightEyeNoseDistanceX() > ff.rightEyeNoseDistanceX() * 1.2 &&
|
|
2236
2172
|
face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
|
|
2237
2173
|
face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
|
|
2238
2174
|
face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
|
|
2239
|
-
face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
|
|
2240
|
-
) {
|
|
2175
|
+
face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3) {
|
|
2241
2176
|
this.presentedFacePose = FacePose.LookLeft;
|
|
2242
|
-
}
|
|
2243
|
-
|
|
2177
|
+
}
|
|
2178
|
+
else if (face.rightEyeNoseDistanceX() < ff.rightEyeNoseDistanceX() * 0.6 &&
|
|
2244
2179
|
face.leftEyeNoseDistanceX() > ff.leftEyeNoseDistanceX() * 1.2 &&
|
|
2245
2180
|
face.leftEyeNoseDistanceY() > ff.leftEyeNoseDistanceY() * 0.7 &&
|
|
2246
2181
|
face.leftEyeNoseDistanceY() < ff.leftEyeNoseDistanceY() * 1.3 &&
|
|
2247
2182
|
face.rightEyeNoseDistanceY() > ff.rightEyeNoseDistanceY() * 0.7 &&
|
|
2248
|
-
face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3
|
|
2249
|
-
) {
|
|
2183
|
+
face.rightEyeNoseDistanceY() < ff.rightEyeNoseDistanceY() * 1.3) {
|
|
2250
2184
|
this.presentedFacePose = FacePose.LookRight;
|
|
2251
|
-
}
|
|
2185
|
+
}
|
|
2186
|
+
else if (face.eyesNoseDistance() < ff.eyesNoseDistance() * 0.45) {
|
|
2252
2187
|
this.presentedFacePose = FacePose.LookUp;
|
|
2253
|
-
|
|
2254
|
-
this.presentedFacePose = FacePose.LookDown;
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
// this.presentedFacePose = FacePose.TiltRight;
|
|
2188
|
+
// } else if (face.leftEyeEyeBrowDistance() < ff.leftEyeEyeBrowDistance() * 0.8 && face.rightEyeEyeBrowDistance() < ff.rightEyeEyeBrowDistance() * 0.8) {
|
|
2189
|
+
// this.presentedFacePose = FacePose.LookDown;
|
|
2190
|
+
}
|
|
2191
|
+
else if (face.eyesLevel() >= this.frontFace.eyesLevel() + this.height * 0.05) {
|
|
2192
|
+
this.presentedFacePose = FacePose.TiltLeft;
|
|
2259
2193
|
}
|
|
2260
|
-
|
|
2194
|
+
else if (face.eyesLevel() <= this.frontFace.eyesLevel() - this.height * 0.05) {
|
|
2195
|
+
this.presentedFacePose = FacePose.TiltRight;
|
|
2196
|
+
}
|
|
2197
|
+
// if (this.presentedFacePose != null)
|
|
2198
|
+
// console.log(FacePose[this.presentedFacePose]);
|
|
2261
2199
|
if (this.presentedFacePose != null && this.presentedFacePose == this.requestedFacePose) {
|
|
2262
2200
|
this.validFacePose = true;
|
|
2263
2201
|
await this.drawFrame('green', true);
|
|
@@ -2265,7 +2203,6 @@ class FaceML5Detector {
|
|
|
2265
2203
|
//this.stream.changeFacePose();
|
|
2266
2204
|
}
|
|
2267
2205
|
}
|
|
2268
|
-
// //check if face is centered again
|
|
2269
2206
|
// if (this.validFacePose && this.requestedFacePose != null) {
|
|
2270
2207
|
// if (
|
|
2271
2208
|
// face.leftEyeNoseDistanceX() < face.rightEyeNoseDistanceX() * 1.2 &&
|
|
@@ -4877,17 +4814,17 @@ class Stream {
|
|
|
4877
4814
|
// if (this.faceDetection) await Detector.getInstance().startDetector();
|
|
4878
4815
|
}
|
|
4879
4816
|
recordStream() {
|
|
4880
|
-
var options = { mimeType:
|
|
4817
|
+
var options = { mimeType: 'video/webm;codecs=vp8', videoBitsPerSecond: 1500000 };
|
|
4881
4818
|
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
|
|
4882
4819
|
if (this.device.isIos || this.device.isSafari)
|
|
4883
|
-
options.mimeType =
|
|
4820
|
+
options.mimeType = 'video/mp4;codecs:h264';
|
|
4884
4821
|
}
|
|
4885
4822
|
this.recordedChunks = [];
|
|
4886
4823
|
this.mediaRecorder = new MediaRecorder(this.stream, options);
|
|
4887
4824
|
this.mediaRecorder.ondataavailable = event => {
|
|
4888
4825
|
this.recordedChunks.push(event.data);
|
|
4889
4826
|
};
|
|
4890
|
-
this.mediaRecorder.onstop =
|
|
4827
|
+
this.mediaRecorder.onstop = async () => {
|
|
4891
4828
|
this.saveVideoRecording(this.recordedChunks, options.mimeType);
|
|
4892
4829
|
this.recordedChunks = [];
|
|
4893
4830
|
};
|
|
@@ -4974,8 +4911,6 @@ class Stream {
|
|
|
4974
4911
|
this.callbackChangeTitle(pose);
|
|
4975
4912
|
}
|
|
4976
4913
|
}
|
|
4977
|
-
Stream.mp4MimeType = { type: 'video/mp4', codec: 'codecs:h264', extension: 'mp4', mime: 'video/mp4;codecs:h264' };
|
|
4978
|
-
Stream.webmMimeType = { type: 'video/webm', codec: 'codecs=vp8', extension: 'webm', mime: 'video/webm;codecs=vp8' };
|
|
4979
4914
|
window.addEventListener('resize', Stream.orientationChange, false);
|
|
4980
4915
|
window.addEventListener('orientationchange', Stream.orientationChange, false);
|
|
4981
4916
|
|
|
@@ -5097,7 +5032,7 @@ const CaptureError = class {
|
|
|
5097
5032
|
this.eventCaptureErrorDone.emit();
|
|
5098
5033
|
}
|
|
5099
5034
|
render() {
|
|
5100
|
-
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { class: "buletin-container" }, index.h("img", { class: "w-45", src: this.imagePath })), index.h("div", null, index.h("p", { class: "color-red font-weight-bold font-size-2 text-center mt-10" }, this.description)), index.h("div", { class: "pos-relative" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, IdCaptureValues.Button), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, IdCaptureValues.FooterText))))));
|
|
5035
|
+
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { class: "buletin-container" }, index.h("img", { class: "w-45", src: this.imagePath })), index.h("div", null, index.h("p", { class: "color-red font-weight-bold font-size-2 text-center mt-10" }, this.description)), index.h("div", { class: "pos-relative show-bottom" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, IdCaptureValues.Button), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, IdCaptureValues.FooterText))))));
|
|
5101
5036
|
}
|
|
5102
5037
|
};
|
|
5103
5038
|
CaptureError.style = captureErrorCss;
|
|
@@ -5215,7 +5150,7 @@ const HowToInfo = class {
|
|
|
5215
5150
|
}
|
|
5216
5151
|
render() {
|
|
5217
5152
|
let sub = this.subTitle != '' ? index.h("p", { class: "font-size-2" }, this.subTitle) : null;
|
|
5218
|
-
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { class: "div-ci align-center" }, index.h("img", { src: this.imagePath })), index.h("div", { class: "text-center" }, index.h("h1", null, this.topTitle), sub), index.h("div", { class: "pos-relative" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, this.buttonText), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, HowToValues.FooterText))))));
|
|
5153
|
+
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { class: "div-ci align-center" }, index.h("img", { src: this.imagePath })), index.h("div", { class: "text-center" }, index.h("h1", null, this.topTitle), sub), index.h("div", { class: "pos-relative show-bottom" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, this.buttonText), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, HowToValues.FooterText))))));
|
|
5219
5154
|
}
|
|
5220
5155
|
};
|
|
5221
5156
|
HowToInfo.style = howToInfoCss;
|
|
@@ -5630,13 +5565,10 @@ const IdDoubleSide = class {
|
|
|
5630
5565
|
}
|
|
5631
5566
|
async capturedIdRecording(event) {
|
|
5632
5567
|
let idRecording = event.detail;
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
return;
|
|
5636
|
-
}
|
|
5637
|
-
let mimeType = idRecording.type == Stream.mp4MimeType.type ? Stream.mp4MimeType : Stream.webmMimeType;
|
|
5568
|
+
let mimeType = idRecording.type.split(';')[0];
|
|
5569
|
+
let extension = mimeType.split('/')[1];
|
|
5638
5570
|
try {
|
|
5639
|
-
this.flow.recordingFile = new File([idRecording], this.flow.recordingFileName +
|
|
5571
|
+
this.flow.recordingFile = new File([idRecording], this.flow.recordingFileName + extension, { type: mimeType });
|
|
5640
5572
|
this.uploadRecording();
|
|
5641
5573
|
}
|
|
5642
5574
|
catch (e) {
|
|
@@ -5766,14 +5698,11 @@ const IdSingleSide = class {
|
|
|
5766
5698
|
}
|
|
5767
5699
|
async capturedIdRecording(event) {
|
|
5768
5700
|
let idRecording = event.detail;
|
|
5769
|
-
|
|
5770
|
-
|
|
5771
|
-
return;
|
|
5772
|
-
}
|
|
5773
|
-
let mimeType = idRecording.type == Stream.mp4MimeType.type ? Stream.mp4MimeType : Stream.webmMimeType;
|
|
5701
|
+
let mimeType = idRecording.type.split(';')[0];
|
|
5702
|
+
let extension = mimeType.split('/')[1];
|
|
5774
5703
|
if (state.flowStatus == FlowStatus.ID) {
|
|
5775
5704
|
try {
|
|
5776
|
-
this.idFlow.recordingFile = new File([idRecording], 'idVideo.' +
|
|
5705
|
+
this.idFlow.recordingFile = new File([idRecording], 'idVideo.' + extension, { type: mimeType });
|
|
5777
5706
|
await this.uploadRecording();
|
|
5778
5707
|
}
|
|
5779
5708
|
catch (e) {
|
|
@@ -5875,72 +5804,7 @@ const initDevice = () => {
|
|
|
5875
5804
|
return device;
|
|
5876
5805
|
};
|
|
5877
5806
|
|
|
5878
|
-
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
|
5879
|
-
// require the crypto API and do not support built-in fallback to lower quality random number
|
|
5880
|
-
// generators (like Math.random()).
|
|
5881
|
-
let getRandomValues;
|
|
5882
|
-
const rnds8 = new Uint8Array(16);
|
|
5883
|
-
function rng() {
|
|
5884
|
-
// lazy load so that environments that need to polyfill have a chance to do so
|
|
5885
|
-
if (!getRandomValues) {
|
|
5886
|
-
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
|
5887
|
-
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
|
5888
|
-
|
|
5889
|
-
if (!getRandomValues) {
|
|
5890
|
-
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
|
5891
|
-
}
|
|
5892
|
-
}
|
|
5893
|
-
|
|
5894
|
-
return getRandomValues(rnds8);
|
|
5895
|
-
}
|
|
5896
|
-
|
|
5897
|
-
/**
|
|
5898
|
-
* Convert array of 16 byte values to UUID string format of the form:
|
|
5899
|
-
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
5900
|
-
*/
|
|
5901
|
-
|
|
5902
|
-
const byteToHex = [];
|
|
5903
|
-
|
|
5904
|
-
for (let i = 0; i < 256; ++i) {
|
|
5905
|
-
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
5906
|
-
}
|
|
5907
|
-
|
|
5908
|
-
function unsafeStringify(arr, offset = 0) {
|
|
5909
|
-
// Note: Be careful editing this code! It's been tuned for performance
|
|
5910
|
-
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
5911
|
-
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
|
5912
|
-
}
|
|
5913
|
-
|
|
5914
|
-
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
|
5915
|
-
const native = {
|
|
5916
|
-
randomUUID
|
|
5917
|
-
};
|
|
5918
|
-
|
|
5919
|
-
function v4(options, buf, offset) {
|
|
5920
|
-
if (native.randomUUID && !buf && !options) {
|
|
5921
|
-
return native.randomUUID();
|
|
5922
|
-
}
|
|
5923
|
-
|
|
5924
|
-
options = options || {};
|
|
5925
|
-
const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
5926
|
-
|
|
5927
|
-
rnds[6] = rnds[6] & 0x0f | 0x40;
|
|
5928
|
-
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
|
5929
|
-
|
|
5930
|
-
if (buf) {
|
|
5931
|
-
offset = offset || 0;
|
|
5932
|
-
|
|
5933
|
-
for (let i = 0; i < 16; ++i) {
|
|
5934
|
-
buf[offset + i] = rnds[i];
|
|
5935
|
-
}
|
|
5936
|
-
|
|
5937
|
-
return buf;
|
|
5938
|
-
}
|
|
5939
|
-
|
|
5940
|
-
return unsafeStringify(rnds);
|
|
5941
|
-
}
|
|
5942
|
-
|
|
5943
|
-
const identificationComponentCss = "@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-vietnamese-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-cyrillic-ext-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-cyrillic-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-greek-ext-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-greek-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-vietnamese-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-latin-ext-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-latin-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-cyrillic-ext-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-cyrillic-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-greek-ext-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-greek-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-vietnamese-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-latin-ext-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-latin-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-cyrillic-ext-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-cyrillic-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-greek-ext-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-greek-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-vietnamese-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-latin-ext-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-latin-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-vietnamese-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{font-family:'Inter', sans-serif}h1{font-weight:900;letter-spacing:0.01em;color:#1f2024;font-size:3.2vh;margin:0;line-height:3.5vh}.row-validare h1{font-size:27px;line-height:29px}body{margin:0;padding:0;height:100vh;position:relative;}.container{width:100%;height:100%;background-color:#fff;max-width:991px;margin:auto;position:relative;overflow:hidden}.container-video{height:99vh;text-align:center;position:relative;overflow:hidden}.row{padding:3.5vh 2.5vh;height:100%;overflow:hidden;position:relative;}.ctheight-100{height:99vh}.d-flex{display:flex}.space-between{justify-content:space-between}.img-info img{width:0.8vh;z-index:5;position:relative}.img-info{width:7vh;height:7vh;border-radius:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(100% 100% at 50% 0%, #d3b6e9 0%, #fbc2bd 100%)}.i-effect{animation:2.5s infinite transition-i;position:absolute;z-index:2;border-radius:100%;background:radial-gradient(100% 100% at 50% 0%, #d3b6e9 0%, #fbc2bd 100%)}.two-buttons{margin-top:3vh;justify-content:center}.align-center{align-items:center}.main-text{font-weight:400;color:#71727a}.font-size-2{font-size:2vh}.row-validare .font-size-2{font-size:17px;line-height:19px}.img-text{display:flex;align-items:center;margin-bottom:3vh}.img-text .bg-img img{width:100%;padding:2vh}.img-text h3{color:#333333;font-weight:700;font-size:2.3vh;margin:0}.img-text .bg-img{background:#e1e3e9;border-radius:30%;width:11vh;height:11vh;display:flex;align-items:center;justify-content:center;flex:none;margin-right:3vh}.font-weight-bold{font-weight:bold}.font-size-18{font-size:1.8vh}.row-validare .font-size-18{font-size:15px;line-height:16px}a{font-size:inherit;color:inherit;text-decoration:none}.color-black{color:#000}.main-button{background:#1feaa6;box-shadow:0 6px 8px rgba(71, 182, 162, 0.2);border-radius:25px;text-align:center;width:100%;padding:2vh;color:#fff;border:0;font-size:2vh}.main-button:disabled{color:#71727a}.normal-button{background:#1feaa6;box-shadow:0 6px 8px rgba(71, 182, 162, 0.2);border-radius:25px;text-align:center;padding:2vh;margin-right:1vw;margin-left:1vw;color:#fff;border:0;font-size:2vh}.red-button{background:#ff535d}.row-validare .main-button{font-size:17px}.text-right{text-align:right}.mb-1{margin-bottom:1vh}.mb-0{margin-bottom:0}.row-validare.row{padding:29px 21px}.row-validare .main-button{padding:16px}.row-validare .btn-buletin{position:relative;width:100%;bottom:0}.row-validare .main-input{padding:14px 12px;border-radius:12px;font-weight:700;border:2px solid #464e58;font-size:19px}.main-input{width:100%;padding:22px 26px;border:3px solid #464e58;border-radius:20px;font-weight:600;font-size:2.3vh;font-family:'Inter', sans-serif}.second-input{width:46px;height:46px;font-weight:700;font-size:16px;font-family:'Inter', sans-serif;text-align:center;border:2px solid #c5c6cc;border-radius:12px;outline:none;padding:2px}.second-input:not(:placeholder-shown){border:2px solid #1feaa6;color:#1feaa6}.mt-9{margin-top:9%}.second-input::placeholder{color:#fff;opacity:0}.second-input:focus{border:2px solid #464e58;color:#464e58}.second-input.error{border:2px solid #b67171}.second-input.error:focus{border:3px solid #b67171;color:#b67171;padding:1px}.second-input.error:not(:placeholder-shown){border:3px solid #b67171;color:#b67171;padding:2px}.second-input-container{margin-top:30%;display:flex;flex-wrap:wrap;justify-content:space-between}.input-container{display:flex;flex-wrap:wrap}.mt-15{margin-top:15%}.row-validare .mt-15{margin-top:40px}.mb-15{margin-bottom:15%}.row-validare .mb-15{margin-bottom:40px}.mb-20{margin-bottom:20%}.row-validare .mb-1{margin-bottom:20px}.row-validare .mb-20{margin-bottom:60px}.mt-90{margin-top:90px}.op-05{opacity:0.5}.color-red{color:#b67171}.error-text{position:relative;top:50px;margin-bottom:0;margin-top:0}.top-50{top:50px}.mt-25{margin-top:25%}.text-center{text-align:center}.scale-2{transform:scale(2)}.mt-20{margin-top:20%}.div-ci img{max-height:60vh;max-width:80vw}.div-ci{text-align:center}.mt-10{margin-top:10vh}.pos-relative{position:relative}.pos-absolute{position:absolute}.btn-buletin{position:fixed;width:calc(100% - 5vh);bottom:5vh}.buletin-container img{width:60%}.buletin-container>img{margin-top:10vh}.buletin-container{text-align:center}.bg-black{background-color:#242426}.color-white{color:#fff}.chenar-buletin{margin-top:3em;text-align:center}.chenar-buletin .ci-img{width:96%}.chenar-buletin .face-img,.chenar-buletin .chenar-img{left:4%;width:92%;top:-20px;min-height:55vw;display:flex;position:absolute;align-items:center;background-color:rgba(255, 255, 255, 0.2);justify-content:center}.chenar-buletin img{width:auto;height:100%;top:0;left:0;position:absolute;border-radius:10px;z-index:4}.chenar-buletin .face-img{background-color:rgba(255, 255, 255, 0.3)}.buletin-container .w-40{width:40%}.animation{width:100%;height:100%;}.color-black-2{color:#71727a}.font-size-3{font-size:3vh}.font-weight-900{font-weight:900}.mt-8{margin-top:8vh}.mt-12{margin-top:12vh}.mt-30-i{margin-top:30% !important}.chenar-buletin .face-img{left:-2%;width:104%;top:-40px}.pl-2-5{padding-left:2.5vh}.container-coin{background-color:transparent;perspective:1000px;rotate:120deg 0deg}.dot-effect{position:fixed;bottom:13vh;width:calc(100% - 5vh);text-align:center;display:flex;align-items:center;justify-content:center}.coin-flip{animation:flip 0.4s ease-in;animation-delay:0.5s;transform-style:preserve-3d;animation-fill-mode:forwards;visibility:hidden}.coin-scale{animation:show 0.4s ease-in;animation-delay:0.5s;transform-style:preserve-3d;animation-fill-mode:forwards}.scroll{margin:4px, 4px;padding:4px;height:70vh;overflow-x:hidden;overflow-y:auto}.video-demo{z-index:0;width:100%;height:100%;border-radius:20px}.video-capture{padding:2.5vh 2.5vh;margin-top:3em;text-align:center;position:relative}.capture-title{z-index:4;margin-top:3vh;position:absolute;bottom:5vh;padding:2.5vh 2.5vh}@keyframes transition-i{from{width:0;height:0;opacity:1}80%{width:10vh;height:10vh;opacity:0.5}100%{opacity:0}}@keyframes flip{0%{transform:rotateX(140deg);visibility:visible}25%{transform:rotateX(120deg);visibility:visible}50%{transform:rotateX(90deg);visibility:visible}75%{transform:rotateX(75deg);visibility:visible}100%{transform:rotateX(0deg);visibility:visible}}@keyframes show{0%{transform:scale(0)}25%{transform:scale(0.2)}40%{transform:scale(0.4)}50%{transform:scale(0.5)}60%{transform:scale(0.6)}70%{transform:scale(0.7)}100%{transform:scale(1)}}@keyframes rise{0%{visibility:hidden}50%{visibility:visible}100%{visibility:visible}}.dot-shuttle{position:relative;left:-15px;width:12px;height:12px;border-radius:6px;background-color:#1feaa6;color:transparent;margin:-1px 0;opacity:1}.dot-shuttle::before{opacity:0.5}.dot-shuttle::after{opacity:0.5}.dot-shuttle::before,.dot-shuttle::after{content:'';display:inline-block;position:absolute;top:0;width:12px;height:12px;border-radius:6px;background-color:#1feaa6;color:transparent}.dot-shuttle::before{left:0;animation:dotShuttle 2s infinite ease-out}.dot-shuttle::after{left:0;animation:dotShuttle 2s infinite ease-out;animation-delay:1s}.buletin-container.rotate-x img{animation:transform-rotate-x 2s infinite ease-in}.rotateimg90{animation:transform-rotate-x2 2s forwards;animation-delay:1s;position:absolute}.rotateimg180{animation:transform-rotate-x3 2s forwards;animation-delay:3s;position:absolute;opacity:0}.buletin-back{display:flex;justify-content:center}@keyframes transform-rotate-x3{from{transform:rotateY(-90deg);opacity:1}to{transform:rotateY(0deg);opacity:1}}@keyframes transform-rotate-x2{to{transform:rotateY(90deg)}}@keyframes transform-rotate-x{to{transform:perspective(600px) rotateX(40deg)}}@keyframes dotShuttle{0%,50%,100%{transform:translateX(0);opacity:1}25%{transform:translateX(-30px);opacity:0.5}75%{transform:translateX(30px);opacity:0.5}}@media only screen and (max-width: 350px){.second-input{width:36px;height:36px}}@media only screen and (max-width: 390px){.second-input{width:40px;height:40px}}@media only screen and (min-width: 530px) and (max-width: 767px){.chenar-buletin .face-img{width:70%;min-height:auto;margin:auto;left:15%;right:auto;top:-15vh}}@media only screen and (min-width: 600px) and (max-width: 767px){.max-h img{margin-left:15%;margin-right:15%}.max-h{display:flex;align-items:center}}@media only screen and (max-width: 991px){.buletin-container img{max-width:220px}}@media only screen and (min-width: 767px){.container{max-width:530px;margin:40px auto;border-radius:20px;box-shadow:1px 1px 10px rgba(0, 0, 0, 0.1)}body{height:90vh}.btn-buletin{max-width:490px;bottom:7vh}.buletin-container img{width:45%}.chenar-buletin .face-img,.chenar-buletin .chenar-img{min-height:300px}.chenar-buletin .face-img{width:80%;min-height:auto;margin:auto;left:10%;right:auto;top:-10vh}.dot-effect{max-width:490px}}";
|
|
5807
|
+
const identificationComponentCss = "@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-vietnamese-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-cyrillic-ext-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-cyrillic-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-greek-ext-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-greek-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-vietnamese-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-latin-ext-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:900;src:url('./files/inter-latin-900-normal.woff2') format('woff2'), url('./files/inter-all-900-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-cyrillic-ext-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-cyrillic-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-greek-ext-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-greek-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-vietnamese-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-latin-ext-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('./files/inter-latin-700-normal.woff2') format('woff2'), url('./files/inter-all-700-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-cyrillic-ext-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-cyrillic-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-greek-ext-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-greek-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-vietnamese-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-latin-ext-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('./files/inter-latin-600-normal.woff2') format('woff2'), url('./files/inter-all-600-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-cyrillic-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-greek-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0370-03FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-vietnamese-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-ext-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('./files/inter-latin-400-normal.woff2') format('woff2'), url('./files/inter-all-400-normal.woff') format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{font-family:'Inter', sans-serif}h1{font-weight:900;letter-spacing:0.01em;color:#1f2024;font-size:3.2vh;margin:0;line-height:3.5vh}.row-validare h1{font-size:27px;line-height:29px}body{margin:0;padding:0;height:100vh;position:relative;}.container{width:100%;height:90vh;background-color:#fff;max-width:991px;margin:auto;position:relative;overflow:hidden}.container-video{height:99vh;text-align:center;position:relative;overflow:hidden}.row{padding:3.5vh 2.5vh;height:100%;overflow:hidden;position:relative;}.ctheight-100{height:99vh}.d-flex{display:flex}.space-between{justify-content:space-between}.img-info img{width:0.8vh;z-index:5;position:relative}.img-info{width:7vh;height:7vh;border-radius:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(100% 100% at 50% 0%, #d3b6e9 0%, #fbc2bd 100%)}.i-effect{animation:2.5s infinite transition-i;position:absolute;z-index:2;border-radius:100%;background:radial-gradient(100% 100% at 50% 0%, #d3b6e9 0%, #fbc2bd 100%)}.two-buttons{margin-top:3vh;justify-content:center}.align-center{align-items:center}.main-text{font-weight:400;color:#71727a}.font-size-2{font-size:2vh}.row-validare .font-size-2{font-size:17px;line-height:19px}.img-text{display:flex;align-items:center;margin-bottom:3vh}.img-text .bg-img img{width:100%;padding:2vh}.img-text h3{color:#333333;font-weight:700;font-size:2.3vh;margin:0}.img-text .bg-img{background:#e1e3e9;border-radius:30%;width:11vh;height:11vh;display:flex;align-items:center;justify-content:center;flex:none;margin-right:3vh}.font-weight-bold{font-weight:bold}.font-size-18{font-size:1.8vh}.row-validare .font-size-18{font-size:15px;line-height:16px}a{font-size:inherit;color:inherit;text-decoration:none}.color-black{color:#000}.main-button{background:#1feaa6;box-shadow:0 6px 8px rgba(71, 182, 162, 0.2);border-radius:25px;text-align:center;width:100%;padding:2vh;color:#fff;border:0;font-size:2vh}.main-button:disabled{color:#71727a}.normal-button{background:#1feaa6;box-shadow:0 6px 8px rgba(71, 182, 162, 0.2);border-radius:25px;text-align:center;padding:2vh;margin-right:1vw;margin-left:1vw;color:#fff;border:0;font-size:2vh}.red-button{background:#ff535d}.row-validare .main-button{font-size:17px}.text-right{text-align:right}.mb-1{margin-bottom:1vh}.mb-0{margin-bottom:0}.row-validare.row{padding:29px 21px}.row-validare .main-button{padding:16px}.row-validare .btn-buletin{position:relative;width:100%;bottom:0}.show-bottom{bottom:-10vh}.row-validare .main-input{padding:14px 12px;border-radius:12px;font-weight:700;border:2px solid #464e58;font-size:19px}.main-input{width:100%;padding:22px 26px;border:3px solid #464e58;border-radius:20px;font-weight:600;font-size:2.3vh;font-family:'Inter', sans-serif}.second-input{width:46px;height:46px;font-weight:700;font-size:16px;font-family:'Inter', sans-serif;text-align:center;border:2px solid #c5c6cc;border-radius:12px;outline:none;padding:2px}.second-input:not(:placeholder-shown){border:2px solid #1feaa6;color:#1feaa6}.mt-9{margin-top:9%}.second-input::placeholder{color:#fff;opacity:0}.second-input:focus{border:2px solid #464e58;color:#464e58}.second-input.error{border:2px solid #b67171}.second-input.error:focus{border:3px solid #b67171;color:#b67171;padding:1px}.second-input.error:not(:placeholder-shown){border:3px solid #b67171;color:#b67171;padding:2px}.second-input-container{margin-top:30%;display:flex;flex-wrap:wrap;justify-content:space-between}.input-container{display:flex;flex-wrap:wrap}.mt-15{margin-top:15%}.row-validare .mt-15{margin-top:40px}.mb-15{margin-bottom:15%}.row-validare .mb-15{margin-bottom:40px}.mb-20{margin-bottom:20%}.row-validare .mb-1{margin-bottom:20px}.row-validare .mb-20{margin-bottom:60px}.mt-90{margin-top:90px}.op-05{opacity:0.5}.color-red{color:#b67171}.error-text{position:relative;top:50px;margin-bottom:0;margin-top:0}.top-50{top:50px}.mt-25{margin-top:25%}.text-center{text-align:center}.scale-2{transform:scale(2)}.mt-20{margin-top:20%}.div-ci img{max-height:60vh;max-width:80vw}.div-ci{text-align:center}.mt-10{margin-top:10vh}.pos-relative{position:relative}.pos-absolute{position:absolute}.btn-buletin{text-align:center}.buletin-container img{width:60%}.buletin-container>img{margin-top:10vh}.buletin-container{text-align:center}.bg-black{background-color:#242426}.color-white{color:#fff}.chenar-buletin{margin-top:3em;text-align:center}.chenar-buletin .ci-img{width:96%}.chenar-buletin .face-img,.chenar-buletin .chenar-img{left:4%;width:92%;top:-20px;min-height:55vw;display:flex;position:absolute;align-items:center;background-color:rgba(255, 255, 255, 0.2);justify-content:center}.chenar-buletin img{width:auto;height:100%;top:0;left:0;position:absolute;border-radius:10px;z-index:4}.chenar-buletin .face-img{background-color:rgba(255, 255, 255, 0.3)}.buletin-container .w-40{width:40%}.animation{width:100%;height:100%;}.color-black-2{color:#71727a}.font-size-3{font-size:3vh}.font-weight-900{font-weight:900}.mt-8{margin-top:8vh}.mt-12{margin-top:12vh}.mt-30-i{margin-top:30% !important}.chenar-buletin .face-img{left:-2%;width:104%;top:-40px}.pl-2-5{padding-left:2.5vh}.container-coin{background-color:transparent;perspective:1000px;rotate:120deg 0deg}.dot-effect{position:fixed;bottom:13vh;width:calc(100% - 5vh);text-align:center;display:flex;align-items:center;justify-content:center}.coin-flip{animation:flip 0.4s ease-in;animation-delay:0.5s;transform-style:preserve-3d;animation-fill-mode:forwards;visibility:hidden}.coin-scale{animation:show 0.4s ease-in;animation-delay:0.5s;transform-style:preserve-3d;animation-fill-mode:forwards}.scroll{margin:4px, 4px;padding:4px;height:70vh;overflow-x:hidden;overflow-y:auto}.video-demo{z-index:0;width:100%;height:100%;border-radius:20px}.video-capture{padding:2.5vh 2.5vh;margin-top:3em;text-align:center;position:relative}.capture-title{z-index:4;margin-top:3vh;position:absolute;bottom:5vh;padding:2.5vh 2.5vh}@keyframes transition-i{from{width:0;height:0;opacity:1}80%{width:10vh;height:10vh;opacity:0.5}100%{opacity:0}}@keyframes flip{0%{transform:rotateX(140deg);visibility:visible}25%{transform:rotateX(120deg);visibility:visible}50%{transform:rotateX(90deg);visibility:visible}75%{transform:rotateX(75deg);visibility:visible}100%{transform:rotateX(0deg);visibility:visible}}@keyframes show{0%{transform:scale(0)}25%{transform:scale(0.2)}40%{transform:scale(0.4)}50%{transform:scale(0.5)}60%{transform:scale(0.6)}70%{transform:scale(0.7)}100%{transform:scale(1)}}@keyframes rise{0%{visibility:hidden}50%{visibility:visible}100%{visibility:visible}}.dot-shuttle{position:relative;left:-15px;width:12px;height:12px;border-radius:6px;background-color:#1feaa6;color:transparent;margin:-1px 0;opacity:1}.dot-shuttle::before{opacity:0.5}.dot-shuttle::after{opacity:0.5}.dot-shuttle::before,.dot-shuttle::after{content:'';display:inline-block;position:absolute;top:0;width:12px;height:12px;border-radius:6px;background-color:#1feaa6;color:transparent}.dot-shuttle::before{left:0;animation:dotShuttle 2s infinite ease-out}.dot-shuttle::after{left:0;animation:dotShuttle 2s infinite ease-out;animation-delay:1s}.buletin-container.rotate-x img{animation:transform-rotate-x 2s infinite ease-in}.rotateimg90{animation:transform-rotate-x2 2s forwards;animation-delay:1s;position:absolute}.rotateimg180{animation:transform-rotate-x3 2s forwards;animation-delay:3s;position:absolute;opacity:0}.buletin-back{display:flex;justify-content:center}@keyframes transform-rotate-x3{from{transform:rotateY(-90deg);opacity:1}to{transform:rotateY(0deg);opacity:1}}@keyframes transform-rotate-x2{to{transform:rotateY(90deg)}}@keyframes transform-rotate-x{to{transform:perspective(600px) rotateX(40deg)}}@keyframes dotShuttle{0%,50%,100%{transform:translateX(0);opacity:1}25%{transform:translateX(-30px);opacity:0.5}75%{transform:translateX(30px);opacity:0.5}}@media only screen and (max-width: 350px){.second-input{width:36px;height:36px}}@media only screen and (max-width: 390px){.second-input{width:40px;height:40px}}@media only screen and (min-width: 530px) and (max-width: 767px){.chenar-buletin .face-img{width:70%;min-height:auto;margin:auto;left:15%;right:auto;top:-15vh}}@media only screen and (min-width: 600px) and (max-width: 767px){.max-h img{margin-left:15%;margin-right:15%}.max-h{display:flex;align-items:center}}@media only screen and (max-width: 991px){.buletin-container img{max-width:220px}}@media only screen and (min-width: 767px){.container{max-width:530px;margin:40px auto;border-radius:20px;box-shadow:1px 1px 10px rgba(0, 0, 0, 0.1)}body{height:90vh}.btn-buletin{max-width:490px;bottom:7vh}.buletin-container img{width:45%}.chenar-buletin .face-img,.chenar-buletin .chenar-img{min-height:300px}.chenar-buletin .face-img{width:80%;min-height:auto;margin:auto;left:10%;right:auto;top:-10vh}.dot-effect{max-width:490px}}";
|
|
5944
5808
|
|
|
5945
5809
|
const IdentificationComponent = class {
|
|
5946
5810
|
async onTokenChange(newValue, _oldValue) {
|
|
@@ -5984,16 +5848,6 @@ const IdentificationComponent = class {
|
|
|
5984
5848
|
state.environment = newValue;
|
|
5985
5849
|
}
|
|
5986
5850
|
}
|
|
5987
|
-
async onRedirectIdChange(newValue, _oldValue) {
|
|
5988
|
-
if (state.redirectId != '') {
|
|
5989
|
-
newValue = state.redirectId;
|
|
5990
|
-
return;
|
|
5991
|
-
}
|
|
5992
|
-
if (state.redirectId !== newValue) {
|
|
5993
|
-
state.redirectId = newValue;
|
|
5994
|
-
}
|
|
5995
|
-
await this.initializeRequest();
|
|
5996
|
-
}
|
|
5997
5851
|
agreementAcceptanceEmitted(data) {
|
|
5998
5852
|
try {
|
|
5999
5853
|
this.apiCall.GenerateAgreement(data.detail.agreementType);
|
|
@@ -6002,23 +5856,19 @@ const IdentificationComponent = class {
|
|
|
6002
5856
|
this.apiErrorEmitter(e);
|
|
6003
5857
|
}
|
|
6004
5858
|
}
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
if (data.detail) {
|
|
6008
|
-
if (data.detail.message) {
|
|
6009
|
-
this.errorMessage = data.detail.message;
|
|
6010
|
-
}
|
|
6011
|
-
apiLogData.message = data.detail.message;
|
|
6012
|
-
apiLogData.stack = data.detail.stack;
|
|
6013
|
-
}
|
|
6014
|
-
else if (data.message) {
|
|
5859
|
+
apiErrorEmitter(data) {
|
|
5860
|
+
if (data.message) {
|
|
6015
5861
|
this.errorMessage = data.message;
|
|
6016
|
-
|
|
5862
|
+
}
|
|
5863
|
+
else if (data.detail && data.detail.message) {
|
|
5864
|
+
this.errorMessage = data.detail.message;
|
|
5865
|
+
}
|
|
5866
|
+
else if (data.detail && data.detail.stack) {
|
|
5867
|
+
this.errorMessage = data.detail.stack;
|
|
6017
5868
|
}
|
|
6018
5869
|
else {
|
|
6019
5870
|
this.errorMessage = data;
|
|
6020
5871
|
}
|
|
6021
|
-
await this.apiCall.AddLog(apiLogData);
|
|
6022
5872
|
Events.flowError(data);
|
|
6023
5873
|
state.flowStatus = FlowStatus.ERROREND;
|
|
6024
5874
|
}
|
|
@@ -6028,7 +5878,6 @@ const IdentificationComponent = class {
|
|
|
6028
5878
|
this.order_id = undefined;
|
|
6029
5879
|
this.api_url = undefined;
|
|
6030
5880
|
this.env = undefined;
|
|
6031
|
-
this.redirect_id = undefined;
|
|
6032
5881
|
this.idSide = '';
|
|
6033
5882
|
this.errorMessage = undefined;
|
|
6034
5883
|
ML5.getInstance();
|
|
@@ -6043,9 +5892,6 @@ const IdentificationComponent = class {
|
|
|
6043
5892
|
state.requestId = this.order_id;
|
|
6044
5893
|
sessionStorage.setItem(SessionKeys.RequestIdKey, state.requestId);
|
|
6045
5894
|
}
|
|
6046
|
-
if (this.redirect_id) {
|
|
6047
|
-
state.redirectId = this.redirect_id;
|
|
6048
|
-
}
|
|
6049
5895
|
state.apiBaseUrl = this.api_url;
|
|
6050
5896
|
state.environment = this.env;
|
|
6051
5897
|
this.apiCall = new ApiCall();
|
|
@@ -6066,15 +5912,8 @@ const IdentificationComponent = class {
|
|
|
6066
5912
|
return;
|
|
6067
5913
|
}
|
|
6068
5914
|
try {
|
|
6069
|
-
if (
|
|
6070
|
-
state.
|
|
6071
|
-
this.redirect_id = state.redirectId;
|
|
6072
|
-
}
|
|
6073
|
-
if (state.token != '' && (state.requestId != '' || state.redirectId != '')) {
|
|
6074
|
-
state.initialised = await this.apiCall.AddIdentificationRequest(this.device);
|
|
6075
|
-
if (!this.order_id || this.order_id == '') {
|
|
6076
|
-
this.order_id = state.requestId;
|
|
6077
|
-
}
|
|
5915
|
+
if (state.token != '' && state.requestId != '') {
|
|
5916
|
+
state.initialised = await this.apiCall.AddIdentificationRequest(state.requestId, JSON.stringify(this.device));
|
|
6078
5917
|
}
|
|
6079
5918
|
}
|
|
6080
5919
|
catch (e) {
|
|
@@ -6083,13 +5922,8 @@ const IdentificationComponent = class {
|
|
|
6083
5922
|
}
|
|
6084
5923
|
render() {
|
|
6085
5924
|
let currentBlock = index.h("div", null);
|
|
6086
|
-
if (
|
|
6087
|
-
|
|
6088
|
-
currentBlock = index.h("landing-validation", { device: this.device });
|
|
6089
|
-
}
|
|
6090
|
-
}
|
|
6091
|
-
else {
|
|
6092
|
-
currentBlock = index.h("mobile-redirect", null);
|
|
5925
|
+
if (state.flowStatus == FlowStatus.LANDING) {
|
|
5926
|
+
currentBlock = index.h("landing-validation", { device: this.device });
|
|
6093
5927
|
}
|
|
6094
5928
|
if (state.flowStatus == FlowStatus.AGREEMENT) {
|
|
6095
5929
|
currentBlock = index.h("agreement-info", null);
|
|
@@ -6124,8 +5958,7 @@ const IdentificationComponent = class {
|
|
|
6124
5958
|
"token": ["onTokenChange"],
|
|
6125
5959
|
"order_id": ["onOrderIdChange"],
|
|
6126
5960
|
"api_url": ["onApiUrlChange"],
|
|
6127
|
-
"env": ["onEnvChange"]
|
|
6128
|
-
"redirect_id": ["onRedirectIdChange"]
|
|
5961
|
+
"env": ["onEnvChange"]
|
|
6129
5962
|
}; }
|
|
6130
5963
|
};
|
|
6131
5964
|
IdentificationComponent.style = identificationComponentCss;
|
|
@@ -6176,3093 +6009,140 @@ const LandingValidation = class {
|
|
|
6176
6009
|
}
|
|
6177
6010
|
}
|
|
6178
6011
|
render() {
|
|
6179
|
-
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", null, index.h("h1", { class: "text-center" }, LandingValues.Title), index.h("div", { class: "d-flex space-between align-center" }, index.h("p", { class: "main-text font-size-2" }, LandingValues.Description), index.h("div", { class: "img-info" }, index.h("div", { class: "i-effect" }), index.h("img", { src: infoSvg })))), index.h("div", { class: "info-container" }, index.h("div", { class: "img-text" }, index.h("div", { class: "bg-img" }, index.h("img", { src: idSvg })), index.h("h3", null, LandingValues.IdInfo)), index.h("div", { class: "img-text" }, index.h("div", { class: "bg-img" }, index.h("img", { src: deviceSvg })), index.h("h3", null, LandingValues.DeviceInfo)), index.h("div", { class: "img-text" }, index.h("div", { class: "bg-img" }, index.h("img", { src: validationSvg })), index.h("h3", null, LandingValues.SmsInfo))), index.h("div", { class: "terms-container" }, index.h("h3", { class: "font-size-2 mb-1 text-center" }, this.warningText)), index.h("div", { class: "pos-relative" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", disabled: !state.initialised, onClick: () => this.startFlow() }, LandingValues.Button), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, LandingValues.FooterText))))));
|
|
6012
|
+
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", null, index.h("h1", { class: "text-center" }, LandingValues.Title), index.h("div", { class: "d-flex space-between align-center" }, index.h("p", { class: "main-text font-size-2" }, LandingValues.Description), index.h("div", { class: "img-info" }, index.h("div", { class: "i-effect" }), index.h("img", { src: infoSvg })))), index.h("div", { class: "info-container" }, index.h("div", { class: "img-text" }, index.h("div", { class: "bg-img" }, index.h("img", { src: idSvg })), index.h("h3", null, LandingValues.IdInfo)), index.h("div", { class: "img-text" }, index.h("div", { class: "bg-img" }, index.h("img", { src: deviceSvg })), index.h("h3", null, LandingValues.DeviceInfo)), index.h("div", { class: "img-text" }, index.h("div", { class: "bg-img" }, index.h("img", { src: validationSvg })), index.h("h3", null, LandingValues.SmsInfo))), index.h("div", { class: "terms-container" }, index.h("h3", { class: "font-size-2 mb-1 text-center" }, this.warningText)), index.h("div", { class: "pos-relative show-bottom" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", disabled: !state.initialised, onClick: () => this.startFlow() }, LandingValues.Button), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, LandingValues.FooterText))))));
|
|
6180
6013
|
}
|
|
6181
6014
|
};
|
|
6182
6015
|
LandingValidation.style = landingValidationCss;
|
|
6183
6016
|
|
|
6184
|
-
|
|
6185
|
-
// standard global objects
|
|
6186
|
-
// https://github.com/soldair/node-qrcode/issues/157
|
|
6187
|
-
|
|
6188
|
-
var canPromise = function () {
|
|
6189
|
-
return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then
|
|
6190
|
-
};
|
|
6191
|
-
|
|
6192
|
-
let toSJISFunction;
|
|
6193
|
-
const CODEWORDS_COUNT = [
|
|
6194
|
-
0, // Not used
|
|
6195
|
-
26, 44, 70, 100, 134, 172, 196, 242, 292, 346,
|
|
6196
|
-
404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,
|
|
6197
|
-
1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,
|
|
6198
|
-
2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706
|
|
6199
|
-
];
|
|
6200
|
-
|
|
6201
|
-
/**
|
|
6202
|
-
* Returns the QR Code size for the specified version
|
|
6203
|
-
*
|
|
6204
|
-
* @param {Number} version QR Code version
|
|
6205
|
-
* @return {Number} size of QR code
|
|
6206
|
-
*/
|
|
6207
|
-
var getSymbolSize$1 = function getSymbolSize (version) {
|
|
6208
|
-
if (!version) throw new Error('"version" cannot be null or undefined')
|
|
6209
|
-
if (version < 1 || version > 40) throw new Error('"version" should be in range from 1 to 40')
|
|
6210
|
-
return version * 4 + 17
|
|
6211
|
-
};
|
|
6212
|
-
|
|
6213
|
-
/**
|
|
6214
|
-
* Returns the total number of codewords used to store data and EC information.
|
|
6215
|
-
*
|
|
6216
|
-
* @param {Number} version QR Code version
|
|
6217
|
-
* @return {Number} Data length in bits
|
|
6218
|
-
*/
|
|
6219
|
-
var getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {
|
|
6220
|
-
return CODEWORDS_COUNT[version]
|
|
6221
|
-
};
|
|
6222
|
-
|
|
6223
|
-
/**
|
|
6224
|
-
* Encode data with Bose-Chaudhuri-Hocquenghem
|
|
6225
|
-
*
|
|
6226
|
-
* @param {Number} data Value to encode
|
|
6227
|
-
* @return {Number} Encoded value
|
|
6228
|
-
*/
|
|
6229
|
-
var getBCHDigit = function (data) {
|
|
6230
|
-
let digit = 0;
|
|
6231
|
-
|
|
6232
|
-
while (data !== 0) {
|
|
6233
|
-
digit++;
|
|
6234
|
-
data >>>= 1;
|
|
6235
|
-
}
|
|
6236
|
-
|
|
6237
|
-
return digit
|
|
6238
|
-
};
|
|
6239
|
-
|
|
6240
|
-
var setToSJISFunction = function setToSJISFunction (f) {
|
|
6241
|
-
if (typeof f !== 'function') {
|
|
6242
|
-
throw new Error('"toSJISFunc" is not a valid function.')
|
|
6243
|
-
}
|
|
6244
|
-
|
|
6245
|
-
toSJISFunction = f;
|
|
6246
|
-
};
|
|
6247
|
-
|
|
6248
|
-
var isKanjiModeEnabled = function () {
|
|
6249
|
-
return typeof toSJISFunction !== 'undefined'
|
|
6250
|
-
};
|
|
6251
|
-
|
|
6252
|
-
var toSJIS = function toSJIS (kanji) {
|
|
6253
|
-
return toSJISFunction(kanji)
|
|
6254
|
-
};
|
|
6255
|
-
|
|
6256
|
-
var utils$1 = {
|
|
6257
|
-
getSymbolSize: getSymbolSize$1,
|
|
6258
|
-
getSymbolTotalCodewords: getSymbolTotalCodewords,
|
|
6259
|
-
getBCHDigit: getBCHDigit,
|
|
6260
|
-
setToSJISFunction: setToSJISFunction,
|
|
6261
|
-
isKanjiModeEnabled: isKanjiModeEnabled,
|
|
6262
|
-
toSJIS: toSJIS
|
|
6263
|
-
};
|
|
6264
|
-
|
|
6265
|
-
var errorCorrectionLevel = createCommonjsModule(function (module, exports) {
|
|
6266
|
-
exports.L = { bit: 1 };
|
|
6267
|
-
exports.M = { bit: 0 };
|
|
6268
|
-
exports.Q = { bit: 3 };
|
|
6269
|
-
exports.H = { bit: 2 };
|
|
6270
|
-
|
|
6271
|
-
function fromString (string) {
|
|
6272
|
-
if (typeof string !== 'string') {
|
|
6273
|
-
throw new Error('Param is not a string')
|
|
6274
|
-
}
|
|
6275
|
-
|
|
6276
|
-
const lcStr = string.toLowerCase();
|
|
6277
|
-
|
|
6278
|
-
switch (lcStr) {
|
|
6279
|
-
case 'l':
|
|
6280
|
-
case 'low':
|
|
6281
|
-
return exports.L
|
|
6282
|
-
|
|
6283
|
-
case 'm':
|
|
6284
|
-
case 'medium':
|
|
6285
|
-
return exports.M
|
|
6286
|
-
|
|
6287
|
-
case 'q':
|
|
6288
|
-
case 'quartile':
|
|
6289
|
-
return exports.Q
|
|
6290
|
-
|
|
6291
|
-
case 'h':
|
|
6292
|
-
case 'high':
|
|
6293
|
-
return exports.H
|
|
6294
|
-
|
|
6295
|
-
default:
|
|
6296
|
-
throw new Error('Unknown EC Level: ' + string)
|
|
6297
|
-
}
|
|
6298
|
-
}
|
|
6299
|
-
|
|
6300
|
-
exports.isValid = function isValid (level) {
|
|
6301
|
-
return level && typeof level.bit !== 'undefined' &&
|
|
6302
|
-
level.bit >= 0 && level.bit < 4
|
|
6303
|
-
};
|
|
6304
|
-
|
|
6305
|
-
exports.from = function from (value, defaultValue) {
|
|
6306
|
-
if (exports.isValid(value)) {
|
|
6307
|
-
return value
|
|
6308
|
-
}
|
|
6309
|
-
|
|
6310
|
-
try {
|
|
6311
|
-
return fromString(value)
|
|
6312
|
-
} catch (e) {
|
|
6313
|
-
return defaultValue
|
|
6314
|
-
}
|
|
6315
|
-
};
|
|
6316
|
-
});
|
|
6317
|
-
|
|
6318
|
-
function BitBuffer () {
|
|
6319
|
-
this.buffer = [];
|
|
6320
|
-
this.length = 0;
|
|
6321
|
-
}
|
|
6322
|
-
|
|
6323
|
-
BitBuffer.prototype = {
|
|
6324
|
-
|
|
6325
|
-
get: function (index) {
|
|
6326
|
-
const bufIndex = Math.floor(index / 8);
|
|
6327
|
-
return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1
|
|
6328
|
-
},
|
|
6329
|
-
|
|
6330
|
-
put: function (num, length) {
|
|
6331
|
-
for (let i = 0; i < length; i++) {
|
|
6332
|
-
this.putBit(((num >>> (length - i - 1)) & 1) === 1);
|
|
6333
|
-
}
|
|
6334
|
-
},
|
|
6335
|
-
|
|
6336
|
-
getLengthInBits: function () {
|
|
6337
|
-
return this.length
|
|
6338
|
-
},
|
|
6339
|
-
|
|
6340
|
-
putBit: function (bit) {
|
|
6341
|
-
const bufIndex = Math.floor(this.length / 8);
|
|
6342
|
-
if (this.buffer.length <= bufIndex) {
|
|
6343
|
-
this.buffer.push(0);
|
|
6344
|
-
}
|
|
6345
|
-
|
|
6346
|
-
if (bit) {
|
|
6347
|
-
this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));
|
|
6348
|
-
}
|
|
6017
|
+
const selfieCaptureCss = "";
|
|
6349
6018
|
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6019
|
+
const SelfieCapture = class {
|
|
6020
|
+
// @State() private animationPath: string;
|
|
6021
|
+
constructor(hostRef) {
|
|
6022
|
+
index.registerInstance(this, hostRef);
|
|
6023
|
+
this.eventPhotoCapture = index.createEvent(this, "photoSelfieCapture", 7);
|
|
6024
|
+
this.delay = ms => new Promise(res => setTimeout(res, ms));
|
|
6025
|
+
this.photoIsReady = photos => {
|
|
6026
|
+
//this.closeCamera();
|
|
6027
|
+
this.eventPhotoCapture.emit(photos);
|
|
6028
|
+
};
|
|
6029
|
+
this.device = undefined;
|
|
6030
|
+
this.videoStarted = undefined;
|
|
6031
|
+
this.captureTaken = undefined;
|
|
6032
|
+
this.verified = undefined;
|
|
6033
|
+
this.titleMesage = undefined;
|
|
6034
|
+
this.demoEnded = undefined;
|
|
6035
|
+
this.demoVideo = undefined;
|
|
6036
|
+
this.uploadingLink = undefined;
|
|
6037
|
+
this.captureHeight = undefined;
|
|
6038
|
+
this.captureWidth = undefined;
|
|
6039
|
+
this.captureTaken = false;
|
|
6040
|
+
this.verified = false;
|
|
6041
|
+
this.cameras = new Cameras();
|
|
6042
|
+
this.demoEnded = false;
|
|
6043
|
+
this.uploadingLink = 'https://ekyc.blob.core.windows.net/$web/animations/uploading_selfie.mp4';
|
|
6044
|
+
}
|
|
6045
|
+
async eventChangeTitle(event) {
|
|
6046
|
+
// this.stopAnimation = false;
|
|
6047
|
+
if (event.detail == null) {
|
|
6048
|
+
this.titleMesage = SelfieCaptureValues.FinalTitle;
|
|
6049
|
+
}
|
|
6050
|
+
else {
|
|
6051
|
+
this.titleMesage = SelfieCaptureValues.FacePoseMapping[event.detail];
|
|
6052
|
+
this.demoEnded = false;
|
|
6053
|
+
this.demoVideo.src = SelfieCaptureValues.FacePoseDemoMapping[event.detail];
|
|
6054
|
+
this.demoVideo.play();
|
|
6055
|
+
await this.delay(SelfieCaptureValues.VideoLenght);
|
|
6056
|
+
this.demoEnded = true;
|
|
6057
|
+
}
|
|
6058
|
+
}
|
|
6059
|
+
eventVideoStarted(event) {
|
|
6060
|
+
this.videoStarted = true;
|
|
6061
|
+
var cameraSize = event.detail;
|
|
6062
|
+
var height = Math.round((cameraSize.width * 16) / 9);
|
|
6063
|
+
this.captureHeight = height - Math.round((window.screen.height - height) / 2);
|
|
6064
|
+
this.captureWidth = Math.round((this.captureHeight * 9) / 16);
|
|
6065
|
+
}
|
|
6066
|
+
componentWillLoad() {
|
|
6067
|
+
Events.init(this.component);
|
|
6068
|
+
this.titleMesage = SelfieCaptureValues.Title;
|
|
6069
|
+
//this.videoDemoStyle = this.device.isMobile ? { 'width': window.screen.width + 'px', 'height': window.screen.height + 'px', 'object-fit': 'fill' } : {};
|
|
6070
|
+
if (!navigator.mediaDevices) {
|
|
6071
|
+
Events.flowError('This browser does not support webRTC');
|
|
6072
|
+
}
|
|
6073
|
+
}
|
|
6074
|
+
async componentDidLoad() {
|
|
6075
|
+
this.demoVideo.src = SelfieCaptureValues.FacePoseDemoMapping[FacePose.Main];
|
|
6076
|
+
this.demoVideo.play();
|
|
6077
|
+
await this.delay(SelfieCaptureValues.VideoLenght);
|
|
6078
|
+
this.demoEnded = true;
|
|
6079
|
+
this.openCamera();
|
|
6080
|
+
}
|
|
6081
|
+
async openCamera() {
|
|
6082
|
+
const constraints = this.cameras.GetConstraints('', this.device, true);
|
|
6083
|
+
setTimeout(() => {
|
|
6084
|
+
navigator.mediaDevices
|
|
6085
|
+
.getUserMedia(constraints)
|
|
6086
|
+
.then(stream => {
|
|
6087
|
+
const superStream = Stream.getInstance();
|
|
6088
|
+
superStream.initStream(stream);
|
|
6089
|
+
})
|
|
6090
|
+
.catch(e => {
|
|
6091
|
+
this.closeCamera();
|
|
6092
|
+
Events.flowError(e);
|
|
6093
|
+
});
|
|
6094
|
+
}, 100);
|
|
6095
|
+
}
|
|
6096
|
+
closeCamera() {
|
|
6097
|
+
if (Stream.instance) {
|
|
6098
|
+
Stream.getInstance().dropStream();
|
|
6099
|
+
}
|
|
6100
|
+
}
|
|
6101
|
+
disconnectedCallback() {
|
|
6102
|
+
this.closeCamera();
|
|
6103
|
+
Stream.instance = null;
|
|
6104
|
+
FaceML5Detector.instance = null;
|
|
6105
|
+
}
|
|
6106
|
+
async takePhoto() {
|
|
6107
|
+
if (this.captureTaken)
|
|
6108
|
+
return;
|
|
6109
|
+
this.captureTaken = true;
|
|
6110
|
+
let res = await Stream.getInstance().takePhoto();
|
|
6111
|
+
this.photoIsReady(res);
|
|
6112
|
+
}
|
|
6113
|
+
verificationFinished() {
|
|
6114
|
+
if (this.verified)
|
|
6115
|
+
return;
|
|
6116
|
+
this.verified = true;
|
|
6117
|
+
this.titleMesage = SelfieCaptureValues.Loading;
|
|
6118
|
+
this.closeCamera();
|
|
6119
|
+
this.demoEnded = false;
|
|
6120
|
+
this.demoVideo.src = this.uploadingLink;
|
|
6121
|
+
this.demoVideo.loop = true;
|
|
6122
|
+
this.demoVideo.play();
|
|
6123
|
+
}
|
|
6124
|
+
render() {
|
|
6125
|
+
let cameraStyle;
|
|
6126
|
+
if (this.device.isMobile && this.videoStarted) {
|
|
6127
|
+
cameraStyle = {
|
|
6128
|
+
'width': this.captureWidth + 'px',
|
|
6129
|
+
'height': this.captureHeight + 'px',
|
|
6130
|
+
'overflow': 'hidden',
|
|
6131
|
+
'borderRadius': '10px',
|
|
6132
|
+
'text-align': 'center',
|
|
6133
|
+
'margin': 'auto',
|
|
6134
|
+
};
|
|
6135
|
+
}
|
|
6136
|
+
let titleClass = this.verified ? 'color-black-2 text-center' : 'color-white text-center';
|
|
6137
|
+
//let videoClass = this.device.isMobile ? '' : 'video-demo';
|
|
6138
|
+
let bgDemo = this.verified ? 'container' : 'container bg-black';
|
|
6139
|
+
return (index.h("div", { class: bgDemo }, index.h("div", { class: "container-video" }, index.h("div", { hidden: this.demoEnded }, index.h("video", { id: "howtoSelfie", class: "video-demo", playsinline: true, ref: el => (this.demoVideo = el) }, index.h("source", { type: "video/mp4" }))), index.h("div", { hidden: this.demoEnded == false }, index.h("div", { hidden: this.verified }, index.h("div", { class: "video-capture" }, index.h("div", { style: cameraStyle }, index.h("camera-comp", { device: this.device, "capture-mode": "selfie" }))))), index.h("div", { class: "capture-title" }, index.h("h1", { class: titleClass }, this.titleMesage), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, SelfieCaptureValues.FooterText)))));
|
|
6140
|
+
}
|
|
6141
|
+
get component() { return index.getElement(this); }
|
|
6142
|
+
};
|
|
6143
|
+
SelfieCapture.style = selfieCaptureCss;
|
|
6353
6144
|
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
/**
|
|
6357
|
-
* Helper class to handle QR Code symbol modules
|
|
6358
|
-
*
|
|
6359
|
-
* @param {Number} size Symbol size
|
|
6360
|
-
*/
|
|
6361
|
-
function BitMatrix (size) {
|
|
6362
|
-
if (!size || size < 1) {
|
|
6363
|
-
throw new Error('BitMatrix size must be defined and greater than 0')
|
|
6364
|
-
}
|
|
6365
|
-
|
|
6366
|
-
this.size = size;
|
|
6367
|
-
this.data = new Uint8Array(size * size);
|
|
6368
|
-
this.reservedBit = new Uint8Array(size * size);
|
|
6369
|
-
}
|
|
6370
|
-
|
|
6371
|
-
/**
|
|
6372
|
-
* Set bit value at specified location
|
|
6373
|
-
* If reserved flag is set, this bit will be ignored during masking process
|
|
6374
|
-
*
|
|
6375
|
-
* @param {Number} row
|
|
6376
|
-
* @param {Number} col
|
|
6377
|
-
* @param {Boolean} value
|
|
6378
|
-
* @param {Boolean} reserved
|
|
6379
|
-
*/
|
|
6380
|
-
BitMatrix.prototype.set = function (row, col, value, reserved) {
|
|
6381
|
-
const index = row * this.size + col;
|
|
6382
|
-
this.data[index] = value;
|
|
6383
|
-
if (reserved) this.reservedBit[index] = true;
|
|
6384
|
-
};
|
|
6385
|
-
|
|
6386
|
-
/**
|
|
6387
|
-
* Returns bit value at specified location
|
|
6388
|
-
*
|
|
6389
|
-
* @param {Number} row
|
|
6390
|
-
* @param {Number} col
|
|
6391
|
-
* @return {Boolean}
|
|
6392
|
-
*/
|
|
6393
|
-
BitMatrix.prototype.get = function (row, col) {
|
|
6394
|
-
return this.data[row * this.size + col]
|
|
6395
|
-
};
|
|
6396
|
-
|
|
6397
|
-
/**
|
|
6398
|
-
* Applies xor operator at specified location
|
|
6399
|
-
* (used during masking process)
|
|
6400
|
-
*
|
|
6401
|
-
* @param {Number} row
|
|
6402
|
-
* @param {Number} col
|
|
6403
|
-
* @param {Boolean} value
|
|
6404
|
-
*/
|
|
6405
|
-
BitMatrix.prototype.xor = function (row, col, value) {
|
|
6406
|
-
this.data[row * this.size + col] ^= value;
|
|
6407
|
-
};
|
|
6408
|
-
|
|
6409
|
-
/**
|
|
6410
|
-
* Check if bit at specified location is reserved
|
|
6411
|
-
*
|
|
6412
|
-
* @param {Number} row
|
|
6413
|
-
* @param {Number} col
|
|
6414
|
-
* @return {Boolean}
|
|
6415
|
-
*/
|
|
6416
|
-
BitMatrix.prototype.isReserved = function (row, col) {
|
|
6417
|
-
return this.reservedBit[row * this.size + col]
|
|
6418
|
-
};
|
|
6419
|
-
|
|
6420
|
-
var bitMatrix = BitMatrix;
|
|
6421
|
-
|
|
6422
|
-
var alignmentPattern = createCommonjsModule(function (module, exports) {
|
|
6423
|
-
/**
|
|
6424
|
-
* Alignment pattern are fixed reference pattern in defined positions
|
|
6425
|
-
* in a matrix symbology, which enables the decode software to re-synchronise
|
|
6426
|
-
* the coordinate mapping of the image modules in the event of moderate amounts
|
|
6427
|
-
* of distortion of the image.
|
|
6428
|
-
*
|
|
6429
|
-
* Alignment patterns are present only in QR Code symbols of version 2 or larger
|
|
6430
|
-
* and their number depends on the symbol version.
|
|
6431
|
-
*/
|
|
6432
|
-
|
|
6433
|
-
const getSymbolSize = utils$1.getSymbolSize;
|
|
6434
|
-
|
|
6435
|
-
/**
|
|
6436
|
-
* Calculate the row/column coordinates of the center module of each alignment pattern
|
|
6437
|
-
* for the specified QR Code version.
|
|
6438
|
-
*
|
|
6439
|
-
* The alignment patterns are positioned symmetrically on either side of the diagonal
|
|
6440
|
-
* running from the top left corner of the symbol to the bottom right corner.
|
|
6441
|
-
*
|
|
6442
|
-
* Since positions are simmetrical only half of the coordinates are returned.
|
|
6443
|
-
* Each item of the array will represent in turn the x and y coordinate.
|
|
6444
|
-
* @see {@link getPositions}
|
|
6445
|
-
*
|
|
6446
|
-
* @param {Number} version QR Code version
|
|
6447
|
-
* @return {Array} Array of coordinate
|
|
6448
|
-
*/
|
|
6449
|
-
exports.getRowColCoords = function getRowColCoords (version) {
|
|
6450
|
-
if (version === 1) return []
|
|
6451
|
-
|
|
6452
|
-
const posCount = Math.floor(version / 7) + 2;
|
|
6453
|
-
const size = getSymbolSize(version);
|
|
6454
|
-
const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;
|
|
6455
|
-
const positions = [size - 7]; // Last coord is always (size - 7)
|
|
6456
|
-
|
|
6457
|
-
for (let i = 1; i < posCount - 1; i++) {
|
|
6458
|
-
positions[i] = positions[i - 1] - intervals;
|
|
6459
|
-
}
|
|
6460
|
-
|
|
6461
|
-
positions.push(6); // First coord is always 6
|
|
6462
|
-
|
|
6463
|
-
return positions.reverse()
|
|
6464
|
-
};
|
|
6465
|
-
|
|
6466
|
-
/**
|
|
6467
|
-
* Returns an array containing the positions of each alignment pattern.
|
|
6468
|
-
* Each array's element represent the center point of the pattern as (x, y) coordinates
|
|
6469
|
-
*
|
|
6470
|
-
* Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}
|
|
6471
|
-
* and filtering out the items that overlaps with finder pattern
|
|
6472
|
-
*
|
|
6473
|
-
* @example
|
|
6474
|
-
* For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.
|
|
6475
|
-
* The alignment patterns, therefore, are to be centered on (row, column)
|
|
6476
|
-
* positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).
|
|
6477
|
-
* Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns
|
|
6478
|
-
* and are not therefore used for alignment patterns.
|
|
6479
|
-
*
|
|
6480
|
-
* let pos = getPositions(7)
|
|
6481
|
-
* // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]
|
|
6482
|
-
*
|
|
6483
|
-
* @param {Number} version QR Code version
|
|
6484
|
-
* @return {Array} Array of coordinates
|
|
6485
|
-
*/
|
|
6486
|
-
exports.getPositions = function getPositions (version) {
|
|
6487
|
-
const coords = [];
|
|
6488
|
-
const pos = exports.getRowColCoords(version);
|
|
6489
|
-
const posLength = pos.length;
|
|
6490
|
-
|
|
6491
|
-
for (let i = 0; i < posLength; i++) {
|
|
6492
|
-
for (let j = 0; j < posLength; j++) {
|
|
6493
|
-
// Skip if position is occupied by finder patterns
|
|
6494
|
-
if ((i === 0 && j === 0) || // top-left
|
|
6495
|
-
(i === 0 && j === posLength - 1) || // bottom-left
|
|
6496
|
-
(i === posLength - 1 && j === 0)) { // top-right
|
|
6497
|
-
continue
|
|
6498
|
-
}
|
|
6499
|
-
|
|
6500
|
-
coords.push([pos[i], pos[j]]);
|
|
6501
|
-
}
|
|
6502
|
-
}
|
|
6503
|
-
|
|
6504
|
-
return coords
|
|
6505
|
-
};
|
|
6506
|
-
});
|
|
6507
|
-
|
|
6508
|
-
const getSymbolSize = utils$1.getSymbolSize;
|
|
6509
|
-
const FINDER_PATTERN_SIZE = 7;
|
|
6510
|
-
|
|
6511
|
-
/**
|
|
6512
|
-
* Returns an array containing the positions of each finder pattern.
|
|
6513
|
-
* Each array's element represent the top-left point of the pattern as (x, y) coordinates
|
|
6514
|
-
*
|
|
6515
|
-
* @param {Number} version QR Code version
|
|
6516
|
-
* @return {Array} Array of coordinates
|
|
6517
|
-
*/
|
|
6518
|
-
var getPositions = function getPositions (version) {
|
|
6519
|
-
const size = getSymbolSize(version);
|
|
6520
|
-
|
|
6521
|
-
return [
|
|
6522
|
-
// top-left
|
|
6523
|
-
[0, 0],
|
|
6524
|
-
// top-right
|
|
6525
|
-
[size - FINDER_PATTERN_SIZE, 0],
|
|
6526
|
-
// bottom-left
|
|
6527
|
-
[0, size - FINDER_PATTERN_SIZE]
|
|
6528
|
-
]
|
|
6529
|
-
};
|
|
6530
|
-
|
|
6531
|
-
var finderPattern = {
|
|
6532
|
-
getPositions: getPositions
|
|
6533
|
-
};
|
|
6534
|
-
|
|
6535
|
-
var maskPattern = createCommonjsModule(function (module, exports) {
|
|
6536
|
-
/**
|
|
6537
|
-
* Data mask pattern reference
|
|
6538
|
-
* @type {Object}
|
|
6539
|
-
*/
|
|
6540
|
-
exports.Patterns = {
|
|
6541
|
-
PATTERN000: 0,
|
|
6542
|
-
PATTERN001: 1,
|
|
6543
|
-
PATTERN010: 2,
|
|
6544
|
-
PATTERN011: 3,
|
|
6545
|
-
PATTERN100: 4,
|
|
6546
|
-
PATTERN101: 5,
|
|
6547
|
-
PATTERN110: 6,
|
|
6548
|
-
PATTERN111: 7
|
|
6549
|
-
};
|
|
6550
|
-
|
|
6551
|
-
/**
|
|
6552
|
-
* Weighted penalty scores for the undesirable features
|
|
6553
|
-
* @type {Object}
|
|
6554
|
-
*/
|
|
6555
|
-
const PenaltyScores = {
|
|
6556
|
-
N1: 3,
|
|
6557
|
-
N2: 3,
|
|
6558
|
-
N3: 40,
|
|
6559
|
-
N4: 10
|
|
6560
|
-
};
|
|
6561
|
-
|
|
6562
|
-
/**
|
|
6563
|
-
* Check if mask pattern value is valid
|
|
6564
|
-
*
|
|
6565
|
-
* @param {Number} mask Mask pattern
|
|
6566
|
-
* @return {Boolean} true if valid, false otherwise
|
|
6567
|
-
*/
|
|
6568
|
-
exports.isValid = function isValid (mask) {
|
|
6569
|
-
return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7
|
|
6570
|
-
};
|
|
6571
|
-
|
|
6572
|
-
/**
|
|
6573
|
-
* Returns mask pattern from a value.
|
|
6574
|
-
* If value is not valid, returns undefined
|
|
6575
|
-
*
|
|
6576
|
-
* @param {Number|String} value Mask pattern value
|
|
6577
|
-
* @return {Number} Valid mask pattern or undefined
|
|
6578
|
-
*/
|
|
6579
|
-
exports.from = function from (value) {
|
|
6580
|
-
return exports.isValid(value) ? parseInt(value, 10) : undefined
|
|
6581
|
-
};
|
|
6582
|
-
|
|
6583
|
-
/**
|
|
6584
|
-
* Find adjacent modules in row/column with the same color
|
|
6585
|
-
* and assign a penalty value.
|
|
6586
|
-
*
|
|
6587
|
-
* Points: N1 + i
|
|
6588
|
-
* i is the amount by which the number of adjacent modules of the same color exceeds 5
|
|
6589
|
-
*/
|
|
6590
|
-
exports.getPenaltyN1 = function getPenaltyN1 (data) {
|
|
6591
|
-
const size = data.size;
|
|
6592
|
-
let points = 0;
|
|
6593
|
-
let sameCountCol = 0;
|
|
6594
|
-
let sameCountRow = 0;
|
|
6595
|
-
let lastCol = null;
|
|
6596
|
-
let lastRow = null;
|
|
6597
|
-
|
|
6598
|
-
for (let row = 0; row < size; row++) {
|
|
6599
|
-
sameCountCol = sameCountRow = 0;
|
|
6600
|
-
lastCol = lastRow = null;
|
|
6601
|
-
|
|
6602
|
-
for (let col = 0; col < size; col++) {
|
|
6603
|
-
let module = data.get(row, col);
|
|
6604
|
-
if (module === lastCol) {
|
|
6605
|
-
sameCountCol++;
|
|
6606
|
-
} else {
|
|
6607
|
-
if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);
|
|
6608
|
-
lastCol = module;
|
|
6609
|
-
sameCountCol = 1;
|
|
6610
|
-
}
|
|
6611
|
-
|
|
6612
|
-
module = data.get(col, row);
|
|
6613
|
-
if (module === lastRow) {
|
|
6614
|
-
sameCountRow++;
|
|
6615
|
-
} else {
|
|
6616
|
-
if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);
|
|
6617
|
-
lastRow = module;
|
|
6618
|
-
sameCountRow = 1;
|
|
6619
|
-
}
|
|
6620
|
-
}
|
|
6621
|
-
|
|
6622
|
-
if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);
|
|
6623
|
-
if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);
|
|
6624
|
-
}
|
|
6625
|
-
|
|
6626
|
-
return points
|
|
6627
|
-
};
|
|
6628
|
-
|
|
6629
|
-
/**
|
|
6630
|
-
* Find 2x2 blocks with the same color and assign a penalty value
|
|
6631
|
-
*
|
|
6632
|
-
* Points: N2 * (m - 1) * (n - 1)
|
|
6633
|
-
*/
|
|
6634
|
-
exports.getPenaltyN2 = function getPenaltyN2 (data) {
|
|
6635
|
-
const size = data.size;
|
|
6636
|
-
let points = 0;
|
|
6637
|
-
|
|
6638
|
-
for (let row = 0; row < size - 1; row++) {
|
|
6639
|
-
for (let col = 0; col < size - 1; col++) {
|
|
6640
|
-
const last = data.get(row, col) +
|
|
6641
|
-
data.get(row, col + 1) +
|
|
6642
|
-
data.get(row + 1, col) +
|
|
6643
|
-
data.get(row + 1, col + 1);
|
|
6644
|
-
|
|
6645
|
-
if (last === 4 || last === 0) points++;
|
|
6646
|
-
}
|
|
6647
|
-
}
|
|
6648
|
-
|
|
6649
|
-
return points * PenaltyScores.N2
|
|
6650
|
-
};
|
|
6651
|
-
|
|
6652
|
-
/**
|
|
6653
|
-
* Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,
|
|
6654
|
-
* preceded or followed by light area 4 modules wide
|
|
6655
|
-
*
|
|
6656
|
-
* Points: N3 * number of pattern found
|
|
6657
|
-
*/
|
|
6658
|
-
exports.getPenaltyN3 = function getPenaltyN3 (data) {
|
|
6659
|
-
const size = data.size;
|
|
6660
|
-
let points = 0;
|
|
6661
|
-
let bitsCol = 0;
|
|
6662
|
-
let bitsRow = 0;
|
|
6663
|
-
|
|
6664
|
-
for (let row = 0; row < size; row++) {
|
|
6665
|
-
bitsCol = bitsRow = 0;
|
|
6666
|
-
for (let col = 0; col < size; col++) {
|
|
6667
|
-
bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);
|
|
6668
|
-
if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;
|
|
6669
|
-
|
|
6670
|
-
bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);
|
|
6671
|
-
if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;
|
|
6672
|
-
}
|
|
6673
|
-
}
|
|
6674
|
-
|
|
6675
|
-
return points * PenaltyScores.N3
|
|
6676
|
-
};
|
|
6677
|
-
|
|
6678
|
-
/**
|
|
6679
|
-
* Calculate proportion of dark modules in entire symbol
|
|
6680
|
-
*
|
|
6681
|
-
* Points: N4 * k
|
|
6682
|
-
*
|
|
6683
|
-
* k is the rating of the deviation of the proportion of dark modules
|
|
6684
|
-
* in the symbol from 50% in steps of 5%
|
|
6685
|
-
*/
|
|
6686
|
-
exports.getPenaltyN4 = function getPenaltyN4 (data) {
|
|
6687
|
-
let darkCount = 0;
|
|
6688
|
-
const modulesCount = data.data.length;
|
|
6689
|
-
|
|
6690
|
-
for (let i = 0; i < modulesCount; i++) darkCount += data.data[i];
|
|
6691
|
-
|
|
6692
|
-
const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);
|
|
6693
|
-
|
|
6694
|
-
return k * PenaltyScores.N4
|
|
6695
|
-
};
|
|
6696
|
-
|
|
6697
|
-
/**
|
|
6698
|
-
* Return mask value at given position
|
|
6699
|
-
*
|
|
6700
|
-
* @param {Number} maskPattern Pattern reference value
|
|
6701
|
-
* @param {Number} i Row
|
|
6702
|
-
* @param {Number} j Column
|
|
6703
|
-
* @return {Boolean} Mask value
|
|
6704
|
-
*/
|
|
6705
|
-
function getMaskAt (maskPattern, i, j) {
|
|
6706
|
-
switch (maskPattern) {
|
|
6707
|
-
case exports.Patterns.PATTERN000: return (i + j) % 2 === 0
|
|
6708
|
-
case exports.Patterns.PATTERN001: return i % 2 === 0
|
|
6709
|
-
case exports.Patterns.PATTERN010: return j % 3 === 0
|
|
6710
|
-
case exports.Patterns.PATTERN011: return (i + j) % 3 === 0
|
|
6711
|
-
case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0
|
|
6712
|
-
case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0
|
|
6713
|
-
case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0
|
|
6714
|
-
case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0
|
|
6715
|
-
|
|
6716
|
-
default: throw new Error('bad maskPattern:' + maskPattern)
|
|
6717
|
-
}
|
|
6718
|
-
}
|
|
6719
|
-
|
|
6720
|
-
/**
|
|
6721
|
-
* Apply a mask pattern to a BitMatrix
|
|
6722
|
-
*
|
|
6723
|
-
* @param {Number} pattern Pattern reference number
|
|
6724
|
-
* @param {BitMatrix} data BitMatrix data
|
|
6725
|
-
*/
|
|
6726
|
-
exports.applyMask = function applyMask (pattern, data) {
|
|
6727
|
-
const size = data.size;
|
|
6728
|
-
|
|
6729
|
-
for (let col = 0; col < size; col++) {
|
|
6730
|
-
for (let row = 0; row < size; row++) {
|
|
6731
|
-
if (data.isReserved(row, col)) continue
|
|
6732
|
-
data.xor(row, col, getMaskAt(pattern, row, col));
|
|
6733
|
-
}
|
|
6734
|
-
}
|
|
6735
|
-
};
|
|
6736
|
-
|
|
6737
|
-
/**
|
|
6738
|
-
* Returns the best mask pattern for data
|
|
6739
|
-
*
|
|
6740
|
-
* @param {BitMatrix} data
|
|
6741
|
-
* @return {Number} Mask pattern reference number
|
|
6742
|
-
*/
|
|
6743
|
-
exports.getBestMask = function getBestMask (data, setupFormatFunc) {
|
|
6744
|
-
const numPatterns = Object.keys(exports.Patterns).length;
|
|
6745
|
-
let bestPattern = 0;
|
|
6746
|
-
let lowerPenalty = Infinity;
|
|
6747
|
-
|
|
6748
|
-
for (let p = 0; p < numPatterns; p++) {
|
|
6749
|
-
setupFormatFunc(p);
|
|
6750
|
-
exports.applyMask(p, data);
|
|
6751
|
-
|
|
6752
|
-
// Calculate penalty
|
|
6753
|
-
const penalty =
|
|
6754
|
-
exports.getPenaltyN1(data) +
|
|
6755
|
-
exports.getPenaltyN2(data) +
|
|
6756
|
-
exports.getPenaltyN3(data) +
|
|
6757
|
-
exports.getPenaltyN4(data);
|
|
6758
|
-
|
|
6759
|
-
// Undo previously applied mask
|
|
6760
|
-
exports.applyMask(p, data);
|
|
6761
|
-
|
|
6762
|
-
if (penalty < lowerPenalty) {
|
|
6763
|
-
lowerPenalty = penalty;
|
|
6764
|
-
bestPattern = p;
|
|
6765
|
-
}
|
|
6766
|
-
}
|
|
6767
|
-
|
|
6768
|
-
return bestPattern
|
|
6769
|
-
};
|
|
6770
|
-
});
|
|
6771
|
-
|
|
6772
|
-
const EC_BLOCKS_TABLE = [
|
|
6773
|
-
// L M Q H
|
|
6774
|
-
1, 1, 1, 1,
|
|
6775
|
-
1, 1, 1, 1,
|
|
6776
|
-
1, 1, 2, 2,
|
|
6777
|
-
1, 2, 2, 4,
|
|
6778
|
-
1, 2, 4, 4,
|
|
6779
|
-
2, 4, 4, 4,
|
|
6780
|
-
2, 4, 6, 5,
|
|
6781
|
-
2, 4, 6, 6,
|
|
6782
|
-
2, 5, 8, 8,
|
|
6783
|
-
4, 5, 8, 8,
|
|
6784
|
-
4, 5, 8, 11,
|
|
6785
|
-
4, 8, 10, 11,
|
|
6786
|
-
4, 9, 12, 16,
|
|
6787
|
-
4, 9, 16, 16,
|
|
6788
|
-
6, 10, 12, 18,
|
|
6789
|
-
6, 10, 17, 16,
|
|
6790
|
-
6, 11, 16, 19,
|
|
6791
|
-
6, 13, 18, 21,
|
|
6792
|
-
7, 14, 21, 25,
|
|
6793
|
-
8, 16, 20, 25,
|
|
6794
|
-
8, 17, 23, 25,
|
|
6795
|
-
9, 17, 23, 34,
|
|
6796
|
-
9, 18, 25, 30,
|
|
6797
|
-
10, 20, 27, 32,
|
|
6798
|
-
12, 21, 29, 35,
|
|
6799
|
-
12, 23, 34, 37,
|
|
6800
|
-
12, 25, 34, 40,
|
|
6801
|
-
13, 26, 35, 42,
|
|
6802
|
-
14, 28, 38, 45,
|
|
6803
|
-
15, 29, 40, 48,
|
|
6804
|
-
16, 31, 43, 51,
|
|
6805
|
-
17, 33, 45, 54,
|
|
6806
|
-
18, 35, 48, 57,
|
|
6807
|
-
19, 37, 51, 60,
|
|
6808
|
-
19, 38, 53, 63,
|
|
6809
|
-
20, 40, 56, 66,
|
|
6810
|
-
21, 43, 59, 70,
|
|
6811
|
-
22, 45, 62, 74,
|
|
6812
|
-
24, 47, 65, 77,
|
|
6813
|
-
25, 49, 68, 81
|
|
6814
|
-
];
|
|
6815
|
-
|
|
6816
|
-
const EC_CODEWORDS_TABLE = [
|
|
6817
|
-
// L M Q H
|
|
6818
|
-
7, 10, 13, 17,
|
|
6819
|
-
10, 16, 22, 28,
|
|
6820
|
-
15, 26, 36, 44,
|
|
6821
|
-
20, 36, 52, 64,
|
|
6822
|
-
26, 48, 72, 88,
|
|
6823
|
-
36, 64, 96, 112,
|
|
6824
|
-
40, 72, 108, 130,
|
|
6825
|
-
48, 88, 132, 156,
|
|
6826
|
-
60, 110, 160, 192,
|
|
6827
|
-
72, 130, 192, 224,
|
|
6828
|
-
80, 150, 224, 264,
|
|
6829
|
-
96, 176, 260, 308,
|
|
6830
|
-
104, 198, 288, 352,
|
|
6831
|
-
120, 216, 320, 384,
|
|
6832
|
-
132, 240, 360, 432,
|
|
6833
|
-
144, 280, 408, 480,
|
|
6834
|
-
168, 308, 448, 532,
|
|
6835
|
-
180, 338, 504, 588,
|
|
6836
|
-
196, 364, 546, 650,
|
|
6837
|
-
224, 416, 600, 700,
|
|
6838
|
-
224, 442, 644, 750,
|
|
6839
|
-
252, 476, 690, 816,
|
|
6840
|
-
270, 504, 750, 900,
|
|
6841
|
-
300, 560, 810, 960,
|
|
6842
|
-
312, 588, 870, 1050,
|
|
6843
|
-
336, 644, 952, 1110,
|
|
6844
|
-
360, 700, 1020, 1200,
|
|
6845
|
-
390, 728, 1050, 1260,
|
|
6846
|
-
420, 784, 1140, 1350,
|
|
6847
|
-
450, 812, 1200, 1440,
|
|
6848
|
-
480, 868, 1290, 1530,
|
|
6849
|
-
510, 924, 1350, 1620,
|
|
6850
|
-
540, 980, 1440, 1710,
|
|
6851
|
-
570, 1036, 1530, 1800,
|
|
6852
|
-
570, 1064, 1590, 1890,
|
|
6853
|
-
600, 1120, 1680, 1980,
|
|
6854
|
-
630, 1204, 1770, 2100,
|
|
6855
|
-
660, 1260, 1860, 2220,
|
|
6856
|
-
720, 1316, 1950, 2310,
|
|
6857
|
-
750, 1372, 2040, 2430
|
|
6858
|
-
];
|
|
6859
|
-
|
|
6860
|
-
/**
|
|
6861
|
-
* Returns the number of error correction block that the QR Code should contain
|
|
6862
|
-
* for the specified version and error correction level.
|
|
6863
|
-
*
|
|
6864
|
-
* @param {Number} version QR Code version
|
|
6865
|
-
* @param {Number} errorCorrectionLevel Error correction level
|
|
6866
|
-
* @return {Number} Number of error correction blocks
|
|
6867
|
-
*/
|
|
6868
|
-
var getBlocksCount = function getBlocksCount (version, errorCorrectionLevel$1) {
|
|
6869
|
-
switch (errorCorrectionLevel$1) {
|
|
6870
|
-
case errorCorrectionLevel.L:
|
|
6871
|
-
return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]
|
|
6872
|
-
case errorCorrectionLevel.M:
|
|
6873
|
-
return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]
|
|
6874
|
-
case errorCorrectionLevel.Q:
|
|
6875
|
-
return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]
|
|
6876
|
-
case errorCorrectionLevel.H:
|
|
6877
|
-
return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]
|
|
6878
|
-
default:
|
|
6879
|
-
return undefined
|
|
6880
|
-
}
|
|
6881
|
-
};
|
|
6882
|
-
|
|
6883
|
-
/**
|
|
6884
|
-
* Returns the number of error correction codewords to use for the specified
|
|
6885
|
-
* version and error correction level.
|
|
6886
|
-
*
|
|
6887
|
-
* @param {Number} version QR Code version
|
|
6888
|
-
* @param {Number} errorCorrectionLevel Error correction level
|
|
6889
|
-
* @return {Number} Number of error correction codewords
|
|
6890
|
-
*/
|
|
6891
|
-
var getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel$1) {
|
|
6892
|
-
switch (errorCorrectionLevel$1) {
|
|
6893
|
-
case errorCorrectionLevel.L:
|
|
6894
|
-
return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]
|
|
6895
|
-
case errorCorrectionLevel.M:
|
|
6896
|
-
return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]
|
|
6897
|
-
case errorCorrectionLevel.Q:
|
|
6898
|
-
return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]
|
|
6899
|
-
case errorCorrectionLevel.H:
|
|
6900
|
-
return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]
|
|
6901
|
-
default:
|
|
6902
|
-
return undefined
|
|
6903
|
-
}
|
|
6904
|
-
};
|
|
6905
|
-
|
|
6906
|
-
var errorCorrectionCode = {
|
|
6907
|
-
getBlocksCount: getBlocksCount,
|
|
6908
|
-
getTotalCodewordsCount: getTotalCodewordsCount
|
|
6909
|
-
};
|
|
6910
|
-
|
|
6911
|
-
const EXP_TABLE = new Uint8Array(512);
|
|
6912
|
-
const LOG_TABLE = new Uint8Array(256)
|
|
6913
|
-
/**
|
|
6914
|
-
* Precompute the log and anti-log tables for faster computation later
|
|
6915
|
-
*
|
|
6916
|
-
* For each possible value in the galois field 2^8, we will pre-compute
|
|
6917
|
-
* the logarithm and anti-logarithm (exponential) of this value
|
|
6918
|
-
*
|
|
6919
|
-
* ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}
|
|
6920
|
-
*/
|
|
6921
|
-
;(function initTables () {
|
|
6922
|
-
let x = 1;
|
|
6923
|
-
for (let i = 0; i < 255; i++) {
|
|
6924
|
-
EXP_TABLE[i] = x;
|
|
6925
|
-
LOG_TABLE[x] = i;
|
|
6926
|
-
|
|
6927
|
-
x <<= 1; // multiply by 2
|
|
6928
|
-
|
|
6929
|
-
// The QR code specification says to use byte-wise modulo 100011101 arithmetic.
|
|
6930
|
-
// This means that when a number is 256 or larger, it should be XORed with 0x11D.
|
|
6931
|
-
if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)
|
|
6932
|
-
x ^= 0x11D;
|
|
6933
|
-
}
|
|
6934
|
-
}
|
|
6935
|
-
|
|
6936
|
-
// Optimization: double the size of the anti-log table so that we don't need to mod 255 to
|
|
6937
|
-
// stay inside the bounds (because we will mainly use this table for the multiplication of
|
|
6938
|
-
// two GF numbers, no more).
|
|
6939
|
-
// @see {@link mul}
|
|
6940
|
-
for (let i = 255; i < 512; i++) {
|
|
6941
|
-
EXP_TABLE[i] = EXP_TABLE[i - 255];
|
|
6942
|
-
}
|
|
6943
|
-
}());
|
|
6944
|
-
|
|
6945
|
-
/**
|
|
6946
|
-
* Returns log value of n inside Galois Field
|
|
6947
|
-
*
|
|
6948
|
-
* @param {Number} n
|
|
6949
|
-
* @return {Number}
|
|
6950
|
-
*/
|
|
6951
|
-
var log = function log (n) {
|
|
6952
|
-
if (n < 1) throw new Error('log(' + n + ')')
|
|
6953
|
-
return LOG_TABLE[n]
|
|
6954
|
-
};
|
|
6955
|
-
|
|
6956
|
-
/**
|
|
6957
|
-
* Returns anti-log value of n inside Galois Field
|
|
6958
|
-
*
|
|
6959
|
-
* @param {Number} n
|
|
6960
|
-
* @return {Number}
|
|
6961
|
-
*/
|
|
6962
|
-
var exp = function exp (n) {
|
|
6963
|
-
return EXP_TABLE[n]
|
|
6964
|
-
};
|
|
6965
|
-
|
|
6966
|
-
/**
|
|
6967
|
-
* Multiplies two number inside Galois Field
|
|
6968
|
-
*
|
|
6969
|
-
* @param {Number} x
|
|
6970
|
-
* @param {Number} y
|
|
6971
|
-
* @return {Number}
|
|
6972
|
-
*/
|
|
6973
|
-
var mul = function mul (x, y) {
|
|
6974
|
-
if (x === 0 || y === 0) return 0
|
|
6975
|
-
|
|
6976
|
-
// should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized
|
|
6977
|
-
// @see {@link initTables}
|
|
6978
|
-
return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]
|
|
6979
|
-
};
|
|
6980
|
-
|
|
6981
|
-
var galoisField = {
|
|
6982
|
-
log: log,
|
|
6983
|
-
exp: exp,
|
|
6984
|
-
mul: mul
|
|
6985
|
-
};
|
|
6986
|
-
|
|
6987
|
-
var polynomial = createCommonjsModule(function (module, exports) {
|
|
6988
|
-
/**
|
|
6989
|
-
* Multiplies two polynomials inside Galois Field
|
|
6990
|
-
*
|
|
6991
|
-
* @param {Uint8Array} p1 Polynomial
|
|
6992
|
-
* @param {Uint8Array} p2 Polynomial
|
|
6993
|
-
* @return {Uint8Array} Product of p1 and p2
|
|
6994
|
-
*/
|
|
6995
|
-
exports.mul = function mul (p1, p2) {
|
|
6996
|
-
const coeff = new Uint8Array(p1.length + p2.length - 1);
|
|
6997
|
-
|
|
6998
|
-
for (let i = 0; i < p1.length; i++) {
|
|
6999
|
-
for (let j = 0; j < p2.length; j++) {
|
|
7000
|
-
coeff[i + j] ^= galoisField.mul(p1[i], p2[j]);
|
|
7001
|
-
}
|
|
7002
|
-
}
|
|
7003
|
-
|
|
7004
|
-
return coeff
|
|
7005
|
-
};
|
|
7006
|
-
|
|
7007
|
-
/**
|
|
7008
|
-
* Calculate the remainder of polynomials division
|
|
7009
|
-
*
|
|
7010
|
-
* @param {Uint8Array} divident Polynomial
|
|
7011
|
-
* @param {Uint8Array} divisor Polynomial
|
|
7012
|
-
* @return {Uint8Array} Remainder
|
|
7013
|
-
*/
|
|
7014
|
-
exports.mod = function mod (divident, divisor) {
|
|
7015
|
-
let result = new Uint8Array(divident);
|
|
7016
|
-
|
|
7017
|
-
while ((result.length - divisor.length) >= 0) {
|
|
7018
|
-
const coeff = result[0];
|
|
7019
|
-
|
|
7020
|
-
for (let i = 0; i < divisor.length; i++) {
|
|
7021
|
-
result[i] ^= galoisField.mul(divisor[i], coeff);
|
|
7022
|
-
}
|
|
7023
|
-
|
|
7024
|
-
// remove all zeros from buffer head
|
|
7025
|
-
let offset = 0;
|
|
7026
|
-
while (offset < result.length && result[offset] === 0) offset++;
|
|
7027
|
-
result = result.slice(offset);
|
|
7028
|
-
}
|
|
7029
|
-
|
|
7030
|
-
return result
|
|
7031
|
-
};
|
|
7032
|
-
|
|
7033
|
-
/**
|
|
7034
|
-
* Generate an irreducible generator polynomial of specified degree
|
|
7035
|
-
* (used by Reed-Solomon encoder)
|
|
7036
|
-
*
|
|
7037
|
-
* @param {Number} degree Degree of the generator polynomial
|
|
7038
|
-
* @return {Uint8Array} Buffer containing polynomial coefficients
|
|
7039
|
-
*/
|
|
7040
|
-
exports.generateECPolynomial = function generateECPolynomial (degree) {
|
|
7041
|
-
let poly = new Uint8Array([1]);
|
|
7042
|
-
for (let i = 0; i < degree; i++) {
|
|
7043
|
-
poly = exports.mul(poly, new Uint8Array([1, galoisField.exp(i)]));
|
|
7044
|
-
}
|
|
7045
|
-
|
|
7046
|
-
return poly
|
|
7047
|
-
};
|
|
7048
|
-
});
|
|
7049
|
-
|
|
7050
|
-
function ReedSolomonEncoder (degree) {
|
|
7051
|
-
this.genPoly = undefined;
|
|
7052
|
-
this.degree = degree;
|
|
7053
|
-
|
|
7054
|
-
if (this.degree) this.initialize(this.degree);
|
|
7055
|
-
}
|
|
7056
|
-
|
|
7057
|
-
/**
|
|
7058
|
-
* Initialize the encoder.
|
|
7059
|
-
* The input param should correspond to the number of error correction codewords.
|
|
7060
|
-
*
|
|
7061
|
-
* @param {Number} degree
|
|
7062
|
-
*/
|
|
7063
|
-
ReedSolomonEncoder.prototype.initialize = function initialize (degree) {
|
|
7064
|
-
// create an irreducible generator polynomial
|
|
7065
|
-
this.degree = degree;
|
|
7066
|
-
this.genPoly = polynomial.generateECPolynomial(this.degree);
|
|
7067
|
-
};
|
|
7068
|
-
|
|
7069
|
-
/**
|
|
7070
|
-
* Encodes a chunk of data
|
|
7071
|
-
*
|
|
7072
|
-
* @param {Uint8Array} data Buffer containing input data
|
|
7073
|
-
* @return {Uint8Array} Buffer containing encoded data
|
|
7074
|
-
*/
|
|
7075
|
-
ReedSolomonEncoder.prototype.encode = function encode (data) {
|
|
7076
|
-
if (!this.genPoly) {
|
|
7077
|
-
throw new Error('Encoder not initialized')
|
|
7078
|
-
}
|
|
7079
|
-
|
|
7080
|
-
// Calculate EC for this data block
|
|
7081
|
-
// extends data size to data+genPoly size
|
|
7082
|
-
const paddedData = new Uint8Array(data.length + this.degree);
|
|
7083
|
-
paddedData.set(data);
|
|
7084
|
-
|
|
7085
|
-
// The error correction codewords are the remainder after dividing the data codewords
|
|
7086
|
-
// by a generator polynomial
|
|
7087
|
-
const remainder = polynomial.mod(paddedData, this.genPoly);
|
|
7088
|
-
|
|
7089
|
-
// return EC data blocks (last n byte, where n is the degree of genPoly)
|
|
7090
|
-
// If coefficients number in remainder are less than genPoly degree,
|
|
7091
|
-
// pad with 0s to the left to reach the needed number of coefficients
|
|
7092
|
-
const start = this.degree - remainder.length;
|
|
7093
|
-
if (start > 0) {
|
|
7094
|
-
const buff = new Uint8Array(this.degree);
|
|
7095
|
-
buff.set(remainder, start);
|
|
7096
|
-
|
|
7097
|
-
return buff
|
|
7098
|
-
}
|
|
7099
|
-
|
|
7100
|
-
return remainder
|
|
7101
|
-
};
|
|
7102
|
-
|
|
7103
|
-
var reedSolomonEncoder = ReedSolomonEncoder;
|
|
7104
|
-
|
|
7105
|
-
/**
|
|
7106
|
-
* Check if QR Code version is valid
|
|
7107
|
-
*
|
|
7108
|
-
* @param {Number} version QR Code version
|
|
7109
|
-
* @return {Boolean} true if valid version, false otherwise
|
|
7110
|
-
*/
|
|
7111
|
-
var isValid = function isValid (version) {
|
|
7112
|
-
return !isNaN(version) && version >= 1 && version <= 40
|
|
7113
|
-
};
|
|
7114
|
-
|
|
7115
|
-
var versionCheck = {
|
|
7116
|
-
isValid: isValid
|
|
7117
|
-
};
|
|
7118
|
-
|
|
7119
|
-
const numeric = '[0-9]+';
|
|
7120
|
-
const alphanumeric = '[A-Z $%*+\\-./:]+';
|
|
7121
|
-
let kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +
|
|
7122
|
-
'[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +
|
|
7123
|
-
'[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +
|
|
7124
|
-
'[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';
|
|
7125
|
-
kanji = kanji.replace(/u/g, '\\u');
|
|
7126
|
-
|
|
7127
|
-
const byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+';
|
|
7128
|
-
|
|
7129
|
-
var KANJI = new RegExp(kanji, 'g');
|
|
7130
|
-
var BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g');
|
|
7131
|
-
var BYTE = new RegExp(byte, 'g');
|
|
7132
|
-
var NUMERIC = new RegExp(numeric, 'g');
|
|
7133
|
-
var ALPHANUMERIC = new RegExp(alphanumeric, 'g');
|
|
7134
|
-
|
|
7135
|
-
const TEST_KANJI = new RegExp('^' + kanji + '$');
|
|
7136
|
-
const TEST_NUMERIC = new RegExp('^' + numeric + '$');
|
|
7137
|
-
const TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$');
|
|
7138
|
-
|
|
7139
|
-
var testKanji = function testKanji (str) {
|
|
7140
|
-
return TEST_KANJI.test(str)
|
|
7141
|
-
};
|
|
7142
|
-
|
|
7143
|
-
var testNumeric = function testNumeric (str) {
|
|
7144
|
-
return TEST_NUMERIC.test(str)
|
|
7145
|
-
};
|
|
7146
|
-
|
|
7147
|
-
var testAlphanumeric = function testAlphanumeric (str) {
|
|
7148
|
-
return TEST_ALPHANUMERIC.test(str)
|
|
7149
|
-
};
|
|
7150
|
-
|
|
7151
|
-
var regex = {
|
|
7152
|
-
KANJI: KANJI,
|
|
7153
|
-
BYTE_KANJI: BYTE_KANJI,
|
|
7154
|
-
BYTE: BYTE,
|
|
7155
|
-
NUMERIC: NUMERIC,
|
|
7156
|
-
ALPHANUMERIC: ALPHANUMERIC,
|
|
7157
|
-
testKanji: testKanji,
|
|
7158
|
-
testNumeric: testNumeric,
|
|
7159
|
-
testAlphanumeric: testAlphanumeric
|
|
7160
|
-
};
|
|
7161
|
-
|
|
7162
|
-
var mode = createCommonjsModule(function (module, exports) {
|
|
7163
|
-
/**
|
|
7164
|
-
* Numeric mode encodes data from the decimal digit set (0 - 9)
|
|
7165
|
-
* (byte values 30HEX to 39HEX).
|
|
7166
|
-
* Normally, 3 data characters are represented by 10 bits.
|
|
7167
|
-
*
|
|
7168
|
-
* @type {Object}
|
|
7169
|
-
*/
|
|
7170
|
-
exports.NUMERIC = {
|
|
7171
|
-
id: 'Numeric',
|
|
7172
|
-
bit: 1 << 0,
|
|
7173
|
-
ccBits: [10, 12, 14]
|
|
7174
|
-
};
|
|
7175
|
-
|
|
7176
|
-
/**
|
|
7177
|
-
* Alphanumeric mode encodes data from a set of 45 characters,
|
|
7178
|
-
* i.e. 10 numeric digits (0 - 9),
|
|
7179
|
-
* 26 alphabetic characters (A - Z),
|
|
7180
|
-
* and 9 symbols (SP, $, %, *, +, -, ., /, :).
|
|
7181
|
-
* Normally, two input characters are represented by 11 bits.
|
|
7182
|
-
*
|
|
7183
|
-
* @type {Object}
|
|
7184
|
-
*/
|
|
7185
|
-
exports.ALPHANUMERIC = {
|
|
7186
|
-
id: 'Alphanumeric',
|
|
7187
|
-
bit: 1 << 1,
|
|
7188
|
-
ccBits: [9, 11, 13]
|
|
7189
|
-
};
|
|
7190
|
-
|
|
7191
|
-
/**
|
|
7192
|
-
* In byte mode, data is encoded at 8 bits per character.
|
|
7193
|
-
*
|
|
7194
|
-
* @type {Object}
|
|
7195
|
-
*/
|
|
7196
|
-
exports.BYTE = {
|
|
7197
|
-
id: 'Byte',
|
|
7198
|
-
bit: 1 << 2,
|
|
7199
|
-
ccBits: [8, 16, 16]
|
|
7200
|
-
};
|
|
7201
|
-
|
|
7202
|
-
/**
|
|
7203
|
-
* The Kanji mode efficiently encodes Kanji characters in accordance with
|
|
7204
|
-
* the Shift JIS system based on JIS X 0208.
|
|
7205
|
-
* The Shift JIS values are shifted from the JIS X 0208 values.
|
|
7206
|
-
* JIS X 0208 gives details of the shift coded representation.
|
|
7207
|
-
* Each two-byte character value is compacted to a 13-bit binary codeword.
|
|
7208
|
-
*
|
|
7209
|
-
* @type {Object}
|
|
7210
|
-
*/
|
|
7211
|
-
exports.KANJI = {
|
|
7212
|
-
id: 'Kanji',
|
|
7213
|
-
bit: 1 << 3,
|
|
7214
|
-
ccBits: [8, 10, 12]
|
|
7215
|
-
};
|
|
7216
|
-
|
|
7217
|
-
/**
|
|
7218
|
-
* Mixed mode will contain a sequences of data in a combination of any of
|
|
7219
|
-
* the modes described above
|
|
7220
|
-
*
|
|
7221
|
-
* @type {Object}
|
|
7222
|
-
*/
|
|
7223
|
-
exports.MIXED = {
|
|
7224
|
-
bit: -1
|
|
7225
|
-
};
|
|
7226
|
-
|
|
7227
|
-
/**
|
|
7228
|
-
* Returns the number of bits needed to store the data length
|
|
7229
|
-
* according to QR Code specifications.
|
|
7230
|
-
*
|
|
7231
|
-
* @param {Mode} mode Data mode
|
|
7232
|
-
* @param {Number} version QR Code version
|
|
7233
|
-
* @return {Number} Number of bits
|
|
7234
|
-
*/
|
|
7235
|
-
exports.getCharCountIndicator = function getCharCountIndicator (mode, version) {
|
|
7236
|
-
if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)
|
|
7237
|
-
|
|
7238
|
-
if (!versionCheck.isValid(version)) {
|
|
7239
|
-
throw new Error('Invalid version: ' + version)
|
|
7240
|
-
}
|
|
7241
|
-
|
|
7242
|
-
if (version >= 1 && version < 10) return mode.ccBits[0]
|
|
7243
|
-
else if (version < 27) return mode.ccBits[1]
|
|
7244
|
-
return mode.ccBits[2]
|
|
7245
|
-
};
|
|
7246
|
-
|
|
7247
|
-
/**
|
|
7248
|
-
* Returns the most efficient mode to store the specified data
|
|
7249
|
-
*
|
|
7250
|
-
* @param {String} dataStr Input data string
|
|
7251
|
-
* @return {Mode} Best mode
|
|
7252
|
-
*/
|
|
7253
|
-
exports.getBestModeForData = function getBestModeForData (dataStr) {
|
|
7254
|
-
if (regex.testNumeric(dataStr)) return exports.NUMERIC
|
|
7255
|
-
else if (regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC
|
|
7256
|
-
else if (regex.testKanji(dataStr)) return exports.KANJI
|
|
7257
|
-
else return exports.BYTE
|
|
7258
|
-
};
|
|
7259
|
-
|
|
7260
|
-
/**
|
|
7261
|
-
* Return mode name as string
|
|
7262
|
-
*
|
|
7263
|
-
* @param {Mode} mode Mode object
|
|
7264
|
-
* @returns {String} Mode name
|
|
7265
|
-
*/
|
|
7266
|
-
exports.toString = function toString (mode) {
|
|
7267
|
-
if (mode && mode.id) return mode.id
|
|
7268
|
-
throw new Error('Invalid mode')
|
|
7269
|
-
};
|
|
7270
|
-
|
|
7271
|
-
/**
|
|
7272
|
-
* Check if input param is a valid mode object
|
|
7273
|
-
*
|
|
7274
|
-
* @param {Mode} mode Mode object
|
|
7275
|
-
* @returns {Boolean} True if valid mode, false otherwise
|
|
7276
|
-
*/
|
|
7277
|
-
exports.isValid = function isValid (mode) {
|
|
7278
|
-
return mode && mode.bit && mode.ccBits
|
|
7279
|
-
};
|
|
7280
|
-
|
|
7281
|
-
/**
|
|
7282
|
-
* Get mode object from its name
|
|
7283
|
-
*
|
|
7284
|
-
* @param {String} string Mode name
|
|
7285
|
-
* @returns {Mode} Mode object
|
|
7286
|
-
*/
|
|
7287
|
-
function fromString (string) {
|
|
7288
|
-
if (typeof string !== 'string') {
|
|
7289
|
-
throw new Error('Param is not a string')
|
|
7290
|
-
}
|
|
7291
|
-
|
|
7292
|
-
const lcStr = string.toLowerCase();
|
|
7293
|
-
|
|
7294
|
-
switch (lcStr) {
|
|
7295
|
-
case 'numeric':
|
|
7296
|
-
return exports.NUMERIC
|
|
7297
|
-
case 'alphanumeric':
|
|
7298
|
-
return exports.ALPHANUMERIC
|
|
7299
|
-
case 'kanji':
|
|
7300
|
-
return exports.KANJI
|
|
7301
|
-
case 'byte':
|
|
7302
|
-
return exports.BYTE
|
|
7303
|
-
default:
|
|
7304
|
-
throw new Error('Unknown mode: ' + string)
|
|
7305
|
-
}
|
|
7306
|
-
}
|
|
7307
|
-
|
|
7308
|
-
/**
|
|
7309
|
-
* Returns mode from a value.
|
|
7310
|
-
* If value is not a valid mode, returns defaultValue
|
|
7311
|
-
*
|
|
7312
|
-
* @param {Mode|String} value Encoding mode
|
|
7313
|
-
* @param {Mode} defaultValue Fallback value
|
|
7314
|
-
* @return {Mode} Encoding mode
|
|
7315
|
-
*/
|
|
7316
|
-
exports.from = function from (value, defaultValue) {
|
|
7317
|
-
if (exports.isValid(value)) {
|
|
7318
|
-
return value
|
|
7319
|
-
}
|
|
7320
|
-
|
|
7321
|
-
try {
|
|
7322
|
-
return fromString(value)
|
|
7323
|
-
} catch (e) {
|
|
7324
|
-
return defaultValue
|
|
7325
|
-
}
|
|
7326
|
-
};
|
|
7327
|
-
});
|
|
7328
|
-
|
|
7329
|
-
var version = createCommonjsModule(function (module, exports) {
|
|
7330
|
-
// Generator polynomial used to encode version information
|
|
7331
|
-
const G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);
|
|
7332
|
-
const G18_BCH = utils$1.getBCHDigit(G18);
|
|
7333
|
-
|
|
7334
|
-
function getBestVersionForDataLength (mode, length, errorCorrectionLevel) {
|
|
7335
|
-
for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {
|
|
7336
|
-
if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {
|
|
7337
|
-
return currentVersion
|
|
7338
|
-
}
|
|
7339
|
-
}
|
|
7340
|
-
|
|
7341
|
-
return undefined
|
|
7342
|
-
}
|
|
7343
|
-
|
|
7344
|
-
function getReservedBitsCount (mode$1, version) {
|
|
7345
|
-
// Character count indicator + mode indicator bits
|
|
7346
|
-
return mode.getCharCountIndicator(mode$1, version) + 4
|
|
7347
|
-
}
|
|
7348
|
-
|
|
7349
|
-
function getTotalBitsFromDataArray (segments, version) {
|
|
7350
|
-
let totalBits = 0;
|
|
7351
|
-
|
|
7352
|
-
segments.forEach(function (data) {
|
|
7353
|
-
const reservedBits = getReservedBitsCount(data.mode, version);
|
|
7354
|
-
totalBits += reservedBits + data.getBitsLength();
|
|
7355
|
-
});
|
|
7356
|
-
|
|
7357
|
-
return totalBits
|
|
7358
|
-
}
|
|
7359
|
-
|
|
7360
|
-
function getBestVersionForMixedData (segments, errorCorrectionLevel) {
|
|
7361
|
-
for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {
|
|
7362
|
-
const length = getTotalBitsFromDataArray(segments, currentVersion);
|
|
7363
|
-
if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode.MIXED)) {
|
|
7364
|
-
return currentVersion
|
|
7365
|
-
}
|
|
7366
|
-
}
|
|
7367
|
-
|
|
7368
|
-
return undefined
|
|
7369
|
-
}
|
|
7370
|
-
|
|
7371
|
-
/**
|
|
7372
|
-
* Returns version number from a value.
|
|
7373
|
-
* If value is not a valid version, returns defaultValue
|
|
7374
|
-
*
|
|
7375
|
-
* @param {Number|String} value QR Code version
|
|
7376
|
-
* @param {Number} defaultValue Fallback value
|
|
7377
|
-
* @return {Number} QR Code version number
|
|
7378
|
-
*/
|
|
7379
|
-
exports.from = function from (value, defaultValue) {
|
|
7380
|
-
if (versionCheck.isValid(value)) {
|
|
7381
|
-
return parseInt(value, 10)
|
|
7382
|
-
}
|
|
7383
|
-
|
|
7384
|
-
return defaultValue
|
|
7385
|
-
};
|
|
7386
|
-
|
|
7387
|
-
/**
|
|
7388
|
-
* Returns how much data can be stored with the specified QR code version
|
|
7389
|
-
* and error correction level
|
|
7390
|
-
*
|
|
7391
|
-
* @param {Number} version QR Code version (1-40)
|
|
7392
|
-
* @param {Number} errorCorrectionLevel Error correction level
|
|
7393
|
-
* @param {Mode} mode Data mode
|
|
7394
|
-
* @return {Number} Quantity of storable data
|
|
7395
|
-
*/
|
|
7396
|
-
exports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode$1) {
|
|
7397
|
-
if (!versionCheck.isValid(version)) {
|
|
7398
|
-
throw new Error('Invalid QR Code version')
|
|
7399
|
-
}
|
|
7400
|
-
|
|
7401
|
-
// Use Byte mode as default
|
|
7402
|
-
if (typeof mode$1 === 'undefined') mode$1 = mode.BYTE;
|
|
7403
|
-
|
|
7404
|
-
// Total codewords for this QR code version (Data + Error correction)
|
|
7405
|
-
const totalCodewords = utils$1.getSymbolTotalCodewords(version);
|
|
7406
|
-
|
|
7407
|
-
// Total number of error correction codewords
|
|
7408
|
-
const ecTotalCodewords = errorCorrectionCode.getTotalCodewordsCount(version, errorCorrectionLevel);
|
|
7409
|
-
|
|
7410
|
-
// Total number of data codewords
|
|
7411
|
-
const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;
|
|
7412
|
-
|
|
7413
|
-
if (mode$1 === mode.MIXED) return dataTotalCodewordsBits
|
|
7414
|
-
|
|
7415
|
-
const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode$1, version);
|
|
7416
|
-
|
|
7417
|
-
// Return max number of storable codewords
|
|
7418
|
-
switch (mode$1) {
|
|
7419
|
-
case mode.NUMERIC:
|
|
7420
|
-
return Math.floor((usableBits / 10) * 3)
|
|
7421
|
-
|
|
7422
|
-
case mode.ALPHANUMERIC:
|
|
7423
|
-
return Math.floor((usableBits / 11) * 2)
|
|
7424
|
-
|
|
7425
|
-
case mode.KANJI:
|
|
7426
|
-
return Math.floor(usableBits / 13)
|
|
7427
|
-
|
|
7428
|
-
case mode.BYTE:
|
|
7429
|
-
default:
|
|
7430
|
-
return Math.floor(usableBits / 8)
|
|
7431
|
-
}
|
|
7432
|
-
};
|
|
7433
|
-
|
|
7434
|
-
/**
|
|
7435
|
-
* Returns the minimum version needed to contain the amount of data
|
|
7436
|
-
*
|
|
7437
|
-
* @param {Segment} data Segment of data
|
|
7438
|
-
* @param {Number} [errorCorrectionLevel=H] Error correction level
|
|
7439
|
-
* @param {Mode} mode Data mode
|
|
7440
|
-
* @return {Number} QR Code version
|
|
7441
|
-
*/
|
|
7442
|
-
exports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel$1) {
|
|
7443
|
-
let seg;
|
|
7444
|
-
|
|
7445
|
-
const ecl = errorCorrectionLevel.from(errorCorrectionLevel$1, errorCorrectionLevel.M);
|
|
7446
|
-
|
|
7447
|
-
if (Array.isArray(data)) {
|
|
7448
|
-
if (data.length > 1) {
|
|
7449
|
-
return getBestVersionForMixedData(data, ecl)
|
|
7450
|
-
}
|
|
7451
|
-
|
|
7452
|
-
if (data.length === 0) {
|
|
7453
|
-
return 1
|
|
7454
|
-
}
|
|
7455
|
-
|
|
7456
|
-
seg = data[0];
|
|
7457
|
-
} else {
|
|
7458
|
-
seg = data;
|
|
7459
|
-
}
|
|
7460
|
-
|
|
7461
|
-
return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)
|
|
7462
|
-
};
|
|
7463
|
-
|
|
7464
|
-
/**
|
|
7465
|
-
* Returns version information with relative error correction bits
|
|
7466
|
-
*
|
|
7467
|
-
* The version information is included in QR Code symbols of version 7 or larger.
|
|
7468
|
-
* It consists of an 18-bit sequence containing 6 data bits,
|
|
7469
|
-
* with 12 error correction bits calculated using the (18, 6) Golay code.
|
|
7470
|
-
*
|
|
7471
|
-
* @param {Number} version QR Code version
|
|
7472
|
-
* @return {Number} Encoded version info bits
|
|
7473
|
-
*/
|
|
7474
|
-
exports.getEncodedBits = function getEncodedBits (version) {
|
|
7475
|
-
if (!versionCheck.isValid(version) || version < 7) {
|
|
7476
|
-
throw new Error('Invalid QR Code version')
|
|
7477
|
-
}
|
|
7478
|
-
|
|
7479
|
-
let d = version << 12;
|
|
7480
|
-
|
|
7481
|
-
while (utils$1.getBCHDigit(d) - G18_BCH >= 0) {
|
|
7482
|
-
d ^= (G18 << (utils$1.getBCHDigit(d) - G18_BCH));
|
|
7483
|
-
}
|
|
7484
|
-
|
|
7485
|
-
return (version << 12) | d
|
|
7486
|
-
};
|
|
7487
|
-
});
|
|
7488
|
-
|
|
7489
|
-
const G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);
|
|
7490
|
-
const G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);
|
|
7491
|
-
const G15_BCH = utils$1.getBCHDigit(G15);
|
|
7492
|
-
|
|
7493
|
-
/**
|
|
7494
|
-
* Returns format information with relative error correction bits
|
|
7495
|
-
*
|
|
7496
|
-
* The format information is a 15-bit sequence containing 5 data bits,
|
|
7497
|
-
* with 10 error correction bits calculated using the (15, 5) BCH code.
|
|
7498
|
-
*
|
|
7499
|
-
* @param {Number} errorCorrectionLevel Error correction level
|
|
7500
|
-
* @param {Number} mask Mask pattern
|
|
7501
|
-
* @return {Number} Encoded format information bits
|
|
7502
|
-
*/
|
|
7503
|
-
var getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {
|
|
7504
|
-
const data = ((errorCorrectionLevel.bit << 3) | mask);
|
|
7505
|
-
let d = data << 10;
|
|
7506
|
-
|
|
7507
|
-
while (utils$1.getBCHDigit(d) - G15_BCH >= 0) {
|
|
7508
|
-
d ^= (G15 << (utils$1.getBCHDigit(d) - G15_BCH));
|
|
7509
|
-
}
|
|
7510
|
-
|
|
7511
|
-
// xor final data with mask pattern in order to ensure that
|
|
7512
|
-
// no combination of Error Correction Level and data mask pattern
|
|
7513
|
-
// will result in an all-zero data string
|
|
7514
|
-
return ((data << 10) | d) ^ G15_MASK
|
|
7515
|
-
};
|
|
7516
|
-
|
|
7517
|
-
var formatInfo = {
|
|
7518
|
-
getEncodedBits: getEncodedBits
|
|
7519
|
-
};
|
|
7520
|
-
|
|
7521
|
-
function NumericData (data) {
|
|
7522
|
-
this.mode = mode.NUMERIC;
|
|
7523
|
-
this.data = data.toString();
|
|
7524
|
-
}
|
|
7525
|
-
|
|
7526
|
-
NumericData.getBitsLength = function getBitsLength (length) {
|
|
7527
|
-
return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)
|
|
7528
|
-
};
|
|
7529
|
-
|
|
7530
|
-
NumericData.prototype.getLength = function getLength () {
|
|
7531
|
-
return this.data.length
|
|
7532
|
-
};
|
|
7533
|
-
|
|
7534
|
-
NumericData.prototype.getBitsLength = function getBitsLength () {
|
|
7535
|
-
return NumericData.getBitsLength(this.data.length)
|
|
7536
|
-
};
|
|
7537
|
-
|
|
7538
|
-
NumericData.prototype.write = function write (bitBuffer) {
|
|
7539
|
-
let i, group, value;
|
|
7540
|
-
|
|
7541
|
-
// The input data string is divided into groups of three digits,
|
|
7542
|
-
// and each group is converted to its 10-bit binary equivalent.
|
|
7543
|
-
for (i = 0; i + 3 <= this.data.length; i += 3) {
|
|
7544
|
-
group = this.data.substr(i, 3);
|
|
7545
|
-
value = parseInt(group, 10);
|
|
7546
|
-
|
|
7547
|
-
bitBuffer.put(value, 10);
|
|
7548
|
-
}
|
|
7549
|
-
|
|
7550
|
-
// If the number of input digits is not an exact multiple of three,
|
|
7551
|
-
// the final one or two digits are converted to 4 or 7 bits respectively.
|
|
7552
|
-
const remainingNum = this.data.length - i;
|
|
7553
|
-
if (remainingNum > 0) {
|
|
7554
|
-
group = this.data.substr(i);
|
|
7555
|
-
value = parseInt(group, 10);
|
|
7556
|
-
|
|
7557
|
-
bitBuffer.put(value, remainingNum * 3 + 1);
|
|
7558
|
-
}
|
|
7559
|
-
};
|
|
7560
|
-
|
|
7561
|
-
var numericData = NumericData;
|
|
7562
|
-
|
|
7563
|
-
/**
|
|
7564
|
-
* Array of characters available in alphanumeric mode
|
|
7565
|
-
*
|
|
7566
|
-
* As per QR Code specification, to each character
|
|
7567
|
-
* is assigned a value from 0 to 44 which in this case coincides
|
|
7568
|
-
* with the array index
|
|
7569
|
-
*
|
|
7570
|
-
* @type {Array}
|
|
7571
|
-
*/
|
|
7572
|
-
const ALPHA_NUM_CHARS = [
|
|
7573
|
-
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
|
7574
|
-
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
|
7575
|
-
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
|
|
7576
|
-
' ', '$', '%', '*', '+', '-', '.', '/', ':'
|
|
7577
|
-
];
|
|
7578
|
-
|
|
7579
|
-
function AlphanumericData (data) {
|
|
7580
|
-
this.mode = mode.ALPHANUMERIC;
|
|
7581
|
-
this.data = data;
|
|
7582
|
-
}
|
|
7583
|
-
|
|
7584
|
-
AlphanumericData.getBitsLength = function getBitsLength (length) {
|
|
7585
|
-
return 11 * Math.floor(length / 2) + 6 * (length % 2)
|
|
7586
|
-
};
|
|
7587
|
-
|
|
7588
|
-
AlphanumericData.prototype.getLength = function getLength () {
|
|
7589
|
-
return this.data.length
|
|
7590
|
-
};
|
|
7591
|
-
|
|
7592
|
-
AlphanumericData.prototype.getBitsLength = function getBitsLength () {
|
|
7593
|
-
return AlphanumericData.getBitsLength(this.data.length)
|
|
7594
|
-
};
|
|
7595
|
-
|
|
7596
|
-
AlphanumericData.prototype.write = function write (bitBuffer) {
|
|
7597
|
-
let i;
|
|
7598
|
-
|
|
7599
|
-
// Input data characters are divided into groups of two characters
|
|
7600
|
-
// and encoded as 11-bit binary codes.
|
|
7601
|
-
for (i = 0; i + 2 <= this.data.length; i += 2) {
|
|
7602
|
-
// The character value of the first character is multiplied by 45
|
|
7603
|
-
let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45;
|
|
7604
|
-
|
|
7605
|
-
// The character value of the second digit is added to the product
|
|
7606
|
-
value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]);
|
|
7607
|
-
|
|
7608
|
-
// The sum is then stored as 11-bit binary number
|
|
7609
|
-
bitBuffer.put(value, 11);
|
|
7610
|
-
}
|
|
7611
|
-
|
|
7612
|
-
// If the number of input data characters is not a multiple of two,
|
|
7613
|
-
// the character value of the final character is encoded as a 6-bit binary number.
|
|
7614
|
-
if (this.data.length % 2) {
|
|
7615
|
-
bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6);
|
|
7616
|
-
}
|
|
7617
|
-
};
|
|
7618
|
-
|
|
7619
|
-
var alphanumericData = AlphanumericData;
|
|
7620
|
-
|
|
7621
|
-
var encodeUtf8 = function encodeUtf8 (input) {
|
|
7622
|
-
var result = [];
|
|
7623
|
-
var size = input.length;
|
|
7624
|
-
|
|
7625
|
-
for (var index = 0; index < size; index++) {
|
|
7626
|
-
var point = input.charCodeAt(index);
|
|
7627
|
-
|
|
7628
|
-
if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {
|
|
7629
|
-
var second = input.charCodeAt(index + 1);
|
|
7630
|
-
|
|
7631
|
-
if (second >= 0xDC00 && second <= 0xDFFF) {
|
|
7632
|
-
// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
|
|
7633
|
-
point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
|
|
7634
|
-
index += 1;
|
|
7635
|
-
}
|
|
7636
|
-
}
|
|
7637
|
-
|
|
7638
|
-
// US-ASCII
|
|
7639
|
-
if (point < 0x80) {
|
|
7640
|
-
result.push(point);
|
|
7641
|
-
continue
|
|
7642
|
-
}
|
|
7643
|
-
|
|
7644
|
-
// 2-byte UTF-8
|
|
7645
|
-
if (point < 0x800) {
|
|
7646
|
-
result.push((point >> 6) | 192);
|
|
7647
|
-
result.push((point & 63) | 128);
|
|
7648
|
-
continue
|
|
7649
|
-
}
|
|
7650
|
-
|
|
7651
|
-
// 3-byte UTF-8
|
|
7652
|
-
if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {
|
|
7653
|
-
result.push((point >> 12) | 224);
|
|
7654
|
-
result.push(((point >> 6) & 63) | 128);
|
|
7655
|
-
result.push((point & 63) | 128);
|
|
7656
|
-
continue
|
|
7657
|
-
}
|
|
7658
|
-
|
|
7659
|
-
// 4-byte UTF-8
|
|
7660
|
-
if (point >= 0x10000 && point <= 0x10FFFF) {
|
|
7661
|
-
result.push((point >> 18) | 240);
|
|
7662
|
-
result.push(((point >> 12) & 63) | 128);
|
|
7663
|
-
result.push(((point >> 6) & 63) | 128);
|
|
7664
|
-
result.push((point & 63) | 128);
|
|
7665
|
-
continue
|
|
7666
|
-
}
|
|
7667
|
-
|
|
7668
|
-
// Invalid character
|
|
7669
|
-
result.push(0xEF, 0xBF, 0xBD);
|
|
7670
|
-
}
|
|
7671
|
-
|
|
7672
|
-
return new Uint8Array(result).buffer
|
|
7673
|
-
};
|
|
7674
|
-
|
|
7675
|
-
function ByteData (data) {
|
|
7676
|
-
this.mode = mode.BYTE;
|
|
7677
|
-
if (typeof (data) === 'string') {
|
|
7678
|
-
data = encodeUtf8(data);
|
|
7679
|
-
}
|
|
7680
|
-
this.data = new Uint8Array(data);
|
|
7681
|
-
}
|
|
7682
|
-
|
|
7683
|
-
ByteData.getBitsLength = function getBitsLength (length) {
|
|
7684
|
-
return length * 8
|
|
7685
|
-
};
|
|
7686
|
-
|
|
7687
|
-
ByteData.prototype.getLength = function getLength () {
|
|
7688
|
-
return this.data.length
|
|
7689
|
-
};
|
|
7690
|
-
|
|
7691
|
-
ByteData.prototype.getBitsLength = function getBitsLength () {
|
|
7692
|
-
return ByteData.getBitsLength(this.data.length)
|
|
7693
|
-
};
|
|
7694
|
-
|
|
7695
|
-
ByteData.prototype.write = function (bitBuffer) {
|
|
7696
|
-
for (let i = 0, l = this.data.length; i < l; i++) {
|
|
7697
|
-
bitBuffer.put(this.data[i], 8);
|
|
7698
|
-
}
|
|
7699
|
-
};
|
|
7700
|
-
|
|
7701
|
-
var byteData = ByteData;
|
|
7702
|
-
|
|
7703
|
-
function KanjiData (data) {
|
|
7704
|
-
this.mode = mode.KANJI;
|
|
7705
|
-
this.data = data;
|
|
7706
|
-
}
|
|
7707
|
-
|
|
7708
|
-
KanjiData.getBitsLength = function getBitsLength (length) {
|
|
7709
|
-
return length * 13
|
|
7710
|
-
};
|
|
7711
|
-
|
|
7712
|
-
KanjiData.prototype.getLength = function getLength () {
|
|
7713
|
-
return this.data.length
|
|
7714
|
-
};
|
|
7715
|
-
|
|
7716
|
-
KanjiData.prototype.getBitsLength = function getBitsLength () {
|
|
7717
|
-
return KanjiData.getBitsLength(this.data.length)
|
|
7718
|
-
};
|
|
7719
|
-
|
|
7720
|
-
KanjiData.prototype.write = function (bitBuffer) {
|
|
7721
|
-
let i;
|
|
7722
|
-
|
|
7723
|
-
// In the Shift JIS system, Kanji characters are represented by a two byte combination.
|
|
7724
|
-
// These byte values are shifted from the JIS X 0208 values.
|
|
7725
|
-
// JIS X 0208 gives details of the shift coded representation.
|
|
7726
|
-
for (i = 0; i < this.data.length; i++) {
|
|
7727
|
-
let value = utils$1.toSJIS(this.data[i]);
|
|
7728
|
-
|
|
7729
|
-
// For characters with Shift JIS values from 0x8140 to 0x9FFC:
|
|
7730
|
-
if (value >= 0x8140 && value <= 0x9FFC) {
|
|
7731
|
-
// Subtract 0x8140 from Shift JIS value
|
|
7732
|
-
value -= 0x8140;
|
|
7733
|
-
|
|
7734
|
-
// For characters with Shift JIS values from 0xE040 to 0xEBBF
|
|
7735
|
-
} else if (value >= 0xE040 && value <= 0xEBBF) {
|
|
7736
|
-
// Subtract 0xC140 from Shift JIS value
|
|
7737
|
-
value -= 0xC140;
|
|
7738
|
-
} else {
|
|
7739
|
-
throw new Error(
|
|
7740
|
-
'Invalid SJIS character: ' + this.data[i] + '\n' +
|
|
7741
|
-
'Make sure your charset is UTF-8')
|
|
7742
|
-
}
|
|
7743
|
-
|
|
7744
|
-
// Multiply most significant byte of result by 0xC0
|
|
7745
|
-
// and add least significant byte to product
|
|
7746
|
-
value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff);
|
|
7747
|
-
|
|
7748
|
-
// Convert result to a 13-bit binary string
|
|
7749
|
-
bitBuffer.put(value, 13);
|
|
7750
|
-
}
|
|
7751
|
-
};
|
|
7752
|
-
|
|
7753
|
-
var kanjiData = KanjiData;
|
|
7754
|
-
|
|
7755
|
-
var dijkstra_1 = createCommonjsModule(function (module) {
|
|
7756
|
-
|
|
7757
|
-
/******************************************************************************
|
|
7758
|
-
* Created 2008-08-19.
|
|
7759
|
-
*
|
|
7760
|
-
* Dijkstra path-finding functions. Adapted from the Dijkstar Python project.
|
|
7761
|
-
*
|
|
7762
|
-
* Copyright (C) 2008
|
|
7763
|
-
* Wyatt Baldwin <self@wyattbaldwin.com>
|
|
7764
|
-
* All rights reserved
|
|
7765
|
-
*
|
|
7766
|
-
* Licensed under the MIT license.
|
|
7767
|
-
*
|
|
7768
|
-
* http://www.opensource.org/licenses/mit-license.php
|
|
7769
|
-
*
|
|
7770
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
7771
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
7772
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
7773
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
7774
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
7775
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
7776
|
-
* THE SOFTWARE.
|
|
7777
|
-
*****************************************************************************/
|
|
7778
|
-
var dijkstra = {
|
|
7779
|
-
single_source_shortest_paths: function(graph, s, d) {
|
|
7780
|
-
// Predecessor map for each node that has been encountered.
|
|
7781
|
-
// node ID => predecessor node ID
|
|
7782
|
-
var predecessors = {};
|
|
7783
|
-
|
|
7784
|
-
// Costs of shortest paths from s to all nodes encountered.
|
|
7785
|
-
// node ID => cost
|
|
7786
|
-
var costs = {};
|
|
7787
|
-
costs[s] = 0;
|
|
7788
|
-
|
|
7789
|
-
// Costs of shortest paths from s to all nodes encountered; differs from
|
|
7790
|
-
// `costs` in that it provides easy access to the node that currently has
|
|
7791
|
-
// the known shortest path from s.
|
|
7792
|
-
// XXX: Do we actually need both `costs` and `open`?
|
|
7793
|
-
var open = dijkstra.PriorityQueue.make();
|
|
7794
|
-
open.push(s, 0);
|
|
7795
|
-
|
|
7796
|
-
var closest,
|
|
7797
|
-
u, v,
|
|
7798
|
-
cost_of_s_to_u,
|
|
7799
|
-
adjacent_nodes,
|
|
7800
|
-
cost_of_e,
|
|
7801
|
-
cost_of_s_to_u_plus_cost_of_e,
|
|
7802
|
-
cost_of_s_to_v,
|
|
7803
|
-
first_visit;
|
|
7804
|
-
while (!open.empty()) {
|
|
7805
|
-
// In the nodes remaining in graph that have a known cost from s,
|
|
7806
|
-
// find the node, u, that currently has the shortest path from s.
|
|
7807
|
-
closest = open.pop();
|
|
7808
|
-
u = closest.value;
|
|
7809
|
-
cost_of_s_to_u = closest.cost;
|
|
7810
|
-
|
|
7811
|
-
// Get nodes adjacent to u...
|
|
7812
|
-
adjacent_nodes = graph[u] || {};
|
|
7813
|
-
|
|
7814
|
-
// ...and explore the edges that connect u to those nodes, updating
|
|
7815
|
-
// the cost of the shortest paths to any or all of those nodes as
|
|
7816
|
-
// necessary. v is the node across the current edge from u.
|
|
7817
|
-
for (v in adjacent_nodes) {
|
|
7818
|
-
if (adjacent_nodes.hasOwnProperty(v)) {
|
|
7819
|
-
// Get the cost of the edge running from u to v.
|
|
7820
|
-
cost_of_e = adjacent_nodes[v];
|
|
7821
|
-
|
|
7822
|
-
// Cost of s to u plus the cost of u to v across e--this is *a*
|
|
7823
|
-
// cost from s to v that may or may not be less than the current
|
|
7824
|
-
// known cost to v.
|
|
7825
|
-
cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;
|
|
7826
|
-
|
|
7827
|
-
// If we haven't visited v yet OR if the current known cost from s to
|
|
7828
|
-
// v is greater than the new cost we just found (cost of s to u plus
|
|
7829
|
-
// cost of u to v across e), update v's cost in the cost list and
|
|
7830
|
-
// update v's predecessor in the predecessor list (it's now u).
|
|
7831
|
-
cost_of_s_to_v = costs[v];
|
|
7832
|
-
first_visit = (typeof costs[v] === 'undefined');
|
|
7833
|
-
if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {
|
|
7834
|
-
costs[v] = cost_of_s_to_u_plus_cost_of_e;
|
|
7835
|
-
open.push(v, cost_of_s_to_u_plus_cost_of_e);
|
|
7836
|
-
predecessors[v] = u;
|
|
7837
|
-
}
|
|
7838
|
-
}
|
|
7839
|
-
}
|
|
7840
|
-
}
|
|
7841
|
-
|
|
7842
|
-
if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {
|
|
7843
|
-
var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');
|
|
7844
|
-
throw new Error(msg);
|
|
7845
|
-
}
|
|
7846
|
-
|
|
7847
|
-
return predecessors;
|
|
7848
|
-
},
|
|
7849
|
-
|
|
7850
|
-
extract_shortest_path_from_predecessor_list: function(predecessors, d) {
|
|
7851
|
-
var nodes = [];
|
|
7852
|
-
var u = d;
|
|
7853
|
-
while (u) {
|
|
7854
|
-
nodes.push(u);
|
|
7855
|
-
u = predecessors[u];
|
|
7856
|
-
}
|
|
7857
|
-
nodes.reverse();
|
|
7858
|
-
return nodes;
|
|
7859
|
-
},
|
|
7860
|
-
|
|
7861
|
-
find_path: function(graph, s, d) {
|
|
7862
|
-
var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);
|
|
7863
|
-
return dijkstra.extract_shortest_path_from_predecessor_list(
|
|
7864
|
-
predecessors, d);
|
|
7865
|
-
},
|
|
7866
|
-
|
|
7867
|
-
/**
|
|
7868
|
-
* A very naive priority queue implementation.
|
|
7869
|
-
*/
|
|
7870
|
-
PriorityQueue: {
|
|
7871
|
-
make: function (opts) {
|
|
7872
|
-
var T = dijkstra.PriorityQueue,
|
|
7873
|
-
t = {},
|
|
7874
|
-
key;
|
|
7875
|
-
opts = opts || {};
|
|
7876
|
-
for (key in T) {
|
|
7877
|
-
if (T.hasOwnProperty(key)) {
|
|
7878
|
-
t[key] = T[key];
|
|
7879
|
-
}
|
|
7880
|
-
}
|
|
7881
|
-
t.queue = [];
|
|
7882
|
-
t.sorter = opts.sorter || T.default_sorter;
|
|
7883
|
-
return t;
|
|
7884
|
-
},
|
|
7885
|
-
|
|
7886
|
-
default_sorter: function (a, b) {
|
|
7887
|
-
return a.cost - b.cost;
|
|
7888
|
-
},
|
|
7889
|
-
|
|
7890
|
-
/**
|
|
7891
|
-
* Add a new item to the queue and ensure the highest priority element
|
|
7892
|
-
* is at the front of the queue.
|
|
7893
|
-
*/
|
|
7894
|
-
push: function (value, cost) {
|
|
7895
|
-
var item = {value: value, cost: cost};
|
|
7896
|
-
this.queue.push(item);
|
|
7897
|
-
this.queue.sort(this.sorter);
|
|
7898
|
-
},
|
|
7899
|
-
|
|
7900
|
-
/**
|
|
7901
|
-
* Return the highest priority element in the queue.
|
|
7902
|
-
*/
|
|
7903
|
-
pop: function () {
|
|
7904
|
-
return this.queue.shift();
|
|
7905
|
-
},
|
|
7906
|
-
|
|
7907
|
-
empty: function () {
|
|
7908
|
-
return this.queue.length === 0;
|
|
7909
|
-
}
|
|
7910
|
-
}
|
|
7911
|
-
};
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
// node.js module exports
|
|
7915
|
-
{
|
|
7916
|
-
module.exports = dijkstra;
|
|
7917
|
-
}
|
|
7918
|
-
});
|
|
7919
|
-
|
|
7920
|
-
var segments = createCommonjsModule(function (module, exports) {
|
|
7921
|
-
/**
|
|
7922
|
-
* Returns UTF8 byte length
|
|
7923
|
-
*
|
|
7924
|
-
* @param {String} str Input string
|
|
7925
|
-
* @return {Number} Number of byte
|
|
7926
|
-
*/
|
|
7927
|
-
function getStringByteLength (str) {
|
|
7928
|
-
return unescape(encodeURIComponent(str)).length
|
|
7929
|
-
}
|
|
7930
|
-
|
|
7931
|
-
/**
|
|
7932
|
-
* Get a list of segments of the specified mode
|
|
7933
|
-
* from a string
|
|
7934
|
-
*
|
|
7935
|
-
* @param {Mode} mode Segment mode
|
|
7936
|
-
* @param {String} str String to process
|
|
7937
|
-
* @return {Array} Array of object with segments data
|
|
7938
|
-
*/
|
|
7939
|
-
function getSegments (regex, mode, str) {
|
|
7940
|
-
const segments = [];
|
|
7941
|
-
let result;
|
|
7942
|
-
|
|
7943
|
-
while ((result = regex.exec(str)) !== null) {
|
|
7944
|
-
segments.push({
|
|
7945
|
-
data: result[0],
|
|
7946
|
-
index: result.index,
|
|
7947
|
-
mode: mode,
|
|
7948
|
-
length: result[0].length
|
|
7949
|
-
});
|
|
7950
|
-
}
|
|
7951
|
-
|
|
7952
|
-
return segments
|
|
7953
|
-
}
|
|
7954
|
-
|
|
7955
|
-
/**
|
|
7956
|
-
* Extracts a series of segments with the appropriate
|
|
7957
|
-
* modes from a string
|
|
7958
|
-
*
|
|
7959
|
-
* @param {String} dataStr Input string
|
|
7960
|
-
* @return {Array} Array of object with segments data
|
|
7961
|
-
*/
|
|
7962
|
-
function getSegmentsFromString (dataStr) {
|
|
7963
|
-
const numSegs = getSegments(regex.NUMERIC, mode.NUMERIC, dataStr);
|
|
7964
|
-
const alphaNumSegs = getSegments(regex.ALPHANUMERIC, mode.ALPHANUMERIC, dataStr);
|
|
7965
|
-
let byteSegs;
|
|
7966
|
-
let kanjiSegs;
|
|
7967
|
-
|
|
7968
|
-
if (utils$1.isKanjiModeEnabled()) {
|
|
7969
|
-
byteSegs = getSegments(regex.BYTE, mode.BYTE, dataStr);
|
|
7970
|
-
kanjiSegs = getSegments(regex.KANJI, mode.KANJI, dataStr);
|
|
7971
|
-
} else {
|
|
7972
|
-
byteSegs = getSegments(regex.BYTE_KANJI, mode.BYTE, dataStr);
|
|
7973
|
-
kanjiSegs = [];
|
|
7974
|
-
}
|
|
7975
|
-
|
|
7976
|
-
const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);
|
|
7977
|
-
|
|
7978
|
-
return segs
|
|
7979
|
-
.sort(function (s1, s2) {
|
|
7980
|
-
return s1.index - s2.index
|
|
7981
|
-
})
|
|
7982
|
-
.map(function (obj) {
|
|
7983
|
-
return {
|
|
7984
|
-
data: obj.data,
|
|
7985
|
-
mode: obj.mode,
|
|
7986
|
-
length: obj.length
|
|
7987
|
-
}
|
|
7988
|
-
})
|
|
7989
|
-
}
|
|
7990
|
-
|
|
7991
|
-
/**
|
|
7992
|
-
* Returns how many bits are needed to encode a string of
|
|
7993
|
-
* specified length with the specified mode
|
|
7994
|
-
*
|
|
7995
|
-
* @param {Number} length String length
|
|
7996
|
-
* @param {Mode} mode Segment mode
|
|
7997
|
-
* @return {Number} Bit length
|
|
7998
|
-
*/
|
|
7999
|
-
function getSegmentBitsLength (length, mode$1) {
|
|
8000
|
-
switch (mode$1) {
|
|
8001
|
-
case mode.NUMERIC:
|
|
8002
|
-
return numericData.getBitsLength(length)
|
|
8003
|
-
case mode.ALPHANUMERIC:
|
|
8004
|
-
return alphanumericData.getBitsLength(length)
|
|
8005
|
-
case mode.KANJI:
|
|
8006
|
-
return kanjiData.getBitsLength(length)
|
|
8007
|
-
case mode.BYTE:
|
|
8008
|
-
return byteData.getBitsLength(length)
|
|
8009
|
-
}
|
|
8010
|
-
}
|
|
8011
|
-
|
|
8012
|
-
/**
|
|
8013
|
-
* Merges adjacent segments which have the same mode
|
|
8014
|
-
*
|
|
8015
|
-
* @param {Array} segs Array of object with segments data
|
|
8016
|
-
* @return {Array} Array of object with segments data
|
|
8017
|
-
*/
|
|
8018
|
-
function mergeSegments (segs) {
|
|
8019
|
-
return segs.reduce(function (acc, curr) {
|
|
8020
|
-
const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;
|
|
8021
|
-
if (prevSeg && prevSeg.mode === curr.mode) {
|
|
8022
|
-
acc[acc.length - 1].data += curr.data;
|
|
8023
|
-
return acc
|
|
8024
|
-
}
|
|
8025
|
-
|
|
8026
|
-
acc.push(curr);
|
|
8027
|
-
return acc
|
|
8028
|
-
}, [])
|
|
8029
|
-
}
|
|
8030
|
-
|
|
8031
|
-
/**
|
|
8032
|
-
* Generates a list of all possible nodes combination which
|
|
8033
|
-
* will be used to build a segments graph.
|
|
8034
|
-
*
|
|
8035
|
-
* Nodes are divided by groups. Each group will contain a list of all the modes
|
|
8036
|
-
* in which is possible to encode the given text.
|
|
8037
|
-
*
|
|
8038
|
-
* For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.
|
|
8039
|
-
* The group for '12345' will contain then 3 objects, one for each
|
|
8040
|
-
* possible encoding mode.
|
|
8041
|
-
*
|
|
8042
|
-
* Each node represents a possible segment.
|
|
8043
|
-
*
|
|
8044
|
-
* @param {Array} segs Array of object with segments data
|
|
8045
|
-
* @return {Array} Array of object with segments data
|
|
8046
|
-
*/
|
|
8047
|
-
function buildNodes (segs) {
|
|
8048
|
-
const nodes = [];
|
|
8049
|
-
for (let i = 0; i < segs.length; i++) {
|
|
8050
|
-
const seg = segs[i];
|
|
8051
|
-
|
|
8052
|
-
switch (seg.mode) {
|
|
8053
|
-
case mode.NUMERIC:
|
|
8054
|
-
nodes.push([seg,
|
|
8055
|
-
{ data: seg.data, mode: mode.ALPHANUMERIC, length: seg.length },
|
|
8056
|
-
{ data: seg.data, mode: mode.BYTE, length: seg.length }
|
|
8057
|
-
]);
|
|
8058
|
-
break
|
|
8059
|
-
case mode.ALPHANUMERIC:
|
|
8060
|
-
nodes.push([seg,
|
|
8061
|
-
{ data: seg.data, mode: mode.BYTE, length: seg.length }
|
|
8062
|
-
]);
|
|
8063
|
-
break
|
|
8064
|
-
case mode.KANJI:
|
|
8065
|
-
nodes.push([seg,
|
|
8066
|
-
{ data: seg.data, mode: mode.BYTE, length: getStringByteLength(seg.data) }
|
|
8067
|
-
]);
|
|
8068
|
-
break
|
|
8069
|
-
case mode.BYTE:
|
|
8070
|
-
nodes.push([
|
|
8071
|
-
{ data: seg.data, mode: mode.BYTE, length: getStringByteLength(seg.data) }
|
|
8072
|
-
]);
|
|
8073
|
-
}
|
|
8074
|
-
}
|
|
8075
|
-
|
|
8076
|
-
return nodes
|
|
8077
|
-
}
|
|
8078
|
-
|
|
8079
|
-
/**
|
|
8080
|
-
* Builds a graph from a list of nodes.
|
|
8081
|
-
* All segments in each node group will be connected with all the segments of
|
|
8082
|
-
* the next group and so on.
|
|
8083
|
-
*
|
|
8084
|
-
* At each connection will be assigned a weight depending on the
|
|
8085
|
-
* segment's byte length.
|
|
8086
|
-
*
|
|
8087
|
-
* @param {Array} nodes Array of object with segments data
|
|
8088
|
-
* @param {Number} version QR Code version
|
|
8089
|
-
* @return {Object} Graph of all possible segments
|
|
8090
|
-
*/
|
|
8091
|
-
function buildGraph (nodes, version) {
|
|
8092
|
-
const table = {};
|
|
8093
|
-
const graph = { start: {} };
|
|
8094
|
-
let prevNodeIds = ['start'];
|
|
8095
|
-
|
|
8096
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
8097
|
-
const nodeGroup = nodes[i];
|
|
8098
|
-
const currentNodeIds = [];
|
|
8099
|
-
|
|
8100
|
-
for (let j = 0; j < nodeGroup.length; j++) {
|
|
8101
|
-
const node = nodeGroup[j];
|
|
8102
|
-
const key = '' + i + j;
|
|
8103
|
-
|
|
8104
|
-
currentNodeIds.push(key);
|
|
8105
|
-
table[key] = { node: node, lastCount: 0 };
|
|
8106
|
-
graph[key] = {};
|
|
8107
|
-
|
|
8108
|
-
for (let n = 0; n < prevNodeIds.length; n++) {
|
|
8109
|
-
const prevNodeId = prevNodeIds[n];
|
|
8110
|
-
|
|
8111
|
-
if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {
|
|
8112
|
-
graph[prevNodeId][key] =
|
|
8113
|
-
getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -
|
|
8114
|
-
getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);
|
|
8115
|
-
|
|
8116
|
-
table[prevNodeId].lastCount += node.length;
|
|
8117
|
-
} else {
|
|
8118
|
-
if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;
|
|
8119
|
-
|
|
8120
|
-
graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +
|
|
8121
|
-
4 + mode.getCharCountIndicator(node.mode, version); // switch cost
|
|
8122
|
-
}
|
|
8123
|
-
}
|
|
8124
|
-
}
|
|
8125
|
-
|
|
8126
|
-
prevNodeIds = currentNodeIds;
|
|
8127
|
-
}
|
|
8128
|
-
|
|
8129
|
-
for (let n = 0; n < prevNodeIds.length; n++) {
|
|
8130
|
-
graph[prevNodeIds[n]].end = 0;
|
|
8131
|
-
}
|
|
8132
|
-
|
|
8133
|
-
return { map: graph, table: table }
|
|
8134
|
-
}
|
|
8135
|
-
|
|
8136
|
-
/**
|
|
8137
|
-
* Builds a segment from a specified data and mode.
|
|
8138
|
-
* If a mode is not specified, the more suitable will be used.
|
|
8139
|
-
*
|
|
8140
|
-
* @param {String} data Input data
|
|
8141
|
-
* @param {Mode | String} modesHint Data mode
|
|
8142
|
-
* @return {Segment} Segment
|
|
8143
|
-
*/
|
|
8144
|
-
function buildSingleSegment (data, modesHint) {
|
|
8145
|
-
let mode$1;
|
|
8146
|
-
const bestMode = mode.getBestModeForData(data);
|
|
8147
|
-
|
|
8148
|
-
mode$1 = mode.from(modesHint, bestMode);
|
|
8149
|
-
|
|
8150
|
-
// Make sure data can be encoded
|
|
8151
|
-
if (mode$1 !== mode.BYTE && mode$1.bit < bestMode.bit) {
|
|
8152
|
-
throw new Error('"' + data + '"' +
|
|
8153
|
-
' cannot be encoded with mode ' + mode.toString(mode$1) +
|
|
8154
|
-
'.\n Suggested mode is: ' + mode.toString(bestMode))
|
|
8155
|
-
}
|
|
8156
|
-
|
|
8157
|
-
// Use Mode.BYTE if Kanji support is disabled
|
|
8158
|
-
if (mode$1 === mode.KANJI && !utils$1.isKanjiModeEnabled()) {
|
|
8159
|
-
mode$1 = mode.BYTE;
|
|
8160
|
-
}
|
|
8161
|
-
|
|
8162
|
-
switch (mode$1) {
|
|
8163
|
-
case mode.NUMERIC:
|
|
8164
|
-
return new numericData(data)
|
|
8165
|
-
|
|
8166
|
-
case mode.ALPHANUMERIC:
|
|
8167
|
-
return new alphanumericData(data)
|
|
8168
|
-
|
|
8169
|
-
case mode.KANJI:
|
|
8170
|
-
return new kanjiData(data)
|
|
8171
|
-
|
|
8172
|
-
case mode.BYTE:
|
|
8173
|
-
return new byteData(data)
|
|
8174
|
-
}
|
|
8175
|
-
}
|
|
8176
|
-
|
|
8177
|
-
/**
|
|
8178
|
-
* Builds a list of segments from an array.
|
|
8179
|
-
* Array can contain Strings or Objects with segment's info.
|
|
8180
|
-
*
|
|
8181
|
-
* For each item which is a string, will be generated a segment with the given
|
|
8182
|
-
* string and the more appropriate encoding mode.
|
|
8183
|
-
*
|
|
8184
|
-
* For each item which is an object, will be generated a segment with the given
|
|
8185
|
-
* data and mode.
|
|
8186
|
-
* Objects must contain at least the property "data".
|
|
8187
|
-
* If property "mode" is not present, the more suitable mode will be used.
|
|
8188
|
-
*
|
|
8189
|
-
* @param {Array} array Array of objects with segments data
|
|
8190
|
-
* @return {Array} Array of Segments
|
|
8191
|
-
*/
|
|
8192
|
-
exports.fromArray = function fromArray (array) {
|
|
8193
|
-
return array.reduce(function (acc, seg) {
|
|
8194
|
-
if (typeof seg === 'string') {
|
|
8195
|
-
acc.push(buildSingleSegment(seg, null));
|
|
8196
|
-
} else if (seg.data) {
|
|
8197
|
-
acc.push(buildSingleSegment(seg.data, seg.mode));
|
|
8198
|
-
}
|
|
8199
|
-
|
|
8200
|
-
return acc
|
|
8201
|
-
}, [])
|
|
8202
|
-
};
|
|
8203
|
-
|
|
8204
|
-
/**
|
|
8205
|
-
* Builds an optimized sequence of segments from a string,
|
|
8206
|
-
* which will produce the shortest possible bitstream.
|
|
8207
|
-
*
|
|
8208
|
-
* @param {String} data Input string
|
|
8209
|
-
* @param {Number} version QR Code version
|
|
8210
|
-
* @return {Array} Array of segments
|
|
8211
|
-
*/
|
|
8212
|
-
exports.fromString = function fromString (data, version) {
|
|
8213
|
-
const segs = getSegmentsFromString(data, utils$1.isKanjiModeEnabled());
|
|
8214
|
-
|
|
8215
|
-
const nodes = buildNodes(segs);
|
|
8216
|
-
const graph = buildGraph(nodes, version);
|
|
8217
|
-
const path = dijkstra_1.find_path(graph.map, 'start', 'end');
|
|
8218
|
-
|
|
8219
|
-
const optimizedSegs = [];
|
|
8220
|
-
for (let i = 1; i < path.length - 1; i++) {
|
|
8221
|
-
optimizedSegs.push(graph.table[path[i]].node);
|
|
8222
|
-
}
|
|
8223
|
-
|
|
8224
|
-
return exports.fromArray(mergeSegments(optimizedSegs))
|
|
8225
|
-
};
|
|
8226
|
-
|
|
8227
|
-
/**
|
|
8228
|
-
* Splits a string in various segments with the modes which
|
|
8229
|
-
* best represent their content.
|
|
8230
|
-
* The produced segments are far from being optimized.
|
|
8231
|
-
* The output of this function is only used to estimate a QR Code version
|
|
8232
|
-
* which may contain the data.
|
|
8233
|
-
*
|
|
8234
|
-
* @param {string} data Input string
|
|
8235
|
-
* @return {Array} Array of segments
|
|
8236
|
-
*/
|
|
8237
|
-
exports.rawSplit = function rawSplit (data) {
|
|
8238
|
-
return exports.fromArray(
|
|
8239
|
-
getSegmentsFromString(data, utils$1.isKanjiModeEnabled())
|
|
8240
|
-
)
|
|
8241
|
-
};
|
|
8242
|
-
});
|
|
8243
|
-
|
|
8244
|
-
/**
|
|
8245
|
-
* QRCode for JavaScript
|
|
8246
|
-
*
|
|
8247
|
-
* modified by Ryan Day for nodejs support
|
|
8248
|
-
* Copyright (c) 2011 Ryan Day
|
|
8249
|
-
*
|
|
8250
|
-
* Licensed under the MIT license:
|
|
8251
|
-
* http://www.opensource.org/licenses/mit-license.php
|
|
8252
|
-
*
|
|
8253
|
-
//---------------------------------------------------------------------
|
|
8254
|
-
// QRCode for JavaScript
|
|
8255
|
-
//
|
|
8256
|
-
// Copyright (c) 2009 Kazuhiko Arase
|
|
8257
|
-
//
|
|
8258
|
-
// URL: http://www.d-project.com/
|
|
8259
|
-
//
|
|
8260
|
-
// Licensed under the MIT license:
|
|
8261
|
-
// http://www.opensource.org/licenses/mit-license.php
|
|
8262
|
-
//
|
|
8263
|
-
// The word "QR Code" is registered trademark of
|
|
8264
|
-
// DENSO WAVE INCORPORATED
|
|
8265
|
-
// http://www.denso-wave.com/qrcode/faqpatent-e.html
|
|
8266
|
-
//
|
|
8267
|
-
//---------------------------------------------------------------------
|
|
8268
|
-
*/
|
|
8269
|
-
|
|
8270
|
-
/**
|
|
8271
|
-
* Add finder patterns bits to matrix
|
|
8272
|
-
*
|
|
8273
|
-
* @param {BitMatrix} matrix Modules matrix
|
|
8274
|
-
* @param {Number} version QR Code version
|
|
8275
|
-
*/
|
|
8276
|
-
function setupFinderPattern (matrix, version) {
|
|
8277
|
-
const size = matrix.size;
|
|
8278
|
-
const pos = finderPattern.getPositions(version);
|
|
8279
|
-
|
|
8280
|
-
for (let i = 0; i < pos.length; i++) {
|
|
8281
|
-
const row = pos[i][0];
|
|
8282
|
-
const col = pos[i][1];
|
|
8283
|
-
|
|
8284
|
-
for (let r = -1; r <= 7; r++) {
|
|
8285
|
-
if (row + r <= -1 || size <= row + r) continue
|
|
8286
|
-
|
|
8287
|
-
for (let c = -1; c <= 7; c++) {
|
|
8288
|
-
if (col + c <= -1 || size <= col + c) continue
|
|
8289
|
-
|
|
8290
|
-
if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||
|
|
8291
|
-
(c >= 0 && c <= 6 && (r === 0 || r === 6)) ||
|
|
8292
|
-
(r >= 2 && r <= 4 && c >= 2 && c <= 4)) {
|
|
8293
|
-
matrix.set(row + r, col + c, true, true);
|
|
8294
|
-
} else {
|
|
8295
|
-
matrix.set(row + r, col + c, false, true);
|
|
8296
|
-
}
|
|
8297
|
-
}
|
|
8298
|
-
}
|
|
8299
|
-
}
|
|
8300
|
-
}
|
|
8301
|
-
|
|
8302
|
-
/**
|
|
8303
|
-
* Add timing pattern bits to matrix
|
|
8304
|
-
*
|
|
8305
|
-
* Note: this function must be called before {@link setupAlignmentPattern}
|
|
8306
|
-
*
|
|
8307
|
-
* @param {BitMatrix} matrix Modules matrix
|
|
8308
|
-
*/
|
|
8309
|
-
function setupTimingPattern (matrix) {
|
|
8310
|
-
const size = matrix.size;
|
|
8311
|
-
|
|
8312
|
-
for (let r = 8; r < size - 8; r++) {
|
|
8313
|
-
const value = r % 2 === 0;
|
|
8314
|
-
matrix.set(r, 6, value, true);
|
|
8315
|
-
matrix.set(6, r, value, true);
|
|
8316
|
-
}
|
|
8317
|
-
}
|
|
8318
|
-
|
|
8319
|
-
/**
|
|
8320
|
-
* Add alignment patterns bits to matrix
|
|
8321
|
-
*
|
|
8322
|
-
* Note: this function must be called after {@link setupTimingPattern}
|
|
8323
|
-
*
|
|
8324
|
-
* @param {BitMatrix} matrix Modules matrix
|
|
8325
|
-
* @param {Number} version QR Code version
|
|
8326
|
-
*/
|
|
8327
|
-
function setupAlignmentPattern (matrix, version) {
|
|
8328
|
-
const pos = alignmentPattern.getPositions(version);
|
|
8329
|
-
|
|
8330
|
-
for (let i = 0; i < pos.length; i++) {
|
|
8331
|
-
const row = pos[i][0];
|
|
8332
|
-
const col = pos[i][1];
|
|
8333
|
-
|
|
8334
|
-
for (let r = -2; r <= 2; r++) {
|
|
8335
|
-
for (let c = -2; c <= 2; c++) {
|
|
8336
|
-
if (r === -2 || r === 2 || c === -2 || c === 2 ||
|
|
8337
|
-
(r === 0 && c === 0)) {
|
|
8338
|
-
matrix.set(row + r, col + c, true, true);
|
|
8339
|
-
} else {
|
|
8340
|
-
matrix.set(row + r, col + c, false, true);
|
|
8341
|
-
}
|
|
8342
|
-
}
|
|
8343
|
-
}
|
|
8344
|
-
}
|
|
8345
|
-
}
|
|
8346
|
-
|
|
8347
|
-
/**
|
|
8348
|
-
* Add version info bits to matrix
|
|
8349
|
-
*
|
|
8350
|
-
* @param {BitMatrix} matrix Modules matrix
|
|
8351
|
-
* @param {Number} version QR Code version
|
|
8352
|
-
*/
|
|
8353
|
-
function setupVersionInfo (matrix, version$1) {
|
|
8354
|
-
const size = matrix.size;
|
|
8355
|
-
const bits = version.getEncodedBits(version$1);
|
|
8356
|
-
let row, col, mod;
|
|
8357
|
-
|
|
8358
|
-
for (let i = 0; i < 18; i++) {
|
|
8359
|
-
row = Math.floor(i / 3);
|
|
8360
|
-
col = i % 3 + size - 8 - 3;
|
|
8361
|
-
mod = ((bits >> i) & 1) === 1;
|
|
8362
|
-
|
|
8363
|
-
matrix.set(row, col, mod, true);
|
|
8364
|
-
matrix.set(col, row, mod, true);
|
|
8365
|
-
}
|
|
8366
|
-
}
|
|
8367
|
-
|
|
8368
|
-
/**
|
|
8369
|
-
* Add format info bits to matrix
|
|
8370
|
-
*
|
|
8371
|
-
* @param {BitMatrix} matrix Modules matrix
|
|
8372
|
-
* @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level
|
|
8373
|
-
* @param {Number} maskPattern Mask pattern reference value
|
|
8374
|
-
*/
|
|
8375
|
-
function setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {
|
|
8376
|
-
const size = matrix.size;
|
|
8377
|
-
const bits = formatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);
|
|
8378
|
-
let i, mod;
|
|
8379
|
-
|
|
8380
|
-
for (i = 0; i < 15; i++) {
|
|
8381
|
-
mod = ((bits >> i) & 1) === 1;
|
|
8382
|
-
|
|
8383
|
-
// vertical
|
|
8384
|
-
if (i < 6) {
|
|
8385
|
-
matrix.set(i, 8, mod, true);
|
|
8386
|
-
} else if (i < 8) {
|
|
8387
|
-
matrix.set(i + 1, 8, mod, true);
|
|
8388
|
-
} else {
|
|
8389
|
-
matrix.set(size - 15 + i, 8, mod, true);
|
|
8390
|
-
}
|
|
8391
|
-
|
|
8392
|
-
// horizontal
|
|
8393
|
-
if (i < 8) {
|
|
8394
|
-
matrix.set(8, size - i - 1, mod, true);
|
|
8395
|
-
} else if (i < 9) {
|
|
8396
|
-
matrix.set(8, 15 - i - 1 + 1, mod, true);
|
|
8397
|
-
} else {
|
|
8398
|
-
matrix.set(8, 15 - i - 1, mod, true);
|
|
8399
|
-
}
|
|
8400
|
-
}
|
|
8401
|
-
|
|
8402
|
-
// fixed module
|
|
8403
|
-
matrix.set(size - 8, 8, 1, true);
|
|
8404
|
-
}
|
|
8405
|
-
|
|
8406
|
-
/**
|
|
8407
|
-
* Add encoded data bits to matrix
|
|
8408
|
-
*
|
|
8409
|
-
* @param {BitMatrix} matrix Modules matrix
|
|
8410
|
-
* @param {Uint8Array} data Data codewords
|
|
8411
|
-
*/
|
|
8412
|
-
function setupData (matrix, data) {
|
|
8413
|
-
const size = matrix.size;
|
|
8414
|
-
let inc = -1;
|
|
8415
|
-
let row = size - 1;
|
|
8416
|
-
let bitIndex = 7;
|
|
8417
|
-
let byteIndex = 0;
|
|
8418
|
-
|
|
8419
|
-
for (let col = size - 1; col > 0; col -= 2) {
|
|
8420
|
-
if (col === 6) col--;
|
|
8421
|
-
|
|
8422
|
-
while (true) {
|
|
8423
|
-
for (let c = 0; c < 2; c++) {
|
|
8424
|
-
if (!matrix.isReserved(row, col - c)) {
|
|
8425
|
-
let dark = false;
|
|
8426
|
-
|
|
8427
|
-
if (byteIndex < data.length) {
|
|
8428
|
-
dark = (((data[byteIndex] >>> bitIndex) & 1) === 1);
|
|
8429
|
-
}
|
|
8430
|
-
|
|
8431
|
-
matrix.set(row, col - c, dark);
|
|
8432
|
-
bitIndex--;
|
|
8433
|
-
|
|
8434
|
-
if (bitIndex === -1) {
|
|
8435
|
-
byteIndex++;
|
|
8436
|
-
bitIndex = 7;
|
|
8437
|
-
}
|
|
8438
|
-
}
|
|
8439
|
-
}
|
|
8440
|
-
|
|
8441
|
-
row += inc;
|
|
8442
|
-
|
|
8443
|
-
if (row < 0 || size <= row) {
|
|
8444
|
-
row -= inc;
|
|
8445
|
-
inc = -inc;
|
|
8446
|
-
break
|
|
8447
|
-
}
|
|
8448
|
-
}
|
|
8449
|
-
}
|
|
8450
|
-
}
|
|
8451
|
-
|
|
8452
|
-
/**
|
|
8453
|
-
* Create encoded codewords from data input
|
|
8454
|
-
*
|
|
8455
|
-
* @param {Number} version QR Code version
|
|
8456
|
-
* @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level
|
|
8457
|
-
* @param {ByteData} data Data input
|
|
8458
|
-
* @return {Uint8Array} Buffer containing encoded codewords
|
|
8459
|
-
*/
|
|
8460
|
-
function createData (version, errorCorrectionLevel, segments) {
|
|
8461
|
-
// Prepare data buffer
|
|
8462
|
-
const buffer = new bitBuffer();
|
|
8463
|
-
|
|
8464
|
-
segments.forEach(function (data) {
|
|
8465
|
-
// prefix data with mode indicator (4 bits)
|
|
8466
|
-
buffer.put(data.mode.bit, 4);
|
|
8467
|
-
|
|
8468
|
-
// Prefix data with character count indicator.
|
|
8469
|
-
// The character count indicator is a string of bits that represents the
|
|
8470
|
-
// number of characters that are being encoded.
|
|
8471
|
-
// The character count indicator must be placed after the mode indicator
|
|
8472
|
-
// and must be a certain number of bits long, depending on the QR version
|
|
8473
|
-
// and data mode
|
|
8474
|
-
// @see {@link Mode.getCharCountIndicator}.
|
|
8475
|
-
buffer.put(data.getLength(), mode.getCharCountIndicator(data.mode, version));
|
|
8476
|
-
|
|
8477
|
-
// add binary data sequence to buffer
|
|
8478
|
-
data.write(buffer);
|
|
8479
|
-
});
|
|
8480
|
-
|
|
8481
|
-
// Calculate required number of bits
|
|
8482
|
-
const totalCodewords = utils$1.getSymbolTotalCodewords(version);
|
|
8483
|
-
const ecTotalCodewords = errorCorrectionCode.getTotalCodewordsCount(version, errorCorrectionLevel);
|
|
8484
|
-
const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;
|
|
8485
|
-
|
|
8486
|
-
// Add a terminator.
|
|
8487
|
-
// If the bit string is shorter than the total number of required bits,
|
|
8488
|
-
// a terminator of up to four 0s must be added to the right side of the string.
|
|
8489
|
-
// If the bit string is more than four bits shorter than the required number of bits,
|
|
8490
|
-
// add four 0s to the end.
|
|
8491
|
-
if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {
|
|
8492
|
-
buffer.put(0, 4);
|
|
8493
|
-
}
|
|
8494
|
-
|
|
8495
|
-
// If the bit string is fewer than four bits shorter, add only the number of 0s that
|
|
8496
|
-
// are needed to reach the required number of bits.
|
|
8497
|
-
|
|
8498
|
-
// After adding the terminator, if the number of bits in the string is not a multiple of 8,
|
|
8499
|
-
// pad the string on the right with 0s to make the string's length a multiple of 8.
|
|
8500
|
-
while (buffer.getLengthInBits() % 8 !== 0) {
|
|
8501
|
-
buffer.putBit(0);
|
|
8502
|
-
}
|
|
8503
|
-
|
|
8504
|
-
// Add pad bytes if the string is still shorter than the total number of required bits.
|
|
8505
|
-
// Extend the buffer to fill the data capacity of the symbol corresponding to
|
|
8506
|
-
// the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)
|
|
8507
|
-
// and 00010001 (0x11) alternately.
|
|
8508
|
-
const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;
|
|
8509
|
-
for (let i = 0; i < remainingByte; i++) {
|
|
8510
|
-
buffer.put(i % 2 ? 0x11 : 0xEC, 8);
|
|
8511
|
-
}
|
|
8512
|
-
|
|
8513
|
-
return createCodewords(buffer, version, errorCorrectionLevel)
|
|
8514
|
-
}
|
|
8515
|
-
|
|
8516
|
-
/**
|
|
8517
|
-
* Encode input data with Reed-Solomon and return codewords with
|
|
8518
|
-
* relative error correction bits
|
|
8519
|
-
*
|
|
8520
|
-
* @param {BitBuffer} bitBuffer Data to encode
|
|
8521
|
-
* @param {Number} version QR Code version
|
|
8522
|
-
* @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level
|
|
8523
|
-
* @return {Uint8Array} Buffer containing encoded codewords
|
|
8524
|
-
*/
|
|
8525
|
-
function createCodewords (bitBuffer, version, errorCorrectionLevel) {
|
|
8526
|
-
// Total codewords for this QR code version (Data + Error correction)
|
|
8527
|
-
const totalCodewords = utils$1.getSymbolTotalCodewords(version);
|
|
8528
|
-
|
|
8529
|
-
// Total number of error correction codewords
|
|
8530
|
-
const ecTotalCodewords = errorCorrectionCode.getTotalCodewordsCount(version, errorCorrectionLevel);
|
|
8531
|
-
|
|
8532
|
-
// Total number of data codewords
|
|
8533
|
-
const dataTotalCodewords = totalCodewords - ecTotalCodewords;
|
|
8534
|
-
|
|
8535
|
-
// Total number of blocks
|
|
8536
|
-
const ecTotalBlocks = errorCorrectionCode.getBlocksCount(version, errorCorrectionLevel);
|
|
8537
|
-
|
|
8538
|
-
// Calculate how many blocks each group should contain
|
|
8539
|
-
const blocksInGroup2 = totalCodewords % ecTotalBlocks;
|
|
8540
|
-
const blocksInGroup1 = ecTotalBlocks - blocksInGroup2;
|
|
8541
|
-
|
|
8542
|
-
const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);
|
|
8543
|
-
|
|
8544
|
-
const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);
|
|
8545
|
-
const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;
|
|
8546
|
-
|
|
8547
|
-
// Number of EC codewords is the same for both groups
|
|
8548
|
-
const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;
|
|
8549
|
-
|
|
8550
|
-
// Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount
|
|
8551
|
-
const rs = new reedSolomonEncoder(ecCount);
|
|
8552
|
-
|
|
8553
|
-
let offset = 0;
|
|
8554
|
-
const dcData = new Array(ecTotalBlocks);
|
|
8555
|
-
const ecData = new Array(ecTotalBlocks);
|
|
8556
|
-
let maxDataSize = 0;
|
|
8557
|
-
const buffer = new Uint8Array(bitBuffer.buffer);
|
|
8558
|
-
|
|
8559
|
-
// Divide the buffer into the required number of blocks
|
|
8560
|
-
for (let b = 0; b < ecTotalBlocks; b++) {
|
|
8561
|
-
const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;
|
|
8562
|
-
|
|
8563
|
-
// extract a block of data from buffer
|
|
8564
|
-
dcData[b] = buffer.slice(offset, offset + dataSize);
|
|
8565
|
-
|
|
8566
|
-
// Calculate EC codewords for this data block
|
|
8567
|
-
ecData[b] = rs.encode(dcData[b]);
|
|
8568
|
-
|
|
8569
|
-
offset += dataSize;
|
|
8570
|
-
maxDataSize = Math.max(maxDataSize, dataSize);
|
|
8571
|
-
}
|
|
8572
|
-
|
|
8573
|
-
// Create final data
|
|
8574
|
-
// Interleave the data and error correction codewords from each block
|
|
8575
|
-
const data = new Uint8Array(totalCodewords);
|
|
8576
|
-
let index = 0;
|
|
8577
|
-
let i, r;
|
|
8578
|
-
|
|
8579
|
-
// Add data codewords
|
|
8580
|
-
for (i = 0; i < maxDataSize; i++) {
|
|
8581
|
-
for (r = 0; r < ecTotalBlocks; r++) {
|
|
8582
|
-
if (i < dcData[r].length) {
|
|
8583
|
-
data[index++] = dcData[r][i];
|
|
8584
|
-
}
|
|
8585
|
-
}
|
|
8586
|
-
}
|
|
8587
|
-
|
|
8588
|
-
// Apped EC codewords
|
|
8589
|
-
for (i = 0; i < ecCount; i++) {
|
|
8590
|
-
for (r = 0; r < ecTotalBlocks; r++) {
|
|
8591
|
-
data[index++] = ecData[r][i];
|
|
8592
|
-
}
|
|
8593
|
-
}
|
|
8594
|
-
|
|
8595
|
-
return data
|
|
8596
|
-
}
|
|
8597
|
-
|
|
8598
|
-
/**
|
|
8599
|
-
* Build QR Code symbol
|
|
8600
|
-
*
|
|
8601
|
-
* @param {String} data Input string
|
|
8602
|
-
* @param {Number} version QR Code version
|
|
8603
|
-
* @param {ErrorCorretionLevel} errorCorrectionLevel Error level
|
|
8604
|
-
* @param {MaskPattern} maskPattern Mask pattern
|
|
8605
|
-
* @return {Object} Object containing symbol data
|
|
8606
|
-
*/
|
|
8607
|
-
function createSymbol (data, version$1, errorCorrectionLevel, maskPattern$1) {
|
|
8608
|
-
let segments$1;
|
|
8609
|
-
|
|
8610
|
-
if (Array.isArray(data)) {
|
|
8611
|
-
segments$1 = segments.fromArray(data);
|
|
8612
|
-
} else if (typeof data === 'string') {
|
|
8613
|
-
let estimatedVersion = version$1;
|
|
8614
|
-
|
|
8615
|
-
if (!estimatedVersion) {
|
|
8616
|
-
const rawSegments = segments.rawSplit(data);
|
|
8617
|
-
|
|
8618
|
-
// Estimate best version that can contain raw splitted segments
|
|
8619
|
-
estimatedVersion = version.getBestVersionForData(rawSegments, errorCorrectionLevel);
|
|
8620
|
-
}
|
|
8621
|
-
|
|
8622
|
-
// Build optimized segments
|
|
8623
|
-
// If estimated version is undefined, try with the highest version
|
|
8624
|
-
segments$1 = segments.fromString(data, estimatedVersion || 40);
|
|
8625
|
-
} else {
|
|
8626
|
-
throw new Error('Invalid data')
|
|
8627
|
-
}
|
|
8628
|
-
|
|
8629
|
-
// Get the min version that can contain data
|
|
8630
|
-
const bestVersion = version.getBestVersionForData(segments$1, errorCorrectionLevel);
|
|
8631
|
-
|
|
8632
|
-
// If no version is found, data cannot be stored
|
|
8633
|
-
if (!bestVersion) {
|
|
8634
|
-
throw new Error('The amount of data is too big to be stored in a QR Code')
|
|
8635
|
-
}
|
|
8636
|
-
|
|
8637
|
-
// If not specified, use min version as default
|
|
8638
|
-
if (!version$1) {
|
|
8639
|
-
version$1 = bestVersion;
|
|
8640
|
-
|
|
8641
|
-
// Check if the specified version can contain the data
|
|
8642
|
-
} else if (version$1 < bestVersion) {
|
|
8643
|
-
throw new Error('\n' +
|
|
8644
|
-
'The chosen QR Code version cannot contain this amount of data.\n' +
|
|
8645
|
-
'Minimum version required to store current data is: ' + bestVersion + '.\n'
|
|
8646
|
-
)
|
|
8647
|
-
}
|
|
8648
|
-
|
|
8649
|
-
const dataBits = createData(version$1, errorCorrectionLevel, segments$1);
|
|
8650
|
-
|
|
8651
|
-
// Allocate matrix buffer
|
|
8652
|
-
const moduleCount = utils$1.getSymbolSize(version$1);
|
|
8653
|
-
const modules = new bitMatrix(moduleCount);
|
|
8654
|
-
|
|
8655
|
-
// Add function modules
|
|
8656
|
-
setupFinderPattern(modules, version$1);
|
|
8657
|
-
setupTimingPattern(modules);
|
|
8658
|
-
setupAlignmentPattern(modules, version$1);
|
|
8659
|
-
|
|
8660
|
-
// Add temporary dummy bits for format info just to set them as reserved.
|
|
8661
|
-
// This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}
|
|
8662
|
-
// since the masking operation must be performed only on the encoding region.
|
|
8663
|
-
// These blocks will be replaced with correct values later in code.
|
|
8664
|
-
setupFormatInfo(modules, errorCorrectionLevel, 0);
|
|
8665
|
-
|
|
8666
|
-
if (version$1 >= 7) {
|
|
8667
|
-
setupVersionInfo(modules, version$1);
|
|
8668
|
-
}
|
|
8669
|
-
|
|
8670
|
-
// Add data codewords
|
|
8671
|
-
setupData(modules, dataBits);
|
|
8672
|
-
|
|
8673
|
-
if (isNaN(maskPattern$1)) {
|
|
8674
|
-
// Find best mask pattern
|
|
8675
|
-
maskPattern$1 = maskPattern.getBestMask(modules,
|
|
8676
|
-
setupFormatInfo.bind(null, modules, errorCorrectionLevel));
|
|
8677
|
-
}
|
|
8678
|
-
|
|
8679
|
-
// Apply mask pattern
|
|
8680
|
-
maskPattern.applyMask(maskPattern$1, modules);
|
|
8681
|
-
|
|
8682
|
-
// Replace format info bits with correct values
|
|
8683
|
-
setupFormatInfo(modules, errorCorrectionLevel, maskPattern$1);
|
|
8684
|
-
|
|
8685
|
-
return {
|
|
8686
|
-
modules: modules,
|
|
8687
|
-
version: version$1,
|
|
8688
|
-
errorCorrectionLevel: errorCorrectionLevel,
|
|
8689
|
-
maskPattern: maskPattern$1,
|
|
8690
|
-
segments: segments$1
|
|
8691
|
-
}
|
|
8692
|
-
}
|
|
8693
|
-
|
|
8694
|
-
/**
|
|
8695
|
-
* QR Code
|
|
8696
|
-
*
|
|
8697
|
-
* @param {String | Array} data Input data
|
|
8698
|
-
* @param {Object} options Optional configurations
|
|
8699
|
-
* @param {Number} options.version QR Code version
|
|
8700
|
-
* @param {String} options.errorCorrectionLevel Error correction level
|
|
8701
|
-
* @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis
|
|
8702
|
-
*/
|
|
8703
|
-
var create$1 = function create (data, options) {
|
|
8704
|
-
if (typeof data === 'undefined' || data === '') {
|
|
8705
|
-
throw new Error('No input text')
|
|
8706
|
-
}
|
|
8707
|
-
|
|
8708
|
-
let errorCorrectionLevel$1 = errorCorrectionLevel.M;
|
|
8709
|
-
let version$1;
|
|
8710
|
-
let mask;
|
|
8711
|
-
|
|
8712
|
-
if (typeof options !== 'undefined') {
|
|
8713
|
-
// Use higher error correction level as default
|
|
8714
|
-
errorCorrectionLevel$1 = errorCorrectionLevel.from(options.errorCorrectionLevel, errorCorrectionLevel.M);
|
|
8715
|
-
version$1 = version.from(options.version);
|
|
8716
|
-
mask = maskPattern.from(options.maskPattern);
|
|
8717
|
-
|
|
8718
|
-
if (options.toSJISFunc) {
|
|
8719
|
-
utils$1.setToSJISFunction(options.toSJISFunc);
|
|
8720
|
-
}
|
|
8721
|
-
}
|
|
8722
|
-
|
|
8723
|
-
return createSymbol(data, version$1, errorCorrectionLevel$1, mask)
|
|
8724
|
-
};
|
|
8725
|
-
|
|
8726
|
-
var qrcode = {
|
|
8727
|
-
create: create$1
|
|
8728
|
-
};
|
|
8729
|
-
|
|
8730
|
-
var utils = createCommonjsModule(function (module, exports) {
|
|
8731
|
-
function hex2rgba (hex) {
|
|
8732
|
-
if (typeof hex === 'number') {
|
|
8733
|
-
hex = hex.toString();
|
|
8734
|
-
}
|
|
8735
|
-
|
|
8736
|
-
if (typeof hex !== 'string') {
|
|
8737
|
-
throw new Error('Color should be defined as hex string')
|
|
8738
|
-
}
|
|
8739
|
-
|
|
8740
|
-
let hexCode = hex.slice().replace('#', '').split('');
|
|
8741
|
-
if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {
|
|
8742
|
-
throw new Error('Invalid hex color: ' + hex)
|
|
8743
|
-
}
|
|
8744
|
-
|
|
8745
|
-
// Convert from short to long form (fff -> ffffff)
|
|
8746
|
-
if (hexCode.length === 3 || hexCode.length === 4) {
|
|
8747
|
-
hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {
|
|
8748
|
-
return [c, c]
|
|
8749
|
-
}));
|
|
8750
|
-
}
|
|
8751
|
-
|
|
8752
|
-
// Add default alpha value
|
|
8753
|
-
if (hexCode.length === 6) hexCode.push('F', 'F');
|
|
8754
|
-
|
|
8755
|
-
const hexValue = parseInt(hexCode.join(''), 16);
|
|
8756
|
-
|
|
8757
|
-
return {
|
|
8758
|
-
r: (hexValue >> 24) & 255,
|
|
8759
|
-
g: (hexValue >> 16) & 255,
|
|
8760
|
-
b: (hexValue >> 8) & 255,
|
|
8761
|
-
a: hexValue & 255,
|
|
8762
|
-
hex: '#' + hexCode.slice(0, 6).join('')
|
|
8763
|
-
}
|
|
8764
|
-
}
|
|
8765
|
-
|
|
8766
|
-
exports.getOptions = function getOptions (options) {
|
|
8767
|
-
if (!options) options = {};
|
|
8768
|
-
if (!options.color) options.color = {};
|
|
8769
|
-
|
|
8770
|
-
const margin = typeof options.margin === 'undefined' ||
|
|
8771
|
-
options.margin === null ||
|
|
8772
|
-
options.margin < 0
|
|
8773
|
-
? 4
|
|
8774
|
-
: options.margin;
|
|
8775
|
-
|
|
8776
|
-
const width = options.width && options.width >= 21 ? options.width : undefined;
|
|
8777
|
-
const scale = options.scale || 4;
|
|
8778
|
-
|
|
8779
|
-
return {
|
|
8780
|
-
width: width,
|
|
8781
|
-
scale: width ? 4 : scale,
|
|
8782
|
-
margin: margin,
|
|
8783
|
-
color: {
|
|
8784
|
-
dark: hex2rgba(options.color.dark || '#000000ff'),
|
|
8785
|
-
light: hex2rgba(options.color.light || '#ffffffff')
|
|
8786
|
-
},
|
|
8787
|
-
type: options.type,
|
|
8788
|
-
rendererOpts: options.rendererOpts || {}
|
|
8789
|
-
}
|
|
8790
|
-
};
|
|
8791
|
-
|
|
8792
|
-
exports.getScale = function getScale (qrSize, opts) {
|
|
8793
|
-
return opts.width && opts.width >= qrSize + opts.margin * 2
|
|
8794
|
-
? opts.width / (qrSize + opts.margin * 2)
|
|
8795
|
-
: opts.scale
|
|
8796
|
-
};
|
|
8797
|
-
|
|
8798
|
-
exports.getImageWidth = function getImageWidth (qrSize, opts) {
|
|
8799
|
-
const scale = exports.getScale(qrSize, opts);
|
|
8800
|
-
return Math.floor((qrSize + opts.margin * 2) * scale)
|
|
8801
|
-
};
|
|
8802
|
-
|
|
8803
|
-
exports.qrToImageData = function qrToImageData (imgData, qr, opts) {
|
|
8804
|
-
const size = qr.modules.size;
|
|
8805
|
-
const data = qr.modules.data;
|
|
8806
|
-
const scale = exports.getScale(size, opts);
|
|
8807
|
-
const symbolSize = Math.floor((size + opts.margin * 2) * scale);
|
|
8808
|
-
const scaledMargin = opts.margin * scale;
|
|
8809
|
-
const palette = [opts.color.light, opts.color.dark];
|
|
8810
|
-
|
|
8811
|
-
for (let i = 0; i < symbolSize; i++) {
|
|
8812
|
-
for (let j = 0; j < symbolSize; j++) {
|
|
8813
|
-
let posDst = (i * symbolSize + j) * 4;
|
|
8814
|
-
let pxColor = opts.color.light;
|
|
8815
|
-
|
|
8816
|
-
if (i >= scaledMargin && j >= scaledMargin &&
|
|
8817
|
-
i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {
|
|
8818
|
-
const iSrc = Math.floor((i - scaledMargin) / scale);
|
|
8819
|
-
const jSrc = Math.floor((j - scaledMargin) / scale);
|
|
8820
|
-
pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];
|
|
8821
|
-
}
|
|
8822
|
-
|
|
8823
|
-
imgData[posDst++] = pxColor.r;
|
|
8824
|
-
imgData[posDst++] = pxColor.g;
|
|
8825
|
-
imgData[posDst++] = pxColor.b;
|
|
8826
|
-
imgData[posDst] = pxColor.a;
|
|
8827
|
-
}
|
|
8828
|
-
}
|
|
8829
|
-
};
|
|
8830
|
-
});
|
|
8831
|
-
|
|
8832
|
-
var canvas = createCommonjsModule(function (module, exports) {
|
|
8833
|
-
function clearCanvas (ctx, canvas, size) {
|
|
8834
|
-
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
8835
|
-
|
|
8836
|
-
if (!canvas.style) canvas.style = {};
|
|
8837
|
-
canvas.height = size;
|
|
8838
|
-
canvas.width = size;
|
|
8839
|
-
canvas.style.height = size + 'px';
|
|
8840
|
-
canvas.style.width = size + 'px';
|
|
8841
|
-
}
|
|
8842
|
-
|
|
8843
|
-
function getCanvasElement () {
|
|
8844
|
-
try {
|
|
8845
|
-
return document.createElement('canvas')
|
|
8846
|
-
} catch (e) {
|
|
8847
|
-
throw new Error('You need to specify a canvas element')
|
|
8848
|
-
}
|
|
8849
|
-
}
|
|
8850
|
-
|
|
8851
|
-
exports.render = function render (qrData, canvas, options) {
|
|
8852
|
-
let opts = options;
|
|
8853
|
-
let canvasEl = canvas;
|
|
8854
|
-
|
|
8855
|
-
if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {
|
|
8856
|
-
opts = canvas;
|
|
8857
|
-
canvas = undefined;
|
|
8858
|
-
}
|
|
8859
|
-
|
|
8860
|
-
if (!canvas) {
|
|
8861
|
-
canvasEl = getCanvasElement();
|
|
8862
|
-
}
|
|
8863
|
-
|
|
8864
|
-
opts = utils.getOptions(opts);
|
|
8865
|
-
const size = utils.getImageWidth(qrData.modules.size, opts);
|
|
8866
|
-
|
|
8867
|
-
const ctx = canvasEl.getContext('2d');
|
|
8868
|
-
const image = ctx.createImageData(size, size);
|
|
8869
|
-
utils.qrToImageData(image.data, qrData, opts);
|
|
8870
|
-
|
|
8871
|
-
clearCanvas(ctx, canvasEl, size);
|
|
8872
|
-
ctx.putImageData(image, 0, 0);
|
|
8873
|
-
|
|
8874
|
-
return canvasEl
|
|
8875
|
-
};
|
|
8876
|
-
|
|
8877
|
-
exports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {
|
|
8878
|
-
let opts = options;
|
|
8879
|
-
|
|
8880
|
-
if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {
|
|
8881
|
-
opts = canvas;
|
|
8882
|
-
canvas = undefined;
|
|
8883
|
-
}
|
|
8884
|
-
|
|
8885
|
-
if (!opts) opts = {};
|
|
8886
|
-
|
|
8887
|
-
const canvasEl = exports.render(qrData, canvas, opts);
|
|
8888
|
-
|
|
8889
|
-
const type = opts.type || 'image/png';
|
|
8890
|
-
const rendererOpts = opts.rendererOpts || {};
|
|
8891
|
-
|
|
8892
|
-
return canvasEl.toDataURL(type, rendererOpts.quality)
|
|
8893
|
-
};
|
|
8894
|
-
});
|
|
8895
|
-
|
|
8896
|
-
function getColorAttrib (color, attrib) {
|
|
8897
|
-
const alpha = color.a / 255;
|
|
8898
|
-
const str = attrib + '="' + color.hex + '"';
|
|
8899
|
-
|
|
8900
|
-
return alpha < 1
|
|
8901
|
-
? str + ' ' + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"'
|
|
8902
|
-
: str
|
|
8903
|
-
}
|
|
8904
|
-
|
|
8905
|
-
function svgCmd (cmd, x, y) {
|
|
8906
|
-
let str = cmd + x;
|
|
8907
|
-
if (typeof y !== 'undefined') str += ' ' + y;
|
|
8908
|
-
|
|
8909
|
-
return str
|
|
8910
|
-
}
|
|
8911
|
-
|
|
8912
|
-
function qrToPath (data, size, margin) {
|
|
8913
|
-
let path = '';
|
|
8914
|
-
let moveBy = 0;
|
|
8915
|
-
let newRow = false;
|
|
8916
|
-
let lineLength = 0;
|
|
8917
|
-
|
|
8918
|
-
for (let i = 0; i < data.length; i++) {
|
|
8919
|
-
const col = Math.floor(i % size);
|
|
8920
|
-
const row = Math.floor(i / size);
|
|
8921
|
-
|
|
8922
|
-
if (!col && !newRow) newRow = true;
|
|
8923
|
-
|
|
8924
|
-
if (data[i]) {
|
|
8925
|
-
lineLength++;
|
|
8926
|
-
|
|
8927
|
-
if (!(i > 0 && col > 0 && data[i - 1])) {
|
|
8928
|
-
path += newRow
|
|
8929
|
-
? svgCmd('M', col + margin, 0.5 + row + margin)
|
|
8930
|
-
: svgCmd('m', moveBy, 0);
|
|
8931
|
-
|
|
8932
|
-
moveBy = 0;
|
|
8933
|
-
newRow = false;
|
|
8934
|
-
}
|
|
8935
|
-
|
|
8936
|
-
if (!(col + 1 < size && data[i + 1])) {
|
|
8937
|
-
path += svgCmd('h', lineLength);
|
|
8938
|
-
lineLength = 0;
|
|
8939
|
-
}
|
|
8940
|
-
} else {
|
|
8941
|
-
moveBy++;
|
|
8942
|
-
}
|
|
8943
|
-
}
|
|
8944
|
-
|
|
8945
|
-
return path
|
|
8946
|
-
}
|
|
8947
|
-
|
|
8948
|
-
var render = function render (qrData, options, cb) {
|
|
8949
|
-
const opts = utils.getOptions(options);
|
|
8950
|
-
const size = qrData.modules.size;
|
|
8951
|
-
const data = qrData.modules.data;
|
|
8952
|
-
const qrcodesize = size + opts.margin * 2;
|
|
8953
|
-
|
|
8954
|
-
const bg = !opts.color.light.a
|
|
8955
|
-
? ''
|
|
8956
|
-
: '<path ' + getColorAttrib(opts.color.light, 'fill') +
|
|
8957
|
-
' d="M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z"/>';
|
|
8958
|
-
|
|
8959
|
-
const path =
|
|
8960
|
-
'<path ' + getColorAttrib(opts.color.dark, 'stroke') +
|
|
8961
|
-
' d="' + qrToPath(data, size, opts.margin) + '"/>';
|
|
8962
|
-
|
|
8963
|
-
const viewBox = 'viewBox="' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '"';
|
|
8964
|
-
|
|
8965
|
-
const width = !opts.width ? '' : 'width="' + opts.width + '" height="' + opts.width + '" ';
|
|
8966
|
-
|
|
8967
|
-
const svgTag = '<svg xmlns="http://www.w3.org/2000/svg" ' + width + viewBox + ' shape-rendering="crispEdges">' + bg + path + '</svg>\n';
|
|
8968
|
-
|
|
8969
|
-
if (typeof cb === 'function') {
|
|
8970
|
-
cb(null, svgTag);
|
|
8971
|
-
}
|
|
8972
|
-
|
|
8973
|
-
return svgTag
|
|
8974
|
-
};
|
|
8975
|
-
|
|
8976
|
-
var svgTag = {
|
|
8977
|
-
render: render
|
|
8978
|
-
};
|
|
8979
|
-
|
|
8980
|
-
function renderCanvas (renderFunc, canvas, text, opts, cb) {
|
|
8981
|
-
const args = [].slice.call(arguments, 1);
|
|
8982
|
-
const argsNum = args.length;
|
|
8983
|
-
const isLastArgCb = typeof args[argsNum - 1] === 'function';
|
|
8984
|
-
|
|
8985
|
-
if (!isLastArgCb && !canPromise()) {
|
|
8986
|
-
throw new Error('Callback required as last argument')
|
|
8987
|
-
}
|
|
8988
|
-
|
|
8989
|
-
if (isLastArgCb) {
|
|
8990
|
-
if (argsNum < 2) {
|
|
8991
|
-
throw new Error('Too few arguments provided')
|
|
8992
|
-
}
|
|
8993
|
-
|
|
8994
|
-
if (argsNum === 2) {
|
|
8995
|
-
cb = text;
|
|
8996
|
-
text = canvas;
|
|
8997
|
-
canvas = opts = undefined;
|
|
8998
|
-
} else if (argsNum === 3) {
|
|
8999
|
-
if (canvas.getContext && typeof cb === 'undefined') {
|
|
9000
|
-
cb = opts;
|
|
9001
|
-
opts = undefined;
|
|
9002
|
-
} else {
|
|
9003
|
-
cb = opts;
|
|
9004
|
-
opts = text;
|
|
9005
|
-
text = canvas;
|
|
9006
|
-
canvas = undefined;
|
|
9007
|
-
}
|
|
9008
|
-
}
|
|
9009
|
-
} else {
|
|
9010
|
-
if (argsNum < 1) {
|
|
9011
|
-
throw new Error('Too few arguments provided')
|
|
9012
|
-
}
|
|
9013
|
-
|
|
9014
|
-
if (argsNum === 1) {
|
|
9015
|
-
text = canvas;
|
|
9016
|
-
canvas = opts = undefined;
|
|
9017
|
-
} else if (argsNum === 2 && !canvas.getContext) {
|
|
9018
|
-
opts = text;
|
|
9019
|
-
text = canvas;
|
|
9020
|
-
canvas = undefined;
|
|
9021
|
-
}
|
|
9022
|
-
|
|
9023
|
-
return new Promise(function (resolve, reject) {
|
|
9024
|
-
try {
|
|
9025
|
-
const data = qrcode.create(text, opts);
|
|
9026
|
-
resolve(renderFunc(data, canvas, opts));
|
|
9027
|
-
} catch (e) {
|
|
9028
|
-
reject(e);
|
|
9029
|
-
}
|
|
9030
|
-
})
|
|
9031
|
-
}
|
|
9032
|
-
|
|
9033
|
-
try {
|
|
9034
|
-
const data = qrcode.create(text, opts);
|
|
9035
|
-
cb(null, renderFunc(data, canvas, opts));
|
|
9036
|
-
} catch (e) {
|
|
9037
|
-
cb(e);
|
|
9038
|
-
}
|
|
9039
|
-
}
|
|
9040
|
-
|
|
9041
|
-
var create = qrcode.create;
|
|
9042
|
-
var toCanvas = renderCanvas.bind(null, canvas.render);
|
|
9043
|
-
var toDataURL = renderCanvas.bind(null, canvas.renderToDataURL);
|
|
9044
|
-
|
|
9045
|
-
// only svg for now.
|
|
9046
|
-
var toString_1 = renderCanvas.bind(null, function (data, _, opts) {
|
|
9047
|
-
return svgTag.render(data, opts)
|
|
9048
|
-
});
|
|
9049
|
-
|
|
9050
|
-
var browser = {
|
|
9051
|
-
create: create,
|
|
9052
|
-
toCanvas: toCanvas,
|
|
9053
|
-
toDataURL: toDataURL,
|
|
9054
|
-
toString: toString_1
|
|
9055
|
-
};
|
|
9056
|
-
|
|
9057
|
-
const mobileRedirectCss = ".qr-canvas{max-height:60vh;max-width:80vw;text-align:center}.qr-canvas>canvas{width:100%;height:100%}";
|
|
9058
|
-
|
|
9059
|
-
const MobileRedirect = class {
|
|
9060
|
-
constructor(hostRef) {
|
|
9061
|
-
index.registerInstance(this, hostRef);
|
|
9062
|
-
this.apiErrorEvent = index.createEvent(this, "apiError", 7);
|
|
9063
|
-
this.delay = ms => new Promise(res => setTimeout(res, ms));
|
|
9064
|
-
this.infoTextTop = undefined;
|
|
9065
|
-
this.infoTextBottom = undefined;
|
|
9066
|
-
this.contact = undefined;
|
|
9067
|
-
this.invalidValue = undefined;
|
|
9068
|
-
this.waitingMobile = undefined;
|
|
9069
|
-
this.orderStatus = undefined;
|
|
9070
|
-
this.redirectLink = undefined;
|
|
9071
|
-
this.qrCode = undefined;
|
|
9072
|
-
this.apiCall = new ApiCall();
|
|
9073
|
-
this.invalidValue = false;
|
|
9074
|
-
this.waitingMobile = false;
|
|
9075
|
-
}
|
|
9076
|
-
async componentWillLoad() {
|
|
9077
|
-
this.infoTextTop = MobileRedirectValues.InfoTop;
|
|
9078
|
-
this.infoTextBottom = MobileRedirectValues.InfoBottom;
|
|
9079
|
-
let envUri = state.environment == 'PROD' ? 'ect' : 'test';
|
|
9080
|
-
let baseUri = state.hasIdBack ? 'https://onmd.id-kyc.com/' : 'https://onro.id-kyc.com/';
|
|
9081
|
-
this.redirectLink = baseUri + envUri + '?redirectId=' + state.redirectId;
|
|
9082
|
-
var self = this;
|
|
9083
|
-
browser.toDataURL(this.redirectLink, { type: 'image/png', errorCorrectionLevel: 'M', scale: 6 }, function (error, url) {
|
|
9084
|
-
if (error)
|
|
9085
|
-
console.error(error);
|
|
9086
|
-
self.qrCode = url;
|
|
9087
|
-
});
|
|
9088
|
-
}
|
|
9089
|
-
componentWillRender() { }
|
|
9090
|
-
async componentDidLoad() {
|
|
9091
|
-
await this.delay(5000);
|
|
9092
|
-
await this.checkStatus();
|
|
9093
|
-
while (this.orderStatus == OrderStatuses.Capturing || this.orderStatus == OrderStatuses.Waiting) {
|
|
9094
|
-
await this.checkStatus();
|
|
9095
|
-
await this.delay(5000);
|
|
9096
|
-
}
|
|
9097
|
-
}
|
|
9098
|
-
async checkStatus() {
|
|
9099
|
-
this.orderStatus = await this.apiCall.GetStatus(state.requestId);
|
|
9100
|
-
if (this.orderStatus == OrderStatuses.FinishedCapturing) {
|
|
9101
|
-
this.waitingMobile = false;
|
|
9102
|
-
state.flowStatus = FlowStatus.COMPLETE;
|
|
9103
|
-
}
|
|
9104
|
-
if (this.orderStatus == OrderStatuses.NotFound) {
|
|
9105
|
-
this.apiErrorEvent.emit('No order was started for this process.');
|
|
9106
|
-
}
|
|
9107
|
-
if (this.orderStatus == OrderStatuses.Capturing) {
|
|
9108
|
-
this.infoTextTop = MobileRedirectValues.InfoWaiting;
|
|
9109
|
-
this.waitingMobile = true;
|
|
9110
|
-
}
|
|
9111
|
-
}
|
|
9112
|
-
async buttonClick() {
|
|
9113
|
-
if (this.contact == '' || this.contact.length != 10) {
|
|
9114
|
-
return;
|
|
9115
|
-
}
|
|
9116
|
-
this.waitingMobile = true;
|
|
9117
|
-
this.infoTextTop = MobileRedirectValues.InfoWaiting;
|
|
9118
|
-
await this.apiCall.SendLink(this.redirectLink, this.contact);
|
|
9119
|
-
}
|
|
9120
|
-
handleChangeContact(ev) {
|
|
9121
|
-
let value = ev.target ? ev.target.value : '';
|
|
9122
|
-
this.contact = value.replace(/\D/g, '');
|
|
9123
|
-
if (this.contact.length > 10) {
|
|
9124
|
-
this.contact = this.contact.substring(0, 10);
|
|
9125
|
-
}
|
|
9126
|
-
else if (this.contact.length == 10) {
|
|
9127
|
-
this.invalidValue = false;
|
|
9128
|
-
}
|
|
9129
|
-
ev.target.value = this.contact;
|
|
9130
|
-
}
|
|
9131
|
-
render() {
|
|
9132
|
-
return (index.h("div", { class: "container" }, index.h("div", { class: "row" }, index.h("div", { hidden: this.waitingMobile }, index.h("div", { class: "text-center" }, index.h("p", { class: "font-size-2" }, this.infoTextTop)), index.h("div", { class: "qr-canvas align-center" }, index.h("img", { src: this.qrCode })), index.h("div", { class: "text-center" }, index.h("p", { class: "font-size-2" }, this.infoTextBottom)), index.h("div", { class: "input-container mb-15" }, index.h("label", { class: "font-size-18 mb-1 color-red", hidden: this.invalidValue == false }, index.h("b", null, MobileRedirectValues.Validation)), index.h("input", { type: "text", id: "codeInput", class: "main-input", value: this.contact, onInput: ev => this.handleChangeContact(ev) })), index.h("div", { class: "pos-relative" }, index.h("div", { class: "btn-buletin" }, index.h("button", { class: "main-button", onClick: () => this.buttonClick() }, "Trimite"), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, MobileRedirectValues.FooterText)))), index.h("div", { hidden: this.waitingMobile == false }, index.h("div", { class: "text-center" }, index.h("p", { class: "font-size-2" }, this.infoTextTop))))));
|
|
9133
|
-
}
|
|
9134
|
-
};
|
|
9135
|
-
MobileRedirect.style = mobileRedirectCss;
|
|
9136
|
-
|
|
9137
|
-
const selfieCaptureCss = "";
|
|
9138
|
-
|
|
9139
|
-
const SelfieCapture = class {
|
|
9140
|
-
// @State() private animationPath: string;
|
|
9141
|
-
constructor(hostRef) {
|
|
9142
|
-
index.registerInstance(this, hostRef);
|
|
9143
|
-
this.eventPhotoCapture = index.createEvent(this, "photoSelfieCapture", 7);
|
|
9144
|
-
this.delay = ms => new Promise(res => setTimeout(res, ms));
|
|
9145
|
-
this.photoIsReady = photos => {
|
|
9146
|
-
//this.closeCamera();
|
|
9147
|
-
this.eventPhotoCapture.emit(photos);
|
|
9148
|
-
};
|
|
9149
|
-
this.device = undefined;
|
|
9150
|
-
this.videoStarted = undefined;
|
|
9151
|
-
this.captureTaken = undefined;
|
|
9152
|
-
this.verified = undefined;
|
|
9153
|
-
this.titleMesage = undefined;
|
|
9154
|
-
this.demoEnded = undefined;
|
|
9155
|
-
this.demoVideo = undefined;
|
|
9156
|
-
this.uploadingLink = undefined;
|
|
9157
|
-
this.captureHeight = undefined;
|
|
9158
|
-
this.captureWidth = undefined;
|
|
9159
|
-
this.captureTaken = false;
|
|
9160
|
-
this.verified = false;
|
|
9161
|
-
this.cameras = new Cameras();
|
|
9162
|
-
this.demoEnded = false;
|
|
9163
|
-
this.uploadingLink = 'https://ekyc.blob.core.windows.net/$web/animations/uploading_selfie.mp4';
|
|
9164
|
-
}
|
|
9165
|
-
async eventChangeTitle(event) {
|
|
9166
|
-
// this.stopAnimation = false;
|
|
9167
|
-
if (event.detail == null) {
|
|
9168
|
-
this.titleMesage = SelfieCaptureValues.FinalTitle;
|
|
9169
|
-
}
|
|
9170
|
-
else {
|
|
9171
|
-
this.titleMesage = SelfieCaptureValues.FacePoseMapping[event.detail];
|
|
9172
|
-
this.demoEnded = false;
|
|
9173
|
-
this.demoVideo.src = SelfieCaptureValues.FacePoseDemoMapping[event.detail];
|
|
9174
|
-
this.demoVideo.play();
|
|
9175
|
-
await this.delay(SelfieCaptureValues.VideoLenght);
|
|
9176
|
-
this.demoEnded = true;
|
|
9177
|
-
}
|
|
9178
|
-
}
|
|
9179
|
-
eventVideoStarted(event) {
|
|
9180
|
-
this.videoStarted = true;
|
|
9181
|
-
var cameraSize = event.detail;
|
|
9182
|
-
var height = Math.round((cameraSize.width * 16) / 9);
|
|
9183
|
-
this.captureHeight = height - Math.round((window.screen.height - height) / 2);
|
|
9184
|
-
this.captureWidth = Math.round((this.captureHeight * 9) / 16);
|
|
9185
|
-
}
|
|
9186
|
-
componentWillLoad() {
|
|
9187
|
-
Events.init(this.component);
|
|
9188
|
-
this.titleMesage = SelfieCaptureValues.Title;
|
|
9189
|
-
//this.videoDemoStyle = this.device.isMobile ? { 'width': window.screen.width + 'px', 'height': window.screen.height + 'px', 'object-fit': 'fill' } : {};
|
|
9190
|
-
if (!navigator.mediaDevices) {
|
|
9191
|
-
Events.flowError('This browser does not support webRTC');
|
|
9192
|
-
}
|
|
9193
|
-
}
|
|
9194
|
-
async componentDidLoad() {
|
|
9195
|
-
this.demoVideo.src = SelfieCaptureValues.FacePoseDemoMapping[FacePose.Main];
|
|
9196
|
-
this.demoVideo.play();
|
|
9197
|
-
await this.delay(SelfieCaptureValues.VideoLenght);
|
|
9198
|
-
this.demoEnded = true;
|
|
9199
|
-
this.openCamera();
|
|
9200
|
-
}
|
|
9201
|
-
async openCamera() {
|
|
9202
|
-
const constraints = this.cameras.GetConstraints('', this.device, true);
|
|
9203
|
-
setTimeout(() => {
|
|
9204
|
-
navigator.mediaDevices
|
|
9205
|
-
.getUserMedia(constraints)
|
|
9206
|
-
.then(stream => {
|
|
9207
|
-
const superStream = Stream.getInstance();
|
|
9208
|
-
superStream.initStream(stream);
|
|
9209
|
-
})
|
|
9210
|
-
.catch(e => {
|
|
9211
|
-
this.closeCamera();
|
|
9212
|
-
Events.flowError(e);
|
|
9213
|
-
});
|
|
9214
|
-
}, 100);
|
|
9215
|
-
}
|
|
9216
|
-
closeCamera() {
|
|
9217
|
-
if (Stream.instance) {
|
|
9218
|
-
Stream.getInstance().dropStream();
|
|
9219
|
-
}
|
|
9220
|
-
}
|
|
9221
|
-
disconnectedCallback() {
|
|
9222
|
-
this.closeCamera();
|
|
9223
|
-
Stream.instance = null;
|
|
9224
|
-
FaceML5Detector.instance = null;
|
|
9225
|
-
}
|
|
9226
|
-
async takePhoto() {
|
|
9227
|
-
if (this.captureTaken)
|
|
9228
|
-
return;
|
|
9229
|
-
this.captureTaken = true;
|
|
9230
|
-
let res = await Stream.getInstance().takePhoto();
|
|
9231
|
-
this.photoIsReady(res);
|
|
9232
|
-
}
|
|
9233
|
-
verificationFinished() {
|
|
9234
|
-
if (this.verified)
|
|
9235
|
-
return;
|
|
9236
|
-
this.verified = true;
|
|
9237
|
-
this.titleMesage = SelfieCaptureValues.Loading;
|
|
9238
|
-
this.closeCamera();
|
|
9239
|
-
this.demoEnded = false;
|
|
9240
|
-
this.demoVideo.src = this.uploadingLink;
|
|
9241
|
-
this.demoVideo.loop = true;
|
|
9242
|
-
this.demoVideo.play();
|
|
9243
|
-
}
|
|
9244
|
-
render() {
|
|
9245
|
-
let cameraStyle;
|
|
9246
|
-
if (this.device.isMobile && this.videoStarted) {
|
|
9247
|
-
cameraStyle = {
|
|
9248
|
-
'width': this.captureWidth + 'px',
|
|
9249
|
-
'height': this.captureHeight + 'px',
|
|
9250
|
-
'overflow': 'hidden',
|
|
9251
|
-
'borderRadius': '10px',
|
|
9252
|
-
'text-align': 'center',
|
|
9253
|
-
'margin': 'auto',
|
|
9254
|
-
};
|
|
9255
|
-
}
|
|
9256
|
-
let titleClass = this.verified ? 'color-black-2 text-center' : 'color-white text-center';
|
|
9257
|
-
//let videoClass = this.device.isMobile ? '' : 'video-demo';
|
|
9258
|
-
let bgDemo = this.verified ? 'container' : 'container bg-black';
|
|
9259
|
-
return (index.h("div", { class: bgDemo }, index.h("div", { class: "container-video" }, index.h("div", { hidden: this.demoEnded }, index.h("video", { id: "howtoSelfie", class: "video-demo", playsinline: true, ref: el => (this.demoVideo = el) }, index.h("source", { type: "video/mp4" }))), index.h("div", { hidden: this.demoEnded == false }, index.h("div", { hidden: this.verified }, index.h("div", { class: "video-capture" }, index.h("div", { style: cameraStyle }, index.h("camera-comp", { device: this.device, "capture-mode": "selfie" }))))), index.h("div", { class: "capture-title" }, index.h("h1", { class: titleClass }, this.titleMesage), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, SelfieCaptureValues.FooterText)))));
|
|
9260
|
-
}
|
|
9261
|
-
get component() { return index.getElement(this); }
|
|
9262
|
-
};
|
|
9263
|
-
SelfieCapture.style = selfieCaptureCss;
|
|
9264
|
-
|
|
9265
|
-
const smsCodeValidationCss = "";
|
|
6145
|
+
const smsCodeValidationCss = "";
|
|
9266
6146
|
|
|
9267
6147
|
const SmsCodeValidation = class {
|
|
9268
6148
|
constructor(hostRef) {
|
|
@@ -9335,7 +6215,7 @@ const SmsCodeValidation = class {
|
|
|
9335
6215
|
else {
|
|
9336
6216
|
inputBlock = (index.h("div", { class: "input-container mb-15" }, index.h("input", { type: "text", id: "codeInput", class: "main-input", onInput: ev => this.handleChangeCode(ev), value: this.code })));
|
|
9337
6217
|
}
|
|
9338
|
-
return (index.h("div", { class: "container" }, index.h("div", { class: "row row-validare" }, index.h("div", null, index.h("h1", { class: "text-center" }, this.title), errorBlock == null ? index.h("p", { class: "main-text font-size-2 mt-15 mb-20 text-center" }, this.details) : errorBlock), inputBlock, index.h("div", { class: "btn-buletin" }, index.h("button", { id: "action", class: "main-button", onClick: () => this.doAction() }, this.buttonText), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, PhoneValidationValues.FooterText)))));
|
|
6218
|
+
return (index.h("div", { class: "container" }, index.h("div", { class: "row row-validare" }, index.h("div", null, index.h("h1", { class: "text-center" }, this.title), errorBlock == null ? index.h("p", { class: "main-text font-size-2 mt-15 mb-20 text-center" }, this.details) : errorBlock), inputBlock, index.h("div", { class: "pos-relative show-bottom" }, index.h("div", { class: "btn-buletin" }, index.h("button", { id: "action", class: "main-button", onClick: () => this.doAction() }, this.buttonText), index.h("p", { class: "main-text font-size-18 text-right mb-0" }, PhoneValidationValues.FooterText))))));
|
|
9339
6219
|
}
|
|
9340
6220
|
};
|
|
9341
6221
|
SmsCodeValidation.style = smsCodeValidationCss;
|
|
@@ -9382,13 +6262,10 @@ const UserLiveness = class {
|
|
|
9382
6262
|
}
|
|
9383
6263
|
async capturedSelfieRecording(event) {
|
|
9384
6264
|
let selfieRecording = event.detail;
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
return;
|
|
9388
|
-
}
|
|
9389
|
-
let mimeType = selfieRecording.type == Stream.mp4MimeType.type ? Stream.mp4MimeType : Stream.webmMimeType;
|
|
6265
|
+
let mimeType = selfieRecording.type.split(';')[0];
|
|
6266
|
+
let extension = mimeType.split('/')[1];
|
|
9390
6267
|
try {
|
|
9391
|
-
this.selfieFlow.recordingFile = new File([selfieRecording], 'selfieVideo.' +
|
|
6268
|
+
this.selfieFlow.recordingFile = new File([selfieRecording], 'selfieVideo.' + extension, { type: mimeType });
|
|
9392
6269
|
await this.uploadRecording();
|
|
9393
6270
|
}
|
|
9394
6271
|
catch (e) {
|
|
@@ -9461,7 +6338,6 @@ exports.id_double_side = IdDoubleSide;
|
|
|
9461
6338
|
exports.id_single_side = IdSingleSide;
|
|
9462
6339
|
exports.identification_component = IdentificationComponent;
|
|
9463
6340
|
exports.landing_validation = LandingValidation;
|
|
9464
|
-
exports.mobile_redirect = MobileRedirect;
|
|
9465
6341
|
exports.selfie_capture = SelfieCapture;
|
|
9466
6342
|
exports.sms_code_validation = SmsCodeValidation;
|
|
9467
6343
|
exports.user_liveness = UserLiveness;
|