@eventlook/sdk 1.7.2 → 1.7.3

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.
Files changed (65) hide show
  1. package/.prettierignore +3 -0
  2. package/CLAUDE.md +33 -0
  3. package/dist/cjs/{index-D1KZ-2U1.js → index-CXsZ9BsP.js} +26476 -25947
  4. package/dist/cjs/index-CXsZ9BsP.js.map +1 -0
  5. package/dist/cjs/index.js +3 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/{index.umd-C2KzR75H.js → index.umd-DR37hmpO.js} +2 -2
  8. package/dist/cjs/{index.umd-C2KzR75H.js.map → index.umd-DR37hmpO.js.map} +1 -1
  9. package/dist/cjs/{mui-tel-input.es-Bjml407E.js → mui-tel-input.es-Dk9M_v4X.js} +6 -6
  10. package/dist/{esm/mui-tel-input.es-Bt2rE3An.js.map → cjs/mui-tel-input.es-Dk9M_v4X.js.map} +1 -1
  11. package/dist/esm/{index-DRYwiFvp.js → index-z31XSEKz.js} +26751 -26240
  12. package/dist/esm/index-z31XSEKz.js.map +1 -0
  13. package/dist/esm/index.js +3 -1
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/{index.umd-BXOC8cuK.js → index.umd-5znOX_Ww.js} +4 -4
  16. package/dist/esm/{index.umd-BXOC8cuK.js.map → index.umd-5znOX_Ww.js.map} +1 -1
  17. package/dist/esm/{mui-tel-input.es-Bt2rE3An.js → mui-tel-input.es-Cb4Lpqx7.js} +21 -21
  18. package/dist/{cjs/mui-tel-input.es-Bjml407E.js.map → esm/mui-tel-input.es-Cb4Lpqx7.js.map} +1 -1
  19. package/dist/types/form/paydroid/PaydroidCashlessSection.d.ts +7 -0
  20. package/dist/types/form/paydroid/PaydroidError.d.ts +3 -0
  21. package/dist/types/form/paydroid/PaydroidErrorAccount.d.ts +3 -0
  22. package/dist/types/form/paydroid/PaydroidErrorTicket.d.ts +3 -0
  23. package/dist/types/form/paydroid/PaydroidPage.d.ts +6 -0
  24. package/dist/types/form/paydroid/PaydroidStatusCard.d.ts +10 -0
  25. package/dist/types/form/paydroid/PaydroidSuccess.d.ts +3 -0
  26. package/dist/types/form/paydroid/PaydroidSuccessTopup.d.ts +3 -0
  27. package/dist/types/locales/cs.d.ts +31 -0
  28. package/dist/types/locales/en.d.ts +31 -0
  29. package/dist/types/locales/es.d.ts +31 -0
  30. package/dist/types/locales/pl.d.ts +31 -0
  31. package/dist/types/locales/sk.d.ts +31 -0
  32. package/dist/types/locales/uk.d.ts +31 -0
  33. package/dist/types/modules/paydroid.d.ts +4 -0
  34. package/dist/types/utils/data/page.d.ts +7 -0
  35. package/dist/types/utils/page.d.ts +1 -0
  36. package/dist/types/utils/paydroid.d.ts +6 -0
  37. package/dist/types/utils/types/global.type.d.ts +1 -0
  38. package/dist/types/utils/types/order.type.d.ts +2 -0
  39. package/dist/types/utils/types/paydroid.d.ts +23 -0
  40. package/package.json +4 -2
  41. package/src/form/PaymentSuccess.tsx +6 -2
  42. package/src/form/TicketForm.tsx +7 -1
  43. package/src/form/paydroid/PaydroidCashlessSection.tsx +311 -0
  44. package/src/form/paydroid/PaydroidError.tsx +26 -0
  45. package/src/form/paydroid/PaydroidErrorAccount.tsx +26 -0
  46. package/src/form/paydroid/PaydroidErrorTicket.tsx +26 -0
  47. package/src/form/paydroid/PaydroidPage.tsx +22 -0
  48. package/src/form/paydroid/PaydroidStatusCard.tsx +91 -0
  49. package/src/form/paydroid/PaydroidSuccess.tsx +26 -0
  50. package/src/form/paydroid/PaydroidSuccessTopup.tsx +26 -0
  51. package/src/locales/cs.tsx +37 -0
  52. package/src/locales/en.tsx +35 -0
  53. package/src/locales/es.tsx +36 -0
  54. package/src/locales/pl.tsx +35 -0
  55. package/src/locales/sk.tsx +37 -0
  56. package/src/locales/uk.tsx +35 -0
  57. package/src/modules/paydroid.ts +33 -0
  58. package/src/utils/data/page.ts +7 -0
  59. package/src/utils/page.ts +4 -0
  60. package/src/utils/paydroid.ts +35 -0
  61. package/src/utils/types/global.type.ts +1 -0
  62. package/src/utils/types/order.type.ts +2 -0
  63. package/src/utils/types/paydroid.ts +26 -0
  64. package/dist/cjs/index-D1KZ-2U1.js.map +0 -1
  65. package/dist/esm/index-DRYwiFvp.js.map +0 -1
