cloudcommerce 0.1.4 → 0.1.6
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.
- package/CHANGELOG.md +25 -0
- package/ecomplus-stores/monocard/functions/core/package.json +1 -1
- package/ecomplus-stores/monocard/functions/events/package.json +2 -2
- package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
- package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +6 -9
- package/ecomplus-stores/monocard/package.json +1 -1
- package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
- package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/ssr/package.json +6 -9
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/acai-com-granola.jpg +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/cafe-com-tapioca-e-aveia.jpg +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/PitchBar.vue +65 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TheHeader.vue +1 -1
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +0 -3
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +20 -11
- package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +33 -14
- package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +11 -5
- package/ecomplus-stores/tia-sonia/functions/ssr/uno.config.cjs +2 -3
- package/ecomplus-stores/tia-sonia/package.json +1 -1
- package/package.json +2 -2
- package/packages/api/package.json +1 -1
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/CHANGELOG.md +1 -0
- package/packages/apps/fb-conversions/README.md +1 -0
- package/packages/apps/fb-conversions/lib/fb-conversions-events.js +145 -0
- package/packages/apps/fb-conversions/lib/fb-conversions-events.js.map +1 -0
- package/packages/apps/fb-conversions/lib/index.js +2 -0
- package/packages/apps/fb-conversions/lib/index.js.map +1 -0
- package/packages/apps/fb-conversions/package.json +33 -0
- package/packages/apps/fb-conversions/src/fb-conversions-events.ts +178 -0
- package/packages/apps/fb-conversions/src/index.ts +1 -0
- package/packages/apps/fb-conversions/tsconfig.json +3 -0
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/infinitepay/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/events/lib/firebase.js +2 -0
- package/packages/events/lib/firebase.js.map +1 -1
- package/packages/events/package.json +2 -1
- package/packages/events/src/firebase.ts +2 -0
- package/packages/firebase/lib/config.d.ts +4 -0
- package/packages/firebase/lib/config.js +7 -0
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/package.json +1 -1
- package/packages/firebase/src/config.ts +7 -0
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/package.json +3 -1
- package/packages/storefront/astro.config.mjs +3 -1
- package/packages/storefront/dist/client/{Prices.d79bd862.js → Prices.6c44a513.js} +1 -1
- package/packages/storefront/dist/client/{ProductCard.6b27d9fa.js → ProductCard.69bba7fc.js} +1 -1
- package/packages/storefront/dist/client/assets/{_...slug_.4dbd1d47.css → _...slug_.15bda576.css} +1 -1
- package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.e4525076.js +1 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/entry.mjs +52 -166
- package/packages/storefront/package.json +3 -4
- package/packages/storefront/src/lib/components/Prices.vue +1 -1
- package/packages/storefront/tailwind.config.cjs +18 -14
- package/packages/storefront/uno.config.cjs +22 -21
- package/packages/types/package.json +1 -1
- package/ecomplus-stores/monocard/functions/ssr/.nvmrc +0 -1
- package/ecomplus-stores/tia-sonia/functions/ssr/.nvmrc +0 -1
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TopBar.vue +0 -133
- package/packages/storefront/.nvmrc +0 -1
- package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.b29421b3.js +0 -1
- package/packages/storefront/dist/server/chunks/avif/avif_node_dec.wasm +0 -0
- package/packages/storefront/dist/server/chunks/avif/avif_node_enc.wasm +0 -0
- package/packages/storefront/dist/server/chunks/image-pool.abfa6f7b.mjs +0 -10794
- package/packages/storefront/dist/server/chunks/mozjpeg/mozjpeg_node_dec.wasm +0 -0
- package/packages/storefront/dist/server/chunks/mozjpeg/mozjpeg_node_enc.wasm +0 -0
- package/packages/storefront/dist/server/chunks/png/squoosh_oxipng_bg.wasm +0 -0
- package/packages/storefront/dist/server/chunks/png/squoosh_png_bg.wasm +0 -0
- package/packages/storefront/dist/server/chunks/resize/squoosh_resize_bg.wasm +0 -0
- package/packages/storefront/dist/server/chunks/rotate/rotate.wasm +0 -0
- package/packages/storefront/dist/server/chunks/webp/webp_node_dec.wasm +0 -0
- package/packages/storefront/dist/server/chunks/webp/webp_node_enc.wasm +0 -0
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import type CmsHeader from '@@sf/types/cms-header';
|
|
3
|
-
import type CmsContacts from '@@sf/types/cms-contacts';
|
|
4
|
-
|
|
5
|
-
export interface Props {
|
|
6
|
-
marketingStripe: CmsHeader['marketing_stripe'];
|
|
7
|
-
hasNavbar?: boolean;
|
|
8
|
-
pageLinks: CmsHeader['contacts_stripe']['pages'];
|
|
9
|
-
contacts: CmsContacts;
|
|
10
|
-
hasPhoneLinks?: boolean;
|
|
11
|
-
hasNetworkLinks?: boolean;
|
|
12
|
-
socialNetworks?: string[];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
withDefaults(defineProps<Props>(), {
|
|
16
|
-
hasNavbar: true,
|
|
17
|
-
hasPhoneLinks: true,
|
|
18
|
-
hasNetworksLinks: true,
|
|
19
|
-
socialNetworks() {
|
|
20
|
-
return ['facebook', 'twitter', 'youtube', 'pinterest', 'instagram', 'tiktok'];
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
</script>
|
|
24
|
-
|
|
25
|
-
<template>
|
|
26
|
-
<div class="top-bar w-full bg-surface">
|
|
27
|
-
<slot name="countdown" v-bind="{ marketingStripe }">
|
|
28
|
-
<template v-if="marketingStripe && marketingStripe.text">
|
|
29
|
-
<component
|
|
30
|
-
:is="marketingStripe.link ? 'a' : 'div'"
|
|
31
|
-
class="top-bar__countdown block text-sm text-center p-1
|
|
32
|
-
whitespace-nowrap overflow-x-auto"
|
|
33
|
-
:class="marketingStripe.link ? 'primary' : 'secondary'"
|
|
34
|
-
:href="marketingStripe.link"
|
|
35
|
-
>
|
|
36
|
-
{{ marketingStripe.text }}
|
|
37
|
-
</component>
|
|
38
|
-
</template>
|
|
39
|
-
</slot>
|
|
40
|
-
<div
|
|
41
|
-
v-if="hasNavbar"
|
|
42
|
-
class="top-bar__nav hidden md:block py-2"
|
|
43
|
-
>
|
|
44
|
-
<div class="container">
|
|
45
|
-
<div class="flex items-center lg:px-2 xl:px-4">
|
|
46
|
-
<div class="grow text-xs">
|
|
47
|
-
<slot name="page-links" v-bind="{ pageLinks }">
|
|
48
|
-
<nav
|
|
49
|
-
v-if="pageLinks"
|
|
50
|
-
class="top-bar__page-links inline-block mr-4 font-semibold"
|
|
51
|
-
>
|
|
52
|
-
<a
|
|
53
|
-
v-for="({ link, title }, i) in pageLinks"
|
|
54
|
-
class="mr-2 lg:mr-3"
|
|
55
|
-
:key="i"
|
|
56
|
-
:href="link"
|
|
57
|
-
>
|
|
58
|
-
{{ title }}
|
|
59
|
-
</a>
|
|
60
|
-
</nav>
|
|
61
|
-
</slot>
|
|
62
|
-
<slot
|
|
63
|
-
name="contact-links"
|
|
64
|
-
v-bind="{ contacts, hasPhoneLinks }"
|
|
65
|
-
>
|
|
66
|
-
<div
|
|
67
|
-
v-if="hasPhoneLinks"
|
|
68
|
-
class="top-bar__contact-links inline-block"
|
|
69
|
-
>
|
|
70
|
-
<a
|
|
71
|
-
v-if="contacts.whatsapp"
|
|
72
|
-
href="javascript:;"
|
|
73
|
-
target="_blank"
|
|
74
|
-
rel="noopener"
|
|
75
|
-
:data-whatsapp-tel="contacts.whatsapp.replace(/\D/g, '')"
|
|
76
|
-
class="mr-2"
|
|
77
|
-
>
|
|
78
|
-
<i class="i-whatsapp"></i>
|
|
79
|
-
{{ contacts.whatsapp }}
|
|
80
|
-
</a>
|
|
81
|
-
<a
|
|
82
|
-
v-if="contacts.phone && contacts.phone !== contacts.whatsapp"
|
|
83
|
-
:href="`tel:+${contacts.phone.replace(/\D/g, '')}`"
|
|
84
|
-
target="_blank"
|
|
85
|
-
rel="noopener"
|
|
86
|
-
class="mr-2"
|
|
87
|
-
>
|
|
88
|
-
<i class="i-phone"></i>
|
|
89
|
-
{{ contacts.phone }}
|
|
90
|
-
</a>
|
|
91
|
-
</div>
|
|
92
|
-
</slot>
|
|
93
|
-
</div>
|
|
94
|
-
<slot
|
|
95
|
-
name="social-networks"
|
|
96
|
-
v-bind="{ contacts, hasNetworkLinks }"
|
|
97
|
-
>
|
|
98
|
-
<div
|
|
99
|
-
v-if="hasNetworkLinks"
|
|
100
|
-
class="top-bar__social-networks leading-none"
|
|
101
|
-
>
|
|
102
|
-
<template v-for="network in socialNetworks">
|
|
103
|
-
<template v-if="contacts[network]">
|
|
104
|
-
<a
|
|
105
|
-
:key="network"
|
|
106
|
-
:href="contacts[network]"
|
|
107
|
-
target="_blank"
|
|
108
|
-
rel="noopener"
|
|
109
|
-
class="ml-2"
|
|
110
|
-
:aria-label="`Follow on ${network}`"
|
|
111
|
-
>
|
|
112
|
-
<i v-if="network === 'facebook'" class="i-facebook"></i>
|
|
113
|
-
<i v-else-if="network === 'youtube'" class="i-youtube"></i>
|
|
114
|
-
<i v-else-if="network === 'twitter'" class="i-twitter"></i>
|
|
115
|
-
<i v-else-if="network === 'pinterest'" class="i-pinterest"></i>
|
|
116
|
-
<i v-else-if="network === 'instagram'" class="i-instagram"></i>
|
|
117
|
-
<i v-else-if="network === 'tiktok'" class="i-tiktok"></i>
|
|
118
|
-
</a>
|
|
119
|
-
</template>
|
|
120
|
-
</template>
|
|
121
|
-
</div>
|
|
122
|
-
</slot>
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
</template>
|
|
128
|
-
|
|
129
|
-
<style>
|
|
130
|
-
.top-bar__nav a:not(:hover) {
|
|
131
|
-
color: var(--gray);
|
|
132
|
-
}
|
|
133
|
-
</style>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
16
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as E}from"./session-utm.2de8b604.js";import{r as W,c as m,d as R,a as q,b as u,n as _,g as I,u as e,e as P,m as V,o as v,f as b,t as h,h as d,i as F,j as T,w as A,k as z}from"./runtime-core.esm-bundler.b4556b35.js";import{g as L,c as K}from"./price.ecf7fed4.js";import"./ecom-utils.b0a26608.js";const U=(t,o,a=1e4)=>{let p,l;a&&(p=new AbortController,l=setTimeout(()=>{p.abort()},a)),o?.body&&typeof o.body=="object"&&(o.body=JSON.stringify(o.body),o.headers={...o.headers,"Content-Type":"application/json","Content-Length":o.body.length.toString()});const g=fetch(t,{...o,signal:p?.signal});return g.finally(()=>{l&&clearTimeout(l)}),g},G={list_payments:{},calculate_shipping:{},apply_discount:{}},j=W(G);{const t="MODULES_INFO",o=sessionStorage.getItem(t);let a;if(o)try{a=JSON.parse(o),a.__timestamp<Date.now()-1e3*60*5&&(a=null,sessionStorage.removeItem(t)),delete a.__timestamp}catch{sessionStorage.removeItem(t)}if(a?.list_payments)Object.assign(j,a);else{const p=[{modName:"list_payments"},{modName:"calculate_shipping"}];Object.keys(E).length&&p.push({modName:"apply_discount",reqOptions:{method:"post",body:{utm:E}}}),p.forEach(({modName:l,reqOptions:g})=>{U(`/api/modules/${l}`,g).then(async $=>{if($.ok){const i={};j[l]=i;const{result:O}=await $.json();Array.isArray(O)&&O.forEach(({error:w,response:f})=>{if(!w){let s,r;switch(l){case"calculate_shipping":s="free_shipping_from_value",r=f[s],typeof r=="number"&&(i[s]===void 0||r<i[s])&&(i[s]=r);break;case"list_payments":s="installments_option",r=f[s],r&&(!i[s]||r.monthly_interest<i[s].monthly_interest||r.max_number>i[s].max_number)&&(i[s]=r),s="discount_option",r=f[s],r&&(!i[s]||r.value>i[s].value)&&f.payment_gateways.forEach(({discount:y})=>{y&&y.apply_at!=="freight"&&y.value===r.value&&(i[s]={apply_at:y.apply_at,...r})}),s="loyalty_points_programs",r=f[s],r&&(i[s]={...i[s],...r});break;default:s="available_extra_discount",r=f[s],r&&(!i[s]||r.value>i[s].value)&&(i[s]=r)}}}),sessionStorage.setItem(t,JSON.stringify({...j,__timestamp:Date.now()}))}}).catch(console.error)})}}const J=(t,o)=>{const{type:a,value:p}=o;let l;return p?(a==="percentage"?l=t*((100-p)/100):l=t-p,l>0?l:0):t},H=t=>{const o=m(()=>t.product||{price:t.price||0,base_price:t.basePrice}),a=m(()=>{const{variations:c}=o.value;if(c){const k=L(o.value);for(let C=0;C<c.length;C++)if(L({...o.value,...c[C]})>k)return!0}return!1}),p=m(()=>j.apply_discount.available_extra_discount),l=m(()=>{const c=L(o.value),k=p.value;return k&&(!k.min_amount||c>k.min_amount)?J(c,k):c}),g=m(()=>{if(K(o.value))return o.value.base_price;const c=L(o.value);return c>l.value?c:0}),$=m(()=>t.installmentsOption||j.list_payments.installments_option||{max_number:1}),i=m(()=>{if($.value.max_number<=1)return 1;const c=$.value.min_installment||5,k=Math.round(l.value/c);return Math.min(k,$.value.max_number)}),O=m(()=>$.value.monthly_interest||0),w=m(()=>{if(i.value>=2){if(O.value)return l.value/i.value;const c=O.value/100;return l.value*c/(1-(1+c)**-i.value)}return 0}),f=m(()=>{const c=t.discountOption||j.list_payments.discount_option;return c&&(!c.min_amount||c.min_amount<=l.value)&&(!t.isAmountTotal||c.apply_at==="total")?c:{}}),s=m(()=>f.value.label||""),r=m(()=>J(l.value,f.value)),y=m(()=>{if(t.loyaltyPointsProgram)return t.loyaltyPointsProgram;const c=j.list_payments.loyalty_points_programs;if(c){const k=Object.keys(c);for(let C=0;C<k.length;C++){const D=c[C];if(D&&D.earn_percentage>0)return D}}return{ratio:0}}),S=m(()=>y.value.min_subtotal_to_earn||0),n=m(()=>y.value.name||""),B=m(()=>y.value.earn_percentage||0),N=m(()=>B.value/100),M=m(()=>N.value>0?l.value*N.value:0);return{hasVariedPrices:a,salePrice:l,comparePrice:g,installmentsObject:$,installmentsNumber:i,monthlyInterest:O,installmentValue:w,discountObject:f,discountLabel:s,priceWithDiscount:r,pointsProgramObject:y,pointsMinPrice:S,pointsProgramName:n,earnPointsPercentage:B,earnPointsFactor:N,pointsCashback:M}},Q=t=>m(()=>{let o="";return Object.keys(t).forEach(a=>{t[a]===!0&&(o+=` ${a.replace(/^(is|has)/,"")}`)}),o.slice(1)}),X=["data-sf-prices"],Y=["data-sf-prices-compare"],Z={key:0},x={key:0},ee=["data-sf-prices-sale"],te={key:0},se=["data-sf-prices-cashback"],ae=["data-tooltip"],ne=P("i",{class:"i-arrow-uturn-left mr-1"},null,-1),oe={class:"font-medium"},re=P("small",null," cashback",-1),le=["data-sf-prices-installment"],ie={key:0},ce={key:0},ue={key:0},me=["data-sf-prices-discount"],pe={key:0},de={key:0},ve=R({__name:"Prices",props:{product:null,price:null,basePrice:null,isAmountTotal:{type:Boolean},installmentsOption:null,discountOption:null,isBig:{type:Boolean},isLiteral:{type:Boolean},hasCashback:{type:Boolean,default:!0},hasPriceOptions:{type:Boolean,default:!0}},setup(t){const o=t,a=H(o),{hasVariedPrices:p,salePrice:l,comparePrice:g,earnPointsPercentage:$,pointsCashback:i,installmentsNumber:O,monthlyInterest:w,installmentValue:f,priceWithDiscount:s,discountLabel:r}=a,y=Q(o),S=q(!1);return setTimeout(()=>{S.value=!0,setTimeout(()=>{S.value=!1},5e3)},5e3),(n,B)=>{const N=z("Fade");return u(n.$slots,"default",_(I(e(a))),()=>[P("div",{"data-sf-prices":e(y),class:"text-base-600"},[e(g)?u(n.$slots,"compare",_(V({key:0},e(a))),()=>[P("span",{"data-sf-prices-compare":e(g),class:"text-base-500 mr-1"},[u(n.$slots,"compare-pre",{},()=>[t.isLiteral?(v(),b("small",Z,h("De "))):d("",!0)]),u(n.$slots,"compare-value",_(I(e(a))),()=>[P("s",null,h(n.$money(e(g))),1)]),u(n.$slots,"compare-post",{},()=>[t.isLiteral?(v(),b("small",x,h(" Por"))):d("",!0)])],8,Y)]):d("",!0),u(n.$slots,"sale",_(I(e(a))),()=>[P("strong",{"data-sf-prices-sale":e(l),class:"inline-block text-base-800"},[u(n.$slots,"sale-pre",{},()=>[e(p)?(v(),b("small",te,h("A partir de "))):d("",!0)]),u(n.$slots,"sale-value",_(I(e(a))),()=>[F(h(n.$money(e(l))),1)]),u(n.$slots,"sale-post")],8,ee)]),e(i)?u(n.$slots,"cashback",_(V({key:1},e(a))),()=>[T(N,{slide:"down"},{default:A(()=>[t.hasCashback?(v(),b("div",{key:0,"data-sf-prices-cashback":e(i)},[P("span",{"data-tooltip":"Receba $1 de volta".replace("$1",n.$percentage(e($)))},[u(n.$slots,"cashback-pre",{},()=>[ne]),u(n.$slots,"cashback-value",_(I(e(a))),()=>[P("span",oe,h(n.$money(e(i))),1)]),u(n.$slots,"cashback-post",{},()=>[re])],8,ae)],8,se)):d("",!0)]),_:3})]):d("",!0),e(f)?u(n.$slots,"installment",_(V({key:2},e(a))),()=>[T(N,{slide:"down"},{default:A(()=>[t.hasPriceOptions?(v(),b("div",{key:0,"data-sf-prices-installment":e(f)},[u(n.$slots,"installment-pre",{},()=>[t.isLiteral?(v(),b("small",ie,h("At\xE9 "))):d("",!0)]),u(n.$slots,"installment-value",_(I(e(a))),()=>[F(h(e(O))+"x ",1),t.isLiteral?(v(),b("small",ce,h(" De "))):d("",!0),P("span",null,h(n.$money(e(f))),1)]),u(n.$slots,"installment-post",{},()=>[!e(w)&&t.isLiteral?(v(),b("small",ue,h("Sem juros"))):d("",!0)])],8,le)):d("",!0)]),_:3})]):d("",!0),e(s)<e(l)?u(n.$slots,"discount",_(V({key:3},e(a))),()=>[T(N,{slide:"down"},{default:A(()=>[t.hasPriceOptions?(v(),b("div",{key:0,"data-sf-prices-discount":e(s)},[u(n.$slots,"discount-pre",{},()=>[e(r)?d("",!0):(v(),b("small",pe,h("A partir de ")))]),u(n.$slots,"discount-value",_(I(e(a))),()=>[P("span",null,h(n.$money(e(s))),1)]),u(n.$slots,"discount-post",{},()=>[e(r)?(v(),b("small",de,h(` ${e(r)}`),1)):d("",!0)])],8,me)):d("",!0)]),_:3})]):d("",!0)],8,X)])}}});export{ve as _};
|
|
Binary file
|
|
Binary file
|