crmbonus-component-wake 2.1.31-ngrok → 2.1.32-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 (41) hide show
  1. package/dist/cjs/crm-bonus-2.cjs.entry.js +6 -257
  2. package/dist/cjs/crm-bonus-2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/crm-bonus.cjs.entry.js +257 -6
  4. package/dist/cjs/crm-bonus.cjs.entry.js.map +1 -1
  5. package/dist/cjs/crmbonus-component-wake.cjs.js +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/components/crm-bonus/crm-bonus.js +1 -1
  8. package/dist/collection/components/crm-bonus/crm-bonus.js.map +1 -1
  9. package/dist/collection/components/crm-bonus/crmbonus.js +2 -2
  10. package/dist/collection/components/crm-bonus/crmbonus.js.map +1 -1
  11. package/dist/components/crm-bonus-2.js +10 -332
  12. package/dist/components/crm-bonus-2.js.map +1 -1
  13. package/dist/components/crm-bonus-note.js +1 -1
  14. package/dist/components/crm-bonus.js +332 -10
  15. package/dist/components/crm-bonus.js.map +1 -1
  16. package/dist/components/crm-giftback-form.js +1 -1
  17. package/dist/components/giftback-info.js +1 -1
  18. package/dist/components/{p-fedabc25.js → p-028f43a1.js} +2 -2
  19. package/dist/components/{p-fedabc25.js.map → p-028f43a1.js.map} +1 -1
  20. package/dist/components/{p-78fbe33d.js → p-0bb6b0e5.js} +3 -3
  21. package/dist/components/{p-78fbe33d.js.map → p-0bb6b0e5.js.map} +1 -1
  22. package/dist/components/{p-0a5e4aca.js → p-c90ea2e9.js} +57 -57
  23. package/dist/components/p-c90ea2e9.js.map +1 -0
  24. package/dist/components/pedido-finalizado.js +1 -1
  25. package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js +1 -1
  26. package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js.map +1 -1
  27. package/dist/crmbonus-component-wake/{p-b928333a.entry.js → p-4ed412c2.entry.js} +2 -2
  28. package/dist/crmbonus-component-wake/p-4ed412c2.entry.js.map +1 -0
  29. package/dist/crmbonus-component-wake/{p-c54d706c.entry.js → p-a0d73d77.entry.js} +2 -2
  30. package/dist/crmbonus-component-wake/p-a0d73d77.entry.js.map +1 -0
  31. package/dist/esm/crm-bonus-2.entry.js +7 -258
  32. package/dist/esm/crm-bonus-2.entry.js.map +1 -1
  33. package/dist/esm/crm-bonus.entry.js +258 -7
  34. package/dist/esm/crm-bonus.entry.js.map +1 -1
  35. package/dist/esm/crmbonus-component-wake.js +1 -1
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/types/components.d.ts +4 -4
  38. package/package.json +1 -1
  39. package/dist/components/p-0a5e4aca.js.map +0 -1
  40. package/dist/crmbonus-component-wake/p-b928333a.entry.js.map +0 -1
  41. package/dist/crmbonus-component-wake/p-c54d706c.entry.js.map +0 -1
@@ -4,8 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a7537457.js');
6
6
  const cart_helper = require('./cart.helper-b08a12b2.js');
7
- const i18n = require('./i18n-1ce6cb94.js');
8
- const build_payload_helper = require('./build.payload.helper-b93f7ea5.js');
9
7
 
10
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}";
11
9
  const CrmBonus2Style0 = crmBonusCss;
