@bikdotai/bik-widgets 1.0.0 → 1.0.2

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 (207) hide show
  1. package/dist-package/index.css +95 -0
  2. package/dist-package/index.js +2 -0
  3. package/package.json +17 -4
  4. package/.eslintrc +0 -22
  5. package/.eslintrc.js +0 -19
  6. package/.github/workflows/main.yml +0 -293
  7. package/.prettierignore +0 -13
  8. package/.prettierrc +0 -10
  9. package/cypress/apiHelper/endpoints.ts +0 -21
  10. package/cypress/apiHelper/executor.ts +0 -42
  11. package/cypress/e2e/bottomDrawer.cy.ts +0 -49
  12. package/cypress/e2e/directReward.cy.ts +0 -67
  13. package/cypress/e2e/scratchTheCard.cy.ts +0 -68
  14. package/cypress/e2e/stw.cy.ts +0 -82
  15. package/cypress/e2e/waRedirection.cy.ts +0 -46
  16. package/cypress/fixtures/payloads.ts +0 -330
  17. package/cypress/support/commands.ts +0 -37
  18. package/cypress/support/e2e.ts +0 -20
  19. package/cypress.staging.config.ts +0 -23
  20. package/jsconfig.json +0 -6
  21. package/localtest.sh +0 -10
  22. package/log-server.js +0 -86
  23. package/postcss.config.js +0 -8
  24. package/src/Globals.d.ts +0 -2
  25. package/src/assets/lottie/santa.json +0 -11722
  26. package/src/assets/svg/CalendarClockIcon.tsx +0 -30
  27. package/src/assets/svg/CalendarIcon.tsx +0 -24
  28. package/src/assets/svg/CheckIcon.tsx +0 -17
  29. package/src/assets/svg/ChevronIcon.tsx +0 -21
  30. package/src/assets/svg/Close.tsx +0 -39
  31. package/src/assets/svg/Confetti.tsx +0 -140
  32. package/src/assets/svg/Copy.tsx +0 -26
  33. package/src/assets/svg/DropdownCheckIcon.tsx +0 -35
  34. package/src/assets/svg/ErrorIcon.tsx +0 -27
  35. package/src/assets/svg/RadioIcon.tsx +0 -25
  36. package/src/assets/svg/UncheckedCheckboxIcon.tsx +0 -28
  37. package/src/assets/svg/UncheckedRadioIcon.tsx +0 -26
  38. package/src/assets/svg/info.tsx +0 -30
  39. package/src/assets/svg/qrcode.svg +0 -14
  40. package/src/bootstrap.tsx +0 -8
  41. package/src/components/CtaCard/index.tsx +0 -37
  42. package/src/components/CtaCard/preview.module.css +0 -32
  43. package/src/components/CtaCard/style.module.css +0 -32
  44. package/src/components/EmailInput/emailInputBox.tsx +0 -95
  45. package/src/components/Fab/index.tsx +0 -224
  46. package/src/components/Fab/preview.module.css +0 -28
  47. package/src/components/Fab/style.module.css +0 -37
  48. package/src/components/Icons/Call.tsx +0 -26
  49. package/src/components/Icons/Cross.tsx +0 -24
  50. package/src/components/Icons/Gmail.tsx +0 -61
  51. package/src/components/Icons/Instagram.tsx +0 -60
  52. package/src/components/Icons/LiveChat.tsx +0 -43
  53. package/src/components/Icons/Messenger.tsx +0 -57
  54. package/src/components/Icons/Send.tsx +0 -22
  55. package/src/components/Icons/Whatsapp.tsx +0 -24
  56. package/src/components/Shimmer/index.tsx +0 -12
  57. package/src/components/Shimmer/style.module.css +0 -37
  58. package/src/components/SmsInput/smsInputBox.tsx +0 -135
  59. package/src/components/UserDetailsV2/userDetailsV2.desktop.module.css +0 -52
  60. package/src/components/UserDetailsV2/userDetailsV2.mobile.module.css +0 -52
  61. package/src/components/UserDetailsV2/userDetailsV2.module.css +0 -81
  62. package/src/components/UserDetailsV2/userDetailsV2.tsx +0 -527
  63. package/src/components/WhatsappInput/Spinner.tsx +0 -26
  64. package/src/components/WhatsappInput/whatsappInput.module.css +0 -106
  65. package/src/components/WhatsappInput/whatsappInputBox.tsx +0 -155
  66. package/src/components/WhatsappInput/whatsappInputPreviewDesktop.module.css +0 -71
  67. package/src/components/WhatsappInput/whatsappInputPreviewMobile.module.css +0 -65
  68. package/src/components/checkbox/checkbox.module.css +0 -19
  69. package/src/components/checkbox/checkbox.tsx +0 -88
  70. package/src/components/countryCodePicker/countriesDropdown.module.css +0 -77
  71. package/src/components/countryCodePicker/countriesDropdown.tsx +0 -81
  72. package/src/components/couponDetails/coupon.module.css +0 -208
  73. package/src/components/couponDetails/coupon.tsx +0 -210
  74. package/src/components/couponDetails/couponPreviewDesktop.module.css +0 -158
  75. package/src/components/couponDetails/couponPreviewMobile.module.css +0 -164
  76. package/src/components/index.ts +0 -3
  77. package/src/components/inputComponents/Checkbox.module.css +0 -197
  78. package/src/components/inputComponents/Checkbox.tsx +0 -85
  79. package/src/components/inputComponents/DatePicker.module.css +0 -565
  80. package/src/components/inputComponents/DatePicker.tsx +0 -278
  81. package/src/components/inputComponents/Dropdown.module.css +0 -796
  82. package/src/components/inputComponents/Dropdown.tsx +0 -630
  83. package/src/components/inputComponents/InputBox.module.css +0 -401
  84. package/src/components/inputComponents/InputBox.tsx +0 -209
  85. package/src/components/selectedCountry/selectedCountry.module.css +0 -76
  86. package/src/components/selectedCountry/selectedCountry.tsx +0 -76
  87. package/src/components/selectedCountry/selectedCountryPreviewDesktop.module.css +0 -56
  88. package/src/components/selectedCountry/selectedCountryPreviewMobile.module.css +0 -57
  89. package/src/components/userDetailsForm/RenderCustomFields.tsx +0 -333
  90. package/src/components/userDetailsForm/userDetailsForm.tsx +0 -675
  91. package/src/hooks/index.ts +0 -4
  92. package/src/hooks/useExitIntent.ts +0 -452
  93. package/src/hooks/useIsMobile.tsx +0 -21
  94. package/src/hooks/useMessageEvent.ts +0 -8
  95. package/src/hooks/useTriggeredIntentDetails.ts +0 -43
  96. package/src/hooks/useUrlListerner.ts +0 -30
  97. package/src/hooks/useWebSocketLogger.ts +0 -59
  98. package/src/hooks/useWindowEvent.ts +0 -8
  99. package/src/icons/copyIcon.tsx +0 -26
  100. package/src/icons/crossIconDesktop.tsx +0 -20
  101. package/src/icons/crossIconMobile.tsx +0 -20
  102. package/src/index.html +0 -30
  103. package/src/index.ts +0 -32
  104. package/src/index.tsx +0 -1
  105. package/src/repo/widgetRepo.ts +0 -21
  106. package/src/types/customFields.ts +0 -73
  107. package/src/utilities/cookie.ts +0 -70
  108. package/src/utilities/customFieldTypeMapping.ts +0 -67
  109. package/src/utilities/customFieldValidation.ts +0 -201
  110. package/src/utilities/encryption.ts +0 -21
  111. package/src/utilities/exitIntentUtils.ts +0 -31
  112. package/src/utilities/global.css +0 -11
  113. package/src/utilities/languageUtilities.ts +0 -235
  114. package/src/utilities/localRunner.js +0 -26
  115. package/src/utilities/localRunner.ts +0 -27
  116. package/src/utilities/localStorage.ts +0 -40
  117. package/src/utilities/script.tsx +0 -15
  118. package/src/utilities/stringUtils.ts +0 -5
  119. package/src/utilities/styleUtils.ts +0 -134
  120. package/src/utilities/variables.ts +0 -11
  121. package/src/utilities/widgetUtils.js +0 -342
  122. package/src/utilities/widgetUtils.ts +0 -313
  123. package/src/widgets/BottomDrawer/config.ts +0 -41
  124. package/src/widgets/BottomDrawer/index.tsx +0 -116
  125. package/src/widgets/BottomDrawer/modal.tsx +0 -286
  126. package/src/widgets/BottomDrawer/preview.module.css +0 -122
  127. package/src/widgets/BottomDrawer/previewMobile.module.css +0 -124
  128. package/src/widgets/BottomDrawer/style.module.css +0 -279
  129. package/src/widgets/CaptivateBanner/captivateBanner.tsx +0 -200
  130. package/src/widgets/CaptivateBanner/config.ts +0 -72
  131. package/src/widgets/CaptivateBanner/index.tsx +0 -204
  132. package/src/widgets/CaptivateBanner/previewDesktop.module.css +0 -51
  133. package/src/widgets/CaptivateBanner/previewMobile.module.css +0 -51
  134. package/src/widgets/CaptivateBanner/style.module.css +0 -77
  135. package/src/widgets/CaptivateBanner/utils.ts +0 -104
  136. package/src/widgets/CentrallyAlignedPopup/config.ts +0 -42
  137. package/src/widgets/CentrallyAlignedPopup/index.tsx +0 -109
  138. package/src/widgets/CentrallyAlignedPopup/modal.tsx +0 -269
  139. package/src/widgets/CentrallyAlignedPopup/preview.module.css +0 -153
  140. package/src/widgets/CentrallyAlignedPopup/previewMobile.module.css +0 -153
  141. package/src/widgets/CentrallyAlignedPopup/style.module.css +0 -283
  142. package/src/widgets/DirectReward/components/couponDetails.tsx +0 -265
  143. package/src/widgets/DirectReward/components/userDetails.tsx +0 -117
  144. package/src/widgets/DirectReward/config.ts +0 -186
  145. package/src/widgets/DirectReward/directReward.tsx +0 -350
  146. package/src/widgets/DirectReward/index.tsx +0 -579
  147. package/src/widgets/DirectReward/previewStyles/thankYouPreviewDesktop.module.css +0 -276
  148. package/src/widgets/DirectReward/previewStyles/thankYouPreviewMobile.module.css +0 -303
  149. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewDesktop.module.css +0 -511
  150. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewMobile.module.css +0 -462
  151. package/src/widgets/DirectReward/style.module.css +0 -836
  152. package/src/widgets/ExitIntentHook.tsx +0 -28
  153. package/src/widgets/STW/api.ts +0 -70
  154. package/src/widgets/STW/components/svgFactory.tsx +0 -44
  155. package/src/widgets/STW/config.ts +0 -193
  156. package/src/widgets/STW/context.ts +0 -7
  157. package/src/widgets/STW/couponDetails.tsx +0 -121
  158. package/src/widgets/STW/index.tsx +0 -733
  159. package/src/widgets/STW/previewStyles/thankyouPreviewDesktop.module.css +0 -215
  160. package/src/widgets/STW/previewStyles/thankyouPreviewMobile.module.css +0 -205
  161. package/src/widgets/STW/previewStyles/userInputsPreviewDesktop.module.css +0 -732
  162. package/src/widgets/STW/previewStyles/userInputsPreviewMobile.module.css +0 -661
  163. package/src/widgets/STW/previewStyles/wheelPreviewDesktop.module.css +0 -498
  164. package/src/widgets/STW/previewStyles/wheelPreviewMobile.module.css +0 -497
  165. package/src/widgets/STW/stw1.tsx +0 -119
  166. package/src/widgets/STW/stw2Components/wheelDesign.tsx +0 -183
  167. package/src/widgets/STW/stw2Pages/couponDetails.tsx +0 -72
  168. package/src/widgets/STW/stw2Pages/stw2.tsx +0 -212
  169. package/src/widgets/STW/stw2Pages/style.module.css +0 -1226
  170. package/src/widgets/STW/stw2Pages/userDetails.tsx +0 -86
  171. package/src/widgets/STW/stw2Pages/wheel.tsx +0 -117
  172. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewDesktop.module.css +0 -835
  173. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewMobile.module.css +0 -787
  174. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewDesktop.module.css +0 -867
  175. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewMobile.module.css +0 -798
  176. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewDesktop.module.css +0 -572
  177. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewMobile.module.css +0 -559
  178. package/src/widgets/STW/style.module.css +0 -901
  179. package/src/widgets/STW/userDetails.tsx +0 -150
  180. package/src/widgets/STW/utility.ts +0 -664
  181. package/src/widgets/STW/wheel.tsx +0 -304
  182. package/src/widgets/ScratchCard/ScratchOff/scratchOff.tsx +0 -157
  183. package/src/widgets/ScratchCard/config.ts +0 -152
  184. package/src/widgets/ScratchCard/globalStyle.module.css +0 -931
  185. package/src/widgets/ScratchCard/index.tsx +0 -546
  186. package/src/widgets/ScratchCard/modal.tsx +0 -225
  187. package/src/widgets/ScratchCard/preview.module.css +0 -250
  188. package/src/widgets/ScratchCard/previewMobile.module.css +0 -247
  189. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewDesktop.module.css +0 -537
  190. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewMobile.module.css +0 -463
  191. package/src/widgets/ScratchCard/style.module.css +0 -220
  192. package/src/widgets/ShopifyForm/config.ts +0 -168
  193. package/src/widgets/ShopifyForm/index.tsx +0 -214
  194. package/src/widgets/ShopifyForm/previewDesktop.module.css +0 -117
  195. package/src/widgets/ShopifyForm/previewMobile.module.css +0 -131
  196. package/src/widgets/ShopifyForm/shopifyForm.tsx +0 -445
  197. package/src/widgets/ShopifyForm/style.module.css +0 -161
  198. package/src/widgets/SingleButtonRedirection/config.ts +0 -47
  199. package/src/widgets/SingleButtonRedirection/index.tsx +0 -121
  200. package/src/widgets/WebStories/config.ts +0 -105
  201. package/src/widgets/WebStories/index.css +0 -3
  202. package/src/widgets/WebStories/index.tsx +0 -282
  203. package/src/widgets/WebStories/style.module.css +0 -26
  204. package/src/widgets/index.tsx +0 -3
  205. package/src/widgets/utility.ts +0 -31
  206. package/tsconfig.json +0 -12
  207. package/webpack.config.js +0 -239
