crmbonus-component-wake 2.1.23-local → 2.1.23-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 (154) hide show
  1. package/dist/cjs/{build.payload.helper-72ef7c5c.js → build.payload.helper-409e6cc9.js} +14 -2
  2. package/dist/cjs/build.payload.helper-409e6cc9.js.map +1 -0
  3. package/dist/cjs/{cart.helper-7b7f630d.js → cart.helper-df86b04b.js} +4 -2
  4. package/dist/cjs/cart.helper-df86b04b.js.map +1 -0
  5. package/dist/cjs/{countdown-timer.cjs.entry.js → countdown-timer_2.cjs.entry.js} +18 -1
  6. package/dist/cjs/countdown-timer_2.cjs.entry.js.map +1 -0
  7. package/dist/cjs/crm-bonus-form.cjs.entry.js +1 -1
  8. package/dist/cjs/crm-bonus-note.cjs.entry.js +7 -13
  9. package/dist/cjs/crm-bonus-note.cjs.entry.js.map +1 -1
  10. package/dist/cjs/crm-bonus-tray.cjs.entry.js +1 -1
  11. package/dist/cjs/crm-bonus.cjs.entry.js +24 -7
  12. package/dist/cjs/crm-bonus.cjs.entry.js.map +1 -1
  13. package/dist/cjs/crm-giftback-form.cjs.entry.js +11 -8
  14. package/dist/cjs/crm-giftback-form.cjs.entry.js.map +1 -1
  15. package/dist/cjs/crm-tooltip_4.cjs.entry.js +3 -3
  16. package/dist/cjs/crmbonus-component-wake.cjs.js +1 -1
  17. package/dist/cjs/{crmbonus.service-d4b81327.js → crmbonus.service-2df67338.js} +19 -12
  18. package/dist/cjs/crmbonus.service-2df67338.js.map +1 -0
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/pedido-finalizado.cjs.entry.js +3 -3
  21. package/dist/cjs/phone-input-mask.cjs.entry.js +1 -1
  22. package/dist/collection/components/crm-bonus/crm-bonus.js +21 -4
  23. package/dist/collection/components/crm-bonus/crm-bonus.js.map +1 -1
  24. package/dist/collection/components/giftback-form/giftback-form.js +11 -7
  25. package/dist/collection/components/giftback-form/giftback-form.js.map +1 -1
  26. package/dist/collection/components/note/crm-bonus-note.js +4 -10
  27. package/dist/collection/components/note/crm-bonus-note.js.map +1 -1
  28. package/dist/collection/components/pedido/pedido.js +1 -1
  29. package/dist/collection/components/phone/phone-input-mask.js +1 -1
  30. package/dist/collection/components/tooltip/tooltip.js +1 -1
  31. package/dist/collection/dto/validate.pin.bonus.js +2 -0
  32. package/dist/collection/dto/validate.pin.bonus.js.map +1 -1
  33. package/dist/collection/helpers/build.payload.helper.js +11 -1
  34. package/dist/collection/helpers/build.payload.helper.js.map +1 -1
  35. package/dist/collection/helpers/cart.helper.js +2 -0
  36. package/dist/collection/helpers/cart.helper.js.map +1 -1
  37. package/dist/collection/services/crmbonus.service.js +18 -11
  38. package/dist/collection/services/crmbonus.service.js.map +1 -1
  39. package/dist/collection/tray-ecommerce/crm-bonus-tray.js +1 -1
  40. package/dist/components/crm-bonus-form.js +1 -1
  41. package/dist/components/crm-bonus-note.js +8 -20
  42. package/dist/components/crm-bonus-note.js.map +1 -1
  43. package/dist/components/crm-bonus-tray.js +1 -1
  44. package/dist/components/crm-bonus.js +29 -12
  45. package/dist/components/crm-bonus.js.map +1 -1
  46. package/dist/components/crm-giftback-form.js +1 -1
  47. package/dist/components/crm-tooltip.js +1 -1
  48. package/dist/components/giftback-info.js +1 -1
  49. package/dist/components/{p-bf39a925.js → p-0a33e90f.js} +2 -2
  50. package/dist/components/{p-bf39a925.js.map → p-0a33e90f.js.map} +1 -1
  51. package/dist/{esm/build.payload.helper-09dcb309.js → components/p-1bc79b08.js} +14 -2
  52. package/dist/components/p-1bc79b08.js.map +1 -0
  53. package/dist/components/{p-983941ec.js → p-36601e2d.js} +17 -13
  54. package/dist/components/p-36601e2d.js.map +1 -0
  55. package/dist/components/{p-4734b509.js → p-417d9c1e.js} +4 -4
  56. package/dist/components/{p-4734b509.js.map → p-417d9c1e.js.map} +1 -1
  57. package/dist/components/{p-8c9686ed.js → p-ab662b24.js} +2 -2
  58. package/dist/components/{p-8c9686ed.js.map → p-ab662b24.js.map} +1 -1
  59. package/dist/components/{p-6b783d44.js → p-c2ecfee1.js} +19 -12
  60. package/dist/components/p-c2ecfee1.js.map +1 -0
  61. package/dist/components/{p-0a4cc53e.js → p-e068510c.js} +2 -2
  62. package/dist/components/{p-0a4cc53e.js.map → p-e068510c.js.map} +1 -1
  63. package/dist/components/{p-239cdde1.js → p-e68d4e85.js} +4 -2
  64. package/dist/components/p-e68d4e85.js.map +1 -0
  65. package/dist/components/pedido-finalizado.js +3 -3
  66. package/dist/components/phone-cancel-input.js +1 -1
  67. package/dist/components/phone-form.js +1 -1
  68. package/dist/components/phone-input-mask.js +1 -1
  69. package/dist/components/phone-input.js +1 -1
  70. package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js +1 -1
  71. package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js.map +1 -1
  72. package/dist/crmbonus-component-wake/p-1bc79b08.js +2 -0
  73. package/dist/crmbonus-component-wake/p-1bc79b08.js.map +1 -0
  74. package/dist/crmbonus-component-wake/p-568072fe.entry.js +2 -0
  75. package/dist/crmbonus-component-wake/p-70dc125d.entry.js +2 -0
  76. package/dist/crmbonus-component-wake/p-a3d2a4f7.entry.js +2 -0
  77. package/dist/crmbonus-component-wake/p-a3d2a4f7.entry.js.map +1 -0
  78. package/dist/crmbonus-component-wake/{p-17d31505.entry.js → p-b5e9a5ea.entry.js} +2 -2
  79. package/dist/crmbonus-component-wake/{p-33065276.entry.js → p-bfebfea7.entry.js} +2 -2
  80. package/dist/crmbonus-component-wake/{p-6b783d44.js → p-c2ecfee1.js} +2 -2
  81. package/dist/crmbonus-component-wake/p-c2ecfee1.js.map +1 -0
  82. package/dist/crmbonus-component-wake/p-cc0bc5a5.entry.js +2 -0
  83. package/dist/crmbonus-component-wake/p-cc0bc5a5.entry.js.map +1 -0
  84. package/dist/crmbonus-component-wake/p-d65808f6.entry.js +2 -0
  85. package/dist/crmbonus-component-wake/p-d7c09321.entry.js +2 -0
  86. package/dist/crmbonus-component-wake/p-d7c09321.entry.js.map +1 -0
  87. package/dist/crmbonus-component-wake/p-e5d8700b.entry.js +2 -0
  88. package/dist/crmbonus-component-wake/p-e5d8700b.entry.js.map +1 -0
  89. package/dist/crmbonus-component-wake/p-e68d4e85.js +2 -0
  90. package/dist/crmbonus-component-wake/{p-239cdde1.js.map → p-e68d4e85.js.map} +1 -1
  91. package/dist/{components/p-0bc27e39.js → esm/build.payload.helper-96f9c8b8.js} +14 -2
  92. package/dist/esm/build.payload.helper-96f9c8b8.js.map +1 -0
  93. package/dist/esm/{cart.helper-4d1bf8e2.js → cart.helper-9c847c16.js} +4 -2
  94. package/dist/esm/cart.helper-9c847c16.js.map +1 -0
  95. package/dist/esm/{countdown-timer.entry.js → countdown-timer_2.entry.js} +18 -2
  96. package/dist/esm/countdown-timer_2.entry.js.map +1 -0
  97. package/dist/esm/crm-bonus-form.entry.js +1 -1
  98. package/dist/esm/crm-bonus-note.entry.js +7 -13
  99. package/dist/esm/crm-bonus-note.entry.js.map +1 -1
  100. package/dist/esm/crm-bonus-tray.entry.js +1 -1
  101. package/dist/esm/crm-bonus.entry.js +24 -7
  102. package/dist/esm/crm-bonus.entry.js.map +1 -1
  103. package/dist/esm/crm-giftback-form.entry.js +11 -8
  104. package/dist/esm/crm-giftback-form.entry.js.map +1 -1
  105. package/dist/esm/crm-tooltip_4.entry.js +3 -3
  106. package/dist/esm/crmbonus-component-wake.js +1 -1
  107. package/dist/esm/{crmbonus.service-aafcb1ec.js → crmbonus.service-3ab820ba.js} +19 -12
  108. package/dist/esm/crmbonus.service-3ab820ba.js.map +1 -0
  109. package/dist/esm/loader.js +1 -1
  110. package/dist/esm/pedido-finalizado.entry.js +3 -3
  111. package/dist/esm/phone-input-mask.entry.js +1 -1
  112. package/dist/types/components/crm-bonus/crm-bonus.d.ts +1 -0
  113. package/dist/types/components/giftback-form/giftback-form.d.ts +1 -0
  114. package/dist/types/components/note/crm-bonus-note.d.ts +0 -1
  115. package/dist/types/dto/validate.pin.bonus.d.ts +3 -1
  116. package/package.json +1 -1
  117. package/dist/cjs/build.payload.helper-72ef7c5c.js.map +0 -1
  118. package/dist/cjs/cart.helper-7b7f630d.js.map +0 -1
  119. package/dist/cjs/countdown-timer.cjs.entry.js.map +0 -1
  120. package/dist/cjs/crm-button.cjs.entry.js +0 -25
  121. package/dist/cjs/crm-button.cjs.entry.js.map +0 -1
  122. package/dist/cjs/crmbonus.service-d4b81327.js.map +0 -1
  123. package/dist/components/p-0bc27e39.js.map +0 -1
  124. package/dist/components/p-239cdde1.js.map +0 -1
  125. package/dist/components/p-6b783d44.js.map +0 -1
  126. package/dist/components/p-983941ec.js.map +0 -1
  127. package/dist/crmbonus-component-wake/p-0bc27e39.js +0 -2
  128. package/dist/crmbonus-component-wake/p-0bc27e39.js.map +0 -1
  129. package/dist/crmbonus-component-wake/p-239cdde1.js +0 -2
  130. package/dist/crmbonus-component-wake/p-2c9c622a.entry.js +0 -2
  131. package/dist/crmbonus-component-wake/p-2c9c622a.entry.js.map +0 -1
  132. package/dist/crmbonus-component-wake/p-697779f2.entry.js +0 -2
  133. package/dist/crmbonus-component-wake/p-697779f2.entry.js.map +0 -1
  134. package/dist/crmbonus-component-wake/p-6b783d44.js.map +0 -1
  135. package/dist/crmbonus-component-wake/p-9c1704c1.entry.js +0 -2
  136. package/dist/crmbonus-component-wake/p-9d0e6eb3.entry.js +0 -2
  137. package/dist/crmbonus-component-wake/p-aa0d168f.entry.js +0 -2
  138. package/dist/crmbonus-component-wake/p-b476cb6c.entry.js +0 -2
  139. package/dist/crmbonus-component-wake/p-b476cb6c.entry.js.map +0 -1
  140. package/dist/crmbonus-component-wake/p-b6ed20eb.entry.js +0 -2
  141. package/dist/crmbonus-component-wake/p-b6ed20eb.entry.js.map +0 -1
  142. package/dist/crmbonus-component-wake/p-bbea7258.entry.js +0 -2
  143. package/dist/crmbonus-component-wake/p-bbea7258.entry.js.map +0 -1
  144. package/dist/esm/build.payload.helper-09dcb309.js.map +0 -1
  145. package/dist/esm/cart.helper-4d1bf8e2.js.map +0 -1
  146. package/dist/esm/countdown-timer.entry.js.map +0 -1
  147. package/dist/esm/crm-button.entry.js +0 -21
  148. package/dist/esm/crm-button.entry.js.map +0 -1
  149. package/dist/esm/crmbonus.service-aafcb1ec.js.map +0 -1
  150. /package/dist/crmbonus-component-wake/{p-aa0d168f.entry.js.map → p-568072fe.entry.js.map} +0 -0
  151. /package/dist/crmbonus-component-wake/{p-9d0e6eb3.entry.js.map → p-70dc125d.entry.js.map} +0 -0
  152. /package/dist/crmbonus-component-wake/{p-17d31505.entry.js.map → p-b5e9a5ea.entry.js.map} +0 -0
  153. /package/dist/crmbonus-component-wake/{p-33065276.entry.js.map → p-bfebfea7.entry.js.map} +0 -0
  154. /package/dist/crmbonus-component-wake/{p-9c1704c1.entry.js.map → p-d65808f6.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["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","loadSession","handleLoad","loadConfigStore","customization","infoBonus","Promise","all","getCustomization","store","getInfoBonusByCartIdAndStoreName","id","reservedInfo","keepStoreFrontStyle","styles","fetchCustomer","userId","storeName","getCustomer","error","user","then","customer","amount","canCancel","amountCancel","buildAndGetProducts","products","cart","CartWake","JSON","parse","session","getToken","productsWake","key","productsString","stringify","setItem","products_in_cache","product_cart","pro","filter","p","ProdutoVarianteId","ajuste","Valor","Ajustes","aj","Tipo","push","Object","assign","PrecoPor","Quantidade","sendPin","_phone","replace","Number","sent","STEP_PIN","showModal","_b","_a","response","data","sendPinName","customerName","buildProductsByWake","handleCloseModal","save","toString","cancel","removeItem","handleSendPin","STEP_NAME","render","canhidden","h","customStyles","style","position","ref","cartId","loadProducts","loadAll"],"sources":["src/components/crm-bonus/crm-bonus.css?tag=crm-bonus&encapsulation=shadow","src/components/crm-bonus/crm-bonus.tsx"],"sourcesContent":["\r\n.container-button {\r\n /* max-width: 100%; */\r\n cursor: pointer;\r\n padding: 5px 5px 5px 14px;\r\n /* display: flex; */\r\n}\r\n\r\n/* padding: 0 15px 15px;\r\nborder: 1px solid #ddd;\r\nmargin-bottom: 20px; */\r\n\r\n.section-crm {\r\n border: 1px solid #dbd4d4;\r\n /* min-height: 50px; */\r\n text-align: -webkit-center;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.section-cart-crm {\r\n margin-top: 10px;\r\n}\r\n\r\n.section-cart-crm p {\r\n padding: 0;\r\n margin: 0px 0px 0px 15px;\r\n}\r\n\r\n.button {\r\n top: 50%;\r\n background-color: #6c6c7e;\r\n color: #fff;\r\n border: none;\r\n /* border-radius: 10px; */\r\n padding: 15px;\r\n min-height: 30px;\r\n min-width: 120px;\r\n /* font-size: 20px; */\r\n cursor: pointer;\r\n margin-left: 10px;\r\n height: 70px;\r\n}\r\n\r\n.form-container {\r\n width: 97%;\r\n display: flex;\r\n justify-content: space-around;\r\n}\r\n\r\n\r\n.btn {\r\n display: inline-block;\r\n padding: 6px 12px;\r\n margin-bottom: 0;\r\n /* font-size: 14px; */\r\n font-weight: 400;\r\n line-height: 1.42857143;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n background-image: none;\r\n border: 1px solid transparent;\r\n border-radius: 0px;\r\n}\r\n\r\n.form-container .btnCrm {\r\n background: #00162e;\r\n border-color: #00162e;\r\n width: 30%;\r\n color: #fff;\r\n}\r\n\r\n.message-alert {\r\n color: #df4d4d;\r\n margin-top: 5px;\r\n}","import { Component, Method, Prop, State, h } from '@stencil/core';\r\nimport { IProduct, IProductWake, ICustomer } from '../../dto/validate.pin.bonus';\r\nimport { CrmBonusService } from '../../services/crmbonus.service';\r\nimport { IPinSent } from '../../components';\r\nimport { defaultStyles, StepFormEnum } from '../../contants';\r\n\r\nimport i18next from '../../i18n/i18n'\r\nimport { buildProductsByWake } from '../../helpers/build.payload.helper';\r\nimport { getCart, getInfoBonusByCartIdAndStoreName } from '../../helpers/cart.helper';\r\nimport { CartWake } from '../../objectvalues/cart.wake';\r\nimport { USED_KEY } from '../../utils/keys.storage';\r\nimport { ReservedInfoDTO } from '../../dto/reserved-info.dto';\r\n\r\n@Component({\r\n tag: 'crm-bonus',\r\n styleUrl: 'crm-bonus.css',\r\n assetsDirs: ['assets'],\r\n // scoped: true\r\n shadow: true\r\n})\r\nexport class CrmBonus {\r\n\r\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\n private crmBonusRef: HTMLCrmGiftbackFormElement;\r\n\r\n @Prop() cart;\r\n @Prop() canhidden: boolean = false;\r\n\r\n @State() showModal: boolean = false;\r\n\r\n @State() cartWake: CartWake;\r\n\r\n @State() customer: ICustomer = {\r\n birthDate: \"\",\r\n document: \"\",\r\n name: \"\",\r\n phone: \"\"\r\n };\r\n\r\n @State() loading: boolean = false;\r\n @State() message: string;\r\n @State() phone: number;\r\n @State() canCancel: boolean = false;\r\n @State() amountCancel: string;\r\n @State() sent: IPinSent;\r\n\r\n @State() session: string;\r\n @State() loading_reprocess = false;\r\n @State() styles = defaultStyles;\r\n @State() reservedInfo: ReservedInfoDTO;\r\n\r\n @Method()\r\n async resetBonus() {\r\n console.log('[START RESET BONUS]!!!!!');\r\n\r\n try {\r\n await this.crmBonusRef.processBonus(this.buildProducts(), true);\r\n console.log('[BONUS RESETADO]!!!!!');\r\n } catch (err) {\r\n\r\n this.loading = false;\r\n console.log('[error ao reprocessar bonous]');\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PHONE);\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n @Method()\r\n async setloading() {\r\n this.loading_reprocess = !this.loading_reprocess;\r\n }\r\n\r\n @Method()\r\n async reprocess() {\r\n console.log(\"[CRMBONUS] - reprocess\")\r\n this.loading_reprocess = true\r\n\r\n try {\r\n\r\n const isUse = localStorage.getItem(USED_KEY);\r\n\r\n if (!isUse) return;\r\n\r\n this.cartWake = await getCart();\r\n await this.resetBonus();\r\n } catch (err) {\r\n console.debug('[watchProducts]', err.message);\r\n } finally {\r\n this.loading_reprocess = false\r\n }\r\n }\r\n\r\n async componentWillLoad() {\r\n\r\n window.addEventListener('productRemovedFromCart', async () => {\r\n console.log('[CRMBONUS] - productRemovedFromCart');\r\n await this.reprocess()\r\n });\r\n\r\n window.addEventListener('productAddedToCart', async () => {\r\n console.log('[CRMBONUS] - productAddedToCart');\r\n await this.reprocess();\r\n });\r\n\r\n document.querySelectorAll('form').forEach((el) => {\r\n el.addEventListener(\"submit\", () => {\r\n console.log(\"[CRMBONUS] - Formulário está sendo submetido!\");\r\n // você pode marcar como \"em submissão\" aqui\r\n setTimeout(async () => {\r\n await this.reprocess();\r\n })\r\n });\r\n })\r\n\r\n i18next.changeLanguage(i18next.language);\r\n \r\n await this.loadSession();\r\n\r\n this.handleLoad();\r\n await this.loadConfigStore()\r\n }\r\n\r\n async loadConfigStore() {\r\n\r\n const [customization, infoBonus] = await Promise.all([\r\n this.crmBonusService.getCustomization(this.cartWake.store.name),\r\n getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)\r\n ]);\r\n\r\n console.log('[infoBonus]', infoBonus);\r\n\r\n this.reservedInfo = infoBonus;\r\n\r\n if (customization.keepStoreFrontStyle) {\r\n console.log('[bc:usar estilo da loja]');\r\n this.styles = null;\r\n }\r\n }\r\n\r\n async fetchCustomer(userId: number, storeName: string) {\r\n try {\r\n return await this.crmBonusService.getCustomer(userId, storeName);\r\n } catch (error) {\r\n console.error('[fetchCustomer] Error fetching customer:', error);\r\n return null;\r\n }\r\n }\r\n\r\n async handleLoad() {\r\n try {\r\n if (this.cartWake.user.id) {\r\n this.fetchCustomer(this.cartWake.user.id, this.cartWake.store.name).then((customer) => {\r\n console.log('[bc:loading customer]');\r\n if (customer) {\r\n this.customer = customer;\r\n console.log('customer', this.customer);\r\n }\r\n });\r\n }\r\n\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n\r\n if (amount) {\r\n this.canCancel = true;\r\n this.amountCancel = amount;\r\n }\r\n\r\n await this.buildAndGetProducts(this.cartWake.products);\r\n } catch (error) {\r\n console.log('info customer')\r\n }\r\n }\r\n\r\n async loadSession() {\r\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\r\n console.log('[bc:carregou carrinho]');\r\n\r\n this.session = await this.crmBonusService.getToken(this.cartWake.store.name);\r\n console.log('[bc:carregou session]');\r\n setTimeout(() => {\r\n this.loadSession()\r\n }, 1500000)\r\n\r\n }\r\n\r\n async buildAndGetProducts(productsWake: IProductWake[]) {\r\n\r\n const key = `bc-products:${this.cartWake.id}`;\r\n\r\n const productsString = JSON.stringify(productsWake)\r\n\r\n localStorage.setItem(key, productsString);\r\n\r\n const products_in_cache = JSON.parse(localStorage.getItem(key));\r\n\r\n const products: Array<IProductWake> = []\r\n\r\n for (const product_cart of productsWake) {\r\n\r\n const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId)\r\n\r\n const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === \"Formula\")\r\n\r\n if (pro) {\r\n products.push({\r\n ...product_cart,\r\n PrecoPor: pro.PrecoPor + (ajuste.Valor * -1),\r\n Quantidade: pro.Quantidade,\r\n Ajustes: pro.Ajustes\r\n })\r\n } else {\r\n products.push(product_cart)\r\n }\r\n\r\n }\r\n\r\n this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);\r\n\r\n }\r\n\r\n public async sendPin(phone: string) {\r\n this.loading = true;\r\n this.message = \"\";\r\n\r\n try {\r\n\r\n const _phone = phone.replace(/\\D/g, '');\r\n this.phone = Number(_phone);\r\n\r\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);;\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\r\n\r\n this.showModal = true;\r\n } catch (error) {\r\n this.message = error?.response?.data?.message\r\n } finally {\r\n this.loading = false\r\n }\r\n }\r\n\r\n public async sendPinName(customerName: string) {\r\n this.loading = true;\r\n this.message = \"\";\r\n\r\n try {\r\n this.customer.name = customerName;\r\n\r\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\r\n\r\n this.showModal = true;\r\n } catch (error) {\r\n this.message = error?.response?.data?.message\r\n } finally {\r\n this.loading = false\r\n }\r\n }\r\n\r\n buildProducts(): IProduct[] {\r\n return buildProductsByWake(this.cartWake.products);\r\n }\r\n\r\n handleCloseModal() {\r\n this.showModal = false;\r\n }\r\n\r\n save(amount: number) {\r\n localStorage.setItem(this.cartWake.id, amount.toString());\r\n this.canCancel = true;\r\n this.amountCancel = amount.toString()\r\n }\r\n\r\n async cancel() {\r\n this.message = \"\";\r\n this.loading = true;\r\n try {\r\n await this.crmBonusService.cancel(this.cartWake.id);\r\n this.canCancel = false;\r\n\r\n localStorage.removeItem(this.cartWake.id);\r\n } catch (error) {\r\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n async handleSendPin(phone: string) {\r\n this.message = \"\"\r\n if (!phone) {\r\n this.message = \"Informe seu telefone\";\r\n return;\r\n }\r\n\r\n this.customer.phone = phone;\r\n const _phone = phone.replace(/\\D/g, '');\r\n this.phone = Number(_phone);\r\n\r\n if (this.customer.name) {\r\n return this.sendPin(phone)\r\n }\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_NAME);\r\n this.showModal = true;\r\n }\r\n\r\n render() {\r\n\r\n if (this.canhidden) {\r\n return null;\r\n }\r\n\r\n return (\r\n <loading-container loading={this.loading_reprocess} >\r\n <crm-giftback-form\r\n customStyles={this.styles}\r\n style={{ position: \"relative\" }}\r\n ref={ref => this.crmBonusRef = ref}\r\n storeName={this.cartWake.store.name}\r\n products={this.buildProducts()}\r\n cartId={this.cartWake.id}\r\n customer={this.customer}\r\n loadProducts={() => this.buildProducts()}\r\n loadAll={() => this.handleLoad()}\r\n reservedInfo={this.reservedInfo}\r\n\r\n />\r\n </loading-container>\r\n )\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,h as n}from"./p-8c362346.js";const e=class{constructor(n){t(this,n);this.downtime=undefined;this.dataCriacao=undefined;this.minutos=6;this.segundos=60;this.tempoRestante=undefined}componentWillLoad(){const t=this.minutos*this.segundos*1e3;const n=new Date(this.dataCriacao);const e=new Date;const s=e.getTime()-n.getTime();if(s>=t){this.tempoRestante=0;this.onTempoEsgotado()}else{this.tempoRestante=t-s;this.startCountdown()}}disconnectedCallback(){clearInterval(this.intervalId)}startCountdown(){this.intervalId=setInterval((()=>{this.tempoRestante-=1e3;if(this.tempoRestante<=0){this.tempoRestante=0;clearInterval(this.intervalId);this.onTempoEsgotado()}}),1e3)}onTempoEsgotado(){console.log("Tempo esgotado! Executando ação...");this.downtime()}render(){const t=Math.floor(this.tempoRestante/6e4);const e=Math.floor(this.tempoRestante%6e4/1e3);const s=`${String(t).padStart(2,"0")}:${String(e).padStart(2,"0")}`;return n("label",{key:"144bcb2c2c16268ea1e8158f1b6940e3f12dedcf"}," ",s)}};const s="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 i=s;const o=class{constructor(n){t(this,n);this.txtBtn=undefined;this.loading=undefined;this.handleClick=undefined}render(){return n("div",{key:"00732759335f3dedd853446aff46a18bfb05f6f5",class:"crm-contaner-button"},n("button",{key:"9cdc1c8adfa2203fb0b4f4cb35f83bae779485a0",class:"crm-button",onClick:()=>this.handleClick()},!this.loading?this.txtBtn:n("loading-spinner",{size:"15px",color:"#fff"})))}};o.style=i;export{e as countdown_timer,o as crm_button};
2
+ //# sourceMappingURL=p-e5d8700b.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CountdownTimer","componentWillLoad","tempoTotal","this","minutos","segundos","data","Date","dataCriacao","agora","tempoPassado","getTime","tempoRestante","onTempoEsgotado","startCountdown","disconnectedCallback","clearInterval","intervalId","setInterval","console","log","downtime","render","Math","floor","tempoFormatado","String","padStart","h","key","crmButtonCss","CrmButtonStyle0","Button","class","onClick","handleClick","loading","txtBtn","size","color"],"sources":["src/components/countdown-timer/countdown-timer.tsx","src/components/button/crm-button.css?tag=crm-button","src/components/button/index.tsx"],"sourcesContent":["import { Component, Prop, State, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'countdown-timer',\r\n})\r\nexport class CountdownTimer {\r\n\r\n @Prop() downtime: () => void;\r\n @Prop() dataCriacao: string;\r\n @Prop() minutos: number = 6;\r\n @Prop() segundos: number = 60;\r\n\r\n @State() tempoRestante: number; // em milissegundos\r\n\r\n private intervalId: any;\r\n\r\n componentWillLoad() {\r\n const tempoTotal = this.minutos * this.segundos * 1000;\r\n const data = new Date(this.dataCriacao);\r\n const agora = new Date();\r\n const tempoPassado = agora.getTime() - data.getTime();\r\n\r\n if (tempoPassado >= tempoTotal) {\r\n this.tempoRestante = 0;\r\n this.onTempoEsgotado();\r\n } else {\r\n this.tempoRestante = tempoTotal - tempoPassado;\r\n this.startCountdown();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n clearInterval(this.intervalId);\r\n }\r\n\r\n startCountdown() {\r\n this.intervalId = setInterval(() => {\r\n this.tempoRestante -= 1000;\r\n if (this.tempoRestante <= 0) {\r\n this.tempoRestante = 0;\r\n clearInterval(this.intervalId);\r\n this.onTempoEsgotado();\r\n }\r\n }, 1000);\r\n }\r\n\r\n onTempoEsgotado() {\r\n console.log('Tempo esgotado! Executando ação...');\r\n this.downtime()\r\n }\r\n\r\n render() {\r\n const minutos = Math.floor(this.tempoRestante / 60000);\r\n const segundos = Math.floor((this.tempoRestante % 60000) / 1000);\r\n const tempoFormatado = `${String(minutos).padStart(2, '0')}:${String(segundos).padStart(2, '0')}`;\r\n\r\n return (\r\n <label> {tempoFormatado}</label>\r\n );\r\n }\r\n}\r\n","input, button {\r\n margin: 0;\r\n padding: 10px; /* Ajuste o valor conforme necessário */\r\n}\r\n\r\n.crm-contaner-button {\r\n height: auto;\r\n width: auto;\r\n}\r\n\r\n.crm-button {\r\n height: 48px;\r\n width: 100%;\r\n border: 1px solid #000;\r\n padding: 14px 20px;\r\n background-color: #000;\r\n color: #fff;\r\n /* font-size: 14px; */\r\n line-height: 20px;\r\n font-weight: 500;\r\n cursor: pointer;\r\n}","import { Component, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: 'crm-button',\r\n styleUrl: 'crm-button.css'\r\n})\r\nexport class Button {\r\n\r\n @Prop() txtBtn: string;\r\n @Prop() loading: boolean;\r\n\r\n @Prop() handleClick: () => void;\r\n\r\n render() {\r\n return (\r\n <div class=\"crm-contaner-button\">\r\n <button class=\"crm-button\" onClick={() => this.handleClick()}>\r\n {\r\n !this.loading ? this.txtBtn : <loading-spinner size=\"15px\" color=\"#fff\" />\r\n }\r\n </button>\r\n </div>\r\n )\r\n }\r\n}"],"mappings":"iDAKaA,EAAc,M,yFAIG,E,cACC,G,6BAM3B,iBAAAC,GACI,MAAMC,EAAaC,KAAKC,QAAUD,KAAKE,SAAW,IAClD,MAAMC,EAAO,IAAIC,KAAKJ,KAAKK,aAC3B,MAAMC,EAAQ,IAAIF,KAClB,MAAMG,EAAeD,EAAME,UAAYL,EAAKK,UAE5C,GAAID,GAAgBR,EAAY,CAC5BC,KAAKS,cAAgB,EACrBT,KAAKU,iB,KACF,CACHV,KAAKS,cAAgBV,EAAaQ,EAClCP,KAAKW,gB,EAIb,oBAAAC,GACIC,cAAcb,KAAKc,W,CAGvB,cAAAH,GACIX,KAAKc,WAAaC,aAAY,KAC1Bf,KAAKS,eAAiB,IACtB,GAAIT,KAAKS,eAAiB,EAAG,CACzBT,KAAKS,cAAgB,EACrBI,cAAcb,KAAKc,YACnBd,KAAKU,iB,IAEV,I,CAGP,eAAAA,GACIM,QAAQC,IAAI,sCACZjB,KAAKkB,U,CAGT,MAAAC,GACI,MAAMlB,EAAUmB,KAAKC,MAAMrB,KAAKS,cAAgB,KAChD,MAAMP,EAAWkB,KAAKC,MAAOrB,KAAKS,cAAgB,IAAS,KAC3D,MAAMa,EAAiB,GAAGC,OAAOtB,GAASuB,SAAS,EAAG,QAAQD,OAAOrB,GAAUsB,SAAS,EAAG,OAE3F,OACIC,EAAA,SAAAC,IAAA,gDAASJ,E,GCzDrB,MAAMK,EAAe,+OACrB,MAAAC,EAAeD,E,MCKFE,EAAM,M,iGAOf,MAAAV,GACI,OACIM,EAAA,OAAAC,IAAA,2CAAKI,MAAM,uBACPL,EAAA,UAAAC,IAAA,2CAAQI,MAAM,aAAaC,QAAS,IAAM/B,KAAKgC,gBAEtChC,KAAKiC,QAAUjC,KAAKkC,OAAST,EAAA,mBAAiBU,KAAK,OAAOC,MAAM,U","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{C as t,a as o}from"./p-c2ecfee1.js";class s{constructor(t){var o;this.products=[];this.id=t.Metadados.id||t.Id;this.middlewareId=(o=t.Metadados)===null||o===void 0?void 0:o.id;this.orderId=t.PedidoId;this.buildUserInfo(t);this.buildStoreInfo(t);this.products=this.buildStoreCart(t.Produtos)}buildStoreCart(t=[]){const o=localStorage.getItem("bc:cart");if(!o){return this.saveStore(t)}const s=JSON.parse(o);if(t.length!==s.length){return this.saveStore(t)}for(const o of t){const[n]=s.filter((t=>t.ProdutoVarianteId==o.ProdutoVarianteId));if(n){return t}}return s}saveStore(t){localStorage.setItem("bc:cart",JSON.stringify(t));return t}buildUserInfo(t){this.user={id:t.Usuario?t.Usuario.Id:null}}buildStoreInfo(t){var o;this.store={name:(o=t.Loja)===null||o===void 0?void 0:o.Nome}}}class n{static of(t){const o=new n;o.bonusBalance=t.bonusBalance;o.bonusIds=t.bonusIds;o.calculatedValue=t.calculatedValue;o.cartId=t.cartId;o.metadata=t.metadata;o.orderId=t.orderId;o.status=t.status;o.totalDiscount=t.totalDiscount;o.totalValue=t.totalValue;o.isBonusProcessed=t.isBonusProcessed;return o}isExpired(){var t;const o=(t=this===null||this===void 0?void 0:this.metadata)===null||t===void 0?void 0:t.createdAt;if(!o)return true;const s=Date.now();const n=s-o;const r=n/(1e3*60);console.log("diffMinutes",r);return r>6}}const r=t.getInstance();const c=async()=>{const t=e();console.log("[URL STORE]: ",t);const o=await r.getInfoCart(t);return new s(o)};const i=async(t,o)=>{const s=await r.getInfoBonus(t,o);return n.of(s)};const a=async(t,o,s={})=>{console.log("[bc:salvando metadados]");await r.patchInfoBonus({storeName:t,cartId:o,metadata:s});console.log("[bc:salvo metadados]")};const e=()=>{const t=window.location.origin;if(t.includes("localhost")){return o}if(t.includes("checkout")){return t}if(t.includes("fbits")){return t}if(t.includes("www.")){return t.replace("www","checkout")}return`${window.location.protocol}//checkout.${window.location.host}`};export{s as C,i as a,c as g,a as p};
2
+ //# sourceMappingURL=p-e68d4e85.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CartWake","constructor","cart","this","products","id","Metadados","Id","middlewareId","_a","orderId","PedidoId","buildUserInfo","buildStoreInfo","buildStoreCart","Produtos","newProducts","cache","localStorage","getItem","saveStore","cacheProducts","JSON","parse","length","p","cp","filter","cpp","ProdutoVarianteId","setItem","stringify","user","Usuario","store","name","Loja","Nome","ReservedInfoDTO","of","payload","info","bonusBalance","bonusIds","calculatedValue","cartId","metadata","status","totalDiscount","totalValue","isBonusProcessed","isExpired","createdAt","current","Date","now","diffms","diffMinutes","console","log","crmBonusService","CrmBonusService","getInstance","getCart","async","baseUrl","buildUrlBase","getInfoCart","getInfoBonusByCartIdAndStoreName","storeName","getInfoBonus","persisteMetadata","patchInfoBonus","url","window","location","origin","includes","CHECKOUT_CART_WAKE","replace","protocol","host"],"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\";\r\n\r\nexport class CartWake {\r\n id: string;\r\n middlewareId: string;\r\n orderId: number;\r\n products: IProductWake[] = [];\r\n user: IUser;\r\n store: IStore;\r\n\r\n constructor(cart) {\r\n this.id = cart.Metadados.id || cart.Id;\r\n this.middlewareId = cart.Metadados?.id;\r\n this.orderId = cart.PedidoId;\r\n this.buildUserInfo(cart);\r\n this.buildStoreInfo(cart);\r\n this.products = this.buildStoreCart( cart.Produtos);\r\n }\r\n\r\n private buildStoreCart(newProducts = []) {\r\n const cache = localStorage.getItem(\"bc:cart\");\r\n\r\n if(!cache) {\r\n return this.saveStore(newProducts)\r\n \r\n }\r\n \r\n const cacheProducts:IProductWake[] = JSON.parse(cache);\r\n\r\n if(newProducts.length !== cacheProducts.length) {\r\n return this.saveStore(newProducts);\r\n }\r\n\r\n for (const p of newProducts) {\r\n const [cp] = cacheProducts.filter(cpp => cpp.ProdutoVarianteId == p.ProdutoVarianteId);\r\n\r\n if(cp) {\r\n cp.Quantidade != p.Quantidade;\r\n\r\n return newProducts;\r\n }\r\n }\r\n\r\n return cacheProducts;\r\n\r\n }\r\n\r\n\r\n private saveStore(newProducts) {\r\n localStorage.setItem(\"bc:cart\", JSON.stringify(newProducts));\r\n\r\n return newProducts;\r\n }\r\n\r\n private buildUserInfo(cart) {\r\n this.user = {\r\n id: cart.Usuario ? cart.Usuario.Id : null\r\n }\r\n }\r\n\r\n private buildStoreInfo(cart) {\r\n this.store = {\r\n name: cart.Loja?.Nome\r\n }\r\n }\r\n}","export class ReservedInfoDTO {\r\n bonusBalance: string;\r\n bonusIds: string;\r\n calculatedValue: string;\r\n cartId: string;\r\n metadata: {\r\n url: string,\r\n createdAt: number;\r\n storeId?: string;\r\n userId?: string;\r\n cellphone?: number;\r\n }\r\n orderId: string;\r\n status: number;\r\n totalDiscount: string;\r\n totalValue: string;\r\n isBonusProcessed?: boolean;\r\n\r\n\r\n public static of(payload: any) {\r\n const info = new ReservedInfoDTO();\r\n info.bonusBalance = payload.bonusBalance;\r\n info.bonusIds = payload.bonusIds;\r\n info.calculatedValue = payload.calculatedValue;\r\n info.cartId = payload.cartId;\r\n info.metadata = payload.metadata;\r\n info.orderId = payload.orderId;\r\n info.status = payload.status;\r\n info.totalDiscount = payload.totalDiscount;\r\n info.totalValue = payload.totalValue;\r\n info.isBonusProcessed = payload.isBonusProcessed;\r\n return info;\r\n }\r\n\r\n public isExpired(): boolean {\r\n const createdAt = this?.metadata?.createdAt;\r\n if(!createdAt) return true; \r\n \r\n const current = Date.now();\r\n\r\n const diffms = current - createdAt;\r\n\r\n const diffMinutes = diffms / (1000 * 60);\r\n\r\n console.log('diffMinutes', diffMinutes);\r\n\r\n return diffMinutes > 6;\r\n\r\n }\r\n\r\n}","import { CHECKOUT_CART_WAKE } from \"../../env\";\r\nimport { CartWake } from \"../objectvalues/cart.wake\";\r\nimport { CrmBonusService } from \"../services/crmbonus.service\";\r\nimport { ReservedInfoDTO } from '../dto/reserved-info.dto'\r\n\r\nconst crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\nexport const getCart = async (): Promise<CartWake> => {\r\n const baseUrl = buildUrlBase(); // window.location.origin; //\"https://bycoders.fbits.store\" //window.location.origin;\r\n \r\n console.log('[URL STORE]: ', baseUrl)\r\n\r\n const cart = await crmBonusService.getInfoCart(baseUrl);\r\n\r\n return new CartWake(cart);\r\n}\r\n\r\nexport const getInfoBonusByCartIdAndStoreName = async (cartId, storeName) => {\r\n const info = await crmBonusService.getInfoBonus(cartId, storeName)\r\n\r\n return ReservedInfoDTO.of(info);\r\n}\r\n\r\nexport const persisteMetadata = async (storeName: string, cartId: string, metadata = {}) => {\r\n await crmBonusService.patchInfoBonus({\r\n storeName,\r\n cartId,\r\n metadata\r\n })\r\n}\r\n\r\nconst buildUrlBase = () => {\r\n\r\n const url = window.location.origin; //\"https://bycoders.checkout.fbits.store\" //\r\n\r\n if(url.includes('localhost')) {\r\n return CHECKOUT_CART_WAKE;\r\n }\r\n\r\n if(url.includes('checkout')) {\r\n return url;\r\n }\r\n\r\n if(url.includes('fbits')) {\r\n return url;\r\n }\r\n\r\n if(url.includes(\"www.\")) {\r\n return url.replace(\"www\", \"checkout\")\r\n }\r\n\r\n return `${window.location.protocol}//checkout.${window.location.host}`;\r\n\r\n}"],"mappings":"iDAEaA,EAQT,WAAAC,CAAYC,G,MAJZC,KAAAC,SAA2B,GAKvBD,KAAKE,GAAKH,EAAKI,UAAUD,IAAMH,EAAKK,GACpCJ,KAAKK,cAAeC,EAAAP,EAAKI,aAAS,MAAAG,SAAA,SAAAA,EAAEJ,GACpCF,KAAKO,QAAUR,EAAKS,SACpBR,KAAKS,cAAcV,GACnBC,KAAKU,eAAeX,GACpBC,KAAKC,SAAWD,KAAKW,eAAgBZ,EAAKa,S,CAGtC,cAAAD,CAAeE,EAAc,IACjC,MAAMC,EAAQC,aAAaC,QAAQ,WAEnC,IAAIF,EAAO,CACP,OAAOd,KAAKiB,UAAUJ,E,CAI1B,MAAMK,EAA+BC,KAAKC,MAAMN,GAEhD,GAAGD,EAAYQ,SAAWH,EAAcG,OAAQ,CAC5C,OAAOrB,KAAKiB,UAAUJ,E,CAG1B,IAAK,MAAMS,KAAKT,EAAa,CACzB,MAAOU,GAAML,EAAcM,QAAOC,GAAOA,EAAIC,mBAAqBJ,EAAEI,oBAEpE,GAAGH,EAAI,CAGH,OAAOV,C,EAIf,OAAOK,C,CAKH,SAAAD,CAAUJ,GACdE,aAAaY,QAAQ,UAAWR,KAAKS,UAAUf,IAE/C,OAAOA,C,CAGH,aAAAJ,CAAcV,GAClBC,KAAK6B,KAAO,CACR3B,GAAIH,EAAK+B,QAAU/B,EAAK+B,QAAQ1B,GAAK,K,CAIrC,cAAAM,CAAeX,G,MACnBC,KAAK+B,MAAQ,CACTC,MAAM1B,EAAAP,EAAKkC,QAAI,MAAA3B,SAAA,SAAAA,EAAE4B,K,QC9DhBC,EAmBF,SAAOC,CAAGC,GACb,MAAMC,EAAO,IAAIH,EACjBG,EAAKC,aAAeF,EAAQE,aAC5BD,EAAKE,SAAWH,EAAQG,SACxBF,EAAKG,gBAAkBJ,EAAQI,gBAC/BH,EAAKI,OAASL,EAAQK,OACtBJ,EAAKK,SAAWN,EAAQM,SACxBL,EAAK/B,QAAU8B,EAAQ9B,QACvB+B,EAAKM,OAASP,EAAQO,OACtBN,EAAKO,cAAgBR,EAAQQ,cAC7BP,EAAKQ,WAAaT,EAAQS,WAC1BR,EAAKS,iBAAmBV,EAAQU,iBAChC,OAAOT,C,CAGJ,SAAAU,G,MACH,MAAMC,GAAY3C,EAAAN,OAAI,MAAJA,YAAI,SAAJA,KAAM2C,YAAQ,MAAArC,SAAA,SAAAA,EAAE2C,UAClC,IAAIA,EAAW,OAAO,KAEtB,MAAMC,EAAUC,KAAKC,MAErB,MAAMC,EAASH,EAAUD,EAEzB,MAAMK,EAAcD,GAAU,IAAO,IAErCE,QAAQC,IAAI,cAAeF,GAE3B,OAAOA,EAAc,C,ECzC7B,MAAMG,EAAmCC,EAAgBC,c,MAE5CC,EAAUC,UACnB,MAAMC,EAAUC,IAEhBR,QAAQC,IAAI,gBAAiBM,GAE7B,MAAM/D,QAAa0D,EAAgBO,YAAYF,GAE/C,OAAO,IAAIjE,EAASE,EAAK,E,MAGhBkE,EAAmCJ,MAAOnB,EAAQwB,KAC3D,MAAM5B,QAAamB,EAAgBU,aAAazB,EAAQwB,GAExD,OAAO/B,EAAgBC,GAAGE,EAAK,E,MAGtB8B,EAAmBP,MAAOK,EAAmBxB,EAAgBC,EAAW,YAC3Ec,EAAgBY,eAAe,CACjCH,YACAxB,SACAC,YACF,EAGN,MAAMoB,EAAe,KAEjB,MAAMO,EAAOC,OAAOC,SAASC,OAE7B,GAAGH,EAAII,SAAS,aAAc,CAC1B,OAAOC,C,CAGX,GAAGL,EAAII,SAAS,YAAa,CACzB,OAAOJ,C,CAGX,GAAGA,EAAII,SAAS,SAAU,CACtB,OAAOJ,C,CAGX,GAAGA,EAAII,SAAS,QAAS,CACrB,OAAOJ,EAAIM,QAAQ,MAAO,W,CAG9B,MAAO,GAAGL,OAAOC,SAASK,sBAAsBN,OAAOC,SAASM,MAAM,S","ignoreList":[]}
1
+ {"version":3,"names":["CartWake","constructor","cart","this","products","id","Metadados","Id","middlewareId","_a","orderId","PedidoId","buildUserInfo","buildStoreInfo","buildStoreCart","Produtos","newProducts","cache","localStorage","getItem","saveStore","cacheProducts","JSON","parse","length","p","cp","filter","cpp","ProdutoVarianteId","setItem","stringify","user","Usuario","store","name","Loja","Nome","ReservedInfoDTO","of","payload","info","bonusBalance","bonusIds","calculatedValue","cartId","metadata","status","totalDiscount","totalValue","isBonusProcessed","isExpired","createdAt","current","Date","now","diffms","diffMinutes","console","log","crmBonusService","CrmBonusService","getInstance","getCart","async","baseUrl","buildUrlBase","getInfoCart","getInfoBonusByCartIdAndStoreName","storeName","getInfoBonus","persisteMetadata","patchInfoBonus","url","window","location","origin","includes","CHECKOUT_CART_WAKE","replace","protocol","host"],"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\";\r\n\r\nexport class CartWake {\r\n id: string;\r\n middlewareId: string;\r\n orderId: number;\r\n products: IProductWake[] = [];\r\n user: IUser;\r\n store: IStore;\r\n\r\n constructor(cart) {\r\n this.id = cart.Metadados.id || cart.Id;\r\n this.middlewareId = cart.Metadados?.id;\r\n this.orderId = cart.PedidoId;\r\n this.buildUserInfo(cart);\r\n this.buildStoreInfo(cart);\r\n this.products = this.buildStoreCart( cart.Produtos);\r\n }\r\n\r\n private buildStoreCart(newProducts = []) {\r\n const cache = localStorage.getItem(\"bc:cart\");\r\n\r\n if(!cache) {\r\n return this.saveStore(newProducts)\r\n \r\n }\r\n \r\n const cacheProducts:IProductWake[] = JSON.parse(cache);\r\n\r\n if(newProducts.length !== cacheProducts.length) {\r\n return this.saveStore(newProducts);\r\n }\r\n\r\n for (const p of newProducts) {\r\n const [cp] = cacheProducts.filter(cpp => cpp.ProdutoVarianteId == p.ProdutoVarianteId);\r\n\r\n if(cp) {\r\n cp.Quantidade != p.Quantidade;\r\n\r\n return newProducts;\r\n }\r\n }\r\n\r\n return cacheProducts;\r\n\r\n }\r\n\r\n\r\n private saveStore(newProducts) {\r\n localStorage.setItem(\"bc:cart\", JSON.stringify(newProducts));\r\n\r\n return newProducts;\r\n }\r\n\r\n private buildUserInfo(cart) {\r\n this.user = {\r\n id: cart.Usuario ? cart.Usuario.Id : null\r\n }\r\n }\r\n\r\n private buildStoreInfo(cart) {\r\n this.store = {\r\n name: cart.Loja?.Nome\r\n }\r\n }\r\n}","export class ReservedInfoDTO {\r\n bonusBalance: string;\r\n bonusIds: string;\r\n calculatedValue: string;\r\n cartId: string;\r\n metadata: {\r\n url: string,\r\n createdAt: number;\r\n storeId?: string;\r\n userId?: string;\r\n cellphone?: number;\r\n }\r\n orderId: string;\r\n status: number;\r\n totalDiscount: string;\r\n totalValue: string;\r\n isBonusProcessed?: boolean;\r\n\r\n\r\n public static of(payload: any) {\r\n const info = new ReservedInfoDTO();\r\n info.bonusBalance = payload.bonusBalance;\r\n info.bonusIds = payload.bonusIds;\r\n info.calculatedValue = payload.calculatedValue;\r\n info.cartId = payload.cartId;\r\n info.metadata = payload.metadata;\r\n info.orderId = payload.orderId;\r\n info.status = payload.status;\r\n info.totalDiscount = payload.totalDiscount;\r\n info.totalValue = payload.totalValue;\r\n info.isBonusProcessed = payload.isBonusProcessed;\r\n return info;\r\n }\r\n\r\n public isExpired(): boolean {\r\n const createdAt = this?.metadata?.createdAt;\r\n if(!createdAt) return true; \r\n \r\n const current = Date.now();\r\n\r\n const diffms = current - createdAt;\r\n\r\n const diffMinutes = diffms / (1000 * 60);\r\n\r\n console.log('diffMinutes', diffMinutes);\r\n\r\n return diffMinutes > 6;\r\n\r\n }\r\n\r\n}","import { CHECKOUT_CART_WAKE } from \"../../env\";\r\nimport { CartWake } from \"../objectvalues/cart.wake\";\r\nimport { CrmBonusService } from \"../services/crmbonus.service\";\r\nimport { ReservedInfoDTO } from '../dto/reserved-info.dto'\r\n\r\nconst crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\nexport const getCart = async (): Promise<CartWake> => {\r\n const baseUrl = buildUrlBase(); // window.location.origin; //\"https://bycoders.fbits.store\" //window.location.origin;\r\n \r\n console.log('[URL STORE]: ', baseUrl)\r\n\r\n const cart = await crmBonusService.getInfoCart(baseUrl);\r\n\r\n return new CartWake(cart);\r\n}\r\n\r\nexport const getInfoBonusByCartIdAndStoreName = async (cartId, storeName) => {\r\n const info = await crmBonusService.getInfoBonus(cartId, storeName)\r\n\r\n return ReservedInfoDTO.of(info);\r\n}\r\n\r\nexport const persisteMetadata = async (storeName: string, cartId: string, metadata = {}) => {\r\n console.log('[bc:salvando metadados]');\r\n await crmBonusService.patchInfoBonus({\r\n storeName,\r\n cartId,\r\n metadata\r\n });\r\n console.log('[bc:salvo metadados]');\r\n}\r\n\r\nconst buildUrlBase = () => {\r\n\r\n const url = window.location.origin; //\"https://bycoders.checkout.fbits.store\" //\r\n\r\n if(url.includes('localhost')) {\r\n return CHECKOUT_CART_WAKE;\r\n }\r\n\r\n if(url.includes('checkout')) {\r\n return url;\r\n }\r\n\r\n if(url.includes('fbits')) {\r\n return url;\r\n }\r\n\r\n if(url.includes(\"www.\")) {\r\n return url.replace(\"www\", \"checkout\")\r\n }\r\n\r\n return `${window.location.protocol}//checkout.${window.location.host}`;\r\n\r\n}"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,16 @@ var AjustesTipoEnum;
2
2
  (function (AjustesTipoEnum) {
3
3
  AjustesTipoEnum["P"] = "Promocao";
4
4
  AjustesTipoEnum["CC"] = "ContaCorrente";
5
+ AjustesTipoEnum["PP"] = "PromocaoProduto";
6
+ AjustesTipoEnum["F"] = "Formula";
5
7
  })(AjustesTipoEnum || (AjustesTipoEnum = {}));
6
8
 
7
9
  function buildProductsByWake(productsWake = []) {
8
10
  const products = [];
9
11
  for (const pw of productsWake) {
10
12
  let discounts = getDiscount(pw.Ajustes);
11
- var value = (pw.PrecoPor * pw.Quantidade);
13
+ let discounts_formula = getDiscountFormula(pw.Ajustes);
14
+ var value = (pw.PrecoPor * pw.Quantidade) + discounts_formula;
12
15
  var discounts_value = (discounts * -1);
13
16
  products.push({
14
17
  sku: pw.SKU,
@@ -29,7 +32,16 @@ function getDiscount(ajustes = []) {
29
32
  }
30
33
  return discounts;
31
34
  }
35
+ function getDiscountFormula(ajustes = []) {
36
+ let discounts = 0;
37
+ for (const discount of ajustes) {
38
+ if ([AjustesTipoEnum.F].includes(discount.Tipo)) {
39
+ discounts += (discount.Valor * -1);
40
+ }
41
+ }
42
+ return discounts;
43
+ }
32
44
 
33
45
  export { buildProductsByWake as b };
34
46
 
35
- //# sourceMappingURL=p-0bc27e39.js.map
47
+ //# sourceMappingURL=build.payload.helper-96f9c8b8.js.map
@@ -0,0 +1 @@
1
+ {"file":"build.payload.helper-96f9c8b8.js","mappings":"AAQA,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,iCAAc,CAAA;IACd,uCAAoB,CAAA;IACpB,yCAAsB,CAAA;IACtB,gCAAa,CAAA;AACjB,CAAC,EALW,eAAe,KAAf,eAAe;;SCNX,mBAAmB,CAAC,eAAoC,EAAE;IAEtE,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAM,MAAM,EAAE,IAAI,YAAY,EAAG;QAC7B,IAAI,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,iBAAiB,GAAG,kBAAkB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,IAAI,iBAAiB,CAAC;QAE9D,IAAI,eAAe,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtC,QAAQ,CAAC,IAAI,CACT;YACI,GAAG,EAAE,EAAE,CAAC,GAAG;YACX,KAAK,EAAE,KAAK;YACZ,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YACjD,QAAQ,EAAE,EAAE,CAAC,UAAU;YACvB,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,KAAK,GAAG,eAAe;SAC9D,CACJ,CAAA;KACJ;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,UAAsB,EAAE;IAEzC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAI,MAAM,QAAQ,IAAI,OAAO,EAAE;QAC3B,IAAG,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAChE,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC;SAC/B;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAsB,EAAE;IAEhD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAI,MAAM,QAAQ,IAAI,OAAO,EAAE;QAC3B,IAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC5C,SAAS,KAAK,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;SACtC;KACJ;IAED,OAAO,SAAS,CAAC;AACrB;;;;","names":[],"sources":["src/dto/validate.pin.bonus.ts","src/helpers/build.payload.helper.ts"],"sourcesContent":["export interface IProduct {\r\n productVariantId: string;\r\n sku: string;\r\n value: number;\r\n quantity: number;\r\n discount: number;\r\n}\r\n\r\nexport enum AjustesTipoEnum {\r\n P = \"Promocao\",\r\n CC = \"ContaCorrente\",\r\n PP = \"PromocaoProduto\",\r\n F = \"Formula\"\r\n}\r\n\r\nexport interface IAjustes {\r\n Tipo: AjustesTipoEnum;\r\n Valor: number;\r\n}\r\n\r\nexport interface IUser {\r\n id: number;\r\n}\r\n\r\nexport interface IStore {\r\n name: string;\r\n}\r\n\r\nexport interface IProductWake {\r\n ProdutoVarianteId: number;\r\n SKU: string;\r\n PrecoPor: number;\r\n Quantidade: number;\r\n Ajustes: IAjustes[];\r\n}\r\n\r\nexport interface ICustomer {\r\n birthDate: string;\r\n document: string;\r\n name: string;\r\n phone: string;\r\n}\r\n\r\nexport interface IProccesPinBonusDto {\r\n storeName: string;\r\n name: string;\r\n checkoutId: string;\r\n checkoutProducts: Array<IProduct>;\r\n storeId: string;\r\n userId: string;\r\n cellphone: number;\r\n pin: string;\r\n\r\n}\r\n\r\nexport interface IBonus {\r\n hasBonus: boolean;\r\n bonusBalance: number;\r\n totalBonus: number;\r\n minimumPurchase: number;\r\n bonusIds: string;\r\n firstValidityDate: string\r\n history: [\r\n {\r\n validityStart: string;\r\n validityEnd: string;\r\n value: number\r\n },\r\n {\r\n validityStart: string;\r\n validityEnd: string\r\n value: number\r\n }\r\n ]\r\n storeId: number;\r\n userId: number;\r\n cartId: string\r\n calculatedValue: number;\r\n totalValue: number\r\n}\r\n\r\n\r\nexport interface IReserveDTO {\r\n storeName: string;\r\n cartId: string;\r\n grossValue: number;\r\n redeemedBonus: number;\r\n ticket: string;\r\n storeId: string;\r\n userId: number;\r\n}","import { AjustesTipoEnum, IAjustes, IProduct, IProductWake } from \"../dto/validate.pin.bonus\";\r\n\r\nexport function buildProductsByWake(productsWake: Array<IProductWake> = []): Array<IProduct> {\r\n\r\n const products: Array<IProduct> = [];\r\n\r\n for ( const pw of productsWake ) {\r\n let discounts = getDiscount(pw.Ajustes)\r\n let discounts_formula = getDiscountFormula(pw.Ajustes);\r\n\r\n var value = (pw.PrecoPor * pw.Quantidade) + discounts_formula;\r\n\r\n var discounts_value = (discounts * -1)\r\n\r\n products.push(\r\n {\r\n sku: pw.SKU,\r\n value: value,\r\n productVariantId: pw.ProdutoVarianteId.toString(),\r\n quantity: pw.Quantidade,\r\n discount: value < discounts_value ? value : discounts_value,\r\n }\r\n )\r\n }\r\n\r\n return products;\r\n}\r\n\r\nfunction getDiscount(ajustes: IAjustes[] = []) {\r\n \r\n let discounts = 0;\r\n \r\n for(const discount of ajustes) {\r\n if([AjustesTipoEnum.P, AjustesTipoEnum.CC].includes(discount.Tipo)) {\r\n discounts += discount.Valor;\r\n }\r\n }\r\n\r\n return discounts;\r\n}\r\n\r\nfunction getDiscountFormula(ajustes: IAjustes[] = []) {\r\n \r\n let discounts = 0;\r\n \r\n for(const discount of ajustes) {\r\n if([AjustesTipoEnum.F].includes(discount.Tipo)) {\r\n discounts += (discount.Valor * -1);\r\n }\r\n }\r\n\r\n return discounts;\r\n}"],"version":3}
@@ -1,4 +1,4 @@
1
- import { C as CrmBonusService, a as CHECKOUT_CART_WAKE } from './crmbonus.service-aafcb1ec.js';
1
+ import { C as CrmBonusService, a as CHECKOUT_CART_WAKE } from './crmbonus.service-3ab820ba.js';
2
2
 
3
3
  class CartWake {
4
4
  constructor(cart) {
@@ -85,11 +85,13 @@ const getInfoBonusByCartIdAndStoreName = async (cartId, storeName) => {
85
85
  return ReservedInfoDTO.of(info);
86
86
  };
87
87
  const persisteMetadata = async (storeName, cartId, metadata = {}) => {
88
+ console.log('[bc:salvando metadados]');
88
89
  await crmBonusService.patchInfoBonus({
89
90
  storeName,
90
91
  cartId,
91
92
  metadata
92
93
  });
94
+ console.log('[bc:salvo metadados]');
93
95
  };
94
96
  const buildUrlBase = () => {
95
97
  const url = window.location.origin; //"https://bycoders.checkout.fbits.store" //
@@ -110,4 +112,4 @@ const buildUrlBase = () => {
110
112
 
111
113
  export { CartWake as C, getInfoBonusByCartIdAndStoreName as a, getCart as g, persisteMetadata as p };
112
114
 
113
- //# sourceMappingURL=cart.helper-4d1bf8e2.js.map
115
+ //# sourceMappingURL=cart.helper-9c847c16.js.map
@@ -0,0 +1 @@
1
+ {"file":"cart.helper-9c847c16.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\";\r\n\r\nexport class CartWake {\r\n id: string;\r\n middlewareId: string;\r\n orderId: number;\r\n products: IProductWake[] = [];\r\n user: IUser;\r\n store: IStore;\r\n\r\n constructor(cart) {\r\n this.id = cart.Metadados.id || cart.Id;\r\n this.middlewareId = cart.Metadados?.id;\r\n this.orderId = cart.PedidoId;\r\n this.buildUserInfo(cart);\r\n this.buildStoreInfo(cart);\r\n this.products = this.buildStoreCart( cart.Produtos);\r\n }\r\n\r\n private buildStoreCart(newProducts = []) {\r\n const cache = localStorage.getItem(\"bc:cart\");\r\n\r\n if(!cache) {\r\n return this.saveStore(newProducts)\r\n \r\n }\r\n \r\n const cacheProducts:IProductWake[] = JSON.parse(cache);\r\n\r\n if(newProducts.length !== cacheProducts.length) {\r\n return this.saveStore(newProducts);\r\n }\r\n\r\n for (const p of newProducts) {\r\n const [cp] = cacheProducts.filter(cpp => cpp.ProdutoVarianteId == p.ProdutoVarianteId);\r\n\r\n if(cp) {\r\n cp.Quantidade != p.Quantidade;\r\n\r\n return newProducts;\r\n }\r\n }\r\n\r\n return cacheProducts;\r\n\r\n }\r\n\r\n\r\n private saveStore(newProducts) {\r\n localStorage.setItem(\"bc:cart\", JSON.stringify(newProducts));\r\n\r\n return newProducts;\r\n }\r\n\r\n private buildUserInfo(cart) {\r\n this.user = {\r\n id: cart.Usuario ? cart.Usuario.Id : null\r\n }\r\n }\r\n\r\n private buildStoreInfo(cart) {\r\n this.store = {\r\n name: cart.Loja?.Nome\r\n }\r\n }\r\n}","export class ReservedInfoDTO {\r\n bonusBalance: string;\r\n bonusIds: string;\r\n calculatedValue: string;\r\n cartId: string;\r\n metadata: {\r\n url: string,\r\n createdAt: number;\r\n storeId?: string;\r\n userId?: string;\r\n cellphone?: number;\r\n }\r\n orderId: string;\r\n status: number;\r\n totalDiscount: string;\r\n totalValue: string;\r\n isBonusProcessed?: boolean;\r\n\r\n\r\n public static of(payload: any) {\r\n const info = new ReservedInfoDTO();\r\n info.bonusBalance = payload.bonusBalance;\r\n info.bonusIds = payload.bonusIds;\r\n info.calculatedValue = payload.calculatedValue;\r\n info.cartId = payload.cartId;\r\n info.metadata = payload.metadata;\r\n info.orderId = payload.orderId;\r\n info.status = payload.status;\r\n info.totalDiscount = payload.totalDiscount;\r\n info.totalValue = payload.totalValue;\r\n info.isBonusProcessed = payload.isBonusProcessed;\r\n return info;\r\n }\r\n\r\n public isExpired(): boolean {\r\n const createdAt = this?.metadata?.createdAt;\r\n if(!createdAt) return true; \r\n \r\n const current = Date.now();\r\n\r\n const diffms = current - createdAt;\r\n\r\n const diffMinutes = diffms / (1000 * 60);\r\n\r\n console.log('diffMinutes', diffMinutes);\r\n\r\n return diffMinutes > 6;\r\n\r\n }\r\n\r\n}","import { CHECKOUT_CART_WAKE } from \"../../env\";\r\nimport { CartWake } from \"../objectvalues/cart.wake\";\r\nimport { CrmBonusService } from \"../services/crmbonus.service\";\r\nimport { ReservedInfoDTO } from '../dto/reserved-info.dto'\r\n\r\nconst crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\nexport const getCart = async (): Promise<CartWake> => {\r\n const baseUrl = buildUrlBase(); // window.location.origin; //\"https://bycoders.fbits.store\" //window.location.origin;\r\n \r\n console.log('[URL STORE]: ', baseUrl)\r\n\r\n const cart = await crmBonusService.getInfoCart(baseUrl);\r\n\r\n return new CartWake(cart);\r\n}\r\n\r\nexport const getInfoBonusByCartIdAndStoreName = async (cartId, storeName) => {\r\n const info = await crmBonusService.getInfoBonus(cartId, storeName)\r\n\r\n return ReservedInfoDTO.of(info);\r\n}\r\n\r\nexport const persisteMetadata = async (storeName: string, cartId: string, metadata = {}) => {\r\n console.log('[bc:salvando metadados]');\r\n await crmBonusService.patchInfoBonus({\r\n storeName,\r\n cartId,\r\n metadata\r\n });\r\n console.log('[bc:salvo metadados]');\r\n}\r\n\r\nconst buildUrlBase = () => {\r\n\r\n const url = window.location.origin; //\"https://bycoders.checkout.fbits.store\" //\r\n\r\n if(url.includes('localhost')) {\r\n return CHECKOUT_CART_WAKE;\r\n }\r\n\r\n if(url.includes('checkout')) {\r\n return url;\r\n }\r\n\r\n if(url.includes('fbits')) {\r\n return url;\r\n }\r\n\r\n if(url.includes(\"www.\")) {\r\n return url.replace(\"www\", \"checkout\")\r\n }\r\n\r\n return `${window.location.protocol}//checkout.${window.location.host}`;\r\n\r\n}"],"version":3}
@@ -48,6 +48,22 @@ const CountdownTimer = class {
48
48
  }
49
49
  };
50
50
 
51
- export { CountdownTimer as countdown_timer };
51
+ 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}";
52
+ const CrmButtonStyle0 = crmButtonCss;
52
53
 
53
- //# sourceMappingURL=countdown-timer.entry.js.map
54
+ const Button = class {
55
+ constructor(hostRef) {
56
+ registerInstance(this, hostRef);
57
+ this.txtBtn = undefined;
58
+ this.loading = undefined;
59
+ this.handleClick = undefined;
60
+ }
61
+ render() {
62
+ return (h("div", { key: '00732759335f3dedd853446aff46a18bfb05f6f5', class: "crm-contaner-button" }, h("button", { key: '9cdc1c8adfa2203fb0b4f4cb35f83bae779485a0', class: "crm-button", onClick: () => this.handleClick() }, !this.loading ? this.txtBtn : h("loading-spinner", { size: "15px", color: "#fff" }))));
63
+ }
64
+ };
65
+ Button.style = CrmButtonStyle0;
66
+
67
+ export { CountdownTimer as countdown_timer, Button as crm_button };
68
+
69
+ //# sourceMappingURL=countdown-timer_2.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"countdown-timer.crm-button.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;;;AC3DL,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/countdown-timer/countdown-timer.tsx","src/components/button/crm-button.css?tag=crm-button","src/components/button/index.tsx"],"sourcesContent":["import { Component, Prop, State, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'countdown-timer',\r\n})\r\nexport class CountdownTimer {\r\n\r\n @Prop() downtime: () => void;\r\n @Prop() dataCriacao: string;\r\n @Prop() minutos: number = 6;\r\n @Prop() segundos: number = 60;\r\n\r\n @State() tempoRestante: number; // em milissegundos\r\n\r\n private intervalId: any;\r\n\r\n componentWillLoad() {\r\n const tempoTotal = this.minutos * this.segundos * 1000;\r\n const data = new Date(this.dataCriacao);\r\n const agora = new Date();\r\n const tempoPassado = agora.getTime() - data.getTime();\r\n\r\n if (tempoPassado >= tempoTotal) {\r\n this.tempoRestante = 0;\r\n this.onTempoEsgotado();\r\n } else {\r\n this.tempoRestante = tempoTotal - tempoPassado;\r\n this.startCountdown();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n clearInterval(this.intervalId);\r\n }\r\n\r\n startCountdown() {\r\n this.intervalId = setInterval(() => {\r\n this.tempoRestante -= 1000;\r\n if (this.tempoRestante <= 0) {\r\n this.tempoRestante = 0;\r\n clearInterval(this.intervalId);\r\n this.onTempoEsgotado();\r\n }\r\n }, 1000);\r\n }\r\n\r\n onTempoEsgotado() {\r\n console.log('Tempo esgotado! Executando ação...');\r\n this.downtime()\r\n }\r\n\r\n render() {\r\n const minutos = Math.floor(this.tempoRestante / 60000);\r\n const segundos = Math.floor((this.tempoRestante % 60000) / 1000);\r\n const tempoFormatado = `${String(minutos).padStart(2, '0')}:${String(segundos).padStart(2, '0')}`;\r\n\r\n return (\r\n <label> {tempoFormatado}</label>\r\n );\r\n }\r\n}\r\n","input, button {\r\n margin: 0;\r\n padding: 10px; /* Ajuste o valor conforme necessário */\r\n}\r\n\r\n.crm-contaner-button {\r\n height: auto;\r\n width: auto;\r\n}\r\n\r\n.crm-button {\r\n height: 48px;\r\n width: 100%;\r\n border: 1px solid #000;\r\n padding: 14px 20px;\r\n background-color: #000;\r\n color: #fff;\r\n /* font-size: 14px; */\r\n line-height: 20px;\r\n font-weight: 500;\r\n cursor: pointer;\r\n}","import { Component, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: 'crm-button',\r\n styleUrl: 'crm-button.css'\r\n})\r\nexport class Button {\r\n\r\n @Prop() txtBtn: string;\r\n @Prop() loading: boolean;\r\n\r\n @Prop() handleClick: () => void;\r\n\r\n render() {\r\n return (\r\n <div class=\"crm-contaner-button\">\r\n <button class=\"crm-button\" onClick={() => this.handleClick()}>\r\n {\r\n !this.loading ? this.txtBtn : <loading-spinner size=\"15px\" color=\"#fff\" />\r\n }\r\n </button>\r\n </div>\r\n )\r\n }\r\n}"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-bdb70d5a.js';
2
- import { C as CrmBonusService } from './crmbonus.service-aafcb1ec.js';
2
+ import { C as CrmBonusService } from './crmbonus.service-3ab820ba.js';
3
3
  import { S as StepFormEnum } from './index-dc3ebdf0.js';
4
4
 
5
5
  const crmBonusFormCss = ".form-container{width:100%;display:flex;justify-content:center;justify-content:space-around}.disabled{opacity:0.6;cursor:not-allowed}.message-error{color:#d11111;font-weight:bold;margin-left:16px}";
@@ -1,10 +1,10 @@
1
1
  import { r as registerInstance, h } from './index-bdb70d5a.js';
2
2
  import { g as getInfoCustomization } from './info.config.helper-7cad7a9c.js';
3
- import { C as CrmBonusService, g as getKeyReserveByCartId } from './crmbonus.service-aafcb1ec.js';
3
+ import { C as CrmBonusService, g as getKeyReserveByCartId } from './crmbonus.service-3ab820ba.js';
4
4
  import { i as instance } from './i18n-b9d8b0cc.js';
5
- import { C as CartWake, g as getCart, a as getInfoBonusByCartIdAndStoreName } from './cart.helper-4d1bf8e2.js';
5
+ import { C as CartWake, g as getCart, a as getInfoBonusByCartIdAndStoreName } from './cart.helper-9c847c16.js';
6
6
  import { d as defaultStyles } from './index-dc3ebdf0.js';
7
- import { b as buildProductsByWake } from './build.payload.helper-09dcb309.js';
7
+ import { b as buildProductsByWake } from './build.payload.helper-96f9c8b8.js';
8
8
 
9
9
  const moneyDollarsSvgrepoComSvg = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMiIvPg0KPHBhdGggZD0iTTE1IDkuOTQ3MjhDMTQuNSA5LjMgMTMuOCA4LjUgMTIgOC41QzEwLjIgOC41IDkgOS41MTM5MyA5IDkuOTQ3MjhDOSAxMC4zODA2IDkuMDY3ODYgMTAuOTI3NyAxMCAxMS41QzEwLjc1MjIgMTEuOTYxOCAxMi42Njg0IDEyLjA0MzkgMTMuNSAxMi41QzE0LjY3OSAxMy4xNDY3IDE0Ljg0OTcgMTMuODIwMiAxNC44NDk3IDE0LjA1MjJDMTQuODQ5NyAxNC42ODM3IDEzLjQxNzUgMTUuNDg1MiAxMiAxNS41QzEwLjUzNiAxNS41MTUzIDkuNSAxNC43IDkgMTQuMDUyMiIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KPHBhdGggZD0iTTEyIDdWMTciIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KPC9zdmc+';
10
10
 
@@ -125,12 +125,6 @@ const CrmBonusNote = class {
125
125
  }
126
126
  setTime();
127
127
  }
128
- buildTime() {
129
- var _a, _b, _c, _d;
130
- if (!((_b = (_a = this.info) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.createdAt))
131
- return "";
132
- return new Date((_d = (_c = this.info) === null || _c === void 0 ? void 0 : _c.metadata) === null || _d === void 0 ? void 0 : _d.createdAt).toString();
133
- }
134
128
  hasBonus() {
135
129
  const _bonus = localStorage.getItem(getKeyReserveByCartId(this.cartWake.id));
136
130
  const info = {
@@ -170,10 +164,10 @@ const CrmBonusNote = class {
170
164
  }, 4000);
171
165
  });
172
166
  }
173
- return (h("loading-container", { key: '7d67e623295c452af2e550a2eab5a81ebe573b17', loading: this.loading }, h("div", { key: '2e0219b921747fc1929f6271696d9bca72afcde8', class: "note-container", style: this.styles }, h("div", { key: 'b3855fd6e0c2c73c748cc179a7f3d06e92478fd0', class: "note-header" }, h("p", { key: 'ff4e0fb15e56c98aa3f24cc790c2c4589cae1d86', class: "note-title" }, h("img", { key: 'f725d27dc3feb0c062319691dac71e975eb2a01a', src: moneyDollarsSvgrepoComSvg, width: 23 }), this.config.giftbackTitle), infobonus.hasBonus && (h("div", { key: 'a99c4294f02e41c582ba383a063a1d0a2e75af08' }, this.showEdit && (h("p", { key: '76ea6d05c12556429f1ee64d948c3656dde7b576', class: "back-cart", onClick: () => this.backCart() }, instance.t("edit"))), !this.showEdit && h("countdown-timer", { key: 'a32881f76a6e80d72a6c57a46bba365e49b87d28', dataCriacao: this.buildTime(), downtime: () => { this.showEdit = true; } })))), infobonus.hasBonus &&
174
- (h("p", { key: '186b532dad0dbdba1be156eb7eb3575e6388f20e', class: "note-description-2" }, instance.t("withApplyBonus", { giftbackname: giftbackname }), " ", h("strong", { key: '84a2ccd326870b963ca3138645a3339684e27479' }, "R$ ", this.getAmount(), "."))), (infobonus.requestBonus && !infobonus.hasBonus) &&
175
- (h("p", { key: 'c72742ff44a1fbccc33c0ee9f465663f48d0db84', class: "note-description-not" }, instance.t("noBonus", { giftbackname: giftbackname }))), !infobonus.requestBonus &&
176
- (h("div", { key: '4662f812e5d3289011a448edeae1cef3f81a77a7', class: "description" }, h("p", { key: 'b950097d3388a28374585dba80215dd5e61e2ffd', class: "note-description-not" }, instance.t("noBonus", { giftbackname: giftbackname })))))));
167
+ return (h("loading-container", { key: '4a1ae1a0024c591abd8d281bdf98064147a791ae', loading: this.loading }, h("div", { key: '8119bf347d8677c1794b13913b1e3fadc7a3d373', class: "note-container", style: this.styles }, h("div", { key: '0d1b2fedc01da88d5ab768cdafeb2474dc60cda0', class: "note-header" }, h("p", { key: '1a1e6c741d5ca9272afbb0fc6bf94fd291029e48', class: "note-title" }, h("img", { key: '0c957b65dce439ea0e4eb58bffe8b4da0c7e11e2', src: moneyDollarsSvgrepoComSvg, width: 23 }), this.config.giftbackTitle), infobonus.hasBonus && (h("div", { key: '128028e06b2fd8fd8eaddf71ebd449458ffed35e' }, this.showEdit && (h("p", { key: '8dba62a02ff00c5d545a225e855728ae61dffa57', class: "back-cart", onClick: () => this.backCart() }, instance.t("edit")))))), infobonus.hasBonus &&
168
+ (h("p", { key: 'e5c5aff658ebb4557b9ae9755ae13e887857ed96', class: "note-description-2" }, instance.t("withApplyBonus", { giftbackname: giftbackname }), " ", h("strong", { key: '98006717e11f5ecd88ac0048dadcb1979ae89c45' }, "R$ ", this.getAmount(), "."))), (infobonus.requestBonus && !infobonus.hasBonus) &&
169
+ (h("p", { key: '728e9abb6dedb522d28b09db64f55a22cdc50fa3', class: "note-description-not" }, instance.t("noBonus", { giftbackname: giftbackname }))), !infobonus.requestBonus &&
170
+ (h("div", { key: '7854623248ed56cac9022d4897b6c526f7f6a49a', class: "description" }, h("p", { key: '43cb9fc68afb764d1f702d57a096426438a2f671', class: "note-description-not" }, instance.t("noBonus", { giftbackname: giftbackname })))))));
177
171
  }
178
172
  };
179
173
  CrmBonusNote.style = CrmBonusNoteStyle0;
@@ -1 +1 @@
1
- {"file":"crm-bonus-note.entry.js","mappings":"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","names":["money","i18next"],"sources":["src/assets/svg/money-dollars-svgrepo-com.svg","src/helpers/time.helper.ts","src/components/note/crm-bonus-note.css?tag=crm-bonus-note","src/components/note/crm-bonus-note.tsx"],"sourcesContent":["<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n<svg width=\"800px\" height=\"800px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#000000\" stroke-width=\"2\"/>\r\n<path d=\"M15 9.94728C14.5 9.3 13.8 8.5 12 8.5C10.2 8.5 9 9.51393 9 9.94728C9 10.3806 9.06786 10.9277 10 11.5C10.7522 11.9618 12.6684 12.0439 13.5 12.5C14.679 13.1467 14.8497 13.8202 14.8497 14.0522C14.8497 14.6837 13.4175 15.4852 12 15.5C10.536 15.5153 9.5 14.7 9 14.0522\" stroke=\"#000000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n<path d=\"M12 7V17\" stroke=\"#000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg>","export function setTime() {\r\n\r\n if(localStorage.getItem(\"bc:time-allow\")) {\r\n return\r\n }\r\n\r\n const time = localStorage.getItem(\"bc:time\");\r\n\r\n if(!time) {\r\n localStorage.setItem(\"bc:time\", \"360\");\r\n localStorage.setItem(\"bc:time-allow\", \"true\");\r\n return\r\n } \r\n}",".note-container {\r\n border: 1px solid #dddddd;\r\n padding: 0 15px 15px;\r\n margin: 0 0 26px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 13px;\r\n\r\n\r\n & .description {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 13px;\r\n }\r\n}\r\n\r\n.note-container hr {\r\n border: 1px solid #CCC;\r\n}\r\n\r\n.note-container .back-cart {\r\n display: flex;\r\n text-align: center;\r\n}\r\n\r\n.note-header {\r\n display: flex;\r\n align-items: baseline;\r\n justify-content: space-between;\r\n}\r\n\r\n.note-title {\r\n font-weight: 700;\r\n text-align: left;\r\n display: flex;\r\n gap: 6px;\r\n align-items: center;\r\n margin-top: 11px;\r\n color: #000;\r\n}\r\n\r\n.note-description {\r\n color: #6d6d5f;\r\n padding: 0;\r\n margin: 0 auto;\r\n}\r\n\r\n.back-cart {\r\n /* font-size: .9em; */\r\n color: #27272A;\r\n text-decoration: none;\r\n cursor: pointer;\r\n margin-top: 11px;\r\n}\r\n\r\n.note-description-2 {\r\n color: var(--crm-scheme-fg-main-inverse, #262626);\r\n /* font-size: var(--crm-font-size-body-lg, 16px); */\r\n font-style: normal;\r\n font-weight: var(--crm-font-weight-body-bold, 400);\r\n line-height: var(--crm-line-height-body-md, 20px);\r\n letter-spacing: var(--crm-letter-spacing-title-md, 0px);\r\n margin-top: 11px;\r\n color: #000;\r\n}\r\n\r\n.note-description-not {\r\n /* font-size: 16px; */\r\n}","import { Component, Prop, State, h } from \"@stencil/core\";\r\nimport { IInfoStore, getInfoCustomization } from \"../../helpers/info.config.helper\";\r\n\r\nimport money from '../../assets/svg/money-dollars-svgrepo-com.svg'\r\nimport { getKeyReserveByCartId } from \"../../utils/keys.storage\";\r\nimport i18next from \"../../i18n/i18n\"\r\nimport { IBonus, ReservedInfoDTO } from \"../../components\";\r\nimport { setTime } from \"../../helpers/time.helper\";\r\nimport { CartWake } from \"../../objectvalues/cart.wake\";\r\nimport { getCart, getInfoBonusByCartIdAndStoreName } from \"../../helpers/cart.helper\";\r\nimport { defaultStyles } from \"../../contants\";\r\nimport { IProccesPinBonusDto } from \"../../dto/validate.pin.bonus\";\r\nimport { buildProductsByWake } from \"../../helpers/build.payload.helper\";\r\nimport { CrmBonusService } from \"../../services/crmbonus.service\";\r\n\r\n@Component({\r\n tag: 'crm-bonus-note',\r\n styleUrl: 'crm-bonus-note.css'\r\n})\r\nexport class CrmBonusNote {\r\n\r\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\n @Prop() cart;\r\n\r\n @State() cartWake: CartWake;\r\n @State() url: string;\r\n @State() config: IInfoStore;\r\n @State() bonus: IBonus;\r\n @State() showEdit: boolean = false;\r\n\r\n @State() styles = defaultStyles;\r\n @State() infoBonus: {\r\n storeId: string,\r\n userId: string,\r\n cellphone: number\r\n }\r\n\r\n @State() loading: boolean = false;\r\n @State() info: ReservedInfoDTO;\r\n\r\n async componentWillLoad() {\r\n console.log(\"[CRM-BONUS-NOTE] componentWillLoad\");\r\n await this.upadateCheckToFreteAndGetUrl();\r\n }\r\n\r\n async upadateCheckToFreteAndGetUrl() {\r\n\r\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\r\n\r\n const key = getKeyReserveByCartId(this.cartWake.id);\r\n try {\r\n const info = await getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name);\r\n\r\n if (info.bonusBalance) {\r\n localStorage.setItem(this.cartWake.id, info.bonusBalance);\r\n localStorage.setItem(key, JSON.stringify({\r\n hasBonus: true,\r\n }));\r\n }\r\n\r\n if (info.isBonusProcessed) {\r\n this.startTime();\r\n }\r\n\r\n if (info?.metadata?.url) {\r\n this.url = info?.metadata?.url;\r\n }\r\n\r\n this.infoBonus = {\r\n storeId: info?.metadata.storeId,\r\n userId: info?.metadata.userId,\r\n cellphone: info?.metadata?.cellphone,\r\n }\r\n\r\n console.log('info', info);\r\n\r\n this.info = info;\r\n } catch (error) {\r\n localStorage.removeItem(key);\r\n localStorage.removeItem(this.cartWake.id);\r\n }\r\n\r\n this.config = getInfoCustomization(this.cartWake.store.name);\r\n\r\n if (this.config.keepStoreFrontStyle) {\r\n this.styles = null;\r\n }\r\n\r\n const envios = document.getElementsByName('forma-envio');\r\n envios.forEach((envio: any) => {\r\n envio.checked = false;\r\n });\r\n\r\n }\r\n\r\n async processBonus() {\r\n this.loading = true;\r\n try {\r\n const cart = await getCart();\r\n\r\n console.log('[cart-note]', cart);\r\n\r\n const products = buildProductsByWake(cart.products);\r\n\r\n const payload: IProccesPinBonusDto = {\r\n pin: \"2018\",\r\n cellphone: this.infoBonus.cellphone,\r\n storeId: this.infoBonus?.storeId.toString(),\r\n userId: this.infoBonus?.userId.toString(),\r\n checkoutId: this.cartWake.id,\r\n checkoutProducts: products,\r\n name: \"\",\r\n storeName: this.cartWake.store.name\r\n }\r\n\r\n this.bonus = await this.crmBonusService.validatePinBonus(payload);\r\n } catch (error) {\r\n console.error('Error processing bonus:', error);\r\n } finally {\r\n this.loading = false;\r\n\r\n await this.upadateCheckToFreteAndGetUrl();\r\n }\r\n\r\n }\r\n\r\n handleHide() {\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n return !!amount;\r\n }\r\n\r\n getAmount() {\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n\r\n return amount ? Number(amount).toFixed(2).replace(\".\", \",\") || \"0,00\" : \"0,00\";\r\n }\r\n\r\n async backCart() {\r\n window.location.href = this.url;\r\n }\r\n\r\n\r\n private startTime() {\r\n\r\n if (!localStorage.getItem(\"bc:time-allow\")) {\r\n localStorage.removeItem(\"bc:time\")\r\n }\r\n\r\n setTime();\r\n }\r\n\r\n private buildTime() {\r\n if(!this.info?.metadata?.createdAt)\r\n return \"\";\r\n\r\n return new Date(this.info?.metadata?.createdAt).toString();\r\n }\r\n\r\n\r\n hasBonus() {\r\n const _bonus = localStorage.getItem(getKeyReserveByCartId(this.cartWake.id));\r\n\r\n const info = {\r\n hasBonus: false,\r\n requestBonus: false\r\n }\r\n\r\n if (_bonus) {\r\n this.bonus = JSON.parse(_bonus);\r\n info.hasBonus = this.bonus.hasBonus;\r\n info.requestBonus = true;\r\n }\r\n\r\n return info;\r\n }\r\n\r\n getTime() {\r\n const time = localStorage.getItem(\"bc:time\")\r\n\r\n return time ? Number(time) : 0;\r\n }\r\n\r\n render() {\r\n\r\n const giftbackname = this.config?.giftbackTitle || \"Giftback\";\r\n\r\n const infobonus = this.hasBonus();\r\n\r\n const inputContaCorrenteNo = document.getElementById('btn-contaCorrente-nao');\r\n\r\n if (inputContaCorrenteNo) {\r\n inputContaCorrenteNo.addEventListener('change', async () => {\r\n console.log('O rádio foi selecionado! NÃO');\r\n\r\n setTimeout(async () => {\r\n await this.processBonus();\r\n }, 4000);\r\n });\r\n }\r\n\r\n const inputContaCorrenteYes = document.getElementById('btn-contaCorrente-sim');\r\n\r\n if (inputContaCorrenteYes) {\r\n inputContaCorrenteYes.addEventListener('change', async () => {\r\n console.log('O rádio foi selecionado! SIM');\r\n setTimeout(async () => {\r\n await this.processBonus();\r\n }, 4000);\r\n });\r\n }\r\n\r\n return (\r\n <loading-container loading={this.loading} >\r\n <div class=\"note-container\" style={this.styles}>\r\n <div class=\"note-header\">\r\n\r\n <p class=\"note-title\">\r\n <img src={money} width={23} />\r\n {this.config.giftbackTitle}\r\n </p>\r\n {\r\n infobonus.hasBonus && (\r\n <div>\r\n {this.showEdit && (\r\n <p class=\"back-cart\" onClick={() => this.backCart()}>\r\n {i18next.t(\"edit\")}\r\n </p>\r\n )}\r\n {!this.showEdit && <countdown-timer dataCriacao={this.buildTime()} downtime={() => { this.showEdit = true }} />}\r\n </div>\r\n )\r\n }\r\n </div>\r\n\r\n {\r\n infobonus.hasBonus &&\r\n (\r\n <p class=\"note-description-2\">\r\n {i18next.t(\"withApplyBonus\", { giftbackname: giftbackname })} <strong>R$ {this.getAmount()}.</strong>\r\n </p>\r\n )\r\n }\r\n\r\n {\r\n (infobonus.requestBonus && !infobonus.hasBonus) &&\r\n (\r\n <p class=\"note-description-not\">\r\n {i18next.t(\"noBonus\", { giftbackname: giftbackname })}\r\n </p>\r\n )\r\n }\r\n\r\n {\r\n !infobonus.requestBonus &&\r\n (\r\n <div class=\"description\">\r\n <p class=\"note-description-not\">\r\n {i18next.t(\"noBonus\", { giftbackname: giftbackname })}\r\n </p>\r\n </div>\r\n )\r\n }\r\n </div>\r\n </loading-container>\r\n )\r\n }\r\n}"],"version":3}
1
+ {"file":"crm-bonus-note.entry.js","mappings":"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","names":["money","i18next"],"sources":["src/assets/svg/money-dollars-svgrepo-com.svg","src/helpers/time.helper.ts","src/components/note/crm-bonus-note.css?tag=crm-bonus-note","src/components/note/crm-bonus-note.tsx"],"sourcesContent":["<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n<svg width=\"800px\" height=\"800px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#000000\" stroke-width=\"2\"/>\r\n<path d=\"M15 9.94728C14.5 9.3 13.8 8.5 12 8.5C10.2 8.5 9 9.51393 9 9.94728C9 10.3806 9.06786 10.9277 10 11.5C10.7522 11.9618 12.6684 12.0439 13.5 12.5C14.679 13.1467 14.8497 13.8202 14.8497 14.0522C14.8497 14.6837 13.4175 15.4852 12 15.5C10.536 15.5153 9.5 14.7 9 14.0522\" stroke=\"#000000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n<path d=\"M12 7V17\" stroke=\"#000000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg>","export function setTime() {\r\n\r\n if(localStorage.getItem(\"bc:time-allow\")) {\r\n return\r\n }\r\n\r\n const time = localStorage.getItem(\"bc:time\");\r\n\r\n if(!time) {\r\n localStorage.setItem(\"bc:time\", \"360\");\r\n localStorage.setItem(\"bc:time-allow\", \"true\");\r\n return\r\n } \r\n}",".note-container {\r\n border: 1px solid #dddddd;\r\n padding: 0 15px 15px;\r\n margin: 0 0 26px 0px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 13px;\r\n\r\n\r\n & .description {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 13px;\r\n }\r\n}\r\n\r\n.note-container hr {\r\n border: 1px solid #CCC;\r\n}\r\n\r\n.note-container .back-cart {\r\n display: flex;\r\n text-align: center;\r\n}\r\n\r\n.note-header {\r\n display: flex;\r\n align-items: baseline;\r\n justify-content: space-between;\r\n}\r\n\r\n.note-title {\r\n font-weight: 700;\r\n text-align: left;\r\n display: flex;\r\n gap: 6px;\r\n align-items: center;\r\n margin-top: 11px;\r\n color: #000;\r\n}\r\n\r\n.note-description {\r\n color: #6d6d5f;\r\n padding: 0;\r\n margin: 0 auto;\r\n}\r\n\r\n.back-cart {\r\n /* font-size: .9em; */\r\n color: #27272A;\r\n text-decoration: none;\r\n cursor: pointer;\r\n margin-top: 11px;\r\n}\r\n\r\n.note-description-2 {\r\n color: var(--crm-scheme-fg-main-inverse, #262626);\r\n /* font-size: var(--crm-font-size-body-lg, 16px); */\r\n font-style: normal;\r\n font-weight: var(--crm-font-weight-body-bold, 400);\r\n line-height: var(--crm-line-height-body-md, 20px);\r\n letter-spacing: var(--crm-letter-spacing-title-md, 0px);\r\n margin-top: 11px;\r\n color: #000;\r\n}\r\n\r\n.note-description-not {\r\n /* font-size: 16px; */\r\n}","import { Component, Prop, State, h } from \"@stencil/core\";\r\nimport { IInfoStore, getInfoCustomization } from \"../../helpers/info.config.helper\";\r\n\r\nimport money from '../../assets/svg/money-dollars-svgrepo-com.svg'\r\nimport { getKeyReserveByCartId } from \"../../utils/keys.storage\";\r\nimport i18next from \"../../i18n/i18n\"\r\nimport { IBonus, ReservedInfoDTO } from \"../../components\";\r\nimport { setTime } from \"../../helpers/time.helper\";\r\nimport { CartWake } from \"../../objectvalues/cart.wake\";\r\nimport { getCart, getInfoBonusByCartIdAndStoreName } from \"../../helpers/cart.helper\";\r\nimport { defaultStyles } from \"../../contants\";\r\nimport { IProccesPinBonusDto } from \"../../dto/validate.pin.bonus\";\r\nimport { buildProductsByWake } from \"../../helpers/build.payload.helper\";\r\nimport { CrmBonusService } from \"../../services/crmbonus.service\";\r\n\r\n@Component({\r\n tag: 'crm-bonus-note',\r\n styleUrl: 'crm-bonus-note.css'\r\n})\r\nexport class CrmBonusNote {\r\n\r\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\n @Prop() cart;\r\n\r\n @State() cartWake: CartWake;\r\n @State() url: string;\r\n @State() config: IInfoStore;\r\n @State() bonus: IBonus;\r\n @State() showEdit: boolean = false;\r\n\r\n @State() styles = defaultStyles;\r\n @State() infoBonus: {\r\n storeId: string,\r\n userId: string,\r\n cellphone: number\r\n }\r\n\r\n @State() loading: boolean = false;\r\n @State() info: ReservedInfoDTO;\r\n\r\n async componentWillLoad() {\r\n console.log(\"[CRM-BONUS-NOTE] componentWillLoad\");\r\n await this.upadateCheckToFreteAndGetUrl();\r\n }\r\n\r\n async upadateCheckToFreteAndGetUrl() {\r\n\r\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\r\n\r\n const key = getKeyReserveByCartId(this.cartWake.id);\r\n try {\r\n const info = await getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name);\r\n\r\n if (info.bonusBalance) {\r\n localStorage.setItem(this.cartWake.id, info.bonusBalance);\r\n localStorage.setItem(key, JSON.stringify({\r\n hasBonus: true,\r\n }));\r\n }\r\n\r\n if (info.isBonusProcessed) {\r\n this.startTime();\r\n }\r\n\r\n if (info?.metadata?.url) {\r\n this.url = info?.metadata?.url;\r\n }\r\n\r\n this.infoBonus = {\r\n storeId: info?.metadata.storeId,\r\n userId: info?.metadata.userId,\r\n cellphone: info?.metadata?.cellphone,\r\n }\r\n\r\n console.log('info', info);\r\n\r\n this.info = info;\r\n } catch (error) {\r\n localStorage.removeItem(key);\r\n localStorage.removeItem(this.cartWake.id);\r\n }\r\n\r\n this.config = getInfoCustomization(this.cartWake.store.name);\r\n\r\n if (this.config.keepStoreFrontStyle) {\r\n this.styles = null;\r\n }\r\n\r\n const envios = document.getElementsByName('forma-envio');\r\n envios.forEach((envio: any) => {\r\n envio.checked = false;\r\n });\r\n\r\n }\r\n\r\n async processBonus() {\r\n this.loading = true;\r\n try {\r\n const cart = await getCart();\r\n\r\n console.log('[cart-note]', cart);\r\n\r\n const products = buildProductsByWake(cart.products);\r\n\r\n const payload: IProccesPinBonusDto = {\r\n pin: \"2018\",\r\n cellphone: this.infoBonus.cellphone,\r\n storeId: this.infoBonus?.storeId.toString(),\r\n userId: this.infoBonus?.userId.toString(),\r\n checkoutId: this.cartWake.id,\r\n checkoutProducts: products,\r\n name: \"\",\r\n storeName: this.cartWake.store.name\r\n }\r\n\r\n this.bonus = await this.crmBonusService.validatePinBonus(payload);\r\n } catch (error) {\r\n console.error('Error processing bonus:', error);\r\n } finally {\r\n this.loading = false;\r\n\r\n await this.upadateCheckToFreteAndGetUrl();\r\n }\r\n\r\n }\r\n\r\n handleHide() {\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n return !!amount;\r\n }\r\n\r\n getAmount() {\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n\r\n return amount ? Number(amount).toFixed(2).replace(\".\", \",\") || \"0,00\" : \"0,00\";\r\n }\r\n\r\n async backCart() {\r\n window.location.href = this.url;\r\n }\r\n\r\n\r\n private startTime() {\r\n\r\n if (!localStorage.getItem(\"bc:time-allow\")) {\r\n localStorage.removeItem(\"bc:time\")\r\n }\r\n\r\n setTime();\r\n }\r\n\r\n hasBonus() {\r\n const _bonus = localStorage.getItem(getKeyReserveByCartId(this.cartWake.id));\r\n\r\n const info = {\r\n hasBonus: false,\r\n requestBonus: false\r\n }\r\n\r\n if (_bonus) {\r\n this.bonus = JSON.parse(_bonus);\r\n info.hasBonus = this.bonus.hasBonus;\r\n info.requestBonus = true;\r\n }\r\n\r\n return info;\r\n }\r\n\r\n getTime() {\r\n const time = localStorage.getItem(\"bc:time\")\r\n\r\n return time ? Number(time) : 0;\r\n }\r\n\r\n render() {\r\n\r\n const giftbackname = this.config?.giftbackTitle || \"Giftback\";\r\n\r\n const infobonus = this.hasBonus();\r\n\r\n const inputContaCorrenteNo = document.getElementById('btn-contaCorrente-nao');\r\n\r\n if (inputContaCorrenteNo) {\r\n inputContaCorrenteNo.addEventListener('change', async () => {\r\n console.log('O rádio foi selecionado! NÃO');\r\n\r\n setTimeout(async () => {\r\n await this.processBonus();\r\n }, 4000);\r\n });\r\n }\r\n\r\n const inputContaCorrenteYes = document.getElementById('btn-contaCorrente-sim');\r\n\r\n if (inputContaCorrenteYes) {\r\n inputContaCorrenteYes.addEventListener('change', async () => {\r\n console.log('O rádio foi selecionado! SIM');\r\n setTimeout(async () => {\r\n await this.processBonus();\r\n }, 4000);\r\n });\r\n }\r\n\r\n return (\r\n <loading-container loading={this.loading} >\r\n <div class=\"note-container\" style={this.styles}>\r\n <div class=\"note-header\">\r\n\r\n <p class=\"note-title\">\r\n <img src={money} width={23} />\r\n {this.config.giftbackTitle}\r\n </p>\r\n {\r\n infobonus.hasBonus && (\r\n <div>\r\n {this.showEdit && (\r\n <p class=\"back-cart\" onClick={() => this.backCart()}>\r\n {i18next.t(\"edit\")}\r\n </p>\r\n )}\r\n </div>\r\n )\r\n }\r\n </div>\r\n\r\n {\r\n infobonus.hasBonus &&\r\n (\r\n <p class=\"note-description-2\">\r\n {i18next.t(\"withApplyBonus\", { giftbackname: giftbackname })} <strong>R$ {this.getAmount()}.</strong>\r\n </p>\r\n )\r\n }\r\n\r\n {\r\n (infobonus.requestBonus && !infobonus.hasBonus) &&\r\n (\r\n <p class=\"note-description-not\">\r\n {i18next.t(\"noBonus\", { giftbackname: giftbackname })}\r\n </p>\r\n )\r\n }\r\n\r\n {\r\n !infobonus.requestBonus &&\r\n (\r\n <div class=\"description\">\r\n <p class=\"note-description-not\">\r\n {i18next.t(\"noBonus\", { giftbackname: giftbackname })}\r\n </p>\r\n </div>\r\n )\r\n }\r\n </div>\r\n </loading-container>\r\n )\r\n }\r\n}"],"version":3}
@@ -5,7 +5,7 @@ const crmBonusTray = class {
5
5
  registerInstance(this, hostRef);
6
6
  }
7
7
  render() {
8
- return (h("div", { key: 'cac3440a4fc57bc74e77132efa2057c3b90b8b44' }, "COMPONENT BYCODER"));
8
+ return (h("div", { key: 'b6bc65194b83ea61b085410d60680f3e9cb16ca0' }, "COMPONENT BYCODER"));
9
9
  }
10
10
  };
11
11
 
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, h } from './index-bdb70d5a.js';
2
- import { C as CrmBonusService, U as USED_KEY } from './crmbonus.service-aafcb1ec.js';
2
+ import { C as CrmBonusService, U as USED_KEY } from './crmbonus.service-3ab820ba.js';
3
3
  import { d as defaultStyles, S as StepFormEnum } from './index-dc3ebdf0.js';
4
4
  import { i as instance } from './i18n-b9d8b0cc.js';
5
- import { b as buildProductsByWake } from './build.payload.helper-09dcb309.js';
6
- import { g as getCart, a as getInfoBonusByCartIdAndStoreName, C as CartWake } from './cart.helper-4d1bf8e2.js';
5
+ import { b as buildProductsByWake } from './build.payload.helper-96f9c8b8.js';
6
+ import { g as getCart, a as getInfoBonusByCartIdAndStoreName, C as CartWake } from './cart.helper-9c847c16.js';
7
7
 
8
8
  const crmBonusCss = ".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}";
9
9
  const CrmBonusStyle0 = crmBonusCss;
@@ -87,8 +87,8 @@ const CrmBonus = class {
87
87
  });