@@ -13,267 +11,18 @@ const CrmBonus2Style0 = crmBonusCss;
13
11
  const CrmBonus = class {
14
12
  constructor(hostRef) {
15
13
  index.registerInstance(this, hostRef);
16
- this.crmBonusService = cart_helper.CrmBonusService.getInstance();
17
- this.cart = undefined;
18
- this.canhidden = false;
19
- this.showModal = false;
20
- this.cartWake = undefined;
21
- this.customer = {
22
- birthDate: "",
23
- document: "",
24
- name: "",
25
- phone: ""
26
- };
27
14
  this.loading = false;
28
- this.message = undefined;
29
- this.phone = undefined;
30
- this.canCancel = false;
31
- this.amountCancel = undefined;
32
- this.sent = undefined;
33
- this.session = undefined;
34
- this.loading_reprocess = false;
35
- this.styles = i18n.defaultStyles;
36
- this.reservedInfo = undefined;
37
- }
38
- async resetBonus() {
39
- console.log('[START RESET BONUS]!!!!!');
40
- try {
41
- await this.crmBonusRef.processBonus(this.buildProducts(), true);
42
- console.log('[BONUS RESETADO]!!!!!');
43
- }
44
- catch (err) {
45
- this.loading = false;
46
- console.log('[error ao reprocessar bonous]');
47
- await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_PHONE);
48
- }
49
- finally {
50
- this.loading = false;
51
- }
52
- }
53
- async setloading() {
54
- this.loading_reprocess = !this.loading_reprocess;
55
- }
56
- async reprocess() {
57
- console.log("[CRMBONUS] - reprocess");
58
- this.loading_reprocess = true;
59
- try {
60
- const isUse = localStorage.getItem(cart_helper.USED_KEY);
61
- if (!isUse)
62
- return;
63
- this.cartWake = await cart_helper.getCart();
64
- await this.resetBonus();
65
- }
66
- catch (err) {
67
- console.debug('[watchProducts]', err.message);
68
- }
69
- finally {
70
- this.loading_reprocess = false;
71
- }
72
- }
73
- async componentWillLoad() {
74
- window.addEventListener('productRemovedFromCart', async () => {
75
- console.log('[CRMBONUS] - productRemovedFromCart');
76
- await this.reprocess();
77
- });
78
- window.addEventListener('productAddedToCart', async () => {
79
- console.log('[CRMBONUS] - productAddedToCart');
80
- await this.reprocess();
81
- });
82
- document.querySelectorAll('form').forEach((el) => {
83
- el.addEventListener("submit", () => {
84
- console.log("[CRMBONUS] - Formulário está sendo submetido!");
85
- // você pode marcar como "em submissão" aqui
86
- setTimeout(async () => {
87
- await this.reprocess();
88
- });
89
- });
90
- });
91
- await this.observerHandle();
92
- i18n.instance.changeLanguage(i18n.instance.language);
93
- await this.loadSession();
94
- this.handleLoad();
95
- await this.loadConfigStore();
15
+ this.cartWake = undefined;
96
16
  }