@@ -64,6 +64,7 @@ const es = {
64
64
  'Esta es una categoría complementaria — introduzca el número de una entrada ya comprada.',
65
65
  primary_ticket_dialog_title: 'Introduzca el número de la entrada principal',
66
66
  primary_ticket_dialog_input_label: 'Número de la entrada principal',
67
+ amount: 'Cantidad',
67
68
  },
68
69
  validation: {
69
70
  required: 'Este campo es obligatorio.',
@@ -185,6 +186,41 @@ const es = {
185
186
  button: 'Descargar entrada',
186
187
  products: 'Tus productos',
187
188
  },
189
+ paydroid: {
190
+ label: 'Paydroid Cashless',
191
+ heading: '¡Evita las colas!',
192
+ heading_cta: 'Recarga ahora',
193
+ subtitle:
194
+ 'El evento solo acepta pagos sin efectivo a través de Paydroid Cashless. ¡Recarga tu saldo ahora y evita las colas!',
195
+ amount_label: '¿Cuánto deseas recargar?',
196
+ amount_placeholder: 'Ingresa el monto',
197
+ promo: '¡Recarga más de 1000 CZK y obtén una cerveza gratis!',
198
+ terms_prefix: 'Acepto los',
199
+ terms_conditions: 'Términos y condiciones',
200
+ terms_middle: 'de Paydroid Cashless y la',
201
+ terms_privacy: 'Política de privacidad',
202
+ terms: 'Acepto los T&C y GDPR de Paydroid Cashless',
203
+ skip: 'solo quiero la entrada en la app',
204
+ submit: 'recargar',
205
+ success_title: 'Añadimos la entrada a tu cuenta',
206
+ success_subtitle:
207
+ 'Solo inicia sesión en la app Paydroid Cashless. ¡Y si quieres saltarte las colas, recarga en la app!',
208
+ topup_success_title: '¡Gracias por recargar!',
209
+ topup_success_subtitle:
210
+ 'Hemos acreditado tu cuenta Paydroid Cashless. Solo inicia sesión en la app.',
211
+ error_title: 'La recarga falló',
212
+ error_subtitle: 'No se te ha cobrado nada. Contáctanos si tienes algún problema.',
213
+ error_account_title: 'No se pudo crear la cuenta',
214
+ error_account_subtitle:
215
+ 'Es posible que hayas introducido datos diferentes a los de nuestros registros.',
216
+ error_account_button: 'iniciar sesión en la app',
217
+ error_ticket_title: 'No se pudo añadir la entrada',
218
+ error_ticket_subtitle:
219
+ 'Lo sentimos, inténtalo más tarde. Contáctanos si el problema persiste.',
220
+ faq_button: 'preguntas frecuentes',
221
+ retry_button: 'intentar de nuevo',
222
+ missing_api_key: 'Falta la clave API de Paydroid',
223
+ },
188
224
  unpaid: 'El pago no se realizó.',
189
225
  unpaid_description: 'Por favor, inténtelo de nuevo haciendo clic en el botón Pagar.',
190
226
  },
