@mirai/core 0.3.379 → 0.3.380

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 (68) hide show
  1. package/__tests__/Checkout/__mocks__/checkout-get.json +935 -0
  2. package/__tests__/Checkout/__mocks__/checkout-post-PAYLATER.json +10 -0
  3. package/__tests__/Checkout/__mocks__/checkout-post-TPV.json +7 -0
  4. package/__tests__/Checkout/__mocks__/checkout-post-TRANSFER.json +10 -0
  5. package/__tests__/Checkout/checkout.constants.js +8 -0
  6. package/__tests__/Checkout/checkout.spec.jsx +40 -0
  7. package/__tests__/Checkout/workflows/form.workflow.js +17 -0
  8. package/__tests__/Checkout/workflows/index.js +4 -0
  9. package/__tests__/Checkout/workflows/payment.workflow.js +10 -0
  10. package/__tests__/Checkout/workflows/review.workflow.js +19 -0
  11. package/__tests__/Checkout/workflows/submit.workflow.js +9 -0
  12. package/__tests__/Finder/finder.spec.js +64 -0
  13. package/__tests__/Finder/workflows/calendar.workflow.js +9 -0
  14. package/__tests__/Finder/workflows/index.js +3 -0
  15. package/__tests__/Finder/workflows/occupation.workflow.js +13 -0
  16. package/__tests__/Finder/workflows/promocode.workflow.js +8 -0
  17. package/__tests__/Rates/__mocks__/rates-success.json +731 -0
  18. package/__tests__/Rates/rates.spec.jsx +20 -0
  19. package/__tests__/Session/workflows/forgotPassword.workflow.js +4 -2
  20. package/__tests__/Session/workflows/login.workflow.js +5 -3
  21. package/__tests__/Session/workflows/profile.workflow.js +11 -9
  22. package/__tests__/Signup/workflows/signup.workflow.js +9 -7
  23. package/__tests__/constants.js +18 -0
  24. package/__tests__/helpers/getWeekNumber.js +8 -0
  25. package/__tests__/helpers/index.js +1 -0
  26. package/build/components/Checkout/Checkout.js +1 -0
  27. package/build/components/Checkout/Checkout.js.map +1 -1
  28. package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +16 -16
  29. package/build/components/Checkout/partials/Checkout.Confirmation.js +2 -1
  30. package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
  31. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Confirmation.test.js.snap +6 -0
  32. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Form.test.js.snap +28 -8
  33. package/build/components/Deals/__tests__/__snapshots__/Deals.Calendar.test.js.snap +114 -114
  34. package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +211 -209
  35. package/build/components/Environment/Environment.js +4 -2
  36. package/build/components/Environment/Environment.js.map +1 -1
  37. package/build/components/Finder/Finder.compact.js +10 -5
  38. package/build/components/Finder/Finder.compact.js.map +1 -1
  39. package/build/components/Finder/Finder.constants.js +1 -2
  40. package/build/components/Finder/Finder.constants.js.map +1 -1
  41. package/build/components/Finder/Finder.js +4 -20
  42. package/build/components/Finder/Finder.js.map +1 -1
  43. package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +734 -730
  44. package/build/components/Finder/components/Calendar/__tests__/__snapshots__/Calendar.test.js.snap +419 -419
  45. package/build/components/__shared__/BookingDetails/BookingDetails.js +2 -1
  46. package/build/components/__shared__/BookingDetails/BookingDetails.js.map +1 -1
  47. package/build/components/__shared__/BookingDetails/__tests__/__snapshots__/BookingDetails.test.js.snap +5 -0
  48. package/build/components/__shared__/BookingSummary/BookingSummary.js +2 -1
  49. package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
  50. package/build/components/__shared__/ButtonMore/ButtonMore.js +1 -1
  51. package/build/components/__shared__/ButtonMore/ButtonMore.js.map +1 -1
  52. package/build/components/__shared__/ButtonMore/__tests__/__snapshots__/ButtonMore.test.js.snap +2 -0
  53. package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +1 -0
  54. package/build/components/__shared__/FieldPromocode/FieldPromocode.js +4 -2
  55. package/build/components/__shared__/FieldPromocode/FieldPromocode.js.map +1 -1
  56. package/build/components/__shared__/FieldPromocode/__tests__/__snapshots__/FieldPromocode.test.jsx.snap +2 -1
  57. package/build/components/__shared__/Occupation/Occupation.Group.js +2 -1
  58. package/build/components/__shared__/Occupation/Occupation.Group.js.map +1 -1
  59. package/build/components/__shared__/Occupation/__tests__/__snapshots__/Occupation.test.js.snap +6 -0
  60. package/build/components/__shared__/Payment/Payment.js +2 -1
  61. package/build/components/__shared__/Payment/Payment.js.map +1 -1
  62. package/build/components/__shared__/Payment/__tests__/__snapshots__/Payment.test.js.snap +25 -10
  63. package/build/helpers/consolidateStore.js +1 -1
  64. package/build/helpers/consolidateStore.js.map +1 -1
  65. package/package.json +2 -1
  66. package/playwright.config.js +10 -7
  67. package/public/routes/Home.jsx +3 -2
  68. package/__tests__/Finder/finder._spec.js +0 -18
@@ -0,0 +1,20 @@
1
+ import { test } from '@playwright/test';
2
+
3
+ test.beforeEach(async ({ context }) => {
4
+ await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
5
+ });
6
+
7
+ test('Rates workflows', async ({ page }) => {
8
+ await page.route('https://reservation.mirai.com/XMAS/reservation/v2/booking/rates*', (route) => {
9
+ route.fulfill({
10
+ status: 200,
11
+ contentType: 'application/json',
12
+ body: JSON.stringify(require('./__mocks__/rates-success.json')),
13
+ });
14
+ });
15
+
16
+ await page.goto(
17
+ 'http://local.mirai.com:8080/step1-rates?checkin=10/04/2025&idtokenprovider=100379008&currency=EUR&hsri=02040&lang=en&nights=2&parties=W3siYWR1bHRzIjoyLCJjaGlsZHJlbiI6W119XQ%3D%3D&&step=1',
18
+ { waitUntil: 'networkidle', timeout: 10000 },
19
+ );
20
+ });
@@ -1,12 +1,14 @@
1
1
  import { expect } from '@playwright/test';