97
17
  async componentDidLoad() {
98
- console.log('[did load]');
99
- }
100
- async observerHandle() {
101
- const elements = document.getElementsByTagName('a');
102
- //@ts-ignore
103
- for (let el of elements) {
104
- console.log('[el.href]', el.href);
105
- if (el.href.includes('Produto/Delete')) {
106
- el.addEventListener('click', async () => {
107
- console.log('[CRMBONUS] - Produto removido do carrinho');
108
- setTimeout(async () => {
109
- await this.reprocess();
110
- this.observerHandle();
111
- }, 2000);
112
- });
113
- }
114
- if (el.href.includes('Produto/Add')) {
115
- el.addEventListener('click', async () => {
116
- console.log('[CRMBONUS] - Produto adicionado ao carrinho');
117
- setTimeout(async () => {
118
- await this.reprocess();
119
- this.observerHandle();
120
- }, 2000);
121
- });
122
- }
123
- }
124
- }
125
- async loadConfigStore() {
126
- const [customization, infoBonus] = await Promise.all([
127
- this.crmBonusService.getCustomization(this.cartWake.store.name),
128
- cart_helper.getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)
129
- ]);
130
- console.log('[infoBonus]', infoBonus);
131
- this.reservedInfo = infoBonus;
132
- if (customization.keepStoreFrontStyle) {
133
- console.log('[bc:usar estilo da loja]');
134
- this.styles = null;
135
- }
136
- }
137
- async fetchCustomer(userId, storeName) {
138
- try {
139
- return await this.crmBonusService.getCustomer(userId, storeName);
140
- }
141
- catch (error) {
142
- console.error('[fetchCustomer] Error fetching customer:', error);
143
- return null;
144
- }
145
- }
146
- async handleLoad() {
147
- try {
148
- if (this.cartWake.user.id) {
149
- this.fetchCustomer(this.cartWake.user.id, this.cartWake.store.name).then((customer) => {
150
- console.log('[bc:loading customer]');
151
- if (customer) {
152
- this.customer = customer;
153
- console.log('customer', this.customer);
154
- }
155
- });
156
- }
157
- const amount = localStorage.getItem(this.cartWake.id);
158
- if (amount) {
159
- this.canCancel = true;
160
- this.amountCancel = amount;
161
- }
162
- await this.buildAndGetProducts(this.cartWake.products);
163
- }
164
- catch (error) {
165
- console.log('info customer');
166
- }
167
- }
168
- async loadSession() {
169
- this.cartWake = this.cart ? new cart_helper.CartWake(JSON.parse(this.cart)) : await cart_helper.getCart();
170
- console.log('[bc:carregou carrinho]');
171
- this.session = await this.crmBonusService.getToken(this.cartWake.store.name);
172
- console.log('[bc:carregou session]');
173
- setTimeout(() => {
174
- this.loadSession();
175
- }, 1500000);
176
- }
177
- async buildAndGetProducts(productsWake) {
178
- console.log();
179
- const key = `bc-products:${this.cartWake.id}`;
180
- const productsString = JSON.stringify(productsWake);
181
- localStorage.setItem(key, productsString);
182
- const products_in_cache = JSON.parse(localStorage.getItem(key));
183
- const products = [];
184
- for (const product_cart of productsWake) {
185
- const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId);
186
- //const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === "Formula")
187
- if (pro) {
188
- products.push(Object.assign(Object.assign({}, product_cart), { PrecoPor: pro.PrecoPor, PrecoDe: pro.PrecoDe, Quantidade: pro.Quantidade, Ajustes: pro.Ajustes }));
189
- }
190
- else {
191
- products.push(product_cart);
192
- }
193
- }
194
- this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);
195
- }
196
- async sendPin(phone) {
197
- var _a, _b;
198
- this.loading = true;
199
- this.message = "";
200
- try {
201
- const _phone = phone.replace(/\D/g, '');
202
- this.phone = Number(_phone);
203
- this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);
204
- await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_PIN);
205
- this.showModal = true;
206
- }
207
- catch (error) {
208
- this.message = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
209
- }
210
- finally {
211
- this.loading = false;
212
- }
213
- }
214
- async sendPinName(customerName) {
215
- var _a, _b;
216
- this.loading = true;
217
- this.message = "";
218
- try {
219
- this.customer.name = customerName;
220
- this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);
221
- await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_PIN);
222
- this.showModal = true;
223
- }
224
- catch (error) {
225
- this.message = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
226
- }
227
- finally {
228
- this.loading = false;
229
- }
230
- }
231
- buildProducts() {
232
- return build_payload_helper.buildProductsByWake(this.cartWake.products);
233
- }
234
- handleCloseModal() {
235
- this.showModal = false;
236
- }
237
- save(amount) {
238
- localStorage.setItem(this.cartWake.id, amount.toString());
239
- this.canCancel = true;
240
- this.amountCancel = amount.toString();
241
- }
242
- async cancel() {
243
- this.message = "";
244
- this.loading = true;
245
- try {
246
- await this.crmBonusService.cancel(this.cartWake.id);
247
- this.canCancel = false;
248
- localStorage.removeItem(this.cartWake.id);
249
- }
250
- catch (error) {
251
- this.message = "Não consegui cancelar o bônus, tente novamente!";
252
- }
253
- finally {
254
- this.loading = false;
255
- }
18
+ await this.loadCheckout();
256
19
  }
257
- async handleSendPin(phone) {
258
- this.message = "";
259
- if (!phone) {
260
- this.message = "Informe seu telefone";
261
- return;
262
- }
263
- this.customer.phone = phone;
264
- const _phone = phone.replace(/\D/g, '');
265
- this.phone = Number(_phone);
266
- if (this.customer.name) {
267
- return this.sendPin(phone);
268
- }
269
- await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_NAME);
270
- this.showModal = true;
20
+ async loadCheckout() {
21
+ this.cartWake = await cart_helper.getCart();
271
22
  }
