@tsocial/tvweb-sdk.lotte 0.0.0-beta.20251215-093759 → 0.0.0-beta.20251215-165409

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.
@@ -19095,7 +19095,7 @@
19095
19095
  t.decode = t.parse = w, t.encode = t.stringify = k;
19096
19096
  }), A = (E.decode, E.parse, E.encode, E.stringify), B = function() {
19097
19097
  function e(e) {
19098
- this.authorizer = e.authorizer, this.domain = e.domain, this.onError = e.onError, this.configHeaders = e.headers, this.fallbackUrls = e.fallbackUrls;
19098
+ this.authorizer = e.authorizer, this.domain = e.domain, this.onError = e.onError, this.configHeaders = e.headers, this.fallbackUrls = e.fallbackUrls, this.requestTimeoutMs = e.requestTimeoutMs;
19099
19099
  }
19100
19100
  return e.prototype.get = function(e, t, r) {
19101
19101
  var n = new URL(this.resolveUrl(e));
@@ -19155,13 +19155,24 @@
19155
19155
  requestPath: e,
19156
19156
  method: "GET"
19157
19157
  }, "blob");
19158
+ }, e.prototype.setupTimeout = function() {
19159
+ if (!this.requestTimeoutMs || this.requestTimeoutMs <= 0) return {};
19160
+ var e = new AbortController, t = setTimeout(function() {
19161
+ e.abort();
19162
+ }, this.requestTimeoutMs);
19163
+ return {
19164
+ abortController: e,
19165
+ timeoutId: t
19166
+ };
19167
+ }, e.prototype.cleanupTimeout = function(e) {
19168
+ e && clearTimeout(e);
19158
19169
  }, e.prototype.request = function(e, t, r) {
19159
19170
  return void 0 === r && (r = "json"), s(this, void 0, void 0, function() {
19160
- var n, a, o, s, l, u;
19171
+ var n, a, o, s, l, u, d, f, h;
19161
19172
  return c(this, function(c) {
19162
19173
  switch(c.label){
19163
19174
  case 0:
19164
- n = {}, a = {}, this.authorizer && (n = this.authorizer.getHeaders(t)), this.configHeaders && (a = this.configHeaders), t.headers = i(i(i({}, t.headers), n), a), c.label = 1;
19175
+ n = {}, a = {}, this.authorizer && (n = this.authorizer.getHeaders(t)), this.configHeaders && (a = this.configHeaders), t.headers = i(i(i({}, t.headers), n), a), s = (o = this.setupTimeout()).abortController, l = o.timeoutId, s && (t.signal = s.signal), c.label = 1;
19165
19176
  case 1:
19166
19177
  return c.trys.push([
19167
19178
  1,
@@ -19173,22 +19184,22 @@
19173
19184
  fetch(e, t)
19174
19185
  ];
19175
19186
  case 2:
19176
- return o = c.sent(), [
19187
+ return u = c.sent(), this.cleanupTimeout(l), [
19177
19188
  4,
19178
- "blob" === r ? o.blob() : o.json()
19189
+ "blob" === r ? u.blob() : u.json()
19179
19190
  ];
19180
19191
  case 3:
19181
- if ((s = c.sent()).errors && this.onError) throw this.onError(s.errors), s;
19192
+ if ((d = c.sent()).errors && this.onError) throw this.onError(d.errors), d;
19182
19193
  return [
19183
19194
  2,
19184
- s
19195
+ d
19185
19196
  ];
19186
19197
  case 4:
19187
- if (l = c.sent(), this.shouldRetryWithFallback(l) && Array.isArray(this.fallbackUrls) && this.fallbackUrls.length > 0) return u = "GET" === t.method ? new URL(e).searchParams : null, [
19198
+ if (f = c.sent(), this.cleanupTimeout(l), this.shouldRetryWithFallback(f) && Array.isArray(this.fallbackUrls) && this.fallbackUrls.length > 0) return h = "GET" === t.method ? new URL(e).searchParams : null, [
19188
19199
  2,
19189
- this.retryWithFallback(t.requestPath, t, u, r)
19200
+ this.retryWithFallback(t.requestPath, t, h, r)
19190
19201
  ];
19191
- throw l;
19202
+ throw f;
19192
19203
  case 5:
19193
19204
  return [
19194
19205
  2
@@ -19204,41 +19215,41 @@
19204
19215
  return "AbortError" === e.name ? (console.error("Request timed out"), !0) : e instanceof TypeError && (console.error("Network error occurred:", e.message), !0);
19205
19216
  }, e.prototype.retryWithFallback = function(e, t, r, n) {
19206
19217
  return void 0 === r && (r = null), void 0 === n && (n = "json"), s(this, void 0, void 0, function() {
19207
- var i, a, o, s, l, u;
19218
+ var a, o, s, l, u, d, f, h, p, m;
19208
19219
  return c(this, function(c) {
19209
19220
  switch(c.label){
19210
19221
  case 0:
19211
19222
  if (!Array.isArray(this.fallbackUrls) || 0 === this.fallbackUrls.length) throw Error("No fallback URLs available");
19212
- i = null, a = 0, c.label = 1;
19223
+ a = null, o = 0, c.label = 1;
19213
19224
  case 1:
19214
- if (!(a < this.fallbackUrls.length)) return [
19225
+ if (!(o < this.fallbackUrls.length)) return [
19215
19226
  3,
19216
19227
  7
19217
19228
  ];
19218
- c.label = 2;
19229
+ l = (s = this.setupTimeout()).abortController, u = s.timeoutId, c.label = 2;
19219
19230
  case 2:
19220
19231
  return c.trys.push([
19221
19232
  2,
19222
19233
  5,
19223
19234
  ,
19224
19235
  6
19225
- ]), o = new URL(this.resolveFallbackUrl(e, this.fallbackUrls[a])), r && "GET" === t.method && (o.search = r.toString()), [
19236
+ ]), d = new URL(this.resolveFallbackUrl(e, this.fallbackUrls[o])), r && "GET" === t.method && (d.search = r.toString()), f = i({}, t), l && (f.signal = l.signal), [
19226
19237
  4,
19227
- fetch(o.toString(), t)
19238
+ fetch(d.toString(), f)
19228
19239
  ];
19229
19240
  case 3:
19230
- return s = c.sent(), [
19241
+ return h = c.sent(), this.cleanupTimeout(u), [
19231
19242
  4,
19232
- "blob" === n ? s.blob() : s.json()
19243
+ "blob" === n ? h.blob() : h.json()
19233
19244
  ];
19234
19245
  case 4:
19235
- if ((l = c.sent()).errors && this.onError) throw this.onError(l.errors), l;
19246
+ if ((p = c.sent()).errors && this.onError) throw this.onError(p.errors), p;
19236
19247
  return [
19237
19248
  2,
19238
- l
19249
+ p
19239
19250
  ];
19240
19251
  case 5:
19241
- return i = u = c.sent(), this.shouldRetryWithFallback(u) ? [
19252
+ return m = c.sent(), this.cleanupTimeout(u), a = m, this.shouldRetryWithFallback(m) ? [
19242
19253
  3,
19243
19254
  6
19244
19255
  ] : [
@@ -19246,12 +19257,12 @@
19246
19257
  7
19247
19258
  ];
19248
19259
  case 6:
19249
- return a++, [
19260
+ return o++, [
19250
19261
  3,
19251
19262
  1
19252
19263
  ];
19253
19264
  case 7:
19254
- throw i;
19265
+ throw a;
19255
19266
  }
19256
19267
  });
19257
19268
  });
@@ -19570,12 +19581,13 @@
19570
19581
  }
19571
19582
  function L(e, t, r, n) {
19572
19583
  void 0 === r && (r = "production");
19573
- var i = void 0 === n ? {} : n, a = i.headers, o = i.fallbackUrls;
19584
+ var i = void 0 === n ? {} : n, a = i.headers, o = i.fallbackUrls, s = i.requestTimeoutMs;
19574
19585
  return new B({
19575
19586
  authorizer: new M(e, t),
19576
19587
  domain: N(r),
19577
19588
  headers: a,
19578
- fallbackUrls: o
19589
+ fallbackUrls: o,
19590
+ requestTimeoutMs: s
19579
19591
  });
19580
19592
  }
19581
19593
  var D = function() {
@@ -30444,7 +30456,8 @@
30444
30456
  }), this.transactionEnabled = i.supportTransaction || !1, this.encryptionEnabled = i.enableEncryption || !1;
30445
30457
  var a = L(e, t, r, {
30446
30458
  headers: i.httpHeaders,
30447
- fallbackUrls: i.fallbackUrls
30459
+ fallbackUrls: i.fallbackUrls,
30460
+ requestTimeoutMs: i.requestTimeoutMs
30448
30461
  });
30449
30462
  this.transactionManager = new j(a), this.encryptionService = new rq(t), this.compareFaceService = new d(a), this.clientSettingsService = new f(a), this.convertPDFService = new b(a), this.ekycPDFService = new v(a), this.readIDCardService = new n(a), this.requestVerifyIDCardService = new p(a), this.requestVerifyPortraitSerivce = new m(a), this.imagesService = new l(a), this.fileService = new u(a), this.verifyFaceLivenessService = new h(a), this.searchFaceService = new y(a), this.detectIDTamperingService = new g(a), this.httpClient = a;
30450
30463
  }
@@ -33770,7 +33783,7 @@
33770
33783
  }, nS$1;
33771
33784
  }();
33772
33785
  function nB$1() {
33773
- return "0.0.0-beta.20251215-093759";
33786
+ return "0.0.0-beta.20251215-165409";
33774
33787
  }
33775
33788
  function nI$1() {
33776
33789
  return {
@@ -41246,49 +41259,56 @@
41246
41259
  }, uz;
41247
41260
  }(), uG);
41248
41261
  }();
41249
- function dm() {
41262
+ let dm = d_, dg = d_, dy = db();
41263
+ for(;;)try {
41264
+ if (parseInt(dg(378)) / 1 + -parseInt(dg(391)) / 2 * (-parseInt(dg(386)) / 3) + parseInt(dg(380)) / 4 * (parseInt(dg(384)) / 5) + -parseInt(dg(381)) / 6 + -parseInt(dg(383)) / 7 * (-parseInt(dg(377)) / 8) + -parseInt(dg(379)) / 9 + -parseInt(dg(367)) / 10 * (-parseInt(dg(372)) / 11) === 229615) break;
41265
+ dy.push(dy.shift());
41266
+ } catch (e) {
41267
+ dy.push(dy.shift());
41268
+ }
41269
+ function db() {
41250
41270
  let e = [
41251
- "391796qAHBQP",
41252
- "2a8648ce3d",
41253
- "ZIzj0CAQYI",
41271
+ "25310HBUOBg",
41272
+ "DepBO8t60S",
41273
+ "MFkwEwYHKo",
41274
+ "3059301306",
41275
+ "+faHkP3QC3",
41276
+ "407Ilvdnt",
41277
+ "44P0rKKsZK",
41278
+ "3d02010608",
41254
41279
  "ytJdcsPxrD",
41255
- "44160GNFAeO",
41256
- "758970ENfGty",
41280
+ "D9EKOWS+U4",
41281
+ "14552FNqEza",
41282
+ "101165gbwSGf",
41283
+ "3599838cBdphG",
41284
+ "96444qpbkcR",
41285
+ "671448TAUmcs",
41286
+ "072a8648ce",
41287
+ "532kymtpA",
41288
+ "45uWuFYC",
41257
41289
  "MfPrcYTM70",
41258
- "44P0rKKsZK",
41259
- "MFkwEwYHKo",
41290
+ "6ocbIJZ",
41260
41291
  "000",
41261
- "120612DuHKxu",
41262
- "DepBO8t60S",
41263
- "3059301306",
41264
- "ssRdXLZEX8",
41292
+ "0301070342",
41293
+ "KoZIzj0DAQ",
41294
+ "ZIzj0CAQYI",
41295
+ "191450lvsUWR",
41296
+ "2a8648ce3d",
41265
41297
  "cDQgAE9h6Z",
41266
- "2919fSUnYj",
41267
- "9720kJycIQ",
41268
- "+faHkP3QC3",
41269
- "212094GlWFgW",
41270
- "KA==",
41271
- "315786GasSwN"
41298
+ "KA=="
41272
41299
  ];
41273
- return (dm = function() {
41300
+ return (db = function() {
41274
41301
  return e;
41275
41302
  })();
41276
41303
  }
41277
- let dg = d_, dy = d_, db = dm();
41278
- for(;;)try {
41279
- if (parseInt(dy(292)) / 1 + parseInt(dy(295)) / 2 + -parseInt(dy(299)) / 3 + parseInt(dy(305)) / 4 + parseInt(dy(300)) / 5 + parseInt(dy(294)) / 6 + parseInt(dy(289)) / 7 * (-parseInt(dy(290)) / 8) === 121195) break;
41280
- db.push(db.shift());
41281
- } catch (e) {
41282
- db.push(db.shift());
41283
- }
41284
- let dv = dg(307) + "072a8648ce3d02010608" + dg(296) + "0301070342" + dg(304);
41304
+ let dv = dm(370) + dm(382) + dm(374) + dm(392) + dm(388) + dm(387);
41285
41305
  function d_(e, t) {
41286
- let r = dm();
41306
+ let r = db();
41287
41307
  return (d_ = function(e, t) {
41288
- return r[e -= 288];
41308
+ return r[e -= 366];
41289
41309
  })(e, t);
41290
41310
  }
41291
- let dx = dg(303) + dg(297) + "KoZIzj0DAQ" + dg(288) + dg(306) + dg(298) + dg(291) + dg(302) + "Mjci1ul8mmD9EKOWS+U4" + dg(301) + dg(308) + dg(293);
41311
+ let dx = dm(369) + dm(390) + dm(389) + dm(393) + dm(368) + dm(375) + dm(371) + dm(373) + "Mjci1ul8mm" + dm(376) + dm(385) + "ssRdXLZEX8" + dm(366);
41292
41312
  async function dC(e) {
41293
41313
  let t = new TextEncoder().encode(e);
41294
41314
  return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256", t))).map((e)=>e.toString(16).padStart(2, "0")).join("");
@@ -43355,7 +43375,8 @@
43355
43375
  "x-request-id": e,
43356
43376
  ...r
43357
43377
  },
43358
- fallbackUrls: c
43378
+ fallbackUrls: c,
43379
+ requestTimeoutMs: 6e4
43359
43380
  }), {
43360
43381
  onDone: n
43361
43382
  });
@@ -43384,7 +43405,8 @@
43384
43405
  "x-request-id": l,
43385
43406
  ...r
43386
43407
  },
43387
- fallbackUrls: s
43408
+ fallbackUrls: s,
43409
+ requestTimeoutMs: 6e4
43388
43410
  }), {
43389
43411
  onDone: ()=>{}
43390
43412
  });
@@ -90589,7 +90611,7 @@
90589
90611
  }
90590
90612
  };