2
2
 
3
+ import { USER } from '../../constants';
4
+
3
5
  export const forgotPassword = async ({ page }) => {
4
6
  await page.getByTestId('show-login').click();
5
7
  await page.waitForTimeout(300);
6
8
 
7
9
  await page.getByTestId('login-action').click();
8
10
 
9
- await page.fill('input[name="email"]', 'email@mirai.com');
11
+ await page.fill('input[name="email"]', USER.email);
10
12
 
11
13
  const [responseError] = await Promise.all([
12
14
  page.waitForResponse((response) => response.url().includes('/recovery') && !!response.status()),
@@ -14,5 +16,5 @@ export const forgotPassword = async ({ page }) => {
14
16
  ]);
15
17
  expect(responseError.status()).toBe(200);
16
18
 
17
- page.getByTestId('login-button-secondary').click();
19
+ await page.getByTestId('login-button-secondary').click();
18
20
  };
@@ -1,11 +1,13 @@
1
1
  import { expect } from '@playwright/test';
2
2
 
3
+ import { SESSION } from '../../constants';
4
+
3
5
  export const login = async ({ page }) => {
4
6
  await page.getByTestId('show-login').click();
5
7
  await page.waitForTimeout(300);
6
8
 
7
9
  // Fails
8
- await page.fill('input[name="email"]', 'hello@soyjavi.com');
10
+ await page.fill('input[name="email"]', SESSION.email);
9
11
  expect(await page.getByTestId('login-button').getAttribute('disabled')).toBe('true');
10
12
  await page.fill('input[name="password"]', 'PassworD');
11
13
 
@@ -16,8 +18,8 @@ export const login = async ({ page }) => {
16
18
  expect(responseError.status()).toBe(400);
17
19
 
18
20
  // Success
19
- await page.fill('input[name="email"]', 'hello@soyjavi.com');
20
- await page.fill('input[name="password"]', 'P4ssw0rD');
21
+ await page.fill('input[name="email"]', SESSION.email);
22
+ await page.fill('input[name="password"]', SESSION.password);
21
23
 
22
24
  const [response] = await Promise.all([
23
25
  page.waitForResponse((response) => response.url().includes('/login') && !!response.status()),
@@ -1,5 +1,7 @@
1
1
  import { expect } from '@playwright/test';
2
2
 
3
+ import { SESSION, USER } from '../../constants';
4
+
3
5
  // ! TODO: Somehow we should close the notifications
4
6
  // import { closeNotification } from '../../helpers';
5
7
 
@@ -10,9 +12,9 @@ export const profile = async ({ page }) => {
10
12
  await page.waitForURL(/\/profile/, { waitUntil: 'networkidle', timeout: 10000 });
11
13
 
12
14
  // Update profile
13
- await page.fill('input[name="firstName"]', 'Javier');
14
- await page.fill('input[name="lastName"]', 'Jimenez Villar');
15
- await page.fill('input[name="dateOfBirth"]', '10/04/1980');
15
+ await page.fill('input[name="firstName"]', USER.firstName);
16
+ await page.fill('input[name="lastName"]', USER.lastName);
17
+ await page.fill('input[name="dateOfBirth"]', USER.dateOfBirth);
16
18
  await page.locator('input[name="subscribed"]').check();
17
19
 
18
20
  const [response] = await Promise.all([
@@ -23,16 +25,16 @@ export const profile = async ({ page }) => {
23
25
  // await closeNotification();
24
26
 
25
27
  // Move to "security" context
26
- page.getByTestId('profile-context-2').click();
28
+ await page.getByTestId('profile-context-2').click();
27
29
 
28
30
  // Try to change the password but user fails with the confirmation password
29
- await page.fill('input[name="password"]', 'P4ssw0rD');
31
+ await page.fill('input[name="password"]', SESSION.password);
30
32
  await page.fill('input[name="rePassword"]', 'n3wp4ssw0rD');
31
33
  expect(await page.getByTestId('button-password').getAttribute('disabled')).toBe('true');
32
34
 
33
35
  // User changes password
34
- await page.fill('input[name="password"]', 'P4ssw0rD');
35
- await page.fill('input[name="rePassword"]', 'P4ssw0rD');
36
+ await page.fill('input[name="password"]', SESSION.password);
37
+ await page.fill('input[name="rePassword"]', SESSION.password);
36
38
  const [responsePassword] = await Promise.all([
37
39
  page.waitForResponse((response) => response.url().includes('/modify_member') && !!response.status()),
38
40
  page.getByTestId('button-password').click(),
@@ -41,7 +43,7 @@ export const profile = async ({ page }) => {
41
43
  // await closeNotification();
42
44
 
43
45
  // Try to delete account and cancel process.
44
- page.getByTestId('button-delete-account').click();
46
+ await page.getByTestId('button-delete-account').click();
45
47
  await page.waitForTimeout(300);
46
- page.getByTestId('button-delete-close').click();
48
+ await page.getByTestId('button-delete-close').click();
47
49
  };
@@ -1,12 +1,14 @@
1
1
  import { expect } from '@playwright/test';
2
2
 
3
+ import { USER } from '../../constants';
4
+
3
5
  export const signup = async ({ page }) => {
4
- await page.fill('ui-signup input[name="firstName"]', 'Mirai');
5
- await page.fill('ui-signup input[name="lastName"]', 'Tech');
6
- await page.fill('ui-signup input[name="email"]', 'tech@mirai.com');
7
- await page.fill('ui-signup input[name="dateOfBirth"]', '10/04/1980');
8
- await page.locator('ui-signup select[name="country"]').selectOption('Spain');
9
- await page.fill('ui-signup input[name="password"]', 'P4ssw0rD');
6
+ await page.fill('ui-signup input[name="firstName"]', USER.firstName);
7
+ await page.fill('ui-signup input[name="lastName"]', USER.lastName);
8
+ await page.fill('ui-signup input[name="email"]', USER.email);
9
+ await page.fill('ui-signup input[name="dateOfBirth"]', USER.dateOfBirth);
10
+ await page.locator('ui-signup select[name="country"]').selectOption('United States');
11
+ await page.fill('ui-signup input[name="password"]', USER.password);
10
12
  await page.locator('ui-signup input[name="subscribed"]').check();
11
13
 
12
14
  // User forgot some fields
@@ -20,5 +22,5 @@ export const signup = async ({ page }) => {
20
22
  page.getByTestId('signup-button').click(),
21
23
  ]);
22
24
 
23
- expect(responseError.status().toString()).toBe('409');
25
+ expect(responseError.status()).toBe(409);
24
26
  };
@@ -0,0 +1,18 @@
1
+ const SESSION = {
2
+ email: 'hello@soyjavi.com',
3
+ password: 'BuyB1tc01N',
4
+ };
5
+
6
+ const USER = {
7
+ firstName: 'Hal',
8
+ lastName: 'Finney',
9
+ dateOfBirth: '04/05/1956',
10
+ phone: {
11
+ prefix: '+1',
12
+ number: '818-555-1234',
13
+ },
14
+ email: 'hal@finney.org',
15
+ password: 'BuyB1tc01N',
16
+ };
17
+
18
+ export { SESSION, USER };
@@ -0,0 +1,8 @@
1
+ import { UTC } from '@mirai/locale';
2
+
3
+ export const getWeekNumber = (date) => {
4
+ const firstDayOfYear = UTC(new Date(date.getFullYear(), 0, 1));
5
+ const pastDaysOfYear = (Number(date) - Number(firstDayOfYear)) / 86400000;
6
+
7
+ return Math.ceil((pastDaysOfYear + firstDayOfYear.getDay()) / 7);
8
+ };
@@ -1 +1,2 @@
1
1
  export * from './closeNotification';
2
+ export * from './getWeekNumber';
@@ -117,6 +117,7 @@ const Checkout = _ref => {
117
117
  const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;
118
118
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Header.Header, null), /*#__PURE__*/_react.default.createElement(_ui.View, {
119
119
  role: "checkout",
120
+ tag: "checkout",
120
121
  testId: others.testId,
121
122
  className: (0, _ui.styles)(style.container, others.className)
122
123
  }, /*#__PURE__*/_react.default.createElement(_ui.Progress, {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkout.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Checkout","_Checkout2","style","_Checkout3","_partials","_Core","_shared__","_Booking","_Header","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Checkout","_ref","skeleton","others","isDesktop","useDevice","translate","useLocale","track","trackRender","useMetrics","value","currency","hotel","id","language","locale","session","urlParams","useStore","dataSource","setDataSource","useState","error","setError","requiredFields","setRequiredFields","modalAgency","setModalAgency","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","concat","TRACKING","response","ServiceBooking","checkout","applyClubDiscount","undefined","catch","service","method","trace","tracking","chainId","idchain","window","addEventListener","innerHeight","scrollY","documentElement","scrollHeight","document","handleModalAgency","handleErrorConfirmation","scrollTo","top","behavior","agency","payment","hasRequiredFields","keys","createElement","Fragment","Header","View","role","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","wide","main","NotificationRequiredFields","form","values","BookingSummary","box","BookingDetails","expanded","name","Notification","small","info","L10N","NOTIFICATION_NO_CARD","NOTIFICATION_AGENCY","link","Action","underline","onPress","action","ACTION_MORE_INFO","Form","showErrors","onError","BookingTerms","Confirmation","onValid","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","ModalAgency","onClose","Footer","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Checkout/Checkout.jsx"],"sourcesContent":["import { useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking, ServiceFeatures } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } from './Checkout.constants';\nimport { L10N } from './Checkout.l10n';\nimport * as style from './Checkout.module.css';\nimport Skeleton from './Checkout.skeleton';\nimport { Confirmation, Form } from './partials';\nimport { ERROR } from '../../Core.constants';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer, NotificationRequiredFields } from '../__shared__';\nimport { ModalAgency } from '../Booking/partials/Booking.ModalAgency';\nimport { Header } from '../Header';\nimport { trace } from '../helpers';\n\nlet hasTracking = false;\n\nconst Checkout = ({ skeleton, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track, trackRender } = useMetrics();\n const {\n value: { currency, hotel, id, language, locale, session, urlParams = {} },\n } = useStore();\n\n const [dataSource, setDataSource] = useState();\n const [error, setError] = useState();\n const [requiredFields, setRequiredFields] = useState();\n const [modalAgency, setModalAgency] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n hasTracking && trackRender(`${TRACKING}:RENDER`, { locale });\n\n (async () => {\n const response = await ServiceBooking.checkout({\n currency,\n hotel,\n language,\n locale,\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setResponseError(error);\n hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'checkout', error });\n });\n setDataSource(response);\n response && trace({ ...response.tracking, chainId: urlParams.idchain });\n })();\n\n window.addEventListener('scroll', () => {\n if (!hasTracking) return;\n const { innerHeight = 0, scrollY } = window;\n const { documentElement: { scrollHeight = 0 } = {} } = document;\n\n if (scrollY >= scrollHeight - innerHeight) track(`${TRACKING}:SCROLL:BOTTOM`);\n else if (scrollY === 0) track(`${TRACKING}:SCROLL:TOP`);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, session]);\n\n const handleModalAgency = () => {\n setModalAgency(true);\n };\n\n const handleErrorConfirmation = () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n setRequiredFields(error);\n };\n\n const { agency = {}, payment } = dataSource || {};\n const response = dataSource !== undefined;\n const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;\n\n return (\n <>\n <Header />\n\n <View role=\"checkout\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={!response && !responseError} className={style.progress} />\n {response ? (\n <View row={isDesktop} className={style.content}>\n <View wide className={style.main}>\n {hasRequiredFields && <NotificationRequiredFields form=\"checkout\" values={requiredFields} />}\n\n {!isDesktop && (\n <BookingSummary box dataSource={dataSource}>\n <BookingDetails dataSource={dataSource} expanded />\n </BookingSummary>\n )}\n\n {(agency.name || !payment) && (\n <Notification small info wide className={styles(style.agency, others.className)}>\n {!payment && `${translate(L10N.NOTIFICATION_NO_CARD)} `}\n {agency.name &&\n translate(L10N.NOTIFICATION_AGENCY, {\n agency: agency.name,\n link: (\n <>\n <Action underline small onPress={handleModalAgency} className={styles(style.action)}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n ),\n })}\n </Notification>\n )}\n\n <Form dataSource={dataSource} showErrors={hasRequiredFields} onError={setError} />\n\n {isDesktop && <BookingDetails dataSource={dataSource} className={style.box} />}\n\n <BookingTerms dataSource={dataSource} small tracking={TRACKING} />\n </View>\n\n <Confirmation\n dataSource={dataSource}\n error={Object.keys(error || {}).length > 0}\n onError={handleErrorConfirmation}\n onValid={() => setRequiredFields()}\n />\n </View>\n ) : responseError ? (\n <Notification error large>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n {agency.name && <ModalAgency {...agency} visible={modalAgency} onClose={() => setModalAgency(false)} />}\n\n <Footer />\n </>\n );\n};\n\nCheckout.displayName = 'Mirai:Core:Checkout';\n\nCheckout.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Checkout };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkout.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Checkout","_Checkout2","style","_Checkout3","_partials","_Core","_shared__","_Booking","_Header","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Checkout","_ref","skeleton","others","isDesktop","useDevice","translate","useLocale","track","trackRender","useMetrics","value","currency","hotel","id","language","locale","session","urlParams","useStore","dataSource","setDataSource","useState","error","setError","requiredFields","setRequiredFields","modalAgency","setModalAgency","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","concat","TRACKING","response","ServiceBooking","checkout","applyClubDiscount","undefined","catch","service","method","trace","tracking","chainId","idchain","window","addEventListener","innerHeight","scrollY","documentElement","scrollHeight","document","handleModalAgency","handleErrorConfirmation","scrollTo","top","behavior","agency","payment","hasRequiredFields","keys","createElement","Fragment","Header","View","role","tag","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","wide","main","NotificationRequiredFields","form","values","BookingSummary","box","BookingDetails","expanded","name","Notification","small","info","L10N","NOTIFICATION_NO_CARD","NOTIFICATION_AGENCY","link","Action","underline","onPress","action","ACTION_MORE_INFO","Form","showErrors","onError","BookingTerms","Confirmation","onValid","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","ModalAgency","onClose","Footer","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Checkout/Checkout.jsx"],"sourcesContent":["import { useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking, ServiceFeatures } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } from './Checkout.constants';\nimport { L10N } from './Checkout.l10n';\nimport * as style from './Checkout.module.css';\nimport Skeleton from './Checkout.skeleton';\nimport { Confirmation, Form } from './partials';\nimport { ERROR } from '../../Core.constants';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer, NotificationRequiredFields } from '../__shared__';\nimport { ModalAgency } from '../Booking/partials/Booking.ModalAgency';\nimport { Header } from '../Header';\nimport { trace } from '../helpers';\n\nlet hasTracking = false;\n\nconst Checkout = ({ skeleton, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track, trackRender } = useMetrics();\n const {\n value: { currency, hotel, id, language, locale, session, urlParams = {} },\n } = useStore();\n\n const [dataSource, setDataSource] = useState();\n const [error, setError] = useState();\n const [requiredFields, setRequiredFields] = useState();\n const [modalAgency, setModalAgency] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n hasTracking && trackRender(`${TRACKING}:RENDER`, { locale });\n\n (async () => {\n const response = await ServiceBooking.checkout({\n currency,\n hotel,\n language,\n locale,\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setResponseError(error);\n hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'checkout', error });\n });\n setDataSource(response);\n response && trace({ ...response.tracking, chainId: urlParams.idchain });\n })();\n\n window.addEventListener('scroll', () => {\n if (!hasTracking) return;\n const { innerHeight = 0, scrollY } = window;\n const { documentElement: { scrollHeight = 0 } = {} } = document;\n\n if (scrollY >= scrollHeight - innerHeight) track(`${TRACKING}:SCROLL:BOTTOM`);\n else if (scrollY === 0) track(`${TRACKING}:SCROLL:TOP`);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, session]);\n\n const handleModalAgency = () => {\n setModalAgency(true);\n };\n\n const handleErrorConfirmation = () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n setRequiredFields(error);\n };\n\n const { agency = {}, payment } = dataSource || {};\n const response = dataSource !== undefined;\n const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;\n\n return (\n <>\n <Header />\n\n <View role=\"checkout\" tag=\"checkout\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={!response && !responseError} className={style.progress} />\n {response ? (\n <View row={isDesktop} className={style.content}>\n <View wide className={style.main}>\n {hasRequiredFields && <NotificationRequiredFields form=\"checkout\" values={requiredFields} />}\n\n {!isDesktop && (\n <BookingSummary box dataSource={dataSource}>\n <BookingDetails dataSource={dataSource} expanded />\n </BookingSummary>\n )}\n\n {(agency.name || !payment) && (\n <Notification small info wide className={styles(style.agency, others.className)}>\n {!payment && `${translate(L10N.NOTIFICATION_NO_CARD)} `}\n {agency.name &&\n translate(L10N.NOTIFICATION_AGENCY, {\n agency: agency.name,\n link: (\n <>\n <Action underline small onPress={handleModalAgency} className={styles(style.action)}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n ),\n })}\n </Notification>\n )}\n\n <Form dataSource={dataSource} showErrors={hasRequiredFields} onError={setError} />\n\n {isDesktop && <BookingDetails dataSource={dataSource} className={style.box} />}\n\n <BookingTerms dataSource={dataSource} small tracking={TRACKING} />\n </View>\n\n <Confirmation\n dataSource={dataSource}\n error={Object.keys(error || {}).length > 0}\n onError={handleErrorConfirmation}\n onValid={() => setRequiredFields()}\n />\n </View>\n ) : responseError ? (\n <Notification error large>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n {agency.name && <ModalAgency {...agency} visible={modalAgency} onClose={() => setModalAgency(false)} />}\n\n <Footer />\n </>\n );\n};\n\nCheckout.displayName = 'Mirai:Core:Checkout';\n\nCheckout.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Checkout };\n"],"mappings":"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"}
@@ -168,7 +168,7 @@ exports[`component:<Checkout> Test A/B variant A 1`] = `
168
168
  </ui-view>
169
169
  </ui-view>
170
170
  </ui-header>
171
- <ui-view
171
+ <ui-checkout
172
172
  class="view"
173
173
  >
174
174
  <ui-progress
@@ -213,7 +213,7 @@ exports[`component:<Checkout> Test A/B variant A 1`] = `
213
213
  />
214
214
  </ui-view>
215
215
  </ui-view>
216
- </ui-view>
216
+ </ui-checkout>
217
217
  <ui-view
218
218
  class="view row"
219
219
  >
@@ -430,7 +430,7 @@ exports[`component:<Checkout> Test A/B variant B 1`] = `
430
430
  </ui-view>
431
431
  </ui-view>
432
432
  </ui-header>
433
- <ui-view
433
+ <ui-checkout
434
434
  class="view"
435
435
  >
436
436
  <ui-progress
@@ -475,7 +475,7 @@ exports[`component:<Checkout> Test A/B variant B 1`] = `
475
475
  />
476
476
  </ui-view>
477
477
  </ui-view>
478
- </ui-view>
478
+ </ui-checkout>
479
479
  <ui-view
480
480
  class="view row"
481
481
  >
@@ -692,7 +692,7 @@ exports[`component:<Checkout> inherit:className 1`] = `
692
692
  </ui-view>
693
693
  </ui-view>
694
694
  </ui-header>
695
- <ui-view
695
+ <ui-checkout
696
696
  class="view mirai"
697
697
  >
698
698
  <ui-progress
@@ -737,7 +737,7 @@ exports[`component:<Checkout> inherit:className 1`] = `
737
737
  />
738
738
  </ui-view>
739
739
  </ui-view>
740
- </ui-view>
740
+ </ui-checkout>
741
741
  <ui-view
742
742
  class="view row"
743
743
  >
@@ -954,7 +954,7 @@ exports[`component:<Checkout> prop:session (false) 1`] = `
954
954
  </ui-view>
955
955
  </ui-view>
956
956
  </ui-header>
957
- <ui-view
957
+ <ui-checkout
958
958
  class="view"
959
959
  >
960
960
  <ui-progress
@@ -999,7 +999,7 @@ exports[`component:<Checkout> prop:session (false) 1`] = `
999
999
  />
1000
1000
  </ui-view>
1001
1001
  </ui-view>
1002
- </ui-view>
1002
+ </ui-checkout>
1003
1003
  <ui-view
1004
1004
  class="view row"
1005
1005
  >
@@ -1216,7 +1216,7 @@ exports[`component:<Checkout> prop:skeleton 1`] = `
1216
1216
  </ui-view>
1217
1217
  </ui-view>
1218
1218
  </ui-header>
1219
- <ui-view
1219
+ <ui-checkout
1220
1220
  class="view"
1221
1221
  >
1222
1222
  <ui-progress
@@ -1261,7 +1261,7 @@ exports[`component:<Checkout> prop:skeleton 1`] = `
1261
1261
  />
1262
1262
  </ui-view>
1263
1263
  </ui-view>
1264
- </ui-view>
1264
+ </ui-checkout>
1265
1265
  <ui-view
1266
1266
  class="view row"
1267
1267
  >
@@ -1478,7 +1478,7 @@ exports[`component:<Checkout> renders 1`] = `
1478
1478
  </ui-view>
1479
1479
  </ui-view>
1480
1480
  </ui-header>
1481
- <ui-view
1481
+ <ui-checkout
1482
1482
  class="view"
1483
1483
  >
1484
1484
  <ui-progress
@@ -1523,7 +1523,7 @@ exports[`component:<Checkout> renders 1`] = `
1523
1523
  />
1524
1524
  </ui-view>
1525
1525
  </ui-view>
1526
- </ui-view>
1526
+ </ui-checkout>
1527
1527
  <ui-view
1528
1528
  class="view row"
1529
1529
  >
@@ -1740,7 +1740,7 @@ exports[`component:<Checkout> testID 1`] = `
1740
1740
  </ui-view>
1741
1741
  </ui-view>
1742
1742
  </ui-header>
1743
- <ui-view
1743
+ <ui-checkout
1744
1744
  class="view"
1745
1745
  data-testid="mirai"
1746
1746
  >
@@ -1786,7 +1786,7 @@ exports[`component:<Checkout> testID 1`] = `
1786
1786
  />
1787
1787
  </ui-view>
1788
1788
  </ui-view>
1789
- </ui-view>
1789
+ </ui-checkout>
1790
1790
  <ui-view
1791
1791
  class="view row"
1792
1792
  >
@@ -2003,7 +2003,7 @@ exports[`component:<Checkout> with a store 1`] = `
2003
2003
  </ui-view>
2004
2004
  </ui-view>
2005
2005
  </ui-header>
2006
- <ui-view
2006
+ <ui-checkout
2007
2007
  class="view"
2008
2008
  >
2009
2009
  <ui-progress
@@ -2048,7 +2048,7 @@ exports[`component:<Checkout> with a store 1`] = `
2048
2048
  />
2049
2049
  </ui-view>
2050
2050
  </ui-view>
2051
- </ui-view>
2051
+ </ui-checkout>
2052
2052
  <ui-view
2053
2053
  class="view row"
2054
2054
  >
@@ -140,7 +140,8 @@ const Confirmation = _ref => {
140
140
  promise: handleSubmit,
141
141
  wide: true,
142
142
  onError: handleError,
143
- onPress: handlePress
143
+ onPress: handlePress,
144
+ testId: "checkout-button"
144
145
  }), translate((0, _helpers.getButtonPaymentKey)({
145
146
  ...config,
146
147
  ...(dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$payment = dataSource.payment) === null || _dataSource$payment === void 0 ? void 0 : _dataSource$payment.info),
@@ -1 +1 @@
1
- {"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_shared__","_BookingSummary","_helpers","_Checkout","_Checkout2","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Confirmation","_ref","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","track","useMetrics","value","checkout","hotel","id","language","locale","payment","session","urlParams","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","price","prepayment","currency","method","handleError","handlePress","handleSubmit","concat","TRACKING","response","ServiceBooking","confirm","form","applyClubDiscount","undefined","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","service","CTA","_config$publicKey","_dataSource$payment","config","idtokenprovider","createElement","ButtonPayment","publicKey","large","promise","wide","onPress","getButtonPaymentKey","info","amount","currencyFormat","content","Fragment","BookingSummary","View","className","section","Notification","Text","light","footer","NOTIFICATION_SSL_ENCRYPTION","ref","confirmation","exports","displayName","propTypes","PropTypes","shape","bool","func"],"sources":["../../../../src/components/Checkout/partials/Checkout.Confirmation.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { ServiceBooking, ServiceFeatures } from '@mirai/services';\nimport { Notification, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ERROR } from '../../../Core.constants';\nimport { ButtonPayment } from '../../__shared__';\nimport { BookingSummary } from '../../__shared__/BookingSummary';\nimport { EVENT, getButtonPaymentKey } from '../../helpers';\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\n\nlet hasTracking = false;\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track } = useMetrics();\n const { value: { checkout, hotel = {}, id, language, locale, payment, session = {}, urlParams = {} } = {} } =\n useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n\n !isDesktop &&\n refContainer?.current &&\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: refContainer?.current.offsetHeight });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => setResponseError(), [checkout, payment]);\n\n const { price: { prepayment = {} } = {} } = dataSource;\n const { currency, value } = prepayment[payment?.method] || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n onError();\n return false;\n }\n\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) return onError();\n\n onValid();\n hasTracking && track(`${TRACKING}:CTA`, { locale });\n\n setResponseError();\n const response = await ServiceBooking.confirm({\n form: checkout,\n dataSource,\n language,\n payment: { ...payment, ...value },\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setBusy(false);\n setResponseError(error);\n\n Event.publish(EVENT.NOTIFICATION, {\n error: true,\n small: true,\n defaultMessage: translate(L10N.NOTIFICATION_ERROR[error?.code || ERROR.UNKNOWN]),\n });\n\n hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'confirm', error, locale });\n });\n\n if (response && hasTracking) track(`${TRACKING}:SUCCESS`, { locale });\n\n return response;\n };\n\n const CTA = () => {\n const { payment: { config = {} } = {} } = dataSource;\n const { idtokenprovider: id } = urlParams;\n\n return (\n <ButtonPayment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: config.publicKey?.[payment?.method] } }}\n busy={busy}\n hotel={{ ...hotel, id }}\n large\n promise={handleSubmit}\n wide\n onError={handleError}\n onPress={handlePress}\n >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency, locale, value }),\n })}\n </ButtonPayment>\n );\n };\n\n const content = () => (\n <>\n <BookingSummary dataSource={dataSource} />\n\n <View className={style.section}>\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n )}\n\n {CTA()}\n\n <Text light small wide className={style.footer}>\n {translate(L10N.NOTIFICATION_SSL_ENCRYPTION)}\n </Text>\n </View>\n </>\n );\n\n return (\n <View ref={refContainer} {...others} className={style.confirmation}>\n {isDesktop ? content() : CTA()}\n </View>\n );\n};\n\nConfirmation.displayName = 'Mirai:Core:Checkout:Confirmation';\n\nConfirmation.propTypes = {\n dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_shared__","_BookingSummary","_helpers","_Checkout","_Checkout2","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Confirmation","_ref","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","track","useMetrics","value","checkout","hotel","id","language","locale","payment","session","urlParams","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","price","prepayment","currency","method","handleError","handlePress","handleSubmit","concat","TRACKING","response","ServiceBooking","confirm","form","applyClubDiscount","undefined","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","service","CTA","_config$publicKey","_dataSource$payment","config","idtokenprovider","createElement","ButtonPayment","publicKey","large","promise","wide","onPress","testId","getButtonPaymentKey","info","amount","currencyFormat","content","Fragment","BookingSummary","View","className","section","Notification","Text","light","footer","NOTIFICATION_SSL_ENCRYPTION","ref","confirmation","exports","displayName","propTypes","PropTypes","shape","bool","func"],"sources":["../../../../src/components/Checkout/partials/Checkout.Confirmation.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { ServiceBooking, ServiceFeatures } from '@mirai/services';\nimport { Notification, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ERROR } from '../../../Core.constants';\nimport { ButtonPayment } from '../../__shared__';\nimport { BookingSummary } from '../../__shared__/BookingSummary';\nimport { EVENT, getButtonPaymentKey } from '../../helpers';\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\n\nlet hasTracking = false;\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track } = useMetrics();\n const { value: { checkout, hotel = {}, id, language, locale, payment, session = {}, urlParams = {} } = {} } =\n useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n\n !isDesktop &&\n refContainer?.current &&\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: refContainer?.current.offsetHeight });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => setResponseError(), [checkout, payment]);\n\n const { price: { prepayment = {} } = {} } = dataSource;\n const { currency, value } = prepayment[payment?.method] || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n onError();\n return false;\n }\n\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) return onError();\n\n onValid();\n hasTracking && track(`${TRACKING}:CTA`, { locale });\n\n setResponseError();\n const response = await ServiceBooking.confirm({\n form: checkout,\n dataSource,\n language,\n payment: { ...payment, ...value },\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setBusy(false);\n setResponseError(error);\n\n Event.publish(EVENT.NOTIFICATION, {\n error: true,\n small: true,\n defaultMessage: translate(L10N.NOTIFICATION_ERROR[error?.code || ERROR.UNKNOWN]),\n });\n\n hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'confirm', error, locale });\n });\n\n if (response && hasTracking) track(`${TRACKING}:SUCCESS`, { locale });\n\n return response;\n };\n\n const CTA = () => {\n const { payment: { config = {} } = {} } = dataSource;\n const { idtokenprovider: id } = urlParams;\n\n return (\n <ButtonPayment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: config.publicKey?.[payment?.method] } }}\n busy={busy}\n hotel={{ ...hotel, id }}\n large\n promise={handleSubmit}\n wide\n onError={handleError}\n onPress={handlePress}\n testId=\"checkout-button\"\n >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency, locale, value }),\n })}\n </ButtonPayment>\n );\n };\n\n const content = () => (\n <>\n <BookingSummary dataSource={dataSource} />\n\n <View className={style.section}>\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n )}\n\n {CTA()}\n\n <Text light small wide className={style.footer}>\n {translate(L10N.NOTIFICATION_SSL_ENCRYPTION)}\n </Text>\n </View>\n </>\n );\n\n return (\n <View ref={refContainer} {...others} className={style.confirmation}>\n {isDesktop ? content() : CTA()}\n </View>\n );\n};\n\nConfirmation.displayName = 'Mirai:Core:Checkout:Confirmation';\n\nConfirmation.propTypes = {\n dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AAEA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AACA,IAAAc,KAAA,GAAAP,uBAAA,CAAAP,OAAA;AAAgD,SAAAe,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAnB,uBAAA+B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,SAAA,IAAAA,QAAA,GAAAV,MAAA,CAAAW,MAAA,GAAAX,MAAA,CAAAW,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAO,SAAA,CAAAC,MAAA,EAAAR,CAAA,UAAAS,MAAA,GAAAF,SAAA,CAAAP,CAAA,YAAAU,GAAA,IAAAD,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAEhD,IAAIK,WAAW,GAAG,KAAK;AAEvB,MAAMC,YAAY,GAAGC,IAAA,IAAqE;EAAA,IAApE;IAAEC,UAAU,GAAG,CAAC,CAAC;IAAEC,KAAK,GAAG,KAAK;IAAEC,OAAO;IAAEC,OAAO;IAAE,GAAGC;EAAO,CAAC,GAAAL,IAAA;EACnF,MAAM;IAAEM;EAAU,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,uBAAU,EAAC,CAAC;EAC9B,MAAM;IAAEC,KAAK,EAAE;MAAEC,QAAQ;MAAEC,KAAK,GAAG,CAAC,CAAC;MAAEC,EAAE;MAAEC,QAAQ;MAAEC,MAAM;MAAEC,OAAO;MAAEC,OAAO,GAAG,CAAC,CAAC;MAAEC,SAAS,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GACzG,IAAAC,qBAAQ,EAAC,CAAC;EACZ,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAAC,CAAC;EAE7B,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC;EAEpD,IAAAG,gBAAS,EAAC,MAAM;IACd/B,WAAW,GAAGgC,yBAAe,CAACvD,GAAG,CAACwD,mCAAyB,EAAEhB,EAAE,CAAC;IAEhE,CAACT,SAAS,KACRgB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,OAAO,KACrBC,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACC,oBAAoB,EAAE;MAAEC,MAAM,EAAEf,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,OAAO,CAACM;IAAa,CAAC,CAAC;IAC3F;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAT,gBAAS,EAAC,MAAMD,gBAAgB,CAAC,CAAC,EAAE,CAACf,QAAQ,EAAEK,OAAO,CAAC,CAAC;EAExD,MAAM;IAAEqB,KAAK,EAAE;MAAEC,UAAU,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGvC,UAAU;EACtD,MAAM;IAAEwC,QAAQ;IAAE7B;EAAM,CAAC,GAAG4B,UAAU,CAACtB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB,MAAM,CAAC,IAAI,CAAC,CAAC;EAE7D,MAAMC,WAAW,GAAGA,CAAA,KAAMlB,OAAO,CAAC,KAAK,CAAC;EAExC,MAAMmB,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI1C,KAAK,EAAE;MACTC,OAAO,CAAC,CAAC;MACT,OAAO,KAAK;IACd;IAEAsB,OAAO,CAAC,IAAI,CAAC;EACf,CAAC;EAED,MAAMoB,YAAY,GAAG,MAAOjC,KAAK,IAAK;IACpC,IAAIV,KAAK,EAAE,OAAOC,OAAO,CAAC,CAAC;IAE3BC,OAAO,CAAC,CAAC;IACTN,WAAW,IAAIY,KAAK,IAAAoC,MAAA,CAAIC,kBAAQ,WAAQ;MAAE9B;IAAO,CAAC,CAAC;IAEnDW,gBAAgB,CAAC,CAAC;IAClB,MAAMoB,QAAQ,GAAG,MAAMC,wBAAc,CAACC,OAAO,CAAC;MAC5CC,IAAI,EAAEtC,QAAQ;MACdZ,UAAU;MACVe,QAAQ;MACRE,OAAO,EAAE;QAAE,GAAGA,OAAO;QAAE,GAAGN;MAAM,CAAC;MACjCO,OAAO,EAAEC,SAAS,CAACgC,iBAAiB,KAAK,MAAM,GAAGjC,OAAO,GAAGkC,SAAS;MACrE,GAAGjC;IACL,CAAC,CAAC,CAACkC,KAAK,CAAEpD,KAAK,IAAK;MAClBuB,OAAO,CAAC,KAAK,CAAC;MACdG,gBAAgB,CAAC1B,KAAK,CAAC;MAEvB+B,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACoB,YAAY,EAAE;QAChCrD,KAAK,EAAE,IAAI;QACXsD,KAAK,EAAE,IAAI;QACXC,cAAc,EAAEjD,SAAS,CAACkD,eAAI,CAACC,kBAAkB,CAAC,CAAAzD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE0D,IAAI,KAAIC,WAAK,CAACC,OAAO,CAAC;MACjF,CAAC,CAAC;MAEFhE,WAAW,IAAIY,KAAK,IAAAoC,MAAA,CAAIC,kBAAQ,qBAAkB;QAAEgB,OAAO,EAAE,SAAS;QAAErB,MAAM,EAAE,SAAS;QAAExC,KAAK;QAAEe;MAAO,CAAC,CAAC;IAC7G,CAAC,CAAC;IAEF,IAAI+B,QAAQ,IAAIlD,WAAW,EAAEY,KAAK,IAAAoC,MAAA,CAAIC,kBAAQ,eAAY;MAAE9B;IAAO,CAAC,CAAC;IAErE,OAAO+B,QAAQ;EACjB,CAAC;EAED,MAAMgB,GAAG,GAAGA,CAAA,KAAM;IAAA,IAAAC,iBAAA,EAAAC,mBAAA;IAChB,MAAM;MAAEhD,OAAO,EAAE;QAAEiD,MAAM,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAGlE,UAAU;IACpD,MAAM;MAAEmE,eAAe,EAAErD;IAAG,CAAC,GAAGK,SAAS;IAEzC,oBACE9D,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC5G,SAAA,CAAA6G,aAAa,EAAAjF,QAAA,KACHY,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEiB,OAAO;MAAEiD,MAAM,EAAE;QAAE,GAAGA,MAAM;QAAEI,SAAS,GAAAN,iBAAA,GAAEE,MAAM,CAACI,SAAS,cAAAN,iBAAA,uBAAhBA,iBAAA,CAAmB/C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB,MAAM;MAAE,CAAC;MACnGlB,IAAI,EAAEA,IAAK;MACXV,KAAK,EAAE;QAAE,GAAGA,KAAK;QAAEC;MAAG,CAAE;MACxByD,KAAK;MACLC,OAAO,EAAE5B,YAAa;MACtB6B,IAAI;MACJvE,OAAO,EAAEwC,WAAY;MACrBgC,OAAO,EAAE/B,WAAY;MACrBgC,MAAM,EAAC;IAAiB,IAEvBpE,SAAS,CAAC,IAAAqE,4BAAmB,EAAC;MAAE,GAAGV,MAAM;MAAE,IAAGlE,UAAU,aAAVA,UAAU,wBAAAiE,mBAAA,GAAVjE,UAAU,CAAEiB,OAAO,cAAAgD,mBAAA,uBAAnBA,mBAAA,CAAqBY,IAAI;MAAEpC,MAAM,EAAExB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB;IAAO,CAAC,CAAC,EAAE;MACpGqC,MAAM,EAAE,IAAAC,sBAAc,EAAC;QAAEvC,QAAQ;QAAExB,MAAM;QAAEL;MAAM,CAAC;IACpD,CAAC,CACY,CAAC;EAEpB,CAAC;EAED,MAAMqE,OAAO,GAAGA,CAAA,kBACd3H,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAA/G,MAAA,CAAAe,OAAA,CAAA6G,QAAA,qBACE5H,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC3G,eAAA,CAAAyH,cAAc;IAAClF,UAAU,EAAEA;EAAW,CAAE,CAAC,eAE1C3C,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAiI,IAAI;IAACC,SAAS,EAAEvH,KAAK,CAACwH;EAAQ,GAC5B3D,aAAa,iBACZrE,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAoI,YAAY;IAACrF,KAAK;IAACsD,KAAK;IAACkB,IAAI;EAAA,GAC3BlE,SAAS,CAACkD,eAAI,CAACC,kBAAkB,CAAC,CAAAhC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiC,IAAI,KAAIC,WAAK,CAACC,OAAO,CAAC,CAC5D,CACf,EAEAE,GAAG,CAAC,CAAC,eAEN1G,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAqI,IAAI;IAACC,KAAK;IAACjC,KAAK;IAACkB,IAAI;IAACW,SAAS,EAAEvH,KAAK,CAAC4H;EAAO,GAC5ClF,SAAS,CAACkD,eAAI,CAACiC,2BAA2B,CACvC,CACF,CACN,CACH;EAED,oBACErI,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAiI,IAAI,EAAA/F,QAAA;IAACuG,GAAG,EAAEtE;EAAa,GAAKjB,MAAM;IAAEgF,SAAS,EAAEvH,KAAK,CAAC+H;EAAa,IAChEvF,SAAS,GAAG2E,OAAO,CAAC,CAAC,GAAGjB,GAAG,CAAC,CACzB,CAAC;AAEX,CAAC;AAAC8B,OAAA,CAAA/F,YAAA,GAAAA,YAAA;AAEFA,YAAY,CAACgG,WAAW,GAAG,kCAAkC;AAE7DhG,YAAY,CAACiG,SAAS,GAAG;EACvB/F,UAAU,EAAEgG,kBAAS,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/BhG,KAAK,EAAE+F,kBAAS,CAACE,IAAI;EACrBhG,OAAO,EAAE8F,kBAAS,CAACG,IAAI;EACvBhG,OAAO,EAAE6F,kBAAS,CAACG;AACrB,CAAC"}
@@ -196,6 +196,7 @@ exports[`component:<Checkout> partial:<Confirmation> Test A/B variant A 1`] = `
196
196
  >
197
197
  <ui-button
198
198
  class="pressable button large wide"
199
+ data-testid="checkout-button"
199
200
  disabled="false"
200
201
  methods="CARD,AMAZON_PAY"
201
202
  tabindex="0"
@@ -459,6 +460,7 @@ exports[`component:<Checkout> partial:<Confirmation> Test A/B variant B 1`] = `
459
460
  >
460
461
  <ui-button
461
462
  class="pressable button large wide"
463
+ data-testid="checkout-button"
462
464
  disabled="false"
463
465
  methods="CARD,AMAZON_PAY"
464
466
  tabindex="0"
@@ -721,6 +723,7 @@ exports[`component:<Checkout> partial:<Confirmation> inherit:className 1`] = `
721
723
  >
722
724
  <ui-button
723
725
  class="pressable button large wide"
726
+ data-testid="checkout-button"
724
727
  disabled="false"
725
728
  methods="CARD,AMAZON_PAY"
726
729
  tabindex="0"
@@ -983,6 +986,7 @@ exports[`component:<Checkout> partial:<Confirmation> renders 1`] = `
983
986
  >
984
987
  <ui-button
985
988
  class="pressable button large wide"
989
+ data-testid="checkout-button"
986
990
  disabled="false"
987
991
  methods="CARD,AMAZON_PAY"
988
992
  tabindex="0"
@@ -1246,6 +1250,7 @@ exports[`component:<Checkout> partial:<Confirmation> testID 1`] = `
1246
1250
  >
1247
1251
  <ui-button
1248
1252
  class="pressable button large wide"
1253
+ data-testid="checkout-button"
1249
1254
  disabled="false"
1250
1255
  methods="CARD,AMAZON_PAY"
1251
1256
  tabindex="0"
@@ -1508,6 +1513,7 @@ exports[`component:<Checkout> partial:<Confirmation> with a store 1`] = `
1508
1513
  >
1509
1514
  <ui-button
1510
1515
  class="pressable button large wide"
1516
+ data-testid="checkout-button"
1511
1517
  disabled="false"
1512
1518
  methods="CARD,AMAZON_PAY"
1513
1519
  tabindex="0"