272
23
  render() {
273
- if (this.canhidden) {
274
- return null;
275
- }
276
- return (index.h("loading-container", { loading: this.loading_reprocess }, index.h("crm-giftback-form", { customStyles: this.styles, style: { position: "relative" }, ref: ref => this.crmBonusRef = ref, storeName: this.cartWake.store.name, products: this.buildProducts(), cartId: this.cartWake.id, customer: this.customer, loadProducts: () => this.buildProducts(), loadAll: () => this.handleLoad(), reservedInfo: this.reservedInfo })));
24
+ console.log('this.cartWake', this.cartWake);
25
+ return (index.h("div", { key: 'cc9dc7fa4262bf6cb5df716164ee9413f9a3bc6f' }, index.h("loading-container", { key: '4d5ff4d93a3769e609b630cc0760043458990e64', loading: this.loading }, index.h("h3", { key: 'f7f60857813f42b2735cc3ee6e73523fb4018f2b' }, "CARREGANDO...")), this.cartWake && (index.h("div", { key: 'bb86c641b03cbf94e50560a3d0d62d022cb80499' }, this.cartWake.id))));
277
26
  }
278
27
  static get assetsDirs() { return ["assets"]; }
279
28
  };
@@ -1 +1 @@
1
- {"file":"crm-bonus-2.entry.cjs.js","mappings":"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","names":["CrmBonusService","defaultStyles","StepFormEnum","USED_KEY","getCart","i18next","getInfoBonusByCartIdAndStoreName","CartWake","buildProductsByWake","h"],"sources":["src/components/crm-bonus/crm-bonus.css?tag=crm-bonus-2&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-2',\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 await this.observerHandle();\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 componentDidLoad() {\r\n console.log('[did load]');\r\n \r\n }\r\n\r\n private async observerHandle() {\r\n const elements = document.getElementsByTagName('a');\r\n\r\n //@ts-ignore\r\n for (let el of elements) {\r\n console.log('[el.href]', el.href);\r\n if (el.href.includes('Produto/Delete')) {\r\n el.addEventListener('click', async () => {\r\n console.log('[CRMBONUS] - Produto removido do carrinho');\r\n\r\n setTimeout(async () => {\r\n await this.reprocess();\r\n this.observerHandle();\r\n }, 2000);\r\n\r\n });\r\n }\r\n\r\n if (el.href.includes('Produto/Add')) {\r\n el.addEventListener('click', async () => {\r\n console.log('[CRMBONUS] - Produto adicionado ao carrinho');\r\n setTimeout(async () => {\r\n await this.reprocess();\r\n this.observerHandle();\r\n }, 2000);\r\n });\r\n }\r\n }\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 async buildAndGetProducts(productsWake: IProductWake[]) {\r\n console.log()\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,\r\n PrecoDe: pro.PrecoDe,\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 </loading-container>\r\n )\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"crm-bonus-2.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,WAAW,GAAG,o8BAAo8B,CAAC;AACz9B,wBAAe,WAAW;;MCUb,QAAQ;;;uBAEE,KAAK;;;IAIxB,MAAM,gBAAgB;QAClB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;KAC5B;IAED,MAAM,YAAY;QACd,IAAI,CAAC,QAAQ,GAAG,MAAMA,mBAAO,EAAE,CAAC;KACnC;IAED,MAAM;QAEF,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE3C,QACIC,oEACIA,gFAAmB,OAAO,EAAE,IAAI,CAAC,OAAO,IACpCA,mFAAsB,CACN,EAEhB,IAAI,CAAC,QAAQ,KACTA,oEACK,IAAI,CAAC,QAAQ,CAAC,EAAE,CACf,CACT,CAEH,EAET;KACJ;;;;;;;","names":["getCart","h"],"sources":["src/components/crm-bonus/crm-bonus.css?tag=crm-bonus-2&encapsulation=shadow","src/components/crm-bonus/crmbonus.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, h, State } from \"@stencil/core\";\r\nimport { CartWake } from \"../../objectvalues/cart.wake\";\r\nimport { getCart } from \"../../helpers/cart.helper\";\r\n\r\n@Component({\r\n tag: 'crm-bonus-2',\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 @State() loading = false;\r\n\r\n @State() cartWake: CartWake;\r\n\r\n async componentDidLoad() {\r\n await this.loadCheckout()\r\n }\r\n\r\n async loadCheckout() {\r\n this.cartWake = await getCart();\r\n }\r\n\r\n render() {\r\n\r\n console.log('this.cartWake', this.cartWake)\r\n\r\n return (\r\n <div>\r\n <loading-container loading={this.loading}>\r\n <h3>CARREGANDO...</h3>\r\n </loading-container>\r\n {\r\n this.cartWake && (\r\n <div>\r\n {this.cartWake.id}\r\n </div>\r\n )\r\n }\r\n </div>\r\n\r\n )\r\n }\r\n}"],"version":3}
@@ -4,6 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a7537457.js');
6
6
  const cart_helper = require('./cart.helper-b08a12b2.js');
