crmbonus-component-wake 2.1.22-homolog-tray → 2.1.22-ngrok

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 (361) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/app-modal.cjs.entry.js +1 -1
  3. package/dist/cjs/app-modal.cjs.entry.js.map +1 -1
  4. package/dist/cjs/build.payload.helper-409e6cc9.js +49 -0
  5. package/dist/cjs/build.payload.helper-409e6cc9.js.map +1 -0
  6. package/dist/cjs/{cart.helper-d216033e.js → cart.helper-18589347.js} +4 -2
  7. package/dist/cjs/cart.helper-18589347.js.map +1 -0
  8. package/dist/cjs/countdown-timer-v2.cjs.entry.js +1 -1
  9. package/dist/cjs/countdown-timer-v2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/{countdown-timer.cjs.entry.js → countdown-timer_2.cjs.entry.js} +19 -2
  11. package/dist/cjs/countdown-timer_2.cjs.entry.js.map +1 -0
  12. package/dist/cjs/crm-bonus-form.cjs.entry.js +2 -2
  13. package/dist/cjs/crm-bonus-form.cjs.entry.js.map +1 -1
  14. package/dist/cjs/crm-bonus-note.cjs.entry.js +64 -15
  15. package/dist/cjs/crm-bonus-note.cjs.entry.js.map +1 -1
  16. package/dist/cjs/crm-bonus-tray.cjs.entry.js +1 -1
  17. package/dist/cjs/crm-bonus-tray.cjs.entry.js.map +1 -1
  18. package/dist/cjs/crm-bonus.cjs.entry.js +30 -37
  19. package/dist/cjs/crm-bonus.cjs.entry.js.map +1 -1
  20. package/dist/cjs/{crm-giftback-form_2.cjs.entry.js → crm-giftback-form.cjs.entry.js} +43 -37
  21. package/dist/cjs/crm-giftback-form.cjs.entry.js.map +1 -0
  22. package/dist/cjs/crm-tooltip_4.cjs.entry.js +11 -11
  23. package/dist/cjs/crm-tooltip_4.cjs.entry.js.map +1 -1
  24. package/dist/cjs/crmbonus-component-wake.cjs.js +1 -1
  25. package/dist/cjs/{crmbonus.service-5537cef5.js → crmbonus.service-36e689a4.js} +17 -12
  26. package/dist/cjs/crmbonus.service-36e689a4.js.map +1 -0
  27. package/dist/cjs/giftback-finish_4.cjs.entry.js +4 -4
  28. package/dist/cjs/giftback-finish_4.cjs.entry.js.map +1 -1
  29. package/dist/cjs/i18n-defaa4f8.js.map +1 -1
  30. package/dist/cjs/index-7a7d7882.js.map +1 -1
  31. package/dist/cjs/info.config.helper-e35e6e20.js.map +1 -1
  32. package/dist/cjs/loader.cjs.js +1 -1
  33. package/dist/cjs/loading-container.cjs.entry.js +23 -0
  34. package/dist/cjs/loading-container.cjs.entry.js.map +1 -0
  35. package/dist/cjs/loading-spinner.cjs.entry.js +1 -1
  36. package/dist/cjs/loading-spinner.cjs.entry.js.map +1 -1
  37. package/dist/cjs/pedido-finalizado.cjs.entry.js +3 -3
  38. package/dist/cjs/pedido-finalizado.cjs.entry.js.map +1 -1
  39. package/dist/cjs/phone-cancel-input.cjs.entry.js +1 -1
  40. package/dist/cjs/phone-cancel-input.cjs.entry.js.map +1 -1
  41. package/dist/cjs/phone-input-mask.cjs.entry.js +1 -1
  42. package/dist/cjs/phone-input-mask.cjs.entry.js.map +1 -1
  43. package/dist/cjs/phone-input.cjs.entry.js +1 -1
  44. package/dist/cjs/phone-input.cjs.entry.js.map +1 -1
  45. package/dist/cjs/utils-5d59acb1.js.map +1 -1
  46. package/dist/collection/assets/svg/money-dollars-svgrepo-com.svg +5 -5
  47. package/dist/collection/components/_crm-bonus-form/crm-bonus-form.css +17 -17
  48. package/dist/collection/components/_crm-bonus-form/crm-bonus-form.js +2 -2
  49. package/dist/collection/components/_crm-bonus-form/crm-bonus-form.js.map +1 -1
  50. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-finish/giftback-finish.css +8 -8
  51. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-finish/giftback-finish.js +1 -1
  52. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-finish/giftback-finish.js.map +1 -1
  53. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-pin/giftback-pin.css +68 -68
  54. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-pin/giftback-pin.js +1 -1
  55. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-pin/giftback-pin.js.map +1 -1
  56. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-progress/giftback-progress.css +108 -108
  57. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-progress/giftback-progress.js +2 -2
  58. package/dist/collection/components/_crm-bonus-form/subcomponents/giftback-progress/giftback-progress.js.map +1 -1
  59. package/dist/collection/components/_crm-bonus-form/subcomponents/name-input/name-input.css +107 -107
  60. package/dist/collection/components/_crm-bonus-form/subcomponents/name-input/name-input.js +1 -1
  61. package/dist/collection/components/_crm-bonus-form/subcomponents/name-input/name-input.js.map +1 -1
  62. package/dist/collection/components/_crm-bonus-form/subcomponents/phone/phone.input.js +1 -1
  63. package/dist/collection/components/_crm-bonus-form/subcomponents/phone/phone.input.js.map +1 -1
  64. package/dist/collection/components/_crm-bonus-form/subcomponents/phone-cancel/phone.cancel.input.js +1 -1
  65. package/dist/collection/components/_crm-bonus-form/subcomponents/phone-cancel/phone.cancel.input.js.map +1 -1
  66. package/dist/collection/components/button/crm-button.css +21 -21
  67. package/dist/collection/components/button/index.js +1 -1
  68. package/dist/collection/components/button/index.js.map +1 -1
  69. package/dist/collection/components/countdown-timer/countdown-timer.js +1 -1
  70. package/dist/collection/components/countdown-timer/countdown-timer.js.map +1 -1
  71. package/dist/collection/components/countdown-timer/countdown-timer.v2.js +2 -2
  72. package/dist/collection/components/countdown-timer/countdown-timer.v2.js.map +1 -1
  73. package/dist/collection/components/crm-bonus/assets/logo.svg +17 -17
  74. package/dist/collection/components/crm-bonus/assets/svg/logo.svg +17 -17
  75. package/dist/collection/components/crm-bonus/crm-bonus.css +82 -82
  76. package/dist/collection/components/crm-bonus/crm-bonus.js +44 -5
  77. package/dist/collection/components/crm-bonus/crm-bonus.js.map +1 -1
  78. package/dist/collection/components/giftback-form/giftback-form.css +74 -74
  79. package/dist/collection/components/giftback-form/giftback-form.js +42 -20
  80. package/dist/collection/components/giftback-form/giftback-form.js.map +1 -1
  81. package/dist/collection/components/giftback-form/subcomponents/giftback-info/giftback-info.css +181 -181
  82. package/dist/collection/components/giftback-form/subcomponents/giftback-info/giftback-info.js +6 -6
  83. package/dist/collection/components/giftback-form/subcomponents/giftback-info/giftback-info.js.map +1 -1
  84. package/dist/collection/components/giftback-form/subcomponents/giftback-message/giftback-massage.js.map +1 -1
  85. package/dist/collection/components/giftback-form/subcomponents/phone-form/phone-form.js +1 -1
  86. package/dist/collection/components/giftback-form/subcomponents/phone-form/phone-form.js.map +1 -1
  87. package/dist/collection/components/giftback-form/subcomponents/pin-form/pin-form.css +83 -83
  88. package/dist/collection/components/giftback-form/subcomponents/pin-form/pin-form.js +1 -1
  89. package/dist/collection/components/giftback-form/subcomponents/pin-form/pin-form.js.map +1 -1
  90. package/dist/collection/components/loading-container/loading-container.css +46 -46
  91. package/dist/collection/components/loading-container/loading-container.js +1 -1
  92. package/dist/collection/components/loading-container/loading-container.js.map +1 -1
  93. package/dist/collection/components/loading-spinner/loading-spinner.css +16 -16
  94. package/dist/collection/components/loading-spinner/loading-spinner.js +1 -1
  95. package/dist/collection/components/loading-spinner/loading-spinner.js.map +1 -1
  96. package/dist/collection/components/modal/app-modal.css +44 -44
  97. package/dist/collection/components/modal/app-modal.js +1 -1
  98. package/dist/collection/components/modal/app-modal.js.map +1 -1
  99. package/dist/collection/components/note/crm-bonus-note.css +68 -68
  100. package/dist/collection/components/note/crm-bonus-note.js +63 -11
  101. package/dist/collection/components/note/crm-bonus-note.js.map +1 -1
  102. package/dist/collection/components/pedido/pedido.js +1 -1
  103. package/dist/collection/components/pedido/pedido.js.map +1 -1
  104. package/dist/collection/components/phone/phone-input-mask.css +40 -40
  105. package/dist/collection/components/phone/phone-input-mask.js +1 -1
  106. package/dist/collection/components/phone/phone-input-mask.js.map +1 -1
  107. package/dist/collection/components/tooltip/crm-tooltip.css +48 -48
  108. package/dist/collection/components/tooltip/tooltip.js +1 -1
  109. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  110. package/dist/collection/contants/index.js.map +1 -1
  111. package/dist/collection/contants/mocks.js.map +1 -1
  112. package/dist/collection/dto/pin.sent.js.map +1 -1
  113. package/dist/collection/dto/reserved-info.dto.js.map +1 -1
  114. package/dist/collection/dto/update.order.dto.js.map +1 -1
  115. package/dist/collection/dto/validate.pin.bonus.js +3 -0
  116. package/dist/collection/dto/validate.pin.bonus.js.map +1 -1
  117. package/dist/collection/helpers/build.payload.helper.js +15 -3
  118. package/dist/collection/helpers/build.payload.helper.js.map +1 -1
  119. package/dist/collection/helpers/cart.helper.js +2 -0
  120. package/dist/collection/helpers/cart.helper.js.map +1 -1
  121. package/dist/collection/helpers/info.config.helper.js.map +1 -1
  122. package/dist/collection/helpers/payload.interface.js.map +1 -1
  123. package/dist/collection/helpers/time.helper.js.map +1 -1
  124. package/dist/collection/i18n/i18n.js.map +1 -1
  125. package/dist/collection/index.js.map +1 -1
  126. package/dist/collection/objectvalues/cart.wake.js.map +1 -1
  127. package/dist/collection/services/crmbonus.service.js +15 -10
  128. package/dist/collection/services/crmbonus.service.js.map +1 -1
  129. package/dist/collection/tray-ecommerce/crm-bonus-tray.js +1 -1
  130. package/dist/collection/tray-ecommerce/crm-bonus-tray.js.map +1 -1
  131. package/dist/collection/utils/keys.storage.js.map +1 -1
  132. package/dist/collection/utils/utils.js.map +1 -1
  133. package/dist/components/app-modal.js +1 -1
  134. package/dist/components/app-modal.js.map +1 -1
  135. package/dist/components/countdown-timer-v2.js +1 -1
  136. package/dist/components/countdown-timer-v2.js.map +1 -1
  137. package/dist/components/countdown-timer.js +1 -1
  138. package/dist/components/crm-bonus-form.js +7 -7
  139. package/dist/components/crm-bonus-form.js.map +1 -1
  140. package/dist/components/crm-bonus-note.js +69 -18
  141. package/dist/components/crm-bonus-note.js.map +1 -1
  142. package/dist/components/crm-bonus-tray.js +1 -1
  143. package/dist/components/crm-bonus-tray.js.map +1 -1
  144. package/dist/components/crm-bonus.js +40 -46
  145. package/dist/components/crm-bonus.js.map +1 -1
  146. package/dist/components/crm-button.js +1 -1
  147. package/dist/components/crm-giftback-form.js +1 -1
  148. package/dist/components/crm-tooltip.js +1 -1
  149. package/dist/components/giftback-finish.js +1 -1
  150. package/dist/components/giftback-info.js +1 -1
  151. package/dist/components/giftback-pin.js +1 -1
  152. package/dist/components/giftback-progress.js +1 -1
  153. package/dist/components/loading-container.js +1 -1
  154. package/dist/components/loading-spinner.js +1 -1
  155. package/dist/components/name-input.js +1 -1
  156. package/dist/components/{p-63ca9208.js → p-0a33e90f.js} +5 -5
  157. package/dist/components/p-0a33e90f.js.map +1 -0
  158. package/dist/components/{p-3eba0eba.js → p-142e8246.js} +17 -12
  159. package/dist/components/p-142e8246.js.map +1 -0
  160. package/dist/components/p-1b441909.js.map +1 -1
  161. package/dist/components/p-1bc79b08.js +47 -0
  162. package/dist/components/p-1bc79b08.js.map +1 -0
  163. package/dist/components/{p-c4788672.js → p-234f35c4.js} +3 -3
  164. package/dist/components/p-234f35c4.js.map +1 -0
  165. package/dist/components/{p-cd108989.js → p-6b1f5521.js} +2 -2
  166. package/dist/components/p-6b1f5521.js.map +1 -0
  167. package/dist/components/{p-cde3c049.js → p-6d61406c.js} +52 -30
  168. package/dist/components/p-6d61406c.js.map +1 -0
  169. package/dist/components/{p-dc1871cf.js → p-6ff4aa18.js} +3 -3
  170. package/dist/components/p-6ff4aa18.js.map +1 -0
  171. package/dist/{esm/cart.helper-8be1bc35.js → components/p-7a92a786.js} +4 -2
  172. package/dist/components/p-7a92a786.js.map +1 -0
  173. package/dist/components/{p-4ac2b98e.js → p-86dfe7ca.js} +5 -5
  174. package/dist/components/p-86dfe7ca.js.map +1 -0
  175. package/dist/components/{p-e81cd527.js → p-8e6146ae.js} +3 -3
  176. package/dist/components/p-8e6146ae.js.map +1 -0
  177. package/dist/components/{p-a70a82a3.js → p-ab662b24.js} +3 -3
  178. package/dist/components/p-ab662b24.js.map +1 -0
  179. package/dist/components/p-af3ba015.js.map +1 -1
  180. package/dist/components/{p-39cc3ce4.js → p-b86c93cc.js} +3 -3
  181. package/dist/components/p-b86c93cc.js.map +1 -0
  182. package/dist/components/p-c53241bf.js.map +1 -1
  183. package/dist/components/{p-01d41bff.js → p-dc0f6d66.js} +10 -10
  184. package/dist/components/p-dc0f6d66.js.map +1 -0
  185. package/dist/components/{p-5a7b0549.js → p-e068510c.js} +2 -2
  186. package/dist/components/p-e068510c.js.map +1 -0
  187. package/dist/components/{p-e25a1b64.js → p-e31b6c28.js} +2 -2
  188. package/dist/components/p-e31b6c28.js.map +1 -0
  189. package/dist/components/{p-86b95c83.js → p-eb1f4328.js} +2 -2
  190. package/dist/components/p-eb1f4328.js.map +1 -0
  191. package/dist/components/p-ecc51430.js.map +1 -1
  192. package/dist/components/{p-3cd7a20f.js → p-f09b7364.js} +2 -2
  193. package/dist/components/{p-3cd7a20f.js.map → p-f09b7364.js.map} +1 -1
  194. package/dist/components/pedido-finalizado.js +3 -3
  195. package/dist/components/pedido-finalizado.js.map +1 -1
  196. package/dist/components/phone-cancel-input.js +3 -3
  197. package/dist/components/phone-cancel-input.js.map +1 -1
  198. package/dist/components/phone-form.js +1 -1
  199. package/dist/components/phone-input-mask.js +1 -1
  200. package/dist/components/phone-input.js +3 -3
  201. package/dist/components/phone-input.js.map +1 -1
  202. package/dist/components/pin-form.js +1 -1
  203. package/dist/crmbonus-component-wake/assets/logo.svg +17 -17
  204. package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js +1 -1
  205. package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js.map +1 -1
  206. package/dist/crmbonus-component-wake/{p-3eba0eba.js → p-142e8246.js} +2 -2
  207. package/dist/crmbonus-component-wake/p-142e8246.js.map +1 -0
  208. package/dist/crmbonus-component-wake/p-1b441909.js.map +1 -1
  209. package/dist/crmbonus-component-wake/p-1bc79b08.js +2 -0
  210. package/dist/crmbonus-component-wake/p-1bc79b08.js.map +1 -0
  211. package/dist/crmbonus-component-wake/p-2bd29eae.entry.js +2 -0
  212. package/dist/crmbonus-component-wake/p-2bd29eae.entry.js.map +1 -0
  213. package/dist/crmbonus-component-wake/{p-0a40bcba.entry.js → p-39abc114.entry.js} +2 -2
  214. package/dist/crmbonus-component-wake/p-39abc114.entry.js.map +1 -0
  215. package/dist/crmbonus-component-wake/p-427c86db.entry.js +2 -0
  216. package/dist/crmbonus-component-wake/p-427c86db.entry.js.map +1 -0
  217. package/dist/crmbonus-component-wake/p-568072fe.entry.js +2 -0
  218. package/dist/crmbonus-component-wake/p-568072fe.entry.js.map +1 -0
  219. package/dist/crmbonus-component-wake/p-6d5bd437.entry.js +2 -0
  220. package/dist/crmbonus-component-wake/p-6d5bd437.entry.js.map +1 -0
  221. package/dist/crmbonus-component-wake/p-74335744.entry.js +2 -0
  222. package/dist/crmbonus-component-wake/p-74335744.entry.js.map +1 -0
  223. package/dist/crmbonus-component-wake/p-7a92a786.js +2 -0
  224. package/dist/crmbonus-component-wake/p-7a92a786.js.map +1 -0
  225. package/dist/crmbonus-component-wake/p-7beb0b90.entry.js +2 -0
  226. package/dist/crmbonus-component-wake/p-7beb0b90.entry.js.map +1 -0
  227. package/dist/crmbonus-component-wake/p-7ee5c218.entry.js +2 -0
  228. package/dist/crmbonus-component-wake/p-7ee5c218.entry.js.map +1 -0
  229. package/dist/crmbonus-component-wake/p-85d2747a.entry.js +2 -0
  230. package/dist/crmbonus-component-wake/p-85d2747a.entry.js.map +1 -0
  231. package/dist/crmbonus-component-wake/p-8c4ae16d.entry.js +2 -0
  232. package/dist/crmbonus-component-wake/p-8c4ae16d.entry.js.map +1 -0
  233. package/dist/crmbonus-component-wake/{p-77d8e96c.entry.js → p-9a32f685.entry.js} +2 -2
  234. package/dist/crmbonus-component-wake/p-9a32f685.entry.js.map +1 -0
  235. package/dist/crmbonus-component-wake/p-a7f6ff4a.entry.js +2 -0
  236. package/dist/crmbonus-component-wake/p-a7f6ff4a.entry.js.map +1 -0
  237. package/dist/crmbonus-component-wake/p-af3ba015.js.map +1 -1
  238. package/dist/crmbonus-component-wake/{p-154b5318.entry.js → p-b5e9a5ea.entry.js} +2 -2
  239. package/dist/crmbonus-component-wake/p-b5e9a5ea.entry.js.map +1 -0
  240. package/dist/crmbonus-component-wake/{p-bcb65b4e.entry.js → p-b9baad26.entry.js} +2 -2
  241. package/dist/crmbonus-component-wake/p-b9baad26.entry.js.map +1 -0
  242. package/dist/crmbonus-component-wake/p-c53241bf.js.map +1 -1
  243. package/dist/crmbonus-component-wake/p-d2e98cc5.entry.js +2 -0
  244. package/dist/crmbonus-component-wake/p-d2e98cc5.entry.js.map +1 -0
  245. package/dist/crmbonus-component-wake/p-e5d8700b.entry.js +2 -0
  246. package/dist/crmbonus-component-wake/p-e5d8700b.entry.js.map +1 -0
  247. package/dist/crmbonus-component-wake/p-ecc51430.js.map +1 -1
  248. package/dist/env.js +1 -1
  249. package/dist/env.js.map +1 -1
  250. package/dist/esm/app-modal.entry.js +1 -1
  251. package/dist/esm/app-modal.entry.js.map +1 -1
  252. package/dist/esm/build.payload.helper-96f9c8b8.js +47 -0
  253. package/dist/esm/build.payload.helper-96f9c8b8.js.map +1 -0
  254. package/dist/{components/p-b57fbd6d.js → esm/cart.helper-107db11e.js} +4 -2
  255. package/dist/esm/cart.helper-107db11e.js.map +1 -0
  256. package/dist/esm/countdown-timer-v2.entry.js +1 -1
  257. package/dist/esm/countdown-timer-v2.entry.js.map +1 -1
  258. package/dist/esm/{countdown-timer.entry.js → countdown-timer_2.entry.js} +19 -3
  259. package/dist/esm/countdown-timer_2.entry.js.map +1 -0
  260. package/dist/esm/crm-bonus-form.entry.js +2 -2
  261. package/dist/esm/crm-bonus-form.entry.js.map +1 -1
  262. package/dist/esm/crm-bonus-note.entry.js +64 -15
  263. package/dist/esm/crm-bonus-note.entry.js.map +1 -1
  264. package/dist/esm/crm-bonus-tray.entry.js +1 -1
  265. package/dist/esm/crm-bonus-tray.entry.js.map +1 -1
  266. package/dist/esm/crm-bonus.entry.js +29 -36
  267. package/dist/esm/crm-bonus.entry.js.map +1 -1
  268. package/dist/esm/{crm-giftback-form_2.entry.js → crm-giftback-form.entry.js} +44 -37
  269. package/dist/esm/crm-giftback-form.entry.js.map +1 -0
  270. package/dist/esm/crm-tooltip_4.entry.js +11 -11
  271. package/dist/esm/crm-tooltip_4.entry.js.map +1 -1
  272. package/dist/esm/crmbonus-component-wake.js +1 -1
  273. package/dist/esm/{crmbonus.service-5bc16be9.js → crmbonus.service-652502f6.js} +17 -12
  274. package/dist/esm/crmbonus.service-652502f6.js.map +1 -0
  275. package/dist/esm/giftback-finish_4.entry.js +4 -4
  276. package/dist/esm/giftback-finish_4.entry.js.map +1 -1
  277. package/dist/esm/i18n-b9d8b0cc.js.map +1 -1
  278. package/dist/esm/index-dc3ebdf0.js.map +1 -1
  279. package/dist/esm/info.config.helper-7cad7a9c.js.map +1 -1
  280. package/dist/esm/loader.js +1 -1
  281. package/dist/esm/loading-container.entry.js +19 -0
  282. package/dist/esm/loading-container.entry.js.map +1 -0
  283. package/dist/esm/loading-spinner.entry.js +1 -1
  284. package/dist/esm/loading-spinner.entry.js.map +1 -1
  285. package/dist/esm/pedido-finalizado.entry.js +3 -3
  286. package/dist/esm/pedido-finalizado.entry.js.map +1 -1
  287. package/dist/esm/phone-cancel-input.entry.js +1 -1
  288. package/dist/esm/phone-cancel-input.entry.js.map +1 -1
  289. package/dist/esm/phone-input-mask.entry.js +1 -1
  290. package/dist/esm/phone-input-mask.entry.js.map +1 -1
  291. package/dist/esm/phone-input.entry.js +1 -1
  292. package/dist/esm/phone-input.entry.js.map +1 -1
  293. package/dist/esm/utils-dec6df66.js.map +1 -1
  294. package/dist/types/Users/Darlison/Projects/Bycoders/crmbonus/crmbonus-component/.stencil/env.d.ts +2 -0
  295. package/dist/types/components/crm-bonus/crm-bonus.d.ts +2 -0
  296. package/dist/types/components/giftback-form/giftback-form.d.ts +1 -0
  297. package/dist/types/components/note/crm-bonus-note.d.ts +8 -1
  298. package/dist/types/components.d.ts +2 -0
  299. package/dist/types/dto/reserved-info.dto.d.ts +3 -0
  300. package/dist/types/dto/validate.pin.bonus.d.ts +4 -1
  301. package/package.json +58 -58
  302. package/readme.md +114 -114
  303. package/dist/cjs/cart.helper-d216033e.js.map +0 -1
  304. package/dist/cjs/countdown-timer.cjs.entry.js.map +0 -1
  305. package/dist/cjs/crm-button.cjs.entry.js +0 -25
  306. package/dist/cjs/crm-button.cjs.entry.js.map +0 -1
  307. package/dist/cjs/crm-giftback-form_2.cjs.entry.js.map +0 -1
  308. package/dist/cjs/crmbonus.service-5537cef5.js.map +0 -1
  309. package/dist/components/p-01d41bff.js.map +0 -1
  310. package/dist/components/p-39cc3ce4.js.map +0 -1
  311. package/dist/components/p-3eba0eba.js.map +0 -1
  312. package/dist/components/p-4ac2b98e.js.map +0 -1
  313. package/dist/components/p-5a7b0549.js.map +0 -1
  314. package/dist/components/p-63ca9208.js.map +0 -1
  315. package/dist/components/p-86b95c83.js.map +0 -1
  316. package/dist/components/p-a70a82a3.js.map +0 -1
  317. package/dist/components/p-b57fbd6d.js.map +0 -1
  318. package/dist/components/p-c4788672.js.map +0 -1
  319. package/dist/components/p-cd108989.js.map +0 -1
  320. package/dist/components/p-cde3c049.js.map +0 -1
  321. package/dist/components/p-dc1871cf.js.map +0 -1
  322. package/dist/components/p-e25a1b64.js.map +0 -1
  323. package/dist/components/p-e81cd527.js.map +0 -1
  324. package/dist/crmbonus-component-wake/p-09e26da2.entry.js +0 -2
  325. package/dist/crmbonus-component-wake/p-09e26da2.entry.js.map +0 -1
  326. package/dist/crmbonus-component-wake/p-0a40bcba.entry.js.map +0 -1
  327. package/dist/crmbonus-component-wake/p-0ecdc07b.entry.js +0 -2
  328. package/dist/crmbonus-component-wake/p-0ecdc07b.entry.js.map +0 -1
  329. package/dist/crmbonus-component-wake/p-100b6036.entry.js +0 -2
  330. package/dist/crmbonus-component-wake/p-100b6036.entry.js.map +0 -1
  331. package/dist/crmbonus-component-wake/p-154b5318.entry.js.map +0 -1
  332. package/dist/crmbonus-component-wake/p-1b0969ff.entry.js +0 -2
  333. package/dist/crmbonus-component-wake/p-1b0969ff.entry.js.map +0 -1
  334. package/dist/crmbonus-component-wake/p-213bf3b6.entry.js +0 -2
  335. package/dist/crmbonus-component-wake/p-213bf3b6.entry.js.map +0 -1
  336. package/dist/crmbonus-component-wake/p-25e29b60.entry.js +0 -2
  337. package/dist/crmbonus-component-wake/p-25e29b60.entry.js.map +0 -1
  338. package/dist/crmbonus-component-wake/p-3eba0eba.js.map +0 -1
  339. package/dist/crmbonus-component-wake/p-4792c140.entry.js +0 -2
  340. package/dist/crmbonus-component-wake/p-4792c140.entry.js.map +0 -1
  341. package/dist/crmbonus-component-wake/p-53b6a7e8.entry.js +0 -2
  342. package/dist/crmbonus-component-wake/p-53b6a7e8.entry.js.map +0 -1
  343. package/dist/crmbonus-component-wake/p-5aa35e0f.entry.js +0 -2
  344. package/dist/crmbonus-component-wake/p-5aa35e0f.entry.js.map +0 -1
  345. package/dist/crmbonus-component-wake/p-77d8e96c.entry.js.map +0 -1
  346. package/dist/crmbonus-component-wake/p-b57fbd6d.js +0 -2
  347. package/dist/crmbonus-component-wake/p-b57fbd6d.js.map +0 -1
  348. package/dist/crmbonus-component-wake/p-bcb65b4e.entry.js.map +0 -1
  349. package/dist/crmbonus-component-wake/p-cc754208.entry.js +0 -2
  350. package/dist/crmbonus-component-wake/p-cc754208.entry.js.map +0 -1
  351. package/dist/crmbonus-component-wake/p-d4821de7.entry.js +0 -2
  352. package/dist/crmbonus-component-wake/p-d4821de7.entry.js.map +0 -1
  353. package/dist/crmbonus-component-wake/p-e4aae2ed.entry.js +0 -2
  354. package/dist/crmbonus-component-wake/p-e4aae2ed.entry.js.map +0 -1
  355. package/dist/esm/cart.helper-8be1bc35.js.map +0 -1
  356. package/dist/esm/countdown-timer.entry.js.map +0 -1
  357. package/dist/esm/crm-button.entry.js +0 -21
  358. package/dist/esm/crm-button.entry.js.map +0 -1
  359. package/dist/esm/crm-giftback-form_2.entry.js.map +0 -1
  360. package/dist/esm/crmbonus.service-5bc16be9.js.map +0 -1
  361. package/dist/types/home/darlison/Projects/Bycoders/crmbonus/crmbonus-component/.stencil/env.d.ts +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"names":["successSvgrepoComSvg","giftbackFinishCss","GiftbackFinishStyle0","GiftbackFinish","render","h","key","class","src","success","width","giftbackPinCss","GiftbackPinStyle0","GiftbackPin","handleInput","event","index","input","target","value","slice","this","pin","length","nextInput","nextElementSibling","focus","validatePin","validate","join","verifyPin","pinCode","isVerified","map","_","type","maxLength","onInput","disabled","loading","onClick","cancel","size","color","giftbackProgressCss","GiftbackProgressStyle0","GiftbackProgress","totalBonus","cartId","minimumPurchase","bonusBalance","calculatedValue","firstValidityDate","componentWillLoad","usedValue","parseFloat","bonus","toString","handleSliderChange","handleReserve","reserve","remainingGiftback","totalValue","toFixed","Date","toLocaleDateString","min","step","max","Number","nameInputCss","NameInputStyle0","NameInput","handleChangeName","newValue","handleSetName","name","message","applyName","onChange"],"sources":["src/components/crm-bonus/assets/svg/success-svgrepo-com.svg","src/components/_crm-bonus-form/subcomponents/giftback-finish/giftback-finish.css?tag=giftback-finish&encapsulation=shadow","src/components/_crm-bonus-form/subcomponents/giftback-finish/giftback-finish.tsx","src/components/_crm-bonus-form/subcomponents/giftback-pin/giftback-pin.css?tag=giftback-pin&encapsulation=shadow","src/components/_crm-bonus-form/subcomponents/giftback-pin/giftback-pin.tsx","src/components/_crm-bonus-form/subcomponents/giftback-progress/giftback-progress.css?tag=giftback-progress&encapsulation=shadow","src/components/_crm-bonus-form/subcomponents/giftback-progress/giftback-progress.tsx","src/components/_crm-bonus-form/subcomponents/name-input/name-input.css?tag=name-input&encapsulation=shadow","src/components/_crm-bonus-form/subcomponents/name-input/name-input.tsx"],"sourcesContent":["<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r\n<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" \r\n\t viewBox=\"0 0 50 50\" xml:space=\"preserve\">\r\n<circle style=\"fill:#25AE88;\" cx=\"25\" cy=\"25\" r=\"25\"/>\r\n<polyline style=\"fill:none;stroke:#FFFFFF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;\" points=\"\r\n\t38,15 22,33 12,25 \"/>\r\n</svg>",".message-finish {\n align-content: center;\n text-align: center;\n}\n\n.message-finish p {\n color: #777676;\n /* font-size: xx-large; */\n}","import { Component, h } from \"@stencil/core\";\nimport success from '../../../crm-bonus/assets/svg/success-svgrepo-com.svg'\n\n@Component({\n tag: 'giftback-finish',\n styleUrl: 'giftback-finish.css',\n shadow: true\n})\nexport class GiftbackFinish {\n render() {\n return (\n <div class=\"message-finish\">\n <img src={success} width={80} />\n <p>Legal! O Bônus será aplicado na sua compra.</p>\n </div>\n )\n }\n}",":host {\n display: block;\n}\n\n.form-container-pin {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.pin-container {\n display: flex;\n gap: 10px;\n margin: 26px 0;\n}\n\ninput {\n width: 58px;\n height: 40px;\n /* font-size: 18px; */\n text-align: center;\n border: 1px solid #ccc;\n border-radius: 5px;\n}\n\nbutton {\n padding: 10px 20px;\n /* background-color: #ddd; */\n border: none;\n border-radius: 5px;\n cursor: pointer;\n}\n\n.success {\n color: green;\n margin-top: 10px;\n}\n\n.button {\n top: 50%;\n background-color: #6c6c7e;\n color: #fff;\n border: none;\n border-radius: 10px;\n padding: 15px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 20px; */\n cursor: pointer;\n}\n\n.button-cancel {\n top: 50%;\n background-color: #ffffff;\n color: #1e1c1c;\n border: 1px solid gray;\n border-radius: 10px;\n padding: 10px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 19px; */\n cursor: pointer;\n}\n\n.footer-button {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}","import { Component, h, Prop, State } from '@stencil/core';\nimport { IPinSent } from '../../../../dto/pin.sent';\n\n@Component({\n tag: 'giftback-pin',\n styleUrl: 'giftback-pin.css',\n shadow: true,\n})\nexport class GiftbackPin {\n\n @Prop() sent: IPinSent;\n @Prop() validate: (pin: string) => void;\n @Prop() cancel: () => void;\n\n @State() pin: string[] = ['', '', '', ''];\n @State() isVerified: boolean = false;\n\n @Prop() loading: boolean = false;\n\n handleInput(event: Event, index: number) {\n const input = event.target as HTMLInputElement;\n const value = input.value.slice(0, 1); // Limitar a um único dígito\n this.pin[index] = value;\n\n // Focar no próximo campo, se possível\n if (value && index < this.pin.length - 1) {\n const nextInput = input.nextElementSibling as HTMLInputElement;\n nextInput?.focus();\n }\n\n this.pin = [...this.pin];\n }\n\n validatePin() {\n this.validate(this.pin.join(\"\"))\n }\n\n verifyPin() {\n const pinCode = this.pin.join('');\n if (pinCode === '9999') {\n this.isVerified = true;\n }\n }\n\n render() {\n return (\n <div class=\"form-container-pin\">\n <div >\n <p>Insira o PIN de 4 dígitos enviado por SMS.</p>\n <div class=\"pin-container\">\n {this.pin.map((_, index) => (\n <input\n type=\"text\"\n maxLength={1}\n value={this.pin[index]}\n onInput={(event) => this.handleInput(event, index)}\n />\n ))}\n </div>\n </div>\n\n <div class=\"footer-button\">\n <button class=\"button-cancel\" disabled={this.loading} onClick={() => this.cancel()}>\n Cancelar\n </button>\n <button class={`button ${this.loading ? 'disabled' : ''} `} disabled={this.loading} onClick={() => this.validatePin()}>\n {\n !this.loading ? \"Enviar\" : <loading-spinner size=\"15px\" color=\"#fff\" />\n }\n </button>\n </div>\n {/* <button onClick={() => this.verifyPin()}>Enviar</button>\n {this.isVerified && <p class=\"success\">Código verificado com sucesso!</p>} */}\n </div>\n );\n }\n}\n",":host {\n display: flex;\n /* background-color: #f8f4eb; */\n border-radius: 10px;\n padding: 16px;\n /* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); */\n max-width: 100%;\n flex-direction: column;\n}\n\n.giftback-container {\n display: flex;\n flex-direction: column;\n}\n\n.giftback-container p {\n /* font-size: medium; */\n}\n\n\nh3 {\n margin: 0 0 10px;\n /* font-size: 18px; */\n}\n\np {\n margin: 5px 0;\n /* font-size: 14px; */\n align-self: start;\n}\n\n.validity {\n /* font-size: 12px; */\n color: #888;\n}\n\n.progress-container {\n display: flex;\n align-items: center;\n margin: 10px 0;\n}\n\nprogress-container span {\n /* font-size: 12px; */\n color: #666;\n}\n\ninput[type='range'] {\n flex: 1;\n margin: 0 10px;\n appearance: none;\n background-color: #ccc;\n height: 6px;\n border-radius: 3px;\n outline: none;\n cursor: pointer;\n}\n\ninput[type='range']::-webkit-slider-thumb {\n appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background-color: #555;\n cursor: pointer;\n}\n\n.remaining {\n font-weight: bold;\n /* font-size: 14px; */\n color: #333;\n}\n\n.button {\n top: 50%;\n background-color: #6c6c7e;\n color: #fff;\n border: none;\n border-radius: 10px;\n padding: 10px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 19px; */\n cursor: pointer;\n}\n\n.button-cancel {\n top: 50%;\n background-color: #ffffff;\n color: #1e1c1c;\n border: 1px solid gray;\n border-radius: 10px;\n padding: 10px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 19px; */\n cursor: pointer;\n}\n\n.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.footer-button-giftback {\n display: flex;\n justify-content: space-between;\n margin-top: 14px;\n}","import { Component, h, State, Prop } from '@stencil/core';\nimport { IBonus } from '../../../../dto/validate.pin.bonus';\n\n@Component({\n tag: 'giftback-progress',\n styleUrl: 'giftback-progress.css',\n shadow: true,\n})\nexport class GiftbackProgress {\n @State() usedValue: number = 0;\n\n @Prop() loading: boolean = false;\n\n @Prop() bonus: Partial<IBonus> = {\n totalBonus: 0,\n cartId: \"\",\n minimumPurchase: 0,\n bonusBalance: 0,\n calculatedValue: 0,\n firstValidityDate: \"\"\n };\n\n @Prop() reserve: (amountRedeemed: number) => void;\n @Prop() cancel: () => void;\n\n componentWillLoad() {\n this.usedValue = parseFloat(this.bonus.bonusBalance.toString());\n }\n\n handleSliderChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.usedValue = parseFloat(input.value);\n }\n\n async handleReserve(value: number) {\n this.reserve(value);\n }\n\n render() {\n const remainingGiftback = this.bonus.minimumPurchase - this.bonus.totalValue;\n\n return (\n <div class=\"giftback-container\">\n <p>\n Você possui até <strong>R$ {this.bonus.totalBonus.toFixed(2)}</strong> de Giftback nessa compra!\n </p>\n <p class=\"validity\">Válido até: {new Date(this.bonus.firstValidityDate).toLocaleDateString('pt-Br')}</p>\n\n <p>Você está utilizando <strong>R$ {this.usedValue.toFixed(2)}</strong> nessa compra</p>\n\n <div class=\"progress-container\">\n <span>R$ 0</span>\n <input\n disabled\n type=\"range\"\n min=\"0\"\n step=\"0.01\"\n max={this.bonus.totalBonus}\n value={this.usedValue}\n onInput={(event) => this.handleSliderChange(event)}\n />\n <span>R$ {this.bonus.totalBonus.toFixed(2)}</span>\n </div>\n\n <p class=\"remaining\">\n Faltam <strong>R$ {remainingGiftback > 0 ? remainingGiftback.toFixed(2) : Number(0).toFixed(2)}</strong> para utilizar o valor total do Giftback.\n </p>\n\n <div class=\"footer-button-giftback\">\n\n <button class=\"button-cancel\" disabled={this.loading} onClick={() => this.cancel()} >\n Cancelar\n </button>\n\n <button class={`button ${this.loading ? 'disabled' : ''} `} disabled={this.loading} onClick={() => this.handleReserve(this.usedValue)}>\n {\n !this.loading ? \"Aplicar\" : <loading-spinner size=\"10px\" color=\"#fff\" />\n }\n </button>\n </div>\n </div>\n );\n }\n}\n",".bc-form-control {\n display: block;\n width: 90%;\n height: 24px;\n padding: 7px 18px;\n /* font-size: 14px; */\n line-height: 1.42857143;\n color: #555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 0px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n\n.bc-btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n /* font-size: 14px; */\n font-weight: 400;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 0px;\n}\n\n.bc-btn-process {\n background: #00162e;\n border-color: #00162e;\n width: 30%;\n color: #fff;\n}\n\n.bc-footer-btn {\n display: flex;\n justify-content: end;\n margin: 11px;\n}\n\n.name-container {\n font-weight: bold;\n color: #494545;\n}\n\n\nbutton {\n padding: 10px 20px;\n background-color: #ddd;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n}\n\nbutton:hover {\n background-color: #bbb;\n}\n\n.success {\n color: green;\n margin-top: 10px;\n}\n\n.button {\n top: 50%;\n background-color: #6c6c7e;\n color: #fff;\n border: none;\n border-radius: 10px;\n padding: 11px;\n min-width: 120px;\n /* font-size: 20px; */\n cursor: pointer;\n}\n\n.button-cancel {\n top: 50%;\n background-color: #ffffff;\n color: #1e1c1c;\n border: 1px solid gray;\n border-radius: 10px;\n padding: 10px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 19px; */\n cursor: pointer;\n}\n\n.footer-button {\n display: flex;\n justify-content: space-between;\n width: 97%;\n margin-top: 14px;\n}","import { Component, Prop, State, h } from \"@stencil/core\";\n\n@Component({\n tag: 'name-input',\n styleUrl: 'name-input.css',\n shadow: true\n})\nexport class NameInput {\n\n @Prop() value: string;\n\n @Prop() loading: boolean;\n @Prop() applyName: (value: string) => void;\n @Prop() cancel: () => void;\n \n @State() newValue: string;\n @State() message: string;\n\n handleChangeName(event: any) {\n this.newValue = event.target.value;\n }\n\n\n handleSetName(name: string) {\n if(!name) {\n this.message = \"Informe seu nome\";\n return\n }\n\n this.applyName(name);\n }\n\n render() {\n return (\n <div class=\"name-container\">\n <p>Seu Nome:</p>\n <input class=\"bc-form-control\" type=\"text\" value={this.value} onChange={(event) => this.handleChangeName(event)} />\n\n <p>{ this.message }</p>\n\n {/* <div class=\"bc-footer-btn\">\n <button class=\"bc-btn bc-btn-process\" onClick={() => this.applyName(this.newValue)} >Prosseguir</button>\n </div> */}\n\n <div class=\"footer-button\">\n <button class=\"button-cancel\" disabled={this.loading} onClick={() => this.cancel()}>\n Cancelar\n </button>\n <button class={`button ${this.loading ? 'disabled' : ''} `} disabled={this.loading} onClick={() => this.handleSetName(this.newValue)}>\n {\n !this.loading ? \"Continua\" : <loading-spinner size=\"15px\" color=\"#fff\" />\n }\n </button>\n </div>\n </div>\n )\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as n}from"./p-8c362346.js";const o="input,button{margin:0;padding:10px;}.crm-contaner-button{height:auto;width:auto}.crm-button{height:48px;width:100%;border:1px solid #000;padding:14px 20px;background-color:#000;color:#fff;line-height:20px;font-weight:500;cursor:pointer}";const e=o;const i=class{constructor(n){t(this,n);this.txtBtn=undefined;this.loading=undefined;this.handleClick=undefined}render(){return n("div",{key:"6fce890879cd807d0893166b22de304739e6dcd7",class:"crm-contaner-button"},n("button",{key:"843f7745bf183fb7ad88e70a60f25ac462de4e84",class:"crm-button",onClick:()=>this.handleClick()},!this.loading?this.txtBtn:n("loading-spinner",{size:"15px",color:"#fff"})))}};i.style=e;export{i as crm_button};
2
- //# sourceMappingURL=p-cc754208.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["crmButtonCss","CrmButtonStyle0","Button","render","h","key","class","onClick","this","handleClick","loading","txtBtn","size","color"],"sources":["src/components/button/crm-button.css?tag=crm-button","src/components/button/index.tsx"],"sourcesContent":["input, button {\n margin: 0;\n padding: 10px; /* Ajuste o valor conforme necessário */\n}\n\n.crm-contaner-button {\n height: auto;\n width: auto;\n}\n\n.crm-button {\n height: 48px;\n width: 100%;\n border: 1px solid #000;\n padding: 14px 20px;\n background-color: #000;\n color: #fff;\n /* font-size: 14px; */\n line-height: 20px;\n font-weight: 500;\n cursor: pointer;\n}","import { Component, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: 'crm-button',\n styleUrl: 'crm-button.css'\n})\nexport class Button {\n\n @Prop() txtBtn: string;\n @Prop() loading: boolean;\n\n @Prop() handleClick: () => void;\n\n render() {\n return (\n <div class=\"crm-contaner-button\">\n <button class=\"crm-button\" onClick={() => this.handleClick()}>\n {\n !this.loading ? this.txtBtn : <loading-spinner size=\"15px\" color=\"#fff\" />\n }\n </button>\n </div>\n )\n }\n}"],"mappings":"2CAAA,MAAMA,EAAe,+OACrB,MAAAC,EAAeD,E,MCKFE,EAAM,M,iGAOf,MAAAC,GACI,OACIC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,uBACPF,EAAA,UAAAC,IAAA,2CAAQC,MAAM,aAAaC,QAAS,IAAMC,KAAKC,gBAEtCD,KAAKE,QAAUF,KAAKG,OAASP,EAAA,mBAAiBQ,KAAK,OAAOC,MAAM,U","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-8c362346.js";import{C as i,U as o}from"./p-3eba0eba.js";import{d as e,S as n}from"./p-ecc51430.js";import{i as a}from"./p-c53241bf.js";import{g as r,a as c,C as h}from"./p-b57fbd6d.js";var d;(function(t){t["P"]="Promocao"})(d||(d={}));function l(t=[]){const s=[];for(const i of t){let t=u(i.Ajustes);s.push({sku:i.SKU,value:i.PrecoPor*i.Quantidade,productVariantId:i.ProdutoVarianteId.toString(),quantity:i.Quantidade,discount:t*-1})}return s}function u(t=[]){let s=0;for(const i of t){if(i.Tipo===d.P){s+=i.Valor}}return s}const f=".container-button{cursor:pointer;padding:5px 5px 5px 14px;}.section-crm{border:1px solid #dbd4d4;text-align:-webkit-center;margin-bottom:20px}.section-cart-crm{margin-top:10px}.section-cart-crm p{padding:0;margin:0px 0px 0px 15px}.button{top:50%;background-color:#6c6c7e;color:#fff;border:none;padding:15px;min-height:30px;min-width:120px;cursor:pointer;margin-left:10px;height:70px}.form-container{width:97%;display:flex;justify-content:space-around}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:0px}.form-container .btnCrm{background:#00162e;border-color:#00162e;width:30%;color:#fff}.message-alert{color:#df4d4d;margin-top:5px}";const m=f;const p=class{constructor(s){t(this,s);this.crmBonusService=i.getInstance();this.cart=undefined;this.showModal=false;this.cartWake=undefined;this.customer={birthDate:"",document:"",name:"",phone:""};this.loading=false;this.message=undefined;this.phone=undefined;this.canCancel=false;this.amountCancel=undefined;this.sent=undefined;this.session=undefined;this.loading_reprocess=false;this.styles=e;this.reservedInfo=undefined}async resetBonus(){console.log("[START RESET BONUS]!!!!!");try{await this.crmBonusRef.processBonus(this.buildProducts(),true);console.log("[BONUS RESETADO]!!!!!")}catch(t){this.loading=false;console.log("[error ao reprocessar bonous]");await this.crmBonusRef.setStep(n.STEP_PHONE)}finally{this.loading=false}}async setloading(){this.loading_reprocess=!this.loading_reprocess}async reprocess(){console.log("[CRMBONUS] - reprocess");this.loading_reprocess=true;try{const t=localStorage.getItem(o);if(!t)return;this.cartWake=await r();await this.resetBonus()}catch(t){console.debug("[watchProducts]",t.message)}finally{this.loading_reprocess=false}}async componentWillLoad(){window.addEventListener("productRemovedFromCart",(async()=>{console.log("[CRMBONUS] - productRemovedFromCart");await this.reprocess()}));window.addEventListener("productAddedToCart",(async()=>{console.log("[CRMBONUS] - productAddedToCart");await this.reprocess()}));document.querySelectorAll("form").forEach((t=>{t.addEventListener("submit",(()=>{console.log("[CRMBONUS] - Formulário está sendo submetido!");setTimeout((async()=>{await this.reprocess()}))}))}));a.changeLanguage(a.language);await this.handleLoad();await this.loadSession();await this.loadConfigStore()}async loadConfigStore(){const[t,s]=await Promise.all([this.crmBonusService.getCustomization(this.cartWake.store.name),c(this.cartWake.id,this.cartWake.store.name)]);console.log("[infoBonus]",s);this.reservedInfo=s;if(t.keepStoreFrontStyle){this.styles=null}}async handleLoad(){try{this.cartWake=this.cart?new h(JSON.parse(this.cart)):await r();if(this.cartWake.user.id){this.customer=await this.crmBonusService.getCustomer(this.cartWake.user.id,this.cartWake.store.name);console.log("customer",this.customer)}const t=localStorage.getItem(this.cartWake.id);if(t){this.canCancel=true;this.amountCancel=t}await this.buildAndGetProducts(this.cartWake.products)}catch(t){console.log("info customer")}}async loadSession(){this.session=await this.crmBonusService.getToken(this.cartWake.store.name);setTimeout((()=>{this.loadSession()}),15e5)}async buildAndGetProducts(t){const s=`bc-products:${this.cartWake.id}`;const i=JSON.stringify(t);localStorage.setItem(s,i);const o=JSON.parse(localStorage.getItem(s));const e=[];for(const s of t){const[t]=o.filter((t=>t.ProdutoVarianteId==s.ProdutoVarianteId));const[i={Valor:0}]=t.Ajustes.filter((t=>t.Tipo==="Formula"));if(t){e.push(Object.assign(Object.assign({},s),{PrecoPor:t.PrecoPor+i.Valor*-1,Quantidade:t.Quantidade,Ajustes:t.Ajustes}))}else{e.push(s)}}this.cartWake.products=e}async sendPin(t){var s,i;this.loading=true;this.message="";try{const s=t.replace(/\D/g,"");this.phone=Number(s);this.sent=await this.crmBonusService.sendPin(this.phone,this.customer.name,this.cartWake.store.name);await this.crmBonusRef.setStep(n.STEP_PIN);this.showModal=true}catch(t){this.message=(i=(s=t===null||t===void 0?void 0:t.response)===null||s===void 0?void 0:s.data)===null||i===void 0?void 0:i.message}finally{this.loading=false}}async sendPinName(t){var s,i;this.loading=true;this.message="";try{this.customer.name=t;this.sent=await this.crmBonusService.sendPin(this.phone,this.customer.name,this.cartWake.store.name);await this.crmBonusRef.setStep(n.STEP_PIN);this.showModal=true}catch(t){this.message=(i=(s=t===null||t===void 0?void 0:t.response)===null||s===void 0?void 0:s.data)===null||i===void 0?void 0:i.message}finally{this.loading=false}}buildProducts(){return l(this.cartWake.products)}handleCloseModal(){this.showModal=false}save(t){localStorage.setItem(this.cartWake.id,t.toString());this.canCancel=true;this.amountCancel=t.toString()}async cancel(){this.message="";this.loading=true;try{await this.crmBonusService.cancel(this.cartWake.id);this.canCancel=false;localStorage.removeItem(this.cartWake.id)}catch(t){this.message="Não consegui cancelar o bônus, tente novamente!"}finally{this.loading=false}}async handleSendPin(t){this.message="";if(!t){this.message="Informe seu telefone";return}this.customer.phone=t;const s=t.replace(/\D/g,"");this.phone=Number(s);if(this.customer.name){return this.sendPin(t)}await this.crmBonusRef.setStep(n.STEP_NAME);this.showModal=true}render(){return s("loading-container",{key:"8a8c5fe7b3e0b44b964d293fe7d645949b132d4f",loading:this.loading_reprocess},s("crm-giftback-form",{key:"80d297d2b957e49f34fadc974f57e7746cf8202c",customStyles:this.styles,style:{position:"relative"},ref:t=>this.crmBonusRef=t,storeName:this.cartWake.store.name,products:this.buildProducts(),cartId:this.cartWake.id,customer:this.customer,loadProducts:()=>this.buildProducts(),loadAll:()=>this.handleLoad(),reservedInfo:this.reservedInfo}))}static get assetsDirs(){return["assets"]}};p.style=m;export{p as crm_bonus};
2
- //# sourceMappingURL=p-d4821de7.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AjustesTipoEnum","buildProductsByWake","productsWake","products","pw","discounts","getDiscount","Ajustes","push","sku","SKU","value","PrecoPor","Quantidade","productVariantId","ProdutoVarianteId","toString","quantity","discount","ajustes","Tipo","P","Valor","crmBonusCss","CrmBonusStyle0","CrmBonus","this","crmBonusService","CrmBonusService","getInstance","birthDate","document","name","phone","defaultStyles","resetBonus","console","log","crmBonusRef","processBonus","buildProducts","err","loading","setStep","StepFormEnum","STEP_PHONE","setloading","loading_reprocess","reprocess","isUse","localStorage","getItem","USED_KEY","cartWake","getCart","debug","message","componentWillLoad","window","addEventListener","async","querySelectorAll","forEach","el","setTimeout","i18next","changeLanguage","language","handleLoad","loadSession","loadConfigStore","customization","infoBonus","Promise","all","getCustomization","store","getInfoBonusByCartIdAndStoreName","id","reservedInfo","keepStoreFrontStyle","styles","cart","CartWake","JSON","parse","user","customer","getCustomer","amount","canCancel","amountCancel","buildAndGetProducts","error","session","getToken","key","productsString","stringify","setItem","products_in_cache","product_cart","pro","filter","p","ajuste","aj","Object","assign","sendPin","_phone","replace","Number","sent","STEP_PIN","showModal","_b","_a","response","data","sendPinName","customerName","handleCloseModal","save","cancel","removeItem","handleSendPin","STEP_NAME","render","h","customStyles","style","position","ref","storeName","cartId","loadProducts","loadAll"],"sources":["src/dto/validate.pin.bonus.ts","src/helpers/build.payload.helper.ts","src/components/crm-bonus/crm-bonus.css?tag=crm-bonus&encapsulation=shadow","src/components/crm-bonus/crm-bonus.tsx"],"sourcesContent":["export interface IProduct {\n productVariantId: string;\n sku: string;\n value: number;\n quantity: number;\n discount: number;\n}\n\nexport enum AjustesTipoEnum {\n P = \"Promocao\" \n}\n\nexport interface IAjustes {\n Tipo: AjustesTipoEnum;\n Valor: number;\n}\n\nexport interface IUser {\n id: number;\n}\n\nexport interface IStore {\n name: string;\n}\n\nexport interface IProductWake {\n ProdutoVarianteId: number;\n SKU: string;\n PrecoPor: number;\n Quantidade: number;\n Ajustes: IAjustes[];\n}\n\nexport interface ICustomer {\n birthDate: string;\n document: string;\n name: string;\n phone: string;\n}\n\nexport interface IProccesPinBonusDto {\n storeName: string;\n name: string;\n checkoutId: string;\n checkoutProducts: Array<IProduct>;\n storeId: string;\n userId: string;\n cellphone: number;\n pin: string;\n\n}\n\nexport interface IBonus {\n hasBonus: boolean;\n bonusBalance: number;\n totalBonus: number;\n minimumPurchase: number;\n bonusIds: string;\n firstValidityDate: string\n history: [\n {\n validityStart: string;\n validityEnd: string;\n value: number\n },\n {\n validityStart: string;\n validityEnd: string\n value: number\n }\n ]\n storeId: number;\n userId: number;\n cartId: string\n calculatedValue: number;\n totalValue: number\n}\n\n\nexport interface IReserveDTO {\n storeName: string;\n cartId: string;\n grossValue: number;\n redeemedBonus: number;\n ticket: string;\n storeId: string;\n userId: number;\n}","import { AjustesTipoEnum, IAjustes, IProduct, IProductWake } from \"../dto/validate.pin.bonus\";\n\nexport function buildProductsByWake(productsWake: Array<IProductWake> = []): Array<IProduct> {\n\n const products: Array<IProduct> = [];\n\n for ( const pw of productsWake ) {\n let discounts = getDiscount(pw.Ajustes)\n\n products.push(\n {\n sku: pw.SKU,\n value: (pw.PrecoPor * pw.Quantidade),\n productVariantId: pw.ProdutoVarianteId.toString(),\n quantity: pw.Quantidade,\n discount: (discounts * -1)\n }\n )\n }\n\n return products;\n}\n\nfunction getDiscount(ajustes: IAjustes[] = []) {\n \n let discounts = 0;\n \n for(const discount of ajustes) {\n if(discount.Tipo === AjustesTipoEnum.P) {\n discounts += discount.Valor;\n }\n }\n\n return discounts;\n}","\n.container-button {\n /* max-width: 100%; */\n cursor: pointer;\n padding: 5px 5px 5px 14px;\n /* display: flex; */\n}\n\n/* padding: 0 15px 15px;\nborder: 1px solid #ddd;\nmargin-bottom: 20px; */\n\n.section-crm {\n border: 1px solid #dbd4d4;\n /* min-height: 50px; */\n text-align: -webkit-center;\n margin-bottom: 20px;\n}\n\n.section-cart-crm {\n margin-top: 10px;\n}\n\n.section-cart-crm p {\n padding: 0;\n margin: 0px 0px 0px 15px;\n}\n\n.button {\n top: 50%;\n background-color: #6c6c7e;\n color: #fff;\n border: none;\n /* border-radius: 10px; */\n padding: 15px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 20px; */\n cursor: pointer;\n margin-left: 10px;\n height: 70px;\n}\n\n.form-container {\n width: 97%;\n display: flex;\n justify-content: space-around;\n}\n\n\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n /* font-size: 14px; */\n font-weight: 400;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 0px;\n}\n\n.form-container .btnCrm {\n background: #00162e;\n border-color: #00162e;\n width: 30%;\n color: #fff;\n}\n\n.message-alert {\n color: #df4d4d;\n margin-top: 5px;\n}","import { Component, Method, Prop, State, h } from '@stencil/core';\nimport { IProduct, IProductWake, ICustomer } from '../../dto/validate.pin.bonus';\nimport { CrmBonusService } from '../../services/crmbonus.service';\nimport { IPinSent } from '../../components';\nimport { defaultStyles, StepFormEnum } from '../../contants';\n\nimport i18next from '../../i18n/i18n'\nimport { buildProductsByWake } from '../../helpers/build.payload.helper';\nimport { getCart, getInfoBonusByCartIdAndStoreName } from '../../helpers/cart.helper';\nimport { CartWake } from '../../objectvalues/cart.wake';\nimport { USED_KEY } from '../../utils/keys.storage';\nimport { ReservedInfoDTO } from '../../dto/reserved-info.dto';\n\n@Component({\n tag: 'crm-bonus',\n styleUrl: 'crm-bonus.css',\n assetsDirs: ['assets'],\n // scoped: true\n shadow: true\n})\nexport class CrmBonus {\n\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\n\n private crmBonusRef: HTMLCrmGiftbackFormElement;\n\n @Prop() cart;\n\n @State() showModal: boolean = false;\n\n @State() cartWake: CartWake;\n\n @State() customer: ICustomer = {\n birthDate: \"\",\n document: \"\",\n name: \"\",\n phone: \"\"\n };\n\n @State() loading: boolean = false;\n @State() message: string;\n @State() phone: number;\n @State() canCancel: boolean = false;\n @State() amountCancel: string;\n @State() sent: IPinSent;\n\n @State() session: string;\n @State() loading_reprocess = false;\n @State() styles = defaultStyles;\n @State() reservedInfo: ReservedInfoDTO;\n\n @Method()\n async resetBonus() {\n console.log('[START RESET BONUS]!!!!!');\n\n try {\n await this.crmBonusRef.processBonus(this.buildProducts(), true);\n console.log('[BONUS RESETADO]!!!!!');\n } catch (err) {\n\n this.loading = false;\n console.log('[error ao reprocessar bonous]');\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PHONE);\n } finally {\n this.loading = false;\n }\n }\n\n @Method()\n async setloading() {\n this.loading_reprocess = !this.loading_reprocess;\n }\n\n @Method()\n async reprocess() {\n console.log(\"[CRMBONUS] - reprocess\")\n this.loading_reprocess = true\n\n try {\n\n const isUse = localStorage.getItem(USED_KEY);\n\n if (!isUse) return;\n\n this.cartWake = await getCart();\n await this.resetBonus();\n } catch (err) {\n console.debug('[watchProducts]', err.message);\n } finally {\n this.loading_reprocess = false\n }\n }\n\n async componentWillLoad() {\n window.addEventListener('productRemovedFromCart', async () => {\n console.log('[CRMBONUS] - productRemovedFromCart');\n await this.reprocess()\n });\n\n window.addEventListener('productAddedToCart', async () => {\n console.log('[CRMBONUS] - productAddedToCart');\n await this.reprocess();\n });\n\n document.querySelectorAll('form').forEach((el) => {\n el.addEventListener(\"submit\", () => {\n console.log(\"[CRMBONUS] - Formulário está sendo submetido!\");\n // você pode marcar como \"em submissão\" aqui\n\n setTimeout(async () => {\n await this.reprocess();\n })\n });\n })\n\n\n i18next.changeLanguage(i18next.language);\n\n await this.handleLoad();\n\n await this.loadSession();\n await this.loadConfigStore()\n }\n\n async loadConfigStore() {\n\n const [customization, infoBonus] = await Promise.all([\n this.crmBonusService.getCustomization(this.cartWake.store.name),\n getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)\n ]);\n\n console.log('[infoBonus]', infoBonus);\n\n this.reservedInfo = infoBonus;\n\n if (customization.keepStoreFrontStyle) {\n this.styles = null;\n }\n }\n\n async handleLoad() {\n try {\n\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\n\n if (this.cartWake.user.id) {\n this.customer = await this.crmBonusService.getCustomer(this.cartWake.user.id, this.cartWake.store.name);\n console.log('customer', this.customer);\n }\n\n const amount = localStorage.getItem(this.cartWake.id);\n\n if (amount) {\n this.canCancel = true;\n this.amountCancel = amount;\n }\n\n await this.buildAndGetProducts(this.cartWake.products);\n } catch (error) {\n console.log('info customer')\n }\n }\n\n async loadSession() {\n this.session = await this.crmBonusService.getToken(this.cartWake.store.name);\n\n setTimeout(() => {\n this.loadSession()\n }, 1500000)\n\n }\n\n async buildAndGetProducts(productsWake: IProductWake[]) {\n\n const key = `bc-products:${this.cartWake.id}`;\n\n const productsString = JSON.stringify(productsWake)\n\n localStorage.setItem(key, productsString);\n\n const products_in_cache = JSON.parse(localStorage.getItem(key));\n\n const products: Array<IProductWake> = []\n\n for (const product_cart of productsWake) {\n\n const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId)\n\n const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === \"Formula\")\n\n if (pro) {\n products.push({\n ...product_cart,\n PrecoPor: pro.PrecoPor + (ajuste.Valor * -1),\n Quantidade: pro.Quantidade,\n Ajustes: pro.Ajustes\n })\n } else {\n products.push(product_cart)\n }\n\n }\n\n this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);\n\n }\n\n public async sendPin(phone: string) {\n this.loading = true;\n this.message = \"\";\n\n try {\n\n const _phone = phone.replace(/\\D/g, '');\n this.phone = Number(_phone);\n\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);;\n\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\n\n this.showModal = true;\n } catch (error) {\n this.message = error?.response?.data?.message\n } finally {\n this.loading = false\n }\n }\n\n public async sendPinName(customerName: string) {\n this.loading = true;\n this.message = \"\";\n\n try {\n this.customer.name = customerName;\n\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);\n\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\n\n this.showModal = true;\n } catch (error) {\n this.message = error?.response?.data?.message\n } finally {\n this.loading = false\n }\n }\n\n buildProducts(): IProduct[] {\n return buildProductsByWake(this.cartWake.products);\n }\n\n handleCloseModal() {\n this.showModal = false;\n }\n\n save(amount: number) {\n localStorage.setItem(this.cartWake.id, amount.toString());\n this.canCancel = true;\n this.amountCancel = amount.toString()\n }\n\n async cancel() {\n this.message = \"\";\n this.loading = true;\n try {\n await this.crmBonusService.cancel(this.cartWake.id);\n this.canCancel = false;\n\n localStorage.removeItem(this.cartWake.id);\n } catch (error) {\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\n } finally {\n this.loading = false;\n }\n }\n\n async handleSendPin(phone: string) {\n this.message = \"\"\n if (!phone) {\n this.message = \"Informe seu telefone\";\n return;\n }\n\n this.customer.phone = phone;\n const _phone = phone.replace(/\\D/g, '');\n this.phone = Number(_phone);\n\n if (this.customer.name) {\n return this.sendPin(phone)\n }\n\n await this.crmBonusRef.setStep(StepFormEnum.STEP_NAME);\n this.showModal = true;\n }\n\n render() {\n\n return (\n <loading-container loading={this.loading_reprocess} >\n <crm-giftback-form\n customStyles={this.styles}\n style={{ position: \"relative\" }}\n ref={ref => this.crmBonusRef = ref}\n storeName={this.cartWake.store.name}\n products={this.buildProducts()}\n cartId={this.cartWake.id}\n customer={this.customer}\n loadProducts={() => this.buildProducts()}\n loadAll={() => this.handleLoad()}\n reservedInfo={this.reservedInfo}\n\n />\n </loading-container>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as d,h as a}from"./p-8c362346.js";const o=".modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.5);display:none;justify-content:center;align-items:center;z-index:1000}.modal-backdrop.visible{display:flex}.modal{background:white;border-radius:8px;padding:1rem;max-width:500px;width:90%;box-shadow:0 2px 10px rgba(0, 0, 0, 0.3)}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;margin-bottom:1rem}.close-button{background:none;border:none;cursor:pointer}.modal-body{}";const s=o;const t=class{constructor(a){e(this,a);this.modalClosed=d(this,"modalClosed",7);this.isOpen=false;this.modalTitle=undefined}closeModal(){this.modalClosed.emit()}render(){return a("div",{key:"c7e578637bb1a96ccc8e305281e2608c75c9f959",class:`modal-backdrop ${this.isOpen?"visible":""}`},a("div",{key:"85c02a2e3af93968cf8a7866f6443405f2b379c3",class:"modal"},a("div",{key:"955224cdd340b8e039e0a3e08867e7614d8a1760",class:"modal-header"},a("h3",{key:"2021357a5db7ae60f54fd60dd8e20bedae438844"},this.modalTitle),a("button",{key:"e7109497945b0beb6796bb6c0defdf7c69fc224d",class:"close-button",onClick:()=>this.closeModal()},"×")),a("div",{key:"02ca0913b2edf22ae7aabfe2049ff9fc921e6759",class:"modal-body"},a("slot",{key:"d288e69b32da330c6fd7687527eaa41093e4e700"}))))}};t.style=s;export{t as app_modal};
2
- //# sourceMappingURL=p-e4aae2ed.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["appModalCss","AppModalStyle0","AppModal","closeModal","this","modalClosed","emit","render","h","key","class","isOpen","modalTitle","onClick"],"sources":["src/components/modal/app-modal.css?tag=app-modal&encapsulation=shadow","src/components/modal/app-modal.tsx"],"sourcesContent":[".modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: none;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n }\n \n .modal-backdrop.visible {\n display: flex;\n }\n \n .modal {\n background: white;\n border-radius: 8px;\n padding: 1rem;\n max-width: 500px;\n width: 90%;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n }\n \n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #ddd;\n margin-bottom: 1rem;\n }\n \n .close-button {\n background: none;\n border: none;\n /* font-size: 1.5rem; */\n cursor: pointer;\n }\n \n .modal-body {\n /* padding: 1rem 0; */\n }\n ","import { Component, Event, EventEmitter, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: 'app-modal',\n styleUrl: 'app-modal.css',\n shadow: true,\n})\nexport class AppModal {\n\n // Controle da visibilidade do modal\n @Prop({ reflect: true }) isOpen: boolean = false;\n\n // Título do modal\n @Prop() modalTitle: string;\n\n // Evento emitido ao fechar o modal\n @Event() modalClosed: EventEmitter<void>;\n\n private closeModal() {\n this.modalClosed.emit();\n }\n\n render() {\n return (\n <div class={`modal-backdrop ${this.isOpen ? 'visible' : ''}`}>\n <div class=\"modal\">\n <div class=\"modal-header\">\n <h3>{this.modalTitle}</h3>\n <button class=\"close-button\" onClick={() => this.closeModal()}>\n ×\n </button>\n </div>\n <div class=\"modal-body\">\n <slot />\n </div>\n </div>\n </div>\n )\n }\n}"],"mappings":"kDAAA,MAAMA,EAAc,+gBACpB,MAAAC,EAAeD,E,MCMFE,EAAQ,M,8EAG0B,M,0BAQnC,UAAAC,GACJC,KAAKC,YAAYC,M,CAGrB,MAAAC,GACI,OACIC,EAAA,OAAAC,IAAA,2CAAKC,MAAO,kBAAkBN,KAAKO,OAAS,UAAY,MACpDH,EAAA,OAAAC,IAAA,2CAAKC,MAAM,SACPF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,gBACPF,EAAA,MAAAC,IAAA,4CAAKL,KAAKQ,YACVJ,EAAA,UAAAC,IAAA,2CAAQC,MAAM,eAAeG,QAAS,IAAMT,KAAKD,cAAY,MAIjEK,EAAA,OAAAC,IAAA,2CAAKC,MAAM,cACPF,EAAA,QAAAC,IAAA,+C","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"file":"cart.helper-8be1bc35.js","mappings":"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","names":[],"sources":["src/objectvalues/cart.wake.ts","src/dto/reserved-info.dto.ts","src/helpers/cart.helper.ts"],"sourcesContent":["import { IProductWake, IStore, IUser } from \"../dto/validate.pin.bonus\";\n\nexport class CartWake {\n id: string;\n middlewareId: string;\n orderId: number;\n products: IProductWake[] = [];\n user: IUser;\n store: IStore;\n\n constructor(cart) {\n this.id = cart.Metadados.id || cart.Id;\n this.middlewareId = cart.Metadados?.id;\n this.orderId = cart.PedidoId;\n this.buildUserInfo(cart);\n this.buildStoreInfo(cart);\n this.products = this.buildStoreCart( cart.Produtos);\n }\n\n private buildStoreCart(newProducts = []) {\n const cache = localStorage.getItem(\"bc:cart\");\n\n if(!cache) {\n return this.saveStore(newProducts)\n \n }\n \n const cacheProducts:IProductWake[] = JSON.parse(cache);\n\n if(newProducts.length !== cacheProducts.length) {\n return this.saveStore(newProducts);\n }\n\n for (const p of newProducts) {\n const [cp] = cacheProducts.filter(cpp => cpp.ProdutoVarianteId == p.ProdutoVarianteId);\n\n if(cp) {\n cp.Quantidade != p.Quantidade;\n\n return newProducts;\n }\n }\n\n return cacheProducts;\n\n }\n\n\n private saveStore(newProducts) {\n localStorage.setItem(\"bc:cart\", JSON.stringify(newProducts));\n\n return newProducts;\n }\n\n private buildUserInfo(cart) {\n this.user = {\n id: cart.Usuario ? cart.Usuario.Id : null\n }\n }\n\n private buildStoreInfo(cart) {\n this.store = {\n name: cart.Loja?.Nome\n }\n }\n}","export class ReservedInfoDTO {\n bonusBalance: string;\n bonusIds: string;\n calculatedValue: string;\n cartId: string;\n metadata: {\n url: string,\n createdAt: number\n }\n orderId: string;\n status: number;\n totalDiscount: string;\n totalValue: string;\n isBonusProcessed?: boolean;\n\n\n public static of(payload: any) {\n const info = new ReservedInfoDTO();\n info.bonusBalance = payload.bonusBalance;\n info.bonusIds = payload.bonusIds;\n info.calculatedValue = payload.calculatedValue;\n info.cartId = payload.cartId;\n info.metadata = payload.metadata;\n info.orderId = payload.orderId;\n info.status = payload.status;\n info.totalDiscount = payload.totalDiscount;\n info.totalValue = payload.totalValue;\n info.isBonusProcessed = payload.isBonusProcessed;\n return info;\n }\n\n public isExpired(): boolean {\n const createdAt = this?.metadata?.createdAt;\n if(!createdAt) return true; \n \n const current = Date.now();\n\n const diffms = current - createdAt;\n\n const diffMinutes = diffms / (1000 * 60);\n\n console.log('diffMinutes', diffMinutes);\n\n return diffMinutes > 6;\n\n }\n\n}","import { CHECKOUT_CART_WAKE } from \"../../env\";\nimport { CartWake } from \"../objectvalues/cart.wake\";\nimport { CrmBonusService } from \"../services/crmbonus.service\";\nimport { ReservedInfoDTO } from '../dto/reserved-info.dto'\n\nconst crmBonusService: CrmBonusService = CrmBonusService.getInstance();\n\nexport const getCart = async (): Promise<CartWake> => {\n const baseUrl = buildUrlBase(); // window.location.origin; //\"https://bycoders.fbits.store\" //window.location.origin;\n \n console.log('[URL STORE]: ', baseUrl)\n\n const cart = await crmBonusService.getInfoCart(baseUrl);\n\n return new CartWake(cart);\n}\n\nexport const getInfoBonusByCartIdAndStoreName = async (cartId, storeName) => {\n const info = await crmBonusService.getInfoBonus(cartId, storeName)\n\n return ReservedInfoDTO.of(info);\n}\n\nexport const persisteMetadata = async (storeName: string, cartId: string, metadata = {}) => {\n await crmBonusService.patchInfoBonus({\n storeName,\n cartId,\n metadata\n })\n}\n\nconst buildUrlBase = () => {\n\n const url = window.location.origin; //\"https://bycoders.checkout.fbits.store\" //\n\n if(url.includes('localhost')) {\n return CHECKOUT_CART_WAKE;\n }\n\n if(url.includes('checkout')) {\n return url;\n }\n\n if(url.includes('fbits')) {\n return url;\n }\n\n if(url.includes(\"www.\")) {\n return url.replace(\"www\", \"checkout\")\n }\n\n return `${window.location.protocol}//checkout.${window.location.host}`;\n\n}"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"countdown-timer.entry.js","mappings":";;MAKa,cAAc;;;;;uBAIG,CAAC;wBACA,EAAE;;;IAM7B,iBAAiB;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAEtD,IAAI,YAAY,IAAI,UAAU,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC;YAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;IAED,oBAAoB;QAChB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,cAAc;QACV,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC1B,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;SACJ,EAAE,IAAI,CAAC,CAAC;KACZ;IAED,eAAe;QACX,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAA;KAClB;IAED,MAAM;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAElG,QACI,qEAAS,cAAc,CAAS,EAClC;KACL;;;;;","names":[],"sources":["src/components/countdown-timer/countdown-timer.tsx"],"sourcesContent":["import { Component, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'countdown-timer',\n})\nexport class CountdownTimer {\n\n @Prop() downtime: () => void;\n @Prop() dataCriacao: string;\n @Prop() minutos: number = 6;\n @Prop() segundos: number = 60;\n\n @State() tempoRestante: number; // em milissegundos\n\n private intervalId: any;\n\n componentWillLoad() {\n const tempoTotal = this.minutos * this.segundos * 1000;\n const data = new Date(this.dataCriacao);\n const agora = new Date();\n const tempoPassado = agora.getTime() - data.getTime();\n\n if (tempoPassado >= tempoTotal) {\n this.tempoRestante = 0;\n this.onTempoEsgotado();\n } else {\n this.tempoRestante = tempoTotal - tempoPassado;\n this.startCountdown();\n }\n }\n\n disconnectedCallback() {\n clearInterval(this.intervalId);\n }\n\n startCountdown() {\n this.intervalId = setInterval(() => {\n this.tempoRestante -= 1000;\n if (this.tempoRestante <= 0) {\n this.tempoRestante = 0;\n clearInterval(this.intervalId);\n this.onTempoEsgotado();\n }\n }, 1000);\n }\n\n onTempoEsgotado() {\n console.log('Tempo esgotado! Executando ação...');\n this.downtime()\n }\n\n render() {\n const minutos = Math.floor(this.tempoRestante / 60000);\n const segundos = Math.floor((this.tempoRestante % 60000) / 1000);\n const tempoFormatado = `${String(minutos).padStart(2, '0')}:${String(segundos).padStart(2, '0')}`;\n\n return (\n <label> {tempoFormatado}</label>\n );\n }\n}\n"],"version":3}
@@ -1,21 +0,0 @@
1
- import { r as registerInstance, h } from './index-bdb70d5a.js';
2
-
3
- const crmButtonCss = "input,button{margin:0;padding:10px;}.crm-contaner-button{height:auto;width:auto}.crm-button{height:48px;width:100%;border:1px solid #000;padding:14px 20px;background-color:#000;color:#fff;line-height:20px;font-weight:500;cursor:pointer}";
4
- const CrmButtonStyle0 = crmButtonCss;
5
-
6
- const Button = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.txtBtn = undefined;
10
- this.loading = undefined;
11
- this.handleClick = undefined;
12
- }
13
- render() {
14
- return (h("div", { key: '6fce890879cd807d0893166b22de304739e6dcd7', class: "crm-contaner-button" }, h("button", { key: '843f7745bf183fb7ad88e70a60f25ac462de4e84', class: "crm-button", onClick: () => this.handleClick() }, !this.loading ? this.txtBtn : h("loading-spinner", { size: "15px", color: "#fff" }))));
15
- }
16
- };
17
- Button.style = CrmButtonStyle0;
18
-
19
- export { Button as crm_button };
20
-
21
- //# sourceMappingURL=crm-button.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"crm-button.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,8OAA8O,CAAC;AACpQ,wBAAe,YAAY;;MCKd,MAAM;;;;;;;IAOf,MAAM;QACF,QACI,4DAAK,KAAK,EAAC,qBAAqB,IAC5B,+DAAQ,KAAK,EAAC,YAAY,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,IAEpD,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,uBAAiB,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAG,CAEzE,CACP,EACT;KACJ;;;;;;","names":[],"sources":["src/components/button/crm-button.css?tag=crm-button","src/components/button/index.tsx"],"sourcesContent":["input, button {\n margin: 0;\n padding: 10px; /* Ajuste o valor conforme necessário */\n}\n\n.crm-contaner-button {\n height: auto;\n width: auto;\n}\n\n.crm-button {\n height: 48px;\n width: 100%;\n border: 1px solid #000;\n padding: 14px 20px;\n background-color: #000;\n color: #fff;\n /* font-size: 14px; */\n line-height: 20px;\n font-weight: 500;\n cursor: pointer;\n}","import { Component, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: 'crm-button',\n styleUrl: 'crm-button.css'\n})\nexport class Button {\n\n @Prop() txtBtn: string;\n @Prop() loading: boolean;\n\n @Prop() handleClick: () => void;\n\n render() {\n return (\n <div class=\"crm-contaner-button\">\n <button class=\"crm-button\" onClick={() => this.handleClick()}>\n {\n !this.loading ? this.txtBtn : <loading-spinner size=\"15px\" color=\"#fff\" />\n }\n </button>\n </div>\n )\n }\n}"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"crm-giftback-form.loading-container.entry.js","mappings":"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","names":["i18next"],"sources":["src/components/giftback-form/giftback-form.css?tag=crm-giftback-form","src/components/giftback-form/giftback-form.tsx","src/components/loading-container/loading-container.css?tag=loading-container","src/components/loading-container/loading-container.tsx"],"sourcesContent":["* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:host {\n --crmfont-sizebodymd: 14px;\n --crmline-heightbodymd: 20px;\n --crmletter-spacingtitle-md: 0px\n}\n\n.container-message {\n /* font-size: var(--crmfont-sizebodymd); */\n font-weight: 400;\n line-height: var(--crmline-heightbodymd);\n letter-spacing: var(--crmletter-spacingtitle-md);\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.crm-container-form {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n height: auto;\n padding: 20px 24px 20px 24px;\n border: 1px solid #CCCC;\n writing-mode: horizontal-tb;\n gap: 16px;\n border-top: 1px solid #ccc !important;\n border-bottom: 1px solid #ccc !important;\n}\n\n/* .fbits-responsive-carrinho-desconto {\n overflow: hidden;\n border: 1px solid #ccc;\n border-top: 0;\n border-bottom: 0;\n} */\n\n.crm-phone-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n /* justify-content: space-around; */\n gap: 16px;\n}\n\n.crm-subtitle {\n /* font-size: 14px; */\n font-size: .875rem;\n line-height: 1.25rem;\n \n}\n\n.crm-title {\n font-weight: 700;\n line-height: 20px;\n color: #262626;\n /* font-size: 16px; */\n}\n\n.crm-message-info {\n color: #619013;\n font-weight: 500;\n /* font-size: 12px; */\n}\n\n.crm-message-error {\n color: #E11D48;\n font-weight: 500;\n /* font-size: 12px; */\n}","import { Component, Method, Prop, State, h } from \"@stencil/core\";\nimport { CrmBonusService } from \"../../services/crmbonus.service\";\nimport { StepFormEnum } from \"../../contants\";\nimport { IPinSent } from '../../dto/pin.sent'\nimport { IBonus, ICustomer, IProccesPinBonusDto, IProduct } from \"../../dto/validate.pin.bonus\";\nimport { IInfoStore, getInfoCustomization } from \"../../helpers/info.config.helper\";\n\nimport i18next from \"../../i18n/i18n\"\nimport { USED_KEY, getKeyReserveByCartId } from \"../../utils/keys.storage\";\nimport { persisteMetadata } from \"../../helpers/cart.helper\";\nimport { ReservedInfoDTO } from \"../../dto/reserved-info.dto\";\n\n@Component({\n tag: 'crm-giftback-form',\n styleUrl: 'giftback-form.css',\n shadow: false\n})\nexport class CrmBonus {\n // private phoneInputMask: HTMLPhoneFormElement;\n\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\n\n @Prop({ attribute: 'storename' }) storeName;\n @Prop() cartId;\n @Prop() products: Array<IProduct>;\n @Prop() customer: ICustomer;\n @Prop() loadProducts: () => void;\n @Prop() loadAll: () => void;\n\n @Prop() customStyles;\n @Prop() reservedInfo: ReservedInfoDTO;\n\n @State() value: string;\n @State() loading: boolean = false;\n @State() message: string;\n @State() phone: string;\n @State() pinInfo: IPinSent;\n @State() step: StepFormEnum = StepFormEnum.STEP_RESERVE;\n @State() bonus: IBonus;\n\n @State() sucess: string = \"\";\n @State() error: string = \"\";\n @State() config: IInfoStore;\n @State() hasApplyBonus = false;\n\n @Method()\n async setStep(step: StepFormEnum) {\n this.step = step\n }\n\n @Method()\n async processBonus(products: IProduct[] = [], hasNewProduct = false) {\n await this.loadProducts();\n this.sucess = \"\";\n\n console.log('processBonus', [])\n if (hasNewProduct) {\n this.products = products;\n }\n\n const _bonus = localStorage.getItem(getKeyReserveByCartId(this.cartId));\n\n if (_bonus) {\n\n const bonus = JSON.parse(_bonus)\n\n this.bonus = bonus;\n\n this.phone = bonus.phone;\n this.pinInfo = {\n storeId: bonus.storeId,\n userId: bonus.userId\n }\n\n \n\n await this.validateBonus(\"2018\");\n //this.step = StepFormEnum.STEP_RESERVE;\n\n }\n }\n\n async handleSendPin(phone: string) {\n await this.loadAll()\n this.message = \"\"\n if (!phone) {\n this.message = \"Informe seu telefone\";\n return;\n }\n\n this.phone = phone;\n\n this.sendPin();\n }\n\n async componentWillLoad() {\n this.sucess = \"\";\n this.error = \"\"\n this.config = getInfoCustomization(this.storeName);\n\n const phoneAgain = this.getPhoneNumberAgain();\n\n if (phoneAgain) {\n this.step = StepFormEnum.STEP_PHONE;\n return\n }\n\n await this.processBonus();\n\n }\n\n getPhoneNumberAgain() {\n const consulta_bonus = localStorage.getItem(getKeyReserveByCartId(this.cartId));\n\n if (!consulta_bonus) return true;\n\n const bonus = JSON.parse(consulta_bonus);\n\n return !bonus.hasBonus;\n }\n\n private convertStringToNumber(): number {\n const _phone = this.phone.replace(/\\D/g, '');\n return Number(_phone);\n }\n\n public async sendPin() {\n this.loading = true;\n this.message = \"\";\n this.sucess = \"\";\n this.error = \"\"\n\n try {\n\n const _phone = this.convertStringToNumber();\n const pinInfoCache = localStorage.getItem(`bc:${this.phone}`);\n\n if (!pinInfoCache) {\n this.pinInfo = await this.crmBonusService.sendPin(_phone, this.customer?.name, this.storeName);\n }\n\n if (pinInfoCache) {\n\n const bonus = JSON.parse(pinInfoCache);\n\n this.pinInfo = {\n storeId: bonus.storeId,\n userId: bonus.userId\n }\n\n await this.validateBonus(\"2018\");\n this.step = StepFormEnum.STEP_RESERVE;\n } else {\n this.step = StepFormEnum.STEP_PIN;\n }\n\n } catch (error) {\n this.message = error?.response?.data?.message\n } finally {\n this.loading = false\n }\n }\n\n changePhone() {\n this.sucess = \"\";\n this.error = \"\"\n this.step = StepFormEnum.STEP_PHONE;\n }\n\n public async validateBonus(pin: string) {\n\n await this.loadProducts();\n\n const used_or_no = localStorage.getItem(USED_KEY);\n\n if (used_or_no == \"dontUse\") {\n this.step = StepFormEnum.STEP_RESERVE;\n return\n }\n\n this.loading = true;\n this.sucess = \"\";\n this.error = \"\";\n const payload: IProccesPinBonusDto = {\n pin: pin,\n cellphone: this.convertStringToNumber(),\n storeId: this.pinInfo.storeId.toString(),\n userId: this.pinInfo.userId.toString(),\n checkoutId: this.cartId,\n checkoutProducts: this.products,\n name: this.customer?.name,\n storeName: this.storeName\n }\n\n try {\n this.bonus = await this.crmBonusService.validatePinBonus(payload);\n\n if (!this.bonus.hasBonus) {\n\n localStorage.setItem(getKeyReserveByCartId(this.cartId), JSON.stringify({ ...this.bonus, phone: this.phone }));\n\n this.loading = false;\n this.step = StepFormEnum.STEP_NO_BONUS;\n return\n }\n\n this.sucess = \"Código validado com sucesso!\";\n localStorage.setItem(getKeyReserveByCartId(this.cartId), JSON.stringify({ ...this.bonus, phone: this.phone }));\n localStorage.setItem(`bc:${this.phone}`, JSON.stringify(this.bonus));\n\n localStorage.setItem(USED_KEY, \"use\");\n localStorage.setItem(this.cartId, this.bonus.bonusBalance.toString());\n\n await this.updateMetadata();\n\n this.step = StepFormEnum.STEP_RESERVE;\n\n } catch (error) {\n const _error: string = error?.response?.data?.response;\n\n if (_error && _error.includes(\"Pin\")) {\n this.error = \"Código inválido!\"\n } else {\n this.error = _error;\n this.step = StepFormEnum.STEP_NO_BONUS;\n }\n } finally {\n this.loading = false;\n }\n }\n\n private async updateMetadata() {\n try {\n\n if(!this.reservedInfo.isBonusProcessed) return;\n\n if (this.reservedInfo.isExpired()) {\n console.log('[CRM:updateMetadata]')\n await persisteMetadata(this.storeName, this.cartId, {\n createdAt: Date.now(),\n url: window.location.href\n });\n\n localStorage.removeItem(\"bc:time\");\n }\n } catch (error) {\n console.error('[CRMBONUS:updateMetadata]: ', error);\n }\n }\n\n public handleCancel() {\n // this.step = StepFormEnum.STEP_PHONE;\n this.cancel()\n }\n\n async cancel() {\n this.message = \"\";\n this.loading = true;\n try {\n await this.crmBonusService.cancel(this.cartId);\n\n localStorage.setItem(USED_KEY, \"dontUse\");\n this.save(0)\n await this.updateMetadata();\n } catch (error) {\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\n } finally {\n this.loading = false;\n }\n }\n\n public async reserveApply(amount: number) {\n this.loading = true;\n this.message = \"\";\n try {\n await this.reserve(amount);\n this.save(amount);\n\n } catch (error) {\n this.message = \"ocorreu um error ao solicitar a aplicação do bonus! tente novamente\"\n\n this.step = StepFormEnum.STEP_NO_BONUS;\n localStorage.removeItem(this.cartId);\n } finally {\n this.loading = false;\n }\n }\n\n save(amount: number) {\n localStorage.setItem(this.cartId, amount.toString());\n }\n\n public async reserve(amount: number) {\n\n await this.crmBonusService.reserve({\n redeemedBonus: amount,\n cartId: this.cartId,\n ticket: this.cartId,\n grossValue: Number(this.bonus.totalValue),\n storeName: this.storeName,\n storeId: this.bonus.storeId.toString(),\n userId: this.bonus.userId\n });\n }\n\n render() {\n console.log(\"cartId\", this.cartId)\n return (\n <div class=\"crm-container-form fbits-responsive-carrinho-desconto\" style={this.customStyles} >\n\n {/* <loading-container /> */}\n\n <label class=\"crm-title\">{this.config.giftbackTitle}</label>\n\n {this.step === StepFormEnum.STEP_PHONE &&\n <phone-form\n value={this.customer.phone}\n config={this.config}\n loading={this.loading}\n handlerSubmit={(phone) => this.handleSendPin(phone)}\n />}\n {\n this.step === StepFormEnum.STEP_PIN &&\n <pin-form\n config={this.config}\n phone={this.phone}\n cancel={() => this.changePhone()}\n resend={() => this.sendPin()}\n validate={(data) => this.validateBonus(data)}\n loading={this.loading}\n >\n {this.sucess && <p class=\"crm-message-info\">{this.sucess}</p>}\n {this.error && <p class=\"crm-message-error\">{this.error}</p>}\n\n </pin-form>\n }\n\n {\n this.step === StepFormEnum.STEP_RESERVE &&\n <giftback-info\n storeName={this.storeName}\n infoBonus={this.reservedInfo}\n config={this.config}\n loading={this.loading}\n cancel={() => this.handleCancel()}\n bonus={this.bonus}\n reserve={() => this.processBonus()}\n cartId={this.cartId}\n />\n }\n\n {\n this.step === StepFormEnum.STEP_NO_BONUS &&\n (\n <div class=\"container-message\">\n {i18next.t(\"noGiftback\", { storename: this.config.giftbackTitle })}\n </div>\n )\n\n }\n </div>\n )\n }\n}","/* Estilo para centralizar o container do loading */\n.loading-container {\n position: absolute;\n /* Fixa o loading na tela */\n top: 0;\n left: 0;\n width: 100%;\n /* Tamanho total da tela */\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n /* Fundo semitransparente */\n display: flex;\n /* Centraliza o conteúdo */\n justify-content: center;\n align-items: center;\n z-index: 1000;\n /* Coloca o loading acima de outros elementos */\n}\n\n/* Estilo do spinner (círculo giratório) */\n.loading-spinner {\n width: 50px;\n height: 50px;\n border: 5px solid rgba(255, 255, 255, 0.3);\n /* Borda semitransparente */\n border-top: 5px solid white;\n /* Borda que será animada */\n border-radius: 50%;\n /* Faz o círculo */\n animation: spin 1s linear infinite;\n /* Gira continuamente */\n}\n\n/* Keyframes para a animação de rotação */\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.relative-xy {\n position: relative;\n}","import { Component, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: 'loading-container',\n styleUrl: 'loading-container.css'\n})\nexport class LoadingContainer {\n\n @Prop() loading: boolean = true;\n\n render() {\n return (\n <div class=\"relative-xy\">\n {\n this.loading && (\n <div class=\"loading-container\">\n <div class=\"loading-spinner\">\n\n </div>\n \n </div>\n )\n }\n <slot></slot>\n </div>\n )\n }\n}"],"version":3}