choco-one-click-payment 1.1.21 → 1.1.23

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.
@@ -0,0 +1,4117 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('.choco-one-click-widget{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999999;font-family:Sirius,sans-serif;--choco-widget-accent-color: #2F2F2F;pointer-events:none}.choco-one-click-widget--embedded{position:static;top:auto;left:auto;right:auto;bottom:auto;z-index:auto;pointer-events:auto;min-height:1px}.choco-one-click-widget--embedded .choco-widget-bottom-bar{position:static;box-shadow:none;border-radius:24px}.choco-one-click-widget--embedded .choco-widget-payment-sheet{position:fixed}.choco-one-click-widget *{box-sizing:border-box;font-family:Sirius,sans-serif}.choco-one-click-widget .choco-widget-bottom-bar{opacity:0;transform:translateY(16px)}.choco-one-click-widget .choco-widget-balance-section,.choco-one-click-widget .choco-widget-payment-info{opacity:0;transform:translateY(8px)}.choco-one-click-widget--visible .choco-widget-bottom-bar,.choco-one-click-widget--visible .choco-widget-balance-section,.choco-one-click-widget--visible .choco-widget-payment-info{opacity:1;transform:translateY(0)}.choco-widget-bottom-bar{position:absolute;bottom:0;left:0;right:0;background:#fff;border-radius:24px 24px 0 0;padding:16px;box-shadow:0 -4px 20px #0000001a;transition:transform .24s cubic-bezier(.4,0,.2,1),opacity .2s ease;pointer-events:auto}.choco-widget-payment-info{display:flex;flex-direction:column;gap:12px;align-items:stretch;transition:transform .22s ease,opacity .2s ease}.choco-widget-payment-info-main{display:flex;gap:12px;align-items:center}.choco-widget-payment-method{gap:12px;background:#f1f2f7;border-radius:16px;padding:5px 8px;cursor:pointer;transition:background .2s ease;border:none;font-family:inherit;text-align:left;width:100%;position:relative;height:46px}.choco-widget-payment-method:disabled{cursor:not-allowed;pointer-events:none;opacity:.5}.choco-widget-payment-method.google_pay,.choco-widget-payment-method.apple_pay{max-width:140px}.choco-widget-method-icon-placeholder{font-size:24px}.choco-widget-method-details{flex:1}.choco-widget-method-label{font-size:14px;color:#000}.choco-widget-method-value{font-size:14px;font-weight:600;color:#000;display:flex;align-items:center;gap:4px}.choco-widget-method-icon-wrapper svg{display:block;width:100%;max-width:29px;max-height:18px;margin-top:2px}.choco-widget-method-icon-wrapper:empty{display:none}.choco-widget-method-icon-wrapper.google_pay svg{height:17px;max-width:35px;border:1px solid #3C4043;padding:3px 4px 2px;border-radius:8px}.choco-widget-method-name{font-size:14px;font-weight:700}.choco-widget-method-name.google_pay,.choco-widget-method-name.apple_pay{display:none}.choco-widget-method-chevron{position:absolute;right:5px;top:0;bottom:0;margin:auto 0;width:24px;height:24px}.choco-widget-pay-button{background:var(--choco-widget-accent-color);color:#fff;border:none;border-radius:16px;height:46px;padding:0 16px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;width:100%;overflow:hidden}.choco-widget-pay-button--loading{cursor:not-allowed;pointer-events:none;position:relative}.choco-widget-pay-button--loading:before{content:"";display:block;width:16px;height:16px;border:2px solid #ffffff;border-top:2px solid transparent;border-radius:50%;animation:choco-spin 1s linear infinite;position:absolute;left:0;right:0;margin:0 auto;z-index:2}.choco-widget-pay-button--loading:after{content:"";display:block;width:100%;height:100%;background:#2f2f2f;position:absolute;left:0;top:0}.choco-widget-pay-button:disabled{opacity:.5;pointer-events:none}.choco-widget-pay-button--hidden{display:none}.choco-widget-google-pay-amount{min-width:124px;height:46px;display:flex;flex-direction:column;justify-content:center;text-align:right;width:100%}.choco-widget-google-pay-amount--hidden{display:none}.choco-widget-google-pay-amount-label{font-size:20px;font-weight:700;line-height:24px;color:#1d1d1d}.choco-widget-google-pay-amount-value{font-size:14px;line-height:18px;color:#1d1d1d;white-space:nowrap;opacity:.5}.choco-widget-google-pay-amount-value--hidden{display:none}.choco-widget-google-pay-amount-value-number{text-decoration:line-through}.choco-widget-google-pay-row--hidden{display:none}.choco-widget-wallet-blocked{pointer-events:none;opacity:.6}.choco-widget-google-pay-button-slot{width:100%}.choco-widget-google-pay-button-slot>button{width:100%!important;height:52px;min-height:52px;border-radius:12px!important;font-size:16px!important}.choco-widget-apple-pay-row--hidden{display:none}.choco-widget-apple-pay-button-slot{width:100%}.choco-widget-apple-pay-button-wrapper{position:relative;width:100%;height:52px}.choco-widget-apple-pay-button{width:100%;height:52px;min-height:52px;border:0;border-radius:12px;cursor:pointer;background:#000;color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px}.choco-widget-apple-pay-button--native{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:52px;opacity:.01;z-index:2}.choco-widget-apple-pay-button-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#000;border-radius:12px;pointer-events:none;z-index:1}.choco-widget-apple-pay-button-text{font-size:16px;line-height:20px;font-weight:600;color:#fff}.choco-widget-apple-pay-button-icon{display:inline-flex;align-items:center;justify-content:center}.choco-widget-payment-sheet{position:absolute;bottom:0;left:0;right:0;top:0;background:#00000080;display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .3s ease}.choco-widget-payment-sheet--open{opacity:1;pointer-events:auto}.choco-widget-payment-sheet--open .choco-widget-sheet-content{transform:translateY(0)}.choco-widget-sheet-content{background:#fff;border-radius:24px 24px 0 0;width:100%;max-height:70vh;overflow-y:auto;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);padding:8px 16px 16px;position:relative;will-change:transform}.choco-widget-sheet-content--dragging{transition:none}.choco-widget-sheet-grabber{flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;margin-bottom:8px;-webkit-user-select:none;user-select:none}.choco-widget-sheet-grabber:active{cursor:grabbing}.choco-widget-sheet-grabber:before{content:"";width:72px;height:6px;background:#e5e5e7;border-radius:42px}.choco-widget-sheet-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.choco-widget-sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;position:relative}.choco-widget-sheet-title{font-size:20px;font-weight:700;color:#000;margin:0;flex:1;text-align:center}.choco-widget-payment-sheet--edit .choco-widget-sheet-title{padding-left:30px}.choco-widget-payment-sheet--no-cards .choco-widget-sheet-title{padding-right:30px}.choco-widget-payment-sheet--delete-confirm .choco-widget-sheet-title{padding:0}.choco-widget-sheet-button{background:none;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.choco-widget-sheet-button svg{color:#000}.choco-widget-sheet-delete-confirm{display:none;padding-top:16px}.choco-widget-payment-sheet--delete-confirm .choco-widget-payment-methods,.choco-widget-payment-sheet--delete-confirm .choco-widget-cashback-section{display:none!important}.choco-widget-payment-sheet--delete-confirm .choco-widget-sheet-delete-confirm{display:block}.choco-widget-sheet-delete-confirm-text{margin:0 0 24px;font-size:16px;line-height:1.4;color:#242424;text-align:center}.choco-widget-sheet-delete-confirm-actions{display:flex;gap:12px}.choco-widget-delete-confirm-btn{flex:1;padding:14px 20px;font-size:16px;font-weight:600;font-family:inherit;border-radius:16px;border:none;cursor:pointer;transition:background .2s ease,opacity .2s ease}.choco-widget-delete-confirm-btn--cancel{background:#f1f2f7;color:#242424}.choco-widget-delete-confirm-btn--delete{background:var(--choco-widget-accent-color);color:#fff}.choco-widget-delete-confirm-btn--loading{cursor:not-allowed;pointer-events:none;position:relative}.choco-widget-sheet-delete-confirm-actions.choco-widget-sheet-delete-confirm-actions--loading .choco-widget-delete-confirm-btn{pointer-events:none;cursor:not-allowed;opacity:.7}.choco-widget-delete-confirm-btn--delete.choco-widget-delete-confirm-btn--loading:before{content:"";display:block;width:16px;height:16px;border:2px solid #ffffff;border-top:2px solid transparent;border-radius:50%;animation:choco-spin 1s linear infinite;position:absolute;left:0;right:0;margin:0 auto;z-index:2}.choco-widget-delete-confirm-btn--delete.choco-widget-delete-confirm-btn--loading:after{content:"";display:block;width:100%;height:100%;background:#cc3434;position:absolute;left:0;top:0;border-radius:16px}.choco-widget-add-card-sheet{align-items:stretch}.choco-widget-add-card-sheet .choco-widget-add-card-sheet-content{max-height:none;height:100%;display:flex;flex-direction:column;transform:none;border-radius:0;padding:0}.choco-widget-add-card-sheet--open .choco-widget-add-card-sheet-content{transform:none}.choco-widget-add-card-sheet .choco-widget-sheet-header{flex-shrink:0;margin-bottom:0;padding:12px 0;border-bottom:1px solid #eee}.choco-widget-add-card-iframe-wrapper{flex:1;min-height:0;background:#fff}.choco-widget-add-card-iframe{width:100%;height:100%;border:none;display:block}.choco-widget-balance-section{margin-bottom:12px;padding:12px 8px;background:#f1f2f7;border-radius:12px;transition:transform .22s ease,opacity .2s ease}.choco-widget-balance-section.disabled{opacity:.5;pointer-events:none}.choco-widget-balance-toggle{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:4px 0}.choco-widget-balance-toggle:last-child{margin-bottom:0}.choco-widget-balance-info{display:flex;align-items:center;gap:12px}.choco-widget-balance-text{display:flex;flex-direction:column}.choco-widget-balance-label-wrapper{display:flex;align-items:center;gap:8px}.choco-widget-balance-label{font-size:16px;font-weight:500}.choco-widget-balance-sublabel{font-size:12px;color:#767485;margin-top:2px}.choco-widget-balance-icon{width:22px;height:22px}.choco-widget-balance-amount{font-size:16px;font-weight:500;color:#000}.choco-widget-toggle{position:relative;display:inline-block;width:42px;height:26px}.choco-widget-toggle input{opacity:0;width:0;height:0}.choco-widget-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d4d3df;transition:.3s;border-radius:28px}.choco-widget-toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:2px;bottom:0;top:0;margin:auto;background-color:#fff;transition:.3s;border-radius:50%}.choco-widget-toggle input:checked+.choco-widget-toggle-slider{background-color:var(--choco-widget-accent-color)}.choco-widget-toggle input:checked+.choco-widget-toggle-slider:before{transform:translate(16px)}.choco-widget-cashback-section{margin-top:20px;padding-top:20px;border-top:1px solid #f0f0f0}.choco-widget-cashback-info{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff5ee;border-radius:12px;font-size:14px;color:#ff6b00}.choco-widget-cashback-icon{font-size:20px}.choco-widget-cashback-text strong{font-weight:700}.choco-widget-payment-methods{display:flex;flex-direction:column;gap:8px}.choco-widget-method-item{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer;transition:all .2s ease;border:2px solid transparent;width:100%;border:0;background:none;text-align:left;font-family:inherit;font-size:inherit}.choco-widget-method-item-icon-wrapper{width:37px}.choco-widget-method-item-icon-wrapper svg{display:block;width:100%;max-width:29px;height:29px;margin:0 auto}.choco-widget-method-item-icon-wrapper.google_pay{outline:1px solid #3C4043;padding:3px 5px 2px;border-radius:15px}.choco-widget-method-item-icon-wrapper.google_pay svg{height:15px;max-width:29px}.choco-widget-method-item-label{flex:1;font-size:16px;color:#000}.choco-widget-method-item-check,.choco-widget-method-item-trash-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:6px;margin:-6px 0 -6px 6px;background:none;border:none;cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent}.choco-widget-method-item-trash-btn:hover{background:#cc343414}.choco-widget-method-item-trash{flex-shrink:0;width:20px;height:20px}.choco-widget-bottom-bar-prerender{position:absolute;bottom:0;left:0;right:0;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -4px 20px #0000001a;transition:transform .3s cubic-bezier(.4,0,.2,1);height:78px}.choco-widget-payment-loading{width:30px;height:30px;animation:choco-spin 1s linear infinite;border:3px solid var(--choco-widget-accent-color);border-top:3px solid transparent;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}@keyframes choco-spin{to{transform:rotate(360deg)}}@keyframes choco-fade-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(max-width:768px){.choco-widget-bottom-bar{padding:16px 16px 20px}.choco-widget-sheet-content{max-height:80vh}.choco-widget-sheet-title{font-size:18px}.choco-widget-method-item-label{font-size:17px}}@media(max-width:768px)and (min-height:812px){.choco-widget-bottom-bar,.choco-widget-sheet-content{padding-bottom:calc(20px + env(safe-area-inset-bottom,20px))}}@supports (padding: env(safe-area-inset-bottom)){.choco-widget-bottom-bar{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.choco-widget-sheet-content{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}')),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
+ const Ct = {
3
+ ru: {
4
+ paymentMethod: "Способ оплаты",
5
+ selectMethod: "Выберите метод",
6
+ pay: "Оплатить",
7
+ paymentSuccess: "Оплата прошла успешно!",
8
+ paymentError: "Ошибка оплаты",
9
+ paymentMethods: "Способ оплаты",
10
+ newCard: "Оплата новой картой",
11
+ balance: "Списать баланс",
12
+ bonus: "Списать бонусы",
13
+ bonusText: "Можно оплатить до {amount}%",
14
+ cashback: "Кешбэк",
15
+ willGet: "Получите",
16
+ total: "Итого",
17
+ instead: "вместо",
18
+ addCard: "Добавление карты",
19
+ editCards: "Редактировать карты",
20
+ cardDeleted: "Карта успешно удалена",
21
+ confirmDeleteCard: "Вы действительно хотите удалить карту?",
22
+ cancel: "Отмена",
23
+ delete: "Удалить",
24
+ back: "Назад",
25
+ errorMissingTrackClient: "Укажите trackId и clientId",
26
+ errorNoServerResponseRetry: "Нет ответа от сервера, попробуйте заново",
27
+ errorNoServerResponse: "Нет ответа от сервера",
28
+ errorPaymentMethodNotSelected: "Метод оплаты не выбран",
29
+ errorApplePayUnsupported: "Apple Pay не поддерживается в этом браузере",
30
+ errorApplePayInit: "Ошибка инициализации Apple Pay",
31
+ errorApplePayPayment: "Ошибка оплаты через Apple Pay",
32
+ errorGooglePayUnsupported: "Google Pay не поддерживается в этом браузере",
33
+ errorGooglePaySettingsUnavailable: "Настройки Google Pay недоступны",
34
+ errorGooglePayPayment: "Ошибка оплаты через Google Pay",
35
+ errorActionUrlMissing: "action_url отсутствует в событии order.action_required",
36
+ errorWidgetInit: "Ошибка инициализации виджета",
37
+ errorPaymentProcess: "Ошибка оплаты"
38
+ },
39
+ en: {
40
+ paymentMethod: "Payment method",
41
+ selectMethod: "Select method",
42
+ pay: "Pay",
43
+ paymentSuccess: "Payment successful!",
44
+ paymentError: "Payment error",
45
+ paymentMethods: "Payment method",
46
+ newCard: "Pay with new card",
47
+ balance: "Use balance",
48
+ bonus: "Use bonuses",
49
+ bonusText: "You can pay up to {amount}%",
50
+ cashback: "Cashback",
51
+ willGet: "You will get",
52
+ total: "Total",
53
+ instead: "instead",
54
+ addCard: "Add card",
55
+ editCards: "Edit cards",
56
+ cardDeleted: "Card successfully deleted",
57
+ confirmDeleteCard: "Are you sure you want to delete this card?",
58
+ cancel: "Cancel",
59
+ delete: "Delete",
60
+ back: "Back",
61
+ errorMissingTrackClient: "Provide trackId and clientId",
62
+ errorNoServerResponseRetry: "No response from server, please try again",
63
+ errorNoServerResponse: "No response from server",
64
+ errorPaymentMethodNotSelected: "Payment method is not selected",
65
+ errorApplePayUnsupported: "Apple Pay is not supported in this browser",
66
+ errorApplePayInit: "Apple Pay initialization error",
67
+ errorApplePayPayment: "Apple Pay payment error",
68
+ errorGooglePayUnsupported: "Google Pay is not supported in this browser",
69
+ errorGooglePaySettingsUnavailable: "Google Pay settings are unavailable",
70
+ errorGooglePayPayment: "Google Pay payment error",
71
+ errorActionUrlMissing: "action_url is missing in order.action_required event",
72
+ errorWidgetInit: "Widget initialization error",
73
+ errorPaymentProcess: "Payment error"
74
+ },
75
+ kk: {
76
+ paymentMethod: "Төлем әдісі",
77
+ selectMethod: "Әдісті таңдаңыз",
78
+ pay: "Төлеу",
79
+ paymentSuccess: "Төлем сәтті өтті!",
80
+ paymentError: "Төлем қатесі",
81
+ paymentMethods: "Төлем әдісі",
82
+ newCard: "Жаңа картамен төлеу",
83
+ balance: "Балансты пайдалану",
84
+ bonus: "Бонусдарды пайдалану",
85
+ bonusText: "{amount}%-ге дейін төлеуге болады",
86
+ cashback: "Кэшбэк",
87
+ willGet: "Аласыз",
88
+ total: "Барлығы",
89
+ instead: "орнына",
90
+ addCard: "Картаны қосу",
91
+ editCards: "Карталарды өңдеу",
92
+ cardDeleted: "Карта жойылды",
93
+ confirmDeleteCard: "Картаны жойғыңыз келетініне сенімдісіз бе?",
94
+ cancel: "Болдырмау",
95
+ delete: "Жою",
96
+ back: "Артқа",
97
+ errorMissingTrackClient: "trackId пен clientId көрсетіңіз",
98
+ errorNoServerResponseRetry: "Серверден жауап жоқ, қайтадан көріңіз",
99
+ errorNoServerResponse: "Серверден жауап жоқ",
100
+ errorPaymentMethodNotSelected: "Төлем әдісі таңдалмаған",
101
+ errorApplePayUnsupported: "Бұл браузерде Apple Pay қолдау көрсетілмейді",
102
+ errorApplePayInit: "Apple Pay инициализация қатесі",
103
+ errorApplePayPayment: "Apple Pay арқылы төлем қатесі",
104
+ errorGooglePayUnsupported: "Бұл браузерде Google Pay қолдау көрсетілмейді",
105
+ errorGooglePaySettingsUnavailable: "Google Pay баптаулары қолжетімсіз",
106
+ errorGooglePayPayment: "Google Pay арқылы төлем қатесі",
107
+ errorActionUrlMissing: "order.action_required оқиғасында action_url жоқ",
108
+ errorWidgetInit: "Виджетті инициализациялау қатесі",
109
+ errorPaymentProcess: "Төлем қатесі"
110
+ },
111
+ ka: {
112
+ paymentMethod: "გადახდის მეთოდი",
113
+ selectMethod: "აირჩიეთ მეთოდი",
114
+ pay: "გადახდა",
115
+ paymentSuccess: "გადახდა წარმატებით შესრულდა!",
116
+ paymentError: "გადახდის შეცდომა",
117
+ paymentMethods: "გადახდის მეთოდი",
118
+ newCard: "ახალი ბარათით გადახდა",
119
+ balance: "ბალანსის გამოყენება",
120
+ bonus: "ბონუსების გამოყენება",
121
+ bonusText: "{amount}%-ზე გადახდა შესაძლებელია",
122
+ cashback: "ქეშბექი",
123
+ willGet: "მიიღებთ",
124
+ total: "ჯამი",
125
+ instead: "ნაცვლად",
126
+ addCard: "ბარათის დამატება",
127
+ editCards: "ბარათების რედაქტირება",
128
+ cardDeleted: "ბარათი წაშლილია",
129
+ confirmDeleteCard: "დარწმუნებული ხართ, რომ გსურთ ამ ბარათის წაშლა?",
130
+ cancel: "გაუქმება",
131
+ delete: "წაშლა",
132
+ back: "უკან",
133
+ errorMissingTrackClient: "მიუთითეთ trackId და clientId",
134
+ errorNoServerResponseRetry: "სერვერის პასუხი არ არის, სცადეთ თავიდან",
135
+ errorNoServerResponse: "სერვერის პასუხი არ არის",
136
+ errorPaymentMethodNotSelected: "გადახდის მეთოდი არ არის არჩეული",
137
+ errorApplePayUnsupported: "ამ ბრაუზერში Apple Pay არ არის მხარდაჭერილი",
138
+ errorApplePayInit: "Apple Pay-ის ინიციალიზაციის შეცდომა",
139
+ errorApplePayPayment: "Apple Pay-ით გადახდის შეცდომა",
140
+ errorGooglePayUnsupported: "ამ ბრაუზერში Google Pay არ არის მხარდაჭერილი",
141
+ errorGooglePaySettingsUnavailable: "Google Pay-ის პარამეტრები მიუწვდომელია",
142
+ errorGooglePayPayment: "Google Pay-ით გადახდის შეცდომა",
143
+ errorActionUrlMissing: "order.action_required მოვლენაში action_url არ არის",
144
+ errorWidgetInit: "ვიჯეტის ინიციალიზაციის შეცდომა",
145
+ errorPaymentProcess: "გადახდის შეცდომა"
146
+ }
147
+ }, yt = {
148
+ KZT: "₸",
149
+ GEL: "₾"
150
+ };
151
+ function mt(e) {
152
+ return e === "production" ? "https://api-proxy.choco.kz" : "https://api-proxy.chocodev.kz";
153
+ }
154
+ let le;
155
+ const bt = new Uint8Array(16);
156
+ function Et() {
157
+ if (!le && (le = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !le))
158
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
159
+ return le(bt);
160
+ }
161
+ const H = [];
162
+ for (let e = 0; e < 256; ++e)
163
+ H.push((e + 256).toString(16).slice(1));
164
+ function vt(e, n = 0) {
165
+ return H[e[n + 0]] + H[e[n + 1]] + H[e[n + 2]] + H[e[n + 3]] + "-" + H[e[n + 4]] + H[e[n + 5]] + "-" + H[e[n + 6]] + H[e[n + 7]] + "-" + H[e[n + 8]] + H[e[n + 9]] + "-" + H[e[n + 10]] + H[e[n + 11]] + H[e[n + 12]] + H[e[n + 13]] + H[e[n + 14]] + H[e[n + 15]];
166
+ }
167
+ const Bt = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), je = {
168
+ randomUUID: Bt
169
+ };
170
+ function ve(e, n, o) {
171
+ if (je.randomUUID && !e)
172
+ return je.randomUUID();
173
+ e = e || {};
174
+ const s = e.random || (e.rng || Et)();
175
+ return s[6] = s[6] & 15 | 64, s[8] = s[8] & 63 | 128, vt(s);
176
+ }
177
+ const ze = "choco_device_id";
178
+ function G(e, n = "ru", o = "KZT") {
179
+ const s = Number(e), i = n === "ru" ? "ru-RU" : "en-US";
180
+ return `${s.toLocaleString(i)} ${yt[o]}`;
181
+ }
182
+ function tt() {
183
+ let e = localStorage.getItem(ze);
184
+ return e || (e = ve(), localStorage.setItem(ze, e)), e;
185
+ }
186
+ function pe() {
187
+ if (typeof window > "u") return !1;
188
+ const e = window.safari !== void 0, n = window.navigator.userAgent || "", o = !!n.match(/iPad/i) || !!n.match(/iPhone/i), s = !!n.match(/WebKit/i), i = o && s && !n.match(/CriOS/i);
189
+ return e || i;
190
+ }
191
+ function nt() {
192
+ if (typeof navigator > "u") return 0;
193
+ const e = navigator.userAgent || "", n = e.indexOf("OS");
194
+ return (e.indexOf("iPhone") > -1 || e.indexOf("iPad") > -1) && n > -1 ? Number(e.substring(n + 3, n + 6).replace("_", ".")) : 0;
195
+ }
196
+ function Ne() {
197
+ var u;
198
+ if (typeof navigator > "u") return "unknown";
199
+ const e = (navigator.userAgent || navigator.vendor || "").toLowerCase(), n = (navigator.platform || "").toLowerCase(), o = (((u = navigator.userAgentData) == null ? void 0 : u.platform) || "").toLowerCase(), s = `${e} ${n} ${o}`;
200
+ return /iphone|ipad|ipod/.test(s) || s.includes("macintosh") && typeof document < "u" && "ontouchend" in document ? "ios" : s.includes("android") ? "android" : s.includes("windows") ? "windows" : s.includes("mac") ? "macos" : "other";
201
+ }
202
+ function Ce() {
203
+ if (typeof navigator > "u") return !1;
204
+ const e = navigator.userAgentData;
205
+ return e != null && e.platform && ["iOS", "iPadOS"].includes(e.platform) || Ne() === "ios" ? !0 : (navigator.userAgent || "").includes("Macintosh") && typeof document < "u" && "ontouchend" in document;
206
+ }
207
+ function ye(e) {
208
+ if (typeof sessionStorage > "u") return !1;
209
+ const n = e === "apple_pay" ? "disableApplePay" : e === "google_pay" ? "disableGooglePay" : null;
210
+ return n ? sessionStorage.getItem(n) === "true" : !1;
211
+ }
212
+ function It(e) {
213
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
214
+ }
215
+ var he = { exports: {} }, Qt = he.exports, Ke;
216
+ function St() {
217
+ return Ke || (Ke = 1, (function(e, n) {
218
+ (function(s, i) {
219
+ e.exports = i();
220
+ })(Qt, function() {
221
+ return (
222
+ /******/
223
+ (function() {
224
+ var o = {
225
+ /***/
226
+ 382: (
227
+ /***/
228
+ (function(c, d, g) {
229
+ Object.defineProperty(d, "__esModule", {
230
+ value: !0
231
+ }), d.Centrifuge = void 0;
232
+ var C = Q(g(187)), S = Q(g(471)), T = g(147), v = g(853);
233
+ function Q(f) {
234
+ return f && f.__esModule ? f : { default: f };
235
+ }
236
+ function _(f) {
237
+ "@babel/helpers - typeof";
238
+ return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? _ = function(p) {
239
+ return typeof p;
240
+ } : _ = function(p) {
241
+ return p && typeof Symbol == "function" && p.constructor === Symbol && p !== Symbol.prototype ? "symbol" : typeof p;
242
+ }, _(f);
243
+ }
244
+ function m(f, h) {
245
+ if (!(f instanceof h))
246
+ throw new TypeError("Cannot call a class as a function");
247
+ }
248
+ function P(f, h) {
249
+ for (var p = 0; p < h.length; p++) {
250
+ var A = h[p];
251
+ A.enumerable = A.enumerable || !1, A.configurable = !0, "value" in A && (A.writable = !0), Object.defineProperty(f, A.key, A);
252
+ }
253
+ }
254
+ function k(f, h, p) {
255
+ return h && P(f.prototype, h), f;
256
+ }
257
+ function w(f, h) {
258
+ if (typeof h != "function" && h !== null)
259
+ throw new TypeError("Super expression must either be null or a function");
260
+ f.prototype = Object.create(h && h.prototype, { constructor: { value: f, writable: !0, configurable: !0 } }), h && L(f, h);
261
+ }
262
+ function L(f, h) {
263
+ return L = Object.setPrototypeOf || function(A, t) {
264
+ return A.__proto__ = t, A;
265
+ }, L(f, h);
266
+ }
267
+ function O(f) {
268
+ var h = J();
269
+ return function() {
270
+ var A = x(f), t;
271
+ if (h) {
272
+ var r = x(this).constructor;
273
+ t = Reflect.construct(A, arguments, r);
274
+ } else
275
+ t = A.apply(this, arguments);
276
+ return F(this, t);
277
+ };
278
+ }
279
+ function F(f, h) {
280
+ if (h && (_(h) === "object" || typeof h == "function"))
281
+ return h;
282
+ if (h !== void 0)
283
+ throw new TypeError("Derived constructors may only return object or undefined");
284
+ return M(f);
285
+ }
286
+ function M(f) {
287
+ if (f === void 0)
288
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
289
+ return f;
290
+ }
291
+ function J() {
292
+ if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham) return !1;
293
+ if (typeof Proxy == "function") return !0;
294
+ try {
295
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
296
+ })), !0;
297
+ } catch {
298
+ return !1;
299
+ }
300
+ }
301
+ function x(f) {
302
+ return x = Object.setPrototypeOf ? Object.getPrototypeOf : function(p) {
303
+ return p.__proto__ || Object.getPrototypeOf(p);
304
+ }, x(f);
305
+ }
306
+ var q = "timeout", N = "connection closed", b = /* @__PURE__ */ (function(f) {
307
+ w(p, f);
308
+ var h = O(p);
309
+ function p(A, t) {
310
+ var r;
311
+ return m(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
+ protocol: "",
313
+ debug: !1,
314
+ name: "js",
315
+ version: "",
316
+ websocket: null,
317
+ sockjs: null,
318
+ xmlhttprequest: null,
319
+ minRetry: 1e3,
320
+ maxRetry: 2e4,
321
+ timeout: 5e3,
322
+ ping: !0,
323
+ pingInterval: 25e3,
324
+ pongWaitTimeout: 5e3,
325
+ privateChannelPrefix: "$",
326
+ onTransportClose: null,
327
+ sockjsServer: null,
328
+ sockjsTimeout: null,
329
+ sockjsTransports: ["websocket", "xdr-streaming", "xhr-streaming", "eventsource", "iframe-eventsource", "iframe-htmlfile", "xdr-polling", "xhr-polling", "iframe-xhr-polling", "jsonp-polling"],
330
+ refreshEndpoint: "/centrifuge/refresh",
331
+ refreshHeaders: {},
332
+ refreshParams: {},
333
+ refreshData: {},
334
+ refreshAttempts: null,
335
+ refreshInterval: 1e3,
336
+ onRefreshFailed: null,
337
+ onRefresh: null,
338
+ subscribeEndpoint: "/centrifuge/subscribe",
339
+ subscribeHeaders: {},
340
+ subscribeParams: {},
341
+ subRefreshInterval: 1e3,
342
+ onPrivateSubscribe: null,
343
+ disableWithCredentials: !1
344
+ }, r._configure(t), r;
345
+ }
346
+ return k(p, [{
347
+ key: "setToken",
348
+ value: function(t) {
349
+ this._token = t;
350
+ }
351
+ }, {
352
+ key: "setConnectData",
353
+ value: function(t) {
354
+ this._connectData = t;
355
+ }
356
+ }, {
357
+ key: "setRefreshHeaders",
358
+ value: function(t) {
359
+ this._config.refreshHeaders = t;
360
+ }
361
+ }, {
362
+ key: "setRefreshParams",
363
+ value: function(t) {
364
+ this._config.refreshParams = t;
365
+ }
366
+ }, {
367
+ key: "setRefreshData",
368
+ value: function(t) {
369
+ this._config.refreshData = t;
370
+ }
371
+ }, {
372
+ key: "setSubscribeHeaders",
373
+ value: function(t) {
374
+ this._config.subscribeHeaders = t;
375
+ }
376
+ }, {
377
+ key: "setSubscribeParams",
378
+ value: function(t) {
379
+ this._config.subscribeParams = t;
380
+ }
381
+ }, {
382
+ key: "_ajax",
383
+ value: function(t, r, a, l, y) {
384
+ var E = this, I = "";
385
+ this._debug("sending AJAX request to", t, "with data", JSON.stringify(l));
386
+ var B;
387
+ this._xmlhttprequest !== null ? B = new this._xmlhttprequest() : B = g.g.XMLHttpRequest ? new g.g.XMLHttpRequest() : new g.g.ActiveXObject("Microsoft.XMLHTTP");
388
+ for (var R in r)
389
+ r.hasOwnProperty(R) && (I.length > 0 && (I += "&"), I += encodeURIComponent(R) + "=" + encodeURIComponent(r[R]));
390
+ I.length > 0 && (I = "?" + I), B.open("POST", t + I, !0), "withCredentials" in B && (B.withCredentials = !this._config.disableWithCredentials), B.setRequestHeader("X-Requested-With", "XMLHttpRequest"), B.setRequestHeader("Content-Type", "application/json");
391
+ for (var X in a)
392
+ a.hasOwnProperty(X) && B.setRequestHeader(X, a[X]);
393
+ return B.onreadystatechange = function() {
394
+ if (B.readyState === 4)
395
+ if (B.status === 200) {
396
+ var U, D = !1;
397
+ try {
398
+ U = JSON.parse(B.responseText), D = !0;
399
+ } catch {
400
+ y({
401
+ error: "Invalid JSON. Data was: " + B.responseText,
402
+ status: 200,
403
+ data: null
404
+ });
405
+ }
406
+ D && y({
407
+ data: U,
408
+ status: 200
409
+ });
410
+ } else
411
+ E._log("wrong status code in AJAX response", B.status), y({
412
+ status: B.status,
413
+ data: null
414
+ });
415
+ }, setTimeout(function() {
416
+ return B.send(JSON.stringify(l));
417
+ }, 20), B;
418
+ }
419
+ }, {
420
+ key: "_log",
421
+ value: function() {
422
+ (0, v.log)("info", arguments);
423
+ }
424
+ }, {
425
+ key: "_debug",
426
+ value: function() {
427
+ this._config.debug === !0 && (0, v.log)("debug", arguments);
428
+ }
429
+ }, {
430
+ key: "_websocketSupported",
431
+ value: function() {
432
+ return this._config.websocket !== null ? !0 : !(typeof WebSocket != "function" && (typeof WebSocket > "u" ? "undefined" : _(WebSocket)) !== "object");
433
+ }
434
+ }, {
435
+ key: "_setFormat",
436
+ value: function(t) {
437
+ if (!this._formatOverride(t)) {
438
+ if (t === "protobuf")
439
+ throw new Error("not implemented by JSON only Centrifuge client – use client with Protobuf");
440
+ this._binary = !1, this._methodType = T.JsonMethodType, this._pushType = T.JsonPushType, this._encoder = new T.JsonEncoder(), this._decoder = new T.JsonDecoder();
441
+ }
442
+ }
443
+ }, {
444
+ key: "_formatOverride",
445
+ value: function(t) {
446
+ return !1;
447
+ }
448
+ }, {
449
+ key: "_configure",
450
+ value: function(t) {
451
+ if (!("Promise" in g.g))
452
+ throw new Error("Promise polyfill required");
453
+ if ((0, v.extend)(this._config, t || {}), this._debug("centrifuge config", this._config), !this._url)
454
+ throw new Error("url required");
455
+ var r = (0, v.startsWith)(this._url, "ws") && this._url.indexOf("format=protobuf") > -1;
456
+ if (r || this._config.protocol === "protobuf")
457
+ this._setFormat("protobuf"), this._protocol = "protobuf";
458
+ else {
459
+ if (this._config.protocol !== "" && this._config.protocol !== "json")
460
+ throw new Error("unsupported protocol " + this._config.protocol);
461
+ this._setFormat("json");
462
+ }
463
+ if ((0, v.startsWith)(this._url, "http"))
464
+ if (this._debug("client will try to connect to SockJS endpoint"), this._config.sockjs !== null)
465
+ this._debug("SockJS explicitly provided in options"), this._sockjs = this._config.sockjs;
466
+ else {
467
+ if (typeof g.g.SockJS > "u")
468
+ throw new Error("SockJS not found, use ws:// in url or include SockJS");
469
+ this._debug("use globally defined SockJS"), this._sockjs = g.g.SockJS;
470
+ }
471
+ else
472
+ this._debug("client will connect to websocket endpoint");
473
+ this._xmlhttprequest = this._config.xmlhttprequest;
474
+ }
475
+ }, {
476
+ key: "_setStatus",
477
+ value: function(t) {
478
+ this._status !== t && (this._debug("Status", this._status, "->", t), this._status = t);
479
+ }
480
+ }, {
481
+ key: "_isDisconnected",
482
+ value: function() {
483
+ return this._status === "disconnected";
484
+ }
485
+ }, {
486
+ key: "_isConnecting",
487
+ value: function() {
488
+ return this._status === "connecting";
489
+ }
490
+ }, {
491
+ key: "_isConnected",
492
+ value: function() {
493
+ return this._status === "connected";
494
+ }
495
+ }, {
496
+ key: "_nextMessageId",
497
+ value: function() {
498
+ return ++this._messageId;
499
+ }
500
+ }, {
501
+ key: "_resetRetry",
502
+ value: function() {
503
+ this._debug("reset retries count to 0"), this._retries = 0;
504
+ }
505
+ }, {
506
+ key: "_getRetryInterval",
507
+ value: function() {
508
+ var t = (0, v.backoff)(this._retries, this._config.minRetry, this._config.maxRetry);
509
+ return this._retries += 1, t;
510
+ }
511
+ }, {
512
+ key: "_abortInflightXHRs",
513
+ value: function() {
514
+ for (var t in this._xhrs) {
515
+ try {
516
+ this._xhrs[t].abort();
517
+ } catch (r) {
518
+ this._debug("error aborting xhr", r);
519
+ }
520
+ delete this._xhrs[t];
521
+ }
522
+ }
523
+ }, {
524
+ key: "_clearConnectedState",
525
+ value: function(t) {
526
+ this._clientID = null, this._stopPing();
527
+ for (var r in this._callbacks)
528
+ if (this._callbacks.hasOwnProperty(r)) {
529
+ var a = this._callbacks[r];
530
+ clearTimeout(a.timeout);
531
+ var l = a.errback;
532
+ if (!l)
533
+ continue;
534
+ l({
535
+ error: this._createErrorObject("disconnected")
536
+ });
537
+ }
538
+ this._callbacks = {};
539
+ for (var y in this._subs)
540
+ if (this._subs.hasOwnProperty(y)) {
541
+ var E = this._subs[y];
542
+ t ? (E._isSuccess() && (E._triggerUnsubscribe(), E._recover = !0), E._shouldResubscribe() && E._setSubscribing()) : E._setUnsubscribed();
543
+ }
544
+ this._abortInflightXHRs(), this._refreshTimeout !== null && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null);
545
+ for (var I in this._subRefreshTimeouts)
546
+ this._subRefreshTimeouts.hasOwnProperty(I) && this._subRefreshTimeouts[I] && this._clearSubRefreshTimeout(I);
547
+ this._subRefreshTimeouts = {}, this._reconnect || (this._subs = {});
548
+ }
549
+ }, {
550
+ key: "_isTransportOpen",
551
+ value: function() {
552
+ return this._isSockjs ? this._transport && this._transport.transport && this._transport.transport.readyState === this._transport.transport.OPEN : this._transport && this._transport.readyState === this._transport.OPEN;
553
+ }
554
+ }, {
555
+ key: "_transportSend",
556
+ value: function(t) {
557
+ if (!t.length)
558
+ return !0;
559
+ if (!this._isTransportOpen()) {
560
+ for (var r in t) {
561
+ var a = r.id;
562
+ if (a in this._callbacks) {
563
+ var l = this._callbacks[a];
564
+ clearTimeout(this._callbacks[a].timeout), delete this._callbacks[a];
565
+ var y = l.errback;
566
+ y({
567
+ error: this._createErrorObject(N, 0)
568
+ });
569
+ }
570
+ }
571
+ return !1;
572
+ }
573
+ return this._transport.send(this._encoder.encodeCommands(t)), !0;
574
+ }
575
+ }, {
576
+ key: "_getSubProtocol",
577
+ value: function() {
578
+ return this._protocol ? "centrifuge-" + this._protocol : "";
579
+ }
580
+ }, {
581
+ key: "_setupTransport",
582
+ value: function() {
583
+ var t = this;
584
+ if (this._isSockjs = !1, this._sockjs !== null) {
585
+ var r = {
586
+ transports: this._config.sockjsTransports
587
+ };
588
+ this._config.sockjsServer !== null && (r.server = this._config.sockjsServer), this._config.sockjsTimeout !== null && (r.timeout = this._config.sockjsTimeout), this._isSockjs = !0, this._transport = new this._sockjs(this._url, null, r);
589
+ } else {
590
+ if (!this._websocketSupported())
591
+ throw this._debug("No Websocket support and no SockJS configured, can not connect"), new Error("No Websocket support and no SockJS configured, can not connect");
592
+ this._config.websocket !== null ? this._websocket = this._config.websocket : this._websocket = WebSocket;
593
+ var a = this._getSubProtocol();
594
+ a !== "" ? this._transport = new this._websocket(this._url, a) : this._transport = new this._websocket(this._url), this._binary === !0 && (this._transport.binaryType = "arraybuffer");
595
+ }
596
+ this._transport.onopen = function() {
597
+ t._transportClosed = !1, t._isSockjs ? (t._transportName = "sockjs-" + t._transport.transport, t._transport.onheartbeat = function() {
598
+ return t._restartPing();
599
+ }) : t._transportName = "websocket";
600
+ var l = {
601
+ // method: this._methodType.CONNECT
602
+ };
603
+ (t._token || t._connectData || t._config.name || t._config.version) && (l.params = {}), t._token && (l.params.token = t._token), t._connectData && (l.params.data = t._connectData), t._config.name && (l.params.name = t._config.name), t._config.version && (l.params.version = t._config.version);
604
+ var y = {}, E = !1;
605
+ for (var I in t._serverSubs)
606
+ if (t._serverSubs.hasOwnProperty(I) && t._serverSubs[I].recoverable) {
607
+ E = !0;
608
+ var B = {
609
+ recover: !0
610
+ };
611
+ t._serverSubs[I].seq || t._serverSubs[I].gen ? (t._serverSubs[I].seq && (B.seq = t._serverSubs[I].seq), t._serverSubs[I].gen && (B.gen = t._serverSubs[I].gen)) : t._serverSubs[I].offset && (B.offset = t._serverSubs[I].offset), t._serverSubs[I].epoch && (B.epoch = t._serverSubs[I].epoch), y[I] = B;
612
+ }
613
+ E && (l.params || (l.params = {}), l.params.subs = y), t._latencyStart = /* @__PURE__ */ new Date(), t._call(l).then(function(R) {
614
+ t._connectResponse(t._decoder.decodeCommandResult(t._methodType.CONNECT, R.result), E), R.next && R.next();
615
+ }, function(R) {
616
+ var X = R.error;
617
+ X.code === 109 && (t._refreshRequired = !0), t._disconnect("connect error", !0), R.next && R.next();
618
+ });
619
+ }, this._transport.onerror = function(l) {
620
+ t._debug("transport level error", l);
621
+ }, this._transport.onclose = function(l) {
622
+ t._transportClosed = !0;
623
+ var y = N, E = !0;
624
+ if (l && "reason" in l && l.reason)
625
+ try {
626
+ var I = JSON.parse(l.reason);
627
+ t._debug("reason is an advice object", I), y = I.reason, E = I.reconnect;
628
+ } catch {
629
+ y = l.reason, t._debug("reason is a plain string", y);
630
+ }
631
+ if (t._config.onTransportClose !== null && t._config.onTransportClose({
632
+ event: l,
633
+ reason: y,
634
+ reconnect: E
635
+ }), t._disconnect(y, E), t._reconnect === !0) {
636
+ t._reconnecting = !0;
637
+ var B = t._getRetryInterval();
638
+ t._debug("reconnect after " + B + " milliseconds"), setTimeout(function() {
639
+ t._reconnect === !0 && (t._refreshRequired ? t._refresh() : t._connect());
640
+ }, B);
641
+ }
642
+ }, this._transport.onmessage = function(l) {
643
+ t._dataReceived(l.data);
644
+ };
645
+ }
646
+ }, {
647
+ key: "rpc",
648
+ value: function(t) {
649
+ return this._rpc("", t);
650
+ }
651
+ }, {
652
+ key: "namedRPC",
653
+ value: function(t, r) {
654
+ return this._rpc(t, r);
655
+ }
656
+ }, {
657
+ key: "_rpc",
658
+ value: function(t, r) {
659
+ var a = {
660
+ data: r
661
+ };
662
+ t !== "" && (a.method = t);
663
+ var l = {
664
+ method: this._methodType.RPC,
665
+ params: a
666
+ };
667
+ return this._methodCall(l, function(y) {
668
+ return y;
669
+ });
670
+ }
671
+ }, {
672
+ key: "send",
673
+ value: function(t) {
674
+ var r = {
675
+ method: this._methodType.SEND,
676
+ params: {
677
+ data: t
678
+ }
679
+ };
680
+ if (!this.isConnected())
681
+ return Promise.reject(this._createErrorObject(N, 0));
682
+ var a = this._transportSend([r]);
683
+ return a ? Promise.resolve({}) : Promise.reject(this._createErrorObject(N, 0));
684
+ }
685
+ }, {
686
+ key: "_getHistoryParams",
687
+ value: function(t, r) {
688
+ var a = {
689
+ channel: t
690
+ };
691
+ return r !== void 0 && (r.since && (a.since = {
692
+ offset: r.since.offset
693
+ }, r.since.epoch && (a.since.epoch = r.since.epoch)), r.limit !== void 0 && (a.limit = r.limit), r.reverse === !0 && (a.reverse = !0)), a;
694
+ }
695
+ }, {
696
+ key: "_methodCall",
697
+ value: function(t, r) {
698
+ var a = this;
699
+ return this.isConnected() ? new Promise(function(l, y) {
700
+ a._call(t).then(function(E) {
701
+ l(r(a._decoder.decodeCommandResult(t.method, E.result))), E.next && E.next();
702
+ }, function(E) {
703
+ y(E.error), E.next && E.next();
704
+ });
705
+ }) : Promise.reject(this._createErrorObject(N, 0));
706
+ }
707
+ }, {
708
+ key: "publish",
709
+ value: function(t, r) {
710
+ var a = {
711
+ method: this._methodType.PUBLISH,
712
+ params: {
713
+ channel: t,
714
+ data: r
715
+ }
716
+ };
717
+ return this._methodCall(a, function() {
718
+ return {};
719
+ });
720
+ }
721
+ }, {
722
+ key: "history",
723
+ value: function(t, r) {
724
+ var a = this._getHistoryParams(t, r), l = {
725
+ method: this._methodType.HISTORY,
726
+ params: a
727
+ };
728
+ return this._methodCall(l, function(y) {
729
+ return {
730
+ publications: y.publications,
731
+ epoch: y.epoch || "",
732
+ offset: y.offset || 0
733
+ };
734
+ });
735
+ }
736
+ }, {
737
+ key: "presence",
738
+ value: function(t) {
739
+ var r = {
740
+ method: this._methodType.PRESENCE,
741
+ params: {
742
+ channel: t
743
+ }
744
+ };
745
+ return this._methodCall(r, function(a) {
746
+ return {
747
+ presence: a.presence
748
+ };
749
+ });
750
+ }
751
+ }, {
752
+ key: "presenceStats",
753
+ value: function(t) {
754
+ var r = {
755
+ method: this._methodType.PRESENCE_STATS,
756
+ params: {
757
+ channel: t
758
+ }
759
+ };
760
+ return this._methodCall(r, function(a) {
761
+ return {
762
+ num_users: a.num_users,
763
+ num_clients: a.num_clients
764
+ };
765
+ });
766
+ }
767
+ }, {
768
+ key: "_dataReceived",
769
+ value: function(t) {
770
+ var r = this, a = this._decoder.decodeReplies(t);
771
+ this._dispatchPromise = this._dispatchPromise.then(function() {
772
+ var l;
773
+ r._dispatchPromise = new Promise(function(y) {
774
+ l = y;
775
+ }), r._dispatchSynchronized(a, l);
776
+ }), this._restartPing();
777
+ }
778
+ }, {
779
+ key: "_dispatchSynchronized",
780
+ value: function(t, r) {
781
+ var a = this, l = Promise.resolve(), y = function(B) {
782
+ t.hasOwnProperty(B) && (l = l.then(function() {
783
+ return a._dispatchReply(t[B]);
784
+ }));
785
+ };
786
+ for (var E in t)
787
+ y(E);
788
+ l = l.then(function() {
789
+ r();
790
+ });
791
+ }
792
+ }, {
793
+ key: "_dispatchReply",
794
+ value: function(t) {
795
+ var r, a = new Promise(function(y) {
796
+ r = y;
797
+ });
798
+ if (t == null)
799
+ return this._debug("dispatch: got undefined or null reply"), r(), a;
800
+ var l = t.id;
801
+ return l && l > 0 ? this._handleReply(t, r) : this._handlePush(t.result, r), a;
802
+ }
803
+ }, {
804
+ key: "_call",
805
+ value: function(t) {
806
+ var r = this;
807
+ return new Promise(function(a, l) {
808
+ var y = r._addMessage(t);
809
+ r._registerCall(y, a, l);
810
+ });
811
+ }
812
+ }, {
813
+ key: "_connect",
814
+ value: function() {
815
+ if (this.isConnected()) {
816
+ this._debug("connect called when already connected");
817
+ return;
818
+ }
819
+ this._status !== "connecting" && (this._debug("start connecting"), this._setStatus("connecting"), this._clientID = null, this._reconnect = !0, this._setupTransport());
820
+ }
821
+ }, {
822
+ key: "_disconnect",
823
+ value: function(t, r) {
824
+ var a = r || !1;
825
+ if (a === !1 && (this._reconnect = !1), this._isDisconnected()) {
826
+ a || this._clearConnectedState(a);
827
+ return;
828
+ }
829
+ if (this._clearConnectedState(a), this._debug("disconnected:", t, r), this._setStatus("disconnected"), this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null), this._reconnecting === !1) {
830
+ for (var l in this._serverSubs)
831
+ this._serverSubs.hasOwnProperty(l) && this.emit("unsubscribe", {
832
+ channel: l
833
+ });
834
+ this.emit("disconnect", {
835
+ reason: t,
836
+ reconnect: a
837
+ });
838
+ }
839
+ a === !1 && (this._subs = {}, this._serverSubs = {}), this._transportClosed || this._transport.close();
840
+ }
841
+ }, {
842
+ key: "_refreshFailed",
843
+ value: function() {
844
+ this._numRefreshFailed = 0, this._isDisconnected() || this._disconnect("refresh failed", !1), this._config.onRefreshFailed !== null && this._config.onRefreshFailed();
845
+ }
846
+ }, {
847
+ key: "_refresh",
848
+ value: function() {
849
+ var t = this;
850
+ if (this._debug("refresh token"), this._config.refreshAttempts === 0) {
851
+ this._debug("refresh attempts set to 0, do not send refresh request at all"), this._refreshFailed();
852
+ return;
853
+ }
854
+ this._refreshTimeout !== null && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null);
855
+ var r = this._clientID, a = this._newXHRID(), l = function(B) {
856
+ if (a in t._xhrs && delete t._xhrs[a], t._clientID === r) {
857
+ if (B.error || B.status !== 200) {
858
+ if (B.error ? t._debug("error refreshing connection token", B.error) : t._debug("error refreshing connection token: wrong status code", B.status), t._numRefreshFailed++, t._refreshTimeout !== null && (clearTimeout(t._refreshTimeout), t._refreshTimeout = null), t._config.refreshAttempts !== null && t._numRefreshFailed >= t._config.refreshAttempts) {
859
+ t._refreshFailed();
860
+ return;
861
+ }
862
+ var R = Math.round(Math.random() * 1e3 * Math.max(t._numRefreshFailed, 20)), X = t._config.refreshInterval + R;
863
+ t._refreshTimeout = setTimeout(function() {
864
+ return t._refresh();
865
+ }, X);
866
+ return;
867
+ }
868
+ if (t._numRefreshFailed = 0, t._token = B.data.token, !t._token) {
869
+ t._refreshFailed();
870
+ return;
871
+ }
872
+ if (t._isDisconnected() && t._reconnect)
873
+ t._debug("token refreshed, connect from scratch"), t._connect();
874
+ else {
875
+ t._debug("send refreshed token");
876
+ var U = {
877
+ method: t._methodType.REFRESH,
878
+ params: {
879
+ token: t._token
880
+ }
881
+ };
882
+ t._call(U).then(function(D) {
883
+ t._refreshResponse(t._decoder.decodeCommandResult(t._methodType.REFRESH, D.result)), D.next && D.next();
884
+ }, function(D) {
885
+ t._refreshError(D.error), D.next && D.next();
886
+ });
887
+ }
888
+ }
889
+ };
890
+ if (this._config.onRefresh !== null) {
891
+ var y = {};
892
+ this._config.onRefresh(y, l);
893
+ } else {
894
+ var E = this._ajax(this._config.refreshEndpoint, this._config.refreshParams, this._config.refreshHeaders, this._config.refreshData, l);
895
+ this._xhrs[a] = E;
896
+ }
897
+ }
898
+ }, {
899
+ key: "_refreshError",
900
+ value: function(t) {
901
+ var r = this;
902
+ this._debug("refresh error", t), this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null);
903
+ var a = this._config.refreshInterval + Math.round(Math.random() * 1e3);
904
+ this._refreshTimeout = setTimeout(function() {
905
+ return r._refresh();
906
+ }, a);
907
+ }
908
+ }, {
909
+ key: "_refreshResponse",
910
+ value: function(t) {
911
+ var r = this;
912
+ this._refreshTimeout && (clearTimeout(this._refreshTimeout), this._refreshTimeout = null), t.expires && (this._clientID = t.client, this._refreshTimeout = setTimeout(function() {
913
+ return r._refresh();
914
+ }, this._getTTLMilliseconds(t.ttl)));
915
+ }
916
+ }, {
917
+ key: "_newXHRID",
918
+ value: function() {
919
+ return this._xhrID++, this._xhrID;
920
+ }
921
+ }, {
922
+ key: "_subRefresh",
923
+ value: function(t) {
924
+ var r = this;
925
+ if (this._debug("refresh subscription token for channel", t), this._subRefreshTimeouts[t] !== void 0)
926
+ this._clearSubRefreshTimeout(t);
927
+ else
928
+ return;
929
+ var a = this._clientID, l = this._newXHRID(), y = function(R) {
930
+ if (l in r._xhrs && delete r._xhrs[l], !(R.error || R.status !== 200 || r._clientID !== a)) {
931
+ var X = {};
932
+ if (R.data.channels)
933
+ for (var U in R.data.channels) {
934
+ var D = R.data.channels[U];
935
+ D.channel && (X[D.channel] = D.token);
936
+ }
937
+ var ne = X[t];
938
+ if (ne) {
939
+ var Se = {
940
+ method: r._methodType.SUB_REFRESH,
941
+ params: {
942
+ channel: t,
943
+ token: ne
944
+ }
945
+ }, ue = r._getSub(t);
946
+ ue !== null && r._call(Se).then(function(V) {
947
+ r._subRefreshResponse(t, r._decoder.decodeCommandResult(r._methodType.SUB_REFRESH, V.result)), V.next && V.next();
948
+ }, function(V) {
949
+ r._subRefreshError(t, V.error), V.next && V.next();
950
+ });
951
+ }
952
+ }
953
+ }, E = {
954
+ client: this._clientID,
955
+ channels: [t]
956
+ };
957
+ if (this._config.onPrivateSubscribe !== null)
958
+ this._config.onPrivateSubscribe({
959
+ data: E
960
+ }, y);
961
+ else {
962
+ var I = this._ajax(this._config.subscribeEndpoint, this._config.subscribeParams, this._config.subscribeHeaders, E, y);
963
+ this._xhrs[l] = I;
964
+ }
965
+ }
966
+ }, {
967
+ key: "_clearSubRefreshTimeout",
968
+ value: function(t) {
969
+ this._subRefreshTimeouts[t] !== void 0 && (clearTimeout(this._subRefreshTimeouts[t]), delete this._subRefreshTimeouts[t]);
970
+ }
971
+ }, {
972
+ key: "_subRefreshError",
973
+ value: function(t, r) {
974
+ var a = this;
975
+ this._debug("subscription refresh error", t, r), this._clearSubRefreshTimeout(t);
976
+ var l = this._getSub(t);
977
+ if (l !== null) {
978
+ var y = Math.round(Math.random() * 1e3), E = setTimeout(function() {
979
+ return a._subRefresh(t);
980
+ }, this._config.subRefreshInterval + y);
981
+ this._subRefreshTimeouts[t] = E;
982
+ }
983
+ }
984
+ }, {
985
+ key: "_subRefreshResponse",
986
+ value: function(t, r) {
987
+ var a = this;
988
+ this._debug("subscription refresh success", t), this._clearSubRefreshTimeout(t);
989
+ var l = this._getSub(t);
990
+ if (l !== null && r.expires === !0) {
991
+ var y = setTimeout(function() {
992
+ return a._subRefresh(t);
993
+ }, this._getTTLMilliseconds(r.ttl));
994
+ this._subRefreshTimeouts[t] = y;
995
+ }
996
+ }
997
+ }, {
998
+ key: "_subscribe",
999
+ value: function(t, r) {
1000
+ var a = this;
1001
+ this._debug("subscribing on", t.channel);
1002
+ var l = t.channel;
1003
+ if (l in this._subs || (this._subs[l] = t), !this.isConnected()) {
1004
+ t._setNew();
1005
+ return;
1006
+ }
1007
+ t._setSubscribing(r);
1008
+ var y = {
1009
+ method: this._methodType.SUBSCRIBE,
1010
+ params: {
1011
+ channel: l
1012
+ }
1013
+ };
1014
+ if (t._subscribeData && (y.params.data = t._subscribeData), (0, v.startsWith)(l, this._config.privateChannelPrefix))
1015
+ this._isSubscribeBatching ? this._privateChannels[l] = !0 : (this.startSubscribeBatching(), this._subscribe(t), this.stopSubscribeBatching());
1016
+ else {
1017
+ var E = t._needRecover();
1018
+ if (E === !0) {
1019
+ y.params.recover = !0;
1020
+ var I = this._getLastSeq(l), B = this._getLastGen(l);
1021
+ if (I || B)
1022
+ I && (y.params.seq = I), B && (y.params.gen = B);
1023
+ else {
1024
+ var R = this._getLastOffset(l);
1025
+ R && (y.params.offset = R);
1026
+ }
1027
+ var X = this._getLastEpoch(l);
1028
+ X && (y.params.epoch = X);
1029
+ }
1030
+ this._call(y).then(function(U) {
1031
+ a._subscribeResponse(l, E, a._decoder.decodeCommandResult(a._methodType.SUBSCRIBE, U.result)), U.next && U.next();
1032
+ }, function(U) {
1033
+ a._subscribeError(l, U.error), U.next && U.next();
1034
+ });
1035
+ }
1036
+ }
1037
+ }, {
1038
+ key: "_unsubscribe",
1039
+ value: function(t) {
1040
+ delete this._subs[t.channel], delete this._lastOffset[t.channel], delete this._lastSeq[t.channel], delete this._lastGen[t.channel], this.isConnected() && this._addMessage({
1041
+ method: this._methodType.UNSUBSCRIBE,
1042
+ params: {
1043
+ channel: t.channel
1044
+ }
1045
+ });
1046
+ }
1047
+ }, {
1048
+ key: "_getTTLMilliseconds",
1049
+ value: function(t) {
1050
+ return Math.min(t * 1e3, 2147483647);
1051
+ }
1052
+ }, {
1053
+ key: "getSub",
1054
+ value: function(t) {
1055
+ return this._getSub(t);
1056
+ }
1057
+ }, {
1058
+ key: "_getSub",
1059
+ value: function(t) {
1060
+ var r = this._subs[t];
1061
+ return r || null;
1062
+ }
1063
+ }, {
1064
+ key: "_isServerSub",
1065
+ value: function(t) {
1066
+ return this._serverSubs[t] !== void 0;
1067
+ }
1068
+ }, {
1069
+ key: "_connectResponse",
1070
+ value: function(t, r) {
1071
+ var a = this, l = this._reconnecting;
1072
+ 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 = t.client, this._setStatus("connected"), this._refreshTimeout && clearTimeout(this._refreshTimeout), t.expires && (this._refreshTimeout = setTimeout(function() {
1074
+ return a._refresh();
1075
+ }, this._getTTLMilliseconds(t.ttl))), this.startBatching(), this.startSubscribeBatching();
1076
+ for (var y in this._subs)
1077
+ if (this._subs.hasOwnProperty(y)) {
1078
+ var E = this._subs[y];
1079
+ E._shouldResubscribe() && this._subscribe(E, l);
1080
+ }
1081
+ this.stopSubscribeBatching(), this.stopBatching(), this._startPing();
1082
+ var I = {
1083
+ client: t.client,
1084
+ transport: this._transportName,
1085
+ latency: this._latency
1086
+ };
1087
+ t.data && (I.data = t.data), this.emit("connect", I), t.subs && this._processServerSubs(t.subs);
1088
+ }
1089
+ }
1090
+ }, {
1091
+ key: "_processServerSubs",
1092
+ value: function(t) {
1093
+ for (var r in t)
1094
+ if (t.hasOwnProperty(r)) {
1095
+ var a = t[r], l = this._serverSubs[r] !== void 0, y = {
1096
+ channel: r,
1097
+ isResubscribe: l
1098
+ };
1099
+ y = this._expandSubscribeContext(y, a), this.emit("subscribe", y);
1100
+ }
1101
+ for (var E in t)
1102
+ if (t.hasOwnProperty(E)) {
1103
+ var I = t[E];
1104
+ if (I.recovered) {
1105
+ var B = I.publications;
1106
+ if (B && B.length > 0) {
1107
+ B.length > 1 && (!B[0].offset || B[0].offset > B[1].offset) && (B = B.reverse());
1108
+ for (var R in B)
1109
+ B.hasOwnProperty(R) && this._handlePublication(E, B[R]);
1110
+ }
1111
+ }
1112
+ this._serverSubs[E] = {
1113
+ seq: I.seq,
1114
+ gen: I.gen,
1115
+ offset: I.offset,
1116
+ epoch: I.epoch,
1117
+ recoverable: I.recoverable
1118
+ };
1119
+ }
1120
+ }
1121
+ }, {
1122
+ key: "_stopPing",
1123
+ value: function() {
1124
+ this._pongTimeout !== null && (clearTimeout(this._pongTimeout), this._pongTimeout = null), this._pingTimeout !== null && (clearTimeout(this._pingTimeout), this._pingTimeout = null);
1125
+ }
1126
+ }, {
1127
+ key: "_startPing",
1128
+ value: function() {
1129
+ var t = this;
1130
+ this._config.ping !== !0 || this._config.pingInterval <= 0 || this.isConnected() && (this._pingTimeout = setTimeout(function() {
1131
+ if (!t.isConnected()) {
1132
+ t._stopPing();
1133
+ return;
1134
+ }
1135
+ t.ping(), t._pongTimeout = setTimeout(function() {
1136
+ t._disconnect("no ping", !0);
1137
+ }, t._config.pongWaitTimeout);
1138
+ }, this._config.pingInterval));
1139
+ }
1140
+ }, {
1141
+ key: "_restartPing",
1142
+ value: function() {
1143
+ this._stopPing(), this._startPing();
1144
+ }
1145
+ }, {
1146
+ key: "_subscribeError",
1147
+ value: function(t, r) {
1148
+ var a = this._getSub(t);
1149
+ if (a && a._isSubscribing()) {
1150
+ if (r.code === 0 && r.message === q) {
1151
+ this._disconnect("timeout", !0);
1152
+ return;
1153
+ }
1154
+ a._setSubscribeError(r);
1155
+ }
1156
+ }
1157
+ }, {
1158
+ key: "_expandSubscribeContext",
1159
+ value: function(t, r) {
1160
+ var a = !1;
1161
+ "recovered" in r && (a = r.recovered), t.recovered = a;
1162
+ var l = !1;
1163
+ "positioned" in r && (l = r.positioned);
1164
+ var y = "";
1165
+ "epoch" in r && (y = r.epoch);
1166
+ var E = 0;
1167
+ return "offset" in r && (E = r.offset), l && (t.streamPosition = {
1168
+ offset: E,
1169
+ epoch: y
1170
+ }), r.data && (t.data = r.data), t;
1171
+ }
1172
+ }, {
1173
+ key: "_subscribeResponse",
1174
+ value: function(t, r, a) {
1175
+ var l = this, y = this._getSub(t);
1176
+ if (y && y._isSubscribing()) {
1177
+ y._setSubscribeSuccess(a);
1178
+ var E = a.publications;
1179
+ if (E && E.length > 0) {
1180
+ E.length >= 2 && !E[0].offset && !E[1].offset && (E = E.reverse());
1181
+ for (var I in E)
1182
+ E.hasOwnProperty(I) && this._handlePublication(t, E[I]);
1183
+ }
1184
+ if (a.recoverable && (!r || !a.recovered) && (this._lastSeq[t] = a.seq || 0, this._lastGen[t] = a.gen || 0, this._lastOffset[t] = a.offset || 0), this._lastEpoch[t] = a.epoch || "", a.recoverable && (y._recoverable = !0), a.expires === !0) {
1185
+ var B = setTimeout(function() {
1186
+ return l._subRefresh(t);
1187
+ }, this._getTTLMilliseconds(a.ttl));
1188
+ this._subRefreshTimeouts[t] = B;
1189
+ }
1190
+ }
1191
+ }
1192
+ }, {
1193
+ key: "_handleReply",
1194
+ value: function(t, r) {
1195
+ var a = t.id, l = t.result;
1196
+ if (!(a in this._callbacks)) {
1197
+ r();
1198
+ return;
1199
+ }
1200
+ var y = this._callbacks[a];
1201
+ if (clearTimeout(this._callbacks[a].timeout), delete this._callbacks[a], (0, v.errorExists)(t)) {
1202
+ var I = y.errback;
1203
+ if (!I) {
1204
+ r();
1205
+ return;
1206
+ }
1207
+ var B = t.error;
1208
+ I({
1209
+ error: B,
1210
+ next: r
1211
+ });
1212
+ } else {
1213
+ var E = y.callback;
1214
+ if (!E)
1215
+ return;
1216
+ E({
1217
+ result: l,
1218
+ next: r
1219
+ });
1220
+ }
1221
+ }
1222
+ }, {
1223
+ key: "_handleJoin",
1224
+ value: function(t, r) {
1225
+ var a = {
1226
+ info: r.info
1227
+ }, l = this._getSub(t);
1228
+ if (!l) {
1229
+ this._isServerSub(t) && (a.channel = t, this.emit("join", a));
1230
+ return;
1231
+ }
1232
+ l.emit("join", a);
1233
+ }
1234
+ }, {
1235
+ key: "_handleLeave",
1236
+ value: function(t, r) {
1237
+ var a = {
1238
+ info: r.info
1239
+ }, l = this._getSub(t);
1240
+ if (!l) {
1241
+ this._isServerSub(t) && (a.channel = t, this.emit("leave", a));
1242
+ return;
1243
+ }
1244
+ l.emit("leave", a);
1245
+ }
1246
+ }, {
1247
+ key: "_handleUnsub",
1248
+ value: function(t, r) {
1249
+ var a = {}, l = this._getSub(t);
1250
+ if (!l) {
1251
+ this._isServerSub(t) && (delete this._serverSubs[t], a.channel = t, this.emit("unsubscribe", a));
1252
+ return;
1253
+ }
1254
+ l.unsubscribe(), r.resubscribe === !0 && l.subscribe();
1255
+ }
1256
+ }, {
1257
+ key: "_handleSub",
1258
+ value: function(t, r) {
1259
+ this._serverSubs[t] = {
1260
+ seq: r.seq,
1261
+ gen: r.gen,
1262
+ offset: r.offset,
1263
+ epoch: r.epoch,
1264
+ recoverable: r.recoverable
1265
+ };
1266
+ var a = {
1267
+ channel: t,
1268
+ isResubscribe: !1
1269
+ };
1270
+ a = this._expandSubscribeContext(a, r), this.emit("subscribe", a);
1271
+ }
1272
+ }, {
1273
+ key: "_handlePublication",
1274
+ value: function(t, r) {
1275
+ var a = this._getSub(t), l = {
1276
+ data: r.data,
1277
+ seq: r.seq,
1278
+ gen: r.gen,
1279
+ offset: r.offset
1280
+ };
1281
+ if (r.info && (l.info = r.info), !a) {
1282
+ this._isServerSub(t) && (r.seq !== void 0 && (this._serverSubs[t].seq = r.seq), r.gen !== void 0 && (this._serverSubs[t].gen = r.gen), r.offset !== void 0 && (this._serverSubs[t].offset = r.offset), l.channel = t, this.emit("publish", l));
1283
+ return;
1284
+ }
1285
+ r.seq !== void 0 && (this._lastSeq[t] = r.seq), r.gen !== void 0 && (this._lastGen[t] = r.gen), r.offset !== void 0 && (this._lastOffset[t] = r.offset), a.emit("publish", l);
1286
+ }
1287
+ }, {
1288
+ key: "_handleMessage",
1289
+ value: function(t) {
1290
+ this.emit("message", t.data);
1291
+ }
1292
+ }, {
1293
+ key: "_handlePush",
1294
+ value: function(t, r) {
1295
+ var a = this._decoder.decodePush(t), l = 0;
1296
+ "type" in a && (l = a.type);
1297
+ var y = a.channel;
1298
+ if (l === this._pushType.PUBLICATION) {
1299
+ var E = this._decoder.decodePushData(this._pushType.PUBLICATION, a.data);
1300
+ this._handlePublication(y, E);
1301
+ } else if (l === this._pushType.MESSAGE) {
1302
+ var I = this._decoder.decodePushData(this._pushType.MESSAGE, a.data);
1303
+ this._handleMessage(I);
1304
+ } else if (l === this._pushType.JOIN) {
1305
+ var B = this._decoder.decodePushData(this._pushType.JOIN, a.data);
1306
+ this._handleJoin(y, B);
1307
+ } else if (l === this._pushType.LEAVE) {
1308
+ var R = this._decoder.decodePushData(this._pushType.LEAVE, a.data);
1309
+ this._handleLeave(y, R);
1310
+ } else if (l === this._pushType.UNSUBSCRIBE) {
1311
+ var X = this._decoder.decodePushData(this._pushType.UNSUBSCRIBE, a.data);
1312
+ this._handleUnsub(y, X);
1313
+ } else if (l === this._pushType.SUBSCRIBE) {
1314
+ var U = this._decoder.decodePushData(this._pushType.UNSUBSCRIBE, a.data);
1315
+ this._handleSub(y, U);
1316
+ }
1317
+ r();
1318
+ }
1319
+ }, {
1320
+ key: "_flush",
1321
+ value: function() {
1322
+ var t = this._messages.slice(0);
1323
+ this._messages = [], this._transportSend(t);
1324
+ }
1325
+ }, {
1326
+ key: "_ping",
1327
+ value: function() {
1328
+ var t = this, r = {
1329
+ method: this._methodType.PING
1330
+ };
1331
+ this._call(r).then(function(a) {
1332
+ t._pingResponse(t._decoder.decodeCommandResult(t._methodType.PING, a.result)), a.next && a.next();
1333
+ }, function(a) {
1334
+ t._debug("ping error", a.error), a.next && a.next();
1335
+ });
1336
+ }
1337
+ }, {
1338
+ key: "_pingResponse",
1339
+ value: function(t) {
1340
+ this.isConnected() && (this._stopPing(), this._startPing());
1341
+ }
1342
+ }, {
1343
+ key: "_getLastSeq",
1344
+ value: function(t) {
1345
+ var r = this._lastSeq[t];
1346
+ return r || 0;
1347
+ }
1348
+ }, {
1349
+ key: "_getLastOffset",
1350
+ value: function(t) {
1351
+ var r = this._lastOffset[t];
1352
+ return r || 0;
1353
+ }
1354
+ }, {
1355
+ key: "_getLastGen",
1356
+ value: function(t) {
1357
+ var r = this._lastGen[t];
1358
+ return r || 0;
1359
+ }
1360
+ }, {
1361
+ key: "_getLastEpoch",
1362
+ value: function(t) {
1363
+ var r = this._lastEpoch[t];
1364
+ return r || "";
1365
+ }
1366
+ }, {
1367
+ key: "_createErrorObject",
1368
+ value: function(t, r) {
1369
+ var a = {
1370
+ message: t,
1371
+ code: r || 0
1372
+ };
1373
+ return a;
1374
+ }
1375
+ }, {
1376
+ key: "_registerCall",
1377
+ value: function(t, r, a) {
1378
+ var l = this;
1379
+ this._callbacks[t] = {
1380
+ callback: r,
1381
+ errback: a,
1382
+ timeout: null
1383
+ }, this._callbacks[t].timeout = setTimeout(function() {
1384
+ delete l._callbacks[t], (0, v.isFunction)(a) && a({
1385
+ error: l._createErrorObject(q)
1386
+ });
1387
+ }, this._config.timeout);
1388
+ }
1389
+ }, {
1390
+ key: "_addMessage",
1391
+ value: function(t) {
1392
+ var r = this._nextMessageId();
1393
+ return t.id = r, this._isBatching === !0 ? this._messages.push(t) : this._transportSend([t]), r;
1394
+ }
1395
+ }, {
1396
+ key: "isConnected",
1397
+ value: function() {
1398
+ return this._isConnected();
1399
+ }
1400
+ }, {
1401
+ key: "connect",
1402
+ value: function() {
1403
+ this._connect();
1404
+ }
1405
+ }, {
1406
+ key: "disconnect",
1407
+ value: function() {
1408
+ this._disconnect("client", !1);
1409
+ }
1410
+ }, {
1411
+ key: "ping",
1412
+ value: function() {
1413
+ return this._ping();
1414
+ }
1415
+ }, {
1416
+ key: "startBatching",
1417
+ value: function() {
1418
+ this._isBatching = !0;
1419
+ }
1420
+ }, {
1421
+ key: "stopBatching",
1422
+ value: function() {
1423
+ this._isBatching = !1, this._flush();
1424
+ }
1425
+ }, {
1426
+ key: "startSubscribeBatching",
1427
+ value: function() {
1428
+ this._isSubscribeBatching = !0;
1429
+ }
1430
+ }, {
1431
+ key: "stopSubscribeBatching",
1432
+ value: function() {
1433
+ var t = this;
1434
+ this._isSubscribeBatching = !1;
1435
+ var r = this._privateChannels;
1436
+ this._privateChannels = {};
1437
+ var a = [];
1438
+ for (var l in r)
1439
+ if (r.hasOwnProperty(l)) {
1440
+ var y = this._getSub(l);
1441
+ if (!y)
1442
+ continue;
1443
+ a.push(l);
1444
+ }
1445
+ if (a.length === 0) {
1446
+ this._debug("no private channels found, no need to make request");
1447
+ return;
1448
+ }
1449
+ var E = {
1450
+ client: this._clientID,
1451
+ channels: a
1452
+ }, I = this._clientID, B = this._newXHRID(), R = function(D) {
1453
+ if (B in t._xhrs && delete t._xhrs[B], t._clientID === I) {
1454
+ if (D.error || D.status !== 200) {
1455
+ t._debug("authorization request failed");
1456
+ for (var ne in a)
1457
+ if (a.hasOwnProperty(ne)) {
1458
+ var Se = a[ne];
1459
+ t._subscribeError(Se, t._createErrorObject("authorization request failed"));
1460
+ }
1461
+ return;
1462
+ }
1463
+ var ue = {};
1464
+ if (D.data.channels)
1465
+ for (var V in D.data.channels) {
1466
+ var Pe = D.data.channels[V];
1467
+ Pe.channel && (ue[Pe.channel] = Pe.token);
1468
+ }
1469
+ var Xe = !1;
1470
+ t._isBatching || (t.startBatching(), Xe = !0);
1471
+ for (var Ue in a)
1472
+ if (a.hasOwnProperty(Ue)) {
1473
+ var pt = (function() {
1474
+ var z = a[Ue], He = ue[z];
1475
+ if (He) {
1476
+ var re = {
1477
+ method: t._methodType.SUBSCRIBE,
1478
+ params: {
1479
+ channel: z,
1480
+ token: He
1481
+ }
1482
+ }, xe = t._getSub(z);
1483
+ if (xe === null)
1484
+ return "continue";
1485
+ var Fe = xe._needRecover();
1486
+ if (Fe === !0) {
1487
+ re.params.recover = !0;
1488
+ var ke = t._getLastSeq(z), we = t._getLastGen(z);
1489
+ if (ke || we)
1490
+ ke && (re.params.seq = ke), we && (re.params.gen = we);
1491
+ else {
1492
+ var Je = t._getLastOffset(z);
1493
+ Je && (re.params.offset = Je);
1494
+ }
1495
+ var qe = t._getLastEpoch(z);
1496
+ qe && (re.params.epoch = qe);
1497
+ }
1498
+ t._call(re).then(function(Y) {
1499
+ t._subscribeResponse(z, Fe, t._decoder.decodeCommandResult(t._methodType.SUBSCRIBE, Y.result)), Y.next && Y.next();
1500
+ }, function(Y) {
1501
+ t._subscribeError(z, Y.error), Y.next && Y.next();
1502
+ });
1503
+ } else
1504
+ return t._subscribeError(z, t._createErrorObject("permission denied", 103)), "continue";
1505
+ })();
1506
+ if (pt === "continue") continue;
1507
+ }
1508
+ Xe && t.stopBatching();
1509
+ }
1510
+ };
1511
+ if (this._config.onPrivateSubscribe !== null)
1512
+ this._config.onPrivateSubscribe({
1513
+ data: E
1514
+ }, R);
1515
+ else {
1516
+ var X = this._ajax(this._config.subscribeEndpoint, this._config.subscribeParams, this._config.subscribeHeaders, E, R);
1517
+ this._xhrs[B] = X;
1518
+ }
1519
+ }
1520
+ }, {
1521
+ key: "_setSubscribeSince",
1522
+ value: function(t, r) {
1523
+ this._lastOffset[t.channel] = r.offset, this._lastEpoch[t.channel] = r.epoch, t._setNeedRecover(!0);
1524
+ }
1525
+ }, {
1526
+ key: "subscribe",
1527
+ value: function(t, r, a) {
1528
+ var l = this._getSub(t);
1529
+ if (l !== null)
1530
+ return l._setEvents(r), l._isUnsubscribed() && l.subscribe(a), l;
1531
+ var y = new S.default(this, t, r);
1532
+ return this._subs[t] = y, y.subscribe(a), y;
1533
+ }
1534
+ }]), p;
1535
+ })(C.default);
1536
+ d.Centrifuge = b;
1537
+ })
1538
+ ),
1539
+ /***/
1540
+ 579: (
1541
+ /***/
1542
+ (function(c, d, g) {
1543
+ Object.defineProperty(d, "__esModule", {
1544
+ value: !0
1545
+ }), d.default = void 0;
1546
+ var C = g(382), S = C.Centrifuge;
1547
+ d.default = S, c.exports = d.default;
1548
+ })
1549
+ ),
1550
+ /***/
1551
+ 147: (
1552
+ /***/
1553
+ (function(c, d) {
1554
+ Object.defineProperty(d, "__esModule", {
1555
+ value: !0
1556
+ }), d.JsonPushType = d.JsonMethodType = d.JsonEncoder = d.JsonDecoder = void 0;
1557
+ function g(m, P) {
1558
+ if (!(m instanceof P))
1559
+ throw new TypeError("Cannot call a class as a function");
1560
+ }
1561
+ function C(m, P) {
1562
+ for (var k = 0; k < P.length; k++) {
1563
+ var w = P[k];
1564
+ w.enumerable = w.enumerable || !1, w.configurable = !0, "value" in w && (w.writable = !0), Object.defineProperty(m, w.key, w);
1565
+ }
1566
+ }
1567
+ function S(m, P, k) {
1568
+ return P && C(m.prototype, P), m;
1569
+ }
1570
+ var T = {
1571
+ CONNECT: 0,
1572
+ SUBSCRIBE: 1,
1573
+ UNSUBSCRIBE: 2,
1574
+ PUBLISH: 3,
1575
+ PRESENCE: 4,
1576
+ PRESENCE_STATS: 5,
1577
+ HISTORY: 6,
1578
+ PING: 7,
1579
+ SEND: 8,
1580
+ RPC: 9,
1581
+ REFRESH: 10,
1582
+ SUB_REFRESH: 11
1583
+ };
1584
+ d.JsonMethodType = T;
1585
+ var v = {
1586
+ PUBLICATION: 0,
1587
+ JOIN: 1,
1588
+ LEAVE: 2,
1589
+ UNSUBSCRIBE: 3,
1590
+ MESSAGE: 4,
1591
+ SUBSCRIBE: 5
1592
+ };
1593
+ d.JsonPushType = v;
1594
+ var Q = /* @__PURE__ */ (function() {
1595
+ function m() {
1596
+ g(this, m);
1597
+ }
1598
+ return S(m, [{
1599
+ key: "encodeCommands",
1600
+ value: function(k) {
1601
+ return k.map(function(w) {
1602
+ return JSON.stringify(w);
1603
+ }).join(`
1604
+ `);
1605
+ }
1606
+ }]), m;
1607
+ })();
1608
+ d.JsonEncoder = Q;
1609
+ var _ = /* @__PURE__ */ (function() {
1610
+ function m() {
1611
+ g(this, m);
1612
+ }
1613
+ return S(m, [{
1614
+ key: "decodeReplies",
1615
+ value: function(k) {
1616
+ return k.split(`
1617
+ `).filter(function(w) {
1618
+ return w !== "";
1619
+ }).map(function(w) {
1620
+ return JSON.parse(w);
1621
+ });
1622
+ }
1623
+ }, {
1624
+ key: "decodeCommandResult",
1625
+ value: function(k, w) {
1626
+ return w;
1627
+ }
1628
+ }, {
1629
+ key: "decodePush",
1630
+ value: function(k) {
1631
+ return k;
1632
+ }
1633
+ }, {
1634
+ key: "decodePushData",
1635
+ value: function(k, w) {
1636
+ return w;
1637
+ }
1638
+ }]), m;
1639
+ })();
1640
+ d.JsonDecoder = _;
1641
+ })
1642
+ ),
1643
+ /***/
1644
+ 471: (
1645
+ /***/
1646
+ (function(c, d, g) {
1647
+ function C(h) {
1648
+ "@babel/helpers - typeof";
1649
+ return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? C = function(A) {
1650
+ return typeof A;
1651
+ } : C = function(A) {
1652
+ return A && typeof Symbol == "function" && A.constructor === Symbol && A !== Symbol.prototype ? "symbol" : typeof A;
1653
+ }, C(h);
1654
+ }
1655
+ Object.defineProperty(d, "__esModule", {
1656
+ value: !0
1657
+ }), d.default = void 0;
1658
+ var S = v(g(187)), T = g(853);
1659
+ function v(h) {
1660
+ return h && h.__esModule ? h : { default: h };
1661
+ }
1662
+ function Q(h, p) {
1663
+ if (!(h instanceof p))
1664
+ throw new TypeError("Cannot call a class as a function");
1665
+ }
1666
+ function _(h, p) {
1667
+ for (var A = 0; A < p.length; A++) {
1668
+ var t = p[A];
1669
+ t.enumerable = t.enumerable || !1, t.configurable = !0, "value" in t && (t.writable = !0), Object.defineProperty(h, t.key, t);
1670
+ }
1671
+ }
1672
+ function m(h, p, A) {
1673
+ return p && _(h.prototype, p), h;
1674
+ }
1675
+ function P(h, p) {
1676
+ if (typeof p != "function" && p !== null)
1677
+ 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 && k(h, p);
1679
+ }
1680
+ function k(h, p) {
1681
+ return k = Object.setPrototypeOf || function(t, r) {
1682
+ return t.__proto__ = r, t;
1683
+ }, k(h, p);
1684
+ }
1685
+ function w(h) {
1686
+ var p = F();
1687
+ return function() {
1688
+ var t = M(h), r;
1689
+ if (p) {
1690
+ var a = M(this).constructor;
1691
+ r = Reflect.construct(t, arguments, a);
1692
+ } else
1693
+ r = t.apply(this, arguments);
1694
+ return L(this, r);
1695
+ };
1696
+ }
1697
+ function L(h, p) {
1698
+ if (p && (C(p) === "object" || typeof p == "function"))
1699
+ return p;
1700
+ if (p !== void 0)
1701
+ throw new TypeError("Derived constructors may only return object or undefined");
1702
+ return O(h);
1703
+ }
1704
+ function O(h) {
1705
+ if (h === void 0)
1706
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1707
+ return h;
1708
+ }
1709
+ function F() {
1710
+ if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham) return !1;
1711
+ if (typeof Proxy == "function") return !0;
1712
+ try {
1713
+ return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
1714
+ })), !0;
1715
+ } catch {
1716
+ return !1;
1717
+ }
1718
+ }
1719
+ function M(h) {
1720
+ return M = Object.setPrototypeOf ? Object.getPrototypeOf : function(A) {
1721
+ return A.__proto__ || Object.getPrototypeOf(A);
1722
+ }, M(h);
1723
+ }
1724
+ var J = 0, x = 1, q = 2, N = 3, b = 4, f = /* @__PURE__ */ (function(h) {
1725
+ P(A, h);
1726
+ var p = w(A);
1727
+ function A(t, r, a) {
1728
+ var l;
1729
+ return Q(this, A), l = p.call(this), l.channel = r, l._centrifuge = t, l._status = J, l._error = null, l._isResubscribe = !1, l._ready = !1, l._subscriptionPromise = null, l._noResubscribe = !1, l._recoverable = !1, l._recover = !1, l._setEvents(a), l._initializePromise(), l._promises = {}, l._promiseId = 0, l._subscribeData = null, l.on("error", function(y) {
1730
+ this._centrifuge._debug("subscription error", y);
1731
+ }), l;
1732
+ }
1733
+ return m(A, [{
1734
+ key: "_nextPromiseId",
1735
+ value: function() {
1736
+ return ++this._promiseId;
1737
+ }
1738
+ }, {
1739
+ key: "_initializePromise",
1740
+ value: function() {
1741
+ var r = this;
1742
+ this._ready = !1, this._subscriptionPromise = new Promise(function(a, l) {
1743
+ r._resolve = function(y) {
1744
+ r._ready = !0, a(y);
1745
+ }, r._reject = function(y) {
1746
+ r._ready = !0, l(y);
1747
+ };
1748
+ }).then(function() {
1749
+ }, function() {
1750
+ });
1751
+ }
1752
+ }, {
1753
+ key: "_setNeedRecover",
1754
+ value: function(r) {
1755
+ this._recoverable = r, this._recover = r;
1756
+ }
1757
+ }, {
1758
+ key: "_needRecover",
1759
+ value: function() {
1760
+ return this._recoverable === !0 && this._recover === !0;
1761
+ }
1762
+ }, {
1763
+ key: "_setEvents",
1764
+ value: function(r) {
1765
+ if (r) {
1766
+ if ((0, T.isFunction)(r))
1767
+ this.on("publish", r);
1768
+ else if (Object.prototype.toString.call(r) === Object.prototype.toString.call({}))
1769
+ for (var a = ["publish", "join", "leave", "unsubscribe", "subscribe", "error"], l = 0, y = a.length; l < y; l++) {
1770
+ var E = a[l];
1771
+ E in r && this.on(E, r[E]);
1772
+ }
1773
+ }
1774
+ }
1775
+ }, {
1776
+ key: "_isNew",
1777
+ value: function() {
1778
+ return this._status === J;
1779
+ }
1780
+ }, {
1781
+ key: "_isUnsubscribed",
1782
+ value: function() {
1783
+ return this._status === b;
1784
+ }
1785
+ }, {
1786
+ key: "_isSubscribing",
1787
+ value: function() {
1788
+ return this._status === x;
1789
+ }
1790
+ }, {
1791
+ key: "_isReady",
1792
+ value: function() {
1793
+ return this._status === q || this._status === N;
1794
+ }
1795
+ }, {
1796
+ key: "_isSuccess",
1797
+ value: function() {
1798
+ return this._status === q;
1799
+ }
1800
+ }, {
1801
+ key: "_isError",
1802
+ value: function() {
1803
+ return this._status === N;
1804
+ }
1805
+ }, {
1806
+ key: "_setNew",
1807
+ value: function() {
1808
+ this._status = J;
1809
+ }
1810
+ }, {
1811
+ key: "_setSubscribing",
1812
+ value: function(r) {
1813
+ this._isResubscribe = r || !1, this._ready === !0 && this._initializePromise(), this._status = x;
1814
+ }
1815
+ }, {
1816
+ key: "_setSubscribeSuccess",
1817
+ value: function(r) {
1818
+ if (this._status !== q) {
1819
+ this._status = q;
1820
+ var a = this._getSubscribeSuccessContext(r);
1821
+ this._recover = !1, this.emit("subscribe", a), this._resolve(a);
1822
+ for (var l in this._promises)
1823
+ clearTimeout(this._promises[l].timeout), this._promises[l].resolve(), delete this._promises[l];
1824
+ }
1825
+ }
1826
+ }, {
1827
+ key: "_setSubscribeError",
1828
+ value: function(r) {
1829
+ if (this._status !== N) {
1830
+ this._status = N, this._error = r;
1831
+ var a = this._getSubscribeErrorContext();
1832
+ this.emit("error", a), this._reject(a);
1833
+ for (var l in this._promises)
1834
+ clearTimeout(this._promises[l].timeout), this._promises[l].reject(r), delete this._promises[l];
1835
+ }
1836
+ }
1837
+ }, {
1838
+ key: "_triggerUnsubscribe",
1839
+ value: function() {
1840
+ this.emit("unsubscribe", {
1841
+ channel: this.channel
1842
+ });
1843
+ }
1844
+ }, {
1845
+ key: "_setUnsubscribed",
1846
+ value: function(r) {
1847
+ if (this._centrifuge._clearSubRefreshTimeout(this.channel), this._status !== b) {
1848
+ var a = this._status === q;
1849
+ this._status = b, 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]), a && this._triggerUnsubscribe();
1850
+ }
1851
+ }
1852
+ }, {
1853
+ key: "_shouldResubscribe",
1854
+ value: function() {
1855
+ return !this._noResubscribe;
1856
+ }
1857
+ }, {
1858
+ key: "_getSubscribeSuccessContext",
1859
+ value: function(r) {
1860
+ var a = {
1861
+ channel: this.channel,
1862
+ isResubscribe: this._isResubscribe
1863
+ };
1864
+ return r && (a = this._centrifuge._expandSubscribeContext(a, r)), a;
1865
+ }
1866
+ }, {
1867
+ key: "_getSubscribeErrorContext",
1868
+ value: function() {
1869
+ var r = this._error;
1870
+ return r.channel = this.channel, r.isResubscribe = this._isResubscribe, r;
1871
+ }
1872
+ }, {
1873
+ key: "_setSubscribeData",
1874
+ value: function(r) {
1875
+ this._subscribeData = r;
1876
+ }
1877
+ }, {
1878
+ key: "ready",
1879
+ value: function(r, a) {
1880
+ this._ready && (this._isSuccess() ? r(this._getSubscribeSuccessContext()) : a(this._getSubscribeErrorContext()));
1881
+ }
1882
+ }, {
1883
+ key: "subscribe",
1884
+ value: function(r) {
1885
+ this._status !== q && (r && r.since && this._centrifuge._setSubscribeSince(this, r.since), r && r.data && this._setSubscribeData(r.data), this._noResubscribe = !1, this._centrifuge._subscribe(this));
1886
+ }
1887
+ }, {
1888
+ key: "unsubscribe",
1889
+ value: function() {
1890
+ this._setUnsubscribed(!0), this._centrifuge._unsubscribe(this);
1891
+ }
1892
+ }, {
1893
+ key: "_methodCall",
1894
+ value: function() {
1895
+ var r = this;
1896
+ if (this._isSuccess())
1897
+ return Promise.resolve();
1898
+ if (this._isError())
1899
+ return Promise.reject(this._error);
1900
+ var a = new Promise(function(l, y) {
1901
+ var E = setTimeout(function() {
1902
+ y({
1903
+ code: 0,
1904
+ message: "timeout"
1905
+ });
1906
+ }, r._centrifuge._config.timeout);
1907
+ r._promises[r._nextPromiseId()] = {
1908
+ timeout: E,
1909
+ resolve: l,
1910
+ reject: y
1911
+ };
1912
+ });
1913
+ return a;
1914
+ }
1915
+ }, {
1916
+ key: "publish",
1917
+ value: function(r) {
1918
+ var a = this;
1919
+ return this._methodCall().then(function() {
1920
+ return a._centrifuge.publish(a.channel, r);
1921
+ });
1922
+ }
1923
+ }, {
1924
+ key: "presence",
1925
+ value: function() {
1926
+ var r = this;
1927
+ return this._methodCall().then(function() {
1928
+ return r._centrifuge.presence(r.channel);
1929
+ });
1930
+ }
1931
+ }, {
1932
+ key: "presenceStats",
1933
+ value: function() {
1934
+ var r = this;
1935
+ return this._methodCall().then(function() {
1936
+ return r._centrifuge.presenceStats(r.channel);
1937
+ });
1938
+ }
1939
+ }, {
1940
+ key: "history",
1941
+ value: function(r) {
1942
+ var a = this;
1943
+ return this._methodCall().then(function() {
1944
+ return a._centrifuge.history(a.channel, r);
1945
+ });
1946
+ }
1947
+ }]), A;
1948
+ })(S.default);
1949
+ d.default = f, c.exports = d.default;
1950
+ })
1951
+ ),
1952
+ /***/
1953
+ 853: (
1954
+ /***/
1955
+ (function(c, d, g) {
1956
+ Object.defineProperty(d, "__esModule", {
1957
+ value: !0
1958
+ }), d.backoff = v, d.errorExists = Q, d.extend = _, d.isFunction = S, d.log = T, d.startsWith = C;
1959
+ function C(m, P) {
1960
+ return m.lastIndexOf(P, 0) === 0;
1961
+ }
1962
+ function S(m) {
1963
+ return m == null ? !1 : typeof m == "function";
1964
+ }
1965
+ function T(m, P) {
1966
+ if (g.g.console) {
1967
+ var k = g.g.console[m];
1968
+ S(k) && k.apply(g.g.console, P);
1969
+ }
1970
+ }
1971
+ function v(m, P, k) {
1972
+ var w = 0.5 * Math.random(), L = Math.min(k, P * Math.pow(2, m + 1));
1973
+ return Math.floor((1 - w) * L);
1974
+ }
1975
+ function Q(m) {
1976
+ return "error" in m && m.error !== null;
1977
+ }
1978
+ function _(m, P) {
1979
+ for (var k in P)
1980
+ P.hasOwnProperty(k) && (m[k] = P[k]);
1981
+ return m;
1982
+ }
1983
+ })
1984
+ ),
1985
+ /***/
1986
+ 187: (
1987
+ /***/
1988
+ (function(c) {
1989
+ var d = typeof Reflect == "object" ? Reflect : null, g = d && typeof d.apply == "function" ? d.apply : function(f, h, p) {
1990
+ return Function.prototype.apply.call(f, h, p);
1991
+ }, C;
1992
+ d && typeof d.ownKeys == "function" ? C = d.ownKeys : Object.getOwnPropertySymbols ? C = function(f) {
1993
+ return Object.getOwnPropertyNames(f).concat(Object.getOwnPropertySymbols(f));
1994
+ } : C = function(f) {
1995
+ return Object.getOwnPropertyNames(f);
1996
+ };
1997
+ function S(b) {
1998
+ console && console.warn && console.warn(b);
1999
+ }
2000
+ var T = Number.isNaN || function(f) {
2001
+ return f !== f;
2002
+ };
2003
+ function v() {
2004
+ v.init.call(this);
2005
+ }
2006
+ c.exports = v, c.exports.once = x, v.EventEmitter = v, v.prototype._events = void 0, v.prototype._eventsCount = 0, v.prototype._maxListeners = void 0;
2007
+ var Q = 10;
2008
+ function _(b) {
2009
+ if (typeof b != "function")
2010
+ throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof b);
2011
+ }
2012
+ Object.defineProperty(v, "defaultMaxListeners", {
2013
+ enumerable: !0,
2014
+ get: function() {
2015
+ return Q;
2016
+ },
2017
+ set: function(b) {
2018
+ if (typeof b != "number" || b < 0 || T(b))
2019
+ throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + b + ".");
2020
+ Q = b;
2021
+ }
2022
+ }), v.init = function() {
2023
+ (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
+ }, v.prototype.setMaxListeners = function(f) {
2025
+ if (typeof f != "number" || f < 0 || T(f))
2026
+ throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + f + ".");
2027
+ return this._maxListeners = f, this;
2028
+ };
2029
+ function m(b) {
2030
+ return b._maxListeners === void 0 ? v.defaultMaxListeners : b._maxListeners;
2031
+ }
2032
+ v.prototype.getMaxListeners = function() {
2033
+ return m(this);
2034
+ }, v.prototype.emit = function(f) {
2035
+ for (var h = [], p = 1; p < arguments.length; p++) h.push(arguments[p]);
2036
+ var A = f === "error", t = this._events;
2037
+ if (t !== void 0)
2038
+ A = A && t.error === void 0;
2039
+ else if (!A)
2040
+ return !1;
2041
+ if (A) {
2042
+ var r;
2043
+ if (h.length > 0 && (r = h[0]), r instanceof Error)
2044
+ throw r;
2045
+ var a = new Error("Unhandled error." + (r ? " (" + r.message + ")" : ""));
2046
+ throw a.context = r, a;
2047
+ }
2048
+ var l = t[f];
2049
+ if (l === void 0)
2050
+ return !1;
2051
+ if (typeof l == "function")
2052
+ g(l, this, h);
2053
+ else
2054
+ for (var y = l.length, E = F(l, y), p = 0; p < y; ++p)
2055
+ g(E[p], this, h);
2056
+ return !0;
2057
+ };
2058
+ function P(b, f, h, p) {
2059
+ var A, t, r;
2060
+ if (_(h), t = b._events, t === void 0 ? (t = b._events = /* @__PURE__ */ Object.create(null), b._eventsCount = 0) : (t.newListener !== void 0 && (b.emit(
2061
+ "newListener",
2062
+ f,
2063
+ h.listener ? h.listener : h
2064
+ ), t = b._events), r = t[f]), r === void 0)
2065
+ r = t[f] = h, ++b._eventsCount;
2066
+ else if (typeof r == "function" ? r = t[f] = p ? [h, r] : [r, h] : p ? r.unshift(h) : r.push(h), A = m(b), A > 0 && r.length > A && !r.warned) {
2067
+ r.warned = !0;
2068
+ var a = new Error("Possible EventEmitter memory leak detected. " + r.length + " " + String(f) + " listeners added. Use emitter.setMaxListeners() to increase limit");
2069
+ a.name = "MaxListenersExceededWarning", a.emitter = b, a.type = f, a.count = r.length, S(a);
2070
+ }
2071
+ return b;
2072
+ }
2073
+ v.prototype.addListener = function(f, h) {
2074
+ return P(this, f, h, !1);
2075
+ }, v.prototype.on = v.prototype.addListener, v.prototype.prependListener = function(f, h) {
2076
+ return P(this, f, h, !0);
2077
+ };
2078
+ function k() {
2079
+ if (!this.fired)
2080
+ 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
+ }
2082
+ function w(b, f, h) {
2083
+ var p = { fired: !1, wrapFn: void 0, target: b, type: f, listener: h }, A = k.bind(p);
2084
+ return A.listener = h, p.wrapFn = A, A;
2085
+ }
2086
+ v.prototype.once = function(f, h) {
2087
+ return _(h), this.on(f, w(this, f, h)), this;
2088
+ }, v.prototype.prependOnceListener = function(f, h) {
2089
+ return _(h), this.prependListener(f, w(this, f, h)), this;
2090
+ }, v.prototype.removeListener = function(f, h) {
2091
+ var p, A, t, r, a;
2092
+ if (_(h), A = this._events, A === void 0)
2093
+ return this;
2094
+ if (p = A[f], p === void 0)
2095
+ return this;
2096
+ if (p === h || p.listener === h)
2097
+ --this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : (delete A[f], A.removeListener && this.emit("removeListener", f, p.listener || h));
2098
+ else if (typeof p != "function") {
2099
+ for (t = -1, r = p.length - 1; r >= 0; r--)
2100
+ if (p[r] === h || p[r].listener === h) {
2101
+ a = p[r].listener, t = r;
2102
+ break;
2103
+ }
2104
+ if (t < 0)
2105
+ return this;
2106
+ t === 0 ? p.shift() : M(p, t), p.length === 1 && (A[f] = p[0]), A.removeListener !== void 0 && this.emit("removeListener", f, a || h);
2107
+ }
2108
+ return this;
2109
+ }, v.prototype.off = v.prototype.removeListener, v.prototype.removeAllListeners = function(f) {
2110
+ var h, p, A;
2111
+ if (p = this._events, p === void 0)
2112
+ return this;
2113
+ if (p.removeListener === void 0)
2114
+ return arguments.length === 0 ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : p[f] !== void 0 && (--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : delete p[f]), this;
2115
+ if (arguments.length === 0) {
2116
+ var t = Object.keys(p), r;
2117
+ for (A = 0; A < t.length; ++A)
2118
+ r = t[A], r !== "removeListener" && this.removeAllListeners(r);
2119
+ return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;
2120
+ }
2121
+ if (h = p[f], typeof h == "function")
2122
+ this.removeListener(f, h);
2123
+ else if (h !== void 0)
2124
+ for (A = h.length - 1; A >= 0; A--)
2125
+ this.removeListener(f, h[A]);
2126
+ return this;
2127
+ };
2128
+ function L(b, f, h) {
2129
+ var p = b._events;
2130
+ if (p === void 0)
2131
+ return [];
2132
+ var A = p[f];
2133
+ return A === void 0 ? [] : typeof A == "function" ? h ? [A.listener || A] : [A] : h ? J(A) : F(A, A.length);
2134
+ }
2135
+ v.prototype.listeners = function(f) {
2136
+ return L(this, f, !0);
2137
+ }, v.prototype.rawListeners = function(f) {
2138
+ return L(this, f, !1);
2139
+ }, v.listenerCount = function(b, f) {
2140
+ return typeof b.listenerCount == "function" ? b.listenerCount(f) : O.call(b, f);
2141
+ }, v.prototype.listenerCount = O;
2142
+ function O(b) {
2143
+ var f = this._events;
2144
+ if (f !== void 0) {
2145
+ var h = f[b];
2146
+ if (typeof h == "function")
2147
+ return 1;
2148
+ if (h !== void 0)
2149
+ return h.length;
2150
+ }
2151
+ return 0;
2152
+ }
2153
+ v.prototype.eventNames = function() {
2154
+ return this._eventsCount > 0 ? C(this._events) : [];
2155
+ };
2156
+ function F(b, f) {
2157
+ for (var h = new Array(f), p = 0; p < f; ++p)
2158
+ h[p] = b[p];
2159
+ return h;
2160
+ }
2161
+ function M(b, f) {
2162
+ for (; f + 1 < b.length; f++)
2163
+ b[f] = b[f + 1];
2164
+ b.pop();
2165
+ }
2166
+ function J(b) {
2167
+ for (var f = new Array(b.length), h = 0; h < f.length; ++h)
2168
+ f[h] = b[h].listener || b[h];
2169
+ return f;
2170
+ }
2171
+ function x(b, f) {
2172
+ return new Promise(function(h, p) {
2173
+ function A(r) {
2174
+ b.removeListener(f, t), p(r);
2175
+ }
2176
+ function t() {
2177
+ typeof b.removeListener == "function" && b.removeListener("error", A), h([].slice.call(arguments));
2178
+ }
2179
+ N(b, f, t, { once: !0 }), f !== "error" && q(b, A, { once: !0 });
2180
+ });
2181
+ }
2182
+ function q(b, f, h) {
2183
+ typeof b.on == "function" && N(b, "error", f, h);
2184
+ }
2185
+ function N(b, f, h, p) {
2186
+ if (typeof b.on == "function")
2187
+ p.once ? b.once(f, h) : b.on(f, h);
2188
+ else if (typeof b.addEventListener == "function")
2189
+ b.addEventListener(f, function A(t) {
2190
+ p.once && b.removeEventListener(f, A), h(t);
2191
+ });
2192
+ else
2193
+ throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof b);
2194
+ }
2195
+ })
2196
+ )
2197
+ /******/
2198
+ }, s = {};
2199
+ function i(c) {
2200
+ var d = s[c];
2201
+ if (d !== void 0)
2202
+ return d.exports;
2203
+ var g = s[c] = {
2204
+ /******/
2205
+ // no module.id needed
2206
+ /******/
2207
+ // no module.loaded needed
2208
+ /******/
2209
+ exports: {}
2210
+ /******/
2211
+ };
2212
+ return o[c](g, g.exports, i), g.exports;
2213
+ }
2214
+ (function() {
2215
+ i.g = (function() {
2216
+ if (typeof globalThis == "object") return globalThis;
2217
+ try {
2218
+ return this || new Function("return this")();
2219
+ } catch {
2220
+ if (typeof window == "object") return window;
2221
+ }
2222
+ })();
2223
+ })();
2224
+ var u = i(579);
2225
+ return u;
2226
+ })()
2227
+ );
2228
+ });
2229
+ })(he)), he.exports;
2230
+ }
2231
+ var Pt = St();
2232
+ const kt = /* @__PURE__ */ It(Pt);
2233
+ let de = null;
2234
+ function Ve(e, n) {
2235
+ if (!(e != null && e.client_url) || !(e != null && e.token) || !(e != null && e.channel))
2236
+ return console.error("[Centrifuge] Invalid socket_connections"), null;
2237
+ const { client_url: o, token: s, channel: i } = e;
2238
+ if (i.includes("#") || console.warn("[Centrifuge] Channel should contain #user_id"), de) {
2239
+ try {
2240
+ console.log("[Centrifuge] Disconnecting previous instance..."), de.disconnect();
2241
+ } catch (c) {
2242
+ console.error("[Centrifuge] Error while disconnecting previous instance:", c);
2243
+ }
2244
+ de = null;
2245
+ }
2246
+ console.log("[Centrifuge] Creating new instance:", o);
2247
+ const u = new kt(o);
2248
+ return u.setToken(s), u.on("connect", (c) => {
2249
+ console.log("[Centrifuge] Connected", c), console.log("[Centrifuge] Subscribing to channel:", i);
2250
+ const d = u.subscribe(i);
2251
+ d.on("publish", (g) => {
2252
+ console.log("[Centrifuge] Publish event received:", g);
2253
+ const C = wt(g);
2254
+ C && n(C);
2255
+ }), d.on("subscribe", (g) => {
2256
+ console.log("[Centrifuge] ✅ Channel subscribed successfully:", i, g);
2257
+ }), d.on("error", (g) => {
2258
+ console.error("[Centrifuge] ❌ Subscription error:", g);
2259
+ }), d.on("unsubscribe", (g) => {
2260
+ console.log("[Centrifuge] Channel unsubscribed:", g);
2261
+ });
2262
+ }), u.on("disconnect", (c) => console.log("[Centrifuge] Disconnected", c)), u.on("error", (c) => console.error("[Centrifuge] Error", c)), console.log("[Centrifuge] Calling connect()..."), u.connect(), de = u, { centrifuge: u };
2263
+ }
2264
+ function wt(e) {
2265
+ var o, s, i;
2266
+ if (console.log("[Centrifuge] Raw message received:", JSON.stringify(e)), !(e != null && e.data))
2267
+ return console.warn("[Centrifuge] Empty or invalid response"), null;
2268
+ let n = e.data;
2269
+ return (o = n.data) != null && o.type ? n = n.data : (i = (s = n.data) == null ? void 0 : s.data) != null && i.type && (n = n.data.data), console.log("[Centrifuge] Parsed message:", n), n.type ? n : (console.warn("[Centrifuge] Message has no type:", n), null);
2270
+ }
2271
+ function fe(e) {
2272
+ return /^4[0-9]/.test(e) ? "visa" : /^5[1-5]/.test(e) || /^2[2-7]/.test(e) ? "mastercard" : "card";
2273
+ }
2274
+ const Z = {
2275
+ iconType: "kaspi_pay",
2276
+ label: "Kaspi.kz",
2277
+ type: "kaspi_pay"
2278
+ }, rt = {
2279
+ iconType: "apple_pay",
2280
+ label: "Apple Pay",
2281
+ type: "apple_pay"
2282
+ }, ot = {
2283
+ iconType: "google_pay",
2284
+ label: "Google Pay",
2285
+ type: "google_pay"
2286
+ };
2287
+ function K(e) {
2288
+ return e === "enabled" || e === !0;
2289
+ }
2290
+ function We(e) {
2291
+ if (!e) return null;
2292
+ let n = String(e).trim().toLowerCase();
2293
+ return n.startsWith("payment_method_") && (n = n.replace("payment_method_", "")), n === "kaspi" ? "kaspi_pay" : n === "apple" ? "apple_pay" : n === "google" ? "google_pay" : n === "newcard" ? "new_card" : n === "card" ? "card" : ["kaspi_pay", "apple_pay", "google_pay", "new_card"].includes(n) ? n : null;
2294
+ }
2295
+ function _t(e) {
2296
+ var u, c, d;
2297
+ const n = e, o = ((u = n == null ? void 0 : n.context) == null ? void 0 : u.last_payment_method) ?? (n == null ? void 0 : n.last_payment_method) ?? ((c = n == null ? void 0 : n.attributes) == null ? void 0 : c.last_payment_method);
2298
+ if (!o) return null;
2299
+ if (typeof o == "string")
2300
+ return { type: We(o), cardId: null };
2301
+ if (typeof o != "object") return null;
2302
+ const s = o.type ?? o.payment_method ?? o.method, i = o.card_id ?? o.cardId ?? o.id ?? ((d = o.card) == null ? void 0 : d.id) ?? null;
2303
+ return {
2304
+ type: We(s),
2305
+ cardId: i != null ? String(i) : null
2306
+ };
2307
+ }
2308
+ function Tt(e, n, o = {}) {
2309
+ var P, k, w, L;
2310
+ const s = [], i = (P = e == null ? void 0 : e.kaspi) == null ? void 0 : P.data, u = ((k = e == null ? void 0 : e.cards_v2) == null ? void 0 : k.data) || [], c = ((L = (w = e == null ? void 0 : e.payment_methods) == null ? void 0 : w.data) == null ? void 0 : L.attributes) || {}, d = K(c.payment_method_kaspi), g = K(c.payment_method_card), C = typeof window < "u" && window.self === window.top, T = Ne() === "ios", v = !!(o != null && o.onlyKaspiAvailable), Q = !!(o != null && o.disableKaspi);
2311
+ return i != null && i.isKaspiOnly && d && !Q ? [Z] : v ? i != null && i.isAvailable && d && !Q ? [Z] : [] : (K(c.payment_method_apple_pay) && !ye("apple_pay") && (pe() && C || Ce() || T || nt() === 16) && s.push(rt), i != null && i.isAvailable && d && !Q && s.push(Z), g && u.filter((O) => !O.isExpired).forEach((O) => {
2312
+ s.push({
2313
+ iconType: fe(O.attributes.mask),
2314
+ type: "card",
2315
+ cardId: O.id,
2316
+ label: `•••• ${O.attributes.mask.slice(-4)}`,
2317
+ cardType: O.type,
2318
+ isDefault: O.attributes.isDefault
2319
+ });
2320
+ }), K(c.payment_method_google_pay) && !ye("google_pay") && !pe() && !Ce() && s.push(ot), K(c.payment_method_new_card) && s.push({
2321
+ iconType: "new_card",
2322
+ type: "new_card",
2323
+ label: n ? n("newCard") : "Оплата новой картой"
2324
+ }), s);
2325
+ }
2326
+ function Te(e, n = {}) {
2327
+ var m, P, k, w;
2328
+ const o = (m = e == null ? void 0 : e.kaspi) == null ? void 0 : m.data, s = ((P = e == null ? void 0 : e.cards_v2) == null ? void 0 : P.data) || [], i = ((w = (k = e == null ? void 0 : e.payment_methods) == null ? void 0 : k.data) == null ? void 0 : w.attributes) || {}, u = K(i.payment_method_kaspi), c = K(i.payment_method_card), d = !!(n != null && n.disableKaspi), g = typeof window < "u" && window.self === window.top, S = Ne() === "ios", T = K(i.payment_method_apple_pay) && !ye("apple_pay") && (pe() && g || Ce() || S || nt() === 16), v = K(i.payment_method_google_pay) && !ye("google_pay") && !pe() && !Ce();
2329
+ if (o != null && o.isKaspiOnly && u && !d || n != null && n.onlyKaspiAvailable && (o != null && o.isAvailable) && u && !d)
2330
+ return Z;
2331
+ const Q = _t(e);
2332
+ if ((Q == null ? void 0 : Q.type) === "kaspi_pay" && (o != null && o.isAvailable) && u && !d)
2333
+ return Z;
2334
+ if ((Q == null ? void 0 : Q.type) === "apple_pay" && T) return rt;
2335
+ if ((Q == null ? void 0 : Q.type) === "google_pay" && v) return ot;
2336
+ if ((Q == null ? void 0 : Q.type) === "new_card" && K(i.payment_method_new_card))
2337
+ return { iconType: "new_card", type: "new_card", label: "Оплата новой картой" };
2338
+ if ((Q == null ? void 0 : Q.type) === "card" && c) {
2339
+ const L = Q.cardId != null ? s.find((O) => !O.isExpired && String(O.id) === Q.cardId) : null;
2340
+ if (L)
2341
+ return {
2342
+ iconType: fe(L.attributes.mask),
2343
+ type: "card",
2344
+ cardId: L.id,
2345
+ label: `•••• ${L.attributes.mask.slice(-4)}`,
2346
+ cardType: L.type
2347
+ };
2348
+ }
2349
+ if (c) {
2350
+ const L = s.find((O) => {
2351
+ var F;
2352
+ return ((F = O.attributes) == null ? void 0 : F.isDefault) && !O.isExpired;
2353
+ });
2354
+ if (L)
2355
+ return {
2356
+ iconType: fe(L.attributes.mask),
2357
+ type: "card",
2358
+ cardId: L.id,
2359
+ label: `•••• ${L.attributes.mask.slice(-4)}`,
2360
+ cardType: L.type
2361
+ };
2362
+ }
2363
+ if (o != null && o.isAvailable && u && !d) return Z;
2364
+ const _ = c ? s.find((L) => !L.isExpired) : null;
2365
+ return _ ? {
2366
+ iconType: fe(_.attributes.mask),
2367
+ type: "card",
2368
+ cardId: _.id,
2369
+ label: `••••${_.attributes.mask.slice(-4)}`,
2370
+ cardType: _.type
2371
+ } : null;
2372
+ }
2373
+ function st(e) {
2374
+ if (typeof localStorage > "u") return null;
2375
+ try {
2376
+ return localStorage.getItem(e);
2377
+ } catch {
2378
+ return null;
2379
+ }
2380
+ }
2381
+ function Le(e, n) {
2382
+ if (!(typeof localStorage > "u"))
2383
+ try {
2384
+ localStorage.setItem(e, n);
2385
+ } catch {
2386
+ }
2387
+ }
2388
+ function me(e) {
2389
+ if (!(typeof localStorage > "u"))
2390
+ try {
2391
+ localStorage.removeItem(e);
2392
+ } catch {
2393
+ }
2394
+ }
2395
+ async function Lt(e, n) {
2396
+ var o;
2397
+ try {
2398
+ const s = await e.json(), i = (o = s == null ? void 0 : s.errors) == null ? void 0 : o[0];
2399
+ return (i == null ? void 0 : i.title) || (i == null ? void 0 : i.detail) || (s == null ? void 0 : s.message) || (s == null ? void 0 : s.error) || n;
2400
+ } catch {
2401
+ return `HTTP ${e.status}: ${e.statusText}`;
2402
+ }
2403
+ }
2404
+ async function te(e, n) {
2405
+ const o = await Lt(e, n);
2406
+ throw Object.assign(new Error(o), { status: e.status });
2407
+ }
2408
+ function Be(e, n, o = {}) {
2409
+ const s = Number.isFinite(o.checkoutAmount) && o.checkoutAmount >= 0 ? Number(o.checkoutAmount) : e.amount, i = !!o.forceBalanceMethod, u = !!o.useBalance;
2410
+ return {
2411
+ checkoutAmount: s,
2412
+ checkoutPaymentMethod: i ? { type: "balance" } : n,
2413
+ useBalanceFlag: u
2414
+ };
2415
+ }
2416
+ function Ie(e, n, o, s) {
2417
+ return {
2418
+ preorder_id: e.preorderId,
2419
+ terminal_id: e.terminalId,
2420
+ merchant_order_id: e.merchantOrderId,
2421
+ money: {
2422
+ amount: String(o),
2423
+ currency: e.currency
2424
+ },
2425
+ payment_method: n,
2426
+ ...e.backlink && { backlink: e.backlink },
2427
+ ...s && { use_balance: !0 }
2428
+ };
2429
+ }
2430
+ async function Qe(e, n, o, s, i) {
2431
+ const u = await fetch(`${e}/orders/v1/checkout`, {
2432
+ method: "POST",
2433
+ headers: {
2434
+ "Content-Type": "application/json",
2435
+ Authorization: `Bearer ${n.accessToken}`,
2436
+ "X-Idempotency-Key": ve(),
2437
+ "X-Device-Id": o,
2438
+ "X-OS": "WEB"
2439
+ },
2440
+ body: JSON.stringify(s)
2441
+ });
2442
+ return u.ok || await te(u, i), u.json();
2443
+ }
2444
+ async function Rt(e, n, o) {
2445
+ var d, g, C, S;
2446
+ const s = await fetch(`${e}/api/v2/oauth2/tokens`, {
2447
+ method: "POST",
2448
+ headers: {
2449
+ "Content-Type": "application/json",
2450
+ "X-Idempotency-Key": ve(),
2451
+ "X-Fingerprint": tt()
2452
+ },
2453
+ body: JSON.stringify({
2454
+ client_id: n,
2455
+ grant_type: "authorization_track_id",
2456
+ track_id: o
2457
+ })
2458
+ });
2459
+ s.ok || await te(s, "Не удалось авторизоваться через track_id");
2460
+ const i = await s.json(), u = (i == null ? void 0 : i.access_token) ?? ((g = (d = i == null ? void 0 : i.data) == null ? void 0 : d.attributes) == null ? void 0 : g.access_token), c = (i == null ? void 0 : i.refresh_token) ?? ((S = (C = i == null ? void 0 : i.data) == null ? void 0 : C.attributes) == null ? void 0 : S.refresh_token) ?? null;
2461
+ if (!u) throw new Error("В ответе отсутствует access_token");
2462
+ return { access_token: u, refresh_token: c };
2463
+ }
2464
+ async function Ot(e, n, o) {
2465
+ var d, g, C, S;
2466
+ const s = await fetch(`${e}/api/v2/oauth2/tokens`, {
2467
+ method: "POST",
2468
+ headers: { "Content-Type": "application/json" },
2469
+ body: JSON.stringify({
2470
+ client_id: n,
2471
+ grant_type: "refresh_token",
2472
+ refresh_token: o
2473
+ })
2474
+ });
2475
+ s.ok || await te(s, "Не удалось обновить токен по refresh_token");
2476
+ const i = await s.json(), u = (i == null ? void 0 : i.access_token) ?? ((g = (d = i == null ? void 0 : i.data) == null ? void 0 : d.attributes) == null ? void 0 : g.access_token), c = (i == null ? void 0 : i.refresh_token) ?? ((S = (C = i == null ? void 0 : i.data) == null ? void 0 : C.attributes) == null ? void 0 : S.refresh_token) ?? null;
2477
+ if (!u) throw new Error("В ответе отсутствует access_token");
2478
+ return { access_token: u, refresh_token: c };
2479
+ }
2480
+ async function Re(e, n) {
2481
+ const o = await fetch(`${e}/orders/v1/checkout/context`, {
2482
+ method: "POST",
2483
+ headers: {
2484
+ "Content-Type": "application/json",
2485
+ Authorization: `Bearer ${n.accessToken}`,
2486
+ "X-Idempotency-Key": ve()
2487
+ },
2488
+ body: JSON.stringify({
2489
+ terminal_id: n.terminalId,
2490
+ include: ["cards", "payment_methods", "balance", "cashback"],
2491
+ money: {
2492
+ amount: String(n.amount),
2493
+ currency: n.currency
2494
+ }
2495
+ })
2496
+ });
2497
+ return o.ok || await te(o, "Ошибка получения контекста оплаты"), o.json();
2498
+ }
2499
+ async function Mt(e, n, o) {
2500
+ const s = await fetch(`${e}/payment-gateway/v1/cards/${o}`, {
2501
+ method: "DELETE",
2502
+ headers: {
2503
+ "Content-Type": "application/json",
2504
+ Authorization: `Bearer ${n.accessToken}`
2505
+ }
2506
+ });
2507
+ return s.ok || await te(s, "Не удалось удалить карту"), s.json().catch(() => ({}));
2508
+ }
2509
+ async function Nt(e, n, o) {
2510
+ const s = await fetch(
2511
+ `${e}/payment-gateway/v1/cards/${o}/mark_as_default`,
2512
+ {
2513
+ method: "PUT",
2514
+ headers: {
2515
+ "Content-Type": "application/json",
2516
+ Authorization: `Bearer ${n.accessToken}`
2517
+ }
2518
+ }
2519
+ );
2520
+ return s.ok || await te(s, "Не удалось отметить карту как основную"), s.json().catch(() => ({}));
2521
+ }
2522
+ async function Dt(e, n, o) {
2523
+ const s = await fetch(`${e}/orders/v1/orders/${o}/status`, {
2524
+ method: "GET",
2525
+ headers: {
2526
+ "Content-Type": "application/json",
2527
+ Authorization: `Bearer ${n.accessToken}`
2528
+ }
2529
+ });
2530
+ if (!s.ok)
2531
+ throw Object.assign(
2532
+ new Error(`Ошибка проверки статуса заказа: ${s.status} ${s.statusText}`),
2533
+ { status: s.status }
2534
+ );
2535
+ const i = await s.json(), u = (i == null ? void 0 : i.data) ?? i;
2536
+ return { data: { status: u == null ? void 0 : u.status, payload: (u == null ? void 0 : u.payload) ?? {} } };
2537
+ }
2538
+ async function Ye(e, n, o, s, i = {}) {
2539
+ const { checkoutAmount: u, checkoutPaymentMethod: c, useBalanceFlag: d } = Be(
2540
+ n,
2541
+ {
2542
+ type: s.type,
2543
+ ...s.cardId && { card_id: s.cardId }
2544
+ },
2545
+ i
2546
+ );
2547
+ return Qe(
2548
+ e,
2549
+ n,
2550
+ o,
2551
+ Ie(n, c, u, d),
2552
+ "Ошибка создания заказа"
2553
+ );
2554
+ }
2555
+ async function Xt(e, n, o, s = {}) {
2556
+ const { checkoutAmount: i, checkoutPaymentMethod: u, useBalanceFlag: c } = Be(
2557
+ n,
2558
+ { type: "new_card" },
2559
+ s
2560
+ );
2561
+ return Qe(
2562
+ e,
2563
+ n,
2564
+ o,
2565
+ Ie(n, u, i, c),
2566
+ "Ошибка создания заказа для новой карты"
2567
+ );
2568
+ }
2569
+ async function Ut(e, n, o) {
2570
+ const s = window.location.hostname, i = await fetch(`${e}/payment-gateway/v1/apple/session`, {
2571
+ method: "POST",
2572
+ headers: {
2573
+ "Content-Type": "application/json",
2574
+ Accept: "application/vnd.api+json",
2575
+ Authorization: `Bearer ${n.accessToken}`
2576
+ },
2577
+ body: JSON.stringify({ validationUrl: o, domainName: s })
2578
+ });
2579
+ return i.ok || await te(i, "Ошибка получения Apple Pay сессии"), i.json();
2580
+ }
2581
+ async function Ht(e, n, o, s, i = {}) {
2582
+ const { checkoutAmount: u, checkoutPaymentMethod: c, useBalanceFlag: d } = Be(
2583
+ n,
2584
+ { type: "apple_pay", data: s },
2585
+ i
2586
+ );
2587
+ return Qe(
2588
+ e,
2589
+ n,
2590
+ o,
2591
+ Ie(n, c, u, d),
2592
+ "Ошибка создания заказа с Apple Pay"
2593
+ );
2594
+ }
2595
+ async function xt(e, n, o, s, i = {}) {
2596
+ const { checkoutAmount: u, checkoutPaymentMethod: c, useBalanceFlag: d } = Be(
2597
+ n,
2598
+ { type: "google_pay", data: s },
2599
+ i
2600
+ );
2601
+ return Qe(
2602
+ e,
2603
+ n,
2604
+ o,
2605
+ Ie(n, c, u, d),
2606
+ "Ошибка создания заказа с Google Pay"
2607
+ );
2608
+ }
2609
+ function Ft(e) {
2610
+ const n = typeof e.color == "string" ? e.color.trim() : "", o = n && /^[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/.test(n) ? `#${n}` : n, s = e.bonuses, i = s && typeof s == "object" && Number.isFinite(s.amount) && Number.isFinite(s.percent) ? {
2611
+ availableBonus: Number.isFinite(s.availableBonus) ? Number(s.availableBonus) : 0,
2612
+ amount: Number(s.amount),
2613
+ percent: Number(s.percent)
2614
+ } : null;
2615
+ return {
2616
+ preorderId: e.preorderId,
2617
+ trackId: e.trackId,
2618
+ clientId: e.clientId,
2619
+ terminalId: e.terminalId,
2620
+ merchantOrderId: e.merchantOrderId,
2621
+ amount: e.amount,
2622
+ currency: e.currency || "KZT",
2623
+ environment: e.environment || "production",
2624
+ backlink: e.backlink,
2625
+ onSuccess: e.onSuccess || (() => {
2626
+ }),
2627
+ onAppliedBonus: e.onAppliedBonus || (() => {
2628
+ }),
2629
+ onError: e.onError || (() => {
2630
+ }),
2631
+ onCancel: e.onCancel || (() => {
2632
+ }),
2633
+ onCardDeleted: typeof e.onCardDeleted == "function" ? e.onCardDeleted : null,
2634
+ onConfirmPay: typeof e.onConfirmPay == "function" ? e.onConfirmPay : null,
2635
+ onPaymentMethodSelected: typeof e.onPaymentMethodSelected == "function" ? e.onPaymentMethodSelected : null,
2636
+ onKaspiLink: typeof e.onKaspiLink == "function" ? e.onKaspiLink : null,
2637
+ onUserEvent: typeof e.onUserEvent == "function" ? e.onUserEvent : null,
2638
+ onBeforeCheckout: typeof e.onBeforeCheckout == "function" ? e.onBeforeCheckout : null,
2639
+ locale: e.locale || "ru",
2640
+ containerSelector: typeof e.containerSelector == "string" ? e.containerSelector.trim() : "",
2641
+ color: o || "#2F2F2F",
2642
+ onlyKaspiAvailable: !!e.onlyKaspiAvailable,
2643
+ disableKaspi: !!e.disableKaspi,
2644
+ bonuses: i
2645
+ };
2646
+ }
2647
+ function Oe(e, n) {
2648
+ Le("webPayToken", e), n && Le("webPayRefreshToken", n);
2649
+ }
2650
+ function Ge() {
2651
+ me("webPayToken"), me("webPayRefreshToken");
2652
+ }
2653
+ async function Jt(e) {
2654
+ const n = st("webPayRefreshToken");
2655
+ if (n && e.config.clientId)
2656
+ try {
2657
+ const s = await Ot(
2658
+ e.apiUrl,
2659
+ e.config.clientId,
2660
+ n
2661
+ );
2662
+ Oe(s.access_token, s.refresh_token), e.accessToken = s.access_token;
2663
+ return;
2664
+ } catch {
2665
+ me("webPayRefreshToken");
2666
+ }
2667
+ if (!e.config.trackId || !e.config.clientId) {
2668
+ e.config.onError({ attributes: { message: e.t("errorMissingTrackClient") } });
2669
+ return;
2670
+ }
2671
+ const o = await Rt(
2672
+ e.apiUrl,
2673
+ e.config.clientId,
2674
+ e.config.trackId
2675
+ );
2676
+ Oe(o.access_token, o.refresh_token), e.accessToken = o.access_token;
2677
+ }
2678
+ const qt = `<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2679
+ <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"/>
2680
+ </svg>
2681
+ `, jt = `<svg width="21" height="12" viewBox="0 0 21 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2682
+ <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"/>
2683
+ <path d="M7.79163 5.99984H13.2083M10.5 3.2915L10.5 8.70817" stroke="#242424" stroke-width="0.8125" stroke-linecap="round"/>
2684
+ </svg>
2685
+ `, zt = `<svg width="29" height="12" viewBox="0 0 29 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2686
+ <g clip-path="url(#clip0_22788_48734)">
2687
+ <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"/>
2688
+ </g>
2689
+ <defs>
2690
+ <clipPath id="clip0_22788_48734">
2691
+ <rect width="29" height="11.9059" fill="white"/>
2692
+ </clipPath>
2693
+ </defs>
2694
+ </svg>
2695
+ `, Kt = `<svg width="52" height="21" viewBox="0 0 52 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2696
+ <g clip-path="url(#clip0_23934_4296)">
2697
+ <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"/>
2698
+ <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"/>
2699
+ <path d="M52.0036 5.91357L45.5914 20.6499H43.609L45.9886 15.4937L41.7722 5.91357H43.8595L46.907 13.2609H46.9487L49.9127 5.91357H52.0036Z" fill="black"/>
2700
+ <path d="M16.8344 8.78341C16.8351 8.19819 16.7856 7.61399 16.6865 7.03723H8.58777V10.3447H13.2263C13.1314 10.873 12.9305 11.3765 12.6357 11.825C12.341 12.2736 11.9584 12.6577 11.5112 12.9544V15.1014H14.2795C15.9005 13.6069 16.8344 11.3967 16.8344 8.78341Z" fill="#4285F4"/>
2701
+ <path d="M8.58771 17.1755C10.9052 17.1755 12.8565 16.4145 14.2795 15.1025L11.5111 12.9555C10.7406 13.478 9.74825 13.7762 8.58771 13.7762C6.34774 13.7762 4.44651 12.2661 3.76664 10.2313H0.914795V12.4439C1.62957 13.8662 2.72559 15.0618 4.0805 15.8974C5.43541 16.7329 6.99589 17.1754 8.58771 17.1755Z" fill="#34A853"/>
2702
+ <path d="M3.76666 10.2313C3.40724 9.16504 3.40724 8.01036 3.76666 6.94411V4.73157H0.914808C0.313518 5.92807 0.000366211 7.24861 0.000366211 8.5877C0.000366211 9.9268 0.313518 11.2473 0.914808 12.4438L3.76666 10.2313Z" fill="#FBBC04"/>
2703
+ <path d="M8.58771 3.39927C9.8124 3.37926 10.9958 3.84199 11.8821 4.68743L14.3331 2.23635C12.7789 0.776519 10.7199 -0.0249503 8.58771 -4.6915e-05C6.99589 2.56337e-05 5.43541 0.442526 4.0805 1.27805C2.72559 2.11358 1.62957 3.30924 0.914795 4.73156L3.76664 6.9441C4.44651 4.90928 6.34774 3.39927 8.58771 3.39927Z" fill="#EA4335"/>
2704
+ </g>
2705
+ <defs>
2706
+ <clipPath id="clip0_23934_4296">
2707
+ <rect width="52" height="20.65" fill="white"/>
2708
+ </clipPath>
2709
+ </defs>
2710
+ </svg>
2711
+ `, Vt = `<svg width="25" height="12" viewBox="0 0 25 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2712
+ <rect width="25" height="11.5385" rx="2.88462" fill="#00579F"/>
2713
+ <g clip-path="url(#clip0_22788_48747)">
2714
+ <path d="M9.84078 8.57012H8.36084L9.2865 2.98535H10.7664L9.84078 8.57012Z" fill="white"/>
2715
+ <path d="M15.2055 3.12204C14.9136 3.00904 14.4506 2.88428 13.8781 2.88428C12.4166 2.88428 11.3875 3.64472 11.3812 4.73192C11.369 5.53405 12.118 5.97957 12.6782 6.24703C13.2508 6.52033 13.4454 6.69871 13.4454 6.94232C13.4396 7.31646 12.9827 7.48892 12.5567 7.48892C11.9658 7.48892 11.6492 7.40001 11.1681 7.19185L10.9732 7.10262L10.7661 8.35628C11.1132 8.51058 11.7527 8.64751 12.4166 8.65351C13.9695 8.65351 14.9805 7.90484 14.9924 6.74625C14.9983 6.1105 14.6028 5.62336 13.7502 5.22529C13.2326 4.96976 12.9156 4.79746 12.9156 4.536C12.9216 4.29832 13.1837 4.05486 13.768 4.05486C14.2491 4.04294 14.6026 4.15578 14.8704 4.2687L15.0042 4.32801L15.2055 3.12204Z" fill="white"/>
2716
+ <path d="M17.1724 6.59164C17.2943 6.2708 17.7633 5.02906 17.7633 5.02906C17.7571 5.04099 17.8849 4.7023 17.958 4.49439L18.0614 4.9756C18.0614 4.9756 18.3416 6.31241 18.4025 6.59164C18.1712 6.59164 17.4647 6.59164 17.1724 6.59164ZM18.9992 2.98535H17.8545C17.5014 2.98535 17.2333 3.08627 17.0809 3.44872L14.8827 8.57004H16.4355C16.4355 8.57004 16.6912 7.88075 16.7461 7.73229C16.9165 7.73229 18.4271 7.73229 18.6463 7.73229C18.6887 7.92837 18.8228 8.57004 18.8228 8.57004H20.1931L18.9992 2.98535Z" fill="white"/>
2717
+ <path d="M7.1249 2.98535L5.67556 6.79363L5.51718 6.02127C5.24923 5.13006 4.40887 4.16178 3.47107 3.68033L4.79862 8.5642H6.36361L8.68981 2.98535H7.1249Z" fill="white"/>
2718
+ <path d="M4.3295 2.98535H1.94843L1.92407 3.09819C3.78146 3.56164 5.01157 4.67877 5.51696 6.0215L4.99935 3.4548C4.91413 3.09811 4.65225 2.99712 4.3295 2.98535Z" fill="white"/>
2719
+ </g>
2720
+ <defs>
2721
+ <clipPath id="clip0_22788_48747">
2722
+ <rect width="18.2692" height="5.76923" fill="white" transform="translate(1.9231 2.88477)"/>
2723
+ </clipPath>
2724
+ </defs>
2725
+ </svg>
2726
+ `, Wt = `<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">
2727
+ <rect width="36" height="22" fill="url(#pattern0_23934_927)"/>
2728
+ <defs>
2729
+ <pattern id="pattern0_23934_927" patternContentUnits="objectBoundingBox" width="1" height="1">
2730
+ <use xlink:href="#image0_23934_927" transform="matrix(0.00101112 0 0 0.00157457 0 -0.00158229)"/>
2731
+ </pattern>
2732
+ <image id="image0_23934_927" width="989" height="768" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
2733
+ </defs>
2734
+ </svg>
2735
+ `, Yt = {
2736
+ kaspi_pay: qt,
2737
+ new_card: jt,
2738
+ apple_pay: zt,
2739
+ google_pay: Kt,
2740
+ visa: Vt,
2741
+ mastercard: Wt
2742
+ };
2743
+ function Gt(e) {
2744
+ const n = e == null ? void 0 : e.toLowerCase();
2745
+ return n && Yt[n] || "";
2746
+ }
2747
+ const it = `<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2748
+ <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"/>
2749
+ </svg>
2750
+ `, Zt = '<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>', $t = '<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>';
2751
+ function be(e) {
2752
+ return Gt(e == null ? void 0 : e.iconType);
2753
+ }
2754
+ function at(e, n, o, s = {}) {
2755
+ const { editMode: i = !1 } = s;
2756
+ return (i ? e.filter((c) => c.type === "card") : e).map((c) => {
2757
+ const d = !i && !!n && n.type === c.type && n.cardId === c.cardId, g = JSON.stringify(c).replace(/'/g, "&apos;");
2758
+ return i ? `
2759
+ <div
2760
+ class="choco-widget-method-item choco-widget-method-item--edit"
2761
+ role="listitem"
2762
+ >
2763
+ <div class="choco-widget-method-item-icon-wrapper" aria-hidden="true">${be(c)}</div>
2764
+ <div class="choco-widget-method-item-label">${c.label}</div>
2765
+ <button
2766
+ type="button"
2767
+ class="choco-widget-method-item-trash-btn"
2768
+ data-action="delete-card"
2769
+ data-method='${g}'
2770
+ aria-label="${c.label} — Удалить"
2771
+ >
2772
+ ${Zt}
2773
+ </button>
2774
+ </div>
2775
+ ` : `
2776
+ <button
2777
+ class="choco-widget-method-item ${d ? "choco-widget-method-item--selected" : ""}"
2778
+ data-method='${g}'
2779
+ data-action="select-method"
2780
+ role="listitem"
2781
+ aria-label="${c.label}${d ? " (выбрано)" : ""}"
2782
+ type="button"
2783
+ >
2784
+ <div class="choco-widget-method-item-icon-wrapper ${c.type}" aria-hidden="true">${be(c)}</div>
2785
+ <div class="choco-widget-method-item-label">${c.label}</div>
2786
+ ${d ? $t : ""}
2787
+ </button>
2788
+ `;
2789
+ }).join("");
2790
+ }
2791
+ function en(e, n, o, s) {
2792
+ if (!e) return "";
2793
+ const i = typeof e.amount == "number" && Number.isFinite(e.amount), u = typeof e.percent == "number" && Number.isFinite(e.percent);
2794
+ return `
2795
+ <div class="choco-widget-balance-toggle" data-action="toggle-bonuses">
2796
+ <div class="choco-widget-balance-info">
2797
+ <div class="choco-widget-balance-text">
2798
+ <div class="choco-widget-balance-label">${o("bonus")}</div>
2799
+ <div class="choco-widget-balance-sublabel">${o("bonusText", { amount: u ? e.percent : 0 })}</div>
2800
+ </div>
2801
+ </div>
2802
+ <div class="choco-widget-balance-label-wrapper">
2803
+ <div class="choco-widget-balance-icon">
2804
+ ${it}
2805
+ </div>
2806
+ <div class="choco-widget-balance-amount">${i ? G(e.amount, "ru", s) : 0}</div>
2807
+ <label class="choco-widget-toggle">
2808
+ <input type="checkbox" ${n ? "checked" : ""} />
2809
+ <span class="choco-widget-toggle-slider"></span>
2810
+ </label>
2811
+ </div>
2812
+ </div>
2813
+ `;
2814
+ }
2815
+ function tn(e, n, o, s, i, u) {
2816
+ return !e && !o ? "" : `
2817
+ <div class="choco-widget-balance-section">
2818
+ ${e ? `
2819
+ <div class="choco-widget-balance-toggle" data-action="toggle-balance">
2820
+ <div class="choco-widget-balance-info">
2821
+ <div class="choco-widget-balance-text">
2822
+ <div class="choco-widget-balance-label">${i("balance")}</div>
2823
+ </div>
2824
+ </div>
2825
+ <div class="choco-widget-balance-label-wrapper">
2826
+ <div class="choco-widget-balance-icon">
2827
+ ${it}
2828
+ </div>
2829
+ <div class="choco-widget-balance-amount">${e}</div>
2830
+ <label class="choco-widget-toggle">
2831
+ <input type="checkbox" ${n ? "checked" : ""} />
2832
+ <span class="choco-widget-toggle-slider"></span>
2833
+ </label>
2834
+ </div>
2835
+ </div>
2836
+ ` : ""}
2837
+ ${en(o, s, i, u)}
2838
+ </div>
2839
+ `;
2840
+ }
2841
+ function nn(e, n) {
2842
+ return e ? `
2843
+ <div class="choco-widget-cashback-section">
2844
+ <div class="choco-widget-cashback-info">
2845
+ <span class="choco-widget-cashback-icon">🎁</span>
2846
+ <span class="choco-widget-cashback-text">
2847
+ ${n("willGet")} <strong>${e}</strong> ${n("cashback").toLowerCase()}
2848
+ </span>
2849
+ </div>
2850
+ </div>
2851
+ ` : "";
2852
+ }
2853
+ function rn(e) {
2854
+ const {
2855
+ amountFormatted: n,
2856
+ originalAmountFormatted: o,
2857
+ showOriginalAmount: s = !1,
2858
+ paymentMethod: i,
2859
+ methods: u,
2860
+ selectedMethod: c,
2861
+ balanceFormatted: d,
2862
+ useBalance: g,
2863
+ bonuses: C,
2864
+ useBonuses: S,
2865
+ cashbackFormatted: T,
2866
+ disabled: v,
2867
+ paymentMethodDisabled: Q = !1,
2868
+ loading: _,
2869
+ t: m,
2870
+ currency: P
2871
+ } = e, k = (i == null ? void 0 : i.label) ?? m("selectMethod"), w = be(i), L = at(u, c), O = tn(d, g, C, S, m, P), F = nn(T, m), M = (c == null ? void 0 : c.type) === "google_pay", J = (c == null ? void 0 : c.type) === "apple_pay", x = M || J;
2872
+ return `
2873
+ <div class="choco-widget-bottom-bar" role="region" aria-label="${m("paymentMethod")}">
2874
+ ${O}
2875
+ <div class="choco-widget-payment-info">
2876
+ <div class="choco-widget-payment-info-main">
2877
+ <button
2878
+ class="choco-widget-payment-method ${(i == null ? void 0 : i.type) || ""}"
2879
+ data-action="change-method"
2880
+ aria-label="${m("paymentMethod")}: ${k}"
2881
+ type="button"
2882
+ ${Q || v || _ ? "disabled" : ""}
2883
+ >
2884
+ <div class="choco-widget-method-label">${m("paymentMethod")}</div>
2885
+ <div class="choco-widget-method-value">
2886
+ <div class="choco-widget-method-icon-wrapper ${i == null ? void 0 : i.type}" aria-hidden="true">${w}</div>
2887
+ <div class="choco-widget-method-details">
2888
+ <div class="choco-widget-method-name ${i == null ? void 0 : i.type}">${k}</div>
2889
+ <div class="choco-widget-method-chevron">
2890
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2891
+ <path d="M8 10L12 14L16 10" stroke="#242424" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2892
+ </svg>
2893
+ </div>
2894
+ </div>
2895
+ </div>
2896
+ </button>
2897
+ <div class="choco-widget-google-pay-amount ${x ? "" : "choco-widget-google-pay-amount--hidden"}" aria-live="polite">
2898
+ <div class="choco-widget-google-pay-amount-label">${m("total")} ${n}</div>
2899
+ ${s ? `<div class="choco-widget-google-pay-amount-value">${m("instead")} <span class="choco-widget-google-pay-amount-value-number">${o || ""}</span></div>` : ""}
2900
+ </div>
2901
+ <button
2902
+ class="choco-widget-pay-button ${_ ? "choco-widget-pay-button--loading" : ""} ${x ? "choco-widget-pay-button--hidden" : ""}"
2903
+ data-action="pay"
2904
+ aria-label="${m("pay")} ${n}"
2905
+ type="button"
2906
+ ${v || _ ? "disabled" : ""}
2907
+ >
2908
+ ${m("pay")} ${n}
2909
+ </button>
2910
+ </div>
2911
+ <div class="choco-widget-google-pay-row ${M ? "" : "choco-widget-google-pay-row--hidden"}">
2912
+ <div class="choco-widget-google-pay-button-slot" data-action="google-pay-button-slot"></div>
2913
+ </div>
2914
+ <div class="choco-widget-apple-pay-row ${J ? "" : "choco-widget-apple-pay-row--hidden"}">
2915
+ <div class="choco-widget-apple-pay-button-slot" data-action="apple-pay-button-slot"></div>
2916
+ </div>
2917
+ </div>
2918
+ </div>
2919
+
2920
+ <div
2921
+ class="choco-widget-payment-sheet"
2922
+ data-sheet="payment"
2923
+ role="dialog"
2924
+ aria-modal="true"
2925
+ aria-labelledby="choco-sheet-title"
2926
+ >
2927
+ <div class="choco-widget-sheet-content">
2928
+ <div class="choco-widget-sheet-grabber" data-action="sheet-drag-handle" aria-hidden="true"></div>
2929
+ <div class="choco-widget-sheet-header">
2930
+ <button
2931
+ class="choco-widget-sheet-button"
2932
+ data-action="close-sheet"
2933
+ aria-label="Закрыть"
2934
+ type="button"
2935
+ >
2936
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true">
2937
+ <path d="M15 18L9 12L15 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
2938
+ </svg>
2939
+ </button>
2940
+ <h3 class="choco-widget-sheet-title" id="choco-sheet-title">${m("paymentMethods")}</h3>
2941
+ <button
2942
+ class="choco-widget-sheet-button choco-widget-sheet-button--edit"
2943
+ data-action="edit-sheet"
2944
+ aria-label="Редактировать"
2945
+ type="button"
2946
+ >
2947
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2948
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5.293 15.619L15.619 5.29299C16.009 4.90299 16.642 4.90299 17.032 5.29299L18.708 6.96899C19.098 7.35899 19.098 7.99199 18.708 8.38199L8.381 18.707C8.194 18.895 7.94 19 7.675 19H5V16.325C5 16.06 5.105 15.806 5.293 15.619Z" stroke="#242424" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2949
+ <path d="M13.75 7.16016L16.84 10.2502" stroke="#242424" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2950
+ </svg>
2951
+ </button>
2952
+ <button
2953
+ class="choco-widget-sheet-button choco-widget-sheet-button--previous"
2954
+ data-action="previous-sheet"
2955
+ aria-label="${m("back")}"
2956
+ type="button"
2957
+ style="display: none;"
2958
+ >
2959
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2960
+ <rect width="24" height="24" fill="white"/>
2961
+ <path d="M19.347 5.84683L18.153 4.65283L12 10.8058L5.84695 4.65283L4.65295 5.84683L10.806 11.9998L4.65295 18.1528L5.84695 19.3468L12 13.1938L18.153 19.3468L19.347 18.1528L13.194 11.9998L19.347 5.84683Z" fill="black"/>
2962
+ </svg>
2963
+ </button>
2964
+ </div>
2965
+ <div class="choco-widget-payment-methods" role="list">
2966
+ ${L}
2967
+ </div>
2968
+ <div class="choco-widget-sheet-delete-confirm" data-delete-confirm="content" aria-hidden="true">
2969
+ <div class="choco-widget-sheet-delete-confirm-actions">
2970
+ <button type="button" class="choco-widget-delete-confirm-btn choco-widget-delete-confirm-btn--cancel" data-action="confirm-delete-cancel">${m("cancel")}</button>
2971
+ <button type="button" class="choco-widget-delete-confirm-btn choco-widget-delete-confirm-btn--delete" data-action="confirm-delete-submit">${m("delete")}</button>
2972
+ </div>
2973
+ </div>
2974
+ ${F}
2975
+ </div>
2976
+ </div>
2977
+
2978
+ <div class="choco-widget-add-card-sheet choco-widget-payment-sheet" data-sheet="add-card" aria-hidden="true" style="display: none;">
2979
+ <div class="choco-widget-sheet-content choco-widget-add-card-sheet-content">
2980
+ <div class="choco-widget-sheet-header">
2981
+ <h3 class="choco-widget-sheet-title">${m("addCard")}</h3>
2982
+ </div>
2983
+ <div class="choco-widget-add-card-iframe-wrapper">
2984
+ <iframe id="choco-widget-add-card-iframe" class="choco-widget-add-card-iframe" title="${m("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>
2985
+ </div>
2986
+ </div>
2987
+ </div>
2988
+ `;
2989
+ }
2990
+ function on() {
2991
+ return `
2992
+ <div class="choco-widget-bottom-bar-prerender">
2993
+ <div class="choco-widget-payment-loading"></div>
2994
+ </div>
2995
+ `;
2996
+ }
2997
+ function sn(e, n, o, s = {}) {
2998
+ return at(e, n, o, s);
2999
+ }
3000
+ function an(e) {
3001
+ return be(e);
3002
+ }
3003
+ function cn(e) {
3004
+ if (typeof document > "u") return { mountTarget: null, isEmbedded: !1 };
3005
+ const n = e.config.containerSelector;
3006
+ if (n) {
3007
+ const o = document.querySelector(n);
3008
+ if (o instanceof HTMLElement) return { mountTarget: o, isEmbedded: !0 };
3009
+ }
3010
+ return { mountTarget: document.body, isEmbedded: !1 };
3011
+ }
3012
+ function ct(e) {
3013
+ if (typeof document > "u") return !1;
3014
+ e.container || (e.container = document.createElement("div"), e.container.id = "choco-one-click-widget", e.container.className = "choco-one-click-widget");
3015
+ const { mountTarget: n, isEmbedded: o } = cn(e);
3016
+ return n ? (e.container.parentElement !== n && n.appendChild(e.container), e.container.classList.toggle("choco-one-click-widget--embedded", o), !0) : !1;
3017
+ }
3018
+ function An(e) {
3019
+ ct(e) && (e.container.style.setProperty("--choco-widget-accent-color", e.config.color), e.container.innerHTML = on());
3020
+ }
3021
+ function un(e) {
3022
+ var S, T, v, Q, _;
3023
+ if (!ct(e)) return;
3024
+ e.container.style.setProperty("--choco-widget-accent-color", e.config.color), e.container.classList.remove("choco-one-click-widget--visible");
3025
+ const n = e.getAvailablePaymentMethods(), o = (S = e.checkoutContext) == null ? void 0 : S.data, s = e.config.currency || "KZT", i = (Q = (v = (T = o == null ? void 0 : o.balance) == null ? void 0 : T.data) == null ? void 0 : v.money) == null ? void 0 : Q[s], u = i > 0 ? G(i, e.config.locale, e.config.currency) : null, c = (_ = o == null ? void 0 : o.cashback) == null ? void 0 : _.data, d = (c == null ? void 0 : c.cashbackAmount) > 0 ? G(c.cashbackAmount, e.config.locale, e.config.currency) : null, g = e._getPayableAmount(), C = g < e.config.amount;
3026
+ e.container.innerHTML = rn({
3027
+ amountFormatted: G(g, e.config.locale, e.config.currency),
3028
+ originalAmountFormatted: G(
3029
+ e.config.amount,
3030
+ e.config.locale,
3031
+ e.config.currency
3032
+ ),
3033
+ showOriginalAmount: C,
3034
+ paymentMethod: e.selectedPaymentMethod,
3035
+ methods: n,
3036
+ selectedMethod: e.selectedPaymentMethod,
3037
+ balanceFormatted: u,
3038
+ useBalance: e.useBalance,
3039
+ bonuses: e.config.bonuses,
3040
+ useBonuses: e.useBonuses,
3041
+ cashbackFormatted: d,
3042
+ disabled: e.disabled,
3043
+ paymentMethodDisabled: e.paymentMethodDisabled,
3044
+ loading: e.loading,
3045
+ t: (m, P) => e.t(m, P),
3046
+ currency: s
3047
+ }), e._attachEventListeners(), e.isOpen = !0, e._emitUserEvent("one_click_pay_cta_rendered", {
3048
+ terminal_id: e.config.terminalId,
3049
+ project_id: e.config.clientId
3050
+ }), e._emitUserEvent("one_click_pay_method_resolved", {
3051
+ payment_method: e._getPaymentMethodForUserEvent()
3052
+ }), requestAnimationFrame(() => {
3053
+ requestAnimationFrame(() => {
3054
+ var m;
3055
+ (m = e.container) == null || m.classList.add("choco-one-click-widget--visible");
3056
+ });
3057
+ });
3058
+ }
3059
+ function ae(e) {
3060
+ var s;
3061
+ const n = (s = e.container) == null ? void 0 : s.querySelector(
3062
+ ".choco-widget-payment-methods"
3063
+ );
3064
+ if (!n) return;
3065
+ const o = e.getAvailablePaymentMethods();
3066
+ n.innerHTML = sn(
3067
+ o,
3068
+ e.selectedPaymentMethod,
3069
+ (i) => e.t(i),
3070
+ { editMode: e.isPaymentSheetEditMode }
3071
+ ), n.querySelectorAll("[data-action='delete-card']").forEach((i) => {
3072
+ i.addEventListener("click", (u) => {
3073
+ u.stopPropagation();
3074
+ const c = JSON.parse(i.getAttribute("data-method") || "{}");
3075
+ gn(e, c);
3076
+ });
3077
+ }), n.querySelectorAll("[data-action='select-method']").forEach((i) => {
3078
+ i.addEventListener("click", (u) => {
3079
+ const c = JSON.parse(
3080
+ u.currentTarget.getAttribute("data-method") || "{}"
3081
+ );
3082
+ dt(e, c);
3083
+ });
3084
+ });
3085
+ }
3086
+ function At(e) {
3087
+ var i, u, c;
3088
+ const n = (i = e.container) == null ? void 0 : i.querySelector(".choco-widget-payment-method"), o = (u = e.container) == null ? void 0 : u.querySelector(".choco-widget-method-name"), s = (c = e.container) == null ? void 0 : c.querySelector(
3089
+ ".choco-widget-method-icon-wrapper"
3090
+ );
3091
+ n && e.selectedPaymentMethod && (n.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), s && e.selectedPaymentMethod && (s.className = `choco-widget-method-icon-wrapper ${e.selectedPaymentMethod.type}`, s.innerHTML = an(e.selectedPaymentMethod)), ut(e);
3092
+ }
3093
+ function ge(e) {
3094
+ var S, T, v, Q, _;
3095
+ const n = (S = e.container) == null ? void 0 : S.querySelector(".choco-widget-pay-button"), o = (T = e.container) == null ? void 0 : T.querySelector(
3096
+ ".choco-widget-google-pay-amount"
3097
+ ), s = (v = e.container) == null ? void 0 : v.querySelector(
3098
+ ".choco-widget-google-pay-amount-label"
3099
+ );
3100
+ let i = (Q = e.container) == null ? void 0 : Q.querySelector(
3101
+ ".choco-widget-google-pay-amount-value"
3102
+ ), u = (_ = e.container) == null ? void 0 : _.querySelector(
3103
+ ".choco-widget-google-pay-amount-value-number"
3104
+ );
3105
+ const c = e._getPayableAmount(), d = G(c, e.config.locale, e.config.currency), g = c < e.config.amount, C = G(
3106
+ e.config.amount,
3107
+ e.config.locale,
3108
+ e.config.currency
3109
+ );
3110
+ if (n && (n.textContent = `${e.t("pay")} ${d}`, n.setAttribute("aria-label", `${e.t("pay")} ${d}`)), s && (s.textContent = `${e.t("total")} ${d}`), !g) {
3111
+ i == null || i.remove();
3112
+ return;
3113
+ }
3114
+ !i && o && (i = document.createElement("div"), i.className = "choco-widget-google-pay-amount-value", i.innerHTML = `${e.t("instead")} <span class="choco-widget-google-pay-amount-value-number"></span>`, o.appendChild(i), u = i.querySelector(
3115
+ ".choco-widget-google-pay-amount-value-number"
3116
+ )), u ? u.textContent = C : i && (i.textContent = `${e.t("instead")} ${C}`);
3117
+ }
3118
+ function ut(e) {
3119
+ var g, C, S, T, v, Q, _, m, P, k;
3120
+ const n = ((g = e.selectedPaymentMethod) == null ? void 0 : g.type) === "google_pay", o = ((C = e.selectedPaymentMethod) == null ? void 0 : C.type) === "apple_pay", s = n || o, i = (S = e.container) == null ? void 0 : S.querySelector(".choco-widget-pay-button"), u = (T = e.container) == null ? void 0 : T.querySelector(
3121
+ ".choco-widget-google-pay-amount"
3122
+ ), c = (v = e.container) == null ? void 0 : v.querySelector(".choco-widget-google-pay-row"), d = (Q = e.container) == null ? void 0 : Q.querySelector(".choco-widget-apple-pay-row");
3123
+ if (i == null || i.classList.toggle("choco-widget-pay-button--hidden", s), u == null || u.classList.toggle(
3124
+ "choco-widget-google-pay-amount--hidden",
3125
+ !s
3126
+ ), c == null || c.classList.toggle("choco-widget-google-pay-row--hidden", !n), d == null || d.classList.toggle("choco-widget-apple-pay-row--hidden", !o), n) {
3127
+ ln(e);
3128
+ const w = (_ = e.container) == null ? void 0 : _.querySelector(
3129
+ '[data-action="apple-pay-button-slot"]'
3130
+ );
3131
+ w && (w.innerHTML = "");
3132
+ } else if (o) {
3133
+ e._googlePayButtonRenderVersion += 1;
3134
+ const w = (m = e.container) == null ? void 0 : m.querySelector(
3135
+ '[data-action="google-pay-button-slot"]'
3136
+ );
3137
+ w && (w.innerHTML = ""), dn(e);
3138
+ } else {
3139
+ e._googlePayButtonRenderVersion += 1;
3140
+ const w = (P = e.container) == null ? void 0 : P.querySelector(
3141
+ '[data-action="google-pay-button-slot"]'
3142
+ ), L = (k = e.container) == null ? void 0 : k.querySelector(
3143
+ '[data-action="apple-pay-button-slot"]'
3144
+ );
3145
+ w && (w.innerHTML = ""), L && (L.innerHTML = "");
3146
+ }
3147
+ ge(e), ee(e);
3148
+ }
3149
+ async function ln(e) {
3150
+ var c, d, g, C, S;
3151
+ const n = (c = e.container) == null ? void 0 : c.querySelector(
3152
+ '[data-action="google-pay-button-slot"]'
3153
+ );
3154
+ if (!n || (n.innerHTML = "", ((d = e.selectedPaymentMethod) == null ? void 0 : d.type) !== "google_pay")) return;
3155
+ const o = ++e._googlePayButtonRenderVersion;
3156
+ try {
3157
+ await e._loadGooglePaySdk();
3158
+ } catch {
3159
+ e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
3160
+ return;
3161
+ }
3162
+ if (o !== e._googlePayButtonRenderVersion) return;
3163
+ if (!((S = (C = (g = window.google) == null ? void 0 : g.payments) == null ? void 0 : C.api) != null && S.PaymentsClient)) {
3164
+ e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
3165
+ return;
3166
+ }
3167
+ const s = e.config.environment === "production", u = new window.google.payments.api.PaymentsClient({
3168
+ environment: s ? "PRODUCTION" : "TEST"
3169
+ }).createButton({
3170
+ onClick: () => e.handlePayment(),
3171
+ buttonType: "pay",
3172
+ buttonColor: "black",
3173
+ buttonLocale: e.config.locale || "ru",
3174
+ buttonSizeMode: "fill"
3175
+ });
3176
+ 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((T) => {
3177
+ T.style.setProperty("border-radius", "12px", "important"), T.style.setProperty("font-weight", "bold", "important"), T.style.setProperty("font-size", "16px", "important");
3178
+ }), n.appendChild(u), ee(e);
3179
+ }
3180
+ function dn(e) {
3181
+ var u, c;
3182
+ const n = (u = e.container) == null ? void 0 : u.querySelector(
3183
+ '[data-action="apple-pay-button-slot"]'
3184
+ );
3185
+ if (!n || (n.innerHTML = "", ((c = e.selectedPaymentMethod) == null ? void 0 : c.type) !== "apple_pay")) return;
3186
+ const o = document.createElement("div");
3187
+ o.className = "choco-widget-apple-pay-button-wrapper";
3188
+ const s = document.createElement("button");
3189
+ s.type = "button", s.className = "choco-widget-apple-pay-button choco-widget-apple-pay-button--native", s.setAttribute("aria-label", "Оплатить с Apple Pay"), s.style.setProperty("width", "100%", "important"), s.style.setProperty("height", "52px", "important"), s.style.setProperty("min-height", "52px", "important"), s.style.setProperty("border-radius", "12px", "important"), s.style.setProperty("-webkit-appearance", "-apple-pay-button"), s.style.setProperty("-apple-pay-button-type", "buy"), s.style.setProperty("-apple-pay-button-style", "black"), s.addEventListener("click", () => e.handlePayment());
3190
+ const i = document.createElement("div");
3191
+ i.className = "choco-widget-apple-pay-button-overlay", i.setAttribute("aria-hidden", "true"), i.innerHTML = `
3192
+ <span class="choco-widget-apple-pay-button-text">Оплатить с</span>
3193
+ <span class="choco-widget-apple-pay-button-icon">
3194
+ <svg width="52" height="24" viewBox="0 0 52 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3195
+ <g clip-path="url(#clip0_24186_23757)">
3196
+ <path d="M9.50624 4.07852C8.89687 4.79961 7.92187 5.36836 6.94687 5.28711C6.82499 4.31211 7.30234 3.27617 7.86093 2.63633C8.47031 1.89492 9.53671 1.3668 10.4 1.32617C10.5016 2.3418 10.1055 3.33711 9.50624 4.07852ZM10.3898 5.48008C8.97812 5.39883 7.76953 6.28242 7.09921 6.28242C6.41874 6.28242 5.39296 5.5207 4.27577 5.54102C2.82343 5.56133 1.47265 6.38398 0.731244 7.69414C-0.792194 10.3145 0.33515 14.1941 1.80781 16.327C2.5289 17.3832 3.39218 18.541 4.52968 18.5004C5.60624 18.4598 6.03281 17.7996 7.33281 17.7996C8.64296 17.7996 9.01874 18.5004 10.1562 18.4801C11.3344 18.4598 12.0758 17.4238 12.7969 16.3676C13.6195 15.1691 13.9547 14.0012 13.975 13.9402C13.9547 13.9199 11.7 13.0566 11.6797 10.4566C11.6594 8.2832 13.457 7.24727 13.5383 7.18633C12.5227 5.6832 10.9383 5.5207 10.3898 5.48008ZM18.5453 2.53477V18.3684H21.0031V12.9551H24.4055C27.5133 12.9551 29.6969 10.8223 29.6969 7.73477C29.6969 4.64727 27.5539 2.53477 24.4867 2.53477H18.5453ZM21.0031 4.60664H23.8367C25.9695 4.60664 27.1883 5.74414 27.1883 7.74492C27.1883 9.7457 25.9695 10.8934 23.8266 10.8934H21.0031V4.60664ZM34.1859 18.4902C35.7297 18.4902 37.1617 17.7082 37.8117 16.4691H37.8625V18.3684H40.1375V10.4871C40.1375 8.20195 38.3094 6.7293 35.4961 6.7293C32.8859 6.7293 30.9562 8.22226 30.8852 10.2738H33.0992C33.282 9.29883 34.1859 8.65898 35.425 8.65898C36.9281 8.65898 37.7711 9.35977 37.7711 10.6496V11.523L34.7039 11.7059C31.85 11.8785 30.3062 13.0465 30.3062 15.0777C30.3062 17.1293 31.9008 18.4902 34.1859 18.4902ZM34.8461 16.6113C33.5359 16.6113 32.7031 15.9816 32.7031 15.0168C32.7031 14.0215 33.5055 13.4426 35.0391 13.3512L37.7711 13.1785V14.0723C37.7711 15.5551 36.5117 16.6113 34.8461 16.6113ZM43.1742 22.6746C45.5711 22.6746 46.6984 21.7605 47.6836 18.9879L52 6.88164H49.5016L46.607 16.2355H46.5562L43.6617 6.88164H41.0922L45.2562 18.409L45.0328 19.1098C44.657 20.298 44.0476 20.7551 42.9609 20.7551C42.768 20.7551 42.3922 20.7348 42.2398 20.7145V22.6137C42.382 22.6543 42.9914 22.6746 43.1742 22.6746Z" fill="white"/>
3197
+ </g>
3198
+ <defs>
3199
+ <clipPath id="clip0_24186_23757">
3200
+ <rect width="52" height="21.3484" fill="white" transform="translate(0 1.32617)"/>
3201
+ </clipPath>
3202
+ </defs>
3203
+ </svg>
3204
+ </span>
3205
+ `, o.appendChild(s), o.appendChild(i), n.appendChild(o), ee(e);
3206
+ }
3207
+ function se(e) {
3208
+ e.loading = !0, ee(e);
3209
+ }
3210
+ function j(e) {
3211
+ var T, v, Q, _, m, P, k, w;
3212
+ e.loading = !1;
3213
+ const n = (T = e.container) == null ? void 0 : T.querySelector(".choco-widget-payment-method"), o = (v = e.container) == null ? void 0 : v.querySelector(".choco-widget-pay-button"), s = (Q = e.container) == null ? void 0 : Q.querySelector(
3214
+ ".choco-widget-google-pay-button-slot button"
3215
+ ), i = (_ = e.container) == null ? void 0 : _.querySelector(
3216
+ ".choco-widget-apple-pay-button-slot button"
3217
+ ), u = (m = e.container) == null ? void 0 : m.querySelector(
3218
+ ".choco-widget-google-pay-amount"
3219
+ ), c = (P = e.container) == null ? void 0 : P.querySelector(".choco-widget-google-pay-row"), d = (k = e.container) == null ? void 0 : k.querySelector(".choco-widget-apple-pay-row"), g = (w = e.container) == null ? void 0 : w.querySelector(
3220
+ ".choco-widget-balance-section"
3221
+ ), C = e._isInteractionBlocked(), S = e.paymentMethodDisabled || C;
3222
+ n && (n.disabled = S), o && (o.disabled = C, o.classList.remove("choco-widget-pay-button--loading")), s && (s.disabled = C), i && (i.disabled = C), u == null || u.classList.toggle("choco-widget-wallet-blocked", C), u == null || u.setAttribute("aria-disabled", String(C)), c == null || c.classList.toggle("choco-widget-wallet-blocked", C), c == null || c.setAttribute("aria-disabled", String(C)), d == null || d.classList.toggle("choco-widget-wallet-blocked", C), d == null || d.setAttribute("aria-disabled", String(C)), g == null || g.classList.remove("disabled");
3223
+ }
3224
+ function ee(e) {
3225
+ var T, v, Q, _, m, P, k, w;
3226
+ const n = (T = e.container) == null ? void 0 : T.querySelector(".choco-widget-payment-method"), o = (v = e.container) == null ? void 0 : v.querySelector(".choco-widget-pay-button"), s = (Q = e.container) == null ? void 0 : Q.querySelector(
3227
+ ".choco-widget-google-pay-button-slot button"
3228
+ ), i = (_ = e.container) == null ? void 0 : _.querySelector(
3229
+ ".choco-widget-apple-pay-button-slot button"
3230
+ ), u = (m = e.container) == null ? void 0 : m.querySelector(
3231
+ ".choco-widget-google-pay-amount"
3232
+ ), c = (P = e.container) == null ? void 0 : P.querySelector(".choco-widget-google-pay-row"), d = (k = e.container) == null ? void 0 : k.querySelector(".choco-widget-apple-pay-row"), g = (w = e.container) == null ? void 0 : w.querySelector(
3233
+ ".choco-widget-balance-section"
3234
+ ), C = e._isInteractionBlocked(), S = e.paymentMethodDisabled || C;
3235
+ g == null || g.classList.toggle("disabled", C), n && (n.disabled = S), o && (o.disabled = C, o.classList.toggle("choco-widget-pay-button--loading", e.loading)), s && (s.disabled = C), i && (i.disabled = C), u == null || u.classList.toggle("choco-widget-wallet-blocked", C), u == null || u.setAttribute("aria-disabled", String(C)), c == null || c.classList.toggle("choco-widget-wallet-blocked", C), c == null || c.setAttribute("aria-disabled", String(C)), d == null || d.classList.toggle("choco-widget-wallet-blocked", C), d == null || d.setAttribute("aria-disabled", String(C));
3236
+ }
3237
+ function lt(e) {
3238
+ var o;
3239
+ if (e._isInteractionBlocked()) return;
3240
+ const n = (o = e.container) == null ? void 0 : o.querySelector('[data-sheet="payment"]');
3241
+ n && (n.classList.add("choco-widget-payment-sheet--open"), e.isPaymentSheetOpen = !0, ce(e));
3242
+ }
3243
+ function W(e) {
3244
+ var o;
3245
+ const n = (o = e.container) == null ? void 0 : o.querySelector('[data-sheet="payment"]');
3246
+ if (n) {
3247
+ Ee(e);
3248
+ const s = n.querySelector(".choco-widget-sheet-content");
3249
+ s && (s.style.transform = "", s.classList.remove("choco-widget-sheet-content--dragging")), n.classList.remove("choco-widget-payment-sheet--open"), e.isPaymentSheetOpen = !1, e.isPaymentSheetEditMode && (e.isPaymentSheetEditMode = !1, ae(e), ce(e));
3250
+ }
3251
+ }
3252
+ function ce(e) {
3253
+ var g;
3254
+ const n = (g = e.container) == null ? void 0 : g.querySelector('[data-sheet="payment"]');
3255
+ if (!n) return;
3256
+ const o = n.querySelector(".choco-widget-sheet-title"), s = n.querySelector('[data-action="close-sheet"]'), i = n.querySelector('[data-action="edit-sheet"]'), u = n.querySelector('[data-action="previous-sheet"]'), d = e.getAvailablePaymentMethods().some((C) => C.type === "card");
3257
+ e.isPaymentSheetEditMode ? (n.classList.add("choco-widget-payment-sheet--edit"), o && (o.textContent = e.t("editCards")), s && (s.style.display = "none"), i && (i.style.display = "none"), u && (u.style.display = "")) : (n.classList.remove("choco-widget-payment-sheet--edit"), n.classList.toggle("choco-widget-payment-sheet--no-cards", !d), o && (o.textContent = e.t("paymentMethods")), s && (s.style.display = ""), i && (i.style.display = d ? "" : "none"), u && (u.style.display = "none"));
3258
+ }
3259
+ function Ze(e) {
3260
+ if (!e.addCardActionUrl || !e.container) return;
3261
+ const n = e.container.querySelector('[data-sheet="add-card"]'), o = e.container.querySelector(
3262
+ "#choco-widget-add-card-iframe"
3263
+ );
3264
+ n && o && (o.src = e.addCardActionUrl, n.classList.add("choco-widget-payment-sheet--open"), n.style.display = "flex", n.setAttribute("aria-hidden", "false"), e.isAddCardViewOpen = !0, hn(e));
3265
+ }
3266
+ function ie(e) {
3267
+ var s, i;
3268
+ const n = (s = e.container) == null ? void 0 : s.querySelector('[data-sheet="add-card"]'), o = (i = e.container) == null ? void 0 : i.querySelector(
3269
+ "#choco-widget-add-card-iframe"
3270
+ );
3271
+ n && (n.classList.remove("choco-widget-payment-sheet--open"), n.style.display = "none", n.setAttribute("aria-hidden", "true")), o && (o.src = "about:blank"), e.addCardActionUrl = null, e.isAddCardViewOpen = !1, fn(e);
3272
+ }
3273
+ function hn(e) {
3274
+ e._boundAddCardMessage = (n) => {
3275
+ var o;
3276
+ e.isAddCardViewOpen && (o = n.data) != null && o.message && n.origin === "https://rahmetapp.kz" && se(e);
3277
+ }, window.addEventListener("message", e._boundAddCardMessage);
3278
+ }
3279
+ function fn(e) {
3280
+ e._boundAddCardMessage && (window.removeEventListener("message", e._boundAddCardMessage), e._boundAddCardMessage = null);
3281
+ }
3282
+ function gn(e, n) {
3283
+ var c;
3284
+ e._pendingDeleteMethod = n;
3285
+ const o = (c = e.container) == null ? void 0 : c.querySelector('[data-sheet="payment"]');
3286
+ if (!o) return;
3287
+ o.classList.add("choco-widget-payment-sheet--delete-confirm");
3288
+ const s = o.querySelector(".choco-widget-sheet-title"), i = o.querySelector('[data-action="edit-sheet"]'), u = o.querySelector('[data-action="previous-sheet"]');
3289
+ s && (s.textContent = e.t("confirmDeleteCard")), i && (i.style.display = "none"), u && (u.style.display = "none");
3290
+ }
3291
+ function Ee(e) {
3292
+ var o;
3293
+ e._pendingDeleteMethod = null, Me(e, !1);
3294
+ const n = (o = e.container) == null ? void 0 : o.querySelector('[data-sheet="payment"]');
3295
+ n == null || n.classList.remove("choco-widget-payment-sheet--delete-confirm"), ce(e);
3296
+ }
3297
+ function Me(e, n) {
3298
+ var u, c, d;
3299
+ const o = (u = e.container) == null ? void 0 : u.querySelector(
3300
+ ".choco-widget-sheet-delete-confirm-actions"
3301
+ ), s = (c = e.container) == null ? void 0 : c.querySelector(
3302
+ '[data-action="confirm-delete-cancel"]'
3303
+ ), i = (d = e.container) == null ? void 0 : d.querySelector(
3304
+ '[data-action="confirm-delete-submit"]'
3305
+ );
3306
+ o == null || o.classList.toggle("choco-widget-sheet-delete-confirm-actions--loading", n), s && (s.disabled = n), i && (i.disabled = n, i.classList.toggle("choco-widget-delete-confirm-btn--loading", n));
3307
+ }
3308
+ async function pn(e, n) {
3309
+ var s, i;
3310
+ const o = n == null ? void 0 : n.cardId;
3311
+ if (!(!o || (n == null ? void 0 : n.type) !== "card"))
3312
+ try {
3313
+ await Mt(e.apiUrl, e._getApiConfig(), o), e.checkoutContext = await Re(
3314
+ e.apiUrl,
3315
+ e._getApiConfig()
3316
+ ), ((s = e.selectedPaymentMethod) == null ? void 0 : s.type) === "card" && ((i = e.selectedPaymentMethod) == null ? void 0 : i.cardId) === o && (e.selectedPaymentMethod = Te(
3317
+ e.checkoutContext.data,
3318
+ e._getKaspiOptions()
3319
+ ), e._emitPaymentMethodSelected(), At(e)), ae(e), e.config.onSuccess({ message: e.t("cardDeleted") }), e.config.onCardDeleted && e.config.onCardDeleted({ cardId: o });
3320
+ } catch (u) {
3321
+ e.config.onError({
3322
+ attributes: { message: (u == null ? void 0 : u.message) || e.t("paymentError") }
3323
+ });
3324
+ }
3325
+ }
3326
+ function dt(e, n) {
3327
+ if (!e._isInteractionBlocked()) {
3328
+ if (e.selectedPaymentMethod = n, e._emitPaymentMethodSelected(), n.type === "new_card") {
3329
+ e._emitUserEvent("one_click_pay_method_resolved", { payment_method: n.type }), W(e), e.handlePayment();
3330
+ return;
3331
+ }
3332
+ e._emitUserEvent("one_click_pay_method_resolved", {
3333
+ payment_method: e._getPaymentMethodForUserEvent()
3334
+ }), ae(e), W(e), At(e);
3335
+ }
3336
+ }
3337
+ function $e(e, n) {
3338
+ var s;
3339
+ const o = n.type || ((s = n.data) == null ? void 0 : s.type);
3340
+ if (!o) {
3341
+ console.warn("Unknown event format:", n);
3342
+ return;
3343
+ }
3344
+ switch (o) {
3345
+ case "order.paid":
3346
+ e._orderStatusResolved = !0, $(e), ft(e, n);
3347
+ break;
3348
+ case "order.failed":
3349
+ e._orderStatusResolved = !0, $(e), gt(e, n);
3350
+ break;
3351
+ case "order.action_required":
3352
+ Cn(e, n);
3353
+ break;
3354
+ default:
3355
+ console.warn("Unknown event type:", o);
3356
+ }
3357
+ }
3358
+ function $(e) {
3359
+ e._orderStatusPollingId && (clearInterval(e._orderStatusPollingId), e._orderStatusPollingId = null);
3360
+ }
3361
+ function Ae(e, n) {
3362
+ $(e), e._orderStatusResolved = !1;
3363
+ const o = 6e3, s = 5;
3364
+ let i = 0;
3365
+ const u = async () => {
3366
+ if (!e._orderStatusResolved) {
3367
+ if (i >= s) {
3368
+ $(e), j(e), e.config.onError({
3369
+ attributes: { message: e.t("errorNoServerResponseRetry") }
3370
+ });
3371
+ return;
3372
+ }
3373
+ i += 1;
3374
+ try {
3375
+ const { data: c } = await Dt(
3376
+ e.apiUrl,
3377
+ e._getApiConfig(),
3378
+ String(n)
3379
+ ), d = c == null ? void 0 : c.status, g = (c == null ? void 0 : c.payload) || {};
3380
+ if (d === "success") {
3381
+ e._orderStatusResolved = !0, $(e), ft(e, {
3382
+ id: String(g.id || n),
3383
+ attributes: { amount: g.amount, paid_at: g.paid_at || "" }
3384
+ });
3385
+ return;
3386
+ }
3387
+ d === "fail" && (e._orderStatusResolved = !0, $(e), gt(e, {
3388
+ id: String(g.id || n),
3389
+ attributes: { message: g.message || e.t("paymentError") }
3390
+ }));
3391
+ } catch (c) {
3392
+ console.warn("[Polling] checkOrderStatus error:", c);
3393
+ }
3394
+ }
3395
+ };
3396
+ e._orderStatusPollingId = setInterval(u, o), u();
3397
+ }
3398
+ function De() {
3399
+ return typeof document > "u" ? !1 : document.hidden || document.visibilityState === "hidden";
3400
+ }
3401
+ function ht(e, n) {
3402
+ j(e), e.config.onSuccess(n), e.config.backlink ? window.location.href = e.config.backlink : e.destroy();
3403
+ }
3404
+ function _e(e) {
3405
+ if (!e._pendingSuccessPayload || De()) return;
3406
+ const n = e._pendingSuccessPayload;
3407
+ e._pendingSuccessPayload = null, ht(e, n);
3408
+ }
3409
+ function ft(e, n) {
3410
+ var i, u;
3411
+ e.isAddCardViewOpen && ie(e);
3412
+ const o = n.attributes || ((i = n.data) == null ? void 0 : i.attributes) || {}, s = { id: n.id || ((u = n.data) == null ? void 0 : u.id), attributes: o };
3413
+ if (De()) {
3414
+ e._pendingSuccessPayload = s;
3415
+ return;
3416
+ }
3417
+ ht(e, s);
3418
+ }
3419
+ function gt(e, n) {
3420
+ var s, i;
3421
+ e.isAddCardViewOpen && ie(e), j(e);
3422
+ const o = n.attributes || ((s = n.data) == null ? void 0 : s.attributes) || {};
3423
+ e.config.onError({ id: n.id || ((i = n.data) == null ? void 0 : i.id), attributes: o });
3424
+ }
3425
+ function Cn(e, n) {
3426
+ var u, c, d;
3427
+ const o = n.attributes || ((u = n.data) == null ? void 0 : u.attributes) || {}, s = o.action_link || o.action_url, i = o.action_url_type || o.action_type || "redirect";
3428
+ if (!s) {
3429
+ console.error(e.t("errorActionUrlMissing")), e.waitingForNewCardAction && (e.waitingForNewCardAction = !1, j(e), e.config.onError({ attributes: { message: e.t("errorNoServerResponse") } }));
3430
+ return;
3431
+ }
3432
+ if (e.waitingForNewCardAction && (e.waitingForNewCardAction = !1, e._clearNewCardActionTimeout()), i === "inner") {
3433
+ e.addCardActionUrl = s, j(e), e._showAddCardView();
3434
+ return;
3435
+ }
3436
+ if (((c = e.selectedPaymentMethod) == null ? void 0 : c.type) === "kaspi_pay") {
3437
+ const g = n.id || ((d = n.data) == null ? void 0 : d.id);
3438
+ if (g && !e._orderStatusResolved && !e._orderStatusPollingId && Ae(e, String(g)), typeof e.config.onKaspiLink == "function") {
3439
+ e.config.onKaspiLink({
3440
+ action_link: s,
3441
+ action_url: s,
3442
+ action_type: i,
3443
+ event: n
3444
+ });
3445
+ return;
3446
+ }
3447
+ }
3448
+ window.location.href = s;
3449
+ }
3450
+ async function yn(e) {
3451
+ var o, s, i, u;
3452
+ if (!e.selectedPaymentMethod) {
3453
+ e.config.onError({
3454
+ attributes: { message: e.t("errorPaymentMethodNotSelected") }
3455
+ });
3456
+ return;
3457
+ }
3458
+ const { checkoutOptions: n } = e._getPaymentBreakdown();
3459
+ if (e._isBalanceFullyCoveringAmount()) {
3460
+ se(e);
3461
+ try {
3462
+ const c = await Ye(
3463
+ e.apiUrl,
3464
+ e._getApiConfig(),
3465
+ e.deviceId,
3466
+ e.selectedPaymentMethod,
3467
+ n
3468
+ );
3469
+ await et(e);
3470
+ const d = (c == null ? void 0 : c.id) ?? ((o = c == null ? void 0 : c.data) == null ? void 0 : o.id);
3471
+ return d && Ae(e, String(d)), c;
3472
+ } catch (c) {
3473
+ throw j(e), e.config.onError({
3474
+ attributes: { message: e._resolveErrorMessage(c) }
3475
+ }), c;
3476
+ }
3477
+ }
3478
+ if (e.selectedPaymentMethod.type === "new_card") {
3479
+ await mn(e, n);
3480
+ return;
3481
+ }
3482
+ if (e.selectedPaymentMethod.type === "apple_pay") {
3483
+ await bn(e, n);
3484
+ return;
3485
+ }
3486
+ if (e.selectedPaymentMethod.type === "google_pay") {
3487
+ await En(e, n);
3488
+ return;
3489
+ }
3490
+ se(e);
3491
+ try {
3492
+ const c = await Ye(
3493
+ e.apiUrl,
3494
+ e._getApiConfig(),
3495
+ e.deviceId,
3496
+ e.selectedPaymentMethod,
3497
+ n
3498
+ );
3499
+ await et(e);
3500
+ const d = (c == null ? void 0 : c.id) ?? ((s = c == null ? void 0 : c.data) == null ? void 0 : s.id);
3501
+ if (d && Ae(e, String(d)), ((i = e.selectedPaymentMethod) == null ? void 0 : i.type) === "kaspi_pay") {
3502
+ const g = (c == null ? void 0 : c.attributes) || ((u = c == null ? void 0 : c.data) == null ? void 0 : u.attributes) || {}, C = g.action_link || g.action_url, S = g.action_url_type || g.action_type || "redirect";
3503
+ if (C)
3504
+ return typeof e.config.onKaspiLink == "function" ? (e.config.onKaspiLink({
3505
+ action_link: C,
3506
+ action_url: C,
3507
+ action_type: S,
3508
+ event: c
3509
+ }), c) : (window.location.href = C, c);
3510
+ }
3511
+ return c;
3512
+ } catch (c) {
3513
+ throw j(e), e.config.onError({ message: e._resolveErrorMessage(c) }), c;
3514
+ }
3515
+ }
3516
+ async function et(e) {
3517
+ var n, o;
3518
+ if (!(((n = e.selectedPaymentMethod) == null ? void 0 : n.type) !== "card" || !((o = e.selectedPaymentMethod) != null && o.cardId)))
3519
+ try {
3520
+ await Nt(
3521
+ e.apiUrl,
3522
+ e._getApiConfig(),
3523
+ e.selectedPaymentMethod.cardId
3524
+ );
3525
+ } catch (s) {
3526
+ console.warn("Failed to mark selected card as default:", s);
3527
+ }
3528
+ }
3529
+ async function mn(e, n) {
3530
+ se(e), e.waitingForNewCardAction = !0, e._setNewCardActionTimeout();
3531
+ try {
3532
+ await Xt(
3533
+ e.apiUrl,
3534
+ e._getApiConfig(),
3535
+ e.deviceId,
3536
+ n
3537
+ );
3538
+ } catch (o) {
3539
+ e.waitingForNewCardAction = !1, e._clearNewCardActionTimeout(), j(e), e.config.onError({
3540
+ attributes: { message: e._resolveErrorMessage(o) }
3541
+ }), console.error("New card payment error:", o);
3542
+ }
3543
+ }
3544
+ async function bn(e, n) {
3545
+ const o = window.ApplePaySession;
3546
+ if (!o || !o.canMakePayments()) {
3547
+ e.config.onError({ attributes: { message: e.t("errorApplePayUnsupported") } });
3548
+ return;
3549
+ }
3550
+ const s = {
3551
+ countryCode: e.config.currency === "GEL" ? "GE" : "KZ",
3552
+ currencyCode: e.config.currency,
3553
+ supportedNetworks: ["visa", "masterCard"],
3554
+ merchantCapabilities: ["supports3DS"],
3555
+ total: {
3556
+ label: "Choco",
3557
+ amount: String(e._getCheckoutAmount()),
3558
+ type: "final"
3559
+ }
3560
+ }, i = new o(3, s);
3561
+ i.onvalidatemerchant = async (u) => {
3562
+ var c, d;
3563
+ try {
3564
+ const g = await Ut(
3565
+ e.apiUrl,
3566
+ e._getApiConfig(),
3567
+ u.validationURL
3568
+ ), C = ((d = (c = g == null ? void 0 : g.data) == null ? void 0 : c.attributes) == null ? void 0 : d.session) || g, S = JSON.parse(atob(C));
3569
+ i.completeMerchantValidation(S);
3570
+ } catch (g) {
3571
+ console.error("Apple Pay session error:", g), i.abort(), e.config.onError({ attributes: { message: e.t("errorApplePayInit") } });
3572
+ }
3573
+ }, i.onpaymentauthorized = async (u) => {
3574
+ var c;
3575
+ try {
3576
+ if (se(e), typeof e.config.onBeforeCheckout == "function") {
3577
+ const C = await e.config.onBeforeCheckout();
3578
+ C && typeof C == "object" && Object.assign(e.config, C);
3579
+ }
3580
+ const d = await Ht(
3581
+ e.apiUrl,
3582
+ e._getApiConfig(),
3583
+ e.deviceId,
3584
+ u.payment,
3585
+ n
3586
+ );
3587
+ i.completePayment(o.STATUS_SUCCESS);
3588
+ const g = (d == null ? void 0 : d.id) ?? ((c = d == null ? void 0 : d.data) == null ? void 0 : c.id);
3589
+ g && Ae(e, String(g));
3590
+ } catch (d) {
3591
+ console.error("Apple Pay payment error:", d), i.completePayment(o.STATUS_FAILURE), j(e), e.config.onError({
3592
+ attributes: {
3593
+ message: e._resolveErrorMessage(d, "errorApplePayPayment")
3594
+ }
3595
+ });
3596
+ }
3597
+ }, i.oncancel = () => e.config.onCancel(), i.begin();
3598
+ }
3599
+ async function En(e, n) {
3600
+ var P, k, w, L, O, F;
3601
+ try {
3602
+ await e._loadGooglePaySdk();
3603
+ } catch (M) {
3604
+ console.error("Google Pay SDK load error:", M), e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
3605
+ return;
3606
+ }
3607
+ const o = window.google;
3608
+ if (!(o != null && o.payments)) {
3609
+ e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
3610
+ return;
3611
+ }
3612
+ const s = (P = e.checkoutContext) == null ? void 0 : P.data, i = ((w = (k = s == null ? void 0 : s.payment_methods) == null ? void 0 : k.data) == null ? void 0 : w.attributes) || {}, u = i.google_pay_settings || {};
3613
+ if (!(i.payment_method_google_pay === "enabled" || i.payment_method_google_pay === !0)) {
3614
+ e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
3615
+ return;
3616
+ }
3617
+ const d = u == null ? void 0 : u.gateway, g = u == null ? void 0 : u.merchant_id;
3618
+ if (!d || !g) {
3619
+ e.config.onError({
3620
+ attributes: { message: e.t("errorGooglePaySettingsUnavailable") }
3621
+ });
3622
+ return;
3623
+ }
3624
+ const C = e.config.environment === "production", S = (u == null ? void 0 : u.merchant_name) || "Choco", T = u == null ? void 0 : u.google_merchant_id;
3625
+ if (C && !T) {
3626
+ e.config.onError({
3627
+ attributes: { message: e.t("errorGooglePaySettingsUnavailable") }
3628
+ });
3629
+ return;
3630
+ }
3631
+ const v = Number(e._getCheckoutAmount()).toFixed(2), Q = new o.payments.api.PaymentsClient({
3632
+ environment: C ? "PRODUCTION" : "TEST"
3633
+ }), _ = [
3634
+ {
3635
+ type: "CARD",
3636
+ parameters: {
3637
+ allowedAuthMethods: ["PAN_ONLY", "CRYPTOGRAM_3DS"],
3638
+ allowedCardNetworks: ["VISA", "MASTERCARD"],
3639
+ billingAddressRequired: !1
3640
+ },
3641
+ tokenizationSpecification: {
3642
+ type: "PAYMENT_GATEWAY",
3643
+ parameters: { gateway: d, gatewayMerchantId: g }
3644
+ }
3645
+ }
3646
+ ], m = {
3647
+ apiVersion: 2,
3648
+ apiVersionMinor: 0,
3649
+ allowedPaymentMethods: _,
3650
+ transactionInfo: {
3651
+ totalPriceStatus: "FINAL",
3652
+ totalPriceLabel: "Итого",
3653
+ totalPrice: v,
3654
+ currencyCode: e.config.currency,
3655
+ countryCode: e.config.currency === "GEL" ? "GE" : "KZ"
3656
+ },
3657
+ merchantInfo: C ? { merchantId: T, merchantName: S } : { merchantName: S }
3658
+ };
3659
+ console.log("paymentDataRequest", m);
3660
+ try {
3661
+ const M = await Q.isReadyToPay({
3662
+ apiVersion: 2,
3663
+ apiVersionMinor: 0,
3664
+ allowedPaymentMethods: _
3665
+ });
3666
+ if (!(M != null && M.result)) {
3667
+ e.config.onError({ attributes: { message: e.t("errorGooglePayUnsupported") } });
3668
+ return;
3669
+ }
3670
+ se(e);
3671
+ const J = await Q.loadPaymentData(m), x = (O = (L = J == null ? void 0 : J.paymentMethodData) == null ? void 0 : L.tokenizationData) == null ? void 0 : O.token;
3672
+ if (!x) throw new Error(e.t("errorGooglePayPayment"));
3673
+ const q = JSON.parse(x), N = await xt(
3674
+ e.apiUrl,
3675
+ e._getApiConfig(),
3676
+ e.deviceId,
3677
+ q,
3678
+ n
3679
+ ), b = (N == null ? void 0 : N.id) ?? ((F = N == null ? void 0 : N.data) == null ? void 0 : F.id);
3680
+ b && Ae(e, String(b));
3681
+ } catch (M) {
3682
+ j(e), M.statusCode === "CANCELED" ? e.config.onCancel() : (e.config.onError({
3683
+ attributes: {
3684
+ message: e._resolveErrorMessage(M, "errorGooglePayPayment")
3685
+ }
3686
+ }), console.error("Google Pay error:", M));
3687
+ }
3688
+ }
3689
+ function vn(e) {
3690
+ var u, c, d, g, C, S, T, v, Q, _;
3691
+ const n = e.container;
3692
+ (u = n.querySelector('[data-action="pay"]')) == null || u.addEventListener("click", () => e.handlePayment()), (c = n.querySelector('[data-action="change-method"]')) == null || c.addEventListener("click", () => lt(e)), n.querySelectorAll('[data-action="close"]').forEach((m) => m.addEventListener("click", () => e.close())), (d = n.querySelector('[data-action="close-sheet"]')) == null || d.addEventListener("click", () => {
3693
+ e._pendingDeleteMethod ? Ee(e) : W(e);
3694
+ }), (g = n.querySelector('[data-action="edit-sheet"]')) == null || g.addEventListener("click", () => {
3695
+ e.isPaymentSheetEditMode = !0, ae(e), ce(e);
3696
+ }), (C = n.querySelector('[data-action="previous-sheet"]')) == null || C.addEventListener("click", () => {
3697
+ e.isPaymentSheetEditMode = !1, ae(e), ce(e);
3698
+ }), (S = n.querySelector('[data-action="close-add-card"]')) == null || S.addEventListener("click", () => ie(e)), (T = n.querySelector('[data-action="confirm-delete-cancel"]')) == null || T.addEventListener("click", () => Ee(e)), (v = n.querySelector('[data-action="confirm-delete-submit"]')) == null || v.addEventListener("click", () => {
3699
+ if (e._pendingDeleteMethod) {
3700
+ const m = e._pendingDeleteMethod;
3701
+ Me(e, !0), pn(e, m).then(() => W(e)).finally(() => Me(e, !1));
3702
+ }
3703
+ }), n.querySelectorAll(".choco-widget-method-item").forEach((m) => {
3704
+ m.addEventListener("click", (P) => {
3705
+ const k = JSON.parse(
3706
+ P.currentTarget.getAttribute("data-method") || "{}"
3707
+ );
3708
+ dt(e, k);
3709
+ });
3710
+ });
3711
+ const o = n.querySelector('[data-sheet="payment"]');
3712
+ o && (o.addEventListener("click", (m) => {
3713
+ m.target === o && W(e);
3714
+ }), In(e, o));
3715
+ const s = n.querySelector('[data-action="toggle-balance"]');
3716
+ s && ((Q = s.querySelector("input[type='checkbox']")) == null || Q.addEventListener("change", (m) => {
3717
+ e.useBalance = m.target.checked, e._updatePayButtonAmount();
3718
+ }));
3719
+ const i = n.querySelector('[data-action="toggle-bonuses"]');
3720
+ i && ((_ = i.querySelector("input[type='checkbox']")) == null || _.addEventListener("change", (m) => {
3721
+ e.useBonuses = m.target.checked, e.config.onAppliedBonus(e.useBonuses), e._updatePayButtonAmount();
3722
+ })), document.removeEventListener("keydown", e._boundKeyDown), document.addEventListener("keydown", e._boundKeyDown), ut(e);
3723
+ }
3724
+ function Bn(e, n) {
3725
+ var o, s;
3726
+ e.isOpen && (n.key === "Escape" && (n.preventDefault(), e._pendingDeleteMethod ? Ee(e) : e.isAddCardViewOpen ? ie(e) : e.isPaymentSheetOpen ? W(e) : e.close()), n.key === "Enter" && ((s = (o = n.target) == null ? void 0 : o.dataset) == null ? void 0 : s.action) === "pay" && (n.preventDefault(), e.handlePayment()));
3727
+ }
3728
+ function In(e, n) {
3729
+ const o = n.querySelector('[data-action="sheet-drag-handle"]'), s = n.querySelector(".choco-widget-sheet-content");
3730
+ if (!o || !s) return;
3731
+ const i = 80;
3732
+ let u = 0, c = 0;
3733
+ const d = (C) => {
3734
+ c = C.clientY;
3735
+ const S = Math.max(0, c - u);
3736
+ s.style.transform = `translateY(${S}px)`;
3737
+ }, g = (C) => {
3738
+ o.releasePointerCapture(C.pointerId), o.removeEventListener("pointermove", d), o.removeEventListener("pointerup", g), o.removeEventListener("pointercancel", g);
3739
+ const S = Math.max(0, c - u);
3740
+ if (s.classList.remove("choco-widget-sheet-content--dragging"), S >= i) {
3741
+ s.style.transform = "translateY(100%)";
3742
+ const T = () => {
3743
+ s.removeEventListener("transitionend", T), s.style.transform = "", W(e);
3744
+ };
3745
+ s.addEventListener("transitionend", T);
3746
+ } else
3747
+ s.style.transform = "";
3748
+ };
3749
+ o.addEventListener("pointerdown", (C) => {
3750
+ !e.isPaymentSheetOpen || C.button !== 0 || (C.preventDefault(), u = C.clientY, c = C.clientY, s.classList.add("choco-widget-sheet-content--dragging"), o.setPointerCapture(C.pointerId), o.addEventListener("pointermove", d), o.addEventListener("pointerup", g), o.addEventListener("pointercancel", g));
3751
+ });
3752
+ }
3753
+ class oe {
3754
+ // ─── Статические методы / logout ─────────────────────────────────────────────
3755
+ static _getAuthStorageValue(n) {
3756
+ return st(n);
3757
+ }
3758
+ static _setAuthStorageValue(n, o) {
3759
+ Le(n, o);
3760
+ }
3761
+ static _removeAuthStorageValue(n) {
3762
+ me(n);
3763
+ }
3764
+ static async logout() {
3765
+ Ge();
3766
+ }
3767
+ // ─── Конструктор ──────────────────────────────────────────────────────────────
3768
+ constructor(n) {
3769
+ this.config = Ft(n), this.accessToken = null, this.deviceId = tt(), this.apiUrl = mt(this.config.environment), this.translations = Ct, this.checkoutContext = null, this.centrifuge = null, this.selectedPaymentMethod = null, 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) => Bn(this, o), this._boundVisibilityChange = () => this._onVisibilityChange(), this._boundWindowFocus = () => this._onWindowFocus(), this._boundPageShow = () => this._onPageShow();
3770
+ }
3771
+ // ─── Локализация ──────────────────────────────────────────────────────────────
3772
+ t(n, o = {}) {
3773
+ var u;
3774
+ const s = this.config.locale || "ru", i = ((u = this.translations[s]) == null ? void 0 : u[n]) || this.translations.ru[n];
3775
+ return typeof i != "string" ? n : i.replace(
3776
+ /{(\w+)}/g,
3777
+ (c, d) => Object.prototype.hasOwnProperty.call(o, d) ? String(o[d]) : c
3778
+ );
3779
+ }
3780
+ _resolveErrorMessage(n, o = "paymentError") {
3781
+ return (n == null ? void 0 : n.message) || this.t(o);
3782
+ }
3783
+ // ─── Вспомогательные геттеры ─────────────────────────────────────────────────
3784
+ _getApiConfig() {
3785
+ return { ...this.config, accessToken: this.accessToken };
3786
+ }
3787
+ _isInteractionBlocked() {
3788
+ return this.disabled || this.loading;
3789
+ }
3790
+ _getBalanceAmount() {
3791
+ var i, u, c, d;
3792
+ const n = (d = (c = (u = (i = this.checkoutContext) == null ? void 0 : i.data) == null ? void 0 : u.balance) == null ? void 0 : c.data) == null ? void 0 : d.money, o = this.config.currency || "KZT", s = Number(n == null ? void 0 : n[o]);
3793
+ return Number.isFinite(s) && s > 0 ? s : 0;
3794
+ }
3795
+ _getBonusesAmount() {
3796
+ var o;
3797
+ const n = Number((o = this.config.bonuses) == null ? void 0 : o.amount);
3798
+ return Number.isFinite(n) && n > 0 ? n : 0;
3799
+ }
3800
+ _getBonusesPercent() {
3801
+ var o;
3802
+ const n = Number((o = this.config.bonuses) == null ? void 0 : o.percent);
3803
+ return !Number.isFinite(n) || n <= 0 ? 0 : n >= 100 ? 100 : n;
3804
+ }
3805
+ _getAvailableBonus() {
3806
+ var o;
3807
+ const n = Number((o = this.config.bonuses) == null ? void 0 : o.availableBonus);
3808
+ return Number.isFinite(n) && n > 0 ? n : 0;
3809
+ }
3810
+ _getPaymentBreakdown() {
3811
+ const n = this.config.amount, o = this._getBalanceAmount(), s = this.useBalance ? Math.min(o, n) : 0, i = n - s, u = this.useBalance && s >= n, c = this.useBonuses ? this._getAvailableBonus() : 0, d = Math.max(i - c, 0), g = this.useBalance ? n : d, C = this.useBalance && !u;
3812
+ return {
3813
+ payableAmount: d,
3814
+ checkoutOptions: {
3815
+ checkoutAmount: g,
3816
+ forceBalanceMethod: u,
3817
+ useBalance: C
3818
+ }
3819
+ };
3820
+ }
3821
+ _getPayableAmount() {
3822
+ return this._getPaymentBreakdown().payableAmount;
3823
+ }
3824
+ _isBalanceFullyCoveringAmount() {
3825
+ return this._getPaymentBreakdown().checkoutOptions.forceBalanceMethod;
3826
+ }
3827
+ _getCheckoutAmount() {
3828
+ return this._getPaymentBreakdown().checkoutOptions.checkoutAmount ?? this.config.amount;
3829
+ }
3830
+ _getPaymentMethodForUserEvent() {
3831
+ var n;
3832
+ return this._isBalanceFullyCoveringAmount() ? "balance" : ((n = this.selectedPaymentMethod) == null ? void 0 : n.type) ?? null;
3833
+ }
3834
+ _getKaspiOptions() {
3835
+ return {
3836
+ onlyKaspiAvailable: this.config.onlyKaspiAvailable,
3837
+ disableKaspi: this.config.disableKaspi
3838
+ };
3839
+ }
3840
+ // ─── Эмиттеры ────────────────────────────────────────────────────────────────
3841
+ _emitUserEvent(n, o = {}) {
3842
+ typeof this.config.onUserEvent == "function" && this.config.onUserEvent({ eventName: n, eventProperties: o });
3843
+ }
3844
+ _emitPaymentMethodSelected(n = this.selectedPaymentMethod) {
3845
+ typeof this.config.onPaymentMethodSelected == "function" && this.config.onPaymentMethodSelected(n || null);
3846
+ }
3847
+ // ─── Делегаторы в модули (вызываются из domUI/events через widget.method()) ──
3848
+ _attachEventListeners() {
3849
+ vn(this);
3850
+ }
3851
+ _updatePayButtonAmount() {
3852
+ ge(this);
3853
+ }
3854
+ _showAddCardView() {
3855
+ Ze(this);
3856
+ }
3857
+ _closeAddCardView() {
3858
+ ie(this);
3859
+ }
3860
+ // ─── Таймауты новой карты ─────────────────────────────────────────────────────
3861
+ _setNewCardActionTimeout() {
3862
+ this._clearNewCardActionTimeout(), this.newCardActionRequiredTimeoutId = window.setTimeout(() => {
3863
+ this.waitingForNewCardAction && (this.waitingForNewCardAction = !1, j(this), this.config.onError({
3864
+ attributes: { message: this.t("errorNoServerResponseRetry") }
3865
+ })), this.newCardActionRequiredTimeoutId = null;
3866
+ }, 6e4);
3867
+ }
3868
+ _clearNewCardActionTimeout() {
3869
+ this.newCardActionRequiredTimeoutId && (window.clearTimeout(this.newCardActionRequiredTimeoutId), this.newCardActionRequiredTimeoutId = null);
3870
+ }
3871
+ // ─── Хранение токенов ────────────────────────────────────────────────────────
3872
+ _saveTokensToStorage(n, o) {
3873
+ Oe(n, o);
3874
+ }
3875
+ _clearAuthStorage() {
3876
+ Ge();
3877
+ }
3878
+ _getAuthStorageValue(n) {
3879
+ return oe._getAuthStorageValue(n);
3880
+ }
3881
+ _setAuthStorageValue(n, o) {
3882
+ oe._setAuthStorageValue(n, o);
3883
+ }
3884
+ _removeAuthStorageValue(n) {
3885
+ oe._removeAuthStorageValue(n);
3886
+ }
3887
+ // ─── Google Pay SDK (используется из domUI + paymentFlow) ────────────────────
3888
+ _loadGooglePaySdk() {
3889
+ var n, o;
3890
+ return typeof window > "u" || typeof document > "u" ? Promise.reject(new Error("Google Pay SDK requires browser environment")) : (o = (n = window.google) == null ? void 0 : n.payments) != null && o.api ? Promise.resolve() : this._googlePayScriptPromise ? this._googlePayScriptPromise : (this._googlePayScriptPromise = new Promise((s, i) => {
3891
+ const u = document.querySelector(
3892
+ 'script[data-choco-google-pay-sdk="true"]'
3893
+ );
3894
+ if (u) {
3895
+ u.addEventListener("load", () => s(), { once: !0 }), u.addEventListener(
3896
+ "error",
3897
+ () => i(new Error("Failed to load Google Pay SDK")),
3898
+ { once: !0 }
3899
+ );
3900
+ return;
3901
+ }
3902
+ const c = document.createElement("script");
3903
+ c.src = "https://pay.google.com/gp/p/js/pay.js", c.async = !0, c.defer = !0, c.setAttribute("data-choco-google-pay-sdk", "true"), c.onload = () => s(), c.onerror = () => i(new Error("Failed to load Google Pay SDK")), document.head.appendChild(c);
3904
+ }).finally(() => {
3905
+ var s, i;
3906
+ (i = (s = window.google) == null ? void 0 : s.payments) != null && i.api || (this._googlePayScriptPromise = null);
3907
+ }), this._googlePayScriptPromise);
3908
+ }
3909
+ // ─── Lifecycle listeners ──────────────────────────────────────────────────────
3910
+ _attachLifecycleListeners() {
3911
+ this._lifecycleListenersAttached || (document.addEventListener("visibilitychange", this._boundVisibilityChange), window.addEventListener("focus", this._boundWindowFocus), window.addEventListener("pageshow", this._boundPageShow), this._lifecycleListenersAttached = !0);
3912
+ }
3913
+ _detachLifecycleListeners() {
3914
+ this._lifecycleListenersAttached && (document.removeEventListener("visibilitychange", this._boundVisibilityChange), window.removeEventListener("focus", this._boundWindowFocus), window.removeEventListener("pageshow", this._boundPageShow), this._lifecycleListenersAttached = !1);
3915
+ }
3916
+ _onVisibilityChange() {
3917
+ De() || _e(this);
3918
+ }
3919
+ _onWindowFocus() {
3920
+ _e(this);
3921
+ }
3922
+ _onPageShow() {
3923
+ _e(this);
3924
+ }
3925
+ // ─── Авторизация (приватная) ──────────────────────────────────────────────────
3926
+ async _obtainTokenByRefreshOrTrackId() {
3927
+ await Jt(this);
3928
+ }
3929
+ async _fetchCheckoutContextWithRetry() {
3930
+ try {
3931
+ this.checkoutContext = await Re(
3932
+ this.apiUrl,
3933
+ this._getApiConfig()
3934
+ );
3935
+ } catch (n) {
3936
+ if (n.status === 401)
3937
+ this._removeAuthStorageValue("webPayToken"), await this._obtainTokenByRefreshOrTrackId(), this.checkoutContext = await Re(
3938
+ this.apiUrl,
3939
+ this._getApiConfig()
3940
+ );
3941
+ else
3942
+ throw n;
3943
+ }
3944
+ }
3945
+ // ─── Рендер ───────────────────────────────────────────────────────────────────
3946
+ _prerender() {
3947
+ An(this);
3948
+ }
3949
+ _render() {
3950
+ un(this);
3951
+ }
3952
+ // ─── Публичный API ────────────────────────────────────────────────────────────
3953
+ async init() {
3954
+ var n, o;
3955
+ try {
3956
+ if (this._prerender(), this._attachLifecycleListeners(), !this.config.clientId)
3957
+ return this.config.onError({ attributes: { message: this.t("errorMissingTrackClient") } }), !1;
3958
+ if (this.accessToken = this._getAuthStorageValue("webPayToken"), !this.config.trackId && !this.accessToken)
3959
+ return this.paymentMethodDisabled = !0, this._render(), !0;
3960
+ this.accessToken || await this._obtainTokenByRefreshOrTrackId();
3961
+ try {
3962
+ await this._fetchCheckoutContextWithRetry();
3963
+ } catch (i) {
3964
+ const u = i;
3965
+ return this.config.onError({ attributes: { message: u.message } }), !1;
3966
+ }
3967
+ const s = Ve(
3968
+ (o = (n = this.checkoutContext) == null ? void 0 : n.data) == null ? void 0 : o.socket_connections,
3969
+ (i) => $e(this, i)
3970
+ );
3971
+ return s && (this.centrifuge = s.centrifuge), this.selectedPaymentMethod = Te(
3972
+ this.checkoutContext.data,
3973
+ this._getKaspiOptions()
3974
+ ), this._emitPaymentMethodSelected(), this._render(), !0;
3975
+ } catch (s) {
3976
+ return console.error(`${this.t("errorWidgetInit")}:`, s), this.config.onError({ attributes: { message: s.message } }), !1;
3977
+ }
3978
+ }
3979
+ close() {
3980
+ var n;
3981
+ (n = this.container) == null || n.classList.remove("choco-one-click-widget--visible"), setTimeout(() => this.config.onCancel(), 300);
3982
+ }
3983
+ destroy() {
3984
+ const n = document.getElementById("choco-one-click-widget");
3985
+ n && (n.style.display = "none"), this._clearNewCardActionTimeout(), $(this), this._pendingSuccessPayload = null, this._detachLifecycleListeners(), this.isAddCardViewOpen && ie(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(() => {
3986
+ var o;
3987
+ (o = this.container) == null || o.remove(), this.container = null;
3988
+ }, 300)), this.isOpen = !1, this.isPaymentSheetOpen = !1, this.isAddCardViewOpen = !1, this.selectedPaymentMethod = null;
3989
+ }
3990
+ getAvailablePaymentMethods() {
3991
+ var n;
3992
+ return (n = this.checkoutContext) != null && n.data ? Tt(
3993
+ this.checkoutContext.data,
3994
+ (o) => this.t(o),
3995
+ this._getKaspiOptions()
3996
+ ) : [];
3997
+ }
3998
+ async createOrder() {
3999
+ return yn(this);
4000
+ }
4001
+ async pay() {
4002
+ try {
4003
+ await this.createOrder();
4004
+ } catch (n) {
4005
+ console.error(`${this.t("errorPaymentProcess")}:`, n);
4006
+ }
4007
+ }
4008
+ async handlePayment() {
4009
+ if (!this._isInteractionBlocked()) {
4010
+ this._emitUserEvent("one_click_pay_cta_tapped", {
4011
+ payment_method: this._getPaymentMethodForUserEvent()
4012
+ });
4013
+ try {
4014
+ if (this.config.onConfirmPay) {
4015
+ this.config.onConfirmPay(this.selectedPaymentMethod || null);
4016
+ return;
4017
+ }
4018
+ await this.pay();
4019
+ } catch (n) {
4020
+ console.error(`${this.t("errorPaymentProcess")}:`, n);
4021
+ }
4022
+ }
4023
+ }
4024
+ openPaymentSheet() {
4025
+ lt(this);
4026
+ }
4027
+ closePaymentSheet() {
4028
+ W(this);
4029
+ }
4030
+ async updateAmount(n) {
4031
+ if (typeof n != "number" || !Number.isFinite(n) || n < 0)
4032
+ throw new Error("amount must be a non-negative number");
4033
+ this.config.amount = n, ge(this);
4034
+ }
4035
+ async updateAvailableBonus(n) {
4036
+ if (typeof n != "number" || !Number.isFinite(n) || n < 0)
4037
+ throw new Error("availableBonus must be a non-negative number");
4038
+ this.config.bonuses && (this.config.bonuses.availableBonus = n), ge(this);
4039
+ }
4040
+ async updateLocale(n) {
4041
+ if (typeof n != "string" || !this.translations[n])
4042
+ throw new Error(`Unsupported locale: ${n}`);
4043
+ if (this.config.locale = n, !this.container) return;
4044
+ const o = this.isPaymentSheetOpen, s = this.isAddCardViewOpen;
4045
+ if (this._render(), ee(this), o) {
4046
+ const i = this.container.querySelector('[data-sheet="payment"]');
4047
+ i && (i.classList.add("choco-widget-payment-sheet--open"), this.isPaymentSheetOpen = !0);
4048
+ }
4049
+ s && Ze(this);
4050
+ }
4051
+ async setLoading(n) {
4052
+ this.loading = !!n, ee(this);
4053
+ }
4054
+ async setDisabled(n) {
4055
+ this.disabled = !!n, ee(this);
4056
+ }
4057
+ async setPreorderId(n) {
4058
+ this.config.preorderId = n;
4059
+ }
4060
+ async setMerchantOrderId(n) {
4061
+ this.config.merchantOrderId = n;
4062
+ }
4063
+ async logout() {
4064
+ await oe.logout(), this.accessToken = null;
4065
+ }
4066
+ async updateTrackId(n) {
4067
+ var o, s;
4068
+ if (this.config.trackId = n, !this.config.clientId)
4069
+ return this.config.onError({ attributes: { message: this.t("errorMissingTrackClient") } }), !1;
4070
+ try {
4071
+ this._prerender(), await this._obtainTokenByRefreshOrTrackId();
4072
+ try {
4073
+ await this._fetchCheckoutContextWithRetry();
4074
+ } catch (u) {
4075
+ const c = u;
4076
+ return this.config.onError({ attributes: { message: c.message } }), !1;
4077
+ }
4078
+ this.centrifuge && (this.centrifuge.disconnect(), this.centrifuge = null);
4079
+ const i = Ve(
4080
+ (s = (o = this.checkoutContext) == null ? void 0 : o.data) == null ? void 0 : s.socket_connections,
4081
+ (u) => $e(this, u)
4082
+ );
4083
+ return i && (this.centrifuge = i.centrifuge), this.selectedPaymentMethod = Te(
4084
+ this.checkoutContext.data,
4085
+ this._getKaspiOptions()
4086
+ ), this._emitPaymentMethodSelected(), this.paymentMethodDisabled = !1, this._render(), !0;
4087
+ } catch (i) {
4088
+ return console.error(`${this.t("errorWidgetInit")}:`, i), this.config.onError({ attributes: { message: i.message } }), !1;
4089
+ }
4090
+ }
4091
+ async onConfirmPay(n) {
4092
+ if (typeof n != "function") throw new Error("onConfirmPay callback must be a function");
4093
+ this.config.onConfirmPay = n;
4094
+ }
4095
+ async onPaymentMethodSelected(n) {
4096
+ if (typeof n != "function")
4097
+ throw new Error("onPaymentMethodSelected callback must be a function");
4098
+ this.config.onPaymentMethodSelected = n, this._emitPaymentMethodSelected();
4099
+ }
4100
+ async onKaspiLink(n) {
4101
+ if (typeof n != "function") throw new Error("onKaspiLink callback must be a function");
4102
+ this.config.onKaspiLink = n;
4103
+ }
4104
+ async onUserEvent(n) {
4105
+ if (typeof n != "function") throw new Error("onUserEvent callback must be a function");
4106
+ this.config.onUserEvent = n;
4107
+ }
4108
+ async onAppliedBonus(n) {
4109
+ if (typeof n != "function")
4110
+ throw new Error("onAppliedBonus callback must be a function");
4111
+ this.config.onAppliedBonus = n;
4112
+ }
4113
+ }
4114
+ typeof window < "u" && (window.ChocoOneClickWidget = oe);
4115
+ export {
4116
+ oe as default
4117
+ };