7
+ const i18n = require('./i18n-1ce6cb94.js');
8
+ const build_payload_helper = require('./build.payload.helper-b93f7ea5.js');
7
9
 
8
10
  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
11
  const CrmBonusStyle0 = crmBonusCss;
@@ -11,18 +13,267 @@ const CrmBonusStyle0 = crmBonusCss;
11
13
  const CrmBonus = class {
12
14
  constructor(hostRef) {
13
15
  index.registerInstance(this, hostRef);
14
- this.loading = false;
16
+ this.crmBonusService = cart_helper.CrmBonusService.getInstance();
17
+ this.cart = undefined;
18
+ this.canhidden = false;
19
+ this.showModal = false;
15
20
  this.cartWake = undefined;
21
+ this.customer = {
22
+ birthDate: "",
23
+ document: "",
24
+ name: "",
25
+ phone: ""
26
+ };
27
+ this.loading = false;
28
+ this.message = undefined;
29
+ this.phone = undefined;
30
+ this.canCancel = false;
31
+ this.amountCancel = undefined;
32
+ this.sent = undefined;
33
+ this.session = undefined;
34
+ this.loading_reprocess = false;
35
+ this.styles = i18n.defaultStyles;
36
+ this.reservedInfo = undefined;
37
+ }
38
+ async resetBonus() {
39
+ console.log('[START RESET BONUS]!!!!!');
40
+ try {
41
+ await this.crmBonusRef.processBonus(this.buildProducts(), true);
42
+ console.log('[BONUS RESETADO]!!!!!');
43
+ }
44
+ catch (err) {
45
+ this.loading = false;
46
+ console.log('[error ao reprocessar bonous]');
47
+ await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_PHONE);
48
+ }
49
+ finally {
50
+ this.loading = false;
51
+ }
52
+ }
53
+ async setloading() {
54
+ this.loading_reprocess = !this.loading_reprocess;
55
+ }
56
+ async reprocess() {
57
+ console.log("[CRMBONUS] - reprocess");
58
+ this.loading_reprocess = true;
59
+ try {
60
+ const isUse = localStorage.getItem(cart_helper.USED_KEY);
61
+ if (!isUse)
62
+ return;
63
+ this.cartWake = await cart_helper.getCart();
64
+ await this.resetBonus();
65
+ }
66
+ catch (err) {
67
+ console.debug('[watchProducts]', err.message);
68
+ }
69
+ finally {
70
+ this.loading_reprocess = false;
71
+ }
72
+ }
73
+ async componentWillLoad() {
74
+ window.addEventListener('productRemovedFromCart', async () => {
75
+ console.log('[CRMBONUS] - productRemovedFromCart');
76
+ await this.reprocess();
77
+ });
78
+ window.addEventListener('productAddedToCart', async () => {
79
+ console.log('[CRMBONUS] - productAddedToCart');
80
+ await this.reprocess();
81
+ });
82
+ document.querySelectorAll('form').forEach((el) => {
83
+ el.addEventListener("submit", () => {
84
+ console.log("[CRMBONUS] - Formulário está sendo submetido!");
85
+ // você pode marcar como "em submissão" aqui
86
+ setTimeout(async () => {
87
+ await this.reprocess();
88
+ });
89
+ });
90
+ });
91
+ await this.observerHandle();
92
+ i18n.instance.changeLanguage(i18n.instance.language);
93
+ await this.loadSession();
94
+ this.handleLoad();
95
+ await this.loadConfigStore();
16
96
  }
