choco-one-click-payment 1.1.28 → 1.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +1170 -1097
- package/dist/index.js +64 -49
- package/index.d.ts +7 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -15,6 +15,8 @@ const mt = {
|
|
|
15
15
|
willGet: "Получите",
|
|
16
16
|
total: "Итого",
|
|
17
17
|
instead: "вместо",
|
|
18
|
+
coupon: "Списать купон",
|
|
19
|
+
couponUntil: "до {date}",
|
|
18
20
|
addCard: "Добавление карты",
|
|
19
21
|
editCards: "Редактировать карты",
|
|
20
22
|
cardDeleted: "Карта успешно удалена",
|
|
@@ -51,6 +53,8 @@ const mt = {
|
|
|
51
53
|
willGet: "You will get",
|
|
52
54
|
total: "Total",
|
|
53
55
|
instead: "instead",
|
|
56
|
+
coupon: "Apply coupon",
|
|
57
|
+
couponUntil: "until {date}",
|
|
54
58
|
addCard: "Add card",
|
|
55
59
|
editCards: "Edit cards",
|
|
56
60
|
cardDeleted: "Card successfully deleted",
|
|
@@ -87,6 +91,8 @@ const mt = {
|
|
|
87
91
|
willGet: "Аласыз",
|
|
88
92
|
total: "Барлығы",
|
|
89
93
|
instead: "орнына",
|
|
94
|
+
coupon: "Купонды пайдалану",
|
|
95
|
+
couponUntil: "{date} дейін",
|
|
90
96
|
addCard: "Картаны қосу",
|
|
91
97
|
editCards: "Карталарды өңдеу",
|
|
92
98
|
cardDeleted: "Карта жойылды",
|
|
@@ -123,6 +129,8 @@ const mt = {
|
|
|
123
129
|
willGet: "მიიღებთ",
|
|
124
130
|
total: "ჯამი",
|
|
125
131
|
instead: "ნაცვლად",
|
|
132
|
+
coupon: "კუპონის გამოყენება",
|
|
133
|
+
couponUntil: "{date}-მდე",
|
|
126
134
|
addCard: "ბარათის დამატება",
|
|
127
135
|
editCards: "ბარათების რედაქტირება",
|
|
128
136
|
cardDeleted: "ბარათი წაშლილია",
|
|
@@ -161,13 +169,13 @@ function Bt() {
|
|
|
161
169
|
const H = [];
|
|
162
170
|
for (let e = 0; e < 256; ++e)
|
|
163
171
|
H.push((e + 256).toString(16).slice(1));
|
|
164
|
-
function It(e,
|
|
165
|
-
return H[e[
|
|
172
|
+
function It(e, t = 0) {
|
|
173
|
+
return H[e[t + 0]] + H[e[t + 1]] + H[e[t + 2]] + H[e[t + 3]] + "-" + H[e[t + 4]] + H[e[t + 5]] + "-" + H[e[t + 6]] + H[e[t + 7]] + "-" + H[e[t + 8]] + H[e[t + 9]] + "-" + H[e[t + 10]] + H[e[t + 11]] + H[e[t + 12]] + H[e[t + 13]] + H[e[t + 14]] + H[e[t + 15]];
|
|
166
174
|
}
|
|
167
175
|
const Qt = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), ze = {
|
|
168
176
|
randomUUID: Qt
|
|
169
177
|
};
|
|
170
|
-
function Be(e,
|
|
178
|
+
function Be(e, t, o) {
|
|
171
179
|
if (ze.randomUUID && !e)
|
|
172
180
|
return ze.randomUUID();
|
|
173
181
|
e = e || {};
|
|
@@ -175,8 +183,8 @@ function Be(e, n, o) {
|
|
|
175
183
|
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, It(i);
|
|
176
184
|
}
|
|
177
185
|
const Ke = "choco_device_id";
|
|
178
|
-
function
|
|
179
|
-
const i = Number(e), s =
|
|
186
|
+
function Z(e, t = "ru", o = "KZT") {
|
|
187
|
+
const i = Number(e), s = t === "ru" ? "ru-RU" : "en-US";
|
|
180
188
|
return `${i.toLocaleString(s)} ${bt[o]}`;
|
|
181
189
|
}
|
|
182
190
|
function nt() {
|
|
@@ -185,18 +193,18 @@ function nt() {
|
|
|
185
193
|
}
|
|
186
194
|
function Ce() {
|
|
187
195
|
if (typeof window > "u") return !1;
|
|
188
|
-
const e = window.safari !== void 0,
|
|
196
|
+
const e = window.safari !== void 0, t = window.navigator.userAgent || "", o = !!t.match(/iPad/i) || !!t.match(/iPhone/i), i = !!t.match(/WebKit/i), s = o && i && !t.match(/CriOS/i);
|
|
189
197
|
return e || s;
|
|
190
198
|
}
|
|
191
199
|
function rt() {
|
|
192
200
|
if (typeof navigator > "u") return 0;
|
|
193
|
-
const e = navigator.userAgent || "",
|
|
194
|
-
return (e.indexOf("iPhone") > -1 || e.indexOf("iPad") > -1) &&
|
|
201
|
+
const e = navigator.userAgent || "", t = e.indexOf("OS");
|
|
202
|
+
return (e.indexOf("iPhone") > -1 || e.indexOf("iPad") > -1) && t > -1 ? Number(e.substring(t + 3, t + 6).replace("_", ".")) : 0;
|
|
195
203
|
}
|
|
196
204
|
function De() {
|
|
197
205
|
var u;
|
|
198
206
|
if (typeof navigator > "u") return "unknown";
|
|
199
|
-
const e = (navigator.userAgent || navigator.vendor || "").toLowerCase(),
|
|
207
|
+
const e = (navigator.userAgent || navigator.vendor || "").toLowerCase(), t = (navigator.platform || "").toLowerCase(), o = (((u = navigator.userAgentData) == null ? void 0 : u.platform) || "").toLowerCase(), i = `${e} ${t} ${o}`;
|
|
200
208
|
return /iphone|ipad|ipod/.test(i) || i.includes("macintosh") && typeof document < "u" && "ontouchend" in document ? "ios" : i.includes("android") ? "android" : i.includes("windows") ? "windows" : i.includes("mac") ? "macos" : "other";
|
|
201
209
|
}
|
|
202
210
|
function ye() {
|
|
@@ -206,15 +214,15 @@ function ye() {
|
|
|
206
214
|
}
|
|
207
215
|
function me(e) {
|
|
208
216
|
if (typeof sessionStorage > "u") return !1;
|
|
209
|
-
const
|
|
210
|
-
return
|
|
217
|
+
const t = e === "apple_pay" ? "disableApplePay" : e === "google_pay" ? "disableGooglePay" : null;
|
|
218
|
+
return t ? sessionStorage.getItem(t) === "true" : !1;
|
|
211
219
|
}
|
|
212
220
|
function St(e) {
|
|
213
221
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
214
222
|
}
|
|
215
223
|
var fe = { exports: {} }, Pt = fe.exports, We;
|
|
216
224
|
function kt() {
|
|
217
|
-
return We || (We = 1, (function(e,
|
|
225
|
+
return We || (We = 1, (function(e, t) {
|
|
218
226
|
(function(i, s) {
|
|
219
227
|
e.exports = s();
|
|
220
228
|
})(Pt, function() {
|
|
@@ -225,70 +233,70 @@ function kt() {
|
|
|
225
233
|
/***/
|
|
226
234
|
382: (
|
|
227
235
|
/***/
|
|
228
|
-
(function(a, d,
|
|
236
|
+
(function(a, d, f) {
|
|
229
237
|
Object.defineProperty(d, "__esModule", {
|
|
230
238
|
value: !0
|
|
231
239
|
}), d.Centrifuge = void 0;
|
|
232
|
-
var C =
|
|
233
|
-
function
|
|
234
|
-
return
|
|
240
|
+
var C = P(f(187)), S = P(f(471)), _ = f(147), E = f(853);
|
|
241
|
+
function P(g) {
|
|
242
|
+
return g && g.__esModule ? g : { default: g };
|
|
235
243
|
}
|
|
236
|
-
function
|
|
244
|
+
function T(g) {
|
|
237
245
|
"@babel/helpers - typeof";
|
|
238
|
-
return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ?
|
|
246
|
+
return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? T = function(p) {
|
|
239
247
|
return typeof p;
|
|
240
|
-
} :
|
|
248
|
+
} : T = function(p) {
|
|
241
249
|
return p && typeof Symbol == "function" && p.constructor === Symbol && p !== Symbol.prototype ? "symbol" : typeof p;
|
|
242
|
-
},
|
|
250
|
+
}, T(g);
|
|
243
251
|
}
|
|
244
|
-
function
|
|
245
|
-
if (!(
|
|
252
|
+
function B(g, h) {
|
|
253
|
+
if (!(g instanceof h))
|
|
246
254
|
throw new TypeError("Cannot call a class as a function");
|
|
247
255
|
}
|
|
248
|
-
function
|
|
256
|
+
function k(g, h) {
|
|
249
257
|
for (var p = 0; p < h.length; p++) {
|
|
250
258
|
var A = h[p];
|
|
251
|
-
A.enumerable = A.enumerable || !1, A.configurable = !0, "value" in A && (A.writable = !0), Object.defineProperty(
|
|
259
|
+
A.enumerable = A.enumerable || !1, A.configurable = !0, "value" in A && (A.writable = !0), Object.defineProperty(g, A.key, A);
|
|
252
260
|
}
|
|
253
261
|
}
|
|
254
|
-
function
|
|
255
|
-
return h &&
|
|
262
|
+
function b(g, h, p) {
|
|
263
|
+
return h && k(g.prototype, h), g;
|
|
256
264
|
}
|
|
257
|
-
function w(
|
|
265
|
+
function w(g, h) {
|
|
258
266
|
if (typeof h != "function" && h !== null)
|
|
259
267
|
throw new TypeError("Super expression must either be null or a function");
|
|
260
|
-
|
|
268
|
+
g.prototype = Object.create(h && h.prototype, { constructor: { value: g, writable: !0, configurable: !0 } }), h && L(g, h);
|
|
261
269
|
}
|
|
262
|
-
function L(
|
|
263
|
-
return L = Object.setPrototypeOf || function(A,
|
|
264
|
-
return A.__proto__ =
|
|
265
|
-
}, L(
|
|
270
|
+
function L(g, h) {
|
|
271
|
+
return L = Object.setPrototypeOf || function(A, n) {
|
|
272
|
+
return A.__proto__ = n, A;
|
|
273
|
+
}, L(g, h);
|
|
266
274
|
}
|
|
267
|
-
function O(
|
|
268
|
-
var h =
|
|
275
|
+
function O(g) {
|
|
276
|
+
var h = q();
|
|
269
277
|
return function() {
|
|
270
|
-
var A =
|
|
278
|
+
var A = F(g), n;
|
|
271
279
|
if (h) {
|
|
272
|
-
var r =
|
|
273
|
-
|
|
280
|
+
var r = F(this).constructor;
|
|
281
|
+
n = Reflect.construct(A, arguments, r);
|
|
274
282
|
} else
|
|
275
|
-
|
|
276
|
-
return
|
|
283
|
+
n = A.apply(this, arguments);
|
|
284
|
+
return J(this, n);
|
|
277
285
|
};
|
|
278
286
|
}
|
|
279
|
-
function
|
|
280
|
-
if (h && (
|
|
287
|
+
function J(g, h) {
|
|
288
|
+
if (h && (T(h) === "object" || typeof h == "function"))
|
|
281
289
|
return h;
|
|
282
290
|
if (h !== void 0)
|
|
283
291
|
throw new TypeError("Derived constructors may only return object or undefined");
|
|
284
|
-
return
|
|
292
|
+
return N(g);
|
|
285
293
|
}
|
|
286
|
-
function
|
|
287
|
-
if (
|
|
294
|
+
function N(g) {
|
|
295
|
+
if (g === void 0)
|
|
288
296
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
289
|
-
return
|
|
297
|
+
return g;
|
|
290
298
|
}
|
|
291
|
-
function
|
|
299
|
+
function q() {
|
|
292
300
|
if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham) return !1;
|
|
293
301
|
if (typeof Proxy == "function") return !0;
|
|
294
302
|
try {
|
|
@@ -298,17 +306,17 @@ function kt() {
|
|
|
298
306
|
return !1;
|
|
299
307
|
}
|
|
300
308
|
}
|
|
301
|
-
function
|
|
302
|
-
return
|
|
309
|
+
function F(g) {
|
|
310
|
+
return F = Object.setPrototypeOf ? Object.getPrototypeOf : function(p) {
|
|
303
311
|
return p.__proto__ || Object.getPrototypeOf(p);
|
|
304
|
-
},
|
|
312
|
+
}, F(g);
|
|
305
313
|
}
|
|
306
|
-
var
|
|
307
|
-
w(p,
|
|
314
|
+
var x = "timeout", M = "connection closed", m = /* @__PURE__ */ (function(g) {
|
|
315
|
+
w(p, g);
|
|
308
316
|
var h = O(p);
|
|
309
|
-
function p(A,
|
|
317
|
+
function p(A, n) {
|
|
310
318
|
var r;
|
|
311
|
-
return
|
|
319
|
+
return B(this, p), r = h.call(this), r._url = A, r._websocket = null, r._sockjs = null, r._isSockjs = !1, r._xmlhttprequest = null, r._binary = !1, r._methodType = null, r._pushType = null, r._encoder = null, r._decoder = null, r._status = "disconnected", r._reconnect = !0, r._reconnecting = !1, r._transport = null, r._transportName = null, r._transportClosed = !0, r._messageId = 0, r._clientID = null, r._refreshRequired = !1, r._subs = {}, r._serverSubs = {}, r._lastSeq = {}, r._lastGen = {}, r._lastOffset = {}, r._lastEpoch = {}, r._messages = [], r._isBatching = !1, r._isSubscribeBatching = !1, r._privateChannels = {}, r._numRefreshFailed = 0, r._refreshTimeout = null, r._pingTimeout = null, r._pongTimeout = null, r._subRefreshTimeouts = {}, r._retries = 0, r._callbacks = {}, r._latency = null, r._latencyStart = null, r._connectData = null, r._token = null, r._xhrID = 0, r._xhrs = {}, r._dispatchPromise = Promise.resolve(), r._protocol = "", r._config = {
|
|
312
320
|
protocol: "",
|
|
313
321
|
debug: !1,
|
|
314
322
|
name: "js",
|
|
@@ -341,64 +349,64 @@ function kt() {
|
|
|
341
349
|
subRefreshInterval: 1e3,
|
|
342
350
|
onPrivateSubscribe: null,
|
|
343
351
|
disableWithCredentials: !1
|
|
344
|
-
}, r._configure(
|
|
352
|
+
}, r._configure(n), r;
|
|
345
353
|
}
|
|
346
|
-
return
|
|
354
|
+
return b(p, [{
|
|
347
355
|
key: "setToken",
|
|
348
|
-
value: function(
|
|
349
|
-
this._token =
|
|
356
|
+
value: function(n) {
|
|
357
|
+
this._token = n;
|
|
350
358
|
}
|
|
351
359
|
}, {
|
|
352
360
|
key: "setConnectData",
|
|
353
|
-
value: function(
|
|
354
|
-
this._connectData =
|
|
361
|
+
value: function(n) {
|
|
362
|
+
this._connectData = n;
|
|
355
363
|
}
|
|
356
364
|
}, {
|
|
357
365
|
key: "setRefreshHeaders",
|
|
358
|
-
value: function(
|
|
359
|
-
this._config.refreshHeaders =
|
|
366
|
+
value: function(n) {
|
|
367
|
+
this._config.refreshHeaders = n;
|
|
360
368
|
}
|
|
361
369
|
}, {
|
|
362
370
|
key: "setRefreshParams",
|
|
363
|
-
value: function(
|
|
364
|
-
this._config.refreshParams =
|
|
371
|
+
value: function(n) {
|
|
372
|
+
this._config.refreshParams = n;
|
|
365
373
|
}
|
|
366
374
|
}, {
|
|
367
375
|
key: "setRefreshData",
|
|
368
|
-
value: function(
|
|
369
|
-
this._config.refreshData =
|
|
376
|
+
value: function(n) {
|
|
377
|
+
this._config.refreshData = n;
|
|
370
378
|
}
|
|
371
379
|
}, {
|
|
372
380
|
key: "setSubscribeHeaders",
|
|
373
|
-
value: function(
|
|
374
|
-
this._config.subscribeHeaders =
|
|
381
|
+
value: function(n) {
|
|
382
|
+
this._config.subscribeHeaders = n;
|
|
375
383
|
}
|
|
376
384
|
}, {
|
|
377
385
|
key: "setSubscribeParams",
|
|
378
|
-
value: function(
|
|
379
|
-
this._config.subscribeParams =
|
|
386
|
+
value: function(n) {
|
|
387
|
+
this._config.subscribeParams = n;
|
|
380
388
|
}
|
|
381
389
|
}, {
|
|
382
390
|
key: "_ajax",
|
|
383
|
-
value: function(
|
|
384
|
-
var v = this,
|
|
385
|
-
this._debug("sending AJAX request to",
|
|
386
|
-
var
|
|
387
|
-
this._xmlhttprequest !== null ?
|
|
391
|
+
value: function(n, r, c, l, y) {
|
|
392
|
+
var v = this, Q = "";
|
|
393
|
+
this._debug("sending AJAX request to", n, "with data", JSON.stringify(l));
|
|
394
|
+
var I;
|
|
395
|
+
this._xmlhttprequest !== null ? I = new this._xmlhttprequest() : I = f.g.XMLHttpRequest ? new f.g.XMLHttpRequest() : new f.g.ActiveXObject("Microsoft.XMLHTTP");
|
|
388
396
|
for (var R in r)
|
|
389
|
-
r.hasOwnProperty(R) && (
|
|
390
|
-
|
|
397
|
+
r.hasOwnProperty(R) && (Q.length > 0 && (Q += "&"), Q += encodeURIComponent(R) + "=" + encodeURIComponent(r[R]));
|
|
398
|
+
Q.length > 0 && (Q = "?" + Q), I.open("POST", n + Q, !0), "withCredentials" in I && (I.withCredentials = !this._config.disableWithCredentials), I.setRequestHeader("X-Requested-With", "XMLHttpRequest"), I.setRequestHeader("Content-Type", "application/json");
|
|
391
399
|
for (var X in c)
|
|
392
|
-
c.hasOwnProperty(X) &&
|
|
393
|
-
return
|
|
394
|
-
if (
|
|
395
|
-
if (
|
|
400
|
+
c.hasOwnProperty(X) && I.setRequestHeader(X, c[X]);
|
|
401
|
+
return I.onreadystatechange = function() {
|
|
402
|
+
if (I.readyState === 4)
|
|
403
|
+
if (I.status === 200) {
|
|
396
404
|
var U, D = !1;
|
|
397
405
|
try {
|
|
398
|
-
U = JSON.parse(
|
|
406
|
+
U = JSON.parse(I.responseText), D = !0;
|
|
399
407
|
} catch {
|
|
400
408
|
y({
|
|
401
|
-
error: "Invalid JSON. Data was: " +
|
|
409
|
+
error: "Invalid JSON. Data was: " + I.responseText,
|
|
402
410
|
status: 200,
|
|
403
411
|
data: null
|
|
404
412
|
});
|
|
@@ -408,13 +416,13 @@ function kt() {
|
|
|
408
416
|
status: 200
|
|
409
417
|
});
|
|
410
418
|
} else
|
|
411
|
-
v._log("wrong status code in AJAX response",
|
|
412
|
-
status:
|
|
419
|
+
v._log("wrong status code in AJAX response", I.status), y({
|
|
420
|
+
status: I.status,
|
|
413
421
|
data: null
|
|
414
422
|
});
|
|
415
423
|
}, setTimeout(function() {
|
|
416
|
-
return
|
|
417
|
-
}, 20),
|
|
424
|
+
return I.send(JSON.stringify(l));
|
|
425
|
+
}, 20), I;
|
|
418
426
|
}
|
|
419
427
|
}, {
|
|
420
428
|
key: "_log",
|
|
@@ -429,28 +437,28 @@ function kt() {
|
|
|
429
437
|
}, {
|
|
430
438
|
key: "_websocketSupported",
|
|
431
439
|
value: function() {
|
|
432
|
-
return this._config.websocket !== null ? !0 : !(typeof WebSocket != "function" && (typeof WebSocket > "u" ? "undefined" :
|
|
440
|
+
return this._config.websocket !== null ? !0 : !(typeof WebSocket != "function" && (typeof WebSocket > "u" ? "undefined" : T(WebSocket)) !== "object");
|
|
433
441
|
}
|
|
434
442
|
}, {
|
|
435
443
|
key: "_setFormat",
|
|
436
|
-
value: function(
|
|
437
|
-
if (!this._formatOverride(
|
|
438
|
-
if (
|
|
444
|
+
value: function(n) {
|
|
445
|
+
if (!this._formatOverride(n)) {
|
|
446
|
+
if (n === "protobuf")
|
|
439
447
|
throw new Error("not implemented by JSON only Centrifuge client – use client with Protobuf");
|
|
440
|
-
this._binary = !1, this._methodType =
|
|
448
|
+
this._binary = !1, this._methodType = _.JsonMethodType, this._pushType = _.JsonPushType, this._encoder = new _.JsonEncoder(), this._decoder = new _.JsonDecoder();
|
|
441
449
|
}
|
|
442
450
|
}
|
|
443
451
|
}, {
|
|
444
452
|
key: "_formatOverride",
|
|
445
|
-
value: function(
|
|
453
|
+
value: function(n) {
|
|
446
454
|
return !1;
|
|
447
455
|
}
|
|
448
456
|
}, {
|
|
449
457
|
key: "_configure",
|
|
450
|
-
value: function(
|
|
451
|
-
if (!("Promise" in
|
|
458
|
+
value: function(n) {
|
|
459
|
+
if (!("Promise" in f.g))
|
|
452
460
|
throw new Error("Promise polyfill required");
|
|
453
|
-
if ((0, E.extend)(this._config,
|
|
461
|
+
if ((0, E.extend)(this._config, n || {}), this._debug("centrifuge config", this._config), !this._url)
|
|
454
462
|
throw new Error("url required");
|
|
455
463
|
var r = (0, E.startsWith)(this._url, "ws") && this._url.indexOf("format=protobuf") > -1;
|
|
456
464
|
if (r || this._config.protocol === "protobuf")
|
|
@@ -464,9 +472,9 @@ function kt() {
|
|
|
464
472
|
if (this._debug("client will try to connect to SockJS endpoint"), this._config.sockjs !== null)
|
|
465
473
|
this._debug("SockJS explicitly provided in options"), this._sockjs = this._config.sockjs;
|
|
466
474
|
else {
|
|
467
|
-
if (typeof
|
|
475
|
+
if (typeof f.g.SockJS > "u")
|
|
468
476
|
throw new Error("SockJS not found, use ws:// in url or include SockJS");
|
|
469
|
-
this._debug("use globally defined SockJS"), this._sockjs =
|
|
477
|
+
this._debug("use globally defined SockJS"), this._sockjs = f.g.SockJS;
|
|
470
478
|
}
|
|
471
479
|
else
|
|
472
480
|
this._debug("client will connect to websocket endpoint");
|
|
@@ -474,8 +482,8 @@ function kt() {
|
|
|
474
482
|
}
|
|
475
483
|
}, {
|
|
476
484
|
key: "_setStatus",
|
|
477
|
-
value: function(
|
|
478
|
-
this._status !==
|
|
485
|
+
value: function(n) {
|
|
486
|
+
this._status !== n && (this._debug("Status", this._status, "->", n), this._status = n);
|
|
479
487
|
}
|
|
480
488
|
}, {
|
|
481
489
|
key: "_isDisconnected",
|
|
@@ -505,24 +513,24 @@ function kt() {
|
|
|
505
513
|
}, {
|
|
506
514
|
key: "_getRetryInterval",
|
|
507
515
|
value: function() {
|
|
508
|
-
var
|
|
509
|
-
return this._retries += 1,
|
|
516
|
+
var n = (0, E.backoff)(this._retries, this._config.minRetry, this._config.maxRetry);
|
|
517
|
+
return this._retries += 1, n;
|
|
510
518
|
}
|
|
511
519
|
}, {
|
|
512
520
|
key: "_abortInflightXHRs",
|
|
513
521
|
value: function() {
|
|
514
|
-
for (var
|
|
522
|
+
for (var n in this._xhrs) {
|
|
515
523
|
try {
|
|
516
|
-
this._xhrs[
|
|
524
|
+
this._xhrs[n].abort();
|
|
517
525
|
} catch (r) {
|
|
518
526
|
this._debug("error aborting xhr", r);
|
|
519
527
|
}
|
|
520
|
-
delete this._xhrs[
|
|
528
|
+
delete this._xhrs[n];
|
|
521
529
|
}
|
|
522
530
|
}
|
|
523
531
|
}, {
|
|
524
532
|
key: "_clearConnectedState",
|
|
525
|
-
value: function(
|
|
533
|
+
value: function(n) {
|
|
526
534
|
this._clientID = null, this._stopPing();
|
|
527
535
|
for (var r in this._callbacks)
|
|
528
536
|
if (this._callbacks.hasOwnProperty(r)) {
|
|
@@ -539,11 +547,11 @@ function kt() {
|
|
|
539
547
|
for (var y in this._subs)
|
|
540
548
|
if (this._subs.hasOwnProperty(y)) {
|
|
541
549
|
var v = this._subs[y];
|
|
542
|
-
|
|
550
|
+
n ? (v._isSuccess() && (v._triggerUnsubscribe(), v._recover = !0), v._shouldResubscribe() && v._setSubscribing()) : v._setUnsubscribed();
|
|
543
551
|
}
|
|
544
552
|
this._abortInflightXHRs(), this._refreshTimeout !== null && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null);
|
|
545
|
-
for (var
|
|
546
|
-
this._subRefreshTimeouts.hasOwnProperty(
|
|
553
|
+
for (var Q in this._subRefreshTimeouts)
|
|
554
|
+
this._subRefreshTimeouts.hasOwnProperty(Q) && this._subRefreshTimeouts[Q] && this._clearSubRefreshTimeout(Q);
|
|
547
555
|
this._subRefreshTimeouts = {}, this._reconnect || (this._subs = {});
|
|
548
556
|
}
|
|
549
557
|
}, {
|
|
@@ -553,24 +561,24 @@ function kt() {
|
|
|
553
561
|
}
|
|
554
562
|
}, {
|
|
555
563
|
key: "_transportSend",
|
|
556
|
-
value: function(
|
|
557
|
-
if (!
|
|
564
|
+
value: function(n) {
|
|
565
|
+
if (!n.length)
|
|
558
566
|
return !0;
|
|
559
567
|
if (!this._isTransportOpen()) {
|
|
560
|
-
for (var r in
|
|
568
|
+
for (var r in n) {
|
|
561
569
|
var c = r.id;
|
|
562
570
|
if (c in this._callbacks) {
|
|
563
571
|
var l = this._callbacks[c];
|
|
564
572
|
clearTimeout(this._callbacks[c].timeout), delete this._callbacks[c];
|
|
565
573
|
var y = l.errback;
|
|
566
574
|
y({
|
|
567
|
-
error: this._createErrorObject(
|
|
575
|
+
error: this._createErrorObject(M, 0)
|
|
568
576
|
});
|
|
569
577
|
}
|
|
570
578
|
}
|
|
571
579
|
return !1;
|
|
572
580
|
}
|
|
573
|
-
return this._transport.send(this._encoder.encodeCommands(
|
|
581
|
+
return this._transport.send(this._encoder.encodeCommands(n)), !0;
|
|
574
582
|
}
|
|
575
583
|
}, {
|
|
576
584
|
key: "_getSubProtocol",
|
|
@@ -580,7 +588,7 @@ function kt() {
|
|
|
580
588
|
}, {
|
|
581
589
|
key: "_setupTransport",
|
|
582
590
|
value: function() {
|
|
583
|
-
var
|
|
591
|
+
var n = this;
|
|
584
592
|
if (this._isSockjs = !1, this._sockjs !== null) {
|
|
585
593
|
var r = {
|
|
586
594
|
transports: this._config.sockjsTransports
|
|
@@ -594,72 +602,72 @@ function kt() {
|
|
|
594
602
|
c !== "" ? this._transport = new this._websocket(this._url, c) : this._transport = new this._websocket(this._url), this._binary === !0 && (this._transport.binaryType = "arraybuffer");
|
|
595
603
|
}
|
|
596
604
|
this._transport.onopen = function() {
|
|
597
|
-
|
|
598
|
-
return
|
|
599
|
-
}) :
|
|
605
|
+
n._transportClosed = !1, n._isSockjs ? (n._transportName = "sockjs-" + n._transport.transport, n._transport.onheartbeat = function() {
|
|
606
|
+
return n._restartPing();
|
|
607
|
+
}) : n._transportName = "websocket";
|
|
600
608
|
var l = {
|
|
601
609
|
// method: this._methodType.CONNECT
|
|
602
610
|
};
|
|
603
|
-
(
|
|
611
|
+
(n._token || n._connectData || n._config.name || n._config.version) && (l.params = {}), n._token && (l.params.token = n._token), n._connectData && (l.params.data = n._connectData), n._config.name && (l.params.name = n._config.name), n._config.version && (l.params.version = n._config.version);
|
|
604
612
|
var y = {}, v = !1;
|
|
605
|
-
for (var
|
|
606
|
-
if (
|
|
613
|
+
for (var Q in n._serverSubs)
|
|
614
|
+
if (n._serverSubs.hasOwnProperty(Q) && n._serverSubs[Q].recoverable) {
|
|
607
615
|
v = !0;
|
|
608
|
-
var
|
|
616
|
+
var I = {
|
|
609
617
|
recover: !0
|
|
610
618
|
};
|
|
611
|
-
|
|
619
|
+
n._serverSubs[Q].seq || n._serverSubs[Q].gen ? (n._serverSubs[Q].seq && (I.seq = n._serverSubs[Q].seq), n._serverSubs[Q].gen && (I.gen = n._serverSubs[Q].gen)) : n._serverSubs[Q].offset && (I.offset = n._serverSubs[Q].offset), n._serverSubs[Q].epoch && (I.epoch = n._serverSubs[Q].epoch), y[Q] = I;
|
|
612
620
|
}
|
|
613
|
-
v && (l.params || (l.params = {}), l.params.subs = y),
|
|
614
|
-
|
|
621
|
+
v && (l.params || (l.params = {}), l.params.subs = y), n._latencyStart = /* @__PURE__ */ new Date(), n._call(l).then(function(R) {
|
|
622
|
+
n._connectResponse(n._decoder.decodeCommandResult(n._methodType.CONNECT, R.result), v), R.next && R.next();
|
|
615
623
|
}, function(R) {
|
|
616
624
|
var X = R.error;
|
|
617
|
-
X.code === 109 && (
|
|
625
|
+
X.code === 109 && (n._refreshRequired = !0), n._disconnect("connect error", !0), R.next && R.next();
|
|
618
626
|
});
|
|
619
627
|
}, this._transport.onerror = function(l) {
|
|
620
|
-
|
|
628
|
+
n._debug("transport level error", l);
|
|
621
629
|
}, this._transport.onclose = function(l) {
|
|
622
|
-
|
|
623
|
-
var y =
|
|
630
|
+
n._transportClosed = !0;
|
|
631
|
+
var y = M, v = !0;
|
|
624
632
|
if (l && "reason" in l && l.reason)
|
|
625
633
|
try {
|
|
626
|
-
var
|
|
627
|
-
|
|
634
|
+
var Q = JSON.parse(l.reason);
|
|
635
|
+
n._debug("reason is an advice object", Q), y = Q.reason, v = Q.reconnect;
|
|
628
636
|
} catch {
|
|
629
|
-
y = l.reason,
|
|
637
|
+
y = l.reason, n._debug("reason is a plain string", y);
|
|
630
638
|
}
|
|
631
|
-
if (
|
|
639
|
+
if (n._config.onTransportClose !== null && n._config.onTransportClose({
|
|
632
640
|
event: l,
|
|
633
641
|
reason: y,
|
|
634
642
|
reconnect: v
|
|
635
|
-
}),
|
|
636
|
-
|
|
637
|
-
var
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
},
|
|
643
|
+
}), n._disconnect(y, v), n._reconnect === !0) {
|
|
644
|
+
n._reconnecting = !0;
|
|
645
|
+
var I = n._getRetryInterval();
|
|
646
|
+
n._debug("reconnect after " + I + " milliseconds"), setTimeout(function() {
|
|
647
|
+
n._reconnect === !0 && (n._refreshRequired ? n._refresh() : n._connect());
|
|
648
|
+
}, I);
|
|
641
649
|
}
|
|
642
650
|
}, this._transport.onmessage = function(l) {
|
|
643
|
-
|
|
651
|
+
n._dataReceived(l.data);
|
|
644
652
|
};
|
|
645
653
|
}
|
|
646
654
|
}, {
|
|
647
655
|
key: "rpc",
|
|
648
|
-
value: function(
|
|
649
|
-
return this._rpc("",
|
|
656
|
+
value: function(n) {
|
|
657
|
+
return this._rpc("", n);
|
|
650
658
|
}
|
|
651
659
|
}, {
|
|
652
660
|
key: "namedRPC",
|
|
653
|
-
value: function(
|
|
654
|
-
return this._rpc(
|
|
661
|
+
value: function(n, r) {
|
|
662
|
+
return this._rpc(n, r);
|
|
655
663
|
}
|
|
656
664
|
}, {
|
|
657
665
|
key: "_rpc",
|
|
658
|
-
value: function(
|
|
666
|
+
value: function(n, r) {
|
|
659
667
|
var c = {
|
|
660
668
|
data: r
|
|
661
669
|
};
|
|
662
|
-
|
|
670
|
+
n !== "" && (c.method = n);
|
|
663
671
|
var l = {
|
|
664
672
|
method: this._methodType.RPC,
|
|
665
673
|
params: c
|
|
@@ -670,23 +678,23 @@ function kt() {
|
|
|
670
678
|
}
|
|
671
679
|
}, {
|
|
672
680
|
key: "send",
|
|
673
|
-
value: function(
|
|
681
|
+
value: function(n) {
|
|
674
682
|
var r = {
|
|
675
683
|
method: this._methodType.SEND,
|
|
676
684
|
params: {
|
|
677
|
-
data:
|
|
685
|
+
data: n
|
|
678
686
|
}
|
|
679
687
|
};
|
|
680
688
|
if (!this.isConnected())
|
|
681
|
-
return Promise.reject(this._createErrorObject(
|
|
689
|
+
return Promise.reject(this._createErrorObject(M, 0));
|
|
682
690
|
var c = this._transportSend([r]);
|
|
683
|
-
return c ? Promise.resolve({}) : Promise.reject(this._createErrorObject(
|
|
691
|
+
return c ? Promise.resolve({}) : Promise.reject(this._createErrorObject(M, 0));
|
|
684
692
|
}
|
|
685
693
|
}, {
|
|
686
694
|
key: "_getHistoryParams",
|
|
687
|
-
value: function(
|
|
695
|
+
value: function(n, r) {
|
|
688
696
|
var c = {
|
|
689
|
-
channel:
|
|
697
|
+
channel: n
|
|
690
698
|
};
|
|
691
699
|
return r !== void 0 && (r.since && (c.since = {
|
|
692
700
|
offset: r.since.offset
|
|
@@ -694,23 +702,23 @@ function kt() {
|
|
|
694
702
|
}
|
|
695
703
|
}, {
|
|
696
704
|
key: "_methodCall",
|
|
697
|
-
value: function(
|
|
705
|
+
value: function(n, r) {
|
|
698
706
|
var c = this;
|
|
699
707
|
return this.isConnected() ? new Promise(function(l, y) {
|
|
700
|
-
c._call(
|
|
701
|
-
l(r(c._decoder.decodeCommandResult(
|
|
708
|
+
c._call(n).then(function(v) {
|
|
709
|
+
l(r(c._decoder.decodeCommandResult(n.method, v.result))), v.next && v.next();
|
|
702
710
|
}, function(v) {
|
|
703
711
|
y(v.error), v.next && v.next();
|
|
704
712
|
});
|
|
705
|
-
}) : Promise.reject(this._createErrorObject(
|
|
713
|
+
}) : Promise.reject(this._createErrorObject(M, 0));
|
|
706
714
|
}
|
|
707
715
|
}, {
|
|
708
716
|
key: "publish",
|
|
709
|
-
value: function(
|
|
717
|
+
value: function(n, r) {
|
|
710
718
|
var c = {
|
|
711
719
|
method: this._methodType.PUBLISH,
|
|
712
720
|
params: {
|
|
713
|
-
channel:
|
|
721
|
+
channel: n,
|
|
714
722
|
data: r
|
|
715
723
|
}
|
|
716
724
|
};
|
|
@@ -720,8 +728,8 @@ function kt() {
|
|
|
720
728
|
}
|
|
721
729
|
}, {
|
|
722
730
|
key: "history",
|
|
723
|
-
value: function(
|
|
724
|
-
var c = this._getHistoryParams(
|
|
731
|
+
value: function(n, r) {
|
|
732
|
+
var c = this._getHistoryParams(n, r), l = {
|
|
725
733
|
method: this._methodType.HISTORY,
|
|
726
734
|
params: c
|
|
727
735
|
};
|
|
@@ -735,11 +743,11 @@ function kt() {
|
|
|
735
743
|
}
|
|
736
744
|
}, {
|
|
737
745
|
key: "presence",
|
|
738
|
-
value: function(
|
|
746
|
+
value: function(n) {
|
|
739
747
|
var r = {
|
|
740
748
|
method: this._methodType.PRESENCE,
|
|
741
749
|
params: {
|
|
742
|
-
channel:
|
|
750
|
+
channel: n
|
|
743
751
|
}
|
|
744
752
|
};
|
|
745
753
|
return this._methodCall(r, function(c) {
|
|
@@ -750,11 +758,11 @@ function kt() {
|
|
|
750
758
|
}
|
|
751
759
|
}, {
|
|
752
760
|
key: "presenceStats",
|
|
753
|
-
value: function(
|
|
761
|
+
value: function(n) {
|
|
754
762
|
var r = {
|
|
755
763
|
method: this._methodType.PRESENCE_STATS,
|
|
756
764
|
params: {
|
|
757
|
-
channel:
|
|
765
|
+
channel: n
|
|
758
766
|
}
|
|
759
767
|
};
|
|
760
768
|
return this._methodCall(r, function(c) {
|
|
@@ -766,8 +774,8 @@ function kt() {
|
|
|
766
774
|
}
|
|
767
775
|
}, {
|
|
768
776
|
key: "_dataReceived",
|
|
769
|
-
value: function(
|
|
770
|
-
var r = this, c = this._decoder.decodeReplies(
|
|
777
|
+
value: function(n) {
|
|
778
|
+
var r = this, c = this._decoder.decodeReplies(n);
|
|
771
779
|
this._dispatchPromise = this._dispatchPromise.then(function() {
|
|
772
780
|
var l;
|
|
773
781
|
r._dispatchPromise = new Promise(function(y) {
|
|
@@ -777,13 +785,13 @@ function kt() {
|
|
|
777
785
|
}
|
|
778
786
|
}, {
|
|
779
787
|
key: "_dispatchSynchronized",
|
|
780
|
-
value: function(
|
|
781
|
-
var c = this, l = Promise.resolve(), y = function(
|
|
782
|
-
|
|
783
|
-
return c._dispatchReply(
|
|
788
|
+
value: function(n, r) {
|
|
789
|
+
var c = this, l = Promise.resolve(), y = function(I) {
|
|
790
|
+
n.hasOwnProperty(I) && (l = l.then(function() {
|
|
791
|
+
return c._dispatchReply(n[I]);
|
|
784
792
|
}));
|
|
785
793
|
};
|
|
786
|
-
for (var v in
|
|
794
|
+
for (var v in n)
|
|
787
795
|
y(v);
|
|
788
796
|
l = l.then(function() {
|
|
789
797
|
r();
|
|
@@ -791,21 +799,21 @@ function kt() {
|
|
|
791
799
|
}
|
|
792
800
|
}, {
|
|
793
801
|
key: "_dispatchReply",
|
|
794
|
-
value: function(
|
|
802
|
+
value: function(n) {
|
|
795
803
|
var r, c = new Promise(function(y) {
|
|
796
804
|
r = y;
|
|
797
805
|
});
|
|
798
|
-
if (
|
|
806
|
+
if (n == null)
|
|
799
807
|
return this._debug("dispatch: got undefined or null reply"), r(), c;
|
|
800
|
-
var l =
|
|
801
|
-
return l && l > 0 ? this._handleReply(
|
|
808
|
+
var l = n.id;
|
|
809
|
+
return l && l > 0 ? this._handleReply(n, r) : this._handlePush(n.result, r), c;
|
|
802
810
|
}
|
|
803
811
|
}, {
|
|
804
812
|
key: "_call",
|
|
805
|
-
value: function(
|
|
813
|
+
value: function(n) {
|
|
806
814
|
var r = this;
|
|
807
815
|
return new Promise(function(c, l) {
|
|
808
|
-
var y = r._addMessage(
|
|
816
|
+
var y = r._addMessage(n);
|
|
809
817
|
r._registerCall(y, c, l);
|
|
810
818
|
});
|
|
811
819
|
}
|
|
@@ -820,19 +828,19 @@ function kt() {
|
|
|
820
828
|
}
|
|
821
829
|
}, {
|
|
822
830
|
key: "_disconnect",
|
|
823
|
-
value: function(
|
|
831
|
+
value: function(n, r) {
|
|
824
832
|
var c = r || !1;
|
|
825
833
|
if (c === !1 && (this._reconnect = !1), this._isDisconnected()) {
|
|
826
834
|
c || this._clearConnectedState(c);
|
|
827
835
|
return;
|
|
828
836
|
}
|
|
829
|
-
if (this._clearConnectedState(c), this._debug("disconnected:",
|
|
837
|
+
if (this._clearConnectedState(c), this._debug("disconnected:", n, r), this._setStatus("disconnected"), this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null), this._reconnecting === !1) {
|
|
830
838
|
for (var l in this._serverSubs)
|
|
831
839
|
this._serverSubs.hasOwnProperty(l) && this.emit("unsubscribe", {
|
|
832
840
|
channel: l
|
|
833
841
|
});
|
|
834
842
|
this.emit("disconnect", {
|
|
835
|
-
reason:
|
|
843
|
+
reason: n,
|
|
836
844
|
reconnect: c
|
|
837
845
|
});
|
|
838
846
|
}
|
|
@@ -846,43 +854,43 @@ function kt() {
|
|
|
846
854
|
}, {
|
|
847
855
|
key: "_refresh",
|
|
848
856
|
value: function() {
|
|
849
|
-
var
|
|
857
|
+
var n = this;
|
|
850
858
|
if (this._debug("refresh token"), this._config.refreshAttempts === 0) {
|
|
851
859
|
this._debug("refresh attempts set to 0, do not send refresh request at all"), this._refreshFailed();
|
|
852
860
|
return;
|
|
853
861
|
}
|
|
854
862
|
this._refreshTimeout !== null && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null);
|
|
855
|
-
var r = this._clientID, c = this._newXHRID(), l = function(
|
|
856
|
-
if (c in
|
|
857
|
-
if (
|
|
858
|
-
if (
|
|
859
|
-
|
|
863
|
+
var r = this._clientID, c = this._newXHRID(), l = function(I) {
|
|
864
|
+
if (c in n._xhrs && delete n._xhrs[c], n._clientID === r) {
|
|
865
|
+
if (I.error || I.status !== 200) {
|
|
866
|
+
if (I.error ? n._debug("error refreshing connection token", I.error) : n._debug("error refreshing connection token: wrong status code", I.status), n._numRefreshFailed++, n._refreshTimeout !== null && (clearTimeout(n._refreshTimeout), n._refreshTimeout = null), n._config.refreshAttempts !== null && n._numRefreshFailed >= n._config.refreshAttempts) {
|
|
867
|
+
n._refreshFailed();
|
|
860
868
|
return;
|
|
861
869
|
}
|
|
862
|
-
var R = Math.round(Math.random() * 1e3 * Math.max(
|
|
863
|
-
|
|
864
|
-
return
|
|
870
|
+
var R = Math.round(Math.random() * 1e3 * Math.max(n._numRefreshFailed, 20)), X = n._config.refreshInterval + R;
|
|
871
|
+
n._refreshTimeout = setTimeout(function() {
|
|
872
|
+
return n._refresh();
|
|
865
873
|
}, X);
|
|
866
874
|
return;
|
|
867
875
|
}
|
|
868
|
-
if (
|
|
869
|
-
|
|
876
|
+
if (n._numRefreshFailed = 0, n._token = I.data.token, !n._token) {
|
|
877
|
+
n._refreshFailed();
|
|
870
878
|
return;
|
|
871
879
|
}
|
|
872
|
-
if (
|
|
873
|
-
|
|
880
|
+
if (n._isDisconnected() && n._reconnect)
|
|
881
|
+
n._debug("token refreshed, connect from scratch"), n._connect();
|
|
874
882
|
else {
|
|
875
|
-
|
|
883
|
+
n._debug("send refreshed token");
|
|
876
884
|
var U = {
|
|
877
|
-
method:
|
|
885
|
+
method: n._methodType.REFRESH,
|
|
878
886
|
params: {
|
|
879
|
-
token:
|
|
887
|
+
token: n._token
|
|
880
888
|
}
|
|
881
889
|
};
|
|
882
|
-
|
|
883
|
-
|
|
890
|
+
n._call(U).then(function(D) {
|
|
891
|
+
n._refreshResponse(n._decoder.decodeCommandResult(n._methodType.REFRESH, D.result)), D.next && D.next();
|
|
884
892
|
}, function(D) {
|
|
885
|
-
|
|
893
|
+
n._refreshError(D.error), D.next && D.next();
|
|
886
894
|
});
|
|
887
895
|
}
|
|
888
896
|
}
|
|
@@ -897,9 +905,9 @@ function kt() {
|
|
|
897
905
|
}
|
|
898
906
|
}, {
|
|
899
907
|
key: "_refreshError",
|
|
900
|
-
value: function(
|
|
908
|
+
value: function(n) {
|
|
901
909
|
var r = this;
|
|
902
|
-
this._debug("refresh error",
|
|
910
|
+
this._debug("refresh error", n), this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null);
|
|
903
911
|
var c = this._config.refreshInterval + Math.round(Math.random() * 1e3);
|
|
904
912
|
this._refreshTimeout = setTimeout(function() {
|
|
905
913
|
return r._refresh();
|
|
@@ -907,11 +915,11 @@ function kt() {
|
|
|
907
915
|
}
|
|
908
916
|
}, {
|
|
909
917
|
key: "_refreshResponse",
|
|
910
|
-
value: function(
|
|
918
|
+
value: function(n) {
|
|
911
919
|
var r = this;
|
|
912
|
-
this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null),
|
|
920
|
+
this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null), n.expires && (this._clientID = n.client, this._refreshTimeout = setTimeout(function() {
|
|
913
921
|
return r._refresh();
|
|
914
|
-
}, this._getTTLMilliseconds(
|
|
922
|
+
}, this._getTTLMilliseconds(n.ttl)));
|
|
915
923
|
}
|
|
916
924
|
}, {
|
|
917
925
|
key: "_newXHRID",
|
|
@@ -920,10 +928,10 @@ function kt() {
|
|
|
920
928
|
}
|
|
921
929
|
}, {
|
|
922
930
|
key: "_subRefresh",
|
|
923
|
-
value: function(
|
|
931
|
+
value: function(n) {
|
|
924
932
|
var r = this;
|
|
925
|
-
if (this._debug("refresh subscription token for channel",
|
|
926
|
-
this._clearSubRefreshTimeout(
|
|
933
|
+
if (this._debug("refresh subscription token for channel", n), this._subRefreshTimeouts[n] !== void 0)
|
|
934
|
+
this._clearSubRefreshTimeout(n);
|
|
927
935
|
else
|
|
928
936
|
return;
|
|
929
937
|
var c = this._clientID, l = this._newXHRID(), y = function(R) {
|
|
@@ -934,92 +942,92 @@ function kt() {
|
|
|
934
942
|
var D = R.data.channels[U];
|
|
935
943
|
D.channel && (X[D.channel] = D.token);
|
|
936
944
|
}
|
|
937
|
-
var re = X[
|
|
945
|
+
var re = X[n];
|
|
938
946
|
if (re) {
|
|
939
947
|
var Pe = {
|
|
940
948
|
method: r._methodType.SUB_REFRESH,
|
|
941
949
|
params: {
|
|
942
|
-
channel:
|
|
950
|
+
channel: n,
|
|
943
951
|
token: re
|
|
944
952
|
}
|
|
945
|
-
}, le = r._getSub(
|
|
953
|
+
}, le = r._getSub(n);
|
|
946
954
|
le !== null && r._call(Pe).then(function(W) {
|
|
947
|
-
r._subRefreshResponse(
|
|
955
|
+
r._subRefreshResponse(n, r._decoder.decodeCommandResult(r._methodType.SUB_REFRESH, W.result)), W.next && W.next();
|
|
948
956
|
}, function(W) {
|
|
949
|
-
r._subRefreshError(
|
|
957
|
+
r._subRefreshError(n, W.error), W.next && W.next();
|
|
950
958
|
});
|
|
951
959
|
}
|
|
952
960
|
}
|
|
953
961
|
}, v = {
|
|
954
962
|
client: this._clientID,
|
|
955
|
-
channels: [
|
|
963
|
+
channels: [n]
|
|
956
964
|
};
|
|
957
965
|
if (this._config.onPrivateSubscribe !== null)
|
|
958
966
|
this._config.onPrivateSubscribe({
|
|
959
967
|
data: v
|
|
960
968
|
}, y);
|
|
961
969
|
else {
|
|
962
|
-
var
|
|
963
|
-
this._xhrs[l] =
|
|
970
|
+
var Q = this._ajax(this._config.subscribeEndpoint, this._config.subscribeParams, this._config.subscribeHeaders, v, y);
|
|
971
|
+
this._xhrs[l] = Q;
|
|
964
972
|
}
|
|
965
973
|
}
|
|
966
974
|
}, {
|
|
967
975
|
key: "_clearSubRefreshTimeout",
|
|
968
|
-
value: function(
|
|
969
|
-
this._subRefreshTimeouts[
|
|
976
|
+
value: function(n) {
|
|
977
|
+
this._subRefreshTimeouts[n] !== void 0 && (clearTimeout(this._subRefreshTimeouts[n]), delete this._subRefreshTimeouts[n]);
|
|
970
978
|
}
|
|
971
979
|
}, {
|
|
972
980
|
key: "_subRefreshError",
|
|
973
|
-
value: function(
|
|
981
|
+
value: function(n, r) {
|
|
974
982
|
var c = this;
|
|
975
|
-
this._debug("subscription refresh error",
|
|
976
|
-
var l = this._getSub(
|
|
983
|
+
this._debug("subscription refresh error", n, r), this._clearSubRefreshTimeout(n);
|
|
984
|
+
var l = this._getSub(n);
|
|
977
985
|
if (l !== null) {
|
|
978
986
|
var y = Math.round(Math.random() * 1e3), v = setTimeout(function() {
|
|
979
|
-
return c._subRefresh(
|
|
987
|
+
return c._subRefresh(n);
|
|
980
988
|
}, this._config.subRefreshInterval + y);
|
|
981
|
-
this._subRefreshTimeouts[
|
|
989
|
+
this._subRefreshTimeouts[n] = v;
|
|
982
990
|
}
|
|
983
991
|
}
|
|
984
992
|
}, {
|
|
985
993
|
key: "_subRefreshResponse",
|
|
986
|
-
value: function(
|
|
994
|
+
value: function(n, r) {
|
|
987
995
|
var c = this;
|
|
988
|
-
this._debug("subscription refresh success",
|
|
989
|
-
var l = this._getSub(
|
|
996
|
+
this._debug("subscription refresh success", n), this._clearSubRefreshTimeout(n);
|
|
997
|
+
var l = this._getSub(n);
|
|
990
998
|
if (l !== null && r.expires === !0) {
|
|
991
999
|
var y = setTimeout(function() {
|
|
992
|
-
return c._subRefresh(
|
|
1000
|
+
return c._subRefresh(n);
|
|
993
1001
|
}, this._getTTLMilliseconds(r.ttl));
|
|
994
|
-
this._subRefreshTimeouts[
|
|
1002
|
+
this._subRefreshTimeouts[n] = y;
|
|
995
1003
|
}
|
|
996
1004
|
}
|
|
997
1005
|
}, {
|
|
998
1006
|
key: "_subscribe",
|
|
999
|
-
value: function(
|
|
1007
|
+
value: function(n, r) {
|
|
1000
1008
|
var c = this;
|
|
1001
|
-
this._debug("subscribing on",
|
|
1002
|
-
var l =
|
|
1003
|
-
if (l in this._subs || (this._subs[l] =
|
|
1004
|
-
|
|
1009
|
+
this._debug("subscribing on", n.channel);
|
|
1010
|
+
var l = n.channel;
|
|
1011
|
+
if (l in this._subs || (this._subs[l] = n), !this.isConnected()) {
|
|
1012
|
+
n._setNew();
|
|
1005
1013
|
return;
|
|
1006
1014
|
}
|
|
1007
|
-
|
|
1015
|
+
n._setSubscribing(r);
|
|
1008
1016
|
var y = {
|
|
1009
1017
|
method: this._methodType.SUBSCRIBE,
|
|
1010
1018
|
params: {
|
|
1011
1019
|
channel: l
|
|
1012
1020
|
}
|
|
1013
1021
|
};
|
|
1014
|
-
if (
|
|
1015
|
-
this._isSubscribeBatching ? this._privateChannels[l] = !0 : (this.startSubscribeBatching(), this._subscribe(
|
|
1022
|
+
if (n._subscribeData && (y.params.data = n._subscribeData), (0, E.startsWith)(l, this._config.privateChannelPrefix))
|
|
1023
|
+
this._isSubscribeBatching ? this._privateChannels[l] = !0 : (this.startSubscribeBatching(), this._subscribe(n), this.stopSubscribeBatching());
|
|
1016
1024
|
else {
|
|
1017
|
-
var v =
|
|
1025
|
+
var v = n._needRecover();
|
|
1018
1026
|
if (v === !0) {
|
|
1019
1027
|
y.params.recover = !0;
|
|
1020
|
-
var
|
|
1021
|
-
if (
|
|
1022
|
-
|
|
1028
|
+
var Q = this._getLastSeq(l), I = this._getLastGen(l);
|
|
1029
|
+
if (Q || I)
|
|
1030
|
+
Q && (y.params.seq = Q), I && (y.params.gen = I);
|
|
1023
1031
|
else {
|
|
1024
1032
|
var R = this._getLastOffset(l);
|
|
1025
1033
|
R && (y.params.offset = R);
|
|
@@ -1036,85 +1044,85 @@ function kt() {
|
|
|
1036
1044
|
}
|
|
1037
1045
|
}, {
|
|
1038
1046
|
key: "_unsubscribe",
|
|
1039
|
-
value: function(
|
|
1040
|
-
delete this._subs[
|
|
1047
|
+
value: function(n) {
|
|
1048
|
+
delete this._subs[n.channel], delete this._lastOffset[n.channel], delete this._lastSeq[n.channel], delete this._lastGen[n.channel], this.isConnected() && this._addMessage({
|
|
1041
1049
|
method: this._methodType.UNSUBSCRIBE,
|
|
1042
1050
|
params: {
|
|
1043
|
-
channel:
|
|
1051
|
+
channel: n.channel
|
|
1044
1052
|
}
|
|
1045
1053
|
});
|
|
1046
1054
|
}
|
|
1047
1055
|
}, {
|
|
1048
1056
|
key: "_getTTLMilliseconds",
|
|
1049
|
-
value: function(
|
|
1050
|
-
return Math.min(
|
|
1057
|
+
value: function(n) {
|
|
1058
|
+
return Math.min(n * 1e3, 2147483647);
|
|
1051
1059
|
}
|
|
1052
1060
|
}, {
|
|
1053
1061
|
key: "getSub",
|
|
1054
|
-
value: function(
|
|
1055
|
-
return this._getSub(
|
|
1062
|
+
value: function(n) {
|
|
1063
|
+
return this._getSub(n);
|
|
1056
1064
|
}
|
|
1057
1065
|
}, {
|
|
1058
1066
|
key: "_getSub",
|
|
1059
|
-
value: function(
|
|
1060
|
-
var r = this._subs[
|
|
1067
|
+
value: function(n) {
|
|
1068
|
+
var r = this._subs[n];
|
|
1061
1069
|
return r || null;
|
|
1062
1070
|
}
|
|
1063
1071
|
}, {
|
|
1064
1072
|
key: "_isServerSub",
|
|
1065
|
-
value: function(
|
|
1066
|
-
return this._serverSubs[
|
|
1073
|
+
value: function(n) {
|
|
1074
|
+
return this._serverSubs[n] !== void 0;
|
|
1067
1075
|
}
|
|
1068
1076
|
}, {
|
|
1069
1077
|
key: "_connectResponse",
|
|
1070
|
-
value: function(
|
|
1078
|
+
value: function(n, r) {
|
|
1071
1079
|
var c = this, l = this._reconnecting;
|
|
1072
1080
|
if (this._reconnecting = !1, this._resetRetry(), this._refreshRequired = !1, !this.isConnected()) {
|
|
1073
|
-
this._latencyStart !== null && (this._latency = (/* @__PURE__ */ new Date()).getTime() - this._latencyStart.getTime(), this._latencyStart = null), this._clientID =
|
|
1081
|
+
this._latencyStart !== null && (this._latency = (/* @__PURE__ */ new Date()).getTime() - this._latencyStart.getTime(), this._latencyStart = null), this._clientID = n.client, this._setStatus("connected"), this._refreshTimeout && clearTimeout(this._refreshTimeout), n.expires && (this._refreshTimeout = setTimeout(function() {
|
|
1074
1082
|
return c._refresh();
|
|
1075
|
-
}, this._getTTLMilliseconds(
|
|
1083
|
+
}, this._getTTLMilliseconds(n.ttl))), this.startBatching(), this.startSubscribeBatching();
|
|
1076
1084
|
for (var y in this._subs)
|
|
1077
1085
|
if (this._subs.hasOwnProperty(y)) {
|
|
1078
1086
|
var v = this._subs[y];
|
|
1079
1087
|
v._shouldResubscribe() && this._subscribe(v, l);
|
|
1080
1088
|
}
|
|
1081
1089
|
this.stopSubscribeBatching(), this.stopBatching(), this._startPing();
|
|
1082
|
-
var
|
|
1083
|
-
client:
|
|
1090
|
+
var Q = {
|
|
1091
|
+
client: n.client,
|
|
1084
1092
|
transport: this._transportName,
|
|
1085
1093
|
latency: this._latency
|
|
1086
1094
|
};
|
|
1087
|
-
|
|
1095
|
+
n.data && (Q.data = n.data), this.emit("connect", Q), n.subs && this._processServerSubs(n.subs);
|
|
1088
1096
|
}
|
|
1089
1097
|
}
|
|
1090
1098
|
}, {
|
|
1091
1099
|
key: "_processServerSubs",
|
|
1092
|
-
value: function(
|
|
1093
|
-
for (var r in
|
|
1094
|
-
if (
|
|
1095
|
-
var c =
|
|
1100
|
+
value: function(n) {
|
|
1101
|
+
for (var r in n)
|
|
1102
|
+
if (n.hasOwnProperty(r)) {
|
|
1103
|
+
var c = n[r], l = this._serverSubs[r] !== void 0, y = {
|
|
1096
1104
|
channel: r,
|
|
1097
1105
|
isResubscribe: l
|
|
1098
1106
|
};
|
|
1099
1107
|
y = this._expandSubscribeContext(y, c), this.emit("subscribe", y);
|
|
1100
1108
|
}
|
|
1101
|
-
for (var v in
|
|
1102
|
-
if (
|
|
1103
|
-
var
|
|
1104
|
-
if (
|
|
1105
|
-
var
|
|
1106
|
-
if (
|
|
1107
|
-
|
|
1108
|
-
for (var R in
|
|
1109
|
-
|
|
1109
|
+
for (var v in n)
|
|
1110
|
+
if (n.hasOwnProperty(v)) {
|
|
1111
|
+
var Q = n[v];
|
|
1112
|
+
if (Q.recovered) {
|
|
1113
|
+
var I = Q.publications;
|
|
1114
|
+
if (I && I.length > 0) {
|
|
1115
|
+
I.length > 1 && (!I[0].offset || I[0].offset > I[1].offset) && (I = I.reverse());
|
|
1116
|
+
for (var R in I)
|
|
1117
|
+
I.hasOwnProperty(R) && this._handlePublication(v, I[R]);
|
|
1110
1118
|
}
|
|
1111
1119
|
}
|
|
1112
1120
|
this._serverSubs[v] = {
|
|
1113
|
-
seq:
|
|
1114
|
-
gen:
|
|
1115
|
-
offset:
|
|
1116
|
-
epoch:
|
|
1117
|
-
recoverable:
|
|
1121
|
+
seq: Q.seq,
|
|
1122
|
+
gen: Q.gen,
|
|
1123
|
+
offset: Q.offset,
|
|
1124
|
+
epoch: Q.epoch,
|
|
1125
|
+
recoverable: Q.recoverable
|
|
1118
1126
|
};
|
|
1119
1127
|
}
|
|
1120
1128
|
}
|
|
@@ -1126,15 +1134,15 @@ function kt() {
|
|
|
1126
1134
|
}, {
|
|
1127
1135
|
key: "_startPing",
|
|
1128
1136
|
value: function() {
|
|
1129
|
-
var
|
|
1137
|
+
var n = this;
|
|
1130
1138
|
this._config.ping !== !0 || this._config.pingInterval <= 0 || this.isConnected() && (this._pingTimeout = setTimeout(function() {
|
|
1131
|
-
if (!
|
|
1132
|
-
|
|
1139
|
+
if (!n.isConnected()) {
|
|
1140
|
+
n._stopPing();
|
|
1133
1141
|
return;
|
|
1134
1142
|
}
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
},
|
|
1143
|
+
n.ping(), n._pongTimeout = setTimeout(function() {
|
|
1144
|
+
n._disconnect("no ping", !0);
|
|
1145
|
+
}, n._config.pongWaitTimeout);
|
|
1138
1146
|
}, this._config.pingInterval));
|
|
1139
1147
|
}
|
|
1140
1148
|
}, {
|
|
@@ -1144,10 +1152,10 @@ function kt() {
|
|
|
1144
1152
|
}
|
|
1145
1153
|
}, {
|
|
1146
1154
|
key: "_subscribeError",
|
|
1147
|
-
value: function(
|
|
1148
|
-
var c = this._getSub(
|
|
1155
|
+
value: function(n, r) {
|
|
1156
|
+
var c = this._getSub(n);
|
|
1149
1157
|
if (c && c._isSubscribing()) {
|
|
1150
|
-
if (r.code === 0 && r.message ===
|
|
1158
|
+
if (r.code === 0 && r.message === x) {
|
|
1151
1159
|
this._disconnect("timeout", !0);
|
|
1152
1160
|
return;
|
|
1153
1161
|
}
|
|
@@ -1156,57 +1164,57 @@ function kt() {
|
|
|
1156
1164
|
}
|
|
1157
1165
|
}, {
|
|
1158
1166
|
key: "_expandSubscribeContext",
|
|
1159
|
-
value: function(
|
|
1167
|
+
value: function(n, r) {
|
|
1160
1168
|
var c = !1;
|
|
1161
|
-
"recovered" in r && (c = r.recovered),
|
|
1169
|
+
"recovered" in r && (c = r.recovered), n.recovered = c;
|
|
1162
1170
|
var l = !1;
|
|
1163
1171
|
"positioned" in r && (l = r.positioned);
|
|
1164
1172
|
var y = "";
|
|
1165
1173
|
"epoch" in r && (y = r.epoch);
|
|
1166
1174
|
var v = 0;
|
|
1167
|
-
return "offset" in r && (v = r.offset), l && (
|
|
1175
|
+
return "offset" in r && (v = r.offset), l && (n.streamPosition = {
|
|
1168
1176
|
offset: v,
|
|
1169
1177
|
epoch: y
|
|
1170
|
-
}), r.data && (
|
|
1178
|
+
}), r.data && (n.data = r.data), n;
|
|
1171
1179
|
}
|
|
1172
1180
|
}, {
|
|
1173
1181
|
key: "_subscribeResponse",
|
|
1174
|
-
value: function(
|
|
1175
|
-
var l = this, y = this._getSub(
|
|
1182
|
+
value: function(n, r, c) {
|
|
1183
|
+
var l = this, y = this._getSub(n);
|
|
1176
1184
|
if (y && y._isSubscribing()) {
|
|
1177
1185
|
y._setSubscribeSuccess(c);
|
|
1178
1186
|
var v = c.publications;
|
|
1179
1187
|
if (v && v.length > 0) {
|
|
1180
1188
|
v.length >= 2 && !v[0].offset && !v[1].offset && (v = v.reverse());
|
|
1181
|
-
for (var
|
|
1182
|
-
v.hasOwnProperty(
|
|
1189
|
+
for (var Q in v)
|
|
1190
|
+
v.hasOwnProperty(Q) && this._handlePublication(n, v[Q]);
|
|
1183
1191
|
}
|
|
1184
|
-
if (c.recoverable && (!r || !c.recovered) && (this._lastSeq[
|
|
1185
|
-
var
|
|
1186
|
-
return l._subRefresh(
|
|
1192
|
+
if (c.recoverable && (!r || !c.recovered) && (this._lastSeq[n] = c.seq || 0, this._lastGen[n] = c.gen || 0, this._lastOffset[n] = c.offset || 0), this._lastEpoch[n] = c.epoch || "", c.recoverable && (y._recoverable = !0), c.expires === !0) {
|
|
1193
|
+
var I = setTimeout(function() {
|
|
1194
|
+
return l._subRefresh(n);
|
|
1187
1195
|
}, this._getTTLMilliseconds(c.ttl));
|
|
1188
|
-
this._subRefreshTimeouts[
|
|
1196
|
+
this._subRefreshTimeouts[n] = I;
|
|
1189
1197
|
}
|
|
1190
1198
|
}
|
|
1191
1199
|
}
|
|
1192
1200
|
}, {
|
|
1193
1201
|
key: "_handleReply",
|
|
1194
|
-
value: function(
|
|
1195
|
-
var c =
|
|
1202
|
+
value: function(n, r) {
|
|
1203
|
+
var c = n.id, l = n.result;
|
|
1196
1204
|
if (!(c in this._callbacks)) {
|
|
1197
1205
|
r();
|
|
1198
1206
|
return;
|
|
1199
1207
|
}
|
|
1200
1208
|
var y = this._callbacks[c];
|
|
1201
|
-
if (clearTimeout(this._callbacks[c].timeout), delete this._callbacks[c], (0, E.errorExists)(
|
|
1202
|
-
var
|
|
1203
|
-
if (!
|
|
1209
|
+
if (clearTimeout(this._callbacks[c].timeout), delete this._callbacks[c], (0, E.errorExists)(n)) {
|
|
1210
|
+
var Q = y.errback;
|
|
1211
|
+
if (!Q) {
|
|
1204
1212
|
r();
|
|
1205
1213
|
return;
|
|
1206
1214
|
}
|
|
1207
|
-
var
|
|
1208
|
-
|
|
1209
|
-
error:
|
|
1215
|
+
var I = n.error;
|
|
1216
|
+
Q({
|
|
1217
|
+
error: I,
|
|
1210
1218
|
next: r
|
|
1211
1219
|
});
|
|
1212
1220
|
} else {
|
|
@@ -1221,42 +1229,42 @@ function kt() {
|
|
|
1221
1229
|
}
|
|
1222
1230
|
}, {
|
|
1223
1231
|
key: "_handleJoin",
|
|
1224
|
-
value: function(
|
|
1232
|
+
value: function(n, r) {
|
|
1225
1233
|
var c = {
|
|
1226
1234
|
info: r.info
|
|
1227
|
-
}, l = this._getSub(
|
|
1235
|
+
}, l = this._getSub(n);
|
|
1228
1236
|
if (!l) {
|
|
1229
|
-
this._isServerSub(
|
|
1237
|
+
this._isServerSub(n) && (c.channel = n, this.emit("join", c));
|
|
1230
1238
|
return;
|
|
1231
1239
|
}
|
|
1232
1240
|
l.emit("join", c);
|
|
1233
1241
|
}
|
|
1234
1242
|
}, {
|
|
1235
1243
|
key: "_handleLeave",
|
|
1236
|
-
value: function(
|
|
1244
|
+
value: function(n, r) {
|
|
1237
1245
|
var c = {
|
|
1238
1246
|
info: r.info
|
|
1239
|
-
}, l = this._getSub(
|
|
1247
|
+
}, l = this._getSub(n);
|
|
1240
1248
|
if (!l) {
|
|
1241
|
-
this._isServerSub(
|
|
1249
|
+
this._isServerSub(n) && (c.channel = n, this.emit("leave", c));
|
|
1242
1250
|
return;
|
|
1243
1251
|
}
|
|
1244
1252
|
l.emit("leave", c);
|
|
1245
1253
|
}
|
|
1246
1254
|
}, {
|
|
1247
1255
|
key: "_handleUnsub",
|
|
1248
|
-
value: function(
|
|
1249
|
-
var c = {}, l = this._getSub(
|
|
1256
|
+
value: function(n, r) {
|
|
1257
|
+
var c = {}, l = this._getSub(n);
|
|
1250
1258
|
if (!l) {
|
|
1251
|
-
this._isServerSub(
|
|
1259
|
+
this._isServerSub(n) && (delete this._serverSubs[n], c.channel = n, this.emit("unsubscribe", c));
|
|
1252
1260
|
return;
|
|
1253
1261
|
}
|
|
1254
1262
|
l.unsubscribe(), r.resubscribe === !0 && l.subscribe();
|
|
1255
1263
|
}
|
|
1256
1264
|
}, {
|
|
1257
1265
|
key: "_handleSub",
|
|
1258
|
-
value: function(
|
|
1259
|
-
this._serverSubs[
|
|
1266
|
+
value: function(n, r) {
|
|
1267
|
+
this._serverSubs[n] = {
|
|
1260
1268
|
seq: r.seq,
|
|
1261
1269
|
gen: r.gen,
|
|
1262
1270
|
offset: r.offset,
|
|
@@ -1264,46 +1272,46 @@ function kt() {
|
|
|
1264
1272
|
recoverable: r.recoverable
|
|
1265
1273
|
};
|
|
1266
1274
|
var c = {
|
|
1267
|
-
channel:
|
|
1275
|
+
channel: n,
|
|
1268
1276
|
isResubscribe: !1
|
|
1269
1277
|
};
|
|
1270
1278
|
c = this._expandSubscribeContext(c, r), this.emit("subscribe", c);
|
|
1271
1279
|
}
|
|
1272
1280
|
}, {
|
|
1273
1281
|
key: "_handlePublication",
|
|
1274
|
-
value: function(
|
|
1275
|
-
var c = this._getSub(
|
|
1282
|
+
value: function(n, r) {
|
|
1283
|
+
var c = this._getSub(n), l = {
|
|
1276
1284
|
data: r.data,
|
|
1277
1285
|
seq: r.seq,
|
|
1278
1286
|
gen: r.gen,
|
|
1279
1287
|
offset: r.offset
|
|
1280
1288
|
};
|
|
1281
1289
|
if (r.info && (l.info = r.info), !c) {
|
|
1282
|
-
this._isServerSub(
|
|
1290
|
+
this._isServerSub(n) && (r.seq !== void 0 && (this._serverSubs[n].seq = r.seq), r.gen !== void 0 && (this._serverSubs[n].gen = r.gen), r.offset !== void 0 && (this._serverSubs[n].offset = r.offset), l.channel = n, this.emit("publish", l));
|
|
1283
1291
|
return;
|
|
1284
1292
|
}
|
|
1285
|
-
r.seq !== void 0 && (this._lastSeq[
|
|
1293
|
+
r.seq !== void 0 && (this._lastSeq[n] = r.seq), r.gen !== void 0 && (this._lastGen[n] = r.gen), r.offset !== void 0 && (this._lastOffset[n] = r.offset), c.emit("publish", l);
|
|
1286
1294
|
}
|
|
1287
1295
|
}, {
|
|
1288
1296
|
key: "_handleMessage",
|
|
1289
|
-
value: function(
|
|
1290
|
-
this.emit("message",
|
|
1297
|
+
value: function(n) {
|
|
1298
|
+
this.emit("message", n.data);
|
|
1291
1299
|
}
|
|
1292
1300
|
}, {
|
|
1293
1301
|
key: "_handlePush",
|
|
1294
|
-
value: function(
|
|
1295
|
-
var c = this._decoder.decodePush(
|
|
1302
|
+
value: function(n, r) {
|
|
1303
|
+
var c = this._decoder.decodePush(n), l = 0;
|
|
1296
1304
|
"type" in c && (l = c.type);
|
|
1297
1305
|
var y = c.channel;
|
|
1298
1306
|
if (l === this._pushType.PUBLICATION) {
|
|
1299
1307
|
var v = this._decoder.decodePushData(this._pushType.PUBLICATION, c.data);
|
|
1300
1308
|
this._handlePublication(y, v);
|
|
1301
1309
|
} else if (l === this._pushType.MESSAGE) {
|
|
1302
|
-
var
|
|
1303
|
-
this._handleMessage(
|
|
1310
|
+
var Q = this._decoder.decodePushData(this._pushType.MESSAGE, c.data);
|
|
1311
|
+
this._handleMessage(Q);
|
|
1304
1312
|
} else if (l === this._pushType.JOIN) {
|
|
1305
|
-
var
|
|
1306
|
-
this._handleJoin(y,
|
|
1313
|
+
var I = this._decoder.decodePushData(this._pushType.JOIN, c.data);
|
|
1314
|
+
this._handleJoin(y, I);
|
|
1307
1315
|
} else if (l === this._pushType.LEAVE) {
|
|
1308
1316
|
var R = this._decoder.decodePushData(this._pushType.LEAVE, c.data);
|
|
1309
1317
|
this._handleLeave(y, R);
|
|
@@ -1319,78 +1327,78 @@ function kt() {
|
|
|
1319
1327
|
}, {
|
|
1320
1328
|
key: "_flush",
|
|
1321
1329
|
value: function() {
|
|
1322
|
-
var
|
|
1323
|
-
this._messages = [], this._transportSend(
|
|
1330
|
+
var n = this._messages.slice(0);
|
|
1331
|
+
this._messages = [], this._transportSend(n);
|
|
1324
1332
|
}
|
|
1325
1333
|
}, {
|
|
1326
1334
|
key: "_ping",
|
|
1327
1335
|
value: function() {
|
|
1328
|
-
var
|
|
1336
|
+
var n = this, r = {
|
|
1329
1337
|
method: this._methodType.PING
|
|
1330
1338
|
};
|
|
1331
1339
|
this._call(r).then(function(c) {
|
|
1332
|
-
|
|
1340
|
+
n._pingResponse(n._decoder.decodeCommandResult(n._methodType.PING, c.result)), c.next && c.next();
|
|
1333
1341
|
}, function(c) {
|
|
1334
|
-
|
|
1342
|
+
n._debug("ping error", c.error), c.next && c.next();
|
|
1335
1343
|
});
|
|
1336
1344
|
}
|
|
1337
1345
|
}, {
|
|
1338
1346
|
key: "_pingResponse",
|
|
1339
|
-
value: function(
|
|
1347
|
+
value: function(n) {
|
|
1340
1348
|
this.isConnected() && (this._stopPing(), this._startPing());
|
|
1341
1349
|
}
|
|
1342
1350
|
}, {
|
|
1343
1351
|
key: "_getLastSeq",
|
|
1344
|
-
value: function(
|
|
1345
|
-
var r = this._lastSeq[
|
|
1352
|
+
value: function(n) {
|
|
1353
|
+
var r = this._lastSeq[n];
|
|
1346
1354
|
return r || 0;
|
|
1347
1355
|
}
|
|
1348
1356
|
}, {
|
|
1349
1357
|
key: "_getLastOffset",
|
|
1350
|
-
value: function(
|
|
1351
|
-
var r = this._lastOffset[
|
|
1358
|
+
value: function(n) {
|
|
1359
|
+
var r = this._lastOffset[n];
|
|
1352
1360
|
return r || 0;
|
|
1353
1361
|
}
|
|
1354
1362
|
}, {
|
|
1355
1363
|
key: "_getLastGen",
|
|
1356
|
-
value: function(
|
|
1357
|
-
var r = this._lastGen[
|
|
1364
|
+
value: function(n) {
|
|
1365
|
+
var r = this._lastGen[n];
|
|
1358
1366
|
return r || 0;
|
|
1359
1367
|
}
|
|
1360
1368
|
}, {
|
|
1361
1369
|
key: "_getLastEpoch",
|
|
1362
|
-
value: function(
|
|
1363
|
-
var r = this._lastEpoch[
|
|
1370
|
+
value: function(n) {
|
|
1371
|
+
var r = this._lastEpoch[n];
|
|
1364
1372
|
return r || "";
|
|
1365
1373
|
}
|
|
1366
1374
|
}, {
|
|
1367
1375
|
key: "_createErrorObject",
|
|
1368
|
-
value: function(
|
|
1376
|
+
value: function(n, r) {
|
|
1369
1377
|
var c = {
|
|
1370
|
-
message:
|
|
1378
|
+
message: n,
|
|
1371
1379
|
code: r || 0
|
|
1372
1380
|
};
|
|
1373
1381
|
return c;
|
|
1374
1382
|
}
|
|
1375
1383
|
}, {
|
|
1376
1384
|
key: "_registerCall",
|
|
1377
|
-
value: function(
|
|
1385
|
+
value: function(n, r, c) {
|
|
1378
1386
|
var l = this;
|
|
1379
|
-
this._callbacks[
|
|
1387
|
+
this._callbacks[n] = {
|
|
1380
1388
|
callback: r,
|
|
1381
1389
|
errback: c,
|
|
1382
1390
|
timeout: null
|
|
1383
|
-
}, this._callbacks[
|
|
1384
|
-
delete l._callbacks[
|
|
1385
|
-
error: l._createErrorObject(
|
|
1391
|
+
}, this._callbacks[n].timeout = setTimeout(function() {
|
|
1392
|
+
delete l._callbacks[n], (0, E.isFunction)(c) && c({
|
|
1393
|
+
error: l._createErrorObject(x)
|
|
1386
1394
|
});
|
|
1387
1395
|
}, this._config.timeout);
|
|
1388
1396
|
}
|
|
1389
1397
|
}, {
|
|
1390
1398
|
key: "_addMessage",
|
|
1391
|
-
value: function(
|
|
1399
|
+
value: function(n) {
|
|
1392
1400
|
var r = this._nextMessageId();
|
|
1393
|
-
return
|
|
1401
|
+
return n.id = r, this._isBatching === !0 ? this._messages.push(n) : this._transportSend([n]), r;
|
|
1394
1402
|
}
|
|
1395
1403
|
}, {
|
|
1396
1404
|
key: "isConnected",
|
|
@@ -1430,7 +1438,7 @@ function kt() {
|
|
|
1430
1438
|
}, {
|
|
1431
1439
|
key: "stopSubscribeBatching",
|
|
1432
1440
|
value: function() {
|
|
1433
|
-
var
|
|
1441
|
+
var n = this;
|
|
1434
1442
|
this._isSubscribeBatching = !1;
|
|
1435
1443
|
var r = this._privateChannels;
|
|
1436
1444
|
this._privateChannels = {};
|
|
@@ -1449,14 +1457,14 @@ function kt() {
|
|
|
1449
1457
|
var v = {
|
|
1450
1458
|
client: this._clientID,
|
|
1451
1459
|
channels: c
|
|
1452
|
-
},
|
|
1453
|
-
if (
|
|
1460
|
+
}, Q = this._clientID, I = this._newXHRID(), R = function(D) {
|
|
1461
|
+
if (I in n._xhrs && delete n._xhrs[I], n._clientID === Q) {
|
|
1454
1462
|
if (D.error || D.status !== 200) {
|
|
1455
|
-
|
|
1463
|
+
n._debug("authorization request failed");
|
|
1456
1464
|
for (var re in c)
|
|
1457
1465
|
if (c.hasOwnProperty(re)) {
|
|
1458
1466
|
var Pe = c[re];
|
|
1459
|
-
|
|
1467
|
+
n._subscribeError(Pe, n._createErrorObject("authorization request failed"));
|
|
1460
1468
|
}
|
|
1461
1469
|
return;
|
|
1462
1470
|
}
|
|
@@ -1467,45 +1475,45 @@ function kt() {
|
|
|
1467
1475
|
ke.channel && (le[ke.channel] = ke.token);
|
|
1468
1476
|
}
|
|
1469
1477
|
var Ue = !1;
|
|
1470
|
-
|
|
1478
|
+
n._isBatching || (n.startBatching(), Ue = !0);
|
|
1471
1479
|
for (var He in c)
|
|
1472
1480
|
if (c.hasOwnProperty(He)) {
|
|
1473
1481
|
var yt = (function() {
|
|
1474
1482
|
var z = c[He], xe = le[z];
|
|
1475
1483
|
if (xe) {
|
|
1476
1484
|
var oe = {
|
|
1477
|
-
method:
|
|
1485
|
+
method: n._methodType.SUBSCRIBE,
|
|
1478
1486
|
params: {
|
|
1479
1487
|
channel: z,
|
|
1480
1488
|
token: xe
|
|
1481
1489
|
}
|
|
1482
|
-
}, Fe =
|
|
1490
|
+
}, Fe = n._getSub(z);
|
|
1483
1491
|
if (Fe === null)
|
|
1484
1492
|
return "continue";
|
|
1485
1493
|
var Je = Fe._needRecover();
|
|
1486
1494
|
if (Je === !0) {
|
|
1487
1495
|
oe.params.recover = !0;
|
|
1488
|
-
var we =
|
|
1496
|
+
var we = n._getLastSeq(z), _e = n._getLastGen(z);
|
|
1489
1497
|
if (we || _e)
|
|
1490
1498
|
we && (oe.params.seq = we), _e && (oe.params.gen = _e);
|
|
1491
1499
|
else {
|
|
1492
|
-
var qe =
|
|
1500
|
+
var qe = n._getLastOffset(z);
|
|
1493
1501
|
qe && (oe.params.offset = qe);
|
|
1494
1502
|
}
|
|
1495
|
-
var je =
|
|
1503
|
+
var je = n._getLastEpoch(z);
|
|
1496
1504
|
je && (oe.params.epoch = je);
|
|
1497
1505
|
}
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
}, function(
|
|
1501
|
-
|
|
1506
|
+
n._call(oe).then(function(G) {
|
|
1507
|
+
n._subscribeResponse(z, Je, n._decoder.decodeCommandResult(n._methodType.SUBSCRIBE, G.result)), G.next && G.next();
|
|
1508
|
+
}, function(G) {
|
|
1509
|
+
n._subscribeError(z, G.error), G.next && G.next();
|
|
1502
1510
|
});
|
|
1503
1511
|
} else
|
|
1504
|
-
return
|
|
1512
|
+
return n._subscribeError(z, n._createErrorObject("permission denied", 103)), "continue";
|
|
1505
1513
|
})();
|
|
1506
1514
|
if (yt === "continue") continue;
|
|
1507
1515
|
}
|
|
1508
|
-
Ue &&
|
|
1516
|
+
Ue && n.stopBatching();
|
|
1509
1517
|
}
|
|
1510
1518
|
};
|
|
1511
1519
|
if (this._config.onPrivateSubscribe !== null)
|
|
@@ -1514,36 +1522,36 @@ function kt() {
|
|
|
1514
1522
|
}, R);
|
|
1515
1523
|
else {
|
|
1516
1524
|
var X = this._ajax(this._config.subscribeEndpoint, this._config.subscribeParams, this._config.subscribeHeaders, v, R);
|
|
1517
|
-
this._xhrs[
|
|
1525
|
+
this._xhrs[I] = X;
|
|
1518
1526
|
}
|
|
1519
1527
|
}
|
|
1520
1528
|
}, {
|
|
1521
1529
|
key: "_setSubscribeSince",
|
|
1522
|
-
value: function(
|
|
1523
|
-
this._lastOffset[
|
|
1530
|
+
value: function(n, r) {
|
|
1531
|
+
this._lastOffset[n.channel] = r.offset, this._lastEpoch[n.channel] = r.epoch, n._setNeedRecover(!0);
|
|
1524
1532
|
}
|
|
1525
1533
|
}, {
|
|
1526
1534
|
key: "subscribe",
|
|
1527
|
-
value: function(
|
|
1528
|
-
var l = this._getSub(
|
|
1535
|
+
value: function(n, r, c) {
|
|
1536
|
+
var l = this._getSub(n);
|
|
1529
1537
|
if (l !== null)
|
|
1530
1538
|
return l._setEvents(r), l._isUnsubscribed() && l.subscribe(c), l;
|
|
1531
|
-
var y = new S.default(this,
|
|
1532
|
-
return this._subs[
|
|
1539
|
+
var y = new S.default(this, n, r);
|
|
1540
|
+
return this._subs[n] = y, y.subscribe(c), y;
|
|
1533
1541
|
}
|
|
1534
1542
|
}]), p;
|
|
1535
1543
|
})(C.default);
|
|
1536
|
-
d.Centrifuge =
|
|
1544
|
+
d.Centrifuge = m;
|
|
1537
1545
|
})
|
|
1538
1546
|
),
|
|
1539
1547
|
/***/
|
|
1540
1548
|
579: (
|
|
1541
1549
|
/***/
|
|
1542
|
-
(function(a, d,
|
|
1550
|
+
(function(a, d, f) {
|
|
1543
1551
|
Object.defineProperty(d, "__esModule", {
|
|
1544
1552
|
value: !0
|
|
1545
1553
|
}), d.default = void 0;
|
|
1546
|
-
var C =
|
|
1554
|
+
var C = f(382), S = C.Centrifuge;
|
|
1547
1555
|
d.default = S, a.exports = d.default;
|
|
1548
1556
|
})
|
|
1549
1557
|
),
|
|
@@ -1554,20 +1562,20 @@ function kt() {
|
|
|
1554
1562
|
Object.defineProperty(d, "__esModule", {
|
|
1555
1563
|
value: !0
|
|
1556
1564
|
}), d.JsonPushType = d.JsonMethodType = d.JsonEncoder = d.JsonDecoder = void 0;
|
|
1557
|
-
function
|
|
1558
|
-
if (!(
|
|
1565
|
+
function f(B, k) {
|
|
1566
|
+
if (!(B instanceof k))
|
|
1559
1567
|
throw new TypeError("Cannot call a class as a function");
|
|
1560
1568
|
}
|
|
1561
|
-
function C(
|
|
1562
|
-
for (var
|
|
1563
|
-
var w =
|
|
1564
|
-
w.enumerable = w.enumerable || !1, w.configurable = !0, "value" in w && (w.writable = !0), Object.defineProperty(
|
|
1569
|
+
function C(B, k) {
|
|
1570
|
+
for (var b = 0; b < k.length; b++) {
|
|
1571
|
+
var w = k[b];
|
|
1572
|
+
w.enumerable = w.enumerable || !1, w.configurable = !0, "value" in w && (w.writable = !0), Object.defineProperty(B, w.key, w);
|
|
1565
1573
|
}
|
|
1566
1574
|
}
|
|
1567
|
-
function S(
|
|
1568
|
-
return
|
|
1575
|
+
function S(B, k, b) {
|
|
1576
|
+
return k && C(B.prototype, k), B;
|
|
1569
1577
|
}
|
|
1570
|
-
var
|
|
1578
|
+
var _ = {
|
|
1571
1579
|
CONNECT: 0,
|
|
1572
1580
|
SUBSCRIBE: 1,
|
|
1573
1581
|
UNSUBSCRIBE: 2,
|
|
@@ -1581,7 +1589,7 @@ function kt() {
|
|
|
1581
1589
|
REFRESH: 10,
|
|
1582
1590
|
SUB_REFRESH: 11
|
|
1583
1591
|
};
|
|
1584
|
-
d.JsonMethodType =
|
|
1592
|
+
d.JsonMethodType = _;
|
|
1585
1593
|
var E = {
|
|
1586
1594
|
PUBLICATION: 0,
|
|
1587
1595
|
JOIN: 1,
|
|
@@ -1591,29 +1599,29 @@ function kt() {
|
|
|
1591
1599
|
SUBSCRIBE: 5
|
|
1592
1600
|
};
|
|
1593
1601
|
d.JsonPushType = E;
|
|
1594
|
-
var
|
|
1595
|
-
function
|
|
1596
|
-
|
|
1602
|
+
var P = /* @__PURE__ */ (function() {
|
|
1603
|
+
function B() {
|
|
1604
|
+
f(this, B);
|
|
1597
1605
|
}
|
|
1598
|
-
return S(
|
|
1606
|
+
return S(B, [{
|
|
1599
1607
|
key: "encodeCommands",
|
|
1600
|
-
value: function(
|
|
1601
|
-
return
|
|
1608
|
+
value: function(b) {
|
|
1609
|
+
return b.map(function(w) {
|
|
1602
1610
|
return JSON.stringify(w);
|
|
1603
1611
|
}).join(`
|
|
1604
1612
|
`);
|
|
1605
1613
|
}
|
|
1606
|
-
}]),
|
|
1614
|
+
}]), B;
|
|
1607
1615
|
})();
|
|
1608
|
-
d.JsonEncoder =
|
|
1609
|
-
var
|
|
1610
|
-
function
|
|
1611
|
-
|
|
1616
|
+
d.JsonEncoder = P;
|
|
1617
|
+
var T = /* @__PURE__ */ (function() {
|
|
1618
|
+
function B() {
|
|
1619
|
+
f(this, B);
|
|
1612
1620
|
}
|
|
1613
|
-
return S(
|
|
1621
|
+
return S(B, [{
|
|
1614
1622
|
key: "decodeReplies",
|
|
1615
|
-
value: function(
|
|
1616
|
-
return
|
|
1623
|
+
value: function(b) {
|
|
1624
|
+
return b.split(`
|
|
1617
1625
|
`).filter(function(w) {
|
|
1618
1626
|
return w !== "";
|
|
1619
1627
|
}).map(function(w) {
|
|
@@ -1622,28 +1630,28 @@ function kt() {
|
|
|
1622
1630
|
}
|
|
1623
1631
|
}, {
|
|
1624
1632
|
key: "decodeCommandResult",
|
|
1625
|
-
value: function(
|
|
1633
|
+
value: function(b, w) {
|
|
1626
1634
|
return w;
|
|
1627
1635
|
}
|
|
1628
1636
|
}, {
|
|
1629
1637
|
key: "decodePush",
|
|
1630
|
-
value: function(
|
|
1631
|
-
return
|
|
1638
|
+
value: function(b) {
|
|
1639
|
+
return b;
|
|
1632
1640
|
}
|
|
1633
1641
|
}, {
|
|
1634
1642
|
key: "decodePushData",
|
|
1635
|
-
value: function(
|
|
1643
|
+
value: function(b, w) {
|
|
1636
1644
|
return w;
|
|
1637
1645
|
}
|
|
1638
|
-
}]),
|
|
1646
|
+
}]), B;
|
|
1639
1647
|
})();
|
|
1640
|
-
d.JsonDecoder =
|
|
1648
|
+
d.JsonDecoder = T;
|
|
1641
1649
|
})
|
|
1642
1650
|
),
|
|
1643
1651
|
/***/
|
|
1644
1652
|
471: (
|
|
1645
1653
|
/***/
|
|
1646
|
-
(function(a, d,
|
|
1654
|
+
(function(a, d, f) {
|
|
1647
1655
|
function C(h) {
|
|
1648
1656
|
"@babel/helpers - typeof";
|
|
1649
1657
|
return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? C = function(A) {
|
|
@@ -1655,42 +1663,42 @@ function kt() {
|
|
|
1655
1663
|
Object.defineProperty(d, "__esModule", {
|
|
1656
1664
|
value: !0
|
|
1657
1665
|
}), d.default = void 0;
|
|
1658
|
-
var S = E(
|
|
1666
|
+
var S = E(f(187)), _ = f(853);
|
|
1659
1667
|
function E(h) {
|
|
1660
1668
|
return h && h.__esModule ? h : { default: h };
|
|
1661
1669
|
}
|
|
1662
|
-
function
|
|
1670
|
+
function P(h, p) {
|
|
1663
1671
|
if (!(h instanceof p))
|
|
1664
1672
|
throw new TypeError("Cannot call a class as a function");
|
|
1665
1673
|
}
|
|
1666
|
-
function
|
|
1674
|
+
function T(h, p) {
|
|
1667
1675
|
for (var A = 0; A < p.length; A++) {
|
|
1668
|
-
var
|
|
1669
|
-
|
|
1676
|
+
var n = p[A];
|
|
1677
|
+
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(h, n.key, n);
|
|
1670
1678
|
}
|
|
1671
1679
|
}
|
|
1672
|
-
function
|
|
1673
|
-
return p &&
|
|
1680
|
+
function B(h, p, A) {
|
|
1681
|
+
return p && T(h.prototype, p), h;
|
|
1674
1682
|
}
|
|
1675
|
-
function
|
|
1683
|
+
function k(h, p) {
|
|
1676
1684
|
if (typeof p != "function" && p !== null)
|
|
1677
1685
|
throw new TypeError("Super expression must either be null or a function");
|
|
1678
|
-
h.prototype = Object.create(p && p.prototype, { constructor: { value: h, writable: !0, configurable: !0 } }), p &&
|
|
1686
|
+
h.prototype = Object.create(p && p.prototype, { constructor: { value: h, writable: !0, configurable: !0 } }), p && b(h, p);
|
|
1679
1687
|
}
|
|
1680
|
-
function
|
|
1681
|
-
return
|
|
1682
|
-
return
|
|
1683
|
-
},
|
|
1688
|
+
function b(h, p) {
|
|
1689
|
+
return b = Object.setPrototypeOf || function(n, r) {
|
|
1690
|
+
return n.__proto__ = r, n;
|
|
1691
|
+
}, b(h, p);
|
|
1684
1692
|
}
|
|
1685
1693
|
function w(h) {
|
|
1686
|
-
var p =
|
|
1694
|
+
var p = J();
|
|
1687
1695
|
return function() {
|
|
1688
|
-
var
|
|
1696
|
+
var n = N(h), r;
|
|
1689
1697
|
if (p) {
|
|
1690
|
-
var c =
|
|
1691
|
-
r = Reflect.construct(
|
|
1698
|
+
var c = N(this).constructor;
|
|
1699
|
+
r = Reflect.construct(n, arguments, c);
|
|
1692
1700
|
} else
|
|
1693
|
-
r =
|
|
1701
|
+
r = n.apply(this, arguments);
|
|
1694
1702
|
return L(this, r);
|
|
1695
1703
|
};
|
|
1696
1704
|
}
|
|
@@ -1706,7 +1714,7 @@ function kt() {
|
|
|
1706
1714
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
1707
1715
|
return h;
|
|
1708
1716
|
}
|
|
1709
|
-
function
|
|
1717
|
+
function J() {
|
|
1710
1718
|
if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham) return !1;
|
|
1711
1719
|
if (typeof Proxy == "function") return !0;
|
|
1712
1720
|
try {
|
|
@@ -1716,21 +1724,21 @@ function kt() {
|
|
|
1716
1724
|
return !1;
|
|
1717
1725
|
}
|
|
1718
1726
|
}
|
|
1719
|
-
function
|
|
1720
|
-
return
|
|
1727
|
+
function N(h) {
|
|
1728
|
+
return N = Object.setPrototypeOf ? Object.getPrototypeOf : function(A) {
|
|
1721
1729
|
return A.__proto__ || Object.getPrototypeOf(A);
|
|
1722
|
-
},
|
|
1730
|
+
}, N(h);
|
|
1723
1731
|
}
|
|
1724
|
-
var
|
|
1725
|
-
|
|
1732
|
+
var q = 0, F = 1, x = 2, M = 3, m = 4, g = /* @__PURE__ */ (function(h) {
|
|
1733
|
+
k(A, h);
|
|
1726
1734
|
var p = w(A);
|
|
1727
|
-
function A(
|
|
1735
|
+
function A(n, r, c) {
|
|
1728
1736
|
var l;
|
|
1729
|
-
return
|
|
1737
|
+
return P(this, A), l = p.call(this), l.channel = r, l._centrifuge = n, l._status = q, l._error = null, l._isResubscribe = !1, l._ready = !1, l._subscriptionPromise = null, l._noResubscribe = !1, l._recoverable = !1, l._recover = !1, l._setEvents(c), l._initializePromise(), l._promises = {}, l._promiseId = 0, l._subscribeData = null, l.on("error", function(y) {
|
|
1730
1738
|
this._centrifuge._debug("subscription error", y);
|
|
1731
1739
|
}), l;
|
|
1732
1740
|
}
|
|
1733
|
-
return
|
|
1741
|
+
return B(A, [{
|
|
1734
1742
|
key: "_nextPromiseId",
|
|
1735
1743
|
value: function() {
|
|
1736
1744
|
return ++this._promiseId;
|
|
@@ -1763,7 +1771,7 @@ function kt() {
|
|
|
1763
1771
|
key: "_setEvents",
|
|
1764
1772
|
value: function(r) {
|
|
1765
1773
|
if (r) {
|
|
1766
|
-
if ((0,
|
|
1774
|
+
if ((0, _.isFunction)(r))
|
|
1767
1775
|
this.on("publish", r);
|
|
1768
1776
|
else if (Object.prototype.toString.call(r) === Object.prototype.toString.call({}))
|
|
1769
1777
|
for (var c = ["publish", "join", "leave", "unsubscribe", "subscribe", "error"], l = 0, y = c.length; l < y; l++) {
|
|
@@ -1775,48 +1783,48 @@ function kt() {
|
|
|
1775
1783
|
}, {
|
|
1776
1784
|
key: "_isNew",
|
|
1777
1785
|
value: function() {
|
|
1778
|
-
return this._status ===
|
|
1786
|
+
return this._status === q;
|
|
1779
1787
|
}
|
|
1780
1788
|
}, {
|
|
1781
1789
|
key: "_isUnsubscribed",
|
|
1782
1790
|
value: function() {
|
|
1783
|
-
return this._status ===
|
|
1791
|
+
return this._status === m;
|
|
1784
1792
|
}
|
|
1785
1793
|
}, {
|
|
1786
1794
|
key: "_isSubscribing",
|
|
1787
1795
|
value: function() {
|
|
1788
|
-
return this._status ===
|
|
1796
|
+
return this._status === F;
|
|
1789
1797
|
}
|
|
1790
1798
|
}, {
|
|
1791
1799
|
key: "_isReady",
|
|
1792
1800
|
value: function() {
|
|
1793
|
-
return this._status ===
|
|
1801
|
+
return this._status === x || this._status === M;
|
|
1794
1802
|
}
|
|
1795
1803
|
}, {
|
|
1796
1804
|
key: "_isSuccess",
|
|
1797
1805
|
value: function() {
|
|
1798
|
-
return this._status ===
|
|
1806
|
+
return this._status === x;
|
|
1799
1807
|
}
|
|
1800
1808
|
}, {
|
|
1801
1809
|
key: "_isError",
|
|
1802
1810
|
value: function() {
|
|
1803
|
-
return this._status ===
|
|
1811
|
+
return this._status === M;
|
|
1804
1812
|
}
|
|
1805
1813
|
}, {
|
|
1806
1814
|
key: "_setNew",
|
|
1807
1815
|
value: function() {
|
|
1808
|
-
this._status =
|
|
1816
|
+
this._status = q;
|
|
1809
1817
|
}
|
|
1810
1818
|
}, {
|
|
1811
1819
|
key: "_setSubscribing",
|
|
1812
1820
|
value: function(r) {
|
|
1813
|
-
this._isResubscribe = r || !1, this._ready === !0 && this._initializePromise(), this._status =
|
|
1821
|
+
this._isResubscribe = r || !1, this._ready === !0 && this._initializePromise(), this._status = F;
|
|
1814
1822
|
}
|
|
1815
1823
|
}, {
|
|
1816
1824
|
key: "_setSubscribeSuccess",
|
|
1817
1825
|
value: function(r) {
|
|
1818
|
-
if (this._status !==
|
|
1819
|
-
this._status =
|
|
1826
|
+
if (this._status !== x) {
|
|
1827
|
+
this._status = x;
|
|
1820
1828
|
var c = this._getSubscribeSuccessContext(r);
|
|
1821
1829
|
this._recover = !1, this.emit("subscribe", c), this._resolve(c);
|
|
1822
1830
|
for (var l in this._promises)
|
|
@@ -1826,8 +1834,8 @@ function kt() {
|
|
|
1826
1834
|
}, {
|
|
1827
1835
|
key: "_setSubscribeError",
|
|
1828
1836
|
value: function(r) {
|
|
1829
|
-
if (this._status !==
|
|
1830
|
-
this._status =
|
|
1837
|
+
if (this._status !== M) {
|
|
1838
|
+
this._status = M, this._error = r;
|
|
1831
1839
|
var c = this._getSubscribeErrorContext();
|
|
1832
1840
|
this.emit("error", c), this._reject(c);
|
|
1833
1841
|
for (var l in this._promises)
|
|
@@ -1844,9 +1852,9 @@ function kt() {
|
|
|
1844
1852
|
}, {
|
|
1845
1853
|
key: "_setUnsubscribed",
|
|
1846
1854
|
value: function(r) {
|
|
1847
|
-
if (this._centrifuge._clearSubRefreshTimeout(this.channel), this._status !==
|
|
1848
|
-
var c = this._status ===
|
|
1849
|
-
this._status =
|
|
1855
|
+
if (this._centrifuge._clearSubRefreshTimeout(this.channel), this._status !== m) {
|
|
1856
|
+
var c = this._status === x;
|
|
1857
|
+
this._status = m, r === !0 && (this._recover = !1, this._noResubscribe = !0, delete this._centrifuge._lastSeq[this.channel], delete this._centrifuge._lastGen[this.channel], delete this._centrifuge._lastEpoch[this.channel]), c && this._triggerUnsubscribe();
|
|
1850
1858
|
}
|
|
1851
1859
|
}
|
|
1852
1860
|
}, {
|
|
@@ -1882,7 +1890,7 @@ function kt() {
|
|
|
1882
1890
|
}, {
|
|
1883
1891
|
key: "subscribe",
|
|
1884
1892
|
value: function(r) {
|
|
1885
|
-
this._status !==
|
|
1893
|
+
this._status !== x && (r && r.since && this._centrifuge._setSubscribeSince(this, r.since), r && r.data && this._setSubscribeData(r.data), this._noResubscribe = !1, this._centrifuge._subscribe(this));
|
|
1886
1894
|
}
|
|
1887
1895
|
}, {
|
|
1888
1896
|
key: "unsubscribe",
|
|
@@ -1946,39 +1954,39 @@ function kt() {
|
|
|
1946
1954
|
}
|
|
1947
1955
|
}]), A;
|
|
1948
1956
|
})(S.default);
|
|
1949
|
-
d.default =
|
|
1957
|
+
d.default = g, a.exports = d.default;
|
|
1950
1958
|
})
|
|
1951
1959
|
),
|
|
1952
1960
|
/***/
|
|
1953
1961
|
853: (
|
|
1954
1962
|
/***/
|
|
1955
|
-
(function(a, d,
|
|
1963
|
+
(function(a, d, f) {
|
|
1956
1964
|
Object.defineProperty(d, "__esModule", {
|
|
1957
1965
|
value: !0
|
|
1958
|
-
}), d.backoff = E, d.errorExists =
|
|
1959
|
-
function C(
|
|
1960
|
-
return
|
|
1966
|
+
}), d.backoff = E, d.errorExists = P, d.extend = T, d.isFunction = S, d.log = _, d.startsWith = C;
|
|
1967
|
+
function C(B, k) {
|
|
1968
|
+
return B.lastIndexOf(k, 0) === 0;
|
|
1961
1969
|
}
|
|
1962
|
-
function S(
|
|
1963
|
-
return
|
|
1970
|
+
function S(B) {
|
|
1971
|
+
return B == null ? !1 : typeof B == "function";
|
|
1964
1972
|
}
|
|
1965
|
-
function
|
|
1966
|
-
if (
|
|
1967
|
-
var
|
|
1968
|
-
S(
|
|
1973
|
+
function _(B, k) {
|
|
1974
|
+
if (f.g.console) {
|
|
1975
|
+
var b = f.g.console[B];
|
|
1976
|
+
S(b) && b.apply(f.g.console, k);
|
|
1969
1977
|
}
|
|
1970
1978
|
}
|
|
1971
|
-
function E(
|
|
1972
|
-
var w = 0.5 * Math.random(), L = Math.min(
|
|
1979
|
+
function E(B, k, b) {
|
|
1980
|
+
var w = 0.5 * Math.random(), L = Math.min(b, k * Math.pow(2, B + 1));
|
|
1973
1981
|
return Math.floor((1 - w) * L);
|
|
1974
1982
|
}
|
|
1975
|
-
function
|
|
1976
|
-
return "error" in
|
|
1983
|
+
function P(B) {
|
|
1984
|
+
return "error" in B && B.error !== null;
|
|
1977
1985
|
}
|
|
1978
|
-
function
|
|
1979
|
-
for (var
|
|
1980
|
-
|
|
1981
|
-
return
|
|
1986
|
+
function T(B, k) {
|
|
1987
|
+
for (var b in k)
|
|
1988
|
+
k.hasOwnProperty(b) && (B[b] = k[b]);
|
|
1989
|
+
return B;
|
|
1982
1990
|
}
|
|
1983
1991
|
})
|
|
1984
1992
|
),
|
|
@@ -1986,56 +1994,56 @@ function kt() {
|
|
|
1986
1994
|
187: (
|
|
1987
1995
|
/***/
|
|
1988
1996
|
(function(a) {
|
|
1989
|
-
var d = typeof Reflect == "object" ? Reflect : null,
|
|
1990
|
-
return Function.prototype.apply.call(
|
|
1997
|
+
var d = typeof Reflect == "object" ? Reflect : null, f = d && typeof d.apply == "function" ? d.apply : function(g, h, p) {
|
|
1998
|
+
return Function.prototype.apply.call(g, h, p);
|
|
1991
1999
|
}, C;
|
|
1992
|
-
d && typeof d.ownKeys == "function" ? C = d.ownKeys : Object.getOwnPropertySymbols ? C = function(
|
|
1993
|
-
return Object.getOwnPropertyNames(
|
|
1994
|
-
} : C = function(
|
|
1995
|
-
return Object.getOwnPropertyNames(
|
|
2000
|
+
d && typeof d.ownKeys == "function" ? C = d.ownKeys : Object.getOwnPropertySymbols ? C = function(g) {
|
|
2001
|
+
return Object.getOwnPropertyNames(g).concat(Object.getOwnPropertySymbols(g));
|
|
2002
|
+
} : C = function(g) {
|
|
2003
|
+
return Object.getOwnPropertyNames(g);
|
|
1996
2004
|
};
|
|
1997
|
-
function S(
|
|
1998
|
-
console && console.warn && console.warn(
|
|
2005
|
+
function S(m) {
|
|
2006
|
+
console && console.warn && console.warn(m);
|
|
1999
2007
|
}
|
|
2000
|
-
var
|
|
2001
|
-
return
|
|
2008
|
+
var _ = Number.isNaN || function(g) {
|
|
2009
|
+
return g !== g;
|
|
2002
2010
|
};
|
|
2003
2011
|
function E() {
|
|
2004
2012
|
E.init.call(this);
|
|
2005
2013
|
}
|
|
2006
|
-
a.exports = E, a.exports.once =
|
|
2007
|
-
var
|
|
2008
|
-
function
|
|
2009
|
-
if (typeof
|
|
2010
|
-
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof
|
|
2014
|
+
a.exports = E, a.exports.once = F, E.EventEmitter = E, E.prototype._events = void 0, E.prototype._eventsCount = 0, E.prototype._maxListeners = void 0;
|
|
2015
|
+
var P = 10;
|
|
2016
|
+
function T(m) {
|
|
2017
|
+
if (typeof m != "function")
|
|
2018
|
+
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof m);
|
|
2011
2019
|
}
|
|
2012
2020
|
Object.defineProperty(E, "defaultMaxListeners", {
|
|
2013
2021
|
enumerable: !0,
|
|
2014
2022
|
get: function() {
|
|
2015
|
-
return
|
|
2023
|
+
return P;
|
|
2016
2024
|
},
|
|
2017
|
-
set: function(
|
|
2018
|
-
if (typeof
|
|
2019
|
-
throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' +
|
|
2020
|
-
|
|
2025
|
+
set: function(m) {
|
|
2026
|
+
if (typeof m != "number" || m < 0 || _(m))
|
|
2027
|
+
throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + m + ".");
|
|
2028
|
+
P = m;
|
|
2021
2029
|
}
|
|
2022
2030
|
}), E.init = function() {
|
|
2023
2031
|
(this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) && (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;
|
|
2024
|
-
}, E.prototype.setMaxListeners = function(
|
|
2025
|
-
if (typeof
|
|
2026
|
-
throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' +
|
|
2027
|
-
return this._maxListeners =
|
|
2032
|
+
}, E.prototype.setMaxListeners = function(g) {
|
|
2033
|
+
if (typeof g != "number" || g < 0 || _(g))
|
|
2034
|
+
throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + g + ".");
|
|
2035
|
+
return this._maxListeners = g, this;
|
|
2028
2036
|
};
|
|
2029
|
-
function m
|
|
2030
|
-
return
|
|
2037
|
+
function B(m) {
|
|
2038
|
+
return m._maxListeners === void 0 ? E.defaultMaxListeners : m._maxListeners;
|
|
2031
2039
|
}
|
|
2032
2040
|
E.prototype.getMaxListeners = function() {
|
|
2033
|
-
return
|
|
2034
|
-
}, E.prototype.emit = function(
|
|
2041
|
+
return B(this);
|
|
2042
|
+
}, E.prototype.emit = function(g) {
|
|
2035
2043
|
for (var h = [], p = 1; p < arguments.length; p++) h.push(arguments[p]);
|
|
2036
|
-
var A =
|
|
2037
|
-
if (
|
|
2038
|
-
A = A &&
|
|
2044
|
+
var A = g === "error", n = this._events;
|
|
2045
|
+
if (n !== void 0)
|
|
2046
|
+
A = A && n.error === void 0;
|
|
2039
2047
|
else if (!A)
|
|
2040
2048
|
return !1;
|
|
2041
2049
|
if (A) {
|
|
@@ -2045,104 +2053,104 @@ function kt() {
|
|
|
2045
2053
|
var c = new Error("Unhandled error." + (r ? " (" + r.message + ")" : ""));
|
|
2046
2054
|
throw c.context = r, c;
|
|
2047
2055
|
}
|
|
2048
|
-
var l =
|
|
2056
|
+
var l = n[g];
|
|
2049
2057
|
if (l === void 0)
|
|
2050
2058
|
return !1;
|
|
2051
2059
|
if (typeof l == "function")
|
|
2052
|
-
|
|
2060
|
+
f(l, this, h);
|
|
2053
2061
|
else
|
|
2054
|
-
for (var y = l.length, v =
|
|
2055
|
-
|
|
2062
|
+
for (var y = l.length, v = J(l, y), p = 0; p < y; ++p)
|
|
2063
|
+
f(v[p], this, h);
|
|
2056
2064
|
return !0;
|
|
2057
2065
|
};
|
|
2058
|
-
function
|
|
2059
|
-
var A,
|
|
2060
|
-
if (
|
|
2066
|
+
function k(m, g, h, p) {
|
|
2067
|
+
var A, n, r;
|
|
2068
|
+
if (T(h), n = m._events, n === void 0 ? (n = m._events = /* @__PURE__ */ Object.create(null), m._eventsCount = 0) : (n.newListener !== void 0 && (m.emit(
|
|
2061
2069
|
"newListener",
|
|
2062
|
-
|
|
2070
|
+
g,
|
|
2063
2071
|
h.listener ? h.listener : h
|
|
2064
|
-
),
|
|
2065
|
-
r =
|
|
2066
|
-
else if (typeof r == "function" ? r =
|
|
2072
|
+
), n = m._events), r = n[g]), r === void 0)
|
|
2073
|
+
r = n[g] = h, ++m._eventsCount;
|
|
2074
|
+
else if (typeof r == "function" ? r = n[g] = p ? [h, r] : [r, h] : p ? r.unshift(h) : r.push(h), A = B(m), A > 0 && r.length > A && !r.warned) {
|
|
2067
2075
|
r.warned = !0;
|
|
2068
|
-
var c = new Error("Possible EventEmitter memory leak detected. " + r.length + " " + String(
|
|
2069
|
-
c.name = "MaxListenersExceededWarning", c.emitter =
|
|
2076
|
+
var c = new Error("Possible EventEmitter memory leak detected. " + r.length + " " + String(g) + " listeners added. Use emitter.setMaxListeners() to increase limit");
|
|
2077
|
+
c.name = "MaxListenersExceededWarning", c.emitter = m, c.type = g, c.count = r.length, S(c);
|
|
2070
2078
|
}
|
|
2071
|
-
return
|
|
2079
|
+
return m;
|
|
2072
2080
|
}
|
|
2073
|
-
E.prototype.addListener = function(
|
|
2074
|
-
return
|
|
2075
|
-
}, E.prototype.on = E.prototype.addListener, E.prototype.prependListener = function(
|
|
2076
|
-
return
|
|
2081
|
+
E.prototype.addListener = function(g, h) {
|
|
2082
|
+
return k(this, g, h, !1);
|
|
2083
|
+
}, E.prototype.on = E.prototype.addListener, E.prototype.prependListener = function(g, h) {
|
|
2084
|
+
return k(this, g, h, !0);
|
|
2077
2085
|
};
|
|
2078
|
-
function
|
|
2086
|
+
function b() {
|
|
2079
2087
|
if (!this.fired)
|
|
2080
2088
|
return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
|
|
2081
2089
|
}
|
|
2082
|
-
function w(
|
|
2083
|
-
var p = { fired: !1, wrapFn: void 0, target:
|
|
2090
|
+
function w(m, g, h) {
|
|
2091
|
+
var p = { fired: !1, wrapFn: void 0, target: m, type: g, listener: h }, A = b.bind(p);
|
|
2084
2092
|
return A.listener = h, p.wrapFn = A, A;
|
|
2085
2093
|
}
|
|
2086
|
-
E.prototype.once = function(
|
|
2087
|
-
return
|
|
2088
|
-
}, E.prototype.prependOnceListener = function(
|
|
2089
|
-
return
|
|
2090
|
-
}, E.prototype.removeListener = function(
|
|
2091
|
-
var p, A,
|
|
2092
|
-
if (
|
|
2094
|
+
E.prototype.once = function(g, h) {
|
|
2095
|
+
return T(h), this.on(g, w(this, g, h)), this;
|
|
2096
|
+
}, E.prototype.prependOnceListener = function(g, h) {
|
|
2097
|
+
return T(h), this.prependListener(g, w(this, g, h)), this;
|
|
2098
|
+
}, E.prototype.removeListener = function(g, h) {
|
|
2099
|
+
var p, A, n, r, c;
|
|
2100
|
+
if (T(h), A = this._events, A === void 0)
|
|
2093
2101
|
return this;
|
|
2094
|
-
if (p = A[
|
|
2102
|
+
if (p = A[g], p === void 0)
|
|
2095
2103
|
return this;
|
|
2096
2104
|
if (p === h || p.listener === h)
|
|
2097
|
-
--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : (delete A[
|
|
2105
|
+
--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : (delete A[g], A.removeListener && this.emit("removeListener", g, p.listener || h));
|
|
2098
2106
|
else if (typeof p != "function") {
|
|
2099
|
-
for (
|
|
2107
|
+
for (n = -1, r = p.length - 1; r >= 0; r--)
|
|
2100
2108
|
if (p[r] === h || p[r].listener === h) {
|
|
2101
|
-
c = p[r].listener,
|
|
2109
|
+
c = p[r].listener, n = r;
|
|
2102
2110
|
break;
|
|
2103
2111
|
}
|
|
2104
|
-
if (
|
|
2112
|
+
if (n < 0)
|
|
2105
2113
|
return this;
|
|
2106
|
-
|
|
2114
|
+
n === 0 ? p.shift() : N(p, n), p.length === 1 && (A[g] = p[0]), A.removeListener !== void 0 && this.emit("removeListener", g, c || h);
|
|
2107
2115
|
}
|
|
2108
2116
|
return this;
|
|
2109
|
-
}, E.prototype.off = E.prototype.removeListener, E.prototype.removeAllListeners = function(
|
|
2117
|
+
}, E.prototype.off = E.prototype.removeListener, E.prototype.removeAllListeners = function(g) {
|
|
2110
2118
|
var h, p, A;
|
|
2111
2119
|
if (p = this._events, p === void 0)
|
|
2112
2120
|
return this;
|
|
2113
2121
|
if (p.removeListener === void 0)
|
|
2114
|
-
return arguments.length === 0 ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : p[
|
|
2122
|
+
return arguments.length === 0 ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : p[g] !== void 0 && (--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : delete p[g]), this;
|
|
2115
2123
|
if (arguments.length === 0) {
|
|
2116
|
-
var
|
|
2117
|
-
for (A = 0; A <
|
|
2118
|
-
r =
|
|
2124
|
+
var n = Object.keys(p), r;
|
|
2125
|
+
for (A = 0; A < n.length; ++A)
|
|
2126
|
+
r = n[A], r !== "removeListener" && this.removeAllListeners(r);
|
|
2119
2127
|
return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;
|
|
2120
2128
|
}
|
|
2121
|
-
if (h = p[
|
|
2122
|
-
this.removeListener(
|
|
2129
|
+
if (h = p[g], typeof h == "function")
|
|
2130
|
+
this.removeListener(g, h);
|
|
2123
2131
|
else if (h !== void 0)
|
|
2124
2132
|
for (A = h.length - 1; A >= 0; A--)
|
|
2125
|
-
this.removeListener(
|
|
2133
|
+
this.removeListener(g, h[A]);
|
|
2126
2134
|
return this;
|
|
2127
2135
|
};
|
|
2128
|
-
function L(
|
|
2129
|
-
var p =
|
|
2136
|
+
function L(m, g, h) {
|
|
2137
|
+
var p = m._events;
|
|
2130
2138
|
if (p === void 0)
|
|
2131
2139
|
return [];
|
|
2132
|
-
var A = p[
|
|
2133
|
-
return A === void 0 ? [] : typeof A == "function" ? h ? [A.listener || A] : [A] : h ?
|
|
2140
|
+
var A = p[g];
|
|
2141
|
+
return A === void 0 ? [] : typeof A == "function" ? h ? [A.listener || A] : [A] : h ? q(A) : J(A, A.length);
|
|
2134
2142
|
}
|
|
2135
|
-
E.prototype.listeners = function(
|
|
2136
|
-
return L(this,
|
|
2137
|
-
}, E.prototype.rawListeners = function(
|
|
2138
|
-
return L(this,
|
|
2139
|
-
}, E.listenerCount = function(
|
|
2140
|
-
return typeof
|
|
2143
|
+
E.prototype.listeners = function(g) {
|
|
2144
|
+
return L(this, g, !0);
|
|
2145
|
+
}, E.prototype.rawListeners = function(g) {
|
|
2146
|
+
return L(this, g, !1);
|
|
2147
|
+
}, E.listenerCount = function(m, g) {
|
|
2148
|
+
return typeof m.listenerCount == "function" ? m.listenerCount(g) : O.call(m, g);
|
|
2141
2149
|
}, E.prototype.listenerCount = O;
|
|
2142
|
-
function O(
|
|
2143
|
-
var
|
|
2144
|
-
if (
|
|
2145
|
-
var h =
|
|
2150
|
+
function O(m) {
|
|
2151
|
+
var g = this._events;
|
|
2152
|
+
if (g !== void 0) {
|
|
2153
|
+
var h = g[m];
|
|
2146
2154
|
if (typeof h == "function")
|
|
2147
2155
|
return 1;
|
|
2148
2156
|
if (h !== void 0)
|
|
@@ -2153,44 +2161,44 @@ function kt() {
|
|
|
2153
2161
|
E.prototype.eventNames = function() {
|
|
2154
2162
|
return this._eventsCount > 0 ? C(this._events) : [];
|
|
2155
2163
|
};
|
|
2156
|
-
function
|
|
2157
|
-
for (var h = new Array(
|
|
2158
|
-
h[p] =
|
|
2164
|
+
function J(m, g) {
|
|
2165
|
+
for (var h = new Array(g), p = 0; p < g; ++p)
|
|
2166
|
+
h[p] = m[p];
|
|
2159
2167
|
return h;
|
|
2160
2168
|
}
|
|
2161
|
-
function
|
|
2162
|
-
for (;
|
|
2163
|
-
|
|
2164
|
-
|
|
2169
|
+
function N(m, g) {
|
|
2170
|
+
for (; g + 1 < m.length; g++)
|
|
2171
|
+
m[g] = m[g + 1];
|
|
2172
|
+
m.pop();
|
|
2165
2173
|
}
|
|
2166
|
-
function
|
|
2167
|
-
for (var
|
|
2168
|
-
|
|
2169
|
-
return
|
|
2174
|
+
function q(m) {
|
|
2175
|
+
for (var g = new Array(m.length), h = 0; h < g.length; ++h)
|
|
2176
|
+
g[h] = m[h].listener || m[h];
|
|
2177
|
+
return g;
|
|
2170
2178
|
}
|
|
2171
|
-
function
|
|
2179
|
+
function F(m, g) {
|
|
2172
2180
|
return new Promise(function(h, p) {
|
|
2173
2181
|
function A(r) {
|
|
2174
|
-
|
|
2182
|
+
m.removeListener(g, n), p(r);
|
|
2175
2183
|
}
|
|
2176
|
-
function
|
|
2177
|
-
typeof
|
|
2184
|
+
function n() {
|
|
2185
|
+
typeof m.removeListener == "function" && m.removeListener("error", A), h([].slice.call(arguments));
|
|
2178
2186
|
}
|
|
2179
|
-
|
|
2187
|
+
M(m, g, n, { once: !0 }), g !== "error" && x(m, A, { once: !0 });
|
|
2180
2188
|
});
|
|
2181
2189
|
}
|
|
2182
|
-
function
|
|
2183
|
-
typeof
|
|
2190
|
+
function x(m, g, h) {
|
|
2191
|
+
typeof m.on == "function" && M(m, "error", g, h);
|
|
2184
2192
|
}
|
|
2185
|
-
function
|
|
2186
|
-
if (typeof
|
|
2187
|
-
p.once ?
|
|
2188
|
-
else if (typeof
|
|
2189
|
-
|
|
2190
|
-
p.once &&
|
|
2193
|
+
function M(m, g, h, p) {
|
|
2194
|
+
if (typeof m.on == "function")
|
|
2195
|
+
p.once ? m.once(g, h) : m.on(g, h);
|
|
2196
|
+
else if (typeof m.addEventListener == "function")
|
|
2197
|
+
m.addEventListener(g, function A(n) {
|
|
2198
|
+
p.once && m.removeEventListener(g, A), h(n);
|
|
2191
2199
|
});
|
|
2192
2200
|
else
|
|
2193
|
-
throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof
|
|
2201
|
+
throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof m);
|
|
2194
2202
|
}
|
|
2195
2203
|
})
|
|
2196
2204
|
)
|
|
@@ -2200,7 +2208,7 @@ function kt() {
|
|
|
2200
2208
|
var d = i[a];
|
|
2201
2209
|
if (d !== void 0)
|
|
2202
2210
|
return d.exports;
|
|
2203
|
-
var
|
|
2211
|
+
var f = i[a] = {
|
|
2204
2212
|
/******/
|
|
2205
2213
|
// no module.id needed
|
|
2206
2214
|
/******/
|
|
@@ -2209,7 +2217,7 @@ function kt() {
|
|
|
2209
2217
|
exports: {}
|
|
2210
2218
|
/******/
|
|
2211
2219
|
};
|
|
2212
|
-
return o[a](
|
|
2220
|
+
return o[a](f, f.exports, s), f.exports;
|
|
2213
2221
|
}
|
|
2214
2222
|
(function() {
|
|
2215
2223
|
s.g = (function() {
|
|
@@ -2231,7 +2239,7 @@ function kt() {
|
|
|
2231
2239
|
var wt = kt();
|
|
2232
2240
|
const _t = /* @__PURE__ */ St(wt);
|
|
2233
2241
|
let he = null;
|
|
2234
|
-
function Ve(e,
|
|
2242
|
+
function Ve(e, t) {
|
|
2235
2243
|
if (!(e != null && e.client_url) || !(e != null && e.token) || !(e != null && e.channel))
|
|
2236
2244
|
return console.error("[Centrifuge] Invalid socket_connections"), null;
|
|
2237
2245
|
const { client_url: o, token: i, channel: s } = e;
|
|
@@ -2248,16 +2256,16 @@ function Ve(e, n) {
|
|
|
2248
2256
|
return u.setToken(i), u.on("connect", (a) => {
|
|
2249
2257
|
console.log("[Centrifuge] Connected", a), console.log("[Centrifuge] Subscribing to channel:", s);
|
|
2250
2258
|
const d = u.subscribe(s);
|
|
2251
|
-
d.on("publish", (
|
|
2252
|
-
console.log("[Centrifuge] Publish event received:",
|
|
2253
|
-
const C = Tt(
|
|
2254
|
-
C &&
|
|
2255
|
-
}), d.on("subscribe", (
|
|
2256
|
-
console.log("[Centrifuge] ✅ Channel subscribed successfully:", s,
|
|
2257
|
-
}), d.on("error", (
|
|
2258
|
-
console.error("[Centrifuge] ❌ Subscription error:",
|
|
2259
|
-
}), d.on("unsubscribe", (
|
|
2260
|
-
console.log("[Centrifuge] Channel unsubscribed:",
|
|
2259
|
+
d.on("publish", (f) => {
|
|
2260
|
+
console.log("[Centrifuge] Publish event received:", f);
|
|
2261
|
+
const C = Tt(f);
|
|
2262
|
+
C && t(C);
|
|
2263
|
+
}), d.on("subscribe", (f) => {
|
|
2264
|
+
console.log("[Centrifuge] ✅ Channel subscribed successfully:", s, f);
|
|
2265
|
+
}), d.on("error", (f) => {
|
|
2266
|
+
console.error("[Centrifuge] ❌ Subscription error:", f);
|
|
2267
|
+
}), d.on("unsubscribe", (f) => {
|
|
2268
|
+
console.log("[Centrifuge] Channel unsubscribed:", f);
|
|
2261
2269
|
});
|
|
2262
2270
|
}), u.on("disconnect", (a) => console.log("[Centrifuge] Disconnected", a)), u.on("error", (a) => console.error("[Centrifuge] Error", a)), console.log("[Centrifuge] Calling connect()..."), u.connect(), he = u, { centrifuge: u };
|
|
2263
2271
|
}
|
|
@@ -2265,13 +2273,13 @@ function Tt(e) {
|
|
|
2265
2273
|
var o, i, s;
|
|
2266
2274
|
if (console.log("[Centrifuge] Raw message received:", JSON.stringify(e)), !(e != null && e.data))
|
|
2267
2275
|
return console.warn("[Centrifuge] Empty or invalid response"), null;
|
|
2268
|
-
let
|
|
2269
|
-
return (o =
|
|
2276
|
+
let t = e.data;
|
|
2277
|
+
return (o = t.data) != null && o.type ? t = t.data : (s = (i = t.data) == null ? void 0 : i.data) != null && s.type && (t = t.data.data), console.log("[Centrifuge] Parsed message:", t), t.type ? t : (console.warn("[Centrifuge] Message has no type:", t), null);
|
|
2270
2278
|
}
|
|
2271
2279
|
function ge(e) {
|
|
2272
2280
|
return /^4[0-9]/.test(e) ? "visa" : /^5[1-5]/.test(e) || /^2[2-7]/.test(e) ? "mastercard" : "card";
|
|
2273
2281
|
}
|
|
2274
|
-
const
|
|
2282
|
+
const $ = {
|
|
2275
2283
|
iconType: "kaspi_pay",
|
|
2276
2284
|
label: "Kaspi.kz",
|
|
2277
2285
|
type: "kaspi_pay"
|
|
@@ -2289,12 +2297,12 @@ function K(e) {
|
|
|
2289
2297
|
}
|
|
2290
2298
|
function Ye(e) {
|
|
2291
2299
|
if (!e) return null;
|
|
2292
|
-
let
|
|
2293
|
-
return
|
|
2300
|
+
let t = String(e).trim().toLowerCase();
|
|
2301
|
+
return t.startsWith("payment_method_") && (t = t.replace("payment_method_", "")), t === "kaspi" ? "kaspi_pay" : t === "apple" ? "apple_pay" : t === "google" ? "google_pay" : t === "newcard" ? "new_card" : t === "card" ? "card" : ["kaspi_pay", "apple_pay", "google_pay", "new_card"].includes(t) ? t : null;
|
|
2294
2302
|
}
|
|
2295
2303
|
function Lt(e) {
|
|
2296
2304
|
var u, a, d;
|
|
2297
|
-
const
|
|
2305
|
+
const t = e, o = ((u = t == null ? void 0 : t.context) == null ? void 0 : u.last_payment_method) ?? (t == null ? void 0 : t.last_payment_method) ?? ((a = t == null ? void 0 : t.attributes) == null ? void 0 : a.last_payment_method);
|
|
2298
2306
|
if (!o) return null;
|
|
2299
2307
|
if (typeof o == "string")
|
|
2300
2308
|
return { type: Ye(o), cardId: null };
|
|
@@ -2305,10 +2313,10 @@ function Lt(e) {
|
|
|
2305
2313
|
cardId: s != null ? String(s) : null
|
|
2306
2314
|
};
|
|
2307
2315
|
}
|
|
2308
|
-
function Rt(e,
|
|
2309
|
-
var
|
|
2310
|
-
const i = [], s = (
|
|
2311
|
-
return s != null && s.isKaspiOnly && d && !
|
|
2316
|
+
function Rt(e, t, o = {}) {
|
|
2317
|
+
var k, b, w, L;
|
|
2318
|
+
const i = [], s = (k = e == null ? void 0 : e.kaspi) == null ? void 0 : k.data, u = ((b = e == null ? void 0 : e.cards_v2) == null ? void 0 : b.data) || [], a = ((L = (w = e == null ? void 0 : e.payment_methods) == null ? void 0 : w.data) == null ? void 0 : L.attributes) || {}, d = K(a.payment_method_kaspi), f = K(a.payment_method_card), C = typeof window < "u" && window.self === window.top, _ = De() === "ios", E = !!(o != null && o.onlyKaspiAvailable), P = !!(o != null && o.disableKaspi);
|
|
2319
|
+
return s != null && s.isKaspiOnly && d && !P ? [$] : E ? s != null && s.isAvailable && d && !P ? [$] : [] : (K(a.payment_method_apple_pay) && !me("apple_pay") && (Ce() && C || ye() || _ || rt() === 16) && i.push(ot), s != null && s.isAvailable && d && !P && i.push($), f && u.filter((O) => !O.isExpired).forEach((O) => {
|
|
2312
2320
|
i.push({
|
|
2313
2321
|
iconType: ge(O.attributes.mask),
|
|
2314
2322
|
type: "card",
|
|
@@ -2320,23 +2328,23 @@ function Rt(e, n, o = {}) {
|
|
|
2320
2328
|
}), K(a.payment_method_google_pay) && !me("google_pay") && !(o != null && o.disableGooglePay) && !Ce() && !ye() && i.push(st), K(a.payment_method_new_card) && i.push({
|
|
2321
2329
|
iconType: "new_card",
|
|
2322
2330
|
type: "new_card",
|
|
2323
|
-
label:
|
|
2331
|
+
label: t ? t("newCard") : "Оплата новой картой"
|
|
2324
2332
|
}), i);
|
|
2325
2333
|
}
|
|
2326
|
-
function Le(e,
|
|
2327
|
-
var
|
|
2328
|
-
const o = (
|
|
2329
|
-
if (o != null && o.isKaspiOnly && u && !d ||
|
|
2330
|
-
return
|
|
2331
|
-
const
|
|
2332
|
-
if ((
|
|
2333
|
-
return
|
|
2334
|
-
if ((
|
|
2335
|
-
if ((
|
|
2336
|
-
if ((
|
|
2334
|
+
function Le(e, t = {}) {
|
|
2335
|
+
var B, k, b, w;
|
|
2336
|
+
const o = (B = e == null ? void 0 : e.kaspi) == null ? void 0 : B.data, i = ((k = e == null ? void 0 : e.cards_v2) == null ? void 0 : k.data) || [], s = ((w = (b = e == null ? void 0 : e.payment_methods) == null ? void 0 : b.data) == null ? void 0 : w.attributes) || {}, u = K(s.payment_method_kaspi), a = K(s.payment_method_card), d = !!(t != null && t.disableKaspi), f = typeof window < "u" && window.self === window.top, S = De() === "ios", _ = K(s.payment_method_apple_pay) && !me("apple_pay") && (Ce() && f || ye() || S || rt() === 16), E = K(s.payment_method_google_pay) && !me("google_pay") && !(t != null && t.disableGooglePay) && !Ce() && !ye();
|
|
2337
|
+
if (o != null && o.isKaspiOnly && u && !d || t != null && t.onlyKaspiAvailable && (o != null && o.isAvailable) && u && !d)
|
|
2338
|
+
return $;
|
|
2339
|
+
const P = Lt(e);
|
|
2340
|
+
if ((P == null ? void 0 : P.type) === "kaspi_pay" && (o != null && o.isAvailable) && u && !d)
|
|
2341
|
+
return $;
|
|
2342
|
+
if ((P == null ? void 0 : P.type) === "apple_pay" && _) return ot;
|
|
2343
|
+
if ((P == null ? void 0 : P.type) === "google_pay" && E) return st;
|
|
2344
|
+
if ((P == null ? void 0 : P.type) === "new_card" && K(s.payment_method_new_card))
|
|
2337
2345
|
return { iconType: "new_card", type: "new_card", label: "Оплата новой картой" };
|
|
2338
|
-
if ((
|
|
2339
|
-
const L =
|
|
2346
|
+
if ((P == null ? void 0 : P.type) === "card" && a) {
|
|
2347
|
+
const L = P.cardId != null ? i.find((O) => !O.isExpired && String(O.id) === P.cardId) : null;
|
|
2340
2348
|
if (L)
|
|
2341
2349
|
return {
|
|
2342
2350
|
iconType: ge(L.attributes.mask),
|
|
@@ -2348,8 +2356,8 @@ function Le(e, n = {}) {
|
|
|
2348
2356
|
}
|
|
2349
2357
|
if (a) {
|
|
2350
2358
|
const L = i.find((O) => {
|
|
2351
|
-
var
|
|
2352
|
-
return ((
|
|
2359
|
+
var J;
|
|
2360
|
+
return ((J = O.attributes) == null ? void 0 : J.isDefault) && !O.isExpired;
|
|
2353
2361
|
});
|
|
2354
2362
|
if (L)
|
|
2355
2363
|
return {
|
|
@@ -2360,14 +2368,14 @@ function Le(e, n = {}) {
|
|
|
2360
2368
|
cardType: L.type
|
|
2361
2369
|
};
|
|
2362
2370
|
}
|
|
2363
|
-
if (o != null && o.isAvailable && u && !d) return
|
|
2364
|
-
const
|
|
2365
|
-
return
|
|
2366
|
-
iconType: ge(
|
|
2371
|
+
if (o != null && o.isAvailable && u && !d) return $;
|
|
2372
|
+
const T = a ? i.find((L) => !L.isExpired) : null;
|
|
2373
|
+
return T ? {
|
|
2374
|
+
iconType: ge(T.attributes.mask),
|
|
2367
2375
|
type: "card",
|
|
2368
|
-
cardId:
|
|
2369
|
-
label: `••••${
|
|
2370
|
-
cardType:
|
|
2376
|
+
cardId: T.id,
|
|
2377
|
+
label: `••••${T.attributes.mask.slice(-4)}`,
|
|
2378
|
+
cardType: T.type
|
|
2371
2379
|
} : null;
|
|
2372
2380
|
}
|
|
2373
2381
|
function it(e) {
|
|
@@ -2378,10 +2386,10 @@ function it(e) {
|
|
|
2378
2386
|
return null;
|
|
2379
2387
|
}
|
|
2380
2388
|
}
|
|
2381
|
-
function Re(e,
|
|
2389
|
+
function Re(e, t) {
|
|
2382
2390
|
if (!(typeof localStorage > "u"))
|
|
2383
2391
|
try {
|
|
2384
|
-
localStorage.setItem(e,
|
|
2392
|
+
localStorage.setItem(e, t);
|
|
2385
2393
|
} catch {
|
|
2386
2394
|
}
|
|
2387
2395
|
}
|
|
@@ -2392,28 +2400,29 @@ function be(e) {
|
|
|
2392
2400
|
} catch {
|
|
2393
2401
|
}
|
|
2394
2402
|
}
|
|
2395
|
-
async function Ot(e,
|
|
2403
|
+
async function Ot(e, t) {
|
|
2396
2404
|
var o;
|
|
2397
2405
|
try {
|
|
2398
2406
|
const i = await e.json(), s = (o = i == null ? void 0 : i.errors) == null ? void 0 : o[0];
|
|
2399
|
-
return (s == null ? void 0 : s.title) || (s == null ? void 0 : s.detail) || (i == null ? void 0 : i.message) || (i == null ? void 0 : i.error) ||
|
|
2407
|
+
return (s == null ? void 0 : s.title) || (s == null ? void 0 : s.detail) || (i == null ? void 0 : i.message) || (i == null ? void 0 : i.error) || t;
|
|
2400
2408
|
} catch {
|
|
2401
2409
|
return `HTTP ${e.status}: ${e.statusText}`;
|
|
2402
2410
|
}
|
|
2403
2411
|
}
|
|
2404
|
-
async function
|
|
2405
|
-
const o = await Ot(e,
|
|
2412
|
+
async function Y(e, t) {
|
|
2413
|
+
const o = await Ot(e, t);
|
|
2406
2414
|
throw Object.assign(new Error(o), { status: e.status });
|
|
2407
2415
|
}
|
|
2408
|
-
function Ie(e,
|
|
2409
|
-
const i = Number.isFinite(o.checkoutAmount) && o.checkoutAmount >= 0 ? Number(o.checkoutAmount) : e.amount, s = !!o.forceBalanceMethod, u = !!o.useBalance;
|
|
2416
|
+
function Ie(e, t, o = {}) {
|
|
2417
|
+
const i = Number.isFinite(o.checkoutAmount) && o.checkoutAmount >= 0 ? Number(o.checkoutAmount) : e.amount, s = !!o.forceBalanceMethod, u = !!o.useBalance, a = o.voucher;
|
|
2410
2418
|
return {
|
|
2411
2419
|
checkoutAmount: i,
|
|
2412
|
-
checkoutPaymentMethod: s ? { type: "balance" } :
|
|
2413
|
-
useBalanceFlag: u
|
|
2420
|
+
checkoutPaymentMethod: s ? { type: "balance" } : t,
|
|
2421
|
+
useBalanceFlag: u,
|
|
2422
|
+
voucher: a
|
|
2414
2423
|
};
|
|
2415
2424
|
}
|
|
2416
|
-
function Qe(e,
|
|
2425
|
+
function Qe(e, t, o, i, s) {
|
|
2417
2426
|
return {
|
|
2418
2427
|
preorder_id: e.preorderId,
|
|
2419
2428
|
terminal_id: e.terminalId,
|
|
@@ -2422,27 +2431,28 @@ function Qe(e, n, o, i) {
|
|
|
2422
2431
|
amount: String(o),
|
|
2423
2432
|
currency: e.currency
|
|
2424
2433
|
},
|
|
2425
|
-
payment_method:
|
|
2434
|
+
payment_method: t,
|
|
2426
2435
|
...e.backlink && { backlink: e.backlink },
|
|
2427
|
-
...i && { use_balance: !0 }
|
|
2436
|
+
...i && { use_balance: !0 },
|
|
2437
|
+
...s && { voucher: s }
|
|
2428
2438
|
};
|
|
2429
2439
|
}
|
|
2430
|
-
async function Se(e,
|
|
2440
|
+
async function Se(e, t, o, i, s) {
|
|
2431
2441
|
const u = await fetch(`${e}/orders/v1/checkout`, {
|
|
2432
2442
|
method: "POST",
|
|
2433
2443
|
headers: {
|
|
2434
2444
|
"Content-Type": "application/json",
|
|
2435
|
-
Authorization: `Bearer ${
|
|
2436
|
-
"X-Idempotency-Key": Be(),
|
|
2445
|
+
Authorization: `Bearer ${t.accessToken}`,
|
|
2446
|
+
"X-Idempotency-Key": t.idempotencyKey ?? Be(),
|
|
2437
2447
|
"X-Device-Id": o,
|
|
2438
2448
|
"X-OS": "WEB"
|
|
2439
2449
|
},
|
|
2440
2450
|
body: JSON.stringify(i)
|
|
2441
2451
|
});
|
|
2442
|
-
return u.ok || await
|
|
2452
|
+
return u.ok || await Y(u, s), u.json();
|
|
2443
2453
|
}
|
|
2444
|
-
async function Mt(e,
|
|
2445
|
-
var d,
|
|
2454
|
+
async function Mt(e, t, o) {
|
|
2455
|
+
var d, f, C, S;
|
|
2446
2456
|
const i = await fetch(`${e}/api/v2/oauth2/tokens`, {
|
|
2447
2457
|
method: "POST",
|
|
2448
2458
|
headers: {
|
|
@@ -2451,80 +2461,80 @@ async function Mt(e, n, o) {
|
|
|
2451
2461
|
"X-Fingerprint": nt()
|
|
2452
2462
|
},
|
|
2453
2463
|
body: JSON.stringify({
|
|
2454
|
-
client_id:
|
|
2464
|
+
client_id: t,
|
|
2455
2465
|
grant_type: "authorization_track_id",
|
|
2456
2466
|
track_id: o
|
|
2457
2467
|
})
|
|
2458
2468
|
});
|
|
2459
|
-
i.ok || await
|
|
2460
|
-
const s = await i.json(), u = (s == null ? void 0 : s.access_token) ?? ((
|
|
2469
|
+
i.ok || await Y(i, "Не удалось авторизоваться через track_id");
|
|
2470
|
+
const s = await i.json(), u = (s == null ? void 0 : s.access_token) ?? ((f = (d = s == null ? void 0 : s.data) == null ? void 0 : d.attributes) == null ? void 0 : f.access_token), a = (s == null ? void 0 : s.refresh_token) ?? ((S = (C = s == null ? void 0 : s.data) == null ? void 0 : C.attributes) == null ? void 0 : S.refresh_token) ?? null;
|
|
2461
2471
|
if (!u) throw new Error("В ответе отсутствует access_token");
|
|
2462
2472
|
return { access_token: u, refresh_token: a };
|
|
2463
2473
|
}
|
|
2464
|
-
async function Nt(e,
|
|
2465
|
-
var d,
|
|
2474
|
+
async function Nt(e, t, o) {
|
|
2475
|
+
var d, f, C, S;
|
|
2466
2476
|
const i = await fetch(`${e}/api/v2/oauth2/tokens`, {
|
|
2467
2477
|
method: "POST",
|
|
2468
2478
|
headers: { "Content-Type": "application/json" },
|
|
2469
2479
|
body: JSON.stringify({
|
|
2470
|
-
client_id:
|
|
2480
|
+
client_id: t,
|
|
2471
2481
|
grant_type: "refresh_token",
|
|
2472
2482
|
refresh_token: o
|
|
2473
2483
|
})
|
|
2474
2484
|
});
|
|
2475
|
-
i.ok || await
|
|
2476
|
-
const s = await i.json(), u = (s == null ? void 0 : s.access_token) ?? ((
|
|
2485
|
+
i.ok || await Y(i, "Не удалось обновить токен по refresh_token");
|
|
2486
|
+
const s = await i.json(), u = (s == null ? void 0 : s.access_token) ?? ((f = (d = s == null ? void 0 : s.data) == null ? void 0 : d.attributes) == null ? void 0 : f.access_token), a = (s == null ? void 0 : s.refresh_token) ?? ((S = (C = s == null ? void 0 : s.data) == null ? void 0 : C.attributes) == null ? void 0 : S.refresh_token) ?? null;
|
|
2477
2487
|
if (!u) throw new Error("В ответе отсутствует access_token");
|
|
2478
2488
|
return { access_token: u, refresh_token: a };
|
|
2479
2489
|
}
|
|
2480
|
-
async function Oe(e,
|
|
2490
|
+
async function Oe(e, t) {
|
|
2481
2491
|
const o = await fetch(`${e}/orders/v1/checkout/context`, {
|
|
2482
2492
|
method: "POST",
|
|
2483
2493
|
headers: {
|
|
2484
2494
|
"Content-Type": "application/json",
|
|
2485
|
-
Authorization: `Bearer ${
|
|
2486
|
-
"X-Idempotency-Key": Be()
|
|
2495
|
+
Authorization: `Bearer ${t.accessToken}`,
|
|
2496
|
+
"X-Idempotency-Key": t.idempotencyKey ?? Be()
|
|
2487
2497
|
},
|
|
2488
2498
|
body: JSON.stringify({
|
|
2489
|
-
terminal_id:
|
|
2499
|
+
terminal_id: t.terminalId,
|
|
2490
2500
|
include: ["cards", "payment_methods", "balance", "cashback"],
|
|
2491
2501
|
money: {
|
|
2492
|
-
amount: String(
|
|
2493
|
-
currency:
|
|
2502
|
+
amount: String(t.amount),
|
|
2503
|
+
currency: t.currency
|
|
2494
2504
|
}
|
|
2495
2505
|
})
|
|
2496
2506
|
});
|
|
2497
|
-
return o.ok || await
|
|
2507
|
+
return o.ok || await Y(o, "Ошибка получения контекста оплаты"), o.json();
|
|
2498
2508
|
}
|
|
2499
|
-
async function Dt(e,
|
|
2509
|
+
async function Dt(e, t, o) {
|
|
2500
2510
|
const i = await fetch(`${e}/payment-gateway/v1/cards/${o}`, {
|
|
2501
2511
|
method: "DELETE",
|
|
2502
2512
|
headers: {
|
|
2503
2513
|
"Content-Type": "application/json",
|
|
2504
|
-
Authorization: `Bearer ${
|
|
2514
|
+
Authorization: `Bearer ${t.accessToken}`
|
|
2505
2515
|
}
|
|
2506
2516
|
});
|
|
2507
|
-
return i.ok || await
|
|
2517
|
+
return i.ok || await Y(i, "Не удалось удалить карту"), i.json().catch(() => ({}));
|
|
2508
2518
|
}
|
|
2509
|
-
async function Xt(e,
|
|
2519
|
+
async function Xt(e, t, o) {
|
|
2510
2520
|
const i = await fetch(
|
|
2511
2521
|
`${e}/payment-gateway/v1/cards/${o}/mark_as_default`,
|
|
2512
2522
|
{
|
|
2513
2523
|
method: "PUT",
|
|
2514
2524
|
headers: {
|
|
2515
2525
|
"Content-Type": "application/json",
|
|
2516
|
-
Authorization: `Bearer ${
|
|
2526
|
+
Authorization: `Bearer ${t.accessToken}`
|
|
2517
2527
|
}
|
|
2518
2528
|
}
|
|
2519
2529
|
);
|
|
2520
|
-
return i.ok || await
|
|
2530
|
+
return i.ok || await Y(i, "Не удалось отметить карту как основную"), i.json().catch(() => ({}));
|
|
2521
2531
|
}
|
|
2522
|
-
async function Ut(e,
|
|
2532
|
+
async function Ut(e, t, o) {
|
|
2523
2533
|
const i = await fetch(`${e}/orders/v1/orders/${o}/status`, {
|
|
2524
2534
|
method: "GET",
|
|
2525
2535
|
headers: {
|
|
2526
2536
|
"Content-Type": "application/json",
|
|
2527
|
-
Authorization: `Bearer ${
|
|
2537
|
+
Authorization: `Bearer ${t.accessToken}`
|
|
2528
2538
|
}
|
|
2529
2539
|
});
|
|
2530
2540
|
if (!i.ok)
|
|
@@ -2535,9 +2545,9 @@ async function Ut(e, n, o) {
|
|
|
2535
2545
|
const s = await i.json(), u = (s == null ? void 0 : s.data) ?? s;
|
|
2536
2546
|
return { data: { status: u == null ? void 0 : u.status, payload: (u == null ? void 0 : u.payload) ?? {} } };
|
|
2537
2547
|
}
|
|
2538
|
-
async function Ge(e,
|
|
2539
|
-
const { checkoutAmount: u, checkoutPaymentMethod: a, useBalanceFlag: d } = Ie(
|
|
2540
|
-
|
|
2548
|
+
async function Ge(e, t, o, i, s = {}) {
|
|
2549
|
+
const { checkoutAmount: u, checkoutPaymentMethod: a, useBalanceFlag: d, voucher: f } = Ie(
|
|
2550
|
+
t,
|
|
2541
2551
|
{
|
|
2542
2552
|
type: i.type,
|
|
2543
2553
|
...i.cardId && { card_id: i.cardId }
|
|
@@ -2546,68 +2556,81 @@ async function Ge(e, n, o, i, s = {}) {
|
|
|
2546
2556
|
);
|
|
2547
2557
|
return Se(
|
|
2548
2558
|
e,
|
|
2549
|
-
|
|
2559
|
+
t,
|
|
2550
2560
|
o,
|
|
2551
|
-
Qe(
|
|
2561
|
+
Qe(t, a, u, d, f),
|
|
2552
2562
|
"Ошибка создания заказа"
|
|
2553
2563
|
);
|
|
2554
2564
|
}
|
|
2555
|
-
async function Ht(e,
|
|
2556
|
-
const { checkoutAmount: s, checkoutPaymentMethod: u, useBalanceFlag: a } = Ie(
|
|
2557
|
-
|
|
2565
|
+
async function Ht(e, t, o, i = {}) {
|
|
2566
|
+
const { checkoutAmount: s, checkoutPaymentMethod: u, useBalanceFlag: a, voucher: d } = Ie(
|
|
2567
|
+
t,
|
|
2558
2568
|
{ type: "new_card" },
|
|
2559
2569
|
i
|
|
2560
2570
|
);
|
|
2561
2571
|
return Se(
|
|
2562
2572
|
e,
|
|
2563
|
-
|
|
2573
|
+
t,
|
|
2564
2574
|
o,
|
|
2565
|
-
Qe(
|
|
2575
|
+
Qe(t, u, s, a, d),
|
|
2566
2576
|
"Ошибка создания заказа для новой карты"
|
|
2567
2577
|
);
|
|
2568
2578
|
}
|
|
2569
|
-
async function xt(e,
|
|
2579
|
+
async function xt(e, t) {
|
|
2580
|
+
const o = await fetch(
|
|
2581
|
+
`${e}/loyalty/v6/coupons/by_terminal/${t.terminalId}/at_payment?order_pay_amount=${t.amount}`,
|
|
2582
|
+
{
|
|
2583
|
+
method: "GET",
|
|
2584
|
+
headers: {
|
|
2585
|
+
"Content-Type": "application/json",
|
|
2586
|
+
Authorization: `Bearer ${t.accessToken}`
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2589
|
+
);
|
|
2590
|
+
return o.ok || await Y(o, "Ошибка получения купонов"), o.json();
|
|
2591
|
+
}
|
|
2592
|
+
async function Ft(e, t, o) {
|
|
2570
2593
|
const i = window.location.hostname, s = await fetch(`${e}/payment-gateway/v1/apple/session`, {
|
|
2571
2594
|
method: "POST",
|
|
2572
2595
|
headers: {
|
|
2573
2596
|
"Content-Type": "application/json",
|
|
2574
2597
|
Accept: "application/vnd.api+json",
|
|
2575
|
-
Authorization: `Bearer ${
|
|
2598
|
+
Authorization: `Bearer ${t.accessToken}`
|
|
2576
2599
|
},
|
|
2577
2600
|
body: JSON.stringify({ validationUrl: o, domainName: i })
|
|
2578
2601
|
});
|
|
2579
|
-
return s.ok || await
|
|
2602
|
+
return s.ok || await Y(s, "Ошибка получения Apple Pay сессии"), s.json();
|
|
2580
2603
|
}
|
|
2581
|
-
async function
|
|
2582
|
-
const { checkoutAmount: u, checkoutPaymentMethod: a, useBalanceFlag: d } = Ie(
|
|
2583
|
-
|
|
2604
|
+
async function Jt(e, t, o, i, s = {}) {
|
|
2605
|
+
const { checkoutAmount: u, checkoutPaymentMethod: a, useBalanceFlag: d, voucher: f } = Ie(
|
|
2606
|
+
t,
|
|
2584
2607
|
{ type: "apple_pay", data: i },
|
|
2585
2608
|
s
|
|
2586
2609
|
);
|
|
2587
2610
|
return Se(
|
|
2588
2611
|
e,
|
|
2589
|
-
|
|
2612
|
+
t,
|
|
2590
2613
|
o,
|
|
2591
|
-
Qe(
|
|
2614
|
+
Qe(t, a, u, d, f),
|
|
2592
2615
|
"Ошибка создания заказа с Apple Pay"
|
|
2593
2616
|
);
|
|
2594
2617
|
}
|
|
2595
|
-
async function at(e,
|
|
2596
|
-
const { checkoutAmount: u, checkoutPaymentMethod: a, useBalanceFlag: d } = Ie(
|
|
2597
|
-
|
|
2618
|
+
async function at(e, t, o, i, s = {}) {
|
|
2619
|
+
const { checkoutAmount: u, checkoutPaymentMethod: a, useBalanceFlag: d, voucher: f } = Ie(
|
|
2620
|
+
t,
|
|
2598
2621
|
{ type: "google_pay", data: i },
|
|
2599
2622
|
s
|
|
2600
2623
|
);
|
|
2601
2624
|
return Se(
|
|
2602
2625
|
e,
|
|
2603
|
-
|
|
2626
|
+
t,
|
|
2604
2627
|
o,
|
|
2605
|
-
Qe(
|
|
2628
|
+
Qe(t, a, u, d, f),
|
|
2606
2629
|
"Ошибка создания заказа с Google Pay"
|
|
2607
2630
|
);
|
|
2608
2631
|
}
|
|
2609
|
-
function
|
|
2610
|
-
const
|
|
2632
|
+
function qt(e) {
|
|
2633
|
+
const t = typeof e.color == "string" ? e.color.trim() : "", o = t && /^[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/.test(t) ? `#${t}` : t, i = e.bonuses, s = i && typeof i == "object" && Number.isFinite(i.amount) && Number.isFinite(i.percent) ? {
|
|
2611
2634
|
availableBonus: Number.isFinite(i.availableBonus) ? Number(i.availableBonus) : 0,
|
|
2612
2635
|
amount: Number(i.amount),
|
|
2613
2636
|
percent: Number(i.percent)
|
|
@@ -2637,6 +2660,7 @@ function Jt(e) {
|
|
|
2637
2660
|
onPayWithGooglePay: typeof e.onPayWithGooglePay == "function" ? e.onPayWithGooglePay : null,
|
|
2638
2661
|
onUserEvent: typeof e.onUserEvent == "function" ? e.onUserEvent : null,
|
|
2639
2662
|
onBeforeCheckout: typeof e.onBeforeCheckout == "function" ? e.onBeforeCheckout : null,
|
|
2663
|
+
idempotencyKey: e.idempotencyKey,
|
|
2640
2664
|
locale: e.locale || "ru",
|
|
2641
2665
|
containerSelector: typeof e.containerSelector == "string" ? e.containerSelector.trim() : "",
|
|
2642
2666
|
color: o || "#2F2F2F",
|
|
@@ -2647,20 +2671,20 @@ function Jt(e) {
|
|
|
2647
2671
|
bonuses: s
|
|
2648
2672
|
};
|
|
2649
2673
|
}
|
|
2650
|
-
function Me(e,
|
|
2651
|
-
Re("webPayToken", e),
|
|
2674
|
+
function Me(e, t) {
|
|
2675
|
+
Re("webPayToken", e), t && Re("webPayRefreshToken", t);
|
|
2652
2676
|
}
|
|
2653
2677
|
function Ze() {
|
|
2654
2678
|
be("webPayToken"), be("webPayRefreshToken");
|
|
2655
2679
|
}
|
|
2656
|
-
async function
|
|
2657
|
-
const
|
|
2658
|
-
if (
|
|
2680
|
+
async function jt(e) {
|
|
2681
|
+
const t = it("webPayRefreshToken");
|
|
2682
|
+
if (t && e.config.clientId)
|
|
2659
2683
|
try {
|
|
2660
2684
|
const i = await Nt(
|
|
2661
2685
|
e.apiUrl,
|
|
2662
2686
|
e.config.clientId,
|
|
2663
|
-
|
|
2687
|
+
t
|
|
2664
2688
|
);
|
|
2665
2689
|
Me(i.access_token, i.refresh_token), e.accessToken = i.access_token;
|
|
2666
2690
|
return;
|
|
@@ -2678,14 +2702,14 @@ async function qt(e) {
|
|
|
2678
2702
|
);
|
|
2679
2703
|
Me(o.access_token, o.refresh_token), e.accessToken = o.access_token;
|
|
2680
2704
|
}
|
|
2681
|
-
const
|
|
2705
|
+
const zt = `<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2682
2706
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.89711 8.50443C10.4185 8.72365 10.6242 9.56386 10.7471 10.3459L10.7816 10.5699L10.8557 11.0301C11.0006 11.9088 11.303 13.7327 11.303 14.6845C11.303 14.9224 11.2806 15.105 11.2396 15.2053C11.1713 15.3599 10.9724 15.5082 10.6978 15.6319C10.0332 15.7846 9.33863 15.8671 8.62315 15.8671C8.54739 15.8671 8.47285 15.8637 8.39805 15.8616C8.10889 15.785 7.89156 15.657 7.77649 15.4821C7.42905 14.9542 7.40812 13.7781 7.40116 12.4037L7.40037 12.2443L7.39755 11.8324C7.38623 10.3774 7.37651 9.1229 7.94288 8.67272C8.16223 8.49957 8.47392 8.44225 8.89711 8.50443ZM5.58009 11.6722C5.90978 11.6548 6.12181 13.1684 6.16441 14.3162C6.19427 15.1152 6.10438 15.4439 5.96084 15.5619C5.79833 15.5113 5.63864 15.4565 5.48128 15.397C5.3763 15.219 5.29607 14.9389 5.2451 14.5721C5.08947 13.4193 5.22466 11.6925 5.58009 11.6722ZM13.8455 13.934C13.825 14.0391 13.796 14.1204 13.7602 14.1889C13.4783 14.4 13.1821 14.5938 12.872 14.7682C12.7733 14.7837 12.6856 14.7729 12.6427 14.7053C12.2318 14.0314 12.0775 11.9173 12.4752 11.7333C12.9936 11.4995 13.9224 13.5685 13.8455 13.934ZM8.50042 0C13.1296 0 16.8941 3.42166 16.9979 7.67934L17 7.82651V7.89454C16.9915 9.81778 16.2332 11.5773 14.9839 12.9392C14.9386 12.918 14.8559 12.8486 14.7062 12.6395C14.5512 12.4293 13.2148 10.5096 13.2148 8.30946C13.2148 7.87768 13.8816 7.20318 14.4717 6.61114C14.9128 6.16562 15.3306 5.74539 15.4845 5.4151C15.6804 4.98892 15.5433 4.69134 15.3265 4.59047C15.1302 4.50082 14.8355 4.56621 14.6287 4.90904C14.2893 5.46389 14.1805 5.56758 13.6855 5.93882C13.1984 6.30986 12.424 6.68338 12.424 6.19988C12.424 5.93882 12.8553 5.34757 13.0684 4.93314C13.286 4.51408 13.0515 4.21072 12.6022 4.21072C11.7198 4.21072 11.1341 5.2598 11.1341 5.62326C11.1341 5.98642 11.3229 6.03813 11.3229 6.46104C11.3229 6.88713 10.3548 7.4398 9.44281 7.4398C8.56481 7.4398 8.05566 7.27394 7.8447 6.80665L7.81777 6.74105L7.75678 6.57266C7.54046 5.98255 7.38528 5.55458 7.11514 5.10733C6.9717 4.87081 6.75038 4.70684 6.55897 4.56257C6.30881 4.38121 6.17902 4.21421 6.15193 4.08967C6.12696 3.96611 6.11352 3.73326 6.54117 3.19648C6.96793 2.66277 7.02775 2.25958 6.81418 2.05153C6.73678 1.97752 6.60482 1.93011 6.43535 1.93011C6.13562 1.93011 5.71912 2.07834 5.2899 2.48551C4.62267 3.12364 5.00146 3.72951 5.00146 3.99548C5.00146 4.26127 4.87922 4.41162 4.47882 4.77323C4.07547 5.13644 3.93627 5.44783 3.89014 6.69935C3.87247 7.3442 3.75079 7.71539 3.64156 8.04453C3.54718 8.33302 3.46038 8.60425 3.45569 8.99611C3.44822 9.43038 3.52566 9.71023 3.61604 10.0331C3.70477 10.3316 3.79902 10.6736 3.8594 11.2456C3.95544 12.1312 3.92205 12.8792 3.74744 13.6437L3.70084 13.8353L3.68995 13.8903C3.65419 14.0247 3.61168 14.1879 3.55423 14.249C1.4029 12.8228 0 10.4936 0 7.86072C0 3.51974 3.80561 0 8.50042 0Z" fill="#F14635"/>
|
|
2683
2707
|
</svg>
|
|
2684
|
-
`,
|
|
2708
|
+
`, Kt = `<svg width="21" height="12" viewBox="0 0 21 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2685
2709
|
<path d="M0 6C0 2.68629 2.68629 0 6 0H15C18.3137 0 21 2.68629 21 6C21 9.31371 18.3137 12 15 12H6C2.68629 12 0 9.31371 0 6Z" fill="#F1F2F7"/>
|
|
2686
2710
|
<path d="M7.79163 5.99984H13.2083M10.5 3.2915L10.5 8.70817" stroke="#242424" stroke-width="0.8125" stroke-linecap="round"/>
|
|
2687
2711
|
</svg>
|
|
2688
|
-
`,
|
|
2712
|
+
`, Wt = `<svg width="29" height="12" viewBox="0 0 29 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2689
2713
|
<g clip-path="url(#clip0_22788_48734)">
|
|
2690
2714
|
<path d="M5.29824 1.53496C4.9584 1.93711 4.41465 2.2543 3.8709 2.20898C3.80293 1.66523 4.06914 1.0875 4.38066 0.730664C4.72051 0.317187 5.31523 0.0226563 5.79668 0C5.85332 0.566406 5.63242 1.12148 5.29824 1.53496ZM5.79101 2.3166C5.00371 2.27129 4.32969 2.76406 3.95586 2.76406C3.57637 2.76406 3.0043 2.33926 2.38125 2.35059C1.57129 2.36191 0.817967 2.8207 0.40449 3.55137C-0.445119 5.0127 0.183592 7.17637 1.00488 8.36582C1.40703 8.95488 1.88847 9.60059 2.52285 9.57793C3.12324 9.55527 3.36113 9.18711 4.08613 9.18711C4.81679 9.18711 5.02637 9.57793 5.66074 9.5666C6.31777 9.55527 6.73125 8.97754 7.1334 8.38848C7.59219 7.72012 7.7791 7.06875 7.79043 7.03477C7.7791 7.02344 6.52168 6.54199 6.51035 5.09199C6.49902 3.87988 7.50156 3.30215 7.54687 3.26816C6.98047 2.42988 6.09687 2.33926 5.79101 2.3166ZM10.3393 0.674023V9.5043H11.71V6.48535H13.6074C15.3406 6.48535 16.5584 5.2959 16.5584 3.57402C16.5584 1.85215 15.3633 0.674023 13.6527 0.674023H10.3393ZM11.71 1.82949H13.2902C14.4797 1.82949 15.1594 2.46387 15.1594 3.57969C15.1594 4.69551 14.4797 5.33555 13.2846 5.33555H11.71V1.82949ZM19.0619 9.57227C19.9229 9.57227 20.7215 9.13613 21.084 8.44512H21.1123V9.5043H22.3811V5.10898C22.3811 3.83457 21.3615 3.01328 19.7926 3.01328C18.3369 3.01328 17.2607 3.8459 17.2211 4.99004H18.4559C18.5578 4.44629 19.0619 4.08945 19.7529 4.08945C20.5912 4.08945 21.0613 4.48027 21.0613 5.19961V5.68672L19.3508 5.78867C17.7592 5.88496 16.8982 6.53633 16.8982 7.66914C16.8982 8.81328 17.7875 9.57227 19.0619 9.57227ZM19.4301 8.52441C18.6994 8.52441 18.235 8.17324 18.235 7.63516C18.235 7.08008 18.6824 6.75723 19.5377 6.70625L21.0613 6.60996V7.1084C21.0613 7.93535 20.359 8.52441 19.4301 8.52441ZM24.0746 11.9059C25.4113 11.9059 26.04 11.3961 26.5895 9.8498L28.9967 3.09824H27.6033L25.9891 8.31484H25.9607L24.3465 3.09824H22.9135L25.2357 9.52695L25.1111 9.91777C24.9016 10.5805 24.5617 10.8354 23.9557 10.8354C23.848 10.8354 23.6385 10.824 23.5535 10.8127V11.8719C23.6328 11.8945 23.9727 11.9059 24.0746 11.9059Z" fill="black"/>
|
|
2691
2715
|
</g>
|
|
@@ -2695,7 +2719,7 @@ const jt = `<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="h
|
|
|
2695
2719
|
</clipPath>
|
|
2696
2720
|
</defs>
|
|
2697
2721
|
</svg>
|
|
2698
|
-
`,
|
|
2722
|
+
`, Vt = `<svg width="52" height="21" viewBox="0 0 52 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2699
2723
|
<g clip-path="url(#clip0_23934_4296)">
|
|
2700
2724
|
<path d="M24.5944 10.0883V16.1414H22.6741V1.19278H27.7671C28.375 1.18008 28.9794 1.2879 29.5455 1.51002C30.1115 1.73213 30.628 2.06415 31.065 2.4869C31.5065 2.88399 31.8578 3.37098 32.0954 3.91513C32.3331 4.45929 32.4514 5.048 32.4426 5.64171C32.4553 6.23859 32.3387 6.83115 32.1009 7.37877C31.8631 7.92639 31.5098 8.41612 31.065 8.8144C30.1744 9.66364 29.0751 10.0879 27.7671 10.0871H24.5944V10.0883ZM24.5944 3.03318V8.25143H27.8148C28.1678 8.26189 28.5192 8.19856 28.8464 8.06547C29.1735 7.93238 29.4693 7.73247 29.7148 7.47853C29.959 7.2411 30.1532 6.95711 30.2857 6.64336C30.4183 6.3296 30.4866 5.99245 30.4866 5.65184C30.4866 5.31124 30.4183 4.97409 30.2857 4.66033C30.1532 4.34658 29.959 4.06259 29.7148 3.82516C29.4724 3.56587 29.1776 3.36106 28.8501 3.22432C28.5225 3.08757 28.1696 3.02201 27.8148 3.03199H24.5944V3.03318Z" fill="black"/>
|
|
2701
2725
|
<path d="M36.8677 5.57959C38.2871 5.57959 39.4075 5.95888 40.2289 6.71747C41.0503 7.47605 41.4606 8.51612 41.4598 9.83768V16.1413H39.623V14.722H39.5395C38.7443 15.8909 37.6868 16.4753 36.3668 16.4753C35.24 16.4753 34.2974 16.1413 33.5388 15.4734C33.1747 15.1668 32.8837 14.7829 32.6868 14.3496C32.49 13.9163 32.3923 13.4445 32.4009 12.9686C32.4009 11.9103 32.8009 11.0686 33.6008 10.4436C34.4007 9.8186 35.4686 9.5053 36.8045 9.50371C37.9448 9.50371 38.8839 9.71244 39.6218 10.1299V9.69097C39.624 9.36657 39.5539 9.04574 39.4167 8.75177C39.2795 8.45779 39.0786 8.19803 38.8286 7.99132C38.3208 7.53316 37.659 7.28317 36.9751 7.29118C35.9024 7.29118 35.0536 7.74362 34.4286 8.64852L32.7373 7.5834C33.6676 6.24753 35.0444 5.57959 36.8677 5.57959ZM34.3833 13.0104C34.382 13.2548 34.4391 13.4959 34.5499 13.7138C34.6607 13.9316 34.8219 14.1198 35.0202 14.2628C35.4449 14.5968 35.972 14.7738 36.5123 14.7637C37.3226 14.7624 38.0994 14.4398 38.6724 13.8668C39.3085 13.268 39.6266 12.5655 39.6266 11.7592C39.0278 11.2821 38.1929 11.0435 37.1218 11.0435C36.3417 11.0435 35.6913 11.2316 35.1705 11.6077C34.6445 11.9894 34.3833 12.4534 34.3833 13.0104Z" fill="black"/>
|
|
@@ -2711,7 +2735,7 @@ const jt = `<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="h
|
|
|
2711
2735
|
</clipPath>
|
|
2712
2736
|
</defs>
|
|
2713
2737
|
</svg>
|
|
2714
|
-
`,
|
|
2738
|
+
`, Yt = `<svg width="25" height="12" viewBox="0 0 25 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2715
2739
|
<rect width="25" height="11.5385" rx="2.88462" fill="#00579F"/>
|
|
2716
2740
|
<g clip-path="url(#clip0_22788_48747)">
|
|
2717
2741
|
<path d="M9.84078 8.57012H8.36084L9.2865 2.98535H10.7664L9.84078 8.57012Z" fill="white"/>
|
|
@@ -2726,7 +2750,7 @@ const jt = `<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="h
|
|
|
2726
2750
|
</clipPath>
|
|
2727
2751
|
</defs>
|
|
2728
2752
|
</svg>
|
|
2729
|
-
`,
|
|
2753
|
+
`, Gt = `<svg width="36" height="22" viewBox="0 0 36 22" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2730
2754
|
<rect width="36" height="22" fill="url(#pattern0_23934_927)"/>
|
|
2731
2755
|
<defs>
|
|
2732
2756
|
<pattern id="pattern0_23934_927" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
@@ -2735,29 +2759,29 @@ const jt = `<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="h
|
|
|
2735
2759
|
<image id="image0_23934_927" width="989" height="768" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
|
|
2736
2760
|
</defs>
|
|
2737
2761
|
</svg>
|
|
2738
|
-
`,
|
|
2739
|
-
kaspi_pay:
|
|
2740
|
-
new_card:
|
|
2741
|
-
apple_pay:
|
|
2742
|
-
google_pay:
|
|
2743
|
-
visa:
|
|
2744
|
-
mastercard:
|
|
2762
|
+
`, Zt = {
|
|
2763
|
+
kaspi_pay: zt,
|
|
2764
|
+
new_card: Kt,
|
|
2765
|
+
apple_pay: Wt,
|
|
2766
|
+
google_pay: Vt,
|
|
2767
|
+
visa: Yt,
|
|
2768
|
+
mastercard: Gt
|
|
2745
2769
|
};
|
|
2746
|
-
function
|
|
2747
|
-
const
|
|
2748
|
-
return
|
|
2770
|
+
function $t(e) {
|
|
2771
|
+
const t = e == null ? void 0 : e.toLowerCase();
|
|
2772
|
+
return t && Zt[t] || "";
|
|
2749
2773
|
}
|
|
2750
2774
|
const ct = `<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2751
2775
|
<path d="M19.7045 10.7313C15.0567 10.7313 11.2687 6.94328 11.2687 2.26866C11.2687 2.10746 11.1612 2 11 2C10.8388 2 10.7313 2.10746 10.7313 2.26866C10.7313 6.94328 6.94328 10.7313 2.26866 10.7313C2.10746 10.7313 2 10.8388 2 11C2 11.1612 2.10746 11.2687 2.26866 11.2687C6.94328 11.2687 10.7313 15.0567 10.7313 19.7313C10.7313 19.8925 10.8388 20 11 20C11.1612 20 11.2687 19.8925 11.2687 19.7313C11.2687 15.0567 15.0567 11.2687 19.7313 11.2687C19.8925 11.2687 20 11.1612 20 11C20 10.8388 19.8657 10.7313 19.7045 10.7313Z" fill="#2F2F2F"/>
|
|
2752
2776
|
</svg>
|
|
2753
|
-
`,
|
|
2777
|
+
`, en = '<svg class="choco-widget-method-item-trash" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.16663 5.83317H15.8333" stroke="#CC3434" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M15 5.8335V15.0002C15 15.921 14.2542 16.6668 13.3333 16.6668H6.66667C5.74583 16.6668 5 15.921 5 15.0002V5.8335" stroke="#CC3434" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M12.5 3.12516H7.5" stroke="#CC3434" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M8.33329 9.1665V13.3332" stroke="#CC3434" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M11.6667 9.1665V13.3332" stroke="#CC3434" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>', tn = '<svg class="choco-widget-method-item-check" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.3333 4.3335L5.99996 11.6668L2.66663 8.3335" stroke="#242424" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>';
|
|
2754
2778
|
function Ee(e) {
|
|
2755
|
-
return
|
|
2779
|
+
return $t(e == null ? void 0 : e.iconType);
|
|
2756
2780
|
}
|
|
2757
|
-
function At(e,
|
|
2781
|
+
function At(e, t, o, i = {}) {
|
|
2758
2782
|
const { editMode: s = !1 } = i;
|
|
2759
2783
|
return (s ? e.filter((a) => a.type === "card") : e).map((a) => {
|
|
2760
|
-
const d = !s && !!
|
|
2784
|
+
const d = !s && !!t && t.type === a.type && t.cardId === a.cardId, f = JSON.stringify(a).replace(/'/g, "'");
|
|
2761
2785
|
return s ? `
|
|
2762
2786
|
<div
|
|
2763
2787
|
class="choco-widget-method-item choco-widget-method-item--edit"
|
|
@@ -2769,16 +2793,16 @@ function At(e, n, o, i = {}) {
|
|
|
2769
2793
|
type="button"
|
|
2770
2794
|
class="choco-widget-method-item-trash-btn"
|
|
2771
2795
|
data-action="delete-card"
|
|
2772
|
-
data-method='${
|
|
2796
|
+
data-method='${f}'
|
|
2773
2797
|
aria-label="${a.label} — Удалить"
|
|
2774
2798
|
>
|
|
2775
|
-
${
|
|
2799
|
+
${en}
|
|
2776
2800
|
</button>
|
|
2777
2801
|
</div>
|
|
2778
2802
|
` : `
|
|
2779
2803
|
<button
|
|
2780
2804
|
class="choco-widget-method-item ${d ? "choco-widget-method-item--selected" : ""}"
|
|
2781
|
-
data-method='${
|
|
2805
|
+
data-method='${f}'
|
|
2782
2806
|
data-action="select-method"
|
|
2783
2807
|
role="listitem"
|
|
2784
2808
|
aria-label="${a.label}${d ? " (выбрано)" : ""}"
|
|
@@ -2786,12 +2810,12 @@ function At(e, n, o, i = {}) {
|
|
|
2786
2810
|
>
|
|
2787
2811
|
<div class="choco-widget-method-item-icon-wrapper ${a.type}" aria-hidden="true">${Ee(a)}</div>
|
|
2788
2812
|
<div class="choco-widget-method-item-label">${a.label}</div>
|
|
2789
|
-
${d ?
|
|
2813
|
+
${d ? tn : ""}
|
|
2790
2814
|
</button>
|
|
2791
2815
|
`;
|
|
2792
2816
|
}).join("");
|
|
2793
2817
|
}
|
|
2794
|
-
function
|
|
2818
|
+
function nn(e, t, o, i) {
|
|
2795
2819
|
if (!e) return "";
|
|
2796
2820
|
const s = typeof e.amount == "number" && Number.isFinite(e.amount), u = typeof e.percent == "number" && Number.isFinite(e.percent);
|
|
2797
2821
|
return `
|
|
@@ -2806,23 +2830,41 @@ function tn(e, n, o, i) {
|
|
|
2806
2830
|
<div class="choco-widget-balance-icon">
|
|
2807
2831
|
${ct}
|
|
2808
2832
|
</div>
|
|
2809
|
-
<div class="choco-widget-balance-amount">${s ?
|
|
2833
|
+
<div class="choco-widget-balance-amount">${s ? Z(e.amount, "ru", i) : 0}</div>
|
|
2810
2834
|
<label class="choco-widget-toggle">
|
|
2811
|
-
<input type="checkbox" ${
|
|
2835
|
+
<input type="checkbox" ${t ? "checked" : ""} />
|
|
2812
2836
|
<span class="choco-widget-toggle-slider"></span>
|
|
2813
2837
|
</label>
|
|
2814
2838
|
</div>
|
|
2815
2839
|
</div>
|
|
2816
2840
|
`;
|
|
2817
2841
|
}
|
|
2818
|
-
function
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2842
|
+
function rn(e, t, o) {
|
|
2843
|
+
if (!e) return "";
|
|
2844
|
+
const i = new Date(e.expires_at), s = isNaN(i.getTime()) ? "" : `${String(i.getDate()).padStart(2, "0")}.${String(i.getMonth() + 1).padStart(2, "0")}`, u = s ? o("couponUntil", { date: s }) : "";
|
|
2845
|
+
return `
|
|
2846
|
+
<div class="choco-widget-balance-toggle" data-action="toggle-coupon">
|
|
2847
|
+
<div class="choco-widget-balance-info">
|
|
2848
|
+
<div class="choco-widget-balance-text">
|
|
2849
|
+
<div class="choco-widget-balance-label">${o("coupon")}${u ? ` (${u})` : ""}</div>
|
|
2850
|
+
</div>
|
|
2851
|
+
</div>
|
|
2852
|
+
<div class="choco-widget-balance-label-wrapper">
|
|
2853
|
+
<label class="choco-widget-toggle">
|
|
2854
|
+
<input type="checkbox" ${t ? "checked" : ""} />
|
|
2855
|
+
<span class="choco-widget-toggle-slider"></span>
|
|
2856
|
+
</label>
|
|
2857
|
+
</div>
|
|
2858
|
+
</div>
|
|
2859
|
+
`;
|
|
2860
|
+
}
|
|
2861
|
+
function on(e, t, o, i, s, u, a, d) {
|
|
2862
|
+
if (!e && !o && !s) return "";
|
|
2863
|
+
const f = e ? `
|
|
2822
2864
|
<div class="choco-widget-balance-toggle" data-action="toggle-balance">
|
|
2823
2865
|
<div class="choco-widget-balance-info">
|
|
2824
2866
|
<div class="choco-widget-balance-text">
|
|
2825
|
-
<div class="choco-widget-balance-label">${
|
|
2867
|
+
<div class="choco-widget-balance-label">${a("balance")}</div>
|
|
2826
2868
|
</div>
|
|
2827
2869
|
</div>
|
|
2828
2870
|
<div class="choco-widget-balance-label-wrapper">
|
|
@@ -2831,64 +2873,70 @@ function nn(e, n, o, i, s, u) {
|
|
|
2831
2873
|
</div>
|
|
2832
2874
|
<div class="choco-widget-balance-amount">${e}</div>
|
|
2833
2875
|
<label class="choco-widget-toggle">
|
|
2834
|
-
<input type="checkbox" ${
|
|
2876
|
+
<input type="checkbox" ${t ? "checked" : ""} />
|
|
2835
2877
|
<span class="choco-widget-toggle-slider"></span>
|
|
2836
2878
|
</label>
|
|
2837
2879
|
</div>
|
|
2838
2880
|
</div>
|
|
2839
|
-
` : ""
|
|
2840
|
-
|
|
2881
|
+
` : "";
|
|
2882
|
+
return `
|
|
2883
|
+
<div class="choco-widget-balance-section">
|
|
2884
|
+
${rn(s, u, a)}
|
|
2885
|
+
${f}
|
|
2886
|
+
${nn(o, i, a, d)}
|
|
2841
2887
|
</div>
|
|
2842
2888
|
`;
|
|
2843
2889
|
}
|
|
2844
|
-
function
|
|
2890
|
+
function sn(e, t) {
|
|
2845
2891
|
return e ? `
|
|
2846
2892
|
<div class="choco-widget-cashback-section">
|
|
2847
2893
|
<div class="choco-widget-cashback-info">
|
|
2848
2894
|
<span class="choco-widget-cashback-icon">🎁</span>
|
|
2849
2895
|
<span class="choco-widget-cashback-text">
|
|
2850
|
-
${
|
|
2896
|
+
${t("willGet")} <strong>${e}</strong> ${t("cashback").toLowerCase()}
|
|
2851
2897
|
</span>
|
|
2852
2898
|
</div>
|
|
2853
2899
|
</div>
|
|
2854
2900
|
` : "";
|
|
2855
2901
|
}
|
|
2856
|
-
function
|
|
2902
|
+
function an(e) {
|
|
2857
2903
|
const {
|
|
2858
|
-
amountFormatted:
|
|
2904
|
+
amountFormatted: t,
|
|
2859
2905
|
originalAmountFormatted: o,
|
|
2860
2906
|
showOriginalAmount: i = !1,
|
|
2861
2907
|
paymentMethod: s,
|
|
2862
2908
|
methods: u,
|
|
2863
2909
|
selectedMethod: a,
|
|
2864
2910
|
balanceFormatted: d,
|
|
2865
|
-
useBalance:
|
|
2911
|
+
useBalance: f,
|
|
2866
2912
|
bonuses: C,
|
|
2867
2913
|
useBonuses: S,
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2914
|
+
coupon: _,
|
|
2915
|
+
useCoupon: E,
|
|
2916
|
+
cashbackFormatted: P,
|
|
2917
|
+
disabled: T,
|
|
2918
|
+
paymentMethodDisabled: B = !1,
|
|
2919
|
+
loading: k,
|
|
2920
|
+
t: b,
|
|
2921
|
+
currency: w
|
|
2922
|
+
} = e, L = (s == null ? void 0 : s.label) ?? b("selectMethod"), O = Ee(s), J = At(u, a), N = on(d, f, C, S, _, E, b, w), q = sn(P, b), F = (a == null ? void 0 : a.type) === "google_pay", x = (a == null ? void 0 : a.type) === "apple_pay", M = F || x;
|
|
2875
2923
|
return `
|
|
2876
|
-
<div class="choco-widget-bottom-bar" role="region" aria-label="${
|
|
2877
|
-
${
|
|
2924
|
+
<div class="choco-widget-bottom-bar" role="region" aria-label="${b("paymentMethod")}">
|
|
2925
|
+
${N}
|
|
2878
2926
|
<div class="choco-widget-payment-info">
|
|
2879
2927
|
<div class="choco-widget-payment-info-main">
|
|
2880
2928
|
<button
|
|
2881
2929
|
class="choco-widget-payment-method ${(s == null ? void 0 : s.type) || ""}"
|
|
2882
2930
|
data-action="change-method"
|
|
2883
|
-
aria-label="${
|
|
2931
|
+
aria-label="${b("paymentMethod")}: ${L}"
|
|
2884
2932
|
type="button"
|
|
2885
|
-
${
|
|
2933
|
+
${B || T || k ? "disabled" : ""}
|
|
2886
2934
|
>
|
|
2887
|
-
<div class="choco-widget-method-label">${
|
|
2935
|
+
<div class="choco-widget-method-label">${b("paymentMethod")}</div>
|
|
2888
2936
|
<div class="choco-widget-method-value">
|
|
2889
|
-
<div class="choco-widget-method-icon-wrapper ${s == null ? void 0 : s.type}" aria-hidden="true">${
|
|
2937
|
+
<div class="choco-widget-method-icon-wrapper ${s == null ? void 0 : s.type}" aria-hidden="true">${O}</div>
|
|
2890
2938
|
<div class="choco-widget-method-details">
|
|
2891
|
-
<div class="choco-widget-method-name ${s == null ? void 0 : s.type}">${
|
|
2939
|
+
<div class="choco-widget-method-name ${s == null ? void 0 : s.type}">${L}</div>
|
|
2892
2940
|
<div class="choco-widget-method-chevron">
|
|
2893
2941
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2894
2942
|
<path d="M8 10L12 14L16 10" stroke="#242424" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
@@ -2897,24 +2945,24 @@ function on(e) {
|
|
|
2897
2945
|
</div>
|
|
2898
2946
|
</div>
|
|
2899
2947
|
</button>
|
|
2900
|
-
<div class="choco-widget-google-pay-amount ${
|
|
2901
|
-
<div class="choco-widget-google-pay-amount-label">${
|
|
2902
|
-
${i ? `<div class="choco-widget-google-pay-amount-value">${
|
|
2948
|
+
<div class="choco-widget-google-pay-amount ${M ? "" : "choco-widget-google-pay-amount--hidden"}" aria-live="polite">
|
|
2949
|
+
<div class="choco-widget-google-pay-amount-label">${b("total")} ${t}</div>
|
|
2950
|
+
${i ? `<div class="choco-widget-google-pay-amount-value">${b("instead")} <span class="choco-widget-google-pay-amount-value-number">${o || ""}</span></div>` : ""}
|
|
2903
2951
|
</div>
|
|
2904
2952
|
<button
|
|
2905
|
-
class="choco-widget-pay-button ${
|
|
2953
|
+
class="choco-widget-pay-button ${k ? "choco-widget-pay-button--loading" : ""} ${M ? "choco-widget-pay-button--hidden" : ""}"
|
|
2906
2954
|
data-action="pay"
|
|
2907
|
-
aria-label="${
|
|
2955
|
+
aria-label="${b("pay")} ${t}"
|
|
2908
2956
|
type="button"
|
|
2909
|
-
${
|
|
2957
|
+
${T || k ? "disabled" : ""}
|
|
2910
2958
|
>
|
|
2911
|
-
${
|
|
2959
|
+
${b("pay")} ${t}
|
|
2912
2960
|
</button>
|
|
2913
2961
|
</div>
|
|
2914
|
-
<div class="choco-widget-google-pay-row ${
|
|
2962
|
+
<div class="choco-widget-google-pay-row ${F ? "" : "choco-widget-google-pay-row--hidden"}">
|
|
2915
2963
|
<div class="choco-widget-google-pay-button-slot" data-action="google-pay-button-slot"></div>
|
|
2916
2964
|
</div>
|
|
2917
|
-
<div class="choco-widget-apple-pay-row ${
|
|
2965
|
+
<div class="choco-widget-apple-pay-row ${x ? "" : "choco-widget-apple-pay-row--hidden"}">
|
|
2918
2966
|
<div class="choco-widget-apple-pay-button-slot" data-action="apple-pay-button-slot"></div>
|
|
2919
2967
|
</div>
|
|
2920
2968
|
</div>
|
|
@@ -2940,7 +2988,7 @@ function on(e) {
|
|
|
2940
2988
|
<path d="M15 18L9 12L15 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
2941
2989
|
</svg>
|
|
2942
2990
|
</button>
|
|
2943
|
-
<h3 class="choco-widget-sheet-title" id="choco-sheet-title">${
|
|
2991
|
+
<h3 class="choco-widget-sheet-title" id="choco-sheet-title">${b("paymentMethods")}</h3>
|
|
2944
2992
|
<button
|
|
2945
2993
|
class="choco-widget-sheet-button choco-widget-sheet-button--edit"
|
|
2946
2994
|
data-action="edit-sheet"
|
|
@@ -2955,7 +3003,7 @@ function on(e) {
|
|
|
2955
3003
|
<button
|
|
2956
3004
|
class="choco-widget-sheet-button choco-widget-sheet-button--previous"
|
|
2957
3005
|
data-action="previous-sheet"
|
|
2958
|
-
aria-label="${
|
|
3006
|
+
aria-label="${b("back")}"
|
|
2959
3007
|
type="button"
|
|
2960
3008
|
style="display: none;"
|
|
2961
3009
|
>
|
|
@@ -2966,48 +3014,48 @@ function on(e) {
|
|
|
2966
3014
|
</button>
|
|
2967
3015
|
</div>
|
|
2968
3016
|
<div class="choco-widget-payment-methods" role="list">
|
|
2969
|
-
${
|
|
3017
|
+
${J}
|
|
2970
3018
|
</div>
|
|
2971
3019
|
<div class="choco-widget-sheet-delete-confirm" data-delete-confirm="content" aria-hidden="true">
|
|
2972
3020
|
<div class="choco-widget-sheet-delete-confirm-actions">
|
|
2973
|
-
<button type="button" class="choco-widget-delete-confirm-btn choco-widget-delete-confirm-btn--cancel" data-action="confirm-delete-cancel">${
|
|
2974
|
-
<button type="button" class="choco-widget-delete-confirm-btn choco-widget-delete-confirm-btn--delete" data-action="confirm-delete-submit">${
|
|
3021
|
+
<button type="button" class="choco-widget-delete-confirm-btn choco-widget-delete-confirm-btn--cancel" data-action="confirm-delete-cancel">${b("cancel")}</button>
|
|
3022
|
+
<button type="button" class="choco-widget-delete-confirm-btn choco-widget-delete-confirm-btn--delete" data-action="confirm-delete-submit">${b("delete")}</button>
|
|
2975
3023
|
</div>
|
|
2976
3024
|
</div>
|
|
2977
|
-
${
|
|
3025
|
+
${q}
|
|
2978
3026
|
</div>
|
|
2979
3027
|
</div>
|
|
2980
3028
|
|
|
2981
3029
|
<div class="choco-widget-add-card-sheet choco-widget-payment-sheet" data-sheet="add-card" aria-hidden="true" style="display: none;">
|
|
2982
3030
|
<div class="choco-widget-sheet-content choco-widget-add-card-sheet-content">
|
|
2983
3031
|
<div class="choco-widget-sheet-header">
|
|
2984
|
-
<h3 class="choco-widget-sheet-title">${
|
|
3032
|
+
<h3 class="choco-widget-sheet-title">${b("addCard")}</h3>
|
|
2985
3033
|
</div>
|
|
2986
3034
|
<div class="choco-widget-add-card-iframe-wrapper">
|
|
2987
|
-
<iframe id="choco-widget-add-card-iframe" class="choco-widget-add-card-iframe" title="${
|
|
3035
|
+
<iframe id="choco-widget-add-card-iframe" class="choco-widget-add-card-iframe" title="${b("addCard")}" sandbox="allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts"></iframe>
|
|
2988
3036
|
</div>
|
|
2989
3037
|
</div>
|
|
2990
3038
|
</div>
|
|
2991
3039
|
`;
|
|
2992
3040
|
}
|
|
2993
|
-
function
|
|
3041
|
+
function cn() {
|
|
2994
3042
|
return `
|
|
2995
3043
|
<div class="choco-widget-bottom-bar-prerender">
|
|
2996
3044
|
<div class="choco-widget-payment-loading"></div>
|
|
2997
3045
|
</div>
|
|
2998
3046
|
`;
|
|
2999
3047
|
}
|
|
3000
|
-
function
|
|
3001
|
-
return At(e,
|
|
3048
|
+
function An(e, t, o, i = {}) {
|
|
3049
|
+
return At(e, t, o, i);
|
|
3002
3050
|
}
|
|
3003
|
-
function
|
|
3051
|
+
function un(e) {
|
|
3004
3052
|
return Ee(e);
|
|
3005
3053
|
}
|
|
3006
|
-
function
|
|
3054
|
+
function ln(e) {
|
|
3007
3055
|
if (typeof document > "u") return { mountTarget: null, isEmbedded: !1 };
|
|
3008
|
-
const
|
|
3009
|
-
if (
|
|
3010
|
-
const o = document.querySelector(
|
|
3056
|
+
const t = e.config.containerSelector;
|
|
3057
|
+
if (t) {
|
|
3058
|
+
const o = document.querySelector(t);
|
|
3011
3059
|
if (o instanceof HTMLElement) return { mountTarget: o, isEmbedded: !0 };
|
|
3012
3060
|
}
|
|
3013
3061
|
return { mountTarget: document.body, isEmbedded: !1 };
|
|
@@ -3015,37 +3063,39 @@ function An(e) {
|
|
|
3015
3063
|
function ut(e) {
|
|
3016
3064
|
if (typeof document > "u") return !1;
|
|
3017
3065
|
e.container || (e.container = document.createElement("div"), e.container.id = "choco-one-click-widget", e.container.className = "choco-one-click-widget");
|
|
3018
|
-
const { mountTarget:
|
|
3019
|
-
return
|
|
3066
|
+
const { mountTarget: t, isEmbedded: o } = ln(e);
|
|
3067
|
+
return t ? (e.container.parentElement !== t && t.appendChild(e.container), e.container.classList.toggle("choco-one-click-widget--embedded", o), !0) : !1;
|
|
3020
3068
|
}
|
|
3021
|
-
function
|
|
3022
|
-
ut(e) && (e.container.style.setProperty("--choco-widget-accent-color", e.config.color), e.container.innerHTML =
|
|
3069
|
+
function dn(e) {
|
|
3070
|
+
ut(e) && (e.container.style.setProperty("--choco-widget-accent-color", e.config.color), e.container.innerHTML = cn());
|
|
3023
3071
|
}
|
|
3024
|
-
function
|
|
3025
|
-
var S,
|
|
3072
|
+
function hn(e) {
|
|
3073
|
+
var S, _, E, P, T;
|
|
3026
3074
|
if (!ut(e)) return;
|
|
3027
3075
|
e.container.style.setProperty("--choco-widget-accent-color", e.config.color), e.container.classList.remove("choco-one-click-widget--visible");
|
|
3028
|
-
const
|
|
3029
|
-
e.container.innerHTML =
|
|
3030
|
-
amountFormatted:
|
|
3031
|
-
originalAmountFormatted:
|
|
3076
|
+
const t = e.getAvailablePaymentMethods(), o = (S = e.checkoutContext) == null ? void 0 : S.data, i = e.config.currency || "KZT", s = (P = (E = (_ = o == null ? void 0 : o.balance) == null ? void 0 : _.data) == null ? void 0 : E.money) == null ? void 0 : P[i], u = s > 0 ? Z(s, e.config.locale, e.config.currency) : null, a = (T = o == null ? void 0 : o.cashback) == null ? void 0 : T.data, d = (a == null ? void 0 : a.cashbackAmount) > 0 ? Z(a.cashbackAmount, e.config.locale, e.config.currency) : null, f = e._getPayableAmount(), C = f < e.config.amount;
|
|
3077
|
+
e.container.innerHTML = an({
|
|
3078
|
+
amountFormatted: Z(f, e.config.locale, e.config.currency),
|
|
3079
|
+
originalAmountFormatted: Z(
|
|
3032
3080
|
e.config.amount,
|
|
3033
3081
|
e.config.locale,
|
|
3034
3082
|
e.config.currency
|
|
3035
3083
|
),
|
|
3036
3084
|
showOriginalAmount: C,
|
|
3037
3085
|
paymentMethod: e.selectedPaymentMethod,
|
|
3038
|
-
methods:
|
|
3086
|
+
methods: t,
|
|
3039
3087
|
selectedMethod: e.selectedPaymentMethod,
|
|
3040
3088
|
balanceFormatted: u,
|
|
3041
3089
|
useBalance: e.useBalance,
|
|
3042
3090
|
bonuses: e.config.bonuses,
|
|
3043
3091
|
useBonuses: e.useBonuses,
|
|
3092
|
+
coupon: e.selectedCoupon,
|
|
3093
|
+
useCoupon: e.useCoupon,
|
|
3044
3094
|
cashbackFormatted: d,
|
|
3045
3095
|
disabled: e.disabled,
|
|
3046
3096
|
paymentMethodDisabled: e.paymentMethodDisabled,
|
|
3047
3097
|
loading: e.loading,
|
|
3048
|
-
t: (
|
|
3098
|
+
t: (B, k) => e.t(B, k),
|
|
3049
3099
|
currency: i
|
|
3050
3100
|
}), e._attachEventListeners(), e.isOpen = !0, e._emitUserEvent("one_click_pay_cta_rendered", {
|
|
3051
3101
|
terminal_id: e.config.terminalId,
|
|
@@ -3054,30 +3104,30 @@ function ln(e) {
|
|
|
3054
3104
|
payment_method: e._getPaymentMethodForUserEvent()
|
|
3055
3105
|
}), requestAnimationFrame(() => {
|
|
3056
3106
|
requestAnimationFrame(() => {
|
|
3057
|
-
var
|
|
3058
|
-
(
|
|
3107
|
+
var B;
|
|
3108
|
+
(B = e.container) == null || B.classList.add("choco-one-click-widget--visible");
|
|
3059
3109
|
});
|
|
3060
3110
|
});
|
|
3061
3111
|
}
|
|
3062
3112
|
function Ae(e) {
|
|
3063
3113
|
var i;
|
|
3064
|
-
const
|
|
3114
|
+
const t = (i = e.container) == null ? void 0 : i.querySelector(
|
|
3065
3115
|
".choco-widget-payment-methods"
|
|
3066
3116
|
);
|
|
3067
|
-
if (!
|
|
3117
|
+
if (!t) return;
|
|
3068
3118
|
const o = e.getAvailablePaymentMethods();
|
|
3069
|
-
|
|
3119
|
+
t.innerHTML = An(
|
|
3070
3120
|
o,
|
|
3071
3121
|
e.selectedPaymentMethod,
|
|
3072
3122
|
(s) => e.t(s),
|
|
3073
3123
|
{ editMode: e.isPaymentSheetEditMode }
|
|
3074
|
-
),
|
|
3124
|
+
), t.querySelectorAll("[data-action='delete-card']").forEach((s) => {
|
|
3075
3125
|
s.addEventListener("click", (u) => {
|
|
3076
3126
|
u.stopPropagation();
|
|
3077
3127
|
const a = JSON.parse(s.getAttribute("data-method") || "{}");
|
|
3078
|
-
|
|
3128
|
+
yn(e, a);
|
|
3079
3129
|
});
|
|
3080
|
-
}),
|
|
3130
|
+
}), t.querySelectorAll("[data-action='select-method']").forEach((s) => {
|
|
3081
3131
|
s.addEventListener("click", (u) => {
|
|
3082
3132
|
const a = JSON.parse(
|
|
3083
3133
|
u.currentTarget.getAttribute("data-method") || "{}"
|
|
@@ -3088,29 +3138,29 @@ function Ae(e) {
|
|
|
3088
3138
|
}
|
|
3089
3139
|
function lt(e) {
|
|
3090
3140
|
var s, u, a;
|
|
3091
|
-
const
|
|
3141
|
+
const t = (s = e.container) == null ? void 0 : s.querySelector(".choco-widget-payment-method"), o = (u = e.container) == null ? void 0 : u.querySelector(".choco-widget-method-name"), i = (a = e.container) == null ? void 0 : a.querySelector(
|
|
3092
3142
|
".choco-widget-method-icon-wrapper"
|
|
3093
3143
|
);
|
|
3094
|
-
|
|
3144
|
+
t && e.selectedPaymentMethod && (t.className = `choco-widget-payment-method ${e.selectedPaymentMethod.type}`), o && e.selectedPaymentMethod && (o.className = `choco-widget-method-name ${e.selectedPaymentMethod.type}`, o.textContent = e.selectedPaymentMethod.label), i && e.selectedPaymentMethod && (i.className = `choco-widget-method-icon-wrapper ${e.selectedPaymentMethod.type}`, i.innerHTML = un(e.selectedPaymentMethod)), dt(e);
|
|
3095
3145
|
}
|
|
3096
3146
|
function pe(e) {
|
|
3097
|
-
var S,
|
|
3098
|
-
const
|
|
3147
|
+
var S, _, E, P, T;
|
|
3148
|
+
const t = (S = e.container) == null ? void 0 : S.querySelector(".choco-widget-pay-button"), o = (_ = e.container) == null ? void 0 : _.querySelector(
|
|
3099
3149
|
".choco-widget-google-pay-amount"
|
|
3100
3150
|
), i = (E = e.container) == null ? void 0 : E.querySelector(
|
|
3101
3151
|
".choco-widget-google-pay-amount-label"
|
|
3102
3152
|
);
|
|
3103
|
-
let s = (
|
|
3153
|
+
let s = (P = e.container) == null ? void 0 : P.querySelector(
|
|
3104
3154
|
".choco-widget-google-pay-amount-value"
|
|
3105
|
-
), u = (
|
|
3155
|
+
), u = (T = e.container) == null ? void 0 : T.querySelector(
|
|
3106
3156
|
".choco-widget-google-pay-amount-value-number"
|
|
3107
3157
|
);
|
|
3108
|
-
const a = e._getPayableAmount(), d =
|
|
3158
|
+
const a = e._getPayableAmount(), d = Z(a, e.config.locale, e.config.currency), f = a < e.config.amount, C = Z(
|
|
3109
3159
|
e.config.amount,
|
|
3110
3160
|
e.config.locale,
|
|
3111
3161
|
e.config.currency
|
|
3112
3162
|
);
|
|
3113
|
-
if (
|
|
3163
|
+
if (t && (t.textContent = `${e.t("pay")} ${d}`, t.setAttribute("aria-label", `${e.t("pay")} ${d}`)), i && (i.textContent = `${e.t("total")} ${d}`), !f) {
|
|
3114
3164
|
s == null || s.remove();
|
|
3115
3165
|
return;
|
|
3116
3166
|
}
|
|
@@ -3119,42 +3169,42 @@ function pe(e) {
|
|
|
3119
3169
|
)), u ? u.textContent = C : s && (s.textContent = `${e.t("instead")} ${C}`);
|
|
3120
3170
|
}
|
|
3121
3171
|
function dt(e) {
|
|
3122
|
-
var
|
|
3123
|
-
const
|
|
3172
|
+
var f, C, S, _, E, P, T, B, k, b;
|
|
3173
|
+
const t = ((f = e.selectedPaymentMethod) == null ? void 0 : f.type) === "google_pay", o = ((C = e.selectedPaymentMethod) == null ? void 0 : C.type) === "apple_pay", i = t || o, s = (S = e.container) == null ? void 0 : S.querySelector(".choco-widget-pay-button"), u = (_ = e.container) == null ? void 0 : _.querySelector(
|
|
3124
3174
|
".choco-widget-google-pay-amount"
|
|
3125
|
-
), a = (E = e.container) == null ? void 0 : E.querySelector(".choco-widget-google-pay-row"), d = (
|
|
3175
|
+
), a = (E = e.container) == null ? void 0 : E.querySelector(".choco-widget-google-pay-row"), d = (P = e.container) == null ? void 0 : P.querySelector(".choco-widget-apple-pay-row");
|
|
3126
3176
|
if (s == null || s.classList.toggle("choco-widget-pay-button--hidden", i), u == null || u.classList.toggle(
|
|
3127
3177
|
"choco-widget-google-pay-amount--hidden",
|
|
3128
3178
|
!i
|
|
3129
|
-
), a == null || a.classList.toggle("choco-widget-google-pay-row--hidden", !
|
|
3130
|
-
|
|
3131
|
-
const w = (
|
|
3179
|
+
), a == null || a.classList.toggle("choco-widget-google-pay-row--hidden", !t), d == null || d.classList.toggle("choco-widget-apple-pay-row--hidden", !o), t) {
|
|
3180
|
+
fn(e);
|
|
3181
|
+
const w = (T = e.container) == null ? void 0 : T.querySelector(
|
|
3132
3182
|
'[data-action="apple-pay-button-slot"]'
|
|
3133
3183
|
);
|
|
3134
3184
|
w && (w.innerHTML = "");
|
|
3135
3185
|
} else if (o) {
|
|
3136
3186
|
e._googlePayButtonRenderVersion += 1;
|
|
3137
|
-
const w = (
|
|
3187
|
+
const w = (B = e.container) == null ? void 0 : B.querySelector(
|
|
3138
3188
|
'[data-action="google-pay-button-slot"]'
|
|
3139
3189
|
);
|
|
3140
|
-
w && (w.innerHTML = ""),
|
|
3190
|
+
w && (w.innerHTML = ""), gn(e);
|
|
3141
3191
|
} else {
|
|
3142
3192
|
e._googlePayButtonRenderVersion += 1;
|
|
3143
|
-
const w = (
|
|
3193
|
+
const w = (k = e.container) == null ? void 0 : k.querySelector(
|
|
3144
3194
|
'[data-action="google-pay-button-slot"]'
|
|
3145
|
-
), L = (
|
|
3195
|
+
), L = (b = e.container) == null ? void 0 : b.querySelector(
|
|
3146
3196
|
'[data-action="apple-pay-button-slot"]'
|
|
3147
3197
|
);
|
|
3148
3198
|
w && (w.innerHTML = ""), L && (L.innerHTML = "");
|
|
3149
3199
|
}
|
|
3150
|
-
pe(e),
|
|
3200
|
+
pe(e), te(e);
|
|
3151
3201
|
}
|
|
3152
|
-
async function
|
|
3153
|
-
var a, d,
|
|
3154
|
-
const
|
|
3202
|
+
async function fn(e) {
|
|
3203
|
+
var a, d, f, C, S;
|
|
3204
|
+
const t = (a = e.container) == null ? void 0 : a.querySelector(
|
|
3155
3205
|
'[data-action="google-pay-button-slot"]'
|
|
3156
3206
|
);
|
|
3157
|
-
if (!
|
|
3207
|
+
if (!t || (t.innerHTML = "", ((d = e.selectedPaymentMethod) == null ? void 0 : d.type) !== "google_pay")) return;
|
|
3158
3208
|
const o = ++e._googlePayButtonRenderVersion;
|
|
3159
3209
|
try {
|
|
3160
3210
|
await e._loadGooglePaySdk();
|
|
@@ -3163,7 +3213,7 @@ async function dn(e) {
|
|
|
3163
3213
|
return;
|
|
3164
3214
|
}
|
|
3165
3215
|
if (o !== e._googlePayButtonRenderVersion) return;
|
|
3166
|
-
if (!((S = (C = (
|
|
3216
|
+
if (!((S = (C = (f = window.google) == null ? void 0 : f.payments) == null ? void 0 : C.api) != null && S.PaymentsClient)) {
|
|
3167
3217
|
e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
|
|
3168
3218
|
return;
|
|
3169
3219
|
}
|
|
@@ -3176,16 +3226,16 @@ async function dn(e) {
|
|
|
3176
3226
|
buttonLocale: e.config.locale || "ru",
|
|
3177
3227
|
buttonSizeMode: "fill"
|
|
3178
3228
|
});
|
|
3179
|
-
u.classList.add("choco-widget-google-pay-button"), u.style.setProperty("width", "100%", "important"), u.style.setProperty("height", "52px", "important"), u.style.setProperty("min-height", "52px", "important"), u.style.setProperty("border-radius", "12px", "important"), u.style.setProperty("font-size", "16px", "important"), u.style.setProperty("font-weight", "bold", "important"), u.querySelectorAll("*").forEach((
|
|
3180
|
-
|
|
3181
|
-
}),
|
|
3229
|
+
u.classList.add("choco-widget-google-pay-button"), u.style.setProperty("width", "100%", "important"), u.style.setProperty("height", "52px", "important"), u.style.setProperty("min-height", "52px", "important"), u.style.setProperty("border-radius", "12px", "important"), u.style.setProperty("font-size", "16px", "important"), u.style.setProperty("font-weight", "bold", "important"), u.querySelectorAll("*").forEach((_) => {
|
|
3230
|
+
_.style.setProperty("border-radius", "12px", "important"), _.style.setProperty("font-weight", "bold", "important"), _.style.setProperty("font-size", "16px", "important");
|
|
3231
|
+
}), t.appendChild(u), te(e);
|
|
3182
3232
|
}
|
|
3183
|
-
function
|
|
3233
|
+
function gn(e) {
|
|
3184
3234
|
var u, a;
|
|
3185
|
-
const
|
|
3235
|
+
const t = (u = e.container) == null ? void 0 : u.querySelector(
|
|
3186
3236
|
'[data-action="apple-pay-button-slot"]'
|
|
3187
3237
|
);
|
|
3188
|
-
if (!
|
|
3238
|
+
if (!t || (t.innerHTML = "", ((a = e.selectedPaymentMethod) == null ? void 0 : a.type) !== "apple_pay")) return;
|
|
3189
3239
|
const o = document.createElement("div");
|
|
3190
3240
|
o.className = "choco-widget-apple-pay-button-wrapper";
|
|
3191
3241
|
const i = document.createElement("button");
|
|
@@ -3205,86 +3255,86 @@ function hn(e) {
|
|
|
3205
3255
|
</defs>
|
|
3206
3256
|
</svg>
|
|
3207
3257
|
</span>
|
|
3208
|
-
`, o.appendChild(i), o.appendChild(s),
|
|
3258
|
+
`, o.appendChild(i), o.appendChild(s), t.appendChild(o), te(e);
|
|
3209
3259
|
}
|
|
3210
|
-
function
|
|
3211
|
-
e.loading = !0,
|
|
3260
|
+
function ne(e) {
|
|
3261
|
+
e.loading = !0, te(e);
|
|
3212
3262
|
}
|
|
3213
3263
|
function j(e) {
|
|
3214
|
-
var
|
|
3264
|
+
var _, E, P, T, B, k, b, w;
|
|
3215
3265
|
e.loading = !1;
|
|
3216
|
-
const
|
|
3266
|
+
const t = (_ = e.container) == null ? void 0 : _.querySelector(".choco-widget-payment-method"), o = (E = e.container) == null ? void 0 : E.querySelector(".choco-widget-pay-button"), i = (P = e.container) == null ? void 0 : P.querySelector(
|
|
3217
3267
|
".choco-widget-google-pay-button-slot button"
|
|
3218
|
-
), s = (
|
|
3268
|
+
), s = (T = e.container) == null ? void 0 : T.querySelector(
|
|
3219
3269
|
".choco-widget-apple-pay-button-slot button"
|
|
3220
|
-
), u = (
|
|
3270
|
+
), u = (B = e.container) == null ? void 0 : B.querySelector(
|
|
3221
3271
|
".choco-widget-google-pay-amount"
|
|
3222
|
-
), a = (
|
|
3272
|
+
), a = (k = e.container) == null ? void 0 : k.querySelector(".choco-widget-google-pay-row"), d = (b = e.container) == null ? void 0 : b.querySelector(".choco-widget-apple-pay-row"), f = (w = e.container) == null ? void 0 : w.querySelector(
|
|
3223
3273
|
".choco-widget-balance-section"
|
|
3224
3274
|
), C = e._isInteractionBlocked(), S = e.paymentMethodDisabled || C;
|
|
3225
|
-
|
|
3275
|
+
t && (t.disabled = S), o && (o.disabled = C, o.classList.remove("choco-widget-pay-button--loading")), i && (i.disabled = C), s && (s.disabled = C), u == null || u.classList.toggle("choco-widget-wallet-blocked", C), u == null || u.setAttribute("aria-disabled", String(C)), a == null || a.classList.toggle("choco-widget-wallet-blocked", C), a == null || a.setAttribute("aria-disabled", String(C)), d == null || d.classList.toggle("choco-widget-wallet-blocked", C), d == null || d.setAttribute("aria-disabled", String(C)), f == null || f.classList.remove("disabled");
|
|
3226
3276
|
}
|
|
3227
|
-
function
|
|
3228
|
-
var
|
|
3229
|
-
const
|
|
3277
|
+
function te(e) {
|
|
3278
|
+
var _, E, P, T, B, k, b, w;
|
|
3279
|
+
const t = (_ = e.container) == null ? void 0 : _.querySelector(".choco-widget-payment-method"), o = (E = e.container) == null ? void 0 : E.querySelector(".choco-widget-pay-button"), i = (P = e.container) == null ? void 0 : P.querySelector(
|
|
3230
3280
|
".choco-widget-google-pay-button-slot button"
|
|
3231
|
-
), s = (
|
|
3281
|
+
), s = (T = e.container) == null ? void 0 : T.querySelector(
|
|
3232
3282
|
".choco-widget-apple-pay-button-slot button"
|
|
3233
|
-
), u = (
|
|
3283
|
+
), u = (B = e.container) == null ? void 0 : B.querySelector(
|
|
3234
3284
|
".choco-widget-google-pay-amount"
|
|
3235
|
-
), a = (
|
|
3285
|
+
), a = (k = e.container) == null ? void 0 : k.querySelector(".choco-widget-google-pay-row"), d = (b = e.container) == null ? void 0 : b.querySelector(".choco-widget-apple-pay-row"), f = (w = e.container) == null ? void 0 : w.querySelector(
|
|
3236
3286
|
".choco-widget-balance-section"
|
|
3237
3287
|
), C = e._isInteractionBlocked(), S = e.paymentMethodDisabled || C;
|
|
3238
|
-
|
|
3288
|
+
f == null || f.classList.toggle("disabled", C), t && (t.disabled = S), o && (o.disabled = C, o.classList.toggle("choco-widget-pay-button--loading", e.loading)), i && (i.disabled = C), s && (s.disabled = C), u == null || u.classList.toggle("choco-widget-wallet-blocked", C), u == null || u.setAttribute("aria-disabled", String(C)), a == null || a.classList.toggle("choco-widget-wallet-blocked", C), a == null || a.setAttribute("aria-disabled", String(C)), d == null || d.classList.toggle("choco-widget-wallet-blocked", C), d == null || d.setAttribute("aria-disabled", String(C));
|
|
3239
3289
|
}
|
|
3240
3290
|
function ht(e) {
|
|
3241
3291
|
var o;
|
|
3242
3292
|
if (e._isInteractionBlocked()) return;
|
|
3243
|
-
const
|
|
3244
|
-
|
|
3293
|
+
const t = (o = e.container) == null ? void 0 : o.querySelector('[data-sheet="payment"]');
|
|
3294
|
+
t && (t.classList.add("choco-widget-payment-sheet--open"), e.isPaymentSheetOpen = !0, ue(e));
|
|
3245
3295
|
}
|
|
3246
3296
|
function V(e) {
|
|
3247
3297
|
var o;
|
|
3248
|
-
const
|
|
3249
|
-
if (
|
|
3298
|
+
const t = (o = e.container) == null ? void 0 : o.querySelector('[data-sheet="payment"]');
|
|
3299
|
+
if (t) {
|
|
3250
3300
|
ve(e);
|
|
3251
|
-
const i =
|
|
3252
|
-
i && (i.style.transform = "", i.classList.remove("choco-widget-sheet-content--dragging")),
|
|
3301
|
+
const i = t.querySelector(".choco-widget-sheet-content");
|
|
3302
|
+
i && (i.style.transform = "", i.classList.remove("choco-widget-sheet-content--dragging")), t.classList.remove("choco-widget-payment-sheet--open"), e.isPaymentSheetOpen = !1, e.isPaymentSheetEditMode && (e.isPaymentSheetEditMode = !1, Ae(e), ue(e));
|
|
3253
3303
|
}
|
|
3254
3304
|
}
|
|
3255
3305
|
function ue(e) {
|
|
3256
|
-
var
|
|
3257
|
-
const
|
|
3258
|
-
if (!
|
|
3259
|
-
const o =
|
|
3260
|
-
e.isPaymentSheetEditMode ? (
|
|
3306
|
+
var f;
|
|
3307
|
+
const t = (f = e.container) == null ? void 0 : f.querySelector('[data-sheet="payment"]');
|
|
3308
|
+
if (!t) return;
|
|
3309
|
+
const o = t.querySelector(".choco-widget-sheet-title"), i = t.querySelector('[data-action="close-sheet"]'), s = t.querySelector('[data-action="edit-sheet"]'), u = t.querySelector('[data-action="previous-sheet"]'), d = e.getAvailablePaymentMethods().some((C) => C.type === "card");
|
|
3310
|
+
e.isPaymentSheetEditMode ? (t.classList.add("choco-widget-payment-sheet--edit"), o && (o.textContent = e.t("editCards")), i && (i.style.display = "none"), s && (s.style.display = "none"), u && (u.style.display = "")) : (t.classList.remove("choco-widget-payment-sheet--edit"), t.classList.toggle("choco-widget-payment-sheet--no-cards", !d), o && (o.textContent = e.t("paymentMethods")), i && (i.style.display = ""), s && (s.style.display = d ? "" : "none"), u && (u.style.display = "none"));
|
|
3261
3311
|
}
|
|
3262
3312
|
function $e(e) {
|
|
3263
3313
|
if (!e.addCardActionUrl || !e.container) return;
|
|
3264
|
-
const
|
|
3314
|
+
const t = e.container.querySelector('[data-sheet="add-card"]'), o = e.container.querySelector(
|
|
3265
3315
|
"#choco-widget-add-card-iframe"
|
|
3266
3316
|
);
|
|
3267
|
-
|
|
3317
|
+
t && o && (o.src = e.addCardActionUrl, t.classList.add("choco-widget-payment-sheet--open"), t.style.display = "flex", t.setAttribute("aria-hidden", "false"), e.isAddCardViewOpen = !0, pn(e));
|
|
3268
3318
|
}
|
|
3269
3319
|
function ae(e) {
|
|
3270
3320
|
var i, s;
|
|
3271
|
-
const
|
|
3321
|
+
const t = (i = e.container) == null ? void 0 : i.querySelector('[data-sheet="add-card"]'), o = (s = e.container) == null ? void 0 : s.querySelector(
|
|
3272
3322
|
"#choco-widget-add-card-iframe"
|
|
3273
3323
|
);
|
|
3274
|
-
|
|
3324
|
+
t && (t.classList.remove("choco-widget-payment-sheet--open"), t.style.display = "none", t.setAttribute("aria-hidden", "true")), o && (o.src = "about:blank"), e.addCardActionUrl = null, e.isAddCardViewOpen = !1, Cn(e);
|
|
3275
3325
|
}
|
|
3276
|
-
function
|
|
3277
|
-
e._boundAddCardMessage = (
|
|
3326
|
+
function pn(e) {
|
|
3327
|
+
e._boundAddCardMessage = (t) => {
|
|
3278
3328
|
var o;
|
|
3279
|
-
e.isAddCardViewOpen && (o =
|
|
3329
|
+
e.isAddCardViewOpen && (o = t.data) != null && o.message && t.origin === "https://rahmetapp.kz" && ne(e);
|
|
3280
3330
|
}, window.addEventListener("message", e._boundAddCardMessage);
|
|
3281
3331
|
}
|
|
3282
|
-
function
|
|
3332
|
+
function Cn(e) {
|
|
3283
3333
|
e._boundAddCardMessage && (window.removeEventListener("message", e._boundAddCardMessage), e._boundAddCardMessage = null);
|
|
3284
3334
|
}
|
|
3285
|
-
function
|
|
3335
|
+
function yn(e, t) {
|
|
3286
3336
|
var a;
|
|
3287
|
-
e._pendingDeleteMethod =
|
|
3337
|
+
e._pendingDeleteMethod = t;
|
|
3288
3338
|
const o = (a = e.container) == null ? void 0 : a.querySelector('[data-sheet="payment"]');
|
|
3289
3339
|
if (!o) return;
|
|
3290
3340
|
o.classList.add("choco-widget-payment-sheet--delete-confirm");
|
|
@@ -3294,10 +3344,10 @@ function pn(e, n) {
|
|
|
3294
3344
|
function ve(e) {
|
|
3295
3345
|
var o;
|
|
3296
3346
|
e._pendingDeleteMethod = null, Ne(e, !1);
|
|
3297
|
-
const
|
|
3298
|
-
|
|
3347
|
+
const t = (o = e.container) == null ? void 0 : o.querySelector('[data-sheet="payment"]');
|
|
3348
|
+
t == null || t.classList.remove("choco-widget-payment-sheet--delete-confirm"), ue(e);
|
|
3299
3349
|
}
|
|
3300
|
-
function Ne(e,
|
|
3350
|
+
function Ne(e, t) {
|
|
3301
3351
|
var u, a, d;
|
|
3302
3352
|
const o = (u = e.container) == null ? void 0 : u.querySelector(
|
|
3303
3353
|
".choco-widget-sheet-delete-confirm-actions"
|
|
@@ -3306,12 +3356,12 @@ function Ne(e, n) {
|
|
|
3306
3356
|
), s = (d = e.container) == null ? void 0 : d.querySelector(
|
|
3307
3357
|
'[data-action="confirm-delete-submit"]'
|
|
3308
3358
|
);
|
|
3309
|
-
o == null || o.classList.toggle("choco-widget-sheet-delete-confirm-actions--loading",
|
|
3359
|
+
o == null || o.classList.toggle("choco-widget-sheet-delete-confirm-actions--loading", t), i && (i.disabled = t), s && (s.disabled = t, s.classList.toggle("choco-widget-delete-confirm-btn--loading", t));
|
|
3310
3360
|
}
|
|
3311
|
-
async function
|
|
3361
|
+
async function mn(e, t) {
|
|
3312
3362
|
var i, s;
|
|
3313
|
-
const o =
|
|
3314
|
-
if (!(!o || (
|
|
3363
|
+
const o = t == null ? void 0 : t.cardId;
|
|
3364
|
+
if (!(!o || (t == null ? void 0 : t.type) !== "card"))
|
|
3315
3365
|
try {
|
|
3316
3366
|
await Dt(e.apiUrl, e._getApiConfig(), o), e.checkoutContext = await Oe(
|
|
3317
3367
|
e.apiUrl,
|
|
@@ -3326,10 +3376,10 @@ async function Cn(e, n) {
|
|
|
3326
3376
|
});
|
|
3327
3377
|
}
|
|
3328
3378
|
}
|
|
3329
|
-
function ft(e,
|
|
3379
|
+
function ft(e, t) {
|
|
3330
3380
|
if (!e._isInteractionBlocked()) {
|
|
3331
|
-
if (e.selectedPaymentMethod =
|
|
3332
|
-
e._emitUserEvent("one_click_pay_method_resolved", { payment_method:
|
|
3381
|
+
if (e.selectedPaymentMethod = t, e._emitPaymentMethodSelected(), t.type === "new_card") {
|
|
3382
|
+
e._emitUserEvent("one_click_pay_method_resolved", { payment_method: t.type }), V(e), e.handlePayment();
|
|
3333
3383
|
return;
|
|
3334
3384
|
}
|
|
3335
3385
|
e._emitUserEvent("one_click_pay_method_resolved", {
|
|
@@ -3337,38 +3387,38 @@ function ft(e, n) {
|
|
|
3337
3387
|
}), Ae(e), V(e), lt(e);
|
|
3338
3388
|
}
|
|
3339
3389
|
}
|
|
3340
|
-
function et(e,
|
|
3390
|
+
function et(e, t) {
|
|
3341
3391
|
var i;
|
|
3342
|
-
const o =
|
|
3392
|
+
const o = t.type || ((i = t.data) == null ? void 0 : i.type);
|
|
3343
3393
|
if (!o) {
|
|
3344
|
-
console.warn("Unknown event format:",
|
|
3394
|
+
console.warn("Unknown event format:", t);
|
|
3345
3395
|
return;
|
|
3346
3396
|
}
|
|
3347
3397
|
switch (o) {
|
|
3348
3398
|
case "order.paid":
|
|
3349
|
-
e._orderStatusResolved = !0,
|
|
3399
|
+
e._orderStatusResolved = !0, ee(e), pt(e, t);
|
|
3350
3400
|
break;
|
|
3351
3401
|
case "order.failed":
|
|
3352
|
-
e._orderStatusResolved = !0,
|
|
3402
|
+
e._orderStatusResolved = !0, ee(e), Ct(e, t);
|
|
3353
3403
|
break;
|
|
3354
3404
|
case "order.action_required":
|
|
3355
|
-
|
|
3405
|
+
bn(e, t);
|
|
3356
3406
|
break;
|
|
3357
3407
|
default:
|
|
3358
3408
|
console.warn("Unknown event type:", o);
|
|
3359
3409
|
}
|
|
3360
3410
|
}
|
|
3361
|
-
function
|
|
3411
|
+
function ee(e) {
|
|
3362
3412
|
e._orderStatusPollingId && (clearInterval(e._orderStatusPollingId), e._orderStatusPollingId = null);
|
|
3363
3413
|
}
|
|
3364
|
-
function ce(e,
|
|
3365
|
-
|
|
3414
|
+
function ce(e, t) {
|
|
3415
|
+
ee(e), e._orderStatusResolved = !1;
|
|
3366
3416
|
const o = 6e3, i = 5;
|
|
3367
3417
|
let s = 0;
|
|
3368
3418
|
const u = async () => {
|
|
3369
3419
|
if (!e._orderStatusResolved) {
|
|
3370
3420
|
if (s >= i) {
|
|
3371
|
-
|
|
3421
|
+
ee(e), j(e), e.config.onError({
|
|
3372
3422
|
attributes: { message: e.t("errorNoServerResponseRetry") }
|
|
3373
3423
|
});
|
|
3374
3424
|
return;
|
|
@@ -3378,18 +3428,18 @@ function ce(e, n) {
|
|
|
3378
3428
|
const { data: a } = await Ut(
|
|
3379
3429
|
e.apiUrl,
|
|
3380
3430
|
e._getApiConfig(),
|
|
3381
|
-
String(
|
|
3382
|
-
), d = a == null ? void 0 : a.status,
|
|
3431
|
+
String(t)
|
|
3432
|
+
), d = a == null ? void 0 : a.status, f = (a == null ? void 0 : a.payload) || {};
|
|
3383
3433
|
if (d === "success") {
|
|
3384
|
-
e._orderStatusResolved = !0,
|
|
3385
|
-
id: String(
|
|
3386
|
-
attributes: { amount:
|
|
3434
|
+
e._orderStatusResolved = !0, ee(e), pt(e, {
|
|
3435
|
+
id: String(f.id || t),
|
|
3436
|
+
attributes: { amount: f.amount, paid_at: f.paid_at || "" }
|
|
3387
3437
|
});
|
|
3388
3438
|
return;
|
|
3389
3439
|
}
|
|
3390
|
-
d === "fail" && (e._orderStatusResolved = !0,
|
|
3391
|
-
id: String(
|
|
3392
|
-
attributes: { message:
|
|
3440
|
+
d === "fail" && (e._orderStatusResolved = !0, ee(e), Ct(e, {
|
|
3441
|
+
id: String(f.id || t),
|
|
3442
|
+
attributes: { message: f.message || e.t("paymentError") }
|
|
3393
3443
|
}));
|
|
3394
3444
|
} catch (a) {
|
|
3395
3445
|
console.warn("[Polling] checkOrderStatus error:", a);
|
|
@@ -3401,33 +3451,33 @@ function ce(e, n) {
|
|
|
3401
3451
|
function Xe() {
|
|
3402
3452
|
return typeof document > "u" ? !1 : document.hidden || document.visibilityState === "hidden";
|
|
3403
3453
|
}
|
|
3404
|
-
function gt(e,
|
|
3405
|
-
j(e), e.config.onSuccess(
|
|
3454
|
+
function gt(e, t) {
|
|
3455
|
+
j(e), e.config.onSuccess(t);
|
|
3406
3456
|
}
|
|
3407
3457
|
function Te(e) {
|
|
3408
3458
|
if (!e._pendingSuccessPayload || Xe()) return;
|
|
3409
|
-
const
|
|
3410
|
-
e._pendingSuccessPayload = null, gt(e,
|
|
3459
|
+
const t = e._pendingSuccessPayload;
|
|
3460
|
+
e._pendingSuccessPayload = null, gt(e, t);
|
|
3411
3461
|
}
|
|
3412
|
-
function pt(e,
|
|
3462
|
+
function pt(e, t) {
|
|
3413
3463
|
var s, u;
|
|
3414
3464
|
e.isAddCardViewOpen && ae(e);
|
|
3415
|
-
const o =
|
|
3465
|
+
const o = t.attributes || ((s = t.data) == null ? void 0 : s.attributes) || {}, i = { id: t.id || ((u = t.data) == null ? void 0 : u.id), attributes: o };
|
|
3416
3466
|
if (Xe()) {
|
|
3417
3467
|
e._pendingSuccessPayload = i;
|
|
3418
3468
|
return;
|
|
3419
3469
|
}
|
|
3420
3470
|
gt(e, i);
|
|
3421
3471
|
}
|
|
3422
|
-
function Ct(e,
|
|
3472
|
+
function Ct(e, t) {
|
|
3423
3473
|
var i, s;
|
|
3424
3474
|
e.isAddCardViewOpen && ae(e), j(e);
|
|
3425
|
-
const o =
|
|
3426
|
-
e.config.onError({ id:
|
|
3475
|
+
const o = t.attributes || ((i = t.data) == null ? void 0 : i.attributes) || {};
|
|
3476
|
+
e.config.onError({ id: t.id || ((s = t.data) == null ? void 0 : s.id), attributes: o });
|
|
3427
3477
|
}
|
|
3428
|
-
function
|
|
3478
|
+
function bn(e, t) {
|
|
3429
3479
|
var u, a, d;
|
|
3430
|
-
const o =
|
|
3480
|
+
const o = t.attributes || ((u = t.data) == null ? void 0 : u.attributes) || {}, i = o.action_link || o.action_url, s = o.action_url_type || o.action_type || "redirect";
|
|
3431
3481
|
if (!i) {
|
|
3432
3482
|
console.error(e.t("errorActionUrlMissing")), e.waitingForNewCardAction && (e.waitingForNewCardAction = !1, j(e), e.config.onError({ attributes: { message: e.t("errorNoServerResponse") } }));
|
|
3433
3483
|
return;
|
|
@@ -3437,20 +3487,20 @@ function yn(e, n) {
|
|
|
3437
3487
|
return;
|
|
3438
3488
|
}
|
|
3439
3489
|
if (((a = e.selectedPaymentMethod) == null ? void 0 : a.type) === "kaspi_pay") {
|
|
3440
|
-
const
|
|
3441
|
-
if (
|
|
3490
|
+
const f = t.id || ((d = t.data) == null ? void 0 : d.id);
|
|
3491
|
+
if (f && !e._orderStatusResolved && !e._orderStatusPollingId && ce(e, String(f)), typeof e.config.onKaspiLink == "function") {
|
|
3442
3492
|
e.config.onKaspiLink({
|
|
3443
3493
|
action_link: i,
|
|
3444
3494
|
action_url: i,
|
|
3445
3495
|
action_type: s,
|
|
3446
|
-
event:
|
|
3496
|
+
event: t
|
|
3447
3497
|
});
|
|
3448
3498
|
return;
|
|
3449
3499
|
}
|
|
3450
3500
|
}
|
|
3451
3501
|
window.location.href = i;
|
|
3452
3502
|
}
|
|
3453
|
-
async function
|
|
3503
|
+
async function En(e) {
|
|
3454
3504
|
var o, i, s, u;
|
|
3455
3505
|
if (!e.selectedPaymentMethod) {
|
|
3456
3506
|
e.config.onError({
|
|
@@ -3458,16 +3508,16 @@ async function mn(e) {
|
|
|
3458
3508
|
});
|
|
3459
3509
|
return;
|
|
3460
3510
|
}
|
|
3461
|
-
const { checkoutOptions:
|
|
3511
|
+
const { checkoutOptions: t } = e._getPaymentBreakdown();
|
|
3462
3512
|
if (e._isBalanceFullyCoveringAmount()) {
|
|
3463
|
-
|
|
3513
|
+
ne(e);
|
|
3464
3514
|
try {
|
|
3465
3515
|
const a = await Ge(
|
|
3466
3516
|
e.apiUrl,
|
|
3467
3517
|
e._getApiConfig(),
|
|
3468
3518
|
e.deviceId,
|
|
3469
3519
|
e.selectedPaymentMethod,
|
|
3470
|
-
|
|
3520
|
+
t
|
|
3471
3521
|
);
|
|
3472
3522
|
await tt(e);
|
|
3473
3523
|
const d = (a == null ? void 0 : a.id) ?? ((o = a == null ? void 0 : a.data) == null ? void 0 : o.id);
|
|
@@ -3479,30 +3529,30 @@ async function mn(e) {
|
|
|
3479
3529
|
}
|
|
3480
3530
|
}
|
|
3481
3531
|
if (e.selectedPaymentMethod.type === "new_card") {
|
|
3482
|
-
await
|
|
3532
|
+
await vn(e, t);
|
|
3483
3533
|
return;
|
|
3484
3534
|
}
|
|
3485
3535
|
if (e.selectedPaymentMethod.type === "apple_pay") {
|
|
3486
|
-
await
|
|
3536
|
+
await Bn(e, t);
|
|
3487
3537
|
return;
|
|
3488
3538
|
}
|
|
3489
3539
|
if (e.selectedPaymentMethod.type === "google_pay") {
|
|
3490
|
-
await
|
|
3540
|
+
await In(e, t);
|
|
3491
3541
|
return;
|
|
3492
3542
|
}
|
|
3493
|
-
|
|
3543
|
+
ne(e);
|
|
3494
3544
|
try {
|
|
3495
3545
|
const a = await Ge(
|
|
3496
3546
|
e.apiUrl,
|
|
3497
3547
|
e._getApiConfig(),
|
|
3498
3548
|
e.deviceId,
|
|
3499
3549
|
e.selectedPaymentMethod,
|
|
3500
|
-
|
|
3550
|
+
t
|
|
3501
3551
|
);
|
|
3502
3552
|
await tt(e);
|
|
3503
3553
|
const d = (a == null ? void 0 : a.id) ?? ((i = a == null ? void 0 : a.data) == null ? void 0 : i.id);
|
|
3504
3554
|
if (d && ce(e, String(d)), ((s = e.selectedPaymentMethod) == null ? void 0 : s.type) === "kaspi_pay") {
|
|
3505
|
-
const
|
|
3555
|
+
const f = (a == null ? void 0 : a.attributes) || ((u = a == null ? void 0 : a.data) == null ? void 0 : u.attributes) || {}, C = f.action_link || f.action_url, S = f.action_url_type || f.action_type || "redirect";
|
|
3506
3556
|
if (C)
|
|
3507
3557
|
return typeof e.config.onKaspiLink == "function" ? (e.config.onKaspiLink({
|
|
3508
3558
|
action_link: C,
|
|
@@ -3517,8 +3567,8 @@ async function mn(e) {
|
|
|
3517
3567
|
}
|
|
3518
3568
|
}
|
|
3519
3569
|
async function tt(e) {
|
|
3520
|
-
var
|
|
3521
|
-
if (!(((
|
|
3570
|
+
var t, o;
|
|
3571
|
+
if (!(((t = e.selectedPaymentMethod) == null ? void 0 : t.type) !== "card" || !((o = e.selectedPaymentMethod) != null && o.cardId)))
|
|
3522
3572
|
try {
|
|
3523
3573
|
await Xt(
|
|
3524
3574
|
e.apiUrl,
|
|
@@ -3529,14 +3579,14 @@ async function tt(e) {
|
|
|
3529
3579
|
console.warn("Failed to mark selected card as default:", i);
|
|
3530
3580
|
}
|
|
3531
3581
|
}
|
|
3532
|
-
async function
|
|
3533
|
-
|
|
3582
|
+
async function vn(e, t) {
|
|
3583
|
+
ne(e), e.waitingForNewCardAction = !0, e._setNewCardActionTimeout();
|
|
3534
3584
|
try {
|
|
3535
3585
|
await Ht(
|
|
3536
3586
|
e.apiUrl,
|
|
3537
3587
|
e._getApiConfig(),
|
|
3538
3588
|
e.deviceId,
|
|
3539
|
-
|
|
3589
|
+
t
|
|
3540
3590
|
);
|
|
3541
3591
|
} catch (o) {
|
|
3542
3592
|
e.waitingForNewCardAction = !1, e._clearNewCardActionTimeout(), j(e), e.config.onError({
|
|
@@ -3545,7 +3595,7 @@ async function bn(e, n) {
|
|
|
3545
3595
|
}
|
|
3546
3596
|
}
|
|
3547
3597
|
let se = null;
|
|
3548
|
-
async function
|
|
3598
|
+
async function Bn(e, t) {
|
|
3549
3599
|
const o = window.ApplePaySession;
|
|
3550
3600
|
if (!o || !o.canMakePayments()) {
|
|
3551
3601
|
e.config.onError({ attributes: { message: e.t("errorApplePayUnsupported") } });
|
|
@@ -3572,32 +3622,32 @@ async function En(e, n) {
|
|
|
3572
3622
|
se = s, s.onvalidatemerchant = async (u) => {
|
|
3573
3623
|
var a, d;
|
|
3574
3624
|
try {
|
|
3575
|
-
const
|
|
3625
|
+
const f = await Ft(
|
|
3576
3626
|
e.apiUrl,
|
|
3577
3627
|
e._getApiConfig(),
|
|
3578
3628
|
u.validationURL
|
|
3579
|
-
), C = ((d = (a =
|
|
3629
|
+
), C = ((d = (a = f == null ? void 0 : f.data) == null ? void 0 : a.attributes) == null ? void 0 : d.session) || f, S = JSON.parse(atob(C));
|
|
3580
3630
|
s.completeMerchantValidation(S);
|
|
3581
|
-
} catch (
|
|
3582
|
-
console.error("Apple Pay session error:",
|
|
3631
|
+
} catch (f) {
|
|
3632
|
+
console.error("Apple Pay session error:", f), s.abort(), e.config.onError({ attributes: { message: e.t("errorApplePayInit") } });
|
|
3583
3633
|
}
|
|
3584
3634
|
}, s.onpaymentauthorized = async (u) => {
|
|
3585
3635
|
var a;
|
|
3586
3636
|
try {
|
|
3587
|
-
if (
|
|
3637
|
+
if (ne(e), typeof e.config.onBeforeCheckout == "function") {
|
|
3588
3638
|
const C = await e.config.onBeforeCheckout();
|
|
3589
3639
|
C && typeof C == "object" && Object.assign(e.config, C);
|
|
3590
3640
|
}
|
|
3591
|
-
const d = await
|
|
3641
|
+
const d = await Jt(
|
|
3592
3642
|
e.apiUrl,
|
|
3593
3643
|
e._getApiConfig(),
|
|
3594
3644
|
e.deviceId,
|
|
3595
3645
|
u.payment,
|
|
3596
|
-
|
|
3646
|
+
t
|
|
3597
3647
|
);
|
|
3598
3648
|
s.completePayment(o.STATUS_SUCCESS), se = null;
|
|
3599
|
-
const
|
|
3600
|
-
|
|
3649
|
+
const f = (d == null ? void 0 : d.id) ?? ((a = d == null ? void 0 : d.data) == null ? void 0 : a.id);
|
|
3650
|
+
f && ce(e, String(f));
|
|
3601
3651
|
} catch (d) {
|
|
3602
3652
|
console.error("Apple Pay payment error:", d), s.completePayment(o.STATUS_FAILURE), j(e), e.config.onError({
|
|
3603
3653
|
attributes: {
|
|
@@ -3609,9 +3659,9 @@ async function En(e, n) {
|
|
|
3609
3659
|
se = null, e.config.onCancel();
|
|
3610
3660
|
}, s.begin();
|
|
3611
3661
|
}
|
|
3612
|
-
async function
|
|
3613
|
-
var
|
|
3614
|
-
const o = (
|
|
3662
|
+
async function In(e, t) {
|
|
3663
|
+
var k, b, w, L, O, J;
|
|
3664
|
+
const o = (k = e.checkoutContext) == null ? void 0 : k.data, i = ((w = (b = o == null ? void 0 : o.payment_methods) == null ? void 0 : b.data) == null ? void 0 : w.attributes) || {}, s = i.google_pay_settings || {};
|
|
3615
3665
|
if (!(i.payment_method_google_pay === "enabled" || i.payment_method_google_pay === !0)) {
|
|
3616
3666
|
e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
|
|
3617
3667
|
return;
|
|
@@ -3623,22 +3673,22 @@ async function vn(e, n) {
|
|
|
3623
3673
|
});
|
|
3624
3674
|
return;
|
|
3625
3675
|
}
|
|
3626
|
-
const
|
|
3627
|
-
if (
|
|
3676
|
+
const f = e.config.environment === "production", C = (s == null ? void 0 : s.merchant_name) || "Choco", S = s == null ? void 0 : s.google_merchant_id;
|
|
3677
|
+
if (f && !S) {
|
|
3628
3678
|
e.config.onError({
|
|
3629
3679
|
attributes: { message: e.t("errorGooglePaySettingsUnavailable") }
|
|
3630
3680
|
});
|
|
3631
3681
|
return;
|
|
3632
3682
|
}
|
|
3633
3683
|
if (e.config.isNativeAndroid) {
|
|
3634
|
-
await
|
|
3684
|
+
await Qn(e, t, { gateway: a, gatewayMerchantId: d });
|
|
3635
3685
|
return;
|
|
3636
3686
|
}
|
|
3637
|
-
const
|
|
3687
|
+
const _ = Number(e._getCheckoutAmount()).toFixed(2);
|
|
3638
3688
|
try {
|
|
3639
3689
|
await e._loadGooglePaySdk();
|
|
3640
|
-
} catch (
|
|
3641
|
-
console.error("Google Pay SDK load error:",
|
|
3690
|
+
} catch (N) {
|
|
3691
|
+
console.error("Google Pay SDK load error:", N), e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
|
|
3642
3692
|
return;
|
|
3643
3693
|
}
|
|
3644
3694
|
const E = window.google;
|
|
@@ -3646,7 +3696,7 @@ async function vn(e, n) {
|
|
|
3646
3696
|
e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
|
|
3647
3697
|
return;
|
|
3648
3698
|
}
|
|
3649
|
-
const
|
|
3699
|
+
const P = [
|
|
3650
3700
|
{
|
|
3651
3701
|
type: "CARD",
|
|
3652
3702
|
parameters: {
|
|
@@ -3659,57 +3709,57 @@ async function vn(e, n) {
|
|
|
3659
3709
|
parameters: { gateway: a, gatewayMerchantId: d }
|
|
3660
3710
|
}
|
|
3661
3711
|
}
|
|
3662
|
-
],
|
|
3712
|
+
], T = {
|
|
3663
3713
|
apiVersion: 2,
|
|
3664
3714
|
apiVersionMinor: 0,
|
|
3665
|
-
allowedPaymentMethods:
|
|
3715
|
+
allowedPaymentMethods: P,
|
|
3666
3716
|
transactionInfo: {
|
|
3667
3717
|
totalPriceStatus: "FINAL",
|
|
3668
3718
|
totalPriceLabel: "Итого",
|
|
3669
|
-
totalPrice:
|
|
3719
|
+
totalPrice: _,
|
|
3670
3720
|
currencyCode: e.config.currency,
|
|
3671
3721
|
countryCode: e.config.currency === "GEL" ? "GE" : "KZ"
|
|
3672
3722
|
},
|
|
3673
|
-
merchantInfo:
|
|
3674
|
-
},
|
|
3675
|
-
environment:
|
|
3723
|
+
merchantInfo: f ? { merchantId: S, merchantName: C } : { merchantName: C }
|
|
3724
|
+
}, B = new E.payments.api.PaymentsClient({
|
|
3725
|
+
environment: f ? "PRODUCTION" : "TEST"
|
|
3676
3726
|
});
|
|
3677
3727
|
try {
|
|
3678
|
-
const
|
|
3728
|
+
const N = await B.isReadyToPay({
|
|
3679
3729
|
apiVersion: 2,
|
|
3680
3730
|
apiVersionMinor: 0,
|
|
3681
|
-
allowedPaymentMethods:
|
|
3731
|
+
allowedPaymentMethods: P
|
|
3682
3732
|
});
|
|
3683
|
-
if (!(
|
|
3733
|
+
if (!(N != null && N.result)) {
|
|
3684
3734
|
e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
|
|
3685
3735
|
return;
|
|
3686
3736
|
}
|
|
3687
|
-
|
|
3688
|
-
const
|
|
3689
|
-
if (!
|
|
3690
|
-
const
|
|
3737
|
+
ne(e);
|
|
3738
|
+
const q = await B.loadPaymentData(T), F = (O = (L = q == null ? void 0 : q.paymentMethodData) == null ? void 0 : L.tokenizationData) == null ? void 0 : O.token;
|
|
3739
|
+
if (!F) throw new Error(e.t("errorGooglePayPayment"));
|
|
3740
|
+
const x = JSON.parse(F), M = await at(
|
|
3691
3741
|
e.apiUrl,
|
|
3692
3742
|
e._getApiConfig(),
|
|
3693
3743
|
e.deviceId,
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
),
|
|
3697
|
-
|
|
3698
|
-
} catch (
|
|
3699
|
-
j(e),
|
|
3744
|
+
x,
|
|
3745
|
+
t
|
|
3746
|
+
), m = (M == null ? void 0 : M.id) ?? ((J = M == null ? void 0 : M.data) == null ? void 0 : J.id);
|
|
3747
|
+
m && ce(e, String(m));
|
|
3748
|
+
} catch (N) {
|
|
3749
|
+
j(e), N.statusCode === "CANCELED" ? e.config.onCancel() : (e.config.onError({
|
|
3700
3750
|
attributes: {
|
|
3701
|
-
message: e._resolveErrorMessage(
|
|
3751
|
+
message: e._resolveErrorMessage(N, "errorGooglePayPayment")
|
|
3702
3752
|
}
|
|
3703
|
-
}), console.error("Google Pay error:",
|
|
3753
|
+
}), console.error("Google Pay error:", N));
|
|
3704
3754
|
}
|
|
3705
3755
|
}
|
|
3706
|
-
async function
|
|
3756
|
+
async function Qn(e, t, o) {
|
|
3707
3757
|
var i;
|
|
3708
3758
|
if (!e.config.onPayWithGooglePay) {
|
|
3709
3759
|
e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
|
|
3710
3760
|
return;
|
|
3711
3761
|
}
|
|
3712
|
-
|
|
3762
|
+
ne(e);
|
|
3713
3763
|
try {
|
|
3714
3764
|
const s = await e.config.onPayWithGooglePay({
|
|
3715
3765
|
amount: Number(e._getCheckoutAmount()),
|
|
@@ -3720,7 +3770,7 @@ async function Bn(e, n, o) {
|
|
|
3720
3770
|
e._getApiConfig(),
|
|
3721
3771
|
e.deviceId,
|
|
3722
3772
|
u,
|
|
3723
|
-
|
|
3773
|
+
t
|
|
3724
3774
|
), d = (a == null ? void 0 : a.id) ?? ((i = a == null ? void 0 : a.data) == null ? void 0 : i.id);
|
|
3725
3775
|
d && ce(e, String(d));
|
|
3726
3776
|
} catch (s) {
|
|
@@ -3731,47 +3781,51 @@ async function Bn(e, n, o) {
|
|
|
3731
3781
|
}), console.error("Google Pay native error:", s));
|
|
3732
3782
|
}
|
|
3733
3783
|
}
|
|
3734
|
-
function
|
|
3735
|
-
var
|
|
3736
|
-
const
|
|
3737
|
-
(
|
|
3784
|
+
function Sn(e) {
|
|
3785
|
+
var a, d, f, C, S, _, E, P, T, B, k;
|
|
3786
|
+
const t = e.container;
|
|
3787
|
+
(a = t.querySelector('[data-action="pay"]')) == null || a.addEventListener("click", () => e.handlePayment()), (d = t.querySelector('[data-action="change-method"]')) == null || d.addEventListener("click", () => ht(e)), t.querySelectorAll('[data-action="close"]').forEach((b) => b.addEventListener("click", () => e.close())), (f = t.querySelector('[data-action="close-sheet"]')) == null || f.addEventListener("click", () => {
|
|
3738
3788
|
e._pendingDeleteMethod ? ve(e) : V(e);
|
|
3739
|
-
}), (
|
|
3789
|
+
}), (C = t.querySelector('[data-action="edit-sheet"]')) == null || C.addEventListener("click", () => {
|
|
3740
3790
|
e.isPaymentSheetEditMode = !0, Ae(e), ue(e);
|
|
3741
|
-
}), (
|
|
3791
|
+
}), (S = t.querySelector('[data-action="previous-sheet"]')) == null || S.addEventListener("click", () => {
|
|
3742
3792
|
e.isPaymentSheetEditMode = !1, Ae(e), ue(e);
|
|
3743
|
-
}), (
|
|
3793
|
+
}), (_ = t.querySelector('[data-action="close-add-card"]')) == null || _.addEventListener("click", () => ae(e)), (E = t.querySelector('[data-action="confirm-delete-cancel"]')) == null || E.addEventListener("click", () => ve(e)), (P = t.querySelector('[data-action="confirm-delete-submit"]')) == null || P.addEventListener("click", () => {
|
|
3744
3794
|
if (e._pendingDeleteMethod) {
|
|
3745
|
-
const
|
|
3746
|
-
Ne(e, !0),
|
|
3795
|
+
const b = e._pendingDeleteMethod;
|
|
3796
|
+
Ne(e, !0), mn(e, b).then(() => V(e)).finally(() => Ne(e, !1));
|
|
3747
3797
|
}
|
|
3748
|
-
}),
|
|
3749
|
-
|
|
3750
|
-
const
|
|
3751
|
-
|
|
3798
|
+
}), t.querySelectorAll(".choco-widget-method-item").forEach((b) => {
|
|
3799
|
+
b.addEventListener("click", (w) => {
|
|
3800
|
+
const L = JSON.parse(
|
|
3801
|
+
w.currentTarget.getAttribute("data-method") || "{}"
|
|
3752
3802
|
);
|
|
3753
|
-
ft(e,
|
|
3803
|
+
ft(e, L);
|
|
3754
3804
|
});
|
|
3755
3805
|
});
|
|
3756
|
-
const o =
|
|
3757
|
-
o && (o.addEventListener("click", (
|
|
3758
|
-
|
|
3759
|
-
}),
|
|
3760
|
-
const i =
|
|
3761
|
-
i && ((
|
|
3762
|
-
e.useBalance =
|
|
3806
|
+
const o = t.querySelector('[data-sheet="payment"]');
|
|
3807
|
+
o && (o.addEventListener("click", (b) => {
|
|
3808
|
+
b.target === o && V(e);
|
|
3809
|
+
}), kn(e, o));
|
|
3810
|
+
const i = t.querySelector('[data-action="toggle-balance"]');
|
|
3811
|
+
i && ((T = i.querySelector("input[type='checkbox']")) == null || T.addEventListener("change", (b) => {
|
|
3812
|
+
e.useBalance = b.target.checked, e._updatePayButtonAmount();
|
|
3813
|
+
}));
|
|
3814
|
+
const s = t.querySelector('[data-action="toggle-bonuses"]');
|
|
3815
|
+
s && ((B = s.querySelector("input[type='checkbox']")) == null || B.addEventListener("change", (b) => {
|
|
3816
|
+
e.useBonuses = b.target.checked, e.config.onAppliedBonus(e.useBonuses), e._updatePayButtonAmount();
|
|
3763
3817
|
}));
|
|
3764
|
-
const
|
|
3765
|
-
|
|
3766
|
-
e.
|
|
3818
|
+
const u = t.querySelector('[data-action="toggle-coupon"]');
|
|
3819
|
+
u && ((k = u.querySelector("input[type='checkbox']")) == null || k.addEventListener("change", (b) => {
|
|
3820
|
+
e.useCoupon = b.target.checked, e._updatePayButtonAmount();
|
|
3767
3821
|
})), document.removeEventListener("keydown", e._boundKeyDown), document.addEventListener("keydown", e._boundKeyDown), dt(e);
|
|
3768
3822
|
}
|
|
3769
|
-
function
|
|
3823
|
+
function Pn(e, t) {
|
|
3770
3824
|
var o, i;
|
|
3771
|
-
e.isOpen && (
|
|
3825
|
+
e.isOpen && (t.key === "Escape" && (t.preventDefault(), e._pendingDeleteMethod ? ve(e) : e.isAddCardViewOpen ? ae(e) : e.isPaymentSheetOpen ? V(e) : e.close()), t.key === "Enter" && ((i = (o = t.target) == null ? void 0 : o.dataset) == null ? void 0 : i.action) === "pay" && (t.preventDefault(), e.handlePayment()));
|
|
3772
3826
|
}
|
|
3773
|
-
function
|
|
3774
|
-
const o =
|
|
3827
|
+
function kn(e, t) {
|
|
3828
|
+
const o = t.querySelector('[data-action="sheet-drag-handle"]'), i = t.querySelector(".choco-widget-sheet-content");
|
|
3775
3829
|
if (!o || !i) return;
|
|
3776
3830
|
const s = 80;
|
|
3777
3831
|
let u = 0, a = 0;
|
|
@@ -3779,51 +3833,51 @@ function Sn(e, n) {
|
|
|
3779
3833
|
a = C.clientY;
|
|
3780
3834
|
const S = Math.max(0, a - u);
|
|
3781
3835
|
i.style.transform = `translateY(${S}px)`;
|
|
3782
|
-
},
|
|
3783
|
-
o.releasePointerCapture(C.pointerId), o.removeEventListener("pointermove", d), o.removeEventListener("pointerup",
|
|
3836
|
+
}, f = (C) => {
|
|
3837
|
+
o.releasePointerCapture(C.pointerId), o.removeEventListener("pointermove", d), o.removeEventListener("pointerup", f), o.removeEventListener("pointercancel", f);
|
|
3784
3838
|
const S = Math.max(0, a - u);
|
|
3785
3839
|
if (i.classList.remove("choco-widget-sheet-content--dragging"), S >= s) {
|
|
3786
3840
|
i.style.transform = "translateY(100%)";
|
|
3787
|
-
const
|
|
3788
|
-
i.removeEventListener("transitionend",
|
|
3841
|
+
const _ = () => {
|
|
3842
|
+
i.removeEventListener("transitionend", _), i.style.transform = "", V(e);
|
|
3789
3843
|
};
|
|
3790
|
-
i.addEventListener("transitionend",
|
|
3844
|
+
i.addEventListener("transitionend", _);
|
|
3791
3845
|
} else
|
|
3792
3846
|
i.style.transform = "";
|
|
3793
3847
|
};
|
|
3794
3848
|
o.addEventListener("pointerdown", (C) => {
|
|
3795
|
-
!e.isPaymentSheetOpen || C.button !== 0 || (C.preventDefault(), u = C.clientY, a = C.clientY, i.classList.add("choco-widget-sheet-content--dragging"), o.setPointerCapture(C.pointerId), o.addEventListener("pointermove", d), o.addEventListener("pointerup",
|
|
3849
|
+
!e.isPaymentSheetOpen || C.button !== 0 || (C.preventDefault(), u = C.clientY, a = C.clientY, i.classList.add("choco-widget-sheet-content--dragging"), o.setPointerCapture(C.pointerId), o.addEventListener("pointermove", d), o.addEventListener("pointerup", f), o.addEventListener("pointercancel", f));
|
|
3796
3850
|
});
|
|
3797
3851
|
}
|
|
3798
3852
|
class ie {
|
|
3799
3853
|
// ─── Статические методы / logout ─────────────────────────────────────────────
|
|
3800
|
-
static _getAuthStorageValue(
|
|
3801
|
-
return it(
|
|
3854
|
+
static _getAuthStorageValue(t) {
|
|
3855
|
+
return it(t);
|
|
3802
3856
|
}
|
|
3803
|
-
static _setAuthStorageValue(
|
|
3804
|
-
Re(
|
|
3857
|
+
static _setAuthStorageValue(t, o) {
|
|
3858
|
+
Re(t, o);
|
|
3805
3859
|
}
|
|
3806
|
-
static _removeAuthStorageValue(
|
|
3807
|
-
be(
|
|
3860
|
+
static _removeAuthStorageValue(t) {
|
|
3861
|
+
be(t);
|
|
3808
3862
|
}
|
|
3809
3863
|
static async logout() {
|
|
3810
3864
|
Ze();
|
|
3811
3865
|
}
|
|
3812
3866
|
// ─── Конструктор ──────────────────────────────────────────────────────────────
|
|
3813
|
-
constructor(
|
|
3814
|
-
this.config =
|
|
3867
|
+
constructor(t) {
|
|
3868
|
+
this.config = qt(t), this.accessToken = null, this.deviceId = nt(), this.apiUrl = Et(this.config.environment), this.translations = mt, this.checkoutContext = null, this.centrifuge = null, this.selectedPaymentMethod = null, this.selectedCoupon = null, this.useCoupon = !1, this.container = null, this.isOpen = !1, this.isPaymentSheetOpen = !1, this.isPaymentSheetEditMode = !1, this.loading = !1, this.disabled = !1, this.paymentMethodDisabled = !1, this.useBalance = !1, this.useBonuses = !1, this.addCardActionUrl = null, this.isAddCardViewOpen = !1, this.waitingForNewCardAction = !1, this.newCardActionRequiredTimeoutId = null, this._googlePayScriptPromise = null, this._googlePayButtonRenderVersion = 0, this._orderStatusPollingId = null, this._orderStatusResolved = !1, this._pendingDeleteMethod = null, this._pendingSuccessPayload = null, this._lifecycleListenersAttached = !1, this._boundAddCardMessage = null, this._boundKeyDown = (o) => Pn(this, o), this._boundVisibilityChange = () => this._onVisibilityChange(), this._boundWindowFocus = () => this._onWindowFocus(), this._boundPageShow = () => this._onPageShow();
|
|
3815
3869
|
}
|
|
3816
3870
|
// ─── Локализация ──────────────────────────────────────────────────────────────
|
|
3817
|
-
t(
|
|
3871
|
+
t(t, o = {}) {
|
|
3818
3872
|
var u;
|
|
3819
|
-
const i = this.config.locale || "ru", s = ((u = this.translations[i]) == null ? void 0 : u[
|
|
3820
|
-
return typeof s != "string" ?
|
|
3873
|
+
const i = this.config.locale || "ru", s = ((u = this.translations[i]) == null ? void 0 : u[t]) || this.translations.ru[t];
|
|
3874
|
+
return typeof s != "string" ? t : s.replace(
|
|
3821
3875
|
/{(\w+)}/g,
|
|
3822
3876
|
(a, d) => Object.prototype.hasOwnProperty.call(o, d) ? String(o[d]) : a
|
|
3823
3877
|
);
|
|
3824
3878
|
}
|
|
3825
|
-
_resolveErrorMessage(
|
|
3826
|
-
return (
|
|
3879
|
+
_resolveErrorMessage(t, o = "paymentError") {
|
|
3880
|
+
return (t == null ? void 0 : t.message) || this.t(o);
|
|
3827
3881
|
}
|
|
3828
3882
|
// ─── Вспомогательные геттеры ─────────────────────────────────────────────────
|
|
3829
3883
|
_getApiConfig() {
|
|
@@ -3834,32 +3888,42 @@ class ie {
|
|
|
3834
3888
|
}
|
|
3835
3889
|
_getBalanceAmount() {
|
|
3836
3890
|
var s, u, a, d;
|
|
3837
|
-
const
|
|
3891
|
+
const t = (d = (a = (u = (s = this.checkoutContext) == null ? void 0 : s.data) == null ? void 0 : u.balance) == null ? void 0 : a.data) == null ? void 0 : d.money, o = this.config.currency || "KZT", i = Number(t == null ? void 0 : t[o]);
|
|
3838
3892
|
return Number.isFinite(i) && i > 0 ? i : 0;
|
|
3839
3893
|
}
|
|
3840
3894
|
_getBonusesAmount() {
|
|
3841
3895
|
var o;
|
|
3842
|
-
const
|
|
3843
|
-
return Number.isFinite(
|
|
3896
|
+
const t = Number((o = this.config.bonuses) == null ? void 0 : o.amount);
|
|
3897
|
+
return Number.isFinite(t) && t > 0 ? t : 0;
|
|
3844
3898
|
}
|
|
3845
3899
|
_getBonusesPercent() {
|
|
3846
3900
|
var o;
|
|
3847
|
-
const
|
|
3848
|
-
return !Number.isFinite(
|
|
3901
|
+
const t = Number((o = this.config.bonuses) == null ? void 0 : o.percent);
|
|
3902
|
+
return !Number.isFinite(t) || t <= 0 ? 0 : t >= 100 ? 100 : t;
|
|
3849
3903
|
}
|
|
3850
3904
|
_getAvailableBonus() {
|
|
3851
3905
|
var o;
|
|
3852
|
-
const
|
|
3853
|
-
return Number.isFinite(
|
|
3906
|
+
const t = Number((o = this.config.bonuses) == null ? void 0 : o.availableBonus);
|
|
3907
|
+
return Number.isFinite(t) && t > 0 ? t : 0;
|
|
3908
|
+
}
|
|
3909
|
+
_getCouponDiscount() {
|
|
3910
|
+
if (!this.useCoupon || !this.selectedCoupon || this.selectedCoupon.type === "coupon") return 0;
|
|
3911
|
+
const t = Number(this.selectedCoupon.reward_amount);
|
|
3912
|
+
return Number.isFinite(t) && t > 0 ? t : 0;
|
|
3854
3913
|
}
|
|
3855
3914
|
_getPaymentBreakdown() {
|
|
3856
|
-
const
|
|
3915
|
+
const t = this.config.amount, o = this._getBalanceAmount(), i = this.useBalance ? Math.min(o, t) : 0, s = t - i, u = this.useBalance && i >= t, a = this.useBonuses ? this._getAvailableBonus() : 0, d = Math.max(s - a, 0), f = this._getCouponDiscount(), C = Math.max(d - f, 0), S = this.useBalance ? t : C, _ = this.useBalance && !u, E = this.useCoupon && this.selectedCoupon ? {
|
|
3916
|
+
id: this.selectedCoupon.voucher_id,
|
|
3917
|
+
template_id: this.selectedCoupon.template_id,
|
|
3918
|
+
type: this.selectedCoupon.type
|
|
3919
|
+
} : void 0;
|
|
3857
3920
|
return {
|
|
3858
|
-
payableAmount:
|
|
3921
|
+
payableAmount: C,
|
|
3859
3922
|
checkoutOptions: {
|
|
3860
|
-
checkoutAmount:
|
|
3923
|
+
checkoutAmount: S,
|
|
3861
3924
|
forceBalanceMethod: u,
|
|
3862
|
-
useBalance:
|
|
3925
|
+
useBalance: _,
|
|
3926
|
+
voucher: E
|
|
3863
3927
|
}
|
|
3864
3928
|
};
|
|
3865
3929
|
}
|
|
@@ -3873,8 +3937,8 @@ class ie {
|
|
|
3873
3937
|
return this._getPaymentBreakdown().checkoutOptions.checkoutAmount ?? this.config.amount;
|
|
3874
3938
|
}
|
|
3875
3939
|
_getPaymentMethodForUserEvent() {
|
|
3876
|
-
var
|
|
3877
|
-
return this._isBalanceFullyCoveringAmount() ? "balance" : ((
|
|
3940
|
+
var t;
|
|
3941
|
+
return this._isBalanceFullyCoveringAmount() ? "balance" : ((t = this.selectedPaymentMethod) == null ? void 0 : t.type) ?? null;
|
|
3878
3942
|
}
|
|
3879
3943
|
_getKaspiOptions() {
|
|
3880
3944
|
return {
|
|
@@ -3884,15 +3948,15 @@ class ie {
|
|
|
3884
3948
|
};
|
|
3885
3949
|
}
|
|
3886
3950
|
// ─── Эмиттеры ────────────────────────────────────────────────────────────────
|
|
3887
|
-
_emitUserEvent(
|
|
3888
|
-
typeof this.config.onUserEvent == "function" && this.config.onUserEvent({ eventName:
|
|
3951
|
+
_emitUserEvent(t, o = {}) {
|
|
3952
|
+
typeof this.config.onUserEvent == "function" && this.config.onUserEvent({ eventName: t, eventProperties: o });
|
|
3889
3953
|
}
|
|
3890
|
-
_emitPaymentMethodSelected(
|
|
3891
|
-
typeof this.config.onPaymentMethodSelected == "function" && this.config.onPaymentMethodSelected(
|
|
3954
|
+
_emitPaymentMethodSelected(t = this.selectedPaymentMethod) {
|
|
3955
|
+
typeof this.config.onPaymentMethodSelected == "function" && this.config.onPaymentMethodSelected(t || null);
|
|
3892
3956
|
}
|
|
3893
3957
|
// ─── Делегаторы в модули (вызываются из domUI/events через widget.method()) ──
|
|
3894
3958
|
_attachEventListeners() {
|
|
3895
|
-
|
|
3959
|
+
Sn(this);
|
|
3896
3960
|
}
|
|
3897
3961
|
_updatePayButtonAmount() {
|
|
3898
3962
|
pe(this);
|
|
@@ -3915,25 +3979,25 @@ class ie {
|
|
|
3915
3979
|
this.newCardActionRequiredTimeoutId && (window.clearTimeout(this.newCardActionRequiredTimeoutId), this.newCardActionRequiredTimeoutId = null);
|
|
3916
3980
|
}
|
|
3917
3981
|
// ─── Хранение токенов ────────────────────────────────────────────────────────
|
|
3918
|
-
_saveTokensToStorage(
|
|
3919
|
-
Me(
|
|
3982
|
+
_saveTokensToStorage(t, o) {
|
|
3983
|
+
Me(t, o);
|
|
3920
3984
|
}
|
|
3921
3985
|
_clearAuthStorage() {
|
|
3922
3986
|
Ze();
|
|
3923
3987
|
}
|
|
3924
|
-
_getAuthStorageValue(
|
|
3925
|
-
return ie._getAuthStorageValue(
|
|
3988
|
+
_getAuthStorageValue(t) {
|
|
3989
|
+
return ie._getAuthStorageValue(t);
|
|
3926
3990
|
}
|
|
3927
|
-
_setAuthStorageValue(
|
|
3928
|
-
ie._setAuthStorageValue(
|
|
3991
|
+
_setAuthStorageValue(t, o) {
|
|
3992
|
+
ie._setAuthStorageValue(t, o);
|
|
3929
3993
|
}
|
|
3930
|
-
_removeAuthStorageValue(
|
|
3931
|
-
ie._removeAuthStorageValue(
|
|
3994
|
+
_removeAuthStorageValue(t) {
|
|
3995
|
+
ie._removeAuthStorageValue(t);
|
|
3932
3996
|
}
|
|
3933
3997
|
// ─── Google Pay SDK (используется из domUI + paymentFlow) ────────────────────
|
|
3934
3998
|
_loadGooglePaySdk() {
|
|
3935
|
-
var
|
|
3936
|
-
return typeof window > "u" || typeof document > "u" ? Promise.reject(new Error("Google Pay SDK requires browser environment")) : (o = (
|
|
3999
|
+
var t, o;
|
|
4000
|
+
return typeof window > "u" || typeof document > "u" ? Promise.reject(new Error("Google Pay SDK requires browser environment")) : (o = (t = window.google) == null ? void 0 : t.payments) != null && o.api ? Promise.resolve() : this._googlePayScriptPromise ? this._googlePayScriptPromise : (this._googlePayScriptPromise = new Promise((i, s) => {
|
|
3937
4001
|
const u = document.querySelector(
|
|
3938
4002
|
'script[data-choco-google-pay-sdk="true"]'
|
|
3939
4003
|
);
|
|
@@ -3970,7 +4034,7 @@ class ie {
|
|
|
3970
4034
|
}
|
|
3971
4035
|
// ─── Авторизация (приватная) ──────────────────────────────────────────────────
|
|
3972
4036
|
async _obtainTokenByRefreshOrTrackId() {
|
|
3973
|
-
await
|
|
4037
|
+
await jt(this);
|
|
3974
4038
|
}
|
|
3975
4039
|
async _fetchCheckoutContextWithRetry() {
|
|
3976
4040
|
try {
|
|
@@ -3978,26 +4042,34 @@ class ie {
|
|
|
3978
4042
|
this.apiUrl,
|
|
3979
4043
|
this._getApiConfig()
|
|
3980
4044
|
);
|
|
3981
|
-
} catch (
|
|
3982
|
-
if (
|
|
4045
|
+
} catch (t) {
|
|
4046
|
+
if (t.status === 401)
|
|
3983
4047
|
this._removeAuthStorageValue("webPayToken"), await this._obtainTokenByRefreshOrTrackId(), this.checkoutContext = await Oe(
|
|
3984
4048
|
this.apiUrl,
|
|
3985
4049
|
this._getApiConfig()
|
|
3986
4050
|
);
|
|
3987
4051
|
else
|
|
3988
|
-
throw
|
|
4052
|
+
throw t;
|
|
4053
|
+
}
|
|
4054
|
+
}
|
|
4055
|
+
async _fetchCoupons() {
|
|
4056
|
+
try {
|
|
4057
|
+
const t = await xt(this.apiUrl, this._getApiConfig()), i = (Array.isArray(t) ? t : Array.isArray(t == null ? void 0 : t.data) ? t.data : []).filter((s) => s.is_available && Number(s.reward_amount) > 0).sort((s, u) => s.sort_weight - u.sort_weight);
|
|
4058
|
+
this.selectedCoupon = i.length > 0 ? i[0] : null, this.useCoupon = this.selectedCoupon !== null;
|
|
4059
|
+
} catch {
|
|
4060
|
+
this.selectedCoupon = null, this.useCoupon = !1;
|
|
3989
4061
|
}
|
|
3990
4062
|
}
|
|
3991
4063
|
// ─── Рендер ───────────────────────────────────────────────────────────────────
|
|
3992
4064
|
_prerender() {
|
|
3993
|
-
|
|
4065
|
+
dn(this);
|
|
3994
4066
|
}
|
|
3995
4067
|
_render() {
|
|
3996
|
-
|
|
4068
|
+
hn(this);
|
|
3997
4069
|
}
|
|
3998
4070
|
// ─── Публичный API ────────────────────────────────────────────────────────────
|
|
3999
4071
|
async init() {
|
|
4000
|
-
var
|
|
4072
|
+
var t, o;
|
|
4001
4073
|
try {
|
|
4002
4074
|
if (this._prerender(), this._attachLifecycleListeners(), !this.config.clientId)
|
|
4003
4075
|
return this.config.onError({ attributes: { message: this.t("errorMissingTrackClient") } }), !1;
|
|
@@ -4010,8 +4082,9 @@ class ie {
|
|
|
4010
4082
|
const u = s;
|
|
4011
4083
|
return this.config.onError({ attributes: { message: u.message } }), !1;
|
|
4012
4084
|
}
|
|
4085
|
+
await this._fetchCoupons();
|
|
4013
4086
|
const i = Ve(
|
|
4014
|
-
(o = (
|
|
4087
|
+
(o = (t = this.checkoutContext) == null ? void 0 : t.data) == null ? void 0 : o.socket_connections,
|
|
4015
4088
|
(s) => et(this, s)
|
|
4016
4089
|
);
|
|
4017
4090
|
return i && (this.centrifuge = i.centrifuge), this.selectedPaymentMethod = Le(
|
|
@@ -4026,28 +4099,28 @@ class ie {
|
|
|
4026
4099
|
this.config.onCancel();
|
|
4027
4100
|
}
|
|
4028
4101
|
destroy() {
|
|
4029
|
-
const
|
|
4030
|
-
|
|
4102
|
+
const t = document.getElementById("choco-one-click-widget");
|
|
4103
|
+
t && (t.style.display = "none"), this._clearNewCardActionTimeout(), ee(this), this._pendingSuccessPayload = null, this._detachLifecycleListeners(), this.isAddCardViewOpen && ae(this), this.centrifuge && (this.centrifuge.disconnect(), this.centrifuge = null), document.removeEventListener("keydown", this._boundKeyDown), this.container && (this.container.classList.remove("choco-one-click-widget--visible"), setTimeout(() => {
|
|
4031
4104
|
var o;
|
|
4032
4105
|
(o = this.container) == null || o.remove(), this.container = null;
|
|
4033
4106
|
}, 300)), this.isOpen = !1, this.isPaymentSheetOpen = !1, this.isAddCardViewOpen = !1, this.selectedPaymentMethod = null;
|
|
4034
4107
|
}
|
|
4035
4108
|
getAvailablePaymentMethods() {
|
|
4036
|
-
var
|
|
4037
|
-
return (
|
|
4109
|
+
var t;
|
|
4110
|
+
return (t = this.checkoutContext) != null && t.data ? Rt(
|
|
4038
4111
|
this.checkoutContext.data,
|
|
4039
4112
|
(o) => this.t(o),
|
|
4040
4113
|
this._getKaspiOptions()
|
|
4041
4114
|
) : [];
|
|
4042
4115
|
}
|
|
4043
4116
|
async createOrder() {
|
|
4044
|
-
return
|
|
4117
|
+
return En(this);
|
|
4045
4118
|
}
|
|
4046
4119
|
async pay() {
|
|
4047
4120
|
try {
|
|
4048
4121
|
await this.createOrder();
|
|
4049
|
-
} catch (
|
|
4050
|
-
console.error(`${this.t("errorPaymentProcess")}:`,
|
|
4122
|
+
} catch (t) {
|
|
4123
|
+
console.error(`${this.t("errorPaymentProcess")}:`, t);
|
|
4051
4124
|
}
|
|
4052
4125
|
}
|
|
4053
4126
|
async handlePayment() {
|
|
@@ -4061,8 +4134,8 @@ class ie {
|
|
|
4061
4134
|
return;
|
|
4062
4135
|
}
|
|
4063
4136
|
await this.pay();
|
|
4064
|
-
} catch (
|
|
4065
|
-
console.error(`${this.t("errorPaymentProcess")}:`,
|
|
4137
|
+
} catch (t) {
|
|
4138
|
+
console.error(`${this.t("errorPaymentProcess")}:`, t);
|
|
4066
4139
|
}
|
|
4067
4140
|
}
|
|
4068
4141
|
}
|
|
@@ -4072,45 +4145,45 @@ class ie {
|
|
|
4072
4145
|
closePaymentSheet() {
|
|
4073
4146
|
V(this);
|
|
4074
4147
|
}
|
|
4075
|
-
async updateAmount(
|
|
4076
|
-
if (typeof
|
|
4148
|
+
async updateAmount(t) {
|
|
4149
|
+
if (typeof t != "number" || !Number.isFinite(t) || t < 0)
|
|
4077
4150
|
throw new Error("amount must be a non-negative number");
|
|
4078
|
-
this.config.amount =
|
|
4151
|
+
this.config.amount = t, pe(this);
|
|
4079
4152
|
}
|
|
4080
|
-
async updateAvailableBonus(
|
|
4081
|
-
if (typeof
|
|
4153
|
+
async updateAvailableBonus(t) {
|
|
4154
|
+
if (typeof t != "number" || !Number.isFinite(t) || t < 0)
|
|
4082
4155
|
throw new Error("availableBonus must be a non-negative number");
|
|
4083
|
-
this.config.bonuses && (this.config.bonuses.availableBonus =
|
|
4156
|
+
this.config.bonuses && (this.config.bonuses.availableBonus = t), pe(this);
|
|
4084
4157
|
}
|
|
4085
|
-
async updateLocale(
|
|
4086
|
-
if (typeof
|
|
4087
|
-
throw new Error(`Unsupported locale: ${
|
|
4088
|
-
if (this.config.locale =
|
|
4158
|
+
async updateLocale(t) {
|
|
4159
|
+
if (typeof t != "string" || !this.translations[t])
|
|
4160
|
+
throw new Error(`Unsupported locale: ${t}`);
|
|
4161
|
+
if (this.config.locale = t, !this.container) return;
|
|
4089
4162
|
const o = this.isPaymentSheetOpen, i = this.isAddCardViewOpen;
|
|
4090
|
-
if (this._render(),
|
|
4163
|
+
if (this._render(), te(this), o) {
|
|
4091
4164
|
const s = this.container.querySelector('[data-sheet="payment"]');
|
|
4092
4165
|
s && (s.classList.add("choco-widget-payment-sheet--open"), this.isPaymentSheetOpen = !0);
|
|
4093
4166
|
}
|
|
4094
4167
|
i && $e(this);
|
|
4095
4168
|
}
|
|
4096
|
-
async setLoading(
|
|
4097
|
-
this.loading = !!
|
|
4169
|
+
async setLoading(t) {
|
|
4170
|
+
this.loading = !!t, te(this);
|
|
4098
4171
|
}
|
|
4099
|
-
async setDisabled(
|
|
4100
|
-
this.disabled = !!
|
|
4172
|
+
async setDisabled(t) {
|
|
4173
|
+
this.disabled = !!t, te(this);
|
|
4101
4174
|
}
|
|
4102
|
-
async setPreorderId(
|
|
4103
|
-
this.config.preorderId =
|
|
4175
|
+
async setPreorderId(t) {
|
|
4176
|
+
this.config.preorderId = t;
|
|
4104
4177
|
}
|
|
4105
|
-
async setMerchantOrderId(
|
|
4106
|
-
this.config.merchantOrderId =
|
|
4178
|
+
async setMerchantOrderId(t) {
|
|
4179
|
+
this.config.merchantOrderId = t;
|
|
4107
4180
|
}
|
|
4108
4181
|
async logout() {
|
|
4109
4182
|
await ie.logout(), this.accessToken = null;
|
|
4110
4183
|
}
|
|
4111
|
-
async updateTrackId(
|
|
4184
|
+
async updateTrackId(t) {
|
|
4112
4185
|
var o, i;
|
|
4113
|
-
if (this.config.trackId =
|
|
4186
|
+
if (this.config.trackId = t, !this.config.clientId)
|
|
4114
4187
|
return this.config.onError({ attributes: { message: this.t("errorMissingTrackClient") } }), !1;
|
|
4115
4188
|
try {
|
|
4116
4189
|
this._prerender(), await this._obtainTokenByRefreshOrTrackId();
|
|
@@ -4120,7 +4193,7 @@ class ie {
|
|
|
4120
4193
|
const a = u;
|
|
4121
4194
|
return this.config.onError({ attributes: { message: a.message } }), !1;
|
|
4122
4195
|
}
|
|
4123
|
-
this.centrifuge && (this.centrifuge.disconnect(), this.centrifuge = null);
|
|
4196
|
+
await this._fetchCoupons(), this.centrifuge && (this.centrifuge.disconnect(), this.centrifuge = null);
|
|
4124
4197
|
const s = Ve(
|
|
4125
4198
|
(i = (o = this.checkoutContext) == null ? void 0 : o.data) == null ? void 0 : i.socket_connections,
|
|
4126
4199
|
(u) => et(this, u)
|
|
@@ -4133,27 +4206,27 @@ class ie {
|
|
|
4133
4206
|
return console.error(`${this.t("errorWidgetInit")}:`, s), this.config.onError({ attributes: { message: s.message } }), !1;
|
|
4134
4207
|
}
|
|
4135
4208
|
}
|
|
4136
|
-
async onConfirmPay(
|
|
4137
|
-
if (typeof
|
|
4138
|
-
this.config.onConfirmPay =
|
|
4209
|
+
async onConfirmPay(t) {
|
|
4210
|
+
if (typeof t != "function") throw new Error("onConfirmPay callback must be a function");
|
|
4211
|
+
this.config.onConfirmPay = t;
|
|
4139
4212
|
}
|
|
4140
|
-
async onPaymentMethodSelected(
|
|
4141
|
-
if (typeof
|
|
4213
|
+
async onPaymentMethodSelected(t) {
|
|
4214
|
+
if (typeof t != "function")
|
|
4142
4215
|
throw new Error("onPaymentMethodSelected callback must be a function");
|
|
4143
|
-
this.config.onPaymentMethodSelected =
|
|
4216
|
+
this.config.onPaymentMethodSelected = t, this._emitPaymentMethodSelected();
|
|
4144
4217
|
}
|
|
4145
|
-
async onKaspiLink(
|
|
4146
|
-
if (typeof
|
|
4147
|
-
this.config.onKaspiLink =
|
|
4218
|
+
async onKaspiLink(t) {
|
|
4219
|
+
if (typeof t != "function") throw new Error("onKaspiLink callback must be a function");
|
|
4220
|
+
this.config.onKaspiLink = t;
|
|
4148
4221
|
}
|
|
4149
|
-
async onUserEvent(
|
|
4150
|
-
if (typeof
|
|
4151
|
-
this.config.onUserEvent =
|
|
4222
|
+
async onUserEvent(t) {
|
|
4223
|
+
if (typeof t != "function") throw new Error("onUserEvent callback must be a function");
|
|
4224
|
+
this.config.onUserEvent = t;
|
|
4152
4225
|
}
|
|
4153
|
-
async onAppliedBonus(
|
|
4154
|
-
if (typeof
|
|
4226
|
+
async onAppliedBonus(t) {
|
|
4227
|
+
if (typeof t != "function")
|
|
4155
4228
|
throw new Error("onAppliedBonus callback must be a function");
|
|
4156
|
-
this.config.onAppliedBonus =
|
|
4229
|
+
this.config.onAppliedBonus = t;
|
|
4157
4230
|
}
|
|
4158
4231
|
}
|
|
4159
4232
|
typeof window < "u" && (window.ChocoOneClickWidget = ie);
|