@saasquatch/mint-components 1.3.1-6 → 1.3.2-10

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 (344) hide show
  1. package/CHANGELOG.md +23 -31
  2. package/dist/cjs/{ShadowViewAddon-a33867b9.js → ShadowViewAddon-d2fde0a2.js} +1 -1
  3. package/dist/cjs/{global-f4f5e602.js → global-e04d7cde.js} +279 -70
  4. package/dist/cjs/{index.module-e9dac160.js → index.module-07ed6ad2.js} +4 -2
  5. package/dist/cjs/loader.cjs.js +3 -3
  6. package/dist/cjs/mint-components.cjs.js +3 -3
  7. package/dist/cjs/{re-render-3acba68a.js → re-render-81649c33.js} +1 -1
  8. package/dist/cjs/sqm-asset-card.cjs.entry.js +1 -1
  9. package/dist/cjs/sqm-big-stat.cjs.entry.js +2 -2
  10. package/dist/cjs/{sqm-divided-layout_26.cjs.entry.js → sqm-divided-layout_30.cjs.entry.js} +2607 -168
  11. package/dist/cjs/sqm-graphql-client-provider.cjs.entry.js +1 -1
  12. package/dist/cjs/{sqm-leaderboard-rank-view-54299e38.js → sqm-leaderboard-rank-view-0ba128e2.js} +2 -2
  13. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +3 -3
  14. package/dist/cjs/sqm-leaderboard.cjs.entry.js +2 -2
  15. package/dist/cjs/sqm-name-fields.cjs.entry.js +1 -1
  16. package/dist/cjs/{sqm-navigation-sidebar-item-view-daa9c2e1.js → sqm-navigation-sidebar-item-view-0bad789c.js} +1 -1
  17. package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +2 -2
  18. package/dist/cjs/sqm-popup-container.cjs.entry.js +1 -1
  19. package/dist/cjs/{sqm-portal-email-verification-view-395079fe.js → sqm-portal-email-verification-view-3c7d8701.js} +1 -1
  20. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +4 -4
  21. package/dist/cjs/{sqm-portal-footer-view-c82aedb5.js → sqm-portal-footer-view-8f5d682e.js} +1 -1
  22. package/dist/cjs/sqm-portal-footer.cjs.entry.js +3 -3
  23. package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +1 -1
  24. package/dist/cjs/sqm-portal-logout.cjs.entry.js +1 -1
  25. package/dist/cjs/{sqm-portal-profile-view-9fa00ccd.js → sqm-portal-profile-view-14866b58.js} +1 -1
  26. package/dist/cjs/sqm-portal-profile.cjs.entry.js +3 -3
  27. package/dist/cjs/sqm-portal-protected-route.cjs.entry.js +1 -1
  28. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +1 -1
  29. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +1 -1
  30. package/dist/cjs/sqm-referral-table-column.cjs.entry.js +2 -2
  31. package/dist/cjs/sqm-referral-table-date-column.cjs.entry.js +2 -2
  32. package/dist/cjs/sqm-referral-table-rewards-column.cjs.entry.js +2 -2
  33. package/dist/cjs/sqm-referral-table-status-column.cjs.entry.js +2 -2
  34. package/dist/cjs/sqm-referral-table-user-column.cjs.entry.js +2 -2
  35. package/dist/cjs/sqm-share-code.cjs.entry.js +1 -1
  36. package/dist/cjs/{useDemoBigStat-e99cc8a2.js → useDemoBigStat-1692a6a1.js} +119 -22
  37. package/dist/collection/collection-manifest.json +7 -3
  38. package/dist/collection/{stories → components/sqm-asset-card}/AssetCard.stories.js +2 -2
  39. package/dist/collection/{stories → components/sqm-big-stat}/BigStat.stories.js +10 -3
  40. package/dist/collection/{stories → components/sqm-big-stat}/UseBigStat.stories.js +7 -4
  41. package/dist/collection/components/sqm-big-stat/sqm-big-stat.js +1 -21
  42. package/dist/collection/components/sqm-big-stat/useBigStat.js +117 -21
  43. package/dist/collection/components/sqm-big-stat/useDemoBigStat.js +1 -0
  44. package/dist/collection/{stories → components/sqm-divided-layout}/DividedLayout.stories.js +4 -4
  45. package/dist/collection/{stories → components/sqm-edit-profile}/EditProfileForm.stories.js +2 -2
  46. package/dist/collection/{stories → components/sqm-edit-profile}/UseEditProfile.stories.js +1 -1
  47. package/dist/collection/{stories → components/sqm-form-message}/FormMessage.stories.js +1 -1
  48. package/dist/collection/{stories → components/sqm-hero}/Hero.stories.js +2 -2
  49. package/dist/collection/{stories → components/sqm-leaderboard}/Leaderboard.stories.js +2 -2
  50. package/dist/collection/{stories → components/sqm-leaderboard}/UseLeaderboard.stories.js +3 -3
  51. package/dist/collection/{stories → components/sqm-leaderboard-rank}/LeaderboardRank.stories.js +2 -2
  52. package/dist/collection/{stories → components/sqm-name-fields}/NameFields.stories.js +2 -2
  53. package/dist/collection/{stories → components/sqm-navigation-sidebar}/NavigationSidebar.stories.js +3 -3
  54. package/dist/collection/{stories → components/sqm-navigation-sidebar-item}/SidebarItem.stories.js +2 -2
  55. package/dist/collection/{stories → components/sqm-password-field}/PasswordField.stories.js +1 -1
  56. package/dist/collection/{stories → components/sqm-portal-change-password}/ChangePassword.stories.js +3 -3
  57. package/dist/collection/{stories → components/sqm-portal-email-verification}/PortalEmailVerification.stories.js +3 -3
  58. package/dist/collection/{stories → components/sqm-portal-footer}/PortalFooter.stories.js +2 -2
  59. package/dist/collection/{stories → components/sqm-portal-forgot-password}/PortalForgotPassword.stories.js +3 -3
  60. package/dist/collection/{stories → components/sqm-portal-frame}/PortalFrame.stories.js +2 -2
  61. package/dist/collection/{stories → components/sqm-portal-login}/PortalLogin.stories.js +2 -2
  62. package/dist/collection/{stories → components/sqm-portal-profile}/PortalProfile.stories.js +2 -2
  63. package/dist/collection/{stories → components/sqm-portal-register}/PortalRegister.stories.js +2 -2
  64. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +1 -1
  65. package/dist/collection/{stories → components/sqm-portal-reset-password}/PortalResetPassword.stories.js +3 -3
  66. package/dist/collection/{stories → components/sqm-portal-verify-email}/PortalVerifyEmail.stories.js +3 -3
  67. package/dist/collection/{stories → components/sqm-program-menu}/ProgramMenu.stories.js +2 -2
  68. package/dist/collection/{stories → components/sqm-referral-iframe}/ReferralIframe.stories.js +2 -2
  69. package/dist/collection/{stories → components/sqm-referral-table}/ReferralTable.stories.js +2 -2
  70. package/dist/collection/{stories → components/sqm-referral-table}/ReferralTableCell.stories.js +1 -1
  71. package/dist/collection/{stories → components/sqm-referral-table}/ReferralTableRewardsCell.stories.js +1 -1
  72. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-column.js +1 -1
  73. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-date-column.js +1 -1
  74. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-rewards-column.js +1 -1
  75. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-status-column.js +1 -1
  76. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-user-column.js +1 -1
  77. package/dist/collection/components/sqm-referral-table/useReferralTable.js +2 -2
  78. package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeList.stories.js +21 -0
  79. package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeListData.js +218 -0
  80. package/dist/collection/components/sqm-reward-exchange-list/SVGs.js +8 -0
  81. package/dist/collection/components/sqm-reward-exchange-list/UseRewardExchangeList.stories.js +143 -0
  82. package/dist/collection/components/sqm-reward-exchange-list/assets/Reward-icon.png +0 -0
  83. package/dist/collection/components/sqm-reward-exchange-list/progressBar.js +60 -0
  84. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +269 -0
  85. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +121 -0
  86. package/dist/collection/components/sqm-reward-exchange-list/useRewardExchangeList.js +198 -0
  87. package/dist/collection/components/sqm-rewards-table/UseRewardsTable.stories.js +53 -0
  88. package/dist/collection/components/sqm-rewards-table/sqm-rewards-table-column.js +120 -0
  89. package/dist/collection/components/sqm-rewards-table/sqm-rewards-table.js +222 -0
  90. package/dist/collection/components/sqm-rewards-table/useRewardsTable.js +190 -0
  91. package/dist/collection/{stories → components/sqm-router}/Router.stories.js +1 -1
  92. package/dist/collection/{stories → components/sqm-share-button}/ShareButton.stories.js +2 -2
  93. package/dist/collection/{stories → components/sqm-share-button}/UseShareButton.stories.js +2 -2
  94. package/dist/collection/components/sqm-share-button/sqm-share-button.js +1 -1
  95. package/dist/collection/{stories → components/sqm-share-link}/ShareLink.stories.js +2 -2
  96. package/dist/collection/{stories → components/sqm-share-link}/UseShareLink.stories.js +3 -3
  97. package/dist/collection/components/sqm-share-link/useShareLink.js +1 -2
  98. package/dist/collection/components/sqm-stencilbook/CucumberAddon.js +3 -1
  99. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +48 -36
  100. package/dist/collection/components/sqm-task-card/Matrix.js +63 -0
  101. package/dist/collection/components/sqm-task-card/SVGs.js +9 -0
  102. package/dist/collection/components/sqm-task-card/TaskCard.stories.js +330 -0
  103. package/dist/collection/components/sqm-task-card/UseTaskCard.stories.js +41 -0
  104. package/dist/collection/components/sqm-task-card/progress-bar/SVGs.js +7 -0
  105. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar-view.js +311 -0
  106. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar.stories.js +53 -0
  107. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +173 -0
  108. package/dist/collection/components/sqm-task-card/sqm-task-card.js +384 -0
  109. package/dist/collection/{stories → components/sqm-user-name}/UserName.stories.js +3 -3
  110. package/dist/collection/global/styles.js +278 -69
  111. package/dist/collection/global/styles.ts +278 -69
  112. package/dist/collection/stories/NewPortal.stories.js +15 -15
  113. package/dist/collection/tables/GenericTableView.js +51 -0
  114. package/dist/collection/tables/TableSlots.js +22 -0
  115. package/dist/collection/{components/sqm-referral-table → tables}/re-render.js +0 -0
  116. package/dist/collection/{components/sqm-referral-table → tables}/sqm-table-cell.js +0 -0
  117. package/dist/collection/{components/sqm-referral-table → tables}/sqm-table-row.js +0 -0
  118. package/dist/collection/{components/sqm-referral-table → tables}/useChildElements.js +0 -0
  119. package/dist/esm/{ShadowViewAddon-7cbc6390.js → ShadowViewAddon-aa087ef2.js} +1 -1
  120. package/dist/esm/{global-5dfb4fa8.js → global-107bb084.js} +279 -70
  121. package/dist/esm/{index.module-07f3fbb0.js → index.module-1f571929.js} +2 -2
  122. package/dist/esm/loader.js +3 -3
  123. package/dist/esm/mint-components.js +3 -3
  124. package/dist/esm/{re-render-0be5746e.js → re-render-76c9129f.js} +1 -1
  125. package/dist/esm/sqm-asset-card.entry.js +1 -1
  126. package/dist/esm/sqm-big-stat.entry.js +2 -2
  127. package/dist/esm/{sqm-divided-layout_26.entry.js → sqm-divided-layout_30.entry.js} +2605 -170
  128. package/dist/esm/sqm-graphql-client-provider.entry.js +1 -1
  129. package/dist/esm/{sqm-leaderboard-rank-view-04161da4.js → sqm-leaderboard-rank-view-c1aefdd5.js} +2 -2
  130. package/dist/esm/sqm-leaderboard-rank.entry.js +3 -3
  131. package/dist/esm/sqm-leaderboard.entry.js +2 -2
  132. package/dist/esm/sqm-name-fields.entry.js +1 -1
  133. package/dist/esm/{sqm-navigation-sidebar-item-view-78631800.js → sqm-navigation-sidebar-item-view-b3618185.js} +1 -1
  134. package/dist/esm/sqm-navigation-sidebar-item.entry.js +2 -2
  135. package/dist/esm/sqm-popup-container.entry.js +1 -1
  136. package/dist/esm/{sqm-portal-email-verification-view-d6ffe3b8.js → sqm-portal-email-verification-view-df0559b0.js} +1 -1
  137. package/dist/esm/sqm-portal-email-verification.entry.js +4 -4
  138. package/dist/esm/{sqm-portal-footer-view-5aa288c9.js → sqm-portal-footer-view-2b2bfc9e.js} +1 -1
  139. package/dist/esm/sqm-portal-footer.entry.js +3 -3
  140. package/dist/esm/sqm-portal-forgot-password.entry.js +1 -1
  141. package/dist/esm/sqm-portal-logout.entry.js +1 -1
  142. package/dist/esm/{sqm-portal-profile-view-636a8688.js → sqm-portal-profile-view-2fbb0845.js} +1 -1
  143. package/dist/esm/sqm-portal-profile.entry.js +3 -3
  144. package/dist/esm/sqm-portal-protected-route.entry.js +1 -1
  145. package/dist/esm/sqm-portal-reset-password.entry.js +1 -1
  146. package/dist/esm/sqm-portal-verify-email.entry.js +1 -1
  147. package/dist/esm/sqm-referral-table-column.entry.js +2 -2
  148. package/dist/esm/sqm-referral-table-date-column.entry.js +2 -2
  149. package/dist/esm/sqm-referral-table-rewards-column.entry.js +2 -2
  150. package/dist/esm/sqm-referral-table-status-column.entry.js +2 -2
  151. package/dist/esm/sqm-referral-table-user-column.entry.js +2 -2
  152. package/dist/esm/sqm-share-code.entry.js +1 -1
  153. package/dist/esm/{useDemoBigStat-531a4d2a.js → useDemoBigStat-49cdfe32.js} +119 -22
  154. package/dist/esm-es5/{ShadowViewAddon-7cbc6390.js → ShadowViewAddon-aa087ef2.js} +1 -1
  155. package/dist/esm-es5/{global-5dfb4fa8.js → global-107bb084.js} +2 -2
  156. package/dist/esm-es5/{index.module-07f3fbb0.js → index.module-1f571929.js} +1 -1
  157. package/dist/esm-es5/loader.js +1 -1
  158. package/dist/esm-es5/mint-components.js +1 -1
  159. package/dist/esm-es5/{re-render-0be5746e.js → re-render-76c9129f.js} +1 -1
  160. package/dist/esm-es5/sqm-asset-card.entry.js +1 -1
  161. package/dist/esm-es5/sqm-big-stat.entry.js +1 -1
  162. package/dist/esm-es5/sqm-divided-layout_30.entry.js +1 -0
  163. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  164. package/dist/esm-es5/{sqm-leaderboard-rank-view-04161da4.js → sqm-leaderboard-rank-view-c1aefdd5.js} +1 -1
  165. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  166. package/dist/esm-es5/sqm-leaderboard.entry.js +1 -1
  167. package/dist/esm-es5/sqm-name-fields.entry.js +1 -1
  168. package/dist/esm-es5/{sqm-navigation-sidebar-item-view-78631800.js → sqm-navigation-sidebar-item-view-b3618185.js} +1 -1
  169. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  170. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  171. package/dist/esm-es5/{sqm-portal-email-verification-view-d6ffe3b8.js → sqm-portal-email-verification-view-df0559b0.js} +1 -1
  172. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  173. package/dist/esm-es5/{sqm-portal-footer-view-5aa288c9.js → sqm-portal-footer-view-2b2bfc9e.js} +1 -1
  174. package/dist/esm-es5/sqm-portal-footer.entry.js +1 -1
  175. package/dist/esm-es5/sqm-portal-forgot-password.entry.js +1 -1
  176. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  177. package/dist/esm-es5/{sqm-portal-profile-view-636a8688.js → sqm-portal-profile-view-2fbb0845.js} +1 -1
  178. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  179. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  180. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  181. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  182. package/dist/esm-es5/sqm-referral-table-column.entry.js +1 -1
  183. package/dist/esm-es5/sqm-referral-table-date-column.entry.js +1 -1
  184. package/dist/esm-es5/sqm-referral-table-rewards-column.entry.js +1 -1
  185. package/dist/esm-es5/sqm-referral-table-status-column.entry.js +1 -1
  186. package/dist/esm-es5/sqm-referral-table-user-column.entry.js +1 -1
  187. package/dist/esm-es5/sqm-share-code.entry.js +1 -1
  188. package/dist/esm-es5/useDemoBigStat-49cdfe32.js +1 -0
  189. package/dist/mint-components/assets/Reward-icon.png +0 -0
  190. package/dist/mint-components/global/styles.ts +278 -69
  191. package/dist/mint-components/mint-components.esm.js +1 -1
  192. package/dist/mint-components/mint-components.js +1 -1
  193. package/dist/mint-components/{p-cb8a3610.system.entry.js → p-03b7444e.system.entry.js} +1 -1
  194. package/dist/mint-components/{p-b745adaa.system.js → p-0470556b.system.js} +1 -1
  195. package/dist/mint-components/{p-6bbb9d5a.system.entry.js → p-0ca63e9e.system.entry.js} +1 -1
  196. package/dist/mint-components/{p-4ca49eb2.system.entry.js → p-0ddd6063.system.entry.js} +1 -1
  197. package/dist/mint-components/{p-a12e34b0.entry.js → p-0f19ab40.entry.js} +1 -1
  198. package/dist/mint-components/{p-84da6c55.system.entry.js → p-123930ab.system.entry.js} +1 -1
  199. package/dist/mint-components/p-20991bdd.system.entry.js +1 -0
  200. package/dist/mint-components/{p-3f3b81de.system.js → p-22ee65c4.system.js} +1 -1
  201. package/dist/mint-components/{p-f05f6004.system.entry.js → p-2b9a01ce.system.entry.js} +1 -1
  202. package/dist/mint-components/{p-705141c1.entry.js → p-3b9492a8.entry.js} +1 -1
  203. package/dist/mint-components/{p-11fe72bd.entry.js → p-3bbc61af.entry.js} +1 -1
  204. package/dist/mint-components/{p-99f85aae.js → p-3fd9db63.js} +1 -1
  205. package/dist/mint-components/p-458070cf.js +1 -0
  206. package/dist/mint-components/{p-1c69eba7.js → p-4ae9f594.js} +1 -1
  207. package/dist/mint-components/{p-7e6a38d0.system.entry.js → p-57568b23.system.entry.js} +1 -1
  208. package/dist/mint-components/{p-453df041.entry.js → p-57aa7493.entry.js} +1 -1
  209. package/dist/mint-components/p-5986de11.entry.js +1 -0
  210. package/dist/mint-components/p-59fa991d.entry.js +335 -0
  211. package/dist/mint-components/{p-cac1ffd0.entry.js → p-5a1a2b2c.entry.js} +1 -1
  212. package/dist/mint-components/{p-552a99b9.system.js → p-5e681b4b.system.js} +1 -1
  213. package/dist/mint-components/p-62b134cb.system.entry.js +1 -0
  214. package/dist/mint-components/{p-9fb97b00.system.entry.js → p-64299f78.system.entry.js} +1 -1
  215. package/dist/mint-components/p-6466d643.entry.js +1 -0
  216. package/dist/mint-components/{p-91c46672.js → p-70008004.js} +1 -1
  217. package/dist/mint-components/{p-a1029019.system.entry.js → p-70a6f9d9.system.entry.js} +1 -1
  218. package/dist/mint-components/p-719c2664.system.js +1 -0
  219. package/dist/mint-components/p-75924795.system.entry.js +1 -0
  220. package/dist/mint-components/{p-55580223.system.js → p-8155cd07.system.js} +1 -1
  221. package/dist/mint-components/{p-f5333477.system.entry.js → p-86a55c58.system.entry.js} +1 -1
  222. package/dist/mint-components/{p-087571f1.entry.js → p-874e7da3.entry.js} +1 -1
  223. package/dist/mint-components/{p-d9123a4a.system.entry.js → p-8ac0ec83.system.entry.js} +1 -1
  224. package/dist/mint-components/{p-d32ebb2d.system.js → p-91b0d151.system.js} +1 -1
  225. package/dist/mint-components/{p-45befbb8.system.entry.js → p-9ca6142b.system.entry.js} +1 -1
  226. package/dist/mint-components/{p-e3d75555.entry.js → p-a26457cd.entry.js} +1 -1
  227. package/dist/mint-components/{p-ccddec52.js → p-a37fc3cb.js} +1 -1
  228. package/dist/mint-components/p-a48fc54e.system.js +1 -0
  229. package/dist/mint-components/{p-6accffd6.js → p-ab378185.js} +1 -1
  230. package/dist/mint-components/p-ac92b5ea.js +235 -0
  231. package/dist/mint-components/{p-6a9b7f7c.entry.js → p-b0c6f82b.entry.js} +1 -1
  232. package/dist/mint-components/{p-df3a9a38.entry.js → p-b0e9c89c.entry.js} +1 -1
  233. package/dist/mint-components/{p-d98a6a1c.entry.js → p-b3bac2c6.entry.js} +1 -1
  234. package/dist/mint-components/{p-40f1482a.system.entry.js → p-bcb30771.system.entry.js} +1 -1
  235. package/dist/mint-components/{p-6a95537b.system.js → p-bdfdb088.system.js} +1 -1
  236. package/dist/mint-components/{p-7f7f60ea.entry.js → p-beb02af2.entry.js} +1 -1
  237. package/dist/mint-components/{p-77cf28f1.system.js → p-beeeda0c.system.js} +2 -2
  238. package/dist/mint-components/p-bf10c781.system.js +1 -0
  239. package/dist/mint-components/{p-ab551be3.system.entry.js → p-c0e8aaa7.system.entry.js} +1 -1
  240. package/dist/mint-components/{p-24cc7ee3.system.entry.js → p-c35b54e4.system.entry.js} +1 -1
  241. package/dist/mint-components/{p-2818f3a0.entry.js → p-c61c61e7.entry.js} +1 -1
  242. package/dist/mint-components/{p-94c25cfe.entry.js → p-c974b7d4.entry.js} +1 -1
  243. package/dist/mint-components/{p-aeb995ca.entry.js → p-cbf1db2b.entry.js} +1 -1
  244. package/dist/mint-components/{p-0d3f2c66.entry.js → p-d1e28563.entry.js} +1 -1
  245. package/dist/mint-components/{p-b95eaf63.entry.js → p-d37f227e.entry.js} +1 -1
  246. package/dist/mint-components/{p-730785e9.system.js → p-d44e98b8.system.js} +1 -1
  247. package/dist/mint-components/{p-80a40e90.js → p-d73d26ec.js} +2 -2
  248. package/dist/mint-components/{p-ab9ef09d.entry.js → p-dacbf435.entry.js} +1 -1
  249. package/dist/mint-components/{p-1af6d49d.system.entry.js → p-dbc04567.system.entry.js} +1 -1
  250. package/dist/mint-components/{p-4018d7eb.entry.js → p-de0efef2.entry.js} +1 -1
  251. package/dist/mint-components/{p-72420d6b.system.entry.js → p-e01213a2.system.entry.js} +1 -1
  252. package/dist/mint-components/p-e2a855b8.system.entry.js +1 -0
  253. package/dist/mint-components/{p-0996811b.entry.js → p-f0ad9b15.entry.js} +1 -1
  254. package/dist/mint-components/{p-23f0e229.system.entry.js → p-f0cbf76e.system.entry.js} +1 -1
  255. package/dist/mint-components/{p-48b04ef0.entry.js → p-f2db1c3b.entry.js} +1 -1
  256. package/dist/mint-components/{p-e1549548.system.entry.js → p-f538a675.system.entry.js} +1 -1
  257. package/dist/mint-components/{p-8edba448.js → p-f7e2418a.js} +1 -1
  258. package/dist/mint-components/{p-f7118fd5.js → p-f8abbd79.js} +1 -1
  259. package/dist/mint-components/{p-92671ed2.system.entry.js → p-fc90a3fe.system.entry.js} +1 -1
  260. package/dist/types/{stories → components/sqm-asset-card}/AssetCard.stories.d.ts +0 -0
  261. package/dist/types/{stories → components/sqm-big-stat}/BigStat.stories.d.ts +0 -0
  262. package/dist/types/{stories → components/sqm-big-stat}/UseBigStat.stories.d.ts +6 -0
  263. package/dist/types/components/sqm-big-stat/sqm-big-stat-view.d.ts +1 -0
  264. package/dist/types/components/sqm-big-stat/sqm-big-stat.d.ts +0 -6
  265. package/dist/types/components/sqm-big-stat/useBigStat.d.ts +4 -1
  266. package/dist/types/{stories → components/sqm-divided-layout}/DividedLayout.stories.d.ts +0 -0
  267. package/dist/types/{stories → components/sqm-edit-profile}/EditProfileForm.stories.d.ts +0 -0
  268. package/dist/types/{stories → components/sqm-edit-profile}/UseEditProfile.stories.d.ts +0 -0
  269. package/dist/types/{stories → components/sqm-form-message}/FormMessage.stories.d.ts +0 -0
  270. package/dist/types/{stories → components/sqm-hero}/Hero.stories.d.ts +0 -0
  271. package/dist/types/{stories → components/sqm-leaderboard}/Leaderboard.stories.d.ts +0 -0
  272. package/dist/types/{stories → components/sqm-leaderboard}/UseLeaderboard.stories.d.ts +0 -0
  273. package/dist/types/{stories → components/sqm-leaderboard-rank}/LeaderboardRank.stories.d.ts +0 -0
  274. package/dist/types/{stories → components/sqm-name-fields}/NameFields.stories.d.ts +0 -0
  275. package/dist/types/{stories → components/sqm-navigation-sidebar}/NavigationSidebar.stories.d.ts +0 -0
  276. package/dist/types/{stories → components/sqm-navigation-sidebar-item}/SidebarItem.stories.d.ts +0 -0
  277. package/dist/types/{stories → components/sqm-password-field}/PasswordField.stories.d.ts +0 -0
  278. package/dist/types/{stories → components/sqm-portal-change-password}/ChangePassword.stories.d.ts +0 -0
  279. package/dist/types/{stories → components/sqm-portal-email-verification}/PortalEmailVerification.stories.d.ts +0 -0
  280. package/dist/types/{stories → components/sqm-portal-footer}/PortalFooter.stories.d.ts +0 -0
  281. package/dist/types/{stories → components/sqm-portal-forgot-password}/PortalForgotPassword.stories.d.ts +0 -0
  282. package/dist/types/{stories → components/sqm-portal-frame}/PortalFrame.stories.d.ts +0 -0
  283. package/dist/types/{stories → components/sqm-portal-login}/PortalLogin.stories.d.ts +0 -0
  284. package/dist/types/{stories → components/sqm-portal-profile}/PortalProfile.stories.d.ts +0 -0
  285. package/dist/types/{stories → components/sqm-portal-register}/PortalRegister.stories.d.ts +0 -0
  286. package/dist/types/{stories → components/sqm-portal-reset-password}/PortalResetPassword.stories.d.ts +0 -0
  287. package/dist/types/{stories → components/sqm-portal-verify-email}/PortalVerifyEmail.stories.d.ts +0 -0
  288. package/dist/types/{stories → components/sqm-program-menu}/ProgramMenu.stories.d.ts +0 -0
  289. package/dist/types/{stories → components/sqm-referral-iframe}/ReferralIframe.stories.d.ts +0 -0
  290. package/dist/types/{stories → components/sqm-referral-table}/ReferralTable.stories.d.ts +0 -0
  291. package/dist/types/{stories → components/sqm-referral-table}/ReferralTableCell.stories.d.ts +0 -0
  292. package/dist/types/{stories → components/sqm-referral-table}/ReferralTableRewardsCell.stories.d.ts +0 -0
  293. package/dist/types/components/sqm-reward-exchange-list/RewardExchangeList.stories.d.ts +6 -0
  294. package/dist/types/components/sqm-reward-exchange-list/RewardExchangeListData.d.ts +81 -0
  295. package/dist/types/components/sqm-reward-exchange-list/SVGs.d.ts +3 -0
  296. package/dist/types/components/sqm-reward-exchange-list/UseRewardExchangeList.stories.d.ts +28 -0
  297. package/dist/types/components/sqm-reward-exchange-list/progressBar.d.ts +4 -0
  298. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.d.ts +25 -0
  299. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list.d.ts +20 -0
  300. package/dist/types/components/sqm-reward-exchange-list/useRewardExchangeList.d.ts +43 -0
  301. package/dist/types/components/sqm-rewards-table/UseRewardsTable.stories.d.ts +16 -0
  302. package/dist/types/components/sqm-rewards-table/sqm-rewards-table-column.d.ts +20 -0
  303. package/dist/types/components/sqm-rewards-table/sqm-rewards-table.d.ts +32 -0
  304. package/dist/types/components/sqm-rewards-table/useRewardsTable.d.ts +38 -0
  305. package/dist/types/{stories → components/sqm-router}/Router.stories.d.ts +0 -0
  306. package/dist/types/{stories → components/sqm-share-button}/ShareButton.stories.d.ts +0 -0
  307. package/dist/types/{stories → components/sqm-share-button}/UseShareButton.stories.d.ts +0 -0
  308. package/dist/types/{stories → components/sqm-share-link}/ShareLink.stories.d.ts +0 -0
  309. package/dist/types/{stories → components/sqm-share-link}/UseShareLink.stories.d.ts +0 -0
  310. package/dist/types/components/sqm-task-card/Matrix.d.ts +11 -0
  311. package/dist/types/components/sqm-task-card/SVGs.d.ts +2 -0
  312. package/dist/types/components/sqm-task-card/TaskCard.stories.d.ts +11 -0
  313. package/dist/types/components/sqm-task-card/UseTaskCard.stories.d.ts +10 -0
  314. package/dist/types/components/sqm-task-card/progress-bar/SVGs.d.ts +1 -0
  315. package/dist/types/components/sqm-task-card/progress-bar/progress-bar-view.d.ts +10 -0
  316. package/dist/types/components/sqm-task-card/progress-bar/progress-bar.stories.d.ts +12 -0
  317. package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +16 -0
  318. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +73 -0
  319. package/dist/types/components/sqm-user-name/UserName.stories.d.ts +6 -0
  320. package/dist/types/components.d.ts +269 -10
  321. package/dist/types/global/styles.d.ts +1 -1
  322. package/dist/types/tables/GenericTableView.d.ts +29 -0
  323. package/dist/types/tables/TableSlots.d.ts +8 -0
  324. package/dist/types/{components/sqm-referral-table → tables}/re-render.d.ts +0 -0
  325. package/dist/types/{components/sqm-referral-table → tables}/sqm-table-cell.d.ts +0 -0
  326. package/dist/types/{components/sqm-referral-table → tables}/sqm-table-row.d.ts +0 -0
  327. package/dist/types/{components/sqm-referral-table → tables}/useChildElements.d.ts +0 -0
  328. package/grapesjs/grapesjs.js +1 -1
  329. package/package.json +2 -2
  330. package/dist/esm-es5/sqm-divided-layout_26.entry.js +0 -1
  331. package/dist/esm-es5/useDemoBigStat-531a4d2a.js +0 -1
  332. package/dist/mint-components/p-0ed2de6a.js +0 -1
  333. package/dist/mint-components/p-253d07a3.system.entry.js +0 -1
  334. package/dist/mint-components/p-3ace9bab.entry.js +0 -230
  335. package/dist/mint-components/p-3e5c8dc2.entry.js +0 -1
  336. package/dist/mint-components/p-3fc2b5d4.system.js +0 -1
  337. package/dist/mint-components/p-420e50a8.entry.js +0 -1
  338. package/dist/mint-components/p-44a83e6e.system.js +0 -1
  339. package/dist/mint-components/p-4a9dcc1f.system.js +0 -1
  340. package/dist/mint-components/p-52be0df6.js +0 -227
  341. package/dist/mint-components/p-54d90d9f.system.entry.js +0 -1
  342. package/dist/mint-components/p-a60e8e00.system.entry.js +0 -1
  343. package/dist/mint-components/p-c6f2d1f4.system.entry.js +0 -1
  344. package/dist/types/stories/UserName.stories.d.ts +0 -6