17
97
  async componentDidLoad() {
18
- await this.loadCheckout();
98
+ console.log('[did load]');
99
+ }
100
+ async observerHandle() {
101
+ const elements = document.getElementsByTagName('a');
102
+ //@ts-ignore
103
+ for (let el of elements) {
104
+ console.log('[el.href]', el.href);
105
+ if (el.href.includes('Produto/Delete')) {
106
+ el.addEventListener('click', async () => {
107
+ console.log('[CRMBONUS] - Produto removido do carrinho');
108
+ setTimeout(async () => {
109
+ await this.reprocess();
110
+ this.observerHandle();
111
+ }, 2000);
112
+ });
113
+ }
114
+ if (el.href.includes('Produto/Add')) {
115
+ el.addEventListener('click', async () => {
116
+ console.log('[CRMBONUS] - Produto adicionado ao carrinho');
117
+ setTimeout(async () => {
118
+ await this.reprocess();
119
+ this.observerHandle();
120
+ }, 2000);
121
+ });
122
+ }
123
+ }
124
+ }
125
+ async loadConfigStore() {
126
+ const [customization, infoBonus] = await Promise.all([
127
+ this.crmBonusService.getCustomization(this.cartWake.store.name),
128
+ cart_helper.getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)
129
+ ]);
130
+ console.log('[infoBonus]', infoBonus);
131
+ this.reservedInfo = infoBonus;
132
+ if (customization.keepStoreFrontStyle) {
133
+ console.log('[bc:usar estilo da loja]');
134
+ this.styles = null;
135
+ }
136
+ }
137
+ async fetchCustomer(userId, storeName) {
138
+ try {
139
+ return await this.crmBonusService.getCustomer(userId, storeName);
140
+ }
141
+ catch (error) {
142
+ console.error('[fetchCustomer] Error fetching customer:', error);
143
+ return null;
144
+ }
145
+ }
146
+ async handleLoad() {
147
+ try {
148
+ if (this.cartWake.user.id) {
149
+ this.fetchCustomer(this.cartWake.user.id, this.cartWake.store.name).then((customer) => {
150
+ console.log('[bc:loading customer]');
151
+ if (customer) {
152
+ this.customer = customer;
153
+ console.log('customer', this.customer);
154
+ }
155
+ });
156
+ }
157
+ const amount = localStorage.getItem(this.cartWake.id);
158
+ if (amount) {
159
+ this.canCancel = true;
160
+ this.amountCancel = amount;
161
+ }
162
+ await this.buildAndGetProducts(this.cartWake.products);
163
+ }
164
+ catch (error) {
165
+ console.log('info customer');
166
+ }
167
+ }
168
+ async loadSession() {
169
+ this.cartWake = this.cart ? new cart_helper.CartWake(JSON.parse(this.cart)) : await cart_helper.getCart();
170
+ console.log('[bc:carregou carrinho]');
171
+ this.session = await this.crmBonusService.getToken(this.cartWake.store.name);
172
+ console.log('[bc:carregou session]');
173
+ setTimeout(() => {
174
+ this.loadSession();
175
+ }, 1500000);
176
+ }
177
+ async buildAndGetProducts(productsWake) {
178
+ console.log();
179
+ const key = `bc-products:${this.cartWake.id}`;
180
+ const productsString = JSON.stringify(productsWake);
181
+ localStorage.setItem(key, productsString);
182
+ const products_in_cache = JSON.parse(localStorage.getItem(key));
183
+ const products = [];
184
+ for (const product_cart of productsWake) {
185
+ const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId);
186
+ //const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === "Formula")
187
+ if (pro) {
188
+ products.push(Object.assign(Object.assign({}, product_cart), { PrecoPor: pro.PrecoPor, PrecoDe: pro.PrecoDe, Quantidade: pro.Quantidade, Ajustes: pro.Ajustes }));
189
+ }
190
+ else {
191
+ products.push(product_cart);
192
+ }
193
+ }
194
+ this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);
195
+ }
196
+ async sendPin(phone) {
197
+ var _a, _b;
198
+ this.loading = true;
199
+ this.message = "";
200
+ try {
201
+ const _phone = phone.replace(/\D/g, '');
202
+ this.phone = Number(_phone);
203
+ this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);
204
+ await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_PIN);
205
+ this.showModal = true;
206
+ }
207
+ catch (error) {
208
+ this.message = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
209
+ }
210
+ finally {
211
+ this.loading = false;
212
+ }
213
+ }
214
+ async sendPinName(customerName) {
215
+ var _a, _b;
216
+ this.loading = true;
217
+ this.message = "";
218
+ try {
219
+ this.customer.name = customerName;
220
+ this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);
221
+ await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_PIN);
222
+ this.showModal = true;
223
+ }
224
+ catch (error) {
225
+ this.message = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
226
+ }
227
+ finally {
228
+ this.loading = false;
229
+ }
230
+ }
231
+ buildProducts() {
232
+ return build_payload_helper.buildProductsByWake(this.cartWake.products);
233
+ }
234
+ handleCloseModal() {
235
+ this.showModal = false;
236
+ }
237
+ save(amount) {
238
+ localStorage.setItem(this.cartWake.id, amount.toString());
239
+ this.canCancel = true;
240
+ this.amountCancel = amount.toString();
241
+ }
242
+ async cancel() {
243
+ this.message = "";
244
+ this.loading = true;
245
+ try {
246
+ await this.crmBonusService.cancel(this.cartWake.id);
247
+ this.canCancel = false;
248
+ localStorage.removeItem(this.cartWake.id);
249
+ }
250
+ catch (error) {
251
+ this.message = "Não consegui cancelar o bônus, tente novamente!";
252
+ }
253
+ finally {
254
+ this.loading = false;
255
+ }
19
256
  }