@@ -64,6 +64,7 @@ const pl = {
64
64
  'To jest kategoria dodatkowa — wprowadź numer już zakupionego biletu.',
65
65
  primary_ticket_dialog_title: 'Wprowadź numer biletu głównego',
66
66
  primary_ticket_dialog_input_label: 'Numer biletu głównego',
67
+ amount: 'Kwota',
67
68
  },
68
69
  validation: {
69
70
  required: 'To pole jest wymagane.',
@@ -184,6 +185,40 @@ const pl = {
184
185
  button: 'Pobierz bilet',
185
186
  products: 'Twoje produkty',
186
187
  },
188
+ paydroid: {
189
+ label: 'Paydroid Cashless',
190
+ heading: 'Unikaj kolejek!',
191
+ heading_cta: 'Doładuj teraz',
192
+ subtitle:
193
+ 'Na imprezie płatności są wyłącznie bezgotówkowe za pomocą systemu Paydroid Cashless. Doładuj konto teraz i unikaj kolejek!',
194
+ amount_label: 'Jaką kwotę chcesz doładować?',
195
+ amount_placeholder: 'Wpisz kwotę',
196
+ promo: 'Doładuj kwotę wyższą niż 1000 CZK i otrzymaj piwo gratis!',
197
+ terms_prefix: 'Zgadzam się z',
198
+ terms_conditions: 'Regulaminem',
199
+ terms_middle: 'Paydroid Cashless oraz z',
200
+ terms_privacy: 'Zasadami przetwarzania danych osobowych',
201
+ terms: 'Zgoda na regulamin i RODO Paydroid Cashless',
202
+ skip: 'chcę tylko bilet w aplikacji',
203
+ submit: 'doładuj',
204
+ success_title: 'Dodaliśmy bilet do Twojego konta',
205
+ success_subtitle:
206
+ 'Zaloguj się do aplikacji Paydroid Cashless. Jeśli chcesz uniknąć kolejek, doładuj konto w aplikacji!',
207
+ topup_success_title: 'Dziękujemy za doładowanie!',
208
+ topup_success_subtitle:
209
+ 'Właśnie dodaliśmy środki na Twoje konto Paydroid Cashless. Zaloguj się do aplikacji.',
210
+ error_title: 'Doładowanie nie powiodło się',
211
+ error_subtitle: 'Nie zostałeś obciążony. Skontaktuj się z nami w razie problemów.',
212
+ error_account_title: 'Nie udało się utworzyć konta',
213
+ error_account_subtitle: 'Prawdopodobnie podałeś dane różniące się od naszych zapisów.',
214
+ error_account_button: 'zaloguj się do aplikacji',
215
+ error_ticket_title: 'Nie udało się dodać biletu',
216
+ error_ticket_subtitle:
217
+ 'Przepraszamy, spróbuj ponownie później. Skontaktuj się z nami jeśli problem się powtórzy.',
218
+ faq_button: 'najczęstsze pytania',
219
+ retry_button: 'spróbuj ponownie',
220
+ missing_api_key: 'Brak klucza API Paydroid',
221
+ },
187
222
  unpaid: 'Płatność nie powiodła się.',
188
223
  unpaid_description: 'Spróbuj ponownie, klikając przycisk Zapłać.',
189
224
  },
@@ -64,6 +64,7 @@ const sk = {
64
64
  'Táto kategória je doplnková — zadajte číslo už zakúpenej vstupenky.',
65
65
  primary_ticket_dialog_title: 'Zadajte číslo primárnej vstupenky',
66
66
  primary_ticket_dialog_input_label: 'Číslo primárnej vstupenky',
67
+ amount: 'Čiastka',
67
68
  },