90591
90613
 
90592
- const videoSettings$5 = libExports.isMobile ? {
90614
+ const videoSettings$7 = libExports.isMobile ? {
90593
90615
  // aspectRatio: 16 / 9,
90594
90616
  width: {
90595
90617
  ideal: 640
@@ -91368,7 +91390,7 @@
91368
91390
  flipHorizontal: frontCamera,
91369
91391
  ref: videoRef,
91370
91392
  onError: onErrorCallback,
91371
- videoSettings: videoSettings$5,
91393
+ videoSettings: videoSettings$7,
91372
91394
  closeButton: /*#__PURE__*/ jsxRuntimeExports.jsx(CloseIcon, {}),
91373
91395
  children: /*#__PURE__*/ jsxRuntimeExports.jsxs(WarmUpOverlay, {
91374
91396
  overlay: !warmupDone || !isPlaying,
@@ -91930,11 +91952,11 @@
91930
91952
  extraConfig: null
91931
91953
  };
91932
91954
 
91933
- const DirectionalIcon = dt$1.img`
91955
+ const DirectionalIcon$1 = dt$1.img`
91934
91956
  width: ${({ width })=>width};
91935
91957
  `;
91936
91958
  // eslint-disable-next-line react/require-default-props
91937
- function DirectionIcon({ type }) {
91959
+ function DirectionIcon$1({ type }) {
91938
91960
  const theme = nt$2();
91939
91961
  // default icons and widths based on version
91940
91962
  const iconDirection = useThemeIcon(`Selfie.Active.directionIcon.${type}`, `${type}_arrow.gif`);
@@ -91951,7 +91973,7 @@
91951
91973
  if (type === ra$1.FaceDirection.FRONTAL) {
91952
91974
  // For frontal direction, use the SVG icon if available
91953
91975
  if (frontalIcon) {
91954
- return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon, {
91976
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon$1, {
91955
91977
  src: frontalIcon,
91956
91978
  width: iconWidth,
91957
91979
  alt: ""
@@ -91959,20 +91981,20 @@
91959
91981
  }
91960
91982
  }
91961
91983
  if (directionIconSrc && directionIconSrc !== null) {
91962
- return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon, {
91984
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon$1, {
91963
91985
  src: get(theme, `Selfie.Active.directionIcon.${type}`),
91964
91986
  width: iconWidth,
91965
91987
  alt: ""
91966
91988
  });
91967
91989
  }
91968
91990
  // fallback to default icons and width
91969
- return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon, {
91991
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon$1, {
91970
91992
  src: iconDirection,
91971
91993
  alt: "",
91972
91994
  width: iconWidth
91973
91995
  });
91974
91996
  }
91975
- DirectionIcon.propTypes = {
91997
+ DirectionIcon$1.propTypes = {
91976
91998
  type: PropTypes.oneOf([
91977
91999
  ra$1.FaceDirection.LEFT,
91978
92000
  ra$1.FaceDirection.RIGHT,
@@ -91980,12 +92002,12 @@
91980
92002
  ra$1.FaceDirection.FRONTAL
91981
92003
  ])
91982
92004
  };
91983
- DirectionIcon.defaultProps = {
92005
+ DirectionIcon$1.defaultProps = {
91984
92006
  type: ra$1.FaceDirection.LEFT
91985
92007
  };
91986
92008
 
91987
92009
  // To reduce the calculation for blazeface
91988
- const videoSettings$4 = libExports.isMobile ? {
92010
+ const videoSettings$6 = libExports.isMobile ? {
91989
92011
  width: {
91990
92012
  ideal: 640
91991
92013
  }
@@ -92110,7 +92132,7 @@
92110
92132
  onClose: onCloseCallback,
92111
92133
  flipHorizontal: flipVideoHorizontal ?? frontCamera,
92112
92134
  ref: refVideo,
92113
- videoSettings: videoSettings$4,
92135
+ videoSettings: videoSettings$6,
92114
92136
  onError: onErrorCallback,
92115
92137
  scale: cameraScale,
92116
92138
  defaultCameraId: defaultCameraId,
@@ -92221,16 +92243,16 @@
92221
92243
  isLoading: false,
92222
92244
  flipVideoHorizontal: null,
92223
92245
  customDirectionIcon: {
92224
- [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
92246
+ [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
92225
92247
  type: ra$1.FaceDirection.LEFT
92226
92248
  }),
92227
- [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
92249
+ [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
92228
92250
  type: ra$1.FaceDirection.RIGHT
92229
92251
  }),
92230
- [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
92252
+ [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
92231
92253
  type: ra$1.FaceDirection.UP
92232
92254
  }),
92233
- [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
92255
+ [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
92234
92256
  type: ra$1.FaceDirection.FRONTAL
92235
92257
  })
92236
92258
  },
@@ -92608,7 +92630,7 @@
92608
92630
  });
92609
92631
  }
92610
92632
 
92611
- const videoSettings$3 = libExports.isMobile ? {
92633
+ const videoSettings$5 = libExports.isMobile ? {
92612
92634
  // aspectRatio: 16 / 9,
92613
92635
  width: {
92614
92636
  ideal: 640
@@ -93141,7 +93163,7 @@
93141
93163
  flipHorizontal: frontCamera,
93142
93164
  ref: videoRef,
93143
93165
  onError: onErrorCallback,
93144
- videoSettings: videoSettings$3,
93166
+ videoSettings: videoSettings$5,
93145
93167
  closeButton: /*#__PURE__*/ jsxRuntimeExports.jsx(CloseIcon, {}),
93146
93168
  children: /*#__PURE__*/ jsxRuntimeExports.jsxs(WarmUpOverlay, {
93147
93169
  overlay: !warmupDone || !isPlaying,
@@ -93483,13 +93505,13 @@
93483
93505
  };
93484
93506
 
93485
93507
  // To reduce the calculation for blazeface
93486
- const videoSettings$2 = libExports.isMobile ? {
93508
+ const videoSettings$4 = libExports.isMobile ? {
93487
93509
  width: {
93488
93510
  ideal: 640
93489
93511
  }
93490
93512
  } : null;
93491
93513
  // eslint-disable-next-line react/prop-types, consistent-return
93492
- const SelfieStepImageHolder$1 = ({ stepNumber, type, theme })=>{
93514
+ const SelfieStepImageHolder$2 = ({ stepNumber, type, theme })=>{
93493
93515
  const imageHolderIcon = useDefaultThemeIcon(`instruction_${type}.svg`);
93494
93516
  // prioritize custom theme icons
93495
93517
  const customHolderSrc = get(theme, `Selfie.Active.imageHolder.${type}`);
@@ -93514,7 +93536,7 @@
93514
93536
  alt: ""
93515
93537
  });
93516
93538
  };
93517
- function renderDirectionIcon$1(directionIcon, directionIconAnimation) {
93539
+ function renderDirectionIcon$2(directionIcon, directionIconAnimation) {
93518
93540
  if (!directionIcon) return null;
93519
93541
  if (typeof directionIcon === 'string') {
93520
93542
  return /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
@@ -93659,7 +93681,7 @@
93659
93681
  onClose: onCloseCallback,
93660
93682
  flipHorizontal: flipVideoHorizontal ?? frontCamera,
93661
93683
  ref: refVideo,
93662
- videoSettings: videoSettings$2,
93684
+ videoSettings: videoSettings$4,
93663
93685
  onError: onErrorCallback,
93664
93686
  scale: cameraScale,
93665
93687
  defaultCameraId: defaultCameraId,
@@ -93684,7 +93706,7 @@
93684
93706
  showErrorRing: !!faceDetectionError
93685
93707
  }),
93686
93708
  /*#__PURE__*/ jsxRuntimeExports.jsx(InstructionsOverlay$2, {
93687
- children: renderDirectionIcon$1(directionIcon, directionIconAnimation)
93709
+ children: renderDirectionIcon$2(directionIcon, directionIconAnimation)
93688
93710
  }),
93689
93711
  activeCapturing && /*#__PURE__*/ jsxRuntimeExports.jsx(CapturingOverlay$1, {})
93690
93712
  ]
@@ -93707,7 +93729,7 @@
93707
93729
  className: "image_preview",
93708
93730
  src: objUrl,
93709
93731
  alt: ""
93710
- }) : /*#__PURE__*/ jsxRuntimeExports.jsx(SelfieStepImageHolder$1, {
93732
+ }) : /*#__PURE__*/ jsxRuntimeExports.jsx(SelfieStepImageHolder$2, {
93711
93733
  stepNumber: index + 1,
93712
93734
  type: name,
93713
93735
  theme: theme
@@ -93783,6 +93805,501 @@
93783
93805
  serviceSettings: PropTypes.shape({})
93784
93806
  };
93785
93807
  ActiveLiveness.defaultProps = {
93808
+ apiCheck: false,
93809
+ onLivenessDetectionDone: null,
93810
+ onClose: null,
93811
+ onError: ()=>{},
93812
+ onReset: ()=>{},
93813
+ captureFrameSettings: {
93814
+ enable: false,
93815
+ framesIntervalTime: 180,
93816
+ framesBatchLength: 0
93817
+ },
93818
+ onFramesCaptured: ()=>{},
93819
+ flipVideoHorizontal: null,
93820
+ frontCamera: true,
93821
+ isLoading: false,
93822
+ customDirectionIcon: {
93823
+ [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
93824
+ type: ra$1.FaceDirection.LEFT
93825
+ }),
93826
+ [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
93827
+ type: ra$1.FaceDirection.RIGHT
93828
+ }),
93829
+ [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
93830
+ type: ra$1.FaceDirection.UP
93831
+ }),
93832
+ [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
93833
+ type: ra$1.FaceDirection.FRONTAL
93834
+ })
93835
+ },
93836
+ customStepTimeConstraints: {
93837
+ [ra$1.FaceDirection.UP]: {
93838
+ delayTime: 0
93839
+ },
93840
+ [ra$1.FaceDirection.LEFT]: {
93841
+ delayTime: 0
93842
+ },
93843
+ [ra$1.FaceDirection.RIGHT]: {
93844
+ delayTime: 0
93845
+ },
93846
+ [ra$1.FaceDirection.FRONTAL]: {
93847
+ delayTime: 2000
93848
+ }
93849
+ },
93850
+ onProcessing: ()=>{},
93851
+ customErrors: null,
93852
+ apiCredentials: {
93853
+ accessKey: '',
93854
+ secretKey: '',
93855
+ apiUrl: ''
93856
+ },
93857
+ outputEncryptionSettings: null,
93858
+ cameraScale: 1,
93859
+ defaultCameraId: undefined,
93860
+ offsetFaceY: 0,
93861
+ styledComponent: {
93862
+ CloseCameraButton: null
93863
+ },
93864
+ serviceSettings: {
93865
+ enableUploadFrames: true,
93866
+ enableUploadImages: true,
93867
+ enableVerifySanityPortrait: true,
93868
+ enableVerifySanityIDCard: true,
93869
+ enableVerifyFaceLiveness: true,
93870
+ enableDetectIDCardTampering: true,
93871
+ enableReadIDCardInfo: true
93872
+ }
93873
+ };
93874
+
93875
+ const LicenseProvider = ({ children, onError })=>{
93876
+ const clientSettings = useClientSettings();
93877
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(dV.LicenseProvider, {
93878
+ clientSettings: clientSettings,
93879
+ onError: onError,
93880
+ children: children
93881
+ });
93882
+ };
93883
+
93884
+ // children prop is required but eslint is still complaining
93885
+ // eslint-disable-next-line react/require-default-props
93886
+ const SdkTimeoutProvider = ({ children, onError, type })=>{
93887
+ const clientSettings = useClientSettings();
93888
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(dz.Provider, {
93889
+ clientSettings: clientSettings,
93890
+ type: type,
93891
+ onError: onError,
93892
+ children: children
93893
+ });
93894
+ };
93895
+
93896
+ const DEFAULT_CUSTOM_TEXTS = {};
93897
+ const SDKLocaleProvider = ({ children, customTexts = DEFAULT_CUSTOM_TEXTS })=>{
93898
+ const clientSettings = useClientSettings();
93899
+ const { lang, uiSettings } = no$1.useSDKSettings();
93900
+ const localeValue = gM({
93901
+ customTexts,
93902
+ clientSettings,
93903
+ lang,
93904
+ uiSettings
93905
+ });
93906
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(iF$1.SDKLocaleProvider, {
93907
+ value: localeValue,
93908
+ children: children
93909
+ });
93910
+ };
93911
+
93912
+ const useMergeTheme = (options)=>{
93913
+ const { customTheme, clientSettings, themeVersion, uiSettings, defaultThemes = defaultThemes$2 } = options;
93914
+ const uiSettingsFromSdkSettings = dD.getWebSetting(clientSettings, 'data.settings.sdk_settings.ui_custom_settings');
93915
+ const themeValue = reactExports.useMemo(()=>{
93916
+ const mergedUiSettings = m3.selectUiSettings(uiSettings, uiSettingsFromSdkSettings);
93917
+ const customThemeFromUiSettings = m3.mapUISettingsToCustomTheme(mergedUiSettings);
93918
+ const finalCustomTheme = merge({}, customThemeFromUiSettings, customTheme);
93919
+ return {
93920
+ ...finalCustomTheme,
93921
+ themeVersion,
93922
+ defaultThemes
93923
+ };
93924
+ }, [
93925
+ customTheme,
93926
+ defaultThemes,
93927
+ themeVersion,
93928
+ uiSettings,
93929
+ uiSettingsFromSdkSettings
93930
+ ]);
93931
+ return themeValue;
93932
+ };
93933
+
93934
+ const DEFAULT_CUSTOM_THEME = {};
93935
+ const SDKThemeProvider = ({ children, customTheme = DEFAULT_CUSTOM_THEME })=>{
93936
+ const clientSettings = useClientSettings();
93937
+ const { uiSettings, themeVersion } = no$1.useSDKSettings();
93938
+ const themeValue = useMergeTheme({
93939
+ customTheme,
93940
+ clientSettings,
93941
+ themeVersion,
93942
+ uiSettings,
93943
+ defaultThemes: defaultThemes$2
93944
+ });
93945
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(ot$2, {
93946
+ theme: themeValue,
93947
+ children: children
93948
+ });
93949
+ };
93950
+
93951
+ const WrapIndicatorContext = /*#__PURE__*/ reactExports.createContext('');
93952
+ const WrapIndicatorProvider = ({ children, isWrappedBy = '' })=>{
93953
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(WrapIndicatorContext.Provider, {
93954
+ value: isWrappedBy,
93955
+ children: children
93956
+ });
93957
+ };
93958
+ const useWrapIndicator = ()=>reactExports.useContext(WrapIndicatorContext);
93959
+
93960
+ const DirectionalIcon = dt$1.img`
93961
+ width: ${({ width })=>width};
93962
+ `;
93963
+ // eslint-disable-next-line react/require-default-props
93964
+ function DirectionIcon({ type }) {
93965
+ const theme = nt$2();
93966
+ // default icons and widths based on version
93967
+ const iconDirection = useThemeIcon(`Selfie.Active.directionIcon.${type}`, `${type}_arrow.gif`);
93968
+ const iconWidth = getTheme(`Selfie.Active.directionIcon.${type}Width`)({
93969
+ theme
93970
+ });
93971
+ // prioritize custom theme icons
93972
+ const directionIconSrc = get(theme, `Selfie.Active.directionIcon.${type}`);
93973
+ if (directionIconSrc === null) {
93974
+ // eslint-disable-next-line react/jsx-no-useless-fragment
93975
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
93976
+ }
93977
+ if (directionIconSrc && directionIconSrc !== null) {
93978
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon, {
93979
+ src: get(theme, `Selfie.Active.directionIcon.${type}`),
93980
+ width: iconWidth,
93981
+ alt: ""
93982
+ });
93983
+ }
93984
+ // fallback to default icons and width
93985
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionalIcon, {
93986
+ src: iconDirection,
93987
+ alt: "",
93988
+ width: iconWidth
93989
+ });
93990
+ }
93991
+ DirectionIcon.propTypes = {
93992
+ type: PropTypes.oneOf([
93993
+ ra$1.FaceDirection.LEFT,
93994
+ ra$1.FaceDirection.RIGHT,
93995
+ ra$1.FaceDirection.UP,
93996
+ ra$1.FaceDirection.FRONTAL
93997
+ ])
93998
+ };
93999
+ DirectionIcon.defaultProps = {
94000
+ type: ra$1.FaceDirection.LEFT
94001
+ };
94002
+
94003
+ // To reduce the calculation for blazeface
94004
+ const videoSettings$3 = libExports.isMobile ? {
94005
+ width: {
94006
+ ideal: 640
94007
+ }
94008
+ } : null;
94009
+ // eslint-disable-next-line react/prop-types, consistent-return
94010
+ const SelfieStepImageHolder$1 = ({ stepNumber, type, theme })=>{
94011
+ const imageHolderIcon = useDefaultThemeIcon(`instruction_${type}.svg`);
94012
+ // prioritize custom theme icons
94013
+ const customHolderSrc = get(theme, `Selfie.Active.imageHolder.${type}`);
94014
+ if (customHolderSrc === null) {
94015
+ // eslint-disable-next-line react/jsx-no-useless-fragment
94016
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
94017
+ }
94018
+ if (typeof customHolderSrc === 'string' && customHolderSrc !== '') {
94019
+ return /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94020
+ src: customHolderSrc,
94021
+ alt: ""
94022
+ });
94023
+ }
94024
+ // v1: use step number
94025
+ if (get(theme, 'themeVersion') === 'v1') {
94026
+ return /*#__PURE__*/ jsxRuntimeExports.jsx("span", {
94027
+ children: stepNumber
94028
+ });
94029
+ }
94030
+ return /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94031
+ src: imageHolderIcon,
94032
+ alt: ""
94033
+ });
94034
+ };
94035
+ function renderDirectionIcon$1(directionIcon, directionIconAnimation) {
94036
+ if (!directionIcon) return null;
94037
+ if (typeof directionIcon === 'string') {
94038
+ return /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94039
+ className: directionIconAnimation,
94040
+ src: directionIcon,
94041
+ alt: "",
94042
+ style: {
94043
+ maxWidth: '98px',
94044
+ maxHeight: '98px',
94045
+ marginBottom: '25px'
94046
+ }
94047
+ });
94048
+ }
94049
+ return directionIcon;
94050
+ }
94051
+ // eslint-disable-next-line react/require-default-props
94052
+ function ActiveLivenessV1(props) {
94053
+ const { apiCheck, onLivenessDetectionDone, captureFrameSettings, onFramesCaptured, frontCamera, flipVideoHorizontal, customDirectionIcon, customStepTimeConstraints, onProcessing, customErrors, apiCredentials, outputEncryptionSettings, cameraScale, defaultCameraId, offsetFaceY, styledComponent, isLoading, serviceSettings, onReset } = props;
94054
+ const theme = nt$2();
94055
+ const { onErrorCallback, onCloseCallback } = useSDKCallback();
94056
+ const bgCameraMask = iH.useAsset('bg_camera_mask.png');
94057
+ const bgCameraMaskRed = iH.useAsset('bg_camera_mask_red.png');
94058
+ const icLoading = useThemeIcon('IDCapturing.loadingIcon.src', 'ic_loading.gif');
94059
+ const [uiSpacing, setUISpacing] = reactExports.useState({});
94060
+ const { yFaceVerificationStepsWrapper, yFaceDetectionError } = uiSpacing;
94061
+ const [remainingTime, setRemainingTime] = reactExports.useState('');
94062
+ const [currentOrientation, setCurrentOrientation] = reactExports.useState();
94063
+ const surroundStyle = reactExports.useMemo(()=>({
94064
+ backgroundColor: getTheme('Selfie.backgroundColor')({
94065
+ theme
94066
+ })
94067
+ }), [
94068
+ theme
94069
+ ]);
94070
+ // preload icons
94071
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'up_arrow.gif');
94072
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'left_arrow.gif');
94073
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'right_arrow.gif');
94074
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'frontal_arrow.gif');
94075
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'instruction_up.svg');
94076
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'instruction_left.svg');
94077
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'instruction_right.svg');
94078
+ usePreloadThemeAsset(get(theme, 'themeVersion'), 'instruction_frontal.svg');
94079
+ const cropAreaDimension = reactExports.useCallback(({ clientHeight, videoAreaWidth, videoAreaHeight, lostX, lostY })=>{
94080
+ let width;
94081
+ let height;
94082
+ if (libExports.isMobile) {
94083
+ width = videoAreaWidth;
94084
+ height = width;
94085
+ } else {
94086
+ height = videoAreaHeight - 200;
94087
+ width = height;
94088
+ }
94089
+ const x = Math.floor((videoAreaWidth - width) / 2) + lostX;
94090
+ let y = 5 + lostY;
94091
+ const yFaceDetectionErrorNew = lostY + 25;
94092
+ const yCropAreaNew = yFaceDetectionErrorNew + 30;
94093
+ const yFaceVerificationStepsWrapperNew = yCropAreaNew + height + 20;
94094
+ setUISpacing({
94095
+ yFaceDetectionError: yFaceDetectionErrorNew,
94096
+ yFaceVerificationStepsWrapper: yFaceVerificationStepsWrapperNew
94097
+ });
94098
+ const topLimit = Math.floor(lostY);
94099
+ const botLimit = Math.floor(clientHeight - lostY);
94100
+ y = Math.floor(yCropAreaNew); // floor the y value to avoid blur line on ios safari
94101
+ if (offsetFaceY !== 0 && (y + offsetFaceY < topLimit || y + offsetFaceY + height > botLimit)) {
94102
+ onErrorCallback({
94103
+ code: `offsetFaceY must be in [-${y - topLimit}, ${botLimit - height - y}]`
94104
+ });
94105
+ } else {
94106
+ y += offsetFaceY;
94107
+ }
94108
+ return {
94109
+ x,
94110
+ y,
94111
+ width,
94112
+ height
94113
+ };
94114
+ }, [
94115
+ offsetFaceY,
94116
+ onErrorCallback
94117
+ ]);
94118
+ const { shouldResetFlowOnOrientationChange, cropArea, curStepIndex, directionIcon, directionIconAnimation, faceDetectionError, resetFlow, handleVideoPlayed, instructions, refVideo, refIsReseting, steps, videoPlayed, activeCapturing, warmupDone, showLoading } = useActiveLiveness$1({
94119
+ currentOrientation,
94120
+ apiCheck,
94121
+ bgCameraMask,
94122
+ bgCameraMaskRed,
94123
+ surroundStyle,
94124
+ onLivenessDetectionDone,
94125
+ onError: onErrorCallback,
94126
+ cropAreaDimension,
94127
+ customDirectionIcon,
94128
+ captureFrameSettings,
94129
+ onFramesCaptured,
94130
+ setRemainingTime,
94131
+ customStepTimeConstraints,
94132
+ onProcessing,
94133
+ customErrors,
94134
+ apiCredentials,
94135
+ outputEncryptionSettings,
94136
+ cameraScale,
94137
+ serviceSettings,
94138
+ onReset
94139
+ });
94140
+ reactExports.useEffect(()=>{
94141
+ if (typeof steps[0]?.directionIcon === 'string') {
94142
+ Promise.all(steps.map((step)=>preloadImage$2(step.directionIcon)));
94143
+ }
94144
+ }, [
94145
+ steps
94146
+ ]);
94147
+ const { CloseCameraButton } = styledComponent;
94148
+ const progressCircleProps = getProgressCircleProps$2(props, theme);
94149
+ const currentProgress = !refIsReseting.current ? curStepIndex / steps.length * 100 : 0;
94150
+ // for error text
94151
+ const { lang } = no$1.useSDKSettings();
94152
+ const timer = reactExports.useRef(0);
94153
+ const lastError = reactExports.useRef({});
94154
+ const duration = reactExports.useRef(ra$1.ErrorDuration.SHORT);
94155
+ const lastErrorMsg = reactExports.useMemo(()=>{
94156
+ const { msg, duration: errorDuration = ra$1.ErrorDuration.SHORT } = faceDetectionError || {};
94157
+ const errorMsg = msg?.[lang];
94158
+ if (Date.now() - timer.current >= duration.current) {
94159
+ timer.current = Date.now();
94160
+ duration.current = errorDuration;
94161
+ lastError.current = errorMsg;
94162
+ }
94163
+ return lastError.current;
94164
+ // eslint-disable-next-line react-hooks/exhaustive-deps
94165
+ }, [
94166
+ faceDetectionError,
94167
+ curStepIndex
94168
+ ]); // curStepIndex is used to get the latest error when reset flow
94169
+ const onOrientationChange = reactExports.useCallback((curOrientation)=>{
94170
+ setCurrentOrientation(curOrientation);
94171
+ if (!shouldResetFlowOnOrientationChange) {
94172
+ if (curOrientation === MODE.LANDSCAPE) {
94173
+ refVideo.current?.pause();
94174
+ } else {
94175
+ refVideo.current?.play();
94176
+ }
94177
+ } else {
94178
+ resetFlow();
94179
+ }
94180
+ }, [
94181
+ refVideo,
94182
+ resetFlow,
94183
+ shouldResetFlowOnOrientationChange
94184
+ ]);
94185
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(OrientationDetection, {
94186
+ onOrientationChange: onOrientationChange,
94187
+ children: /*#__PURE__*/ jsxRuntimeExports.jsxs(Camera$3, {
94188
+ frontCamera: frontCamera,
94189
+ onVideoPlayed: handleVideoPlayed,
94190
+ onClose: onCloseCallback,
94191
+ flipHorizontal: flipVideoHorizontal ?? frontCamera,
94192
+ ref: refVideo,
94193
+ videoSettings: videoSettings$3,
94194
+ onError: onErrorCallback,
94195
+ scale: cameraScale,
94196
+ defaultCameraId: defaultCameraId,
94197
+ closeButton: CloseCameraButton || null,
94198
+ children: [
94199
+ !warmupDone && /*#__PURE__*/ jsxRuntimeExports.jsx(WarmupPopup, {}),
94200
+ videoPlayed ? /*#__PURE__*/ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
94201
+ children: [
94202
+ cropArea.current ? /*#__PURE__*/ jsxRuntimeExports.jsxs(CropAreaOverlayWrapper, {
94203
+ x: `${cropArea.current.x}px`,
94204
+ y: `${cropArea.current.y}px`,
94205
+ width: `${cropArea.current.width}px`,
94206
+ height: `${cropArea.current.height}px`,
94207
+ surroundStyle: cropArea.current.surroundStyle,
94208
+ children: [
94209
+ /*#__PURE__*/ jsxRuntimeExports.jsx(StyledCameraMark$2, {}),
94210
+ /*#__PURE__*/ jsxRuntimeExports.jsx(OverlayProgressCircle$2, {
94211
+ ...progressCircleProps,
94212
+ progress: currentProgress,
94213
+ showErrorRing: !!faceDetectionError && getTheme('Selfie.progressCircle.showErrorRing')({
94214
+ theme
94215
+ })
94216
+ }),
94217
+ /*#__PURE__*/ jsxRuntimeExports.jsx(InstructionsOverlay$2, {
94218
+ children: renderDirectionIcon$1(directionIcon, directionIconAnimation)
94219
+ }),
94220
+ activeCapturing && /*#__PURE__*/ jsxRuntimeExports.jsx(CapturingOverlay$1, {})
94221
+ ]
94222
+ }) : null,
94223
+ instructions ? /*#__PURE__*/ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
94224
+ children: [
94225
+ /*#__PURE__*/ jsxRuntimeExports.jsx(FaceVerificationInstructions$1, {
94226
+ top: yFaceVerificationStepsWrapper + 5,
94227
+ className: "instructions",
94228
+ children: instructions
94229
+ }),
94230
+ /*#__PURE__*/ jsxRuntimeExports.jsx(FaceVerificationStepsWrapper$2, {
94231
+ top: yFaceVerificationStepsWrapper + 35,
94232
+ children: steps.map((step, index)=>{
94233
+ const { name, image: { objUrl } } = step;
94234
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(StepItem$2, {
94235
+ active: curStepIndex >= index,
94236
+ className: "step-item",
94237
+ children: objUrl ? /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94238
+ className: "image_preview",
94239
+ src: objUrl,
94240
+ alt: ""
94241
+ }) : /*#__PURE__*/ jsxRuntimeExports.jsx(SelfieStepImageHolder$1, {
94242
+ stepNumber: index + 1,
94243
+ type: name,
94244
+ theme: theme
94245
+ })
94246
+ }, name);
94247
+ })
94248
+ })
94249
+ ]
94250
+ }) : null
94251
+ ]
94252
+ }) : null,
94253
+ (showLoading || isLoading) && /*#__PURE__*/ jsxRuntimeExports.jsx(LoadingIcon$5, {
94254
+ children: /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94255
+ src: icLoading,
94256
+ alt: "",
94257
+ className: "spin"
94258
+ })
94259
+ }),
94260
+ remainingTime && /*#__PURE__*/ jsxRuntimeExports.jsx(CountdownTime$2, {
94261
+ top: yFaceVerificationStepsWrapper - 30,
94262
+ children: remainingTime
94263
+ }),
94264
+ typeof lastErrorMsg === 'string' ? /*#__PURE__*/ jsxRuntimeExports.jsx(SimpleFaceDetectionError, {
94265
+ top: yFaceDetectionError - 15,
94266
+ className: "face-detection-error",
94267
+ children: lastErrorMsg
94268
+ }) : null
94269
+ ]
94270
+ })
94271
+ });
94272
+ }
94273
+ ActiveLivenessV1.propTypes = {
94274
+ apiCheck: PropTypes.bool,
94275
+ onLivenessDetectionDone: PropTypes.func,
94276
+ onClose: PropTypes.func,
94277
+ onError: PropTypes.func,
94278
+ onReset: PropTypes.func,
94279
+ captureFrameSettings: PropTypes.shape({}),
94280
+ onFramesCaptured: PropTypes.func,
94281
+ flipVideoHorizontal: PropTypes.bool,
94282
+ frontCamera: PropTypes.bool,
94283
+ isLoading: PropTypes.bool,
94284
+ customDirectionIcon: PropTypes.shape({}),
94285
+ customStepTimeConstraints: PropTypes.shape({}),
94286
+ onProcessing: PropTypes.func,
94287
+ customErrors: PropTypes.shape({}),
94288
+ apiCredentials: PropTypes.shape({
94289
+ accessKey: PropTypes.string,
94290
+ secretKey: PropTypes.string,
94291
+ apiUrl: PropTypes.string
94292
+ }),
94293
+ outputEncryptionSettings: PropTypes.shape({}),
94294
+ cameraScale: PropTypes.number,
94295
+ defaultCameraId: PropTypes.string,
94296
+ offsetFaceY: PropTypes.number,
94297
+ styledComponent: PropTypes.shape({
94298
+ CloseCameraButton: PropTypes.node
94299
+ }),
94300
+ serviceSettings: PropTypes.shape({})
94301
+ };
94302
+ ActiveLivenessV1.defaultProps = {
93786
94303
  apiCheck: false,
93787
94304
  onLivenessDetectionDone: null,
93788
94305
  onClose: null,
@@ -93850,90 +94367,295 @@
93850
94367
  }
93851
94368
  };
93852
94369
 
93853
- const LicenseProvider = ({ children, onError })=>{
93854
- const clientSettings = useClientSettings();
93855
- return /*#__PURE__*/ jsxRuntimeExports.jsx(dV.LicenseProvider, {
93856
- clientSettings: clientSettings,
93857
- onError: onError,
93858
- children: children
93859
- });
93860
- };
93861
-
93862
- // children prop is required but eslint is still complaining
94370
+ // To reduce the calculation for blazeface
94371
+ const videoSettings$2 = libExports.isMobile ? {
94372
+ width: {
94373
+ ideal: 640
94374
+ }
94375
+ } : null;
93863
94376
  // eslint-disable-next-line react/require-default-props
93864
- const SdkTimeoutProvider = ({ children, onError, type })=>{
93865
- const clientSettings = useClientSettings();
93866
- return /*#__PURE__*/ jsxRuntimeExports.jsx(dz.Provider, {
93867
- clientSettings: clientSettings,
93868
- type: type,
93869
- onError: onError,
93870
- children: children
93871
- });
93872
- };
93873
-
93874
- const DEFAULT_CUSTOM_TEXTS = {};
93875
- const SDKLocaleProvider = ({ children, customTexts = DEFAULT_CUSTOM_TEXTS })=>{
93876
- const clientSettings = useClientSettings();
93877
- const { lang, uiSettings } = no$1.useSDKSettings();
93878
- const localeValue = gM({
93879
- customTexts,
93880
- clientSettings,
93881
- lang,
93882
- uiSettings
93883
- });
93884
- return /*#__PURE__*/ jsxRuntimeExports.jsx(iF$1.SDKLocaleProvider, {
93885
- value: localeValue,
93886
- children: children
93887
- });
93888
- };
93889
-
93890
- const useMergeTheme = (options)=>{
93891
- const { customTheme, clientSettings, themeVersion, uiSettings, defaultThemes = defaultThemes$2 } = options;
93892
- const uiSettingsFromSdkSettings = dD.getWebSetting(clientSettings, 'data.settings.sdk_settings.ui_custom_settings');
93893
- const themeValue = reactExports.useMemo(()=>{
93894
- const mergedUiSettings = m3.selectUiSettings(uiSettings, uiSettingsFromSdkSettings);
93895
- const customThemeFromUiSettings = m3.mapUISettingsToCustomTheme(mergedUiSettings);
93896
- const finalCustomTheme = merge({}, customThemeFromUiSettings, customTheme);
94377
+ function PassiveLivenessOldV1(props) {
94378
+ const { apiCheck, onLivenessDetectionDone, captureFrameSettings, onFramesCaptured, frontCamera, flipVideoHorizontal, customDirectionIcon, customStepTimeConstraints, onProcessing, customErrors, apiCredentials, outputEncryptionSettings, cameraScale, defaultCameraId, passiveModeAuto, offsetFaceY, styledComponent, serviceSettings, onReset, isLoading } = props;
94379
+ const theme = nt$2();
94380
+ const { onErrorCallback, onCloseCallback } = useSDKCallback();
94381
+ const bgCameraMask = iH.useAsset('bg_camera_mask.png');
94382
+ const bgCameraMaskRed = iH.useAsset('bg_camera_mask_red.png');
94383
+ const icLoading = useThemeIcon('IDCapturing.loadingIcon.src', 'ic_loading.gif');
94384
+ const [uiSpacing, setUISpacing] = reactExports.useState({});
94385
+ const { yFaceDetectionError, yFaceVerificationStepsWrapper } = uiSpacing;
94386
+ const [remainingTime, setRemainingTime] = reactExports.useState('');
94387
+ const [currentOrientation, setCurrentOrientation] = reactExports.useState();
94388
+ const surroundStyle = reactExports.useMemo(()=>({
94389
+ backgroundColor: getTheme('Selfie.backgroundColor')({
94390
+ theme
94391
+ })
94392
+ }), [
94393
+ theme
94394
+ ]);
94395
+ const cropAreaDimension = reactExports.useCallback(({ lostY, height, clientHeight })=>{
94396
+ const yFaceDetectionErrorNew = lostY + 25;
94397
+ const yCropAreaNew = yFaceDetectionErrorNew + 30;
94398
+ const yFaceVerificationStepsWrapperNew = yCropAreaNew + height + 20;
94399
+ setUISpacing({
94400
+ yFaceDetectionError: yFaceDetectionErrorNew,
94401
+ yFaceVerificationStepsWrapper: yFaceVerificationStepsWrapperNew
94402
+ });
94403
+ const topLimit = Math.floor(lostY);
94404
+ const botLimit = Math.floor(clientHeight - lostY);
94405
+ let y = Math.floor(yCropAreaNew); // floor the y value to avoid blur line on ios safari
94406
+ if (offsetFaceY !== 0 && (y + offsetFaceY < topLimit || y + offsetFaceY + height > botLimit)) {
94407
+ onErrorCallback({
94408
+ code: `offsetFaceY must be in [-${y - topLimit}, ${botLimit - height - y}]`
94409
+ });
94410
+ } else {
94411
+ y += offsetFaceY;
94412
+ }
93897
94413
  return {
93898
- ...finalCustomTheme,
93899
- themeVersion,
93900
- defaultThemes
94414
+ y
93901
94415
  };
93902
94416
  }, [
93903
- customTheme,
93904
- defaultThemes,
93905
- themeVersion,
93906
- uiSettings,
93907
- uiSettingsFromSdkSettings
94417
+ offsetFaceY,
94418
+ onErrorCallback
93908
94419
  ]);
93909
- return themeValue;
93910
- };
93911
-
93912
- const DEFAULT_CUSTOM_THEME = {};
93913
- const SDKThemeProvider = ({ children, customTheme = DEFAULT_CUSTOM_THEME })=>{
93914
- const clientSettings = useClientSettings();
93915
- const { uiSettings, themeVersion } = no$1.useSDKSettings();
93916
- const themeValue = useMergeTheme({
93917
- customTheme,
93918
- clientSettings,
93919
- themeVersion,
93920
- uiSettings,
93921
- defaultThemes: defaultThemes$2
94420
+ const { shouldResetFlowOnOrientationChange, countdownToTakePicture, cropArea, curStepIndex, faceDetectionError, resetFlow, handleTriggerPassiveMode, handleVideoPlayed, refVideo, showCountdown, steps, refIsReseting, videoPlayed, warmupDone, showCaptureButton, shouldShowCountdown, showLoading } = usePassiveLiveness$1({
94421
+ currentOrientation,
94422
+ apiCheck,
94423
+ bgCameraMask,
94424
+ bgCameraMaskRed,
94425
+ surroundStyle,
94426
+ onLivenessDetectionDone,
94427
+ onError: onErrorCallback,
94428
+ cropAreaDimension,
94429
+ customDirectionIcon,
94430
+ captureFrameSettings,
94431
+ onFramesCaptured,
94432
+ setRemainingTime,
94433
+ customStepTimeConstraints,
94434
+ onProcessing,
94435
+ customErrors,
94436
+ apiCredentials,
94437
+ outputEncryptionSettings,
94438
+ cameraScale,
94439
+ passiveModeAuto,
94440
+ serviceSettings,
94441
+ onReset
93922
94442
  });
93923
- return /*#__PURE__*/ jsxRuntimeExports.jsx(ot$2, {
93924
- theme: themeValue,
93925
- children: children
94443
+ reactExports.useEffect(()=>{
94444
+ if (typeof steps[0]?.directionIcon === 'string') {
94445
+ Promise.all(steps.map((step)=>preloadImage$2(step.directionIcon)));
94446
+ }
94447
+ }, [
94448
+ steps
94449
+ ]);
94450
+ const { CloseCameraButton } = styledComponent;
94451
+ const progressCircleProps = getProgressCircleProps$2(props, theme);
94452
+ const currentProgress = !refIsReseting.current ? curStepIndex / steps.length * 100 : 0;
94453
+ // for error text
94454
+ const { lang } = no$1.useSDKSettings();
94455
+ const timer = reactExports.useRef(0);
94456
+ const lastError = reactExports.useRef({});
94457
+ const duration = reactExports.useRef(ra$1.ErrorDuration.SHORT);
94458
+ const lastErrorMsg = reactExports.useMemo(()=>{
94459
+ const { msg, duration: errorDuration = ra$1.ErrorDuration.SHORT } = faceDetectionError || {};
94460
+ const errorMsg = msg?.[lang];
94461
+ if (Date.now() - timer.current >= duration.current) {
94462
+ timer.current = Date.now();
94463
+ duration.current = errorDuration;
94464
+ lastError.current = errorMsg;
94465
+ }
94466
+ return lastError.current;
94467
+ // eslint-disable-next-line react-hooks/exhaustive-deps
94468
+ }, [
94469
+ faceDetectionError,
94470
+ curStepIndex
94471
+ ]); // curStepIndex is used to get the latest error when reset flow
94472
+ const onOrientationChange = reactExports.useCallback((curOrientation)=>{
94473
+ setCurrentOrientation(curOrientation);
94474
+ if (!shouldResetFlowOnOrientationChange) {
94475
+ if (curOrientation === MODE.LANDSCAPE) {
94476
+ refVideo.current?.pause();
94477
+ } else {
94478
+ refVideo.current?.play();
94479
+ }
94480
+ } else {
94481
+ resetFlow();
94482
+ }
94483
+ }, [
94484
+ refVideo,
94485
+ resetFlow,
94486
+ shouldResetFlowOnOrientationChange
94487
+ ]);
94488
+ return /*#__PURE__*/ jsxRuntimeExports.jsx(OrientationDetection, {
94489
+ onOrientationChange: onOrientationChange,
94490
+ children: /*#__PURE__*/ jsxRuntimeExports.jsxs(Camera$3, {
94491
+ frontCamera: frontCamera,
94492
+ onVideoPlayed: handleVideoPlayed,
94493
+ onClose: onCloseCallback,
94494
+ flipHorizontal: flipVideoHorizontal ?? frontCamera,
94495
+ ref: refVideo,
94496
+ videoSettings: videoSettings$2,
94497
+ onError: onErrorCallback,
94498
+ scale: cameraScale,
94499
+ defaultCameraId: defaultCameraId,
94500
+ closeButton: CloseCameraButton || null,
94501
+ children: [
94502
+ !warmupDone && /*#__PURE__*/ jsxRuntimeExports.jsx(WarmupPopup, {}),
94503
+ videoPlayed ? /*#__PURE__*/ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
94504
+ children: [
94505
+ typeof lastErrorMsg === 'string' ? /*#__PURE__*/ jsxRuntimeExports.jsx(SimpleFaceDetectionError, {
94506
+ top: yFaceDetectionError - 15,
94507
+ className: "face-detection-error",
94508
+ children: lastErrorMsg
94509
+ }) : null,
94510
+ cropArea.current ? /*#__PURE__*/ jsxRuntimeExports.jsxs(CropAreaOverlayWrapper, {
94511
+ x: `${cropArea.current.x}px`,
94512
+ y: `${cropArea.current.y}px`,
94513
+ width: `${cropArea.current.width}px`,
94514
+ height: `${cropArea.current.height}px`,
94515
+ surroundStyle: cropArea.current.surroundStyle,
94516
+ children: [
94517
+ /*#__PURE__*/ jsxRuntimeExports.jsx(StyledCameraMark$2, {}),
94518
+ /*#__PURE__*/ jsxRuntimeExports.jsx(OverlayProgressCircle$2, {
94519
+ ...progressCircleProps,
94520
+ progress: currentProgress,
94521
+ showErrorRing: !!faceDetectionError && getTheme('Selfie.progressCircle.showErrorRing')({
94522
+ theme
94523
+ })
94524
+ }),
94525
+ shouldShowCountdown ? /*#__PURE__*/ jsxRuntimeExports.jsx(CountDownOverlay$3, {
94526
+ children: countdownToTakePicture
94527
+ }) : null,
94528
+ faceDetectionError && /*#__PURE__*/ jsxRuntimeExports.jsx(ErrorOverlay$3, {})
94529
+ ]
94530
+ }) : null,
94531
+ remainingTime && /*#__PURE__*/ jsxRuntimeExports.jsx(CountdownTime$2, {
94532
+ top: yFaceVerificationStepsWrapper - 30,
94533
+ children: remainingTime
94534
+ }),
94535
+ showCaptureButton ? /*#__PURE__*/ jsxRuntimeExports.jsx(BottomButtonsOverlay$2, {
94536
+ children: /*#__PURE__*/ jsxRuntimeExports.jsx(Button$7, {
94537
+ onClick: handleTriggerPassiveMode,
94538
+ disabled: showCountdown,
94539
+ children: get(theme, 'Selfie.captureIcon.src') ? /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94540
+ src: get(theme, 'Selfie.captureIcon.src'),
94541
+ alt: ""
94542
+ }) : /*#__PURE__*/ jsxRuntimeExports.jsx(CameraIcon$1, {
94543
+ fillColor: "rgba(193, 197, 204, 1)"
94544
+ })
94545
+ })
94546
+ }) : null
94547
+ ]
94548
+ }) : null,
94549
+ (showLoading || isLoading) && /*#__PURE__*/ jsxRuntimeExports.jsx(LoadingIcon$5, {
94550
+ children: /*#__PURE__*/ jsxRuntimeExports.jsx("img", {
94551
+ src: icLoading,
94552
+ alt: ""
94553
+ })
94554
+ })
94555
+ ]
94556
+ })
93926
94557
  });
94558
+ }
94559
+ PassiveLivenessOldV1.propTypes = {
94560
+ apiCheck: PropTypes.bool,
94561
+ mode: PropTypes.string,
94562
+ onLivenessDetectionDone: PropTypes.func,
94563
+ onClose: PropTypes.func,
94564
+ onError: PropTypes.func,
94565
+ onReset: PropTypes.func,
94566
+ captureFrameSettings: PropTypes.shape({}),
94567
+ onFramesCaptured: PropTypes.func,
94568
+ frontCamera: PropTypes.bool,
94569
+ isLoading: PropTypes.bool,
94570
+ flipVideoHorizontal: PropTypes.bool,
94571
+ customDirectionIcon: PropTypes.shape({}),
94572
+ customStepTimeConstraints: PropTypes.shape({}),
94573
+ onProcessing: PropTypes.func,
94574
+ customErrors: PropTypes.shape({}),
94575
+ apiCredentials: PropTypes.shape({
94576
+ accessKey: PropTypes.string,
94577
+ secretKey: PropTypes.string,
94578
+ apiUrl: PropTypes.string
94579
+ }),
94580
+ outputEncryptionSettings: PropTypes.shape({}),
94581
+ cameraScale: PropTypes.number,
94582
+ defaultCameraId: PropTypes.string,
94583
+ passiveModeAuto: PropTypes.bool,
94584
+ offsetFaceY: PropTypes.number,
94585
+ styledComponent: PropTypes.shape({
94586
+ CloseCameraButton: PropTypes.node
94587
+ }),
94588
+ serviceSettings: PropTypes.shape({})
93927
94589
  };
93928
-
93929
- const WrapIndicatorContext = /*#__PURE__*/ reactExports.createContext('');
93930
- const WrapIndicatorProvider = ({ children, isWrappedBy = '' })=>{
93931
- return /*#__PURE__*/ jsxRuntimeExports.jsx(WrapIndicatorContext.Provider, {
93932
- value: isWrappedBy,
93933
- children: children
93934
- });
94590
+ PassiveLivenessOldV1.defaultProps = {
94591
+ apiCheck: false,
94592
+ mode: null,
94593
+ onLivenessDetectionDone: null,
94594
+ onClose: null,
94595
+ onError: ()=>{},
94596
+ onReset: ()=>{},
94597
+ captureFrameSettings: {
94598
+ enable: false,
94599
+ framesIntervalTime: 180,
94600
+ framesBatchLength: 0
94601
+ },
94602
+ onFramesCaptured: ()=>{},
94603
+ frontCamera: true,
94604
+ isLoading: false,
94605
+ flipVideoHorizontal: null,
94606
+ customDirectionIcon: {
94607
+ [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
94608
+ type: ra$1.FaceDirection.LEFT
94609
+ }),
94610
+ [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
94611
+ type: ra$1.FaceDirection.RIGHT
94612
+ }),
94613
+ [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
94614
+ type: ra$1.FaceDirection.UP
94615
+ }),
94616
+ [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
94617
+ type: ra$1.FaceDirection.FRONTAL
94618
+ })
94619
+ },
94620
+ customStepTimeConstraints: {
94621
+ [ra$1.FaceDirection.UP]: {
94622
+ delayTime: 0
94623
+ },
94624
+ [ra$1.FaceDirection.LEFT]: {
94625
+ delayTime: 0
94626
+ },
94627
+ [ra$1.FaceDirection.RIGHT]: {
94628
+ delayTime: 0
94629
+ },
94630
+ [ra$1.FaceDirection.FRONTAL]: {
94631
+ delayTime: 2000
94632
+ }
94633
+ },
94634
+ onProcessing: ()=>{},
94635
+ customErrors: null,
94636
+ apiCredentials: {
94637
+ accessKey: '',
94638
+ secretKey: '',
94639
+ apiUrl: ''
94640
+ },
94641
+ outputEncryptionSettings: null,
94642
+ cameraScale: 1,
94643
+ defaultCameraId: undefined,
94644
+ passiveModeAuto: false,
94645
+ offsetFaceY: 0,
94646
+ styledComponent: {
94647
+ CloseCameraButton: null
94648
+ },
94649
+ serviceSettings: {
94650
+ enableUploadFrames: true,
94651
+ enableUploadImages: true,
94652
+ enableVerifySanityPortrait: true,
94653
+ enableVerifySanityIDCard: true,
94654
+ enableVerifyFaceLiveness: true,
94655
+ enableDetectIDCardTampering: true,
94656
+ enableReadIDCardInfo: true
94657
+ }
93935
94658
  };
93936
- const useWrapIndicator = ()=>reactExports.useContext(WrapIndicatorContext);
93937
94659
 
93938
94660
  const withClientSettings$1 = (Component)=>{
93939
94661
  return function WrappedComponent(props) {
@@ -93950,16 +94672,20 @@
93950
94672
  });
93951
94673
  };
93952
94674
  };
93953
- const getLivenessModeComponent = (mode, CustomLivenessDetection)=>{
94675
+ const getLivenessModeComponent = (mode, CustomLivenessDetection, themeVersion)=>{
93954
94676
  let LivenessDetectionComponent = ActiveLiveness;
93955
94677
  if (mode === ra$1.Mode.ACTIVE) {
93956
- LivenessDetectionComponent = CustomLivenessDetection?.ActiveLiveness ?? ActiveLiveness;
94678
+ const DefaultActiveLiveness = themeVersion === 'v1' ? ActiveLivenessV1 : ActiveLiveness;
94679
+ LivenessDetectionComponent = CustomLivenessDetection?.ActiveLiveness ?? DefaultActiveLiveness;
93957
94680
  }
93958
94681
  if (mode === ra$1.Mode.PASSIVE_V2) {
93959
94682
  LivenessDetectionComponent = CustomLivenessDetection?.PassiveLivenessV2 ?? PassiveLiveness;
93960
94683
  }
93961
94684
  if (mode === ra$1.Mode.PASSIVE) {
93962
- LivenessDetectionComponent = CustomLivenessDetection?.PassiveLiveness ?? PassiveLiveness$1;
94685
+ // PassiveLivenessOldV1 to not be confused with PassiveLivenessV2 (which is totally new mode)
94686
+ // PassiveLivenessOldV1 refers to PassiveLiveness with themeVersion = "v1"
94687
+ const DefaultPassiveLiveness = themeVersion === 'v1' ? PassiveLivenessOldV1 : PassiveLiveness$1;
94688
+ LivenessDetectionComponent = CustomLivenessDetection?.PassiveLiveness ?? DefaultPassiveLiveness;
93963
94689
  }
93964
94690
  if (typeof mode === 'string' && mode.startsWith('flash')) {
93965
94691
  LivenessDetectionComponent = CustomLivenessDetection?.FlashLiveness ?? FlashLiveness;
@@ -93972,7 +94698,7 @@
93972
94698
  }, livenessComponent: CustomLivenessDetection, customTheme = {}, customTexts, ...props } = livenessProps;
93973
94699
  const { mode, flowId, onError: onErrorFromProp, onClose: onCloseFromProp, debug, onLivenessDetectionDone } = props;
93974
94700
  const clientSettings = useClientSettings();
93975
- const { billingSettings: clientBillingSettings, enableBilling } = no$1.useSDKSettings();
94701
+ const { billingSettings: clientBillingSettings, enableBilling, themeVersion } = no$1.useSDKSettings();
93976
94702
  const billingSettingsFromSdkSettings = dD.getWebSetting(clientSettings, 'data.settings.sdk_settings.billing_settings.billing_config');
93977
94703
  const billingUrl = dD.getWebSetting(clientSettings, 'data.settings.sdk_settings.billing_settings.url');
93978
94704
  const { submitBilling } = gR({
@@ -94058,7 +94784,7 @@
94058
94784
  billingInput,
94059
94785
  onCloseFromProp
94060
94786
  ]);
94061
- const LivenessDetectionComponent = getLivenessModeComponent(mode, CustomLivenessDetection);
94787
+ const LivenessDetectionComponent = getLivenessModeComponent(mode, CustomLivenessDetection, themeVersion);
94062
94788
  return /*#__PURE__*/ jsxRuntimeExports.jsx(DebugProvider, {
94063
94789
  debug: debug,
94064
94790
  children: /*#__PURE__*/ jsxRuntimeExports.jsx(SDKCallbackProvider, {
@@ -113999,16 +114725,16 @@
113999
114725
  frontCamera: true,
114000
114726
  flipVideoHorizontal: null,
114001
114727
  customDirectionIcon: {
114002
- [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
114728
+ [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114003
114729
  type: ra$1.FaceDirection.LEFT
114004
114730
  }),
114005
- [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
114731
+ [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114006
114732
  type: ra$1.FaceDirection.RIGHT
114007
114733
  }),
114008
- [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
114734
+ [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114009
114735
  type: ra$1.FaceDirection.UP
114010
114736
  }),
114011
- [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
114737
+ [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114012
114738
  type: ra$1.FaceDirection.FRONTAL
114013
114739
  })
114014
114740
  },
@@ -114620,16 +115346,16 @@
114620
115346
  frontCamera: true,
114621
115347
  flipVideoHorizontal: null,
114622
115348
  customDirectionIcon: {
114623
- [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
115349
+ [ra$1.FaceDirection.LEFT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114624
115350
  type: ra$1.FaceDirection.LEFT
114625
115351
  }),
114626
- [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
115352
+ [ra$1.FaceDirection.RIGHT]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114627
115353
  type: ra$1.FaceDirection.RIGHT
114628
115354
  }),
114629
- [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
115355
+ [ra$1.FaceDirection.UP]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114630
115356
  type: ra$1.FaceDirection.UP
114631
115357
  }),
114632
- [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon, {
115358
+ [ra$1.FaceDirection.FRONTAL]: /*#__PURE__*/ jsxRuntimeExports.jsx(DirectionIcon$1, {
114633
115359
  type: ra$1.FaceDirection.FRONTAL
114634
115360
  })
114635
115361
  },
@@ -116411,7 +117137,7 @@
116411
117137
  qr_tooltip: 'Đặt mã QR vào khung hình và thử dịch chuyển camera (ra xa hoặc gần) để quét được mã QR'
116412
117138
  };
116413
117139
 
116414
- const defaultAssetRoot = "https://vision-cdn.trustingsocial.com/tvweb-sdk.lotte/0.0.0-beta.20251215-093759/assets";
117140
+ const defaultAssetRoot = "https://vision-cdn.trustingsocial.com/tvweb-sdk.lotte/0.0.0-beta.20251215-165409/assets";
116415
117141
  class TVWebSDK extends gU {
116416
117142
  constructor(props){
116417
117143
  super({