20
- async loadCheckout() {
21
- this.cartWake = await cart_helper.getCart();
257
+ async handleSendPin(phone) {
258
+ this.message = "";
259
+ if (!phone) {
260
+ this.message = "Informe seu telefone";
261
+ return;
262
+ }
263
+ this.customer.phone = phone;
264
+ const _phone = phone.replace(/\D/g, '');
265
+ this.phone = Number(_phone);
266
+ if (this.customer.name) {
267
+ return this.sendPin(phone);
268
+ }
269
+ await this.crmBonusRef.setStep(i18n.StepFormEnum.STEP_NAME);
270
+ this.showModal = true;
22
271
  }
23
272
  render() {
24
- console.log('this.cartWake', this.cartWake);
25
- return (index.h("div", { key: '160366af01c0d75173e38af9b31e415870b6f90f' }, index.h("loading-container", { key: '2da1fee71ed793c134f4191e05f961bfae4fc042', loading: this.loading }, index.h("h3", { key: '90f2c25ddf736df8ad27c65bc3cd270844f7f3c9' }, "CARREGANDO...")), this.cartWake && (index.h("div", { key: '2e2d8b3dec7c33dc4119baed54907372572c5287' }, this.cartWake.id))));
273
+ if (this.canhidden) {
274
+ return null;
275
+ }
276
+ return (index.h("loading-container", { loading: this.loading_reprocess }, index.h("crm-giftback-form", { customStyles: this.styles, style: { position: "relative" }, ref: ref => this.crmBonusRef = ref, storeName: this.cartWake.store.name, products: this.buildProducts(), cartId: this.cartWake.id, customer: this.customer, loadProducts: () => this.buildProducts(), loadAll: () => this.handleLoad(), reservedInfo: this.reservedInfo })));
26
277
  }
27
278
  static get assetsDirs() { return ["assets"]; }
28
279
  };