@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,28 +0,0 @@
1
- import React from 'react';
2
- import { useExitIntent } from 'hooks/useExitIntent';
3
- import {
4
- EXIT_INTENT_LEVEL,
5
- TRIGGERED_INTENT_TYPE,
6
- } from '@bikdotai/bik-models/dm/models/analytics';
7
-
8
- interface ExitIntentHookProps {
9
- onExitIntent: (exitIntentType: TRIGGERED_INTENT_TYPE) => void;
10
- config?: {
11
- exitIntentTimeDelay?: number | null;
12
- exitIntentViewLimit?: number | null;
13
- exitIntentFastUpScroll?: boolean | null;
14
- showExitIntentOn?: EXIT_INTENT_LEVEL | null;
15
- };
16
- widgetId?: string;
17
- }
18
-
19
- const ExitIntentHook: React.FC<ExitIntentHookProps> = props => {
20
- useExitIntent({
21
- onExitIntent: props.onExitIntent,
22
- config: props.config,
23
- widgetId: props.widgetId,
24
- });
25
- return null;
26
- };
27
-
28
- export default ExitIntentHook;
@@ -1,70 +0,0 @@
1
- import { encryptBikData } from '../../utilities/encryption';
2
- import { ITriggeredIntentDetails } from '../../hooks/useTriggeredIntentDetails';
3
-
4
- export interface IChannelInfo {
5
- channel: 'sms' | 'email' | 'whatsapp' | 'customField';
6
- value: string;
7
- customFieldId?: number;
8
- }
9
- export interface IPayloadFetchCouponCode {
10
- storeId: string;
11
- widgetId: string;
12
- primaryInfo: IChannelInfo[];
13
- secondaryInfo: IChannelInfo[];
14
- templateId: string;
15
- quadrant?: number;
16
- session?: string;
17
- productId?: number;
18
- productName?: string;
19
- variantId?: number;
20
- variantName?: string;
21
- variantPrice?: number;
22
- triggeredIntentDetails?: ITriggeredIntentDetails;
23
- }
24
- export const fetchCouponCode = async (
25
- payload: IPayloadFetchCouponCode,
26
- environment,
27
- ) => {
28
- const isStw =
29
- payload.templateId === 'KHnL25g05yRTFCGyJFit' ||
30
- payload.templateId === 'KcG3ONb3O8OPE2CSAXWJ';
31
- const url = `${environment}/publicApiFunctions-${isStw ? 'claimReward' : 'fetchCouponCode'}`;
32
- const response = await fetch(url, {
33
- method: 'POST',
34
- headers: {
35
- 'Content-Type': 'application/json',
36
- },
37
- body: JSON.stringify(payload),
38
- });
39
- return response.json();
40
- };
41
-
42
- export const addLead = async (
43
- payload: IPayloadFetchCouponCode,
44
- environment,
45
- ) => {
46
- const response = await fetch(`${environment}/publicApiFunctions-addLead`, {
47
- method: 'POST',
48
- headers: {
49
- 'Content-Type': 'application/json',
50
- },
51
- body: JSON.stringify(payload),
52
- });
53
- return response.json();
54
- };
55
-
56
- export const sendWidgetEvent = (event, widgetId, env) => {
57
- fetch(`${env}/publicApiFunctions-sendWidgetEvent`, {
58
- method: 'POST',
59
- headers: {
60
- Accept: 'application/json',
61
- 'Content-Type': 'application/json',
62
- },
63
- body: JSON.stringify({
64
- widgetId: widgetId,
65
- event,
66
- }),
67
- })
68
- .then(response => response.json())
69
- .then(() => {});
70
- };
@@ -1,44 +0,0 @@
1
- import React from 'react';
2
-
3
- export enum SVGName {
4
- BIK = 'BIK',
5
- }
6
- interface SVGFactoryProps {
7
- name: SVGName;
8
- color?: string;
9
- }
10
- const SVGFactory = (props: SVGFactoryProps) => {
11
- const { name, color } = props;
12
- return (
13
- <>
14
- {name === SVGName.BIK && (
15
- <svg
16
- width="28"
17
- height="10"
18
- viewBox="0 0 28 10"
19
- fill="none"
20
- xmlns="http://www.w3.org/2000/svg"
21
- >
22
- <path
23
- d="M28 8.21913C28 9.20256 27.1629 9.99979 26.1302 9.99979C25.0976 9.99979 24.2605 9.20256 24.2605 8.21913C24.2605 7.2357 25.0976 6.43848 26.1302 6.43848C27.1629 6.43848 28 7.2357 28 8.21913Z"
24
- fill="#A2A2A2"
25
- />
26
- <path
27
- d="M0.388011 9.9487C0.288521 9.9487 0.19898 9.91553 0.119388 9.84921C0.0397961 9.77341 0 9.6834 0 9.57917V0.369523C0 0.265299 0.0397961 0.180024 0.119388 0.113699C0.19898 0.0378997 0.288521 0 0.388011 0H5.14861C6.05397 0 6.79517 0.113699 7.37222 0.341098C7.94926 0.568497 8.37707 0.895383 8.65564 1.32176C8.93421 1.74813 9.0735 2.27399 9.0735 2.89933C9.0735 3.22148 9.00385 3.51047 8.86457 3.76629C8.73523 4.01264 8.57605 4.22109 8.38701 4.39164C8.19798 4.55271 8.0189 4.67115 7.84977 4.74695C8.23778 4.90802 8.57605 5.1828 8.86457 5.57127C9.15309 5.95027 9.29735 6.38612 9.29735 6.87881C9.29735 7.54206 9.13817 8.10108 8.8198 8.55588C8.51138 9.01068 8.0587 9.35651 7.46176 9.59339C6.87477 9.83026 6.15346 9.9487 5.29785 9.9487H0.388011ZM3.20856 7.80262H4.95461C5.29287 7.80262 5.5416 7.70787 5.70078 7.51837C5.85997 7.3194 5.93956 7.10148 5.93956 6.8646C5.93956 6.61825 5.85499 6.40507 5.68586 6.22504C5.51673 6.03554 5.27297 5.94079 4.95461 5.94079H3.20856V7.80262ZM3.20856 3.85157H4.80537C5.12374 3.85157 5.35754 3.76629 5.50678 3.59574C5.65601 3.42519 5.73063 3.22622 5.73063 2.99882C5.73063 2.77142 5.65601 2.57245 5.50678 2.4019C5.35754 2.23135 5.12374 2.14608 4.80537 2.14608H3.20856V3.85157Z"
28
- fill={`${color ?? '#A1A1A1'}`}
29
- />
30
- <path
31
- d="M10.5173 9.9487C10.4179 9.9487 10.3283 9.91553 10.2487 9.84921C10.1691 9.77341 10.1293 9.6834 10.1293 9.57917V0.369523C10.1293 0.265299 10.1691 0.180024 10.2487 0.113699C10.3283 0.0378997 10.4179 0 10.5173 0H13.0543C13.1638 0 13.2533 0.0378997 13.323 0.113699C13.4026 0.180024 13.4424 0.265299 13.4424 0.369523V9.57917C13.4424 9.6834 13.4026 9.77341 13.323 9.84921C13.2533 9.91553 13.1638 9.9487 13.0543 9.9487H10.5173Z"
32
- fill={`${color ?? '#A1A1A1'}`}
33
- />
34
- <path
35
- d="M15.0795 9.9487C14.98 9.9487 14.8905 9.91553 14.8109 9.84921C14.7313 9.77341 14.6915 9.6834 14.6915 9.57917V0.369523C14.6915 0.265299 14.7313 0.180024 14.8109 0.113699C14.8905 0.0378997 14.98 0 15.0795 0H17.4523C17.5618 0 17.6513 0.0378997 17.721 0.113699C17.8006 0.180024 17.8404 0.265299 17.8404 0.369523V3.35413L20.064 0.298461C20.1137 0.232136 20.1834 0.165812 20.2729 0.0994874C20.3624 0.0331624 20.4868 0 20.646 0H23.377C23.4665 0 23.5411 0.0331624 23.6008 0.0994874C23.6705 0.156337 23.7053 0.227399 23.7053 0.312674C23.7053 0.369523 23.6854 0.421635 23.6456 0.46901L20.5117 4.76116L23.9142 9.47969C23.954 9.51759 23.9739 9.5697 23.9739 9.63602C23.9739 9.7213 23.9391 9.7971 23.8695 9.86342C23.8098 9.92027 23.7351 9.9487 23.6456 9.9487H20.8251C20.636 9.9487 20.4918 9.90606 20.3923 9.82079C20.3027 9.73551 20.248 9.67392 20.2281 9.63602L17.8404 6.33874V9.57917C17.8404 9.6834 17.8006 9.77341 17.721 9.84921C17.6513 9.91553 17.5618 9.9487 17.4523 9.9487H15.0795Z"
36
- fill={`${color ?? '#A1A1A1'}`}
37
- />
38
- </svg>
39
- )}
40
- </>
41
- );
42
- };
43
-
44
- export default SVGFactory;
@@ -1,193 +0,0 @@
1
- import {
2
- BACKGROUND_TYPE,
3
- ISTWWidgetCustomisation,
4
- } from '@bikdotai/bik-models/dm';
5
-
6
- const config = {
7
- id: 'widget',
8
- environment: 'staging',
9
- templateName: 'Spin the wheel popup',
10
- widgetCustomisation: {
11
- probability: {
12
- probability: [0.1, 0.1, 0.2, 0.2, 0.1, 0.3],
13
- probabilityIndexArray: [
14
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
15
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
16
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5,
17
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
18
- 5, 5, 5, 5,
19
- ],
20
- },
21
- widgetName: 'Spin the wheel popup pac4',
22
- fabPositioner: {
23
- left: '30px',
24
- bottom: '30px',
25
- },
26
- playScreenHeading:
27
- '<p><strong>Spin the wheel to win exciting prizes</strong></p>',
28
- fabBackgroundColor: '#d97559',
29
- fontFamily: {
30
- name: 'Inter',
31
- link: 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap',
32
- },
33
- fontColour: '#000000',
34
- playScreenSubHeading:
35
- '<p>You have a chance to win a big discount. Are you ready?</p>',
36
- spinLimit: 0,
37
- iconcolor: '#f5f5f5',
38
- wheelDetails: [],
39
- spikesCount: 6,
40
- spinnerColor: '#fbbb18',
41
- segmentColor2: '#d97559',
42
- segmentAngle: 60,
43
- segmentColor1: '#a1deed',
44
- iconColor: '#f5f5f5',
45
- fabIconLink:
46
- 'https://storage.googleapis.com/bik-widget-mfe/bap%2Ffab-assets%2Ficons%2Fbik%2Fgift.svg',
47
- fabPosition: 'BOTTOM_LEFT',
48
- postSpinScreenCtaColor: '#731dcf',
49
- fabMobileSize: 50,
50
- fabWebSize: '50',
51
- winningScreenCouponTextColour: '#000000',
52
- winningScreenButtonColour: '#000000',
53
- winningScreenTitle:
54
- '<p><strong>Spin the wheel to win exciting prizes</strong></p>',
55
- winningScreenSubTitle: '<p>You have a chance to win a big discount</p>',
56
- postPlayScreenButtonColour: '#000000',
57
- postPlayScreenButtonText: 'Claim prize',
58
- postPlayScreenTitle: '<p><strong>Special prize only for you!</strong></p>',
59
- postPlayScreenSubTitle: '<p>To claim prize fill the details below</p>',
60
- winningScreenButtonText: 'Copy and use discount',
61
- winningScreenIcon: '',
62
- winningScreenBackgroundColour: '#ffffff',
63
- winningScreenButtonTextColour: '#ffffff',
64
- winningScreenCouponBgColour: '#ffffff',
65
- postPlayScreenBackgroundColour: '#ffffff',
66
- fabColor: '#ffffff',
67
- playScreenBackgroundColour: '#ffffff',
68
- postPlayScreenButtonTextColour: '#ffffff',
69
- discountCodeTitle: {
70
- '1': 'asdf',
71
- '2': 'asf',
72
- '3': 'afs',
73
- '4': 'asf',
74
- '5': 'asfs',
75
- '6': 'fsadf',
76
- },
77
- backgroundType: 'colour',
78
- backgroundColour: '#ffffff',
79
- winningScreenTitleIcon:
80
- 'https://storage.googleapis.com/bik-widget-mfe/bap%2Fpost-play-screen-assets%2Fimages%2Fbik%2FconfettiOne.png',
81
- multiLingualConfigurations: {
82
- ENGLISH: {
83
- playScreenHeading:
84
- '<p><strong>Spin the wheel to win exciting prizes</strong></p>',
85
- playScreenSubHeading:
86
- '<p>You have a chance to win a big discount. Are you ready?</p>',
87
- playScreenButtonText: 'Spin to win',
88
- postPlayScreenTitle:
89
- '<p><strong>Special prize only for you!</strong></p>',
90
- postPlayScreenSubTitle: '<p>To claim prize fill the details below</p>',
91
- postPlayScreenButtonText: 'Claim prize',
92
- winningScreenTitle:
93
- '<p><strong>Hurry! you have won a coupon</strong></p>',
94
- winningScreenSubTitle: '<p>Use the coupon during checkout</p>',
95
- winningScreenButtonText: 'Copy and use discount',
96
- },
97
- ARABIC: {
98
- playScreenHeading:
99
- '<p><strong>ادور العجلة لربح جوائز مثيرة</strong></p>',
100
- playScreenSubHeading: '<p>لديك فرصة للفوز بخصم كبير. هل أنت جاهز؟</p>',
101
- playScreenButtonText: 'ادور للفوز',
102
- postPlayScreenTitle: '<p><strong>جائزة خاصة فقط لك!</strong></p>',
103
- postPlayScreenSubTitle:
104
- '<p>للحصول على الجائزة، قم بملء التفاصيل أدناه</p>',
105
- postPlayScreenButtonText: 'ادعي الجائزة',
106
- winningScreenTitle: '<p><strong>أسرع! لقد فزت بقسيمة</strong></p>',
107
- winningScreenSubTitle: '<p>استخدم القسيمة أثناء الخروج</p>',
108
- winningScreenButtonText: 'انسخ واستخدم الخصم',
109
- },
110
- FRENCH: {
111
- playScreenHeading:
112
- '<p><strong>Faites tourner la roue pour gagner des prix excitants</strong></p>',
113
- playScreenSubHeading:
114
- '<p>Vous avez une chance de gagner un gros rabais. Êtes-vous prêt?</p>',
115
- playScreenButtonText: 'Tourner pour gagner',
116
- postPlayScreenTitle:
117
- '<p><strong>Prix spécial juste pour vous!</strong></p>',
118
- postPlayScreenSubTitle:
119
- '<p>Pour réclamer le prix, remplissez les détails ci-dessous</p>',
120
- postPlayScreenButtonText: 'Réclamer le prix',
121
- winningScreenTitle:
122
- '<p><strong>Dépêchez-vous! vous avez gagné un coupon</strong></p>',
123
- winningScreenSubTitle: '<p>Utilisez le coupon lors du paiement</p>',
124
- winningScreenButtonText: 'Copier et utiliser le rabais',
125
- },
126
- MALAY: {
127
- playScreenHeading:
128
- '<p><strong>Putar roda untuk memenangi hadiah menarik</strong></p>',
129
- playScreenSubHeading:
130
- '<p>Anda berpeluang untuk memenangi kod diskaun besar. Adakah anda bersedia?</p>',
131
- playScreenButtonText: 'Putar untuk menang',
132
- postPlayScreenTitle:
133
- '<p><strong>Hadiah istimewa hanya untuk anda!</strong></p>',
134
- postPlayScreenSubTitle:
135
- '<p>Untuk menuntut hadiah, isikan butiran di bawah</p>',
136
- postPlayScreenButtonText: 'Tuntut hadiah',
137
- winningScreenTitle:
138
- '<p><strong>Bergegas! anda telah memenangi kupon</strong></p>',
139
- winningScreenSubTitle: '<p>Guna kupon semasa pembayaran</p>',
140
- winningScreenButtonText: 'Salin dan gunakan diskaun',
141
- },
142
- },
143
- } as ISTWWidgetCustomisation,
144
- visibility: {
145
- visiblePages: ['/*'],
146
- triggers: {
147
- isPlayable: false,
148
- playLimit: null,
149
- hasFAbButton: true,
150
- pageScroll: null,
151
- timeDelay: null,
152
- viewLimit: null,
153
- fabButtonVisibility: true,
154
- frequency: null,
155
- },
156
- },
157
- leadGeneration: {
158
- optionalOptions: {
159
- isSms: false,
160
- isWhatsapp: false,
161
- isEmail: false,
162
- },
163
- mandatoryOption: {
164
- isSms: false,
165
- isWhatsapp: true,
166
- isEmail: false,
167
- },
168
- enableConsentPolicies: false,
169
- privacyPolicyURL: '',
170
- },
171
- info: {
172
- scriptPath: 'bap/widget-stw/stw.js',
173
- widgetTypeId: 'lCcPfO2RuooXpBGgZSs0',
174
- templateName: 'Spin the wheel popup',
175
- liveSince: '07/09/2023',
176
- infra: '2.0',
177
- id: '1z5TI1ZzjKWrZR5tv39r',
178
- templateId: 'KHnL25g05yRTFCGyJFit',
179
- storeId: 'p60HYv5wjgQaOrPdqT5NjbpkroD2',
180
- delete: false,
181
- status: 'LIVE',
182
- },
183
- storeWidgetConfig: {
184
- '/*': [
185
- {
186
- widgetId: 'widget',
187
- fabPosition: 'BOTTOM_LEFT',
188
- },
189
- ],
190
- },
191
- };
192
-
193
- export default config;
@@ -1,7 +0,0 @@
1
- import { createContext } from 'react';
2
-
3
- export const STWContext = createContext<{
4
- preview: boolean;
5
- isMobile: boolean;
6
- templateName: string;
7
- }>({ preview: false, isMobile: false, templateName: '' });
@@ -1,121 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import Coupon from '../../components/couponDetails/coupon';
3
- import { ISTWTemplate } from './stw1';
4
- import CloseIcon from '../../assets/svg/Close';
5
- import { toSnakeCase } from '../../utilities/stringUtils';
6
- import {
7
- BACKGROUND_TYPE,
8
- ISTWWidgetCustomisation,
9
- LANGUAGE_VALUES,
10
- LANGUAGE_ISO_CODES,
11
- } from '@bikdotai/bik-models/dm';
12
- import useIsMobile from '../../hooks/useIsMobile';
13
- import { ComponentStyleMap, injectFontLink } from '../../utilities/styleUtils';
14
- import { LanguageUtils } from 'utilities/languageUtilities';
15
-
16
- const CouponDetails = (props: ISTWTemplate) => {
17
- const {
18
- widgetCustomisation,
19
- couponCodeDetails,
20
- onCloseHandle,
21
- preview,
22
- isMobile,
23
- templateName,
24
- } = props;
25
- const {
26
- fontFamily,
27
- backgroundType,
28
- backgroundColour,
29
- backgroundImageMobile,
30
- backgroundImageDesktop,
31
- } = widgetCustomisation as ISTWWidgetCustomisation;
32
- const [currentStyle, setCurrentStyle] = useState<any>(null);
33
- const isMobileDevice = useIsMobile();
34
- const languageUtils = new LanguageUtils();
35
- const [widgetLanguage, setWidgetLanguage] = useState(LANGUAGE_VALUES.ENGLISH);
36
-
37
- useEffect(() => {
38
- if (fontFamily && fontFamily?.link) {
39
- injectFontLink([fontFamily?.link]);
40
- }
41
- }, [fontFamily]);
42
-
43
- useEffect(() => {
44
- if (preview) {
45
- if (isMobile) {
46
- ComponentStyleMap[templateName]?.thankyouPreviewMobile.then(
47
- async style => {
48
- setCurrentStyle((await style()).default);
49
- },
50
- );
51
- } else {
52
- ComponentStyleMap[templateName]?.thankyouPreviewDesktop.then(
53
- async style => {
54
- setCurrentStyle((await style()).default);
55
- },
56
- );
57
- }
58
- } else {
59
- ComponentStyleMap[templateName]?.globalStyle.then(async style => {
60
- setCurrentStyle((await style()).default);
61
- });
62
- }
63
- }, [preview, isMobile]);
64
-
65
- useEffect(() => {
66
- const isBikURL =
67
- window.location.href?.includes('https://dashboard.bik.ai/') ||
68
- window.location.href?.includes('https://staging.dashboard.bik.ai/');
69
- const previewLanguage = props?.widgetCustomisation?.previewLanguage;
70
- const storeLanguage =
71
- (isBikURL ? previewLanguage : window?.Shopify?.locale) ??
72
- previewLanguage ??
73
- LANGUAGE_ISO_CODES.EN;
74
- setWidgetLanguage(languageUtils.getStoreLanguage(storeLanguage));
75
- }, [window.location.href, props?.widgetCustomisation?.previewLanguage]);
76
-
77
- if (!currentStyle || !couponCodeDetails) {
78
- return <></>;
79
- }
80
- return (
81
- <div className={currentStyle.bikSpinOverlay}>
82
- <div
83
- className={currentStyle.bikMainWrapper}
84
- id={`bik-${props.id}-coupon-screen`}
85
- >
86
- <div className={currentStyle.bikCloseBtnWrapper}>
87
- <div
88
- className={currentStyle.bikCloseBtn}
89
- onClick={() => onCloseHandle('couponDetails')}
90
- >
91
- <CloseIcon />
92
- </div>
93
- </div>
94
- <div
95
- className={currentStyle.bikWrapper + ' ' + currentStyle.bikPadding20}
96
- style={
97
- backgroundType === BACKGROUND_TYPE.IMAGE
98
- ? {
99
- background: `url(${isMobileDevice || isMobile ? backgroundImageMobile : backgroundImageDesktop})`,
100
- backgroundSize: 'contain',
101
- backgroundRepeat: 'round',
102
- backgroundPosition: 'top',
103
- fontFamily: fontFamily?.name,
104
- }
105
- : {
106
- backgroundColor: backgroundColour ?? '#ffffff',
107
- fontFamily: fontFamily?.name ?? 'Inter',
108
- }
109
- }
110
- >
111
- <Coupon
112
- {...props}
113
- widgetName={toSnakeCase(templateName)}
114
- widgetLanguage={widgetLanguage}
115
- />
116
- </div>
117
- </div>
118
- </div>
119
- );
120
- };
121
- export default CouponDetails;