@@ -1,82 +0,0 @@
1
- import {
2
- getBaseUrl,
3
- GetCouponRequest,
4
- GetEventRequest,
5
- GetVendorSrc,
6
- GetWidgetSrc,
7
- } from '../apiHelper/endpoints';
8
- import ApiRequest from '../apiHelper/executor';
9
- import { STW_PAYLOAD } from '../fixtures/payloads';
10
-
11
- describe('STW e2e', () => {
12
- it('should make an API call, open a URL, and perform frontend testing', async () => {
13
- new ApiRequest()
14
- .post('/utilApiFunctions-deleteAllWidgets', {
15
- password: 'sn@1234@A',
16
- })
17
- .then(response => {
18
- expect(response.status).to.eq(200);
19
- new ApiRequest()
20
- .post('/widgetInfraApiFunctions-publishWidget', STW_PAYLOAD)
21
- .then(response => {
22
- expect(response.status).to.eq(200);
23
- expect(response.body).to.have.property('widgetId');
24
- let apiCalled = false;
25
- let fetchProbabilityCalled = false;
26
- let fetchedCoupon = false;
27
- const widgetId = response.body.widgetId;
28
- const templateId = 'KHnL25g05yRTFCGyJFit';
29
- cy.intercept('POST', GetEventRequest(), req => {
30
- apiCalled = true;
31
- req.continue();
32
- }).as('apiCall');
33
- cy.intercept(
34
- 'POST',
35
- `${getBaseUrl('dm')}/publicApiFunctions-fetchProbabilityIndex`,
36
- req => {
37
- fetchProbabilityCalled = true;
38
- req.continue();
39
- },
40
- ).as('fetchProbability');
41
- cy.intercept('POST', GetCouponRequest(), req => {
42
- fetchedCoupon = true;
43
- req.continue();
44
- }).as('fetchCouponCall');
45
- cy.visit(Cypress.env('storeUrl'));
46
- cy.get(`script[src^="${GetVendorSrc()}"]`, {
47
- timeout: 10000,
48
- }).should('exist');
49
- cy.get(
50
- `script[src^="${GetWidgetSrc(widgetId, templateId)}"]`,
51
- ).should('exist');
52
- cy.get(`div[id="bik-widget-wrapper-${widgetId}"]`).should('exist');
53
- cy.wrap(null).should(() => {
54
- expect(apiCalled).to.be.true;
55
- });
56
- cy.get(`button[id="bik-stw-${widgetId}-fab"]`).should('exist');
57
- cy.get(`button[id="bik-stw-${widgetId}-fab"]`).click();
58
- cy.get(`div[id="spin"]`).should('exist');
59
- cy.get(`div[id="spin"]`).click();
60
- cy.wrap(null).should(() => {
61
- expect(fetchProbabilityCalled).to.be.true;
62
- });
63
- cy.get(`input[id="bik-${widgetId}-input-whatsapp"]`, {
64
- timeout: 10000,
65
- }).should('exist');
66
- cy.get(`input[id="bik-${widgetId}-input-whatsapp"]`).type(
67
- '7358264637',
68
- );
69
- cy.get(`div[id="bik-stw-${widgetId}-user-details-container"]`)
70
- .find('button')
71
- .click();
72
- cy.wait(2000);
73
- cy.wrap(null).should(() => {
74
- expect(fetchedCoupon).to.be.true;
75
- });
76
- cy.get(`div[id="bik-${widgetId}-coupon-screen"]`, {
77
- timeout: 10000,
78
- }).should('exist');
79
- });
80
- });
81
- });
82
- });
@@ -1,46 +0,0 @@
1
- import {
2
- GetEventRequest,
3
- GetVendorSrc,
4
- GetWidgetSrc,
5
- } from '../apiHelper/endpoints';
6
- import { WA_WIDGET_PAYLOAD } from '../fixtures/payloads';
7
- import ApiRequest from '../apiHelper/executor';
8
-
9
- describe('Whatsapp Redirection e2e', () => {
10
- it('should make an API call, open a URL, and perform frontend testing', () => {
11
- new ApiRequest()
12
- .post('/utilApiFunctions-deleteAllWidgets', {
13
- password: 'sn@1234@A',
14
- })
15
- .then(() => {
16
- new ApiRequest()
17
- .post('/widgetInfraApiFunctions-publishWidget', WA_WIDGET_PAYLOAD)
18
- .then(response => {
19
- let apiCalled = false;
20
- cy.intercept('POST', GetEventRequest(), req => {
21
- apiCalled = true;
22
- req.continue();
23
- }).as('apiCall');
24
- expect(response.status).to.eq(200);
25
- expect(response.body).to.have.property('widgetId');
26
- const widgetId = response.body.widgetId;
27
- const templateId = '1ocTg6N2ARGZTN00EgCd';
28
- cy.visit(Cypress.env('storeUrl'));
29
- cy.get(`script[src^="${GetVendorSrc()}"]`, {
30
- timeout: 10000,
31
- }).should('exist');
32
- cy.get(
33
- `script[src^="${GetWidgetSrc(widgetId, templateId)}"]`,
34
- ).should('exist');
35
- cy.get(`div[id="bik-widget-wrapper-${widgetId}"]`).should('exist');
36
- cy.wrap(null).should(() => {
37
- expect(apiCalled).to.be.true;
38
- });
39
- cy.get(`div[id="bik-widget-root-${widgetId}"]`).should('exist');
40
- cy.get(`div[id="bik-widget-root-${widgetId}"]`)
41
- .find('button')
42
- .click();
43
- });
44
- });
45
- });
46
- });
@@ -1,330 +0,0 @@
1
- export const WA_WIDGET_PAYLOAD = {
2
- content: {
3
- widgetCustomisation: {
4
- fabBackgroundColor: '#25D366',
5
- whatsapp: '918825358636',
6
- whatsappMessage:
7
- 'Hello ! I was browsing through your website and wanted to know more about your products',
8
- fabPosition: 'BOTTOM_RIGHT',
9
- widgetName: 'Whatsapp redirection l8qjh',
10
- fabWebSize: 50,
11
- iconColor: '#ffffff',
12
- fabIconLink:
13
- 'https://storage.googleapis.com/bik-widget-mfe/bap%2Ffab-assets%2Ficons%2Fbik%2Fwhatsapp.svg',
14
- fabText: 'Buy now',
15
- text: 'Shop now',
16
- fabMobileSize: 50,
17
- fabPositioner: {
18
- bottom: '30px',
19
- right: '30px',
20
- },
21
- },
22
- visibility: {
23
- visiblePages: ['/*'],
24
- },
25
- leadGeneration: {
26
- chatUrl:
27
- 'https://api.whatsapp.com/send?phone=918825358636&text=Hello%20!%20I%20was%20browsing%20through%20your%20website%20and%20wanted%20to%20know%20more%20about%20your%20products%0AInquiry%20id%20%3A%20%2307bb99%20',
28
- },
29
- info: {
30
- widgetTypeId: 'UXq0MWMp765My76Fk7p5',
31
- templateName: 'Whatsapp redirection',
32
- infra: '2.0',
33
- storeId: 'kNwEVoGlLpVjOsXoO1M8WgvWicP2',
34
- templateId: '1ocTg6N2ARGZTN00EgCd',
35
- isAutomationTesting: true,
36
- },
37
- },
38
- };
39
-
40
- export const DIRECT_REWARD_PAYLOAD = {
41
- content: {
42
- widgetCustomisation: {
43
- postPlayScreenButtonColour: '#000000',
44
- postPlayScreenTitleSize: 26,
45
- postPlayScreenCouponBgColour: '#e8e8e8',
46
- fabPosition: 'POP_UP',
47
- widgetName: 'Direct reward widget 6ssn',
48
- playScreenImageMobile:
49
- 'https://firebasestorage.googleapis.com/v0/b/staging-bikayi.appspot.com/o/image_kNwEVoGlLpVjOsXoO1M8WgvWicP2_pqOFu.jpg?alt=media&token=968c36e7-843f-4ae4-8230-d695bd49c35f',
50
- postPlayScreenSubTitle: '<p>You have become a part of our family</p>',
51
- playScreenSubTitle: '<p>You have won 50% off discount code</p>',
52
- postPlayScreenTitle: '<p><strong>Congratulations!</strong></p>',
53
- fontFamily: {
54
- link: 'https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap',
55
- name: 'Montserrat',
56
- },
57
- postPlayScreenImageDesktop:
58
- 'https://firebasestorage.googleapis.com/v0/b/staging-bikayi.appspot.com/o/image_kNwEVoGlLpVjOsXoO1M8WgvWicP2_huHcI.jpg?alt=media&token=56e52885-5b8e-49fd-acf8-fc5669166407',
59
- playScreenImageDesktop:
60
- 'https://firebasestorage.googleapis.com/v0/b/staging-bikayi.appspot.com/o/image_kNwEVoGlLpVjOsXoO1M8WgvWicP2_huHcI.jpg?alt=media&token=56e52885-5b8e-49fd-acf8-fc5669166407',
61
- playScreenTitle: '<p><strong>Hey Good Looking!</strong></p>',
62
- cardTheme: '#e8e8e8',
63
- postPlayScreenButtonText: 'Copy and use discount',
64
- playScreenFormDescriptionSize: 12,
65
- playScreenSubTitleSize: 16,
66
- postPlayScreenButtonTextColour: '#ffffff',
67
- playScreenTitleSize: 26,
68
- playScreenButtonTextColour: '#ffffff',
69
- postPlayScreenSubTitleSize: 16,
70
- postPlayScreenImageMobile:
71
- 'https://firebasestorage.googleapis.com/v0/b/staging-bikayi.appspot.com/o/image_kNwEVoGlLpVjOsXoO1M8WgvWicP2_pqOFu.jpg?alt=media&token=968c36e7-843f-4ae4-8230-d695bd49c35f',
72
- playScreenButtonText: 'Claim the prize',
73
- postPlayScreenCouponBorderColour: '#000000',
74
- playScreenButtonColour: '#000000',
75
- },
76
- visibility: {
77
- visiblePages: ['/*'],
78
- triggers: {
79
- isPlayable: false,
80
- playLimit: null,
81
- hasFAbButton: true,
82
- pageScroll: null,
83
- timeDelay: 3,
84
- viewLimit: null,
85
- fabButtonVisibility: true,
86
- frequency: null,
87
- },
88
- },
89
- leadGeneration: {
90
- optionalOptions: {
91
- isSms: false,
92
- isWhatsapp: false,
93
- isEmail: false,
94
- },
95
- mandatoryOption: {
96
- isSms: false,
97
- isWhatsapp: true,
98
- isEmail: false,
99
- },
100
- enableConsentPolicies: false,
101
- privacyPolicyURL: '',
102
- },
103
- info: {
104
- widgetTypeId: 'lCcPfO2RuooXpBGgZSs0',
105
- templateName: 'Direct reward widget',
106
- infra: '2.0',
107
- storeId: 'kNwEVoGlLpVjOsXoO1M8WgvWicP2',
108
- templateId: '7fM9X24TY9Bk9f7fIG9C',
109
- isAutomationTesting: true,
110
- },
111
- },
112
- coupons: [
113
- {
114
- minAmount: null,
115
- isStaticCoupon: true,
116
- minQuantity: null,
117
- quadrant: 1,
118
- widgetId: 'fAC5VwVF3T3WISirb2yX',
119
- description: 'sdfsdfsdfsdsdfsdf',
120
- targetType: 'lineItem',
121
- expireAfter: null,
122
- storeId: 'kNwEVoGlLpVjOsXoO1M8WgvWicP2',
123
- couponCode: 'jssfs',
124
- targetSelection: 'all',
125
- id: 'hdalV3IwcakJUG9wvVs7',
126
- minPurchaseReq: 'na',
127
- },
128
- ],
129
- };
130
-
131
- export const BOTTOM_DRAWER_PAYLOAD = {
132
- content: {
133
- widgetCustomisation: {
134
- whatsapp: '918825358636',
135
- widgetName: 'Bottom Drawer 3yhp',
136
- fabPosition: 'CENTER_RIGHT',
137
- emailBody: 'sdfsdfdsf',
138
- fabWebSize: 50,
139
- redirectWidgetBannerImage:
140
- 'https://png.pngtree.com/thumb_back/fh260/back_pic/02/50/63/71577e1cf59d802.jpg',
141
- instagram: 'gram_insta_monster',
142
- redirectWidgetTitleText: 'Connect with us!',
143
- emailSubject: 'dfsdfsd',
144
- fabPositioner: {
145
- bottom: '50%',
146
- right: 10,
147
- },
148
- fabBackgroundColor: '#FBDC7E',
149
- redirectWidgetBackgroundColor: '',
150
- whatsappMessage: 'hi',
151
- livechatEnabled: false,
152
- iconColor: '#000000',
153
- fabTransform: 'translate(0, 0px)',
154
- fabIconLink:
155
- 'https://storage.googleapis.com/bik-widget-mfe/bap%2Ffab-assets%2Ficons%2Fbik%2Fredirect.svg',
156
- fabMobileSize: 50,
157
- email: 'dummybik@gmail.com',
158
- },
159
- visibility: {
160
- visiblePages: ['/*'],
161
- },
162
- leadGeneration: {
163
- mandatoryOption: {
164
- isEmail: false,
165
- isSms: false,
166
- isWhatsapp: true,
167
- },
168
- optionalOptions: {
169
- isEmail: false,
170
- isSms: false,
171
- isWhatsapp: false,
172
- },
173
- enableConsentPolicies: false,
174
- privacyPolicyURL: '',
175
- chatFlowId: '',
176
- },
177
- info: {
178
- widgetTypeId: 'UXq0MWMp765My76Fk7p5',
179
- templateName: 'Bottom Drawer',
180
- infra: '2.0',
181
- storeId: 'kNwEVoGlLpVjOsXoO1M8WgvWicP2',
182
- templateId: 'P29OopljI3TkkYdfxJE0',
183
- isAutomationTesting: true,
184
- },
185
- },
186
- };
187
-
188
- export const STW_PAYLOAD = {
189
- content: {
190
- widgetCustomisation: {
191
- postPlayScreenButtonColour: '#000000',
192
- winningScreenButtonText: 'Copy and use discount',
193
- fabPosition: 'BOTTOM_LEFT',
194
- widgetName: 'Spin the wheel popup cdr2',
195
- winningScreenCouponBgColour: '#ffffff',
196
- winningScreenButtonColour: '#000000',
197
- fontLinks: [],
198
- postSpinScreenCtaColor: '#731dcf',
199
- fabPositioner: {
200
- left: '30px',
201
- bottom: '30px',
202
- },
203
- fabColor: '#ffffff',
204
- playScreenHeading:
205
- '<p><strong>Spin the wheel to win exciting prizes</strong></p>',
206
- fabBackgroundColor: '#d97559',
207
- postPlayScreenSubTitle: '<p>To claim prize fill the details below</p>',
208
- playScreenSubheadingFont: 'Inter',
209
- postPlayScreenTitle:
210
- '<p><strong>Special prize only for you!</strong></p>',
211
- winningScreenIcon: '',
212
- postPlayScreenButtonTextFont: 'Inter',
213
- segmentAngle: 60,
214
- couponFont: 'Inter',
215
- playScreenBackgroundColour: '#ffffff',
216
- playScreenSubHeading:
217
- '<p>You have a chance to win a big discount. Are you ready?</p>',
218
- spinLimit: 0,
219
- discountCodeTitle: {
220
- '1': 'sdfdfs',
221
- '2': 'sdfdsfsd',
222
- '3': 'asdas',
223
- '4': 'asdassa',
224
- },
225
- playScreenHeadingFont: 'Inter',
226
- fabMobileSize: 50,
227
- winningScreenCouponTextColour: '#000000',
228
- winningScreenButtonTextFont: 'Inter',
229
- iconcolor: '#f5f5f5',
230
- wheelDetails: [],
231
- winningScreenButtonTextColour: '#ffffff',
232
- postPlayScreenButtonText: 'Claim prize',
233
- spikesCount: 4,
234
- fabWebSize: '50',
235
- winningScreenSubTitle: '<p>You have a chance to win a big discount</p>',
236
- winningScreenFont: 'Inter',
237
- postPlayScreenButtonTextColour: '#ffffff',
238
- spinnerColor: '#fbbb18',
239
- segmentColor2: '#d97559',
240
- segmentColor1: '#a1deed',
241
- iconColor: '#f5f5f5',
242
- fabIconLink:
243
- 'https://storage.googleapis.com/bik-widget-mfe/bap%2Ffab-assets%2Ficons%2Fbik%2Fgift.svg',
244
- postPlayScreenFont: 'Inter',
245
- winningScreenTitle:
246
- '<p><strong>Spin the wheel to win exciting prizes</strong></p>',
247
- postPlayScreenBackgroundColour: '#ffffff',
248
- winningScreenBackgroundColour: '#ffffff',
249
- probability: {
250
- probability: [0.25, 0.25, 0.25, 0.25],
251
- probabilityIndexArray: [
252
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
253
- 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
254
- 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
255
- 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
256
- 3, 3, 3, 3, 3, 3, 3, 3,
257
- ],
258
- },
259
- },
260
- visibility: {
261
- visiblePages: ['/*'],
262
- triggers: {
263
- isPlayable: false,
264
- playLimit: null,
265
- hasFAbButton: true,
266
- pageScroll: null,
267
- timeDelay: null,
268
- viewLimit: null,
269
- fabButtonVisibility: true,
270
- frequency: null,
271
- },
272
- },
273
- leadGeneration: {
274
- optionalOptions: {
275
- isSms: false,
276
- isWhatsapp: false,
277
- isEmail: false,
278
- },
279
- mandatoryOption: {
280
- isSms: false,
281
- isWhatsapp: true,
282
- isEmail: false,
283
- },
284
- enableConsentPolicies: false,
285
- privacyPolicyURL: '',
286
- },
287
- info: {
288
- widgetTypeId: 'lCcPfO2RuooXpBGgZSs0',
289
- templateName: 'Spin the wheel popup',
290
- infra: '2.0',
291
- templateId: 'KHnL25g05yRTFCGyJFit',
292
- storeId: 'kNwEVoGlLpVjOsXoO1M8WgvWicP2',
293
- isAutomationTesting: true,
294
- },
295
- },
296
- coupons: [
297
- {
298
- quadrant: 1,
299
- couponCode: 'aadfada',
300
- description: 'asdadsadas',
301
- isStaticCoupon: true,
302
- probability: 0.25,
303
- title: 'sdfdfs',
304
- },
305
- {
306
- quadrant: 2,
307
- couponCode: 'asdasdas',
308
- description: 'adfaasdasasda',
309
- isStaticCoupon: true,
310
- probability: 0.25,
311
- title: 'sdfdsfsd',
312
- },
313
- {
314
- quadrant: 3,
315
- couponCode: 'asdadas',
316
- description: 'asdasdadadasdas',
317
- isStaticCoupon: true,
318
- probability: 0.25,
319
- title: 'asdas',
320
- },
321
- {
322
- quadrant: 4,
323
- couponCode: 'asdasd',
324
- description: 'asdasdasdas',
325
- isStaticCoupon: true,
326
- probability: 0.25,
327
- title: 'asdassa',
328
- },
329
- ],
330
- };
@@ -1,37 +0,0 @@
1
- /// <reference types="cypress" />
2
- // ***********************************************
3
- // This example commands.ts shows you how to
4
- // create various custom commands and overwrite
5
- // existing commands.
6
- //
7
- // For more comprehensive examples of custom
8
- // commands please read more here:
9
- // https://on.cypress.io/custom-commands
10
- // ***********************************************
11
- //
12
- //
13
- // -- This is a parent command --
14
- // Cypress.Commands.add('login', (email, password) => { ... })
15
- //
16
- //
17
- // -- This is a child command --
18
- // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
19
- //
20
- //
21
- // -- This is a dual command --
22
- // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
23
- //
24
- //
25
- // -- This will overwrite an existing command --
26
- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
27
- //
28
- // declare global {
29
- // namespace Cypress {
30
- // interface Chainable {
31
- // login(email: string, password: string): Chainable<void>
32
- // drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
33
- // dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
34
- // visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
35
- // }
36
- // }
37
- // }
@@ -1,20 +0,0 @@
1
- // ***********************************************************
2
- // This example support/e2e.ts is processed and
3
- // loaded automatically before your test files.
4
- //
5
- // This is a great place to put global configuration and
6
- // behavior that modifies Cypress.
7
- //
8
- // You can change the location of this file or turn off
9
- // automatically serving support files with the
10
- // 'supportFile' configuration option.
11
- //
12
- // You can read more here:
13
- // https://on.cypress.io/configuration
14
- // ***********************************************************
15
-
16
- // Import commands.js using ES2015 syntax:
17
- import './commands';
18
-
19
- // Alternatively you can use CommonJS syntax:
20
- // require('./commands')
@@ -1,23 +0,0 @@
1
- import { defineConfig } from 'cypress';
2
-
3
- export default defineConfig({
4
- env: {
5
- isProd: false,
6
- storeId: 'kNwEVoGlLpVjOsXoO1M8WgvWicP2',
7
- storeUrl: 'https://shanya-testing.myshopify.com/',
8
- accessToken: 'hO57TPNeiadpHf2G.PTtIsYFIi',
9
- },
10
- e2e: {},
11
- reporter: 'mochawesome',
12
- reporterOptions: {
13
- reportDir: 'cypress/results',
14
- overwrite: false,
15
- html: false,
16
- json: true,
17
- inline: true,
18
- quiet: false,
19
- inlineAssets: true,
20
- },
21
- video: false,
22
- screenshotOnRunFailure: false,
23
- });
package/jsconfig.json DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": "./src"
4
- },
5
- "include": ["src"]
6
- }
package/localtest.sh DELETED
@@ -1,10 +0,0 @@
1
- # build widgets
2
- npm run build-widgets
3
-
4
- # delete existing files from bucket
5
- gsutil -m rm -r gs://bik-widget-mfe/bap/$1/*
6
-
7
- # copy dist to bucket
8
- gsutil -m cp -r dist/* gs://bik-widget-mfe/bap/$1
9
-
10
- # inject scripts to store using script tag api
package/log-server.js DELETED
@@ -1,86 +0,0 @@
1
- const WebSocket = require('ws');
2
-
3
- const colors = {
4
- reset: '\x1b[0m',
5
- red: '\x1b[31m',
6
- yellow: '\x1b[33m',
7
- blue: '\x1b[34m',
8
- cyan: '\x1b[36m',
9
- gray: '\x1b[90m',
10
- };
11
-
12
- const levelColors = {
13
- error: colors.red,
14
- warn: colors.yellow,
15
- info: colors.blue,
16
- debug: colors.cyan,
17
- };
18
-
19
- const formatLog = ({ level, message, timestamp, data, source }) => {
20
- if (!level || !message) {
21
- return `${colors.red}[INVALID LOG]${colors.reset}: ${JSON.stringify({ level, message, timestamp, data, source })}`;
22
- }
23
-
24
- const date = new Date(timestamp || Date.now());
25
- const time = date.toLocaleTimeString('en-US', { hour12: false });
26
- const ms = date.getMilliseconds().toString().padStart(3, '0');
27
-
28
- const levelColor = levelColors[level] || '';
29
-
30
- let output = `[${colors.gray}${time}.${ms}${colors.reset}]`;
31
- if (source) output += ` [${source}]`;
32
- output += ` ${levelColor}${level.toUpperCase()}${colors.reset}: ${message}`;
33
- if (data !== undefined) {
34
- output += ` | data: ${typeof data === 'string' ? data : JSON.stringify(data)}`;
35
- }
36
-
37
- return output;
38
- };
39
-
40
- const createLogServer = (port = 4040) => {
41
- const wss = new WebSocket.Server({ port });
42
- console.log(`WebSocket Log Server running on ws://localhost:${port}`);
43
-
44
- wss.on('connection', ws => {
45
- ws.on('message', data => {
46
- try {
47
- console.log(formatLog(JSON.parse(data.toString())));
48
- } catch {
49
- console.log(
50
- `${colors.red}[PARSE ERROR]${colors.reset}: ${data.toString().substring(0, 100)}`,
51
- );
52
- }
53
- });
54
-
55
- ws.on('error', err => {
56
- console.error(`${colors.red}[WS ERROR]${colors.reset}:`, err.message);
57
- });
58
- });
59
-
60
- wss.on('error', err => {
61
- console.error(`${colors.red}[SERVER ERROR]${colors.reset}:`, err.message);
62
- });
63
-
64
- process.on('SIGINT', () => {
65
- console.log('\nShutting down...');
66
- wss.clients.forEach(ws => {
67
- if (ws.readyState === WebSocket.OPEN) {
68
- ws.terminate();
69
- }
70
- });
71
- wss.close(() => process.exit(0));
72
- });
73
-
74
- return wss;
75
- };
76
-
77
- if (require.main === module) {
78
- const port = parseInt(process.argv[2]) || 4040;
79
- if (port < 1 || port > 65535) {
80
- console.error('Invalid port number');
81
- process.exit(1);
82
- }
83
- createLogServer(port);
84
- }
85
-
86
- module.exports = { createLogServer };
package/postcss.config.js DELETED
@@ -1,8 +0,0 @@
1
- module.exports = {
2
- plugins: [
3
- require('autoprefixer'),
4
- require('cssnano')({
5
- preset: 'default',
6
- }),
7
- ],
8
- };
package/src/Globals.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare module '*.module.css';
2
- declare module '*.module.scss';