68
69
  validation: {
69
70
  required: 'Toto pole je povinné.',
@@ -185,6 +186,42 @@ const sk = {
185
186
  button: 'Stiahnuť vstupenku',
186
187
  products: 'Vaše produkty',
187
188
  },
189
+ paydroid: {
190
+ label: 'Paydroid Cashless',
191
+ heading: 'Vyhnite sa radom!',
192
+ heading_cta: 'Prednabite si',
193
+ subtitle:
194
+ 'Na akcii sa platí len bezhotovostne pomocou systému Paydroid Cashless. Prednabite si čiastku teraz a vyhnite sa radom!',
195
+ amount_label: 'Akú čiastku chcete prednabiť?',
196
+ amount_placeholder: 'Zadajte čiastku',
197
+ promo: 'Prednabite si na akciu čiastku vyššiu ako 1000 Kč a získajte pivo zadarmo!',
198
+ terms_prefix: 'Súhlasím s',
199
+ terms_conditions: 'Obchodnými podmienkami',
200
+ terms_middle: 'Paydroid Cashless a so',
201
+ terms_privacy: 'Zásadami spracovania osobných údajov',
202
+ terms: 'Súhlas VOP a GDPR Paydroid Cashless',
203
+ skip: 'chcem len vstupenku v aplikácii',
204
+ submit: 'prednabiť',
205
+ success_title: 'Vstupenku sme pridali k vášmu účtu',
206
+ success_subtitle:
207
+ 'Stačí sa prihlásiť do aplikácie Paydroid Cashless. A ak sa chcete vyhnúť radom, prednabite si v aplikácii!',
208
+ topup_success_title: 'Ďakujeme za prednabitie!',
209
+ topup_success_subtitle:
210
+ 'Práve sme pripísali kredit na Váš účet Paydroid Cashless, stačí sa prihlásiť v aplikácii.',
211
+ error_title: 'Prednabitie sa nepodarilo',
212
+ error_subtitle:
213
+ 'Neboli ste nijako spoplatnení, v prípade akýchkoľvek problémov nás prosím kontaktujte.',
214
+ error_account_title: 'Nepodarilo sa vytvoriť účet',
215
+ error_account_subtitle:
216
+ 'Pravdepodobne ste zadali údaje, ktoré sa líšia od záznamu v našej databáze.',
217
+ error_account_button: 'prihlásiť sa do aplikácie',
218
+ error_ticket_title: 'Pridanie vstupenky sa nepodarilo',
219
+ error_ticket_subtitle:
220
+ 'Ospravedlňujeme sa, skúste to neskôr. V prípade problémov nás prosím kontaktujte.',
221
+ faq_button: 'najčastejšie otázky',
222
+ retry_button: 'skúsiť znova',
223
+ missing_api_key: 'Paydroid API kľúč chýba',
224
+ },
188
225
  unpaid: 'Platba neprebehla.',
189
226
  unpaid_description: 'Skúste to prosím znova kliknutím na tlačidlo Zaplatiť.',
190
227
  },
@@ -63,6 +63,7 @@ const uk = {
63
63
  primary_ticket_number_hint: 'Це додаткова категорія — введіть номер уже придбаного квитка.',
64
64
  primary_ticket_dialog_title: 'Введіть номер основного квитка',
65
65
  primary_ticket_dialog_input_label: 'Номер основного квитка',
66
+ amount: 'Сума',
66
67
  },