@@ -0,0 +1,269 @@
1
+ import { getAssetPath, h } from "@stencil/core";
2
+ import jss from "jss";
3
+ import preset from "jss-preset-default";
4
+ import { ProgressBar } from "./progressBar";
5
+ import { LeftArrow, ExchangeArrows } from "./SVGs";
6
+ const stageList = ["chooseReward", "chooseAmount", "confirmation", "success"];
7
+ const stageProgressList = {
8
+ chooseReward: "Choose reward",
9
+ chooseAmount: "Amount",
10
+ confirmation: "Confirm",
11
+ };
12
+ export function RewardExchangeView(props) {
13
+ const style = {
14
+ Container: {
15
+ position: "relative",
16
+ },
17
+ CardContainer: {
18
+ "&:hover": {
19
+ boxShadow: "0 3px 10px #87ceeb6e!important",
20
+ },
21
+ },
22
+ Base: {
23
+ display: "flex",
24
+ cursor: "pointer",
25
+ textAlign: "center",
26
+ height: "120px",
27
+ "&::part(base)": {
28
+ width: "100%",
29
+ maxWidth: "350px",
30
+ display: "flex",
31
+ margin: "0 auto",
32
+ },
33
+ "&::part(body)": {
34
+ padding: 0,
35
+ display: "flex",
36
+ width: "100%",
37
+ },
38
+ },
39
+ Drawer: {
40
+ "&::part(base)": {
41
+ minWidth: "400px",
42
+ maxWidth: "700px",
43
+ width: "50%",
44
+ margin: "0 auto",
45
+ right: "0",
46
+ },
47
+ "&::part(panel)": {
48
+ height: "85vh",
49
+ width: "100%",
50
+ },
51
+ },
52
+ FullImage: {
53
+ objectFit: "contain",
54
+ maxWidth: "100%",
55
+ height: "100px",
56
+ },
57
+ PreviewImage: {
58
+ objectFit: "contain",
59
+ width: "120px",
60
+ height: "120px",
61
+ flex: 0.33,
62
+ },
63
+ InputBox: {
64
+ width: "100%",
65
+ marginBottom: "20px",
66
+ },
67
+ Select: {
68
+ "&::part(base)": {
69
+ flex: "0.75",
70
+ },
71
+ "&::part(menu)": {
72
+ maxHeight: "40vh",
73
+ },
74
+ },
75
+ Buttons: {
76
+ marginLeft: "auto",
77
+ width: "100%",
78
+ maxWidth: "300px",
79
+ },
80
+ Button: {
81
+ margin: "10px 0",
82
+ display: "block",
83
+ textAlign: "center",
84
+ cursor: "pointer",
85
+ },
86
+ ProgressBar: {
87
+ fontSize: "80%",
88
+ marginBottom: "20px",
89
+ "& .text-area": {
90
+ marginTop: "5px",
91
+ display: "flex",
92
+ justifyContent: "center",
93
+ textAlign: "center",
94
+ whiteSpace: "nowrap",
95
+ marginBottom: "6px",
96
+ "& .text": {
97
+ flex: "1 1 0",
98
+ },
99
+ "& .text.subdued": {
100
+ color: "#BDBDBD",
101
+ },
102
+ },
103
+ },
104
+ };
105
+ // JSS config
106
+ jss.setup(preset());
107
+ const sheet = jss.createStyleSheet(style);
108
+ const styleString = sheet.toString();
109
+ const { states, data, callbacks, refs } = props;
110
+ const { selectedItem, selectedStep } = states;
111
+ function getInput() {
112
+ var _a, _b;
113
+ const item = states.selectedItem;
114
+ if (!item || (item === null || item === void 0 ? void 0 : item.ruleType) === "FIXED_GLOBAL_REWARD")
115
+ return h("span", null);
116
+ if (!((_a = item.steps) === null || _a === void 0 ? void 0 : _a.length)) {
117
+ return h("p", null,
118
+ "Not enough ",
119
+ item.sourceUnit,
120
+ " to redeem for this reward.");
121
+ }
122
+ return (h("sl-select", { style: { width: "auto" }, label: "Select amount to receive", class: sheet.classes.Select, value: states.selectedStep, "onSl-select": (e) => {
123
+ var _a, _b, _c, _d, _e;
124
+ return callbacks.setExchangeState({
125
+ amount: (_c = (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.sourceValue,
126
+ selectedStep: (_e = (_d = e.detail) === null || _d === void 0 ? void 0 : _d.item) === null || _e === void 0 ? void 0 : _e.value,
127
+ });
128
+ } }, (_b = item.steps) === null || _b === void 0 ? void 0 : _b.map((step) => (h("sl-menu-item", { value: step, disabled: !step.available },
129
+ step.prettyDestinationValue,
130
+ h("div", { slot: "suffix", style: { fontSize: "75%", float: "right" } },
131
+ step.prettySourceValue,
132
+ step.unavailableReasonCode && (h("p", { style: { fontSize: "70%", color: "#F2994A" } }, step.unavailableReasonCode))))))));
133
+ }
134
+ function chooseReward() {
135
+ var _a;
136
+ const nextStage = "chooseAmount";
137
+ // console.log({ nextStage, ruleType: selectedItem?.ruleType });
138
+ return [
139
+ h("div", { style: {
140
+ display: "grid",
141
+ justifyContent: "center",
142
+ gap: "20px",
143
+ gridTemplateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
144
+ } }, (_a = data.exchangeList) === null || _a === void 0 ? void 0 : _a.map((item) => {
145
+ const style = {
146
+ boxShadow: item.key === (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.key) ? "0 1px 8px #87ceeb" : "none",
147
+ marginBottom: "10px 0",
148
+ flex: "1",
149
+ minWidth: "100%",
150
+ color: !item.available && "#eee",
151
+ };
152
+ const amount = item.ruleType === "FIXED_GLOBAL_REWARD"
153
+ ? item.prettySourceValue
154
+ : `${item.sourceMinValue} to ${item.prettySourceMaxValue}`;
155
+ return (h("div", { key: item.key, class: item.available ? sheet.classes.CardContainer : "", style: style },
156
+ h("sl-card", { class: sheet.classes.Base, onClick: () => item.available &&
157
+ callbacks.setExchangeState({ selectedItem: item }) },
158
+ // item?.imageUrl &&
159
+ h("img", { class: sheet.classes.PreviewImage, src: (item === null || item === void 0 ? void 0 : item.imageUrl) || getAssetPath("./assets/Reward-icon.png") }),
160
+ h("p", { style: {
161
+ textAlign: "left",
162
+ margin: "0",
163
+ flex: "1",
164
+ fontSize: "90%",
165
+ padding: "8px"
166
+ } },
167
+ h("b", null, item.description),
168
+ h("p", { style: { margin: "0" } }, amount),
169
+ item.unavailableReasonCode && (h("p", { style: {
170
+ fontSize: "70%",
171
+ color: "#F2994A",
172
+ marginTop: "0",
173
+ } }, item.unavailableReasonCode ===
174
+ "INSUFFICIENT_REDEEMABLE_CREDIT"
175
+ ? "Not enough points"
176
+ : item.unavailableReasonCode))))));
177
+ })),
178
+ h("div", { class: sheet.classes.Buttons },
179
+ h("sl-button", { onClick: () => callbacks.setStage(nextStage), style: { display: "block" }, class: sheet.classes.Button, disabled: !states.selectedItem }, "Continue"),
180
+ h("a", {
181
+ // onClick={() => refs.drawerRef.current?.hide()}
182
+ style: { display: "block" }, class: sheet.classes.Button }, "Cancel")),
183
+ ];
184
+ }
185
+ function chooseAmount() {
186
+ const input = getInput();
187
+ return (h("div", null,
188
+ h("div", { style: { width: "50%", margin: "0 auto" } }, (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) && (h("img", { class: sheet.classes.FullImage, src: selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl }))),
189
+ h("p", null, selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.description),
190
+ h("div", { class: sheet.classes.InputBox }, input),
191
+ h("div", { class: sheet.classes.Buttons },
192
+ h("sl-button", { onClick: () => callbacks.setStage("confirmation"), disabled: input && !states.amount, style: { display: "block" }, class: sheet.classes.Button }, "Continue"),
193
+ h("a", { onClick: () => callbacks.setStage("chooseReward"), style: { display: "block" }, class: sheet.classes.Button }, "Back"))));
194
+ }
195
+ // console.log({ selectedItem, selectedStep });
196
+ function confirmation() {
197
+ const previousStage = "chooseAmount";
198
+ return (h("div", null,
199
+ h("h2", null, "Confirm and redeem"),
200
+ h("div", { style: { textAlign: "center" } },
201
+ h("p", null,
202
+ h("b", null, selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettySourceValue)),
203
+ h("p", null,
204
+ h(ExchangeArrows, null)),
205
+ h("div", { class: sheet.classes.CardContainer, style: {
206
+ boxShadow: "none",
207
+ marginBottom: "10px",
208
+ flex: "1",
209
+ minWidth: "100%",
210
+ } },
211
+ h("sl-card", { class: sheet.classes.Base },
212
+ h("img", { class: sheet.classes.PreviewImage, src: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) ||
213
+ getAssetPath("./assets/Reward-icon.png") }),
214
+ h("p", { style: { marginBottom: "0", flex: "1" } }, selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettyDestinationValue)))),
215
+ h("div", { class: sheet.classes.Buttons },
216
+ h("sl-button", { onClick: callbacks.exchangeReward, style: { display: "block" }, class: sheet.classes.Button }, "Redeem"),
217
+ h("a", { onClick: () => callbacks.setStage(previousStage), style: { display: "block" }, class: sheet.classes.Button }, "Back"))));
218
+ }
219
+ function success() {
220
+ return (h("div", { style: { textAlign: "center" } },
221
+ h("img", { class: sheet.classes.FullImage, src: getAssetPath("./assets/Reward-icon.png") }),
222
+ h("p", { style: { color: "forestgreen" } }, "Reward Redeemed"),
223
+ (data === null || data === void 0 ? void 0 : data.fuelTankCode) && h("pre", null, data === null || data === void 0 ? void 0 : data.fuelTankCode)));
224
+ }
225
+ const stages = {
226
+ chooseReward: () => chooseReward(),
227
+ chooseAmount: () => chooseAmount(),
228
+ confirmation: () => confirmation(),
229
+ success: () => success(),
230
+ };
231
+ const currentStage = stages[states.redeemStage];
232
+ function stageMap() {
233
+ const stageNumber = stageList.indexOf(states.redeemStage);
234
+ return (h("div", { class: sheet.classes.ProgressBar },
235
+ h("div", { class: "text-area" }, Object.keys(stageProgressList).map((stage) => {
236
+ if (stage === states.redeemStage) {
237
+ return h("span", { class: "text" }, stageProgressList[stage]);
238
+ }
239
+ else {
240
+ return (h("span", { class: "text subdued" }, stageProgressList[stage]));
241
+ }
242
+ })),
243
+ h(ProgressBar, { stageCount: 3, currentStage: stageNumber })));
244
+ }
245
+ const BackButton = () => {
246
+ if (states.redeemStage === "success")
247
+ return "";
248
+ let previousStage = "";
249
+ if (states.redeemStage === "confirmation") {
250
+ previousStage = "chooseAmount";
251
+ }
252
+ else if (states.redeemStage === "chooseAmount") {
253
+ previousStage = "chooseReward";
254
+ }
255
+ return (h("div", { slot: "label" },
256
+ h("a", { style: { cursor: "pointer", fontSize: "80%", color: "#858585" }, onClick: () => callbacks.setStage(previousStage) },
257
+ h(LeftArrow, null),
258
+ " Back")));
259
+ };
260
+ console.log(props);
261
+ return (h("div", { class: sheet.classes.Container },
262
+ h("style", { type: "text/css" }, styleString),
263
+ h("div", null,
264
+ h(BackButton, null),
265
+ stageMap(),
266
+ currentStage && currentStage(),
267
+ states.exchangeError &&
268
+ "Something went wrong. Please contact support or try again.")));
269
+ }
@@ -0,0 +1,121 @@
1
+ import { Component, h, Host, Prop, State } from "@stencil/core";
2
+ import { withHooks } from "@saasquatch/stencil-hooks";
3
+ import { useRewardExchangeList, } from "./useRewardExchangeList";
4
+ import { RewardExchangeView, } from "./sqm-reward-exchange-list-view";
5
+ import { isDemo } from "@saasquatch/component-boilerplate";
6
+ import deepmerge from "deepmerge";
7
+ import { getProps } from "../../utils/utils";
8
+ /**
9
+ * @uiName Reward Exchange List
10
+ */
11
+ export class SqmRewardExchangeList {
12
+ constructor() {
13
+ this.ignored = true;
14
+ /**
15
+ * @uiName Exchange button text
16
+ */
17
+ this.buttonText = "Exchange Rewards";
18
+ withHooks(this);
19
+ }
20
+ disconnectedCallback() { }
21
+ render() {
22
+ // const missingProps = getMissingProps([
23
+ // {
24
+ // attribute: "listType",
25
+ // value: this.listType,
26
+ // },
27
+ // ]);
28
+ // if (missingProps) {
29
+ // return <RequiredPropsError missingProps={missingProps} />;
30
+ // }
31
+ const { states, data, callbacks, refs } = isDemo()
32
+ ? useRewardExchangeListDemo(getProps(this))
33
+ : useRewardExchangeList(getProps(this));
34
+ return (h(Host, { style: { display: "contents" } },
35
+ h(RewardExchangeView, { states: states, data: data, callbacks: callbacks, refs: refs })));
36
+ }
37
+ static get is() { return "sqm-reward-exchange-list"; }
38
+ static get assetsDirs() { return ["assets"]; }
39
+ static get properties() { return {
40
+ "buttonText": {
41
+ "type": "string",
42
+ "mutable": false,
43
+ "complexType": {
44
+ "original": "string",
45
+ "resolved": "string",
46
+ "references": {}
47
+ },
48
+ "required": false,
49
+ "optional": false,
50
+ "docs": {
51
+ "tags": [{
52
+ "text": "Exchange button text",
53
+ "name": "uiName"
54
+ }],
55
+ "text": ""
56
+ },
57
+ "attribute": "button-text",
58
+ "reflect": false,
59
+ "defaultValue": "\"Exchange Rewards\""
60
+ },
61
+ "demoData": {
62
+ "type": "unknown",
63
+ "mutable": false,
64
+ "complexType": {
65
+ "original": "DemoData<RewardExchangeViewProps>",
66
+ "resolved": "{ states?: { selectedItem: ExchangeItem; selectedStep: ExchangeStep; redeemStage: string; amount: number; exchangeError?: boolean; loading: boolean; content: { text: any; }; }; data?: { exchangeList: any; }; refs?: {}; }",
67
+ "references": {
68
+ "DemoData": {
69
+ "location": "import",
70
+ "path": "../../global/demo"
71
+ },
72
+ "RewardExchangeViewProps": {
73
+ "location": "import",
74
+ "path": "./sqm-reward-exchange-list-view"
75
+ }
76
+ }
77
+ },
78
+ "required": false,
79
+ "optional": true,
80
+ "docs": {
81
+ "tags": [{
82
+ "text": undefined,
83
+ "name": "undocumented"
84
+ }, {
85
+ "text": "object",
86
+ "name": "uiType"
87
+ }],
88
+ "text": ""
89
+ }
90
+ }
91
+ }; }
92
+ static get states() { return {
93
+ "ignored": {}
94
+ }; }
95
+ }
96
+ function useRewardExchangeListDemo(props) {
97
+ return deepmerge({
98
+ states: {
99
+ content: {
100
+ text: props,
101
+ },
102
+ redeemStage: "chooseReward",
103
+ amount: 0,
104
+ selectedStep: undefined,
105
+ exchangeError: false,
106
+ loading: false,
107
+ },
108
+ data: {
109
+ shareCode: "SHARECODE123",
110
+ },
111
+ callbacks: {
112
+ exchangeReward: () => { },
113
+ openDrawer: () => { },
114
+ setExchangeState: (_) => { },
115
+ setStage: (_) => { },
116
+ },
117
+ refs: {
118
+ drawerRef: {},
119
+ },
120
+ }, props.demoData || {}, { arrayMerge: (_, a) => a });
121
+ }
@@ -0,0 +1,198 @@
1
+ import { useUserIdentity, useQuery, useMutation, } from "@saasquatch/component-boilerplate";
2
+ import { gql } from "graphql-request";
3
+ import { useCallback, useEffect, useReducer, useRef, } from "@saasquatch/universal-hooks";
4
+ const GET_EXCHANGE_LIST = gql `
5
+ query getExchangeList {
6
+ viewer {
7
+ ... on User {
8
+ visibleRewardExchangeItems(limit: 20, offset: 0) {
9
+ data {
10
+ key
11
+ name
12
+ description
13
+ imageUrl
14
+ available
15
+ unavailableReason
16
+ unavailableReasonCode
17
+ ruleType
18
+ sourceUnit
19
+ sourceValue
20
+ prettySourceValue
21
+ sourceMinValue
22
+ prettySourceMinValue
23
+ sourceMaxValue
24
+ prettySourceMaxValue
25
+ destinationMinValue
26
+ prettyDestinationMinValue
27
+ destinationMaxValue
28
+ prettyDestinationMaxValue
29
+ globalRewardKey
30
+ destinationUnit
31
+ steps {
32
+ sourceValue
33
+ prettySourceValue
34
+ destinationValue
35
+ prettyDestinationValue
36
+ available
37
+ unavailableReasonCode
38
+ }
39
+ }
40
+ totalCount
41
+ }
42
+ }
43
+ }
44
+ }
45
+ `;
46
+ const EXCHANGE = gql `
47
+ mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {
48
+ exchangeReward(exchangeRewardInput: $exchangeRewardInput) {
49
+ reward {
50
+ id
51
+ fuelTankCode
52
+ }
53
+ }
54
+ }
55
+ `;
56
+ export function useRewardExchangeList(props) {
57
+ var _a, _b, _c, _d;
58
+ const drawerRef = useRef();
59
+ const [exchangeState, setExchangeState] = useReducer((state, next) => ({
60
+ ...state,
61
+ ...next,
62
+ }), {
63
+ selectedItem: undefined,
64
+ selectedStep: undefined,
65
+ redeemStage: "chooseReward",
66
+ amount: 0,
67
+ exchangeError: false,
68
+ });
69
+ const { selectedItem, selectedStep, redeemStage, amount, exchangeError } = exchangeState;
70
+ const user = useUserIdentity();
71
+ const [exchange, { data: exchangeResponse, errors }] = useMutation(EXCHANGE);
72
+ const { data, loading } = useQuery(GET_EXCHANGE_LIST, !(user === null || user === void 0 ? void 0 : user.jwt));
73
+ useEffect(() => {
74
+ var _a, _b;
75
+ if ((_b = (_a = exchangeResponse === null || exchangeResponse === void 0 ? void 0 : exchangeResponse.exchangeReward) === null || _a === void 0 ? void 0 : _a.reward) === null || _b === void 0 ? void 0 : _b.id) {
76
+ setExchangeState({ redeemStage: "success" });
77
+ }
78
+ if (!!errors) {
79
+ console.log("YEA");
80
+ setExchangeState({ exchangeError: true });
81
+ }
82
+ }, [exchangeResponse, errors]);
83
+ function openDrawer() {
84
+ var _a;
85
+ setExchangeState({ redeemStage: "chooseReward" });
86
+ (_a = drawerRef.current) === null || _a === void 0 ? void 0 : _a.show();
87
+ }
88
+ function exchangeReward() {
89
+ if (!selectedItem)
90
+ return;
91
+ let exchangeVariables = {
92
+ accountId: user === null || user === void 0 ? void 0 : user.accountId,
93
+ userId: user.id,
94
+ };
95
+ switch (selectedItem.ruleType) {
96
+ case "FIXED_GLOBAL_REWARD":
97
+ exchangeVariables = {
98
+ ...exchangeVariables,
99
+ redeemCreditInput: {
100
+ amount: selectedItem.sourceValue,
101
+ unit: selectedItem.sourceUnit,
102
+ },
103
+ globalRewardKey: selectedItem.globalRewardKey,
104
+ };
105
+ break;
106
+ case "VARIABLE_GLOBAL_REWARD":
107
+ exchangeVariables = {
108
+ ...exchangeVariables,
109
+ redeemCreditInput: {
110
+ amount: amount,
111
+ unit: selectedItem.sourceUnit,
112
+ },
113
+ globalRewardKey: selectedItem.globalRewardKey,
114
+ rewardInput: {
115
+ valueInCents: selectedStep.destinationValue,
116
+ },
117
+ };
118
+ break;
119
+ case "VARIABLE_CREDIT_REWARD":
120
+ exchangeVariables = {
121
+ ...exchangeVariables,
122
+ redeemCreditInput: {
123
+ amount: amount,
124
+ unit: selectedItem.sourceUnit,
125
+ },
126
+ rewardInput: {
127
+ type: "CREDIT",
128
+ unit: selectedItem.destinationUnit,
129
+ assignedCredit: selectedStep.destinationValue,
130
+ },
131
+ };
132
+ break;
133
+ default:
134
+ exchangeVariables = {
135
+ ...exchangeVariables,
136
+ redeemCreditInput: {
137
+ amount: selectedItem.sourceValue,
138
+ unit: selectedItem.sourceUnit,
139
+ },
140
+ globalRewardKey: selectedItem.globalRewardKey,
141
+ };
142
+ }
143
+ exchange({ exchangeRewardInput: exchangeVariables });
144
+ }
145
+ const resetState = useCallback((e) => {
146
+ var _a, _b;
147
+ // selects also trigger an sl-hide event :(
148
+ //@ts-ignore - componentId is not private here
149
+ if (((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.componentId) !== ((_b = drawerRef.current) === null || _b === void 0 ? void 0 : _b.componentId))
150
+ return;
151
+ setExchangeState({
152
+ amount: 0,
153
+ selectedStep: undefined,
154
+ selectedItem: undefined,
155
+ exchangeError: false,
156
+ });
157
+ }, []);
158
+ useEffect(() => {
159
+ if (!(drawerRef === null || drawerRef === void 0 ? void 0 : drawerRef.current))
160
+ return;
161
+ const drawer = drawerRef.current;
162
+ // Clear input value when drawer is closed
163
+ drawer.addEventListener("sl-hide", resetState);
164
+ return () => {
165
+ drawer.removeEventListener("sl-hide", resetState);
166
+ };
167
+ }, [drawerRef.current]);
168
+ function setStage(stage) {
169
+ setExchangeState({ redeemStage: stage });
170
+ }
171
+ return {
172
+ states: {
173
+ content: {
174
+ text: props,
175
+ },
176
+ selectedItem,
177
+ redeemStage,
178
+ amount,
179
+ selectedStep,
180
+ exchangeError,
181
+ loading,
182
+ },
183
+ data: {
184
+ exchangeList: (_b = (_a = data === null || data === void 0 ? void 0 : data.viewer) === null || _a === void 0 ? void 0 : _a.visibleRewardExchangeItems) === null || _b === void 0 ? void 0 : _b.data,
185
+ //@ts-ignore
186
+ fuelTankCode: (_d = (_c = exchangeResponse === null || exchangeResponse === void 0 ? void 0 : exchangeResponse.exchangeReward) === null || _c === void 0 ? void 0 : _c.reward) === null || _d === void 0 ? void 0 : _d.fuelTankCode,
187
+ },
188
+ callbacks: {
189
+ exchangeReward,
190
+ openDrawer,
191
+ setExchangeState,
192
+ setStage,
193
+ },
194
+ refs: {
195
+ drawerRef,
196
+ },
197
+ };
198
+ }
@@ -0,0 +1,53 @@
1
+ import { setProgramId } from "@saasquatch/component-boilerplate";
2
+ import { setUserIdentity, } from "@saasquatch/component-boilerplate";
3
+ import { useEffect } from "@saasquatch/universal-hooks";
4
+ import { h } from "@stencil/core";
5
+ import { createHookStory } from "../sqm-stencilbook/HookStoryAddon";
6
+ export default {
7
+ title: "Hooks / useRewardsTable",
8
+ };
9
+ function setupGraphQL() {
10
+ const id = "testestest";
11
+ const accountId = id;
12
+ //@ts-ignore
13
+ window.widgetIdent = {
14
+ tenantAlias: "test_a8b41jotf8a1v",
15
+ appDomain: "https://staging.referralsaasquatch.com",
16
+ };
17
+ useEffect(() => {
18
+ setUserIdentity({
19
+ accountId,
20
+ id,
21
+ jwt: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs",
22
+ });
23
+ return () => {
24
+ window.widgetIdent = undefined;
25
+ setUserIdentity(undefined);
26
+ };
27
+ }, []);
28
+ return { id, accountId };
29
+ }
30
+ export const RewardsTableWithProgram = createHookStory(() => {
31
+ setupGraphQL();
32
+ setProgramId("sam-partner-test-2");
33
+ const props = {
34
+ listType: "",
35
+ render: () => { },
36
+ disconnectedCallback: () => { },
37
+ ignored: true,
38
+ };
39
+ return (h("sqm-rewards-table", null,
40
+ h("sqm-rewards-table-column", null)));
41
+ });
42
+ export const RewardsTableNoProgram = createHookStory(() => {
43
+ setupGraphQL();
44
+ setProgramId(undefined);
45
+ const props = {
46
+ listType: "",
47
+ render: () => { },
48
+ disconnectedCallback: () => { },
49
+ ignored: true,
50
+ };
51
+ return (h("sqm-rewards-table", null,
52
+ h("sqm-rewards-table-column", null)));
53
+ });