cloudcommerce 0.3.0 → 0.4.1
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 +40 -0
- package/package.json +8 -8
- package/packages/api/package.json +1 -1
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +3 -3
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +2 -2
- package/packages/apps/frenet/package.json +3 -3
- package/packages/apps/galaxpay/package.json +3 -3
- package/packages/apps/google-analytics/package.json +3 -3
- package/packages/apps/infinitepay/lib/ip-create-transaction.js +1 -1
- package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -1
- package/packages/apps/infinitepay/package.json +3 -3
- package/packages/apps/infinitepay/src/ip-create-transaction.ts +1 -1
- package/packages/apps/jadlog/package.json +2 -2
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +3 -3
- package/packages/apps/mercadopago/package.json +3 -3
- package/packages/apps/pagarme/package.json +3 -3
- package/packages/apps/paghiper/package.json +3 -3
- package/packages/apps/pix/package.json +3 -3
- package/packages/apps/tiny-erp/package.json +3 -3
- package/packages/apps/webhooks/CHANGELOG.md +1 -0
- package/packages/apps/webhooks/README.md +1 -0
- package/packages/apps/webhooks/lib/app-webhooks.js +9 -0
- package/packages/apps/webhooks/lib/app-webhooks.js.map +1 -0
- package/packages/apps/webhooks/lib/events-to-webhooks-app.js +127 -0
- package/packages/apps/webhooks/lib/events-to-webhooks-app.js.map +1 -0
- package/packages/apps/webhooks/lib/index.js +2 -0
- package/packages/apps/webhooks/lib/index.js.map +1 -0
- package/packages/apps/webhooks/package.json +32 -0
- package/packages/apps/webhooks/src/app-webhooks.ts +14 -0
- package/packages/apps/webhooks/src/events-to-webhooks-app.ts +178 -0
- package/packages/apps/webhooks/src/index.ts +1 -0
- package/packages/apps/webhooks/tsconfig.json +3 -0
- package/packages/cli/lib/setup-gcloud.js +120 -20
- package/packages/cli/package.json +1 -1
- package/packages/cli/src/cli.ts +1 -1
- package/packages/cli/src/setup-gcloud.ts +146 -21
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +2 -2
- package/packages/emails/tests/assets/order.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 +3 -2
- package/packages/events/src/firebase.ts +2 -0
- package/packages/firebase/lib/config.d.ts +4 -0
- package/packages/firebase/lib/config.js +10 -1
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/handlers/check-store-events.js +13 -4
- package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
- package/packages/firebase/package.json +2 -2
- package/packages/firebase/src/config.ts +10 -7
- package/packages/firebase/src/handlers/check-store-events.ts +14 -4
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/checkout.js +4 -4
- package/packages/modules/lib/firebase/checkout.js.map +1 -1
- package/packages/modules/package.json +3 -3
- package/packages/modules/schemas/@checkout.cjs +0 -5
- package/packages/modules/schemas/create_transaction.cjs +6 -1
- package/packages/modules/src/firebase/checkout.ts +4 -4
- package/packages/passport/package.json +2 -2
- package/packages/ssr/package.json +7 -7
- package/packages/storefront/dist/client/_astro/PitchBar.004b6ea4.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.f311909a.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.vue_vue_type_script_setup_true_lang.ef47de70.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductCard.34de5097.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.cbfee289.js +1 -0
- package/packages/storefront/dist/client/_astro/{_...slug_.32968ccf.css → _...slug_.bcc33d9d.css} +1 -1
- package/packages/storefront/dist/client/_astro/{client.5a46cc02.js → client.56d86c9b.js} +1 -1
- package/packages/storefront/dist/client/_astro/index.0c833781.css +1 -0
- package/packages/storefront/dist/client/_astro/index.2d12be6c.js +1 -0
- package/packages/storefront/dist/client/_astro/{modules-info.d9373e21.js → modules-info.0debb0b0.js} +1 -1
- package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.a0432a8e.js +1 -0
- package/packages/storefront/dist/client/_astro/{runtime-dom.esm-bundler.00313542.js → runtime-dom.esm-bundler.0e5774ce.js} +1 -1
- package/packages/storefront/dist/client/fallback/index.html +10 -10
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/{astro.89bd9221.mjs → astro.0f5b754a.mjs} +871 -826
- package/packages/storefront/dist/server/chunks/pages/{all.23de4e5c.mjs → all.671e6bc1.mjs} +367 -466
- package/packages/storefront/dist/server/chunks/{prerender.f40361a3.mjs → prerender.fd8cdc24.mjs} +0 -0
- package/packages/storefront/dist/server/entry.mjs +20 -12
- package/packages/storefront/package.json +11 -11
- package/packages/storefront/src/lib/components/Drawer.vue +48 -45
- package/packages/storefront/src/lib/components/ProductCard.vue +1 -1
- package/packages/storefront/src/lib/components/ShopHeader.vue +42 -13
- package/packages/storefront/src/lib/components/ShopSidenav.vue +26 -0
- package/packages/storefront/src/lib/composables/use-pitch-bar.ts +27 -0
- package/packages/storefront/src/lib/composables/use-sticky-header.ts +111 -0
- package/packages/storefront/src/lib/layouts/BaseBody.astro +3 -1
- package/packages/storefront/src/lib/layouts/PagesHeader.astro +16 -25
- package/packages/types/index.ts +1 -0
- package/packages/types/modules/@checkout:params.d.ts +1 -5
- package/packages/types/modules/apply_discount:params.d.ts +1 -1
- package/packages/types/modules/apply_discount:response.d.ts +1 -1
- package/packages/types/modules/calculate_shipping:params.d.ts +1 -1
- package/packages/types/modules/calculate_shipping:response.d.ts +1 -1
- package/packages/types/modules/create_transaction:params.d.ts +6 -2
- package/packages/types/modules/create_transaction:response.d.ts +1 -1
- package/packages/types/modules/list_payments:params.d.ts +1 -1
- package/packages/types/modules/list_payments:response.d.ts +1 -1
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/PitchBar.209c6645.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.6fbcb5ac.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.vue_vue_type_script_setup_true_lang.44f23680.js +0 -1
- package/packages/storefront/dist/client/_astro/ProductCard.ee5eee91.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.b801c785.js +0 -1
- package/packages/storefront/dist/client/_astro/index.844a4059.js +0 -1
- package/packages/storefront/dist/client/_astro/index.90df622b.css +0 -1
- package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.f04cee62.js +0 -1
- package/packages/storefront/dist/client/_astro/use-component-variant.58788b6e.js +0 -1
- package/packages/storefront/src/lib/components/PitchBar.vue +0 -66
- package/packages/storefront/src/lib/components/Prices.vue +0 -176
- package/packages/storefront/src/lib/components/StickyHeader.vue +0 -84
- package/packages/storefront/src/lib/composables/use-component-variant.ts +0 -17
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { Products, ListPaymentsResponse } from '@cloudcommerce/types';
|
|
3
|
-
import usePrices from '@@sf/composables/use-prices';
|
|
4
|
-
import useComponentVariant from '@@sf/composables/use-component-variant';
|
|
5
|
-
|
|
6
|
-
export interface Props {
|
|
7
|
-
product?: Partial<Products> & { price: number, final_price?: number };
|
|
8
|
-
price?: number;
|
|
9
|
-
basePrice?: number;
|
|
10
|
-
isAmountTotal?: boolean;
|
|
11
|
-
installmentsOption?: ListPaymentsResponse['installments_option'];
|
|
12
|
-
discountOption?: ListPaymentsResponse['discount_option'];
|
|
13
|
-
isBig?: boolean;
|
|
14
|
-
isLiteral?: boolean;
|
|
15
|
-
hasCashback?: boolean;
|
|
16
|
-
hasPriceOptions?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
20
|
-
hasCashback: true,
|
|
21
|
-
hasPriceOptions: true,
|
|
22
|
-
});
|
|
23
|
-
const prices = usePrices(props);
|
|
24
|
-
const {
|
|
25
|
-
hasVariedPrices,
|
|
26
|
-
salePrice,
|
|
27
|
-
comparePrice,
|
|
28
|
-
cashbackPercentage,
|
|
29
|
-
cashbackValue,
|
|
30
|
-
installmentsNumber,
|
|
31
|
-
monthlyInterest,
|
|
32
|
-
installmentValue,
|
|
33
|
-
priceWithDiscount,
|
|
34
|
-
discountLabel,
|
|
35
|
-
} = prices;
|
|
36
|
-
const componentVariant = useComponentVariant(props);
|
|
37
|
-
</script>
|
|
38
|
-
|
|
39
|
-
<template>
|
|
40
|
-
<div class="text-base-600" :data-prices="componentVariant">
|
|
41
|
-
<slot v-if="comparePrice" name="compare" v-bind="{ salePrice, comparePrice }">
|
|
42
|
-
<span class="text-base-500 mr-1" data-prices-compare>
|
|
43
|
-
<slot name="compare-pre">
|
|
44
|
-
<small v-if="isLiteral">
|
|
45
|
-
{{ `${$t.i19from} ` }}
|
|
46
|
-
</small>
|
|
47
|
-
</slot>
|
|
48
|
-
<slot name="compare-value" v-bind="{ salePrice, comparePrice }">
|
|
49
|
-
<s>{{ $money(comparePrice) }}</s>
|
|
50
|
-
</slot>
|
|
51
|
-
<slot name="compare-post">
|
|
52
|
-
<small v-if="isLiteral">
|
|
53
|
-
{{ ` ${$t.i19to}` }}
|
|
54
|
-
</small>
|
|
55
|
-
</slot>
|
|
56
|
-
</span>
|
|
57
|
-
</slot>
|
|
58
|
-
<slot name="sale" v-bind="{ salePrice }">
|
|
59
|
-
<strong class="inline-block text-base-800" data-prices-sale>
|
|
60
|
-
<slot name="sale-pre">
|
|
61
|
-
<small v-if="hasVariedPrices">
|
|
62
|
-
{{ `${$t.i19asOf} ` }}
|
|
63
|
-
</small>
|
|
64
|
-
</slot>
|
|
65
|
-
<slot name="sale-value" v-bind="{ salePrice }">
|
|
66
|
-
{{ $money(salePrice) }}
|
|
67
|
-
</slot>
|
|
68
|
-
<slot name="sale-post" />
|
|
69
|
-
</strong>
|
|
70
|
-
</slot>
|
|
71
|
-
<Fade slide="down">
|
|
72
|
-
<slot
|
|
73
|
-
v-if="cashbackValue"
|
|
74
|
-
name="cashback"
|
|
75
|
-
v-bind="{ salePrice, cashbackValue, cashbackPercentage }"
|
|
76
|
-
>
|
|
77
|
-
<div v-if="hasCashback" class="relative z-10" data-prices-cashback>
|
|
78
|
-
<span :data-tooltip="$t.i19get$1back
|
|
79
|
-
.replace('$1', $percentage(cashbackPercentage))">
|
|
80
|
-
<slot name="cashback-pre">
|
|
81
|
-
<i class="i-cashback mr-1"></i>
|
|
82
|
-
</slot>
|
|
83
|
-
<slot
|
|
84
|
-
name="cashback-value"
|
|
85
|
-
v-bind="{ salePrice, cashbackValue, cashbackPercentage }"
|
|
86
|
-
>
|
|
87
|
-
<span class="font-medium">
|
|
88
|
-
{{ $money(cashbackValue) }}
|
|
89
|
-
</span>
|
|
90
|
-
</slot>
|
|
91
|
-
<slot name="cashback-post">
|
|
92
|
-
<small> cashback</small>
|
|
93
|
-
</slot>
|
|
94
|
-
</span>
|
|
95
|
-
</div>
|
|
96
|
-
</slot>
|
|
97
|
-
</Fade>
|
|
98
|
-
<Fade slide="down">
|
|
99
|
-
<slot
|
|
100
|
-
v-if="installmentValue"
|
|
101
|
-
name="installment"
|
|
102
|
-
v-bind="{ salePrice, installmentValue, installmentsNumber, monthlyInterest }"
|
|
103
|
-
>
|
|
104
|
-
<div v-if="hasPriceOptions" data-prices-installment>
|
|
105
|
-
<slot name="installment-pre">
|
|
106
|
-
<small v-if="isLiteral">
|
|
107
|
-
{{ `${$t.i19upTo} ` }}
|
|
108
|
-
</small>
|
|
109
|
-
</slot>
|
|
110
|
-
<slot
|
|
111
|
-
name="installment-value"
|
|
112
|
-
v-bind="{ salePrice, installmentValue, installmentsNumber, monthlyInterest }"
|
|
113
|
-
>
|
|
114
|
-
{{ installmentsNumber }}x
|
|
115
|
-
<small v-if="isLiteral">
|
|
116
|
-
{{ ` ${$t.i19of} ` }}
|
|
117
|
-
</small>
|
|
118
|
-
<span>{{ $money(installmentValue) }}</span>
|
|
119
|
-
</slot>
|
|
120
|
-
<slot name="installment-post">
|
|
121
|
-
<small v-if="!monthlyInterest && isLiteral">
|
|
122
|
-
{{ $t.i19interestFree }}
|
|
123
|
-
</small>
|
|
124
|
-
</slot>
|
|
125
|
-
</div>
|
|
126
|
-
</slot>
|
|
127
|
-
</Fade>
|
|
128
|
-
<Fade slide="down">
|
|
129
|
-
<slot
|
|
130
|
-
v-if="priceWithDiscount < salePrice"
|
|
131
|
-
name="discount"
|
|
132
|
-
v-bind="{ salePrice, priceWithDiscount, discountLabel }"
|
|
133
|
-
>
|
|
134
|
-
<div v-if="hasPriceOptions" data-prices-discount>
|
|
135
|
-
<slot name="discount-pre">
|
|
136
|
-
<small v-if="!discountLabel">
|
|
137
|
-
{{ `${$t.i19asOf} ` }}
|
|
138
|
-
</small>
|
|
139
|
-
</slot>
|
|
140
|
-
<slot
|
|
141
|
-
name="discount-value"
|
|
142
|
-
v-bind="{ salePrice, priceWithDiscount, discountLabel }"
|
|
143
|
-
>
|
|
144
|
-
<span>{{ $money(priceWithDiscount) }}</span>
|
|
145
|
-
</slot>
|
|
146
|
-
<slot name="discount-post">
|
|
147
|
-
<small v-if="discountLabel">
|
|
148
|
-
{{ ` ${discountLabel}` }}
|
|
149
|
-
</small>
|
|
150
|
-
</slot>
|
|
151
|
-
</div>
|
|
152
|
-
</slot>
|
|
153
|
-
</Fade>
|
|
154
|
-
</div>
|
|
155
|
-
</template>
|
|
156
|
-
|
|
157
|
-
<style>
|
|
158
|
-
[data-prices-compare] {
|
|
159
|
-
font-size: 87%;
|
|
160
|
-
}
|
|
161
|
-
[data-prices-cashback],
|
|
162
|
-
[data-prices-installment],
|
|
163
|
-
[data-prices-discount] {
|
|
164
|
-
font-size: 90%;
|
|
165
|
-
}
|
|
166
|
-
[data-prices] small {
|
|
167
|
-
@apply lowercase;
|
|
168
|
-
font-size: 92%;
|
|
169
|
-
}
|
|
170
|
-
[data-prices~=Big] {
|
|
171
|
-
@apply text-lg;
|
|
172
|
-
}
|
|
173
|
-
[data-prices~=Big] [data-prices-sale] {
|
|
174
|
-
@apply text-5xl block;
|
|
175
|
-
}
|
|
176
|
-
</style>
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
ref,
|
|
4
|
-
computed,
|
|
5
|
-
watch,
|
|
6
|
-
reactive,
|
|
7
|
-
onMounted,
|
|
8
|
-
} from 'vue';
|
|
9
|
-
import {
|
|
10
|
-
promiseTimeout,
|
|
11
|
-
useTimeout,
|
|
12
|
-
useDebounceFn,
|
|
13
|
-
useScroll,
|
|
14
|
-
} from '@vueuse/core';
|
|
15
|
-
import useComponentVariant from '@@sf/composables/use-component-variant';
|
|
16
|
-
|
|
17
|
-
export interface Props {
|
|
18
|
-
isShownOnScrollDown?: boolean;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const props = defineProps<Props>();
|
|
22
|
-
const header = ref<HTMLElement | null>(null);
|
|
23
|
-
const { ready, start } = useTimeout(100, { controls: true, immediate: false });
|
|
24
|
-
const height = ref(0);
|
|
25
|
-
if (!import.meta.env.SSR) {
|
|
26
|
-
onMounted(() => {
|
|
27
|
-
const fixHeight = () => {
|
|
28
|
-
height.value = header.value.offsetHeight;
|
|
29
|
-
start();
|
|
30
|
-
};
|
|
31
|
-
const imgs = header.value.getElementsByTagName('IMG');
|
|
32
|
-
let isAllLoaded = true;
|
|
33
|
-
for (let i = 0; i < imgs.length; i++) {
|
|
34
|
-
const img = imgs[i] as HTMLImageElement;
|
|
35
|
-
if (!img.complete || img.naturalHeight === 0) {
|
|
36
|
-
isAllLoaded = false;
|
|
37
|
-
img.onload = fixHeight;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (isAllLoaded) {
|
|
41
|
-
fixHeight();
|
|
42
|
-
}
|
|
43
|
-
window.addEventListener('resize', useDebounceFn(fixHeight, 300));
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
const { y } = !import.meta.env.SSR ? useScroll(document) : { y: ref(0) };
|
|
47
|
-
const isSticky = computed(() => ready.value && y.value > height.value * 1.5);
|
|
48
|
-
const transition = ref('none');
|
|
49
|
-
watch(isSticky, async (isSetSticky) => {
|
|
50
|
-
if (!isSetSticky) {
|
|
51
|
-
start();
|
|
52
|
-
transition.value = 'none';
|
|
53
|
-
} else {
|
|
54
|
-
await promiseTimeout(300);
|
|
55
|
-
transition.value = 'opacity var(--transition-slow), transform var(--transition)';
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
const isScrollUp = ref(false);
|
|
59
|
-
watch(y, (newY, oldY) => {
|
|
60
|
-
isScrollUp.value = newY > 0 && newY < oldY;
|
|
61
|
-
});
|
|
62
|
-
const componentVariant = useComponentVariant(reactive({
|
|
63
|
-
...props,
|
|
64
|
-
isSticky,
|
|
65
|
-
isScrollUp,
|
|
66
|
-
}));
|
|
67
|
-
</script>
|
|
68
|
-
|
|
69
|
-
<template>
|
|
70
|
-
<div :style="isSticky ? `height: ${height}px` : null"></div>
|
|
71
|
-
<header
|
|
72
|
-
ref="header"
|
|
73
|
-
class="z-50 top-0 will-change-transform"
|
|
74
|
-
:class="{
|
|
75
|
-
'sticky bg-white/80 backdrop-blur-md shadow py-2 md:py-3': isSticky,
|
|
76
|
-
'opacity-0 -translate-y-full': isSticky && (!isScrollUp || isShownOnScrollDown),
|
|
77
|
-
'py-3 sm:py-4 md:py-5': !isSticky,
|
|
78
|
-
}"
|
|
79
|
-
:style="{ transition }"
|
|
80
|
-
:data-sticky-header="componentVariant"
|
|
81
|
-
>
|
|
82
|
-
<slot/>
|
|
83
|
-
</header>
|
|
84
|
-
</template>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { computed } from 'vue';
|
|
2
|
-
|
|
3
|
-
const useComponentVariant = (props: Record<string, any>, stringProps?: string[]) => {
|
|
4
|
-
return computed(() => {
|
|
5
|
-
let variantName = '';
|
|
6
|
-
Object.keys(props).forEach((prop) => {
|
|
7
|
-
if (props[prop] === true && prop !== 'modelValue') {
|
|
8
|
-
variantName += ` ${prop.replace(/^(is|has)/, '')}`;
|
|
9
|
-
} else if (stringProps && stringProps.includes(prop)) {
|
|
10
|
-
variantName += ` ${prop}:${props[prop]}`;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
return variantName.slice(1);
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export default useComponentVariant;
|