67
68
  validation: {
68
69
  required: "Це поле обов'язкове.",
@@ -184,6 +185,40 @@ const uk = {
184
185
  button: 'Завантажити квиток',
185
186
  products: 'Ваші продукти',
186
187
  },
188
+ paydroid: {
189
+ label: 'Paydroid Cashless',
190
+ heading: 'Уникайте черг!',
191
+ heading_cta: 'Поповніть баланс',
192
+ subtitle:
193
+ 'На заході оплата виключно безготівкова за допомогою системи Paydroid Cashless. Поповніть баланс зараз і уникайте черг!',
194
+ amount_label: 'Яку суму ви хочете поповнити?',
195
+ amount_placeholder: 'Введіть суму',
196
+ promo: 'Поповніть суму понад 1000 CZK та отримайте пиво безкоштовно!',
197
+ terms_prefix: 'Я погоджуюсь з',
198
+ terms_conditions: 'Умовами використання',
199
+ terms_middle: 'Paydroid Cashless та із',
200
+ terms_privacy: 'Правилами обробки персональних даних',
201
+ terms: 'Згода з умовами та GDPR Paydroid Cashless',
202
+ skip: 'лише квиток у додатку',
203
+ submit: 'поповнити',
204
+ success_title: 'Ми додали квиток до вашого облікового запису',
205
+ success_subtitle:
206
+ 'Просто увійдіть у додаток Paydroid Cashless. Якщо хочете уникнути черг — поповніть баланс у додатку!',
207
+ topup_success_title: 'Дякуємо за поповнення!',
208
+ topup_success_subtitle:
209
+ 'Ми щойно зарахували кошти на ваш рахунок Paydroid Cashless. Увійдіть у додаток.',
210
+ error_title: 'Поповнення не вдалося',
211
+ error_subtitle: 'З вас нічого не стягнуто. Зверніться до нас, якщо виникнуть проблеми.',
212
+ error_account_title: 'Не вдалося створити обліковий запис',
213
+ error_account_subtitle: 'Можливо, ви ввели дані, що відрізняються від наших записів.',
214
+ error_account_button: 'увійти в додаток',
215
+ error_ticket_title: 'Не вдалося додати квиток',
216
+ error_ticket_subtitle:
217
+ 'Вибачте, спробуйте пізніше. Зверніться до нас, якщо проблема повториться.',
218
+ faq_button: 'часті запитання',
219
+ retry_button: 'спробувати знову',
220
+ missing_api_key: 'API ключ Paydroid відсутній',
221
+ },
187
222
  unpaid: 'Платіж не здійснено.',
188
223
  unpaid_description: 'Спробуйте ще раз, натиснувши кнопку Оплатити.',
189
224
  },