88
88
  });
89
89
  instance.changeLanguage(instance.language);
90
- await this.handleLoad();
91
90
  await this.loadSession();
91
+ this.handleLoad();
92
92
  await this.loadConfigStore();
93
93
  }
94
94
  async loadConfigStore() {
@@ -99,15 +99,29 @@ const CrmBonus = class {
99
99
  console.log('[infoBonus]', infoBonus);
100
100
  this.reservedInfo = infoBonus;
101
101
  if (customization.keepStoreFrontStyle) {
102
+ console.log('[bc:usar estilo da loja]');
102
103
  this.styles = null;
103
104
  }
104
105
  }
106
+ async fetchCustomer(userId, storeName) {
107
+ try {
108
+ return await this.crmBonusService.getCustomer(userId, storeName);
109
+ }
110
+ catch (error) {
111
+ console.error('[fetchCustomer] Error fetching customer:', error);
112
+ return null;
113
+ }
114
+ }
105
115
  async handleLoad() {
106
116
  try {
107
- this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();
108
117
  if (this.cartWake.user.id) {
109
- this.customer = await this.crmBonusService.getCustomer(this.cartWake.user.id, this.cartWake.store.name);
110
- console.log('customer', this.customer);
118
+ this.fetchCustomer(this.cartWake.user.id, this.cartWake.store.name).then((customer) => {
119
+ console.log('[bc:loading customer]');
120
+ if (customer) {
121
+ this.customer = customer;
122
+ console.log('customer', this.customer);
123
+ }
124
+ });
111
125
  }
112
126
  const amount = localStorage.getItem(this.cartWake.id);
113
127
  if (amount) {
@@ -121,7 +135,10 @@ const CrmBonus = class {
121
135
  }
122
136
  }
123
137
  async loadSession() {
138
+ this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();
139
+ console.log('[bc:carregou carrinho]');
124
140
  this.session = await this.crmBonusService.getToken(this.cartWake.store.name);
141
+ console.log('[bc:carregou session]');
125
142
  setTimeout(() => {
126
143
  this.loadSession();
127
144
  }, 1500000);
@@ -1 +1 @@
1
- {"file":"crm-bonus.entry.js","mappings":"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","names":["i18next"],"sources":["src/components/crm-bonus/crm-bonus.css?tag=crm-bonus&encapsulation=shadow","src/components/crm-bonus/crm-bonus.tsx"],"sourcesContent":["\r\n.container-button {\r\n /* max-width: 100%; */\r\n cursor: pointer;\r\n padding: 5px 5px 5px 14px;\r\n /* display: flex; */\r\n}\r\n\r\n/* padding: 0 15px 15px;\r\nborder: 1px solid #ddd;\r\nmargin-bottom: 20px; */\r\n\r\n.section-crm {\r\n border: 1px solid #dbd4d4;\r\n /* min-height: 50px; */\r\n text-align: -webkit-center;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.section-cart-crm {\r\n margin-top: 10px;\r\n}\r\n\r\n.section-cart-crm p {\r\n padding: 0;\r\n margin: 0px 0px 0px 15px;\r\n}\r\n\r\n.button {\r\n top: 50%;\r\n background-color: #6c6c7e;\r\n color: #fff;\r\n border: none;\r\n /* border-radius: 10px; */\r\n padding: 15px;\r\n min-height: 30px;\r\n min-width: 120px;\r\n /* font-size: 20px; */\r\n cursor: pointer;\r\n margin-left: 10px;\r\n height: 70px;\r\n}\r\n\r\n.form-container {\r\n width: 97%;\r\n display: flex;\r\n justify-content: space-around;\r\n}\r\n\r\n\r\n.btn {\r\n display: inline-block;\r\n padding: 6px 12px;\r\n margin-bottom: 0;\r\n /* font-size: 14px; */\r\n font-weight: 400;\r\n line-height: 1.42857143;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n background-image: none;\r\n border: 1px solid transparent;\r\n border-radius: 0px;\r\n}\r\n\r\n.form-container .btnCrm {\r\n background: #00162e;\r\n border-color: #00162e;\r\n width: 30%;\r\n color: #fff;\r\n}\r\n\r\n.message-alert {\r\n color: #df4d4d;\r\n margin-top: 5px;\r\n}","import { Component, Method, Prop, State, h } from '@stencil/core';\r\nimport { IProduct, IProductWake, ICustomer } from '../../dto/validate.pin.bonus';\r\nimport { CrmBonusService } from '../../services/crmbonus.service';\r\nimport { IPinSent } from '../../components';\r\nimport { defaultStyles, StepFormEnum } from '../../contants';\r\n\r\nimport i18next from '../../i18n/i18n'\r\nimport { buildProductsByWake } from '../../helpers/build.payload.helper';\r\nimport { getCart, getInfoBonusByCartIdAndStoreName } from '../../helpers/cart.helper';\r\nimport { CartWake } from '../../objectvalues/cart.wake';\r\nimport { USED_KEY } from '../../utils/keys.storage';\r\nimport { ReservedInfoDTO } from '../../dto/reserved-info.dto';\r\n\r\n@Component({\r\n tag: 'crm-bonus',\r\n styleUrl: 'crm-bonus.css',\r\n assetsDirs: ['assets'],\r\n // scoped: true\r\n shadow: true\r\n})\r\nexport class CrmBonus {\r\n\r\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\n private crmBonusRef: HTMLCrmGiftbackFormElement;\r\n\r\n @Prop() cart;\r\n @Prop() canhidden: boolean = false;\r\n\r\n @State() showModal: boolean = false;\r\n\r\n @State() cartWake: CartWake;\r\n\r\n @State() customer: ICustomer = {\r\n birthDate: \"\",\r\n document: \"\",\r\n name: \"\",\r\n phone: \"\"\r\n };\r\n\r\n @State() loading: boolean = false;\r\n @State() message: string;\r\n @State() phone: number;\r\n @State() canCancel: boolean = false;\r\n @State() amountCancel: string;\r\n @State() sent: IPinSent;\r\n\r\n @State() session: string;\r\n @State() loading_reprocess = false;\r\n @State() styles = defaultStyles;\r\n @State() reservedInfo: ReservedInfoDTO;\r\n\r\n @Method()\r\n async resetBonus() {\r\n console.log('[START RESET BONUS]!!!!!');\r\n\r\n try {\r\n await this.crmBonusRef.processBonus(this.buildProducts(), true);\r\n console.log('[BONUS RESETADO]!!!!!');\r\n } catch (err) {\r\n\r\n this.loading = false;\r\n console.log('[error ao reprocessar bonous]');\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PHONE);\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n @Method()\r\n async setloading() {\r\n this.loading_reprocess = !this.loading_reprocess;\r\n }\r\n\r\n @Method()\r\n async reprocess() {\r\n console.log(\"[CRMBONUS] - reprocess\")\r\n this.loading_reprocess = true\r\n\r\n try {\r\n\r\n const isUse = localStorage.getItem(USED_KEY);\r\n\r\n if (!isUse) return;\r\n\r\n this.cartWake = await getCart();\r\n await this.resetBonus();\r\n } catch (err) {\r\n console.debug('[watchProducts]', err.message);\r\n } finally {\r\n this.loading_reprocess = false\r\n }\r\n }\r\n\r\n async componentWillLoad() {\r\n\r\n window.addEventListener('productRemovedFromCart', async () => {\r\n console.log('[CRMBONUS] - productRemovedFromCart');\r\n await this.reprocess()\r\n });\r\n\r\n window.addEventListener('productAddedToCart', async () => {\r\n console.log('[CRMBONUS] - productAddedToCart');\r\n await this.reprocess();\r\n });\r\n\r\n document.querySelectorAll('form').forEach((el) => {\r\n el.addEventListener(\"submit\", () => {\r\n console.log(\"[CRMBONUS] - Formulário está sendo submetido!\");\r\n // você pode marcar como \"em submissão\" aqui\r\n\r\n setTimeout(async () => {\r\n await this.reprocess();\r\n })\r\n });\r\n })\r\n\r\n\r\n i18next.changeLanguage(i18next.language);\r\n\r\n await this.handleLoad();\r\n\r\n await this.loadSession();\r\n await this.loadConfigStore()\r\n }\r\n\r\n async loadConfigStore() {\r\n\r\n const [customization, infoBonus] = await Promise.all([\r\n this.crmBonusService.getCustomization(this.cartWake.store.name),\r\n getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)\r\n ]);\r\n\r\n console.log('[infoBonus]', infoBonus);\r\n\r\n this.reservedInfo = infoBonus;\r\n\r\n if (customization.keepStoreFrontStyle) {\r\n this.styles = null;\r\n }\r\n }\r\n\r\n async handleLoad() {\r\n try {\r\n\r\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\r\n\r\n if (this.cartWake.user.id) {\r\n this.customer = await this.crmBonusService.getCustomer(this.cartWake.user.id, this.cartWake.store.name);\r\n console.log('customer', this.customer);\r\n }\r\n\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n\r\n if (amount) {\r\n this.canCancel = true;\r\n this.amountCancel = amount;\r\n }\r\n\r\n await this.buildAndGetProducts(this.cartWake.products);\r\n } catch (error) {\r\n console.log('info customer')\r\n }\r\n }\r\n\r\n async loadSession() {\r\n this.session = await this.crmBonusService.getToken(this.cartWake.store.name);\r\n\r\n setTimeout(() => {\r\n this.loadSession()\r\n }, 1500000)\r\n\r\n }\r\n\r\n async buildAndGetProducts(productsWake: IProductWake[]) {\r\n\r\n const key = `bc-products:${this.cartWake.id}`;\r\n\r\n const productsString = JSON.stringify(productsWake)\r\n\r\n localStorage.setItem(key, productsString);\r\n\r\n const products_in_cache = JSON.parse(localStorage.getItem(key));\r\n\r\n const products: Array<IProductWake> = []\r\n\r\n for (const product_cart of productsWake) {\r\n\r\n const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId)\r\n\r\n const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === \"Formula\")\r\n\r\n if (pro) {\r\n products.push({\r\n ...product_cart,\r\n PrecoPor: pro.PrecoPor + (ajuste.Valor * -1),\r\n Quantidade: pro.Quantidade,\r\n Ajustes: pro.Ajustes\r\n })\r\n } else {\r\n products.push(product_cart)\r\n }\r\n\r\n }\r\n\r\n this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);\r\n\r\n }\r\n\r\n public async sendPin(phone: string) {\r\n this.loading = true;\r\n this.message = \"\";\r\n\r\n try {\r\n\r\n const _phone = phone.replace(/\\D/g, '');\r\n this.phone = Number(_phone);\r\n\r\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);;\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\r\n\r\n this.showModal = true;\r\n } catch (error) {\r\n this.message = error?.response?.data?.message\r\n } finally {\r\n this.loading = false\r\n }\r\n }\r\n\r\n public async sendPinName(customerName: string) {\r\n this.loading = true;\r\n this.message = \"\";\r\n\r\n try {\r\n this.customer.name = customerName;\r\n\r\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\r\n\r\n this.showModal = true;\r\n } catch (error) {\r\n this.message = error?.response?.data?.message\r\n } finally {\r\n this.loading = false\r\n }\r\n }\r\n\r\n buildProducts(): IProduct[] {\r\n return buildProductsByWake(this.cartWake.products);\r\n }\r\n\r\n handleCloseModal() {\r\n this.showModal = false;\r\n }\r\n\r\n save(amount: number) {\r\n localStorage.setItem(this.cartWake.id, amount.toString());\r\n this.canCancel = true;\r\n this.amountCancel = amount.toString()\r\n }\r\n\r\n async cancel() {\r\n this.message = \"\";\r\n this.loading = true;\r\n try {\r\n await this.crmBonusService.cancel(this.cartWake.id);\r\n this.canCancel = false;\r\n\r\n localStorage.removeItem(this.cartWake.id);\r\n } catch (error) {\r\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n async handleSendPin(phone: string) {\r\n this.message = \"\"\r\n if (!phone) {\r\n this.message = \"Informe seu telefone\";\r\n return;\r\n }\r\n\r\n this.customer.phone = phone;\r\n const _phone = phone.replace(/\\D/g, '');\r\n this.phone = Number(_phone);\r\n\r\n if (this.customer.name) {\r\n return this.sendPin(phone)\r\n }\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_NAME);\r\n this.showModal = true;\r\n }\r\n\r\n render() {\r\n\r\n if (this.canhidden) {\r\n return null;\r\n }\r\n\r\n return (\r\n <loading-container loading={this.loading_reprocess} >\r\n <crm-giftback-form\r\n customStyles={this.styles}\r\n style={{ position: \"relative\" }}\r\n ref={ref => this.crmBonusRef = ref}\r\n storeName={this.cartWake.store.name}\r\n products={this.buildProducts()}\r\n cartId={this.cartWake.id}\r\n customer={this.customer}\r\n loadProducts={() => this.buildProducts()}\r\n loadAll={() => this.handleLoad()}\r\n reservedInfo={this.reservedInfo}\r\n\r\n />\r\n </loading-container>\r\n )\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"crm-bonus.entry.js","mappings":"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","names":["i18next"],"sources":["src/components/crm-bonus/crm-bonus.css?tag=crm-bonus&encapsulation=shadow","src/components/crm-bonus/crm-bonus.tsx"],"sourcesContent":["\r\n.container-button {\r\n /* max-width: 100%; */\r\n cursor: pointer;\r\n padding: 5px 5px 5px 14px;\r\n /* display: flex; */\r\n}\r\n\r\n/* padding: 0 15px 15px;\r\nborder: 1px solid #ddd;\r\nmargin-bottom: 20px; */\r\n\r\n.section-crm {\r\n border: 1px solid #dbd4d4;\r\n /* min-height: 50px; */\r\n text-align: -webkit-center;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.section-cart-crm {\r\n margin-top: 10px;\r\n}\r\n\r\n.section-cart-crm p {\r\n padding: 0;\r\n margin: 0px 0px 0px 15px;\r\n}\r\n\r\n.button {\r\n top: 50%;\r\n background-color: #6c6c7e;\r\n color: #fff;\r\n border: none;\r\n /* border-radius: 10px; */\r\n padding: 15px;\r\n min-height: 30px;\r\n min-width: 120px;\r\n /* font-size: 20px; */\r\n cursor: pointer;\r\n margin-left: 10px;\r\n height: 70px;\r\n}\r\n\r\n.form-container {\r\n width: 97%;\r\n display: flex;\r\n justify-content: space-around;\r\n}\r\n\r\n\r\n.btn {\r\n display: inline-block;\r\n padding: 6px 12px;\r\n margin-bottom: 0;\r\n /* font-size: 14px; */\r\n font-weight: 400;\r\n line-height: 1.42857143;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n background-image: none;\r\n border: 1px solid transparent;\r\n border-radius: 0px;\r\n}\r\n\r\n.form-container .btnCrm {\r\n background: #00162e;\r\n border-color: #00162e;\r\n width: 30%;\r\n color: #fff;\r\n}\r\n\r\n.message-alert {\r\n color: #df4d4d;\r\n margin-top: 5px;\r\n}","import { Component, Method, Prop, State, h } from '@stencil/core';\r\nimport { IProduct, IProductWake, ICustomer } from '../../dto/validate.pin.bonus';\r\nimport { CrmBonusService } from '../../services/crmbonus.service';\r\nimport { IPinSent } from '../../components';\r\nimport { defaultStyles, StepFormEnum } from '../../contants';\r\n\r\nimport i18next from '../../i18n/i18n'\r\nimport { buildProductsByWake } from '../../helpers/build.payload.helper';\r\nimport { getCart, getInfoBonusByCartIdAndStoreName } from '../../helpers/cart.helper';\r\nimport { CartWake } from '../../objectvalues/cart.wake';\r\nimport { USED_KEY } from '../../utils/keys.storage';\r\nimport { ReservedInfoDTO } from '../../dto/reserved-info.dto';\r\n\r\n@Component({\r\n tag: 'crm-bonus',\r\n styleUrl: 'crm-bonus.css',\r\n assetsDirs: ['assets'],\r\n // scoped: true\r\n shadow: true\r\n})\r\nexport class CrmBonus {\r\n\r\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\r\n\r\n private crmBonusRef: HTMLCrmGiftbackFormElement;\r\n\r\n @Prop() cart;\r\n @Prop() canhidden: boolean = false;\r\n\r\n @State() showModal: boolean = false;\r\n\r\n @State() cartWake: CartWake;\r\n\r\n @State() customer: ICustomer = {\r\n birthDate: \"\",\r\n document: \"\",\r\n name: \"\",\r\n phone: \"\"\r\n };\r\n\r\n @State() loading: boolean = false;\r\n @State() message: string;\r\n @State() phone: number;\r\n @State() canCancel: boolean = false;\r\n @State() amountCancel: string;\r\n @State() sent: IPinSent;\r\n\r\n @State() session: string;\r\n @State() loading_reprocess = false;\r\n @State() styles = defaultStyles;\r\n @State() reservedInfo: ReservedInfoDTO;\r\n\r\n @Method()\r\n async resetBonus() {\r\n console.log('[START RESET BONUS]!!!!!');\r\n\r\n try {\r\n await this.crmBonusRef.processBonus(this.buildProducts(), true);\r\n console.log('[BONUS RESETADO]!!!!!');\r\n } catch (err) {\r\n\r\n this.loading = false;\r\n console.log('[error ao reprocessar bonous]');\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PHONE);\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n @Method()\r\n async setloading() {\r\n this.loading_reprocess = !this.loading_reprocess;\r\n }\r\n\r\n @Method()\r\n async reprocess() {\r\n console.log(\"[CRMBONUS] - reprocess\")\r\n this.loading_reprocess = true\r\n\r\n try {\r\n\r\n const isUse = localStorage.getItem(USED_KEY);\r\n\r\n if (!isUse) return;\r\n\r\n this.cartWake = await getCart();\r\n await this.resetBonus();\r\n } catch (err) {\r\n console.debug('[watchProducts]', err.message);\r\n } finally {\r\n this.loading_reprocess = false\r\n }\r\n }\r\n\r\n async componentWillLoad() {\r\n\r\n window.addEventListener('productRemovedFromCart', async () => {\r\n console.log('[CRMBONUS] - productRemovedFromCart');\r\n await this.reprocess()\r\n });\r\n\r\n window.addEventListener('productAddedToCart', async () => {\r\n console.log('[CRMBONUS] - productAddedToCart');\r\n await this.reprocess();\r\n });\r\n\r\n document.querySelectorAll('form').forEach((el) => {\r\n el.addEventListener(\"submit\", () => {\r\n console.log(\"[CRMBONUS] - Formulário está sendo submetido!\");\r\n // você pode marcar como \"em submissão\" aqui\r\n setTimeout(async () => {\r\n await this.reprocess();\r\n })\r\n });\r\n })\r\n\r\n i18next.changeLanguage(i18next.language);\r\n \r\n await this.loadSession();\r\n\r\n this.handleLoad();\r\n await this.loadConfigStore()\r\n }\r\n\r\n async loadConfigStore() {\r\n\r\n const [customization, infoBonus] = await Promise.all([\r\n this.crmBonusService.getCustomization(this.cartWake.store.name),\r\n getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)\r\n ]);\r\n\r\n console.log('[infoBonus]', infoBonus);\r\n\r\n this.reservedInfo = infoBonus;\r\n\r\n if (customization.keepStoreFrontStyle) {\r\n console.log('[bc:usar estilo da loja]');\r\n this.styles = null;\r\n }\r\n }\r\n\r\n async fetchCustomer(userId: number, storeName: string) {\r\n try {\r\n return await this.crmBonusService.getCustomer(userId, storeName);\r\n } catch (error) {\r\n console.error('[fetchCustomer] Error fetching customer:', error);\r\n return null;\r\n }\r\n }\r\n\r\n async handleLoad() {\r\n try {\r\n if (this.cartWake.user.id) {\r\n this.fetchCustomer(this.cartWake.user.id, this.cartWake.store.name).then((customer) => {\r\n console.log('[bc:loading customer]');\r\n if (customer) {\r\n this.customer = customer;\r\n console.log('customer', this.customer);\r\n }\r\n });\r\n }\r\n\r\n const amount = localStorage.getItem(this.cartWake.id);\r\n\r\n if (amount) {\r\n this.canCancel = true;\r\n this.amountCancel = amount;\r\n }\r\n\r\n await this.buildAndGetProducts(this.cartWake.products);\r\n } catch (error) {\r\n console.log('info customer')\r\n }\r\n }\r\n\r\n async loadSession() {\r\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\r\n console.log('[bc:carregou carrinho]');\r\n\r\n this.session = await this.crmBonusService.getToken(this.cartWake.store.name);\r\n console.log('[bc:carregou session]');\r\n setTimeout(() => {\r\n this.loadSession()\r\n }, 1500000)\r\n\r\n }\r\n\r\n async buildAndGetProducts(productsWake: IProductWake[]) {\r\n\r\n const key = `bc-products:${this.cartWake.id}`;\r\n\r\n const productsString = JSON.stringify(productsWake)\r\n\r\n localStorage.setItem(key, productsString);\r\n\r\n const products_in_cache = JSON.parse(localStorage.getItem(key));\r\n\r\n const products: Array<IProductWake> = []\r\n\r\n for (const product_cart of productsWake) {\r\n\r\n const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId)\r\n\r\n const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === \"Formula\")\r\n\r\n if (pro) {\r\n products.push({\r\n ...product_cart,\r\n PrecoPor: pro.PrecoPor + (ajuste.Valor * -1),\r\n Quantidade: pro.Quantidade,\r\n Ajustes: pro.Ajustes\r\n })\r\n } else {\r\n products.push(product_cart)\r\n }\r\n\r\n }\r\n\r\n this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);\r\n\r\n }\r\n\r\n public async sendPin(phone: string) {\r\n this.loading = true;\r\n this.message = \"\";\r\n\r\n try {\r\n\r\n const _phone = phone.replace(/\\D/g, '');\r\n this.phone = Number(_phone);\r\n\r\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);;\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\r\n\r\n this.showModal = true;\r\n } catch (error) {\r\n this.message = error?.response?.data?.message\r\n } finally {\r\n this.loading = false\r\n }\r\n }\r\n\r\n public async sendPinName(customerName: string) {\r\n this.loading = true;\r\n this.message = \"\";\r\n\r\n try {\r\n this.customer.name = customerName;\r\n\r\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\r\n\r\n this.showModal = true;\r\n } catch (error) {\r\n this.message = error?.response?.data?.message\r\n } finally {\r\n this.loading = false\r\n }\r\n }\r\n\r\n buildProducts(): IProduct[] {\r\n return buildProductsByWake(this.cartWake.products);\r\n }\r\n\r\n handleCloseModal() {\r\n this.showModal = false;\r\n }\r\n\r\n save(amount: number) {\r\n localStorage.setItem(this.cartWake.id, amount.toString());\r\n this.canCancel = true;\r\n this.amountCancel = amount.toString()\r\n }\r\n\r\n async cancel() {\r\n this.message = \"\";\r\n this.loading = true;\r\n try {\r\n await this.crmBonusService.cancel(this.cartWake.id);\r\n this.canCancel = false;\r\n\r\n localStorage.removeItem(this.cartWake.id);\r\n } catch (error) {\r\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n async handleSendPin(phone: string) {\r\n this.message = \"\"\r\n if (!phone) {\r\n this.message = \"Informe seu telefone\";\r\n return;\r\n }\r\n\r\n this.customer.phone = phone;\r\n const _phone = phone.replace(/\\D/g, '');\r\n this.phone = Number(_phone);\r\n\r\n if (this.customer.name) {\r\n return this.sendPin(phone)\r\n }\r\n\r\n await this.crmBonusRef.setStep(StepFormEnum.STEP_NAME);\r\n this.showModal = true;\r\n }\r\n\r\n render() {\r\n\r\n if (this.canhidden) {\r\n return null;\r\n }\r\n\r\n return (\r\n <loading-container loading={this.loading_reprocess} >\r\n <crm-giftback-form\r\n customStyles={this.styles}\r\n style={{ position: \"relative\" }}\r\n ref={ref => this.crmBonusRef = ref}\r\n storeName={this.cartWake.store.name}\r\n products={this.buildProducts()}\r\n cartId={this.cartWake.id}\r\n customer={this.customer}\r\n loadProducts={() => this.buildProducts()}\r\n loadAll={() => this.handleLoad()}\r\n reservedInfo={this.reservedInfo}\r\n\r\n />\r\n </loading-container>\r\n )\r\n }\r\n}\r\n"],"version":3}