@@ -0,0 +1,33 @@
1
+ import api from '@utils/axios';
2
+ import { IResponse } from '@utils/types/global.type';
3
+ import {
4
+ IPaydroidCreateAccountData,
5
+ IPaydroidTopupAccountData,
6
+ IPaydroidTopupAccountResponse,
7
+ } from '@utils/types/paydroid';
8
+
9
+ const domain = 'https://api.paydroid.cz';
10
+
11
+ export const postPaydroidCreateAccount = (
12
+ apiKey: string,
13
+ data: IPaydroidCreateAccountData
14
+ ): Promise<IResponse<null>> =>
15
+ api
16
+ .post(`${domain}/v1/requests/create-account`, data, {
17
+ headers: {
18
+ 'X-Api-Key': apiKey,
19
+ },
20
+ })
21
+ .then((res) => res.data.data);
22
+
23
+ export const postPaydroidTopupAccount = (
24
+ apiKey: string,
25
+ data: IPaydroidTopupAccountData
26
+ ): Promise<IResponse<IPaydroidTopupAccountResponse>> =>
27
+ api
28
+ .post(`${domain}/v1/requests/topup-account`, data, {
29
+ headers: {
30
+ 'X-Api-Key': apiKey,
31
+ },
32
+ })
33
+ .then((res) => res.data);
@@ -0,0 +1,7 @@
1
+ export enum Page {
2
+ PAYDROID_SUCCESS = 'paydroid-success',
3
+ PAYDROID_TOPUP_SUCCESS = 'paydroid-topup-success',
4
+ PAYDROID_ERROR = 'paydroid-error',
5
+ PAYDROID_ERROR_ACCOUNT = 'paydroid-error-account',
6
+ PAYDROID_ERROR_TICKET = 'paydroid-error-ticket',
7
+ }
@@ -0,0 +1,4 @@
1
+ import { Page } from '@utils/data/page';
2
+
3
+ export const isPaydroidPage = (page: string | null): boolean =>
4
+ Object.values(Page).includes(page as Page);
@@ -0,0 +1,35 @@
1
+ import { Page } from '@utils/data/page';
2
+ import { IOrderPaid } from '@utils/types/order.type';
3
+ import { IPaydroidCreateAccountData, IPaydroidTopupAccountData } from '@utils/types/paydroid';
4
+ import dayjs from 'dayjs';
5
+
6
+ export const getRedirectUrl = (page: Page): string => {
7
+ const base = window.location.origin + window.location.pathname;
8
+ return `${base}?page=${page}`;
9
+ };
10
+
11
+ export const transformToCreateAccountData = (data: IOrderPaid): IPaydroidCreateAccountData => ({
12
+ first_name: data.customer.firstName,
13
+ last_name: data.customer.lastName,
14
+ email: data.customer.email,
15
+ phone_number: data.customer.phone,
16
+ event_id: data.paydroidEventId || '',
17
+ tickets: data.tickets.map((ticket) => ({
18
+ number: ticket.number.toString(),
19
+ category: ticket.releaseCategoryName,
20
+ })),
21
+ ...(data.customer.birthdate
22
+ ? { date_of_birth: dayjs(data.customer.birthdate).format('YYYY-MM-DD') }
23
+ : {}),
24
+ });
25
+
26
+ export const transformToTopupAccountData = (
27
+ amount: string,
28
+ data: IOrderPaid
29
+ ): IPaydroidTopupAccountData => ({
30
+ email: data.customer.email,
31
+ event_id: data.paydroidEventId || '',
32
+ amount: Number(amount),
33
+ success_url: getRedirectUrl(Page.PAYDROID_TOPUP_SUCCESS),
34
+ failure_url: getRedirectUrl(Page.PAYDROID_ERROR),
35
+ });
@@ -35,6 +35,7 @@ export interface IGlobalContextOptions {
35
35
  termsAndConditionsCompanies?: string[];
36
36
  autoscrollAfterViewChange?: boolean;
37
37
  hasGopayId?: boolean;
38
+ paydroidApiKey?: string;
38
39
  }
39
40
 
40
41
  export interface IBase {
@@ -40,9 +40,11 @@ export interface IOrderPaid {
40
40
  orderNumber: number;
41
41
  tickets: IPaidTicket[];
42
42
  products: IPaidProduct[];
43
+ customer: ICustomer;
43
44
  extraFee: number;
44
45
  currency: Currencies;
45
46
  promoCodes: IPromoCode[] | null;
47
+ paydroidEventId: string | null;
46
48
  }
47
49
 
48
50
  export interface IAllowedPaymentMethod {
@@ -0,0 +1,26 @@
1
+ export interface IPaydroidCreateAccountTicket {
2
+ number: string;
3
+ category?: string;
4
+ }
5
+
6
+ export interface IPaydroidCreateAccountData {
7
+ first_name: string;
8
+ last_name: string;
9
+ email: string;
10
+ phone_number: string;
11
+ event_id: string;
12
+ tickets: IPaydroidCreateAccountTicket[];
13
+ date_of_birth?: string;
14
+ }
15
+
16
+ export interface IPaydroidTopupAccountData {
17
+ email: string;
18
+ event_id: string;
19
+ amount: number;
20
+ success_url: string;
21
+ failure_url: string;
22
+ }
23
+
24
+ export interface IPaydroidTopupAccountResponse {
25
+ url: string;
26
+ }