flowrix 1.0.1-beta.153 → 1.0.1-beta.154
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/dist/module.json +1 -1
- package/dist/runtime/components/DynamicComponents/SubscriptionForm.d.vue.ts +3 -0
- package/dist/runtime/components/DynamicComponents/SubscriptionForm.vue +60 -0
- package/dist/runtime/components/DynamicComponents/SubscriptionForm.vue.d.ts +3 -0
- package/dist/runtime/components/DynamicComponents/WebForm.d.vue.ts +7 -0
- package/dist/runtime/components/DynamicComponents/WebForm.vue +115 -0
- package/dist/runtime/components/DynamicComponents/WebForm.vue.d.ts +7 -0
- package/dist/runtime/components/Pages/dynamic.d.vue.ts +7 -0
- package/dist/runtime/components/Pages/dynamic.vue +124 -0
- package/dist/runtime/components/Pages/dynamic.vue.d.ts +7 -0
- package/dist/runtime/components/Pages/index.d.vue.ts +7 -0
- package/dist/runtime/components/Pages/index.vue +214 -0
- package/dist/runtime/components/Pages/index.vue.d.ts +7 -0
- package/dist/runtime/components/{product → Product}/Dynamic.vue +3 -3
- package/dist/runtime/components/{product → Product}/index.vue +1 -3
- package/dist/runtime/components/Types/brand/index.d.vue.ts +6 -0
- package/dist/runtime/components/Types/brand/index.vue +12 -0
- package/dist/runtime/components/Types/brand/index.vue.d.ts +6 -0
- package/dist/runtime/components/Types/category/index.d.vue.ts +6 -0
- package/dist/runtime/components/Types/category/index.vue +50 -0
- package/dist/runtime/components/Types/category/index.vue.d.ts +6 -0
- package/dist/runtime/components/Types/dynamic.d.vue.ts +7 -0
- package/dist/runtime/components/Types/dynamic.vue +160 -0
- package/dist/runtime/components/Types/dynamic.vue.d.ts +7 -0
- package/dist/runtime/components/Types/page/index.d.vue.ts +6 -0
- package/dist/runtime/components/Types/page/index.vue +51 -0
- package/dist/runtime/components/Types/page/index.vue.d.ts +6 -0
- package/dist/runtime/components/Types/post/index.d.vue.ts +6 -0
- package/dist/runtime/components/Types/post/index.vue +51 -0
- package/dist/runtime/components/Types/post/index.vue.d.ts +6 -0
- package/dist/runtime/components/Types/product/index.d.vue.ts +6 -0
- package/dist/runtime/components/Types/product/index.vue +10 -0
- package/dist/runtime/components/Types/product/index.vue.d.ts +6 -0
- package/dist/runtime/composables/Checkout/useCheckout.js +8 -0
- package/dist/runtime/pages/flowrix-default.vue +24 -9
- package/dist/runtime/plugins/bootstrap.client.d.ts +1 -0
- package/dist/runtime/plugins/bootstrap.client.js +2 -7
- package/dist/runtime/stores/Checkout.js +8 -5
- package/package.json +2 -1
- /package/dist/runtime/components/{product → Product}/AddToCart.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/AddToCart.vue +0 -0
- /package/dist/runtime/components/{product → Product}/AddToCart.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/AddtoCartSample.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/AddtoCartSample.vue +0 -0
- /package/dist/runtime/components/{product → Product}/AddtoCartSample.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Badges.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Badges.vue +0 -0
- /package/dist/runtime/components/{product → Product}/Badges.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Description.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Description.vue +0 -0
- /package/dist/runtime/components/{product → Product}/Description.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Dynamic.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Dynamic.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Gallery.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/Gallery.vue +0 -0
- /package/dist/runtime/components/{product → Product}/Gallery.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/PopUpCart.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/PopUpCart.vue +0 -0
- /package/dist/runtime/components/{product → Product}/PopUpCart.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/ProductInfo.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/ProductInfo.vue +0 -0
- /package/dist/runtime/components/{product → Product}/ProductInfo.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/RequiredPopUp.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/RequiredPopUp.vue +0 -0
- /package/dist/runtime/components/{product → Product}/RequiredPopUp.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/bundleProduct/Bundle.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/bundleProduct/Bundle.vue +0 -0
- /package/dist/runtime/components/{product → Product}/bundleProduct/Bundle.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/bundleProduct/index.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/bundleProduct/index.vue +0 -0
- /package/dist/runtime/components/{product → Product}/bundleProduct/index.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AddtoCartSample.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AddtoCartSample.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AddtoCartSample.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Attributes.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Attributes.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Attributes.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/drop-down.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/drop-down.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/drop-down.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-collection.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-collection.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-collection.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-colors.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-colors.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-colors.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-values.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-values.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/multi-values.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/style.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/style.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/style.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/swatch.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/swatch.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/AttributeType/swatch.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/PopupContent/Popup.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/PopupContent/Popup.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/PopupContent/Popup.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/SingleAttribute.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/SingleAttribute.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/SingleAttribute.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/SingleSlide.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/SingleSlide.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/SingleSlide.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/SingleSlidemagnifier.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/SingleSlidemagnifier.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/SingleSlidemagnifier.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/button.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/button.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/button.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/dropdown.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/dropdown.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/dropdown.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/dropdownWithIcon.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/dropdownWithIcon.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/dropdownWithIcon.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/height.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/height.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/height.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/imageBox.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/imageBox.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/imageBox.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/imageBoxWithMagnifier.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/imageBoxWithMagnifier.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/imageBoxWithMagnifier.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/message.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/message.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/message.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/number.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/number.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/number.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/orderSample/button.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/orderSample/button.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/orderSample/button.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/radio.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/radio.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/radio.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/slider.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/slider.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/slider.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/sliderWithMagnifier.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/sliderWithMagnifier.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/sliderWithMagnifier.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/subheight.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/subheight.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/subheight.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/subwidth.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/subwidth.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/subwidth.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/swatch.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/swatch.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/swatch.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/text.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/text.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/text.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/width.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/width.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/AttributesComponents/Styles/width.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/ConfirmPopup.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/ConfirmPopup.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/ConfirmPopup.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/RequiredPopUp.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/RequiredPopUp.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/RequiredPopUp.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Reviews.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Reviews.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Reviews.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/SingleStep.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/SingleStep.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/SingleStep.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Steps.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Steps.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/Steps.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/index.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/index.vue +0 -0
- /package/dist/runtime/components/{product → Product}/customProduct/index.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/index.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/index.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/ProductVariation.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/ProductVariation.vue +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/ProductVariation.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/SampleDetails.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/SampleDetails.vue +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/SampleDetails.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/SampleFeatures.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/SampleFeatures.vue +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/SampleFeatures.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/index.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/index.vue +0 -0
- /package/dist/runtime/components/{product → Product}/sampleProduct/index.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/simpleProduct/ProductVariation.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/simpleProduct/ProductVariation.vue +0 -0
- /package/dist/runtime/components/{product → Product}/simpleProduct/ProductVariation.vue.d.ts +0 -0
- /package/dist/runtime/components/{product → Product}/simpleProduct/index.d.vue.ts +0 -0
- /package/dist/runtime/components/{product → Product}/simpleProduct/index.vue +0 -0
- /package/dist/runtime/components/{product → Product}/simpleProduct/index.vue.d.ts +0 -0
package/dist/module.json
CHANGED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const { subscribe, response, error, loading, clear } = useSubscriptions();
|
|
3
|
+
const email = ref("");
|
|
4
|
+
watch([response, error], () => {
|
|
5
|
+
if (response.value || error.value) {
|
|
6
|
+
setTimeout(() => clear(), 5e3);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
const handleSubscribe = async () => {
|
|
10
|
+
if (!email.value.trim()) return;
|
|
11
|
+
const result = await subscribe(email.value);
|
|
12
|
+
if (result.status === "Success") {
|
|
13
|
+
email.value = "";
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div>
|
|
20
|
+
<form class="orix-subscription-form" @submit.prevent="handleSubscribe">
|
|
21
|
+
<input
|
|
22
|
+
v-model="email"
|
|
23
|
+
type="email"
|
|
24
|
+
name="email"
|
|
25
|
+
placeholder="Enter your email"
|
|
26
|
+
required
|
|
27
|
+
:disabled="loading"
|
|
28
|
+
class="orix-subscription-form__input"
|
|
29
|
+
/>
|
|
30
|
+
<button
|
|
31
|
+
type="submit"
|
|
32
|
+
:disabled="loading || !email"
|
|
33
|
+
class="orix-subscription-form__button"
|
|
34
|
+
>
|
|
35
|
+
<span v-if="!loading">Subscribe</span>
|
|
36
|
+
<span v-else>
|
|
37
|
+
Submitting
|
|
38
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24">
|
|
39
|
+
<path fill="none" stroke="currentColor" stroke-dasharray="16" stroke-dashoffset="16"
|
|
40
|
+
stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3c4.97 0 9 4.03 9 9">
|
|
41
|
+
<animate fill="freeze" attributeName="stroke-dashoffset" dur="0.2s" values="16;0" />
|
|
42
|
+
<animateTransform attributeName="transform" dur="1.5s" repeatCount="indefinite" type="rotate"
|
|
43
|
+
values="0 12 12;360 12 12" />
|
|
44
|
+
</path>
|
|
45
|
+
</svg>
|
|
46
|
+
</span>
|
|
47
|
+
</button>
|
|
48
|
+
</form>
|
|
49
|
+
|
|
50
|
+
<div v-if="response?.status === 'Success'" class="alert alert-success mt-2" role="alert">
|
|
51
|
+
{{ response.message }}
|
|
52
|
+
<button type="button" class="btn-close float-end" @click="clear" aria-label="Close"></button>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div v-if="error" class="alert alert-danger mt-2" role="alert">
|
|
56
|
+
{{ error }}
|
|
57
|
+
<button type="button" class="btn-close float-end" @click="clear" aria-label="Close"></button>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</template>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
|
+
form_id?: any;
|
|
3
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
4
|
+
form_id?: any;
|
|
5
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const { form_id } = defineProps(["form_id"]);
|
|
3
|
+
const data = ref({});
|
|
4
|
+
const getFormData = (() => {
|
|
5
|
+
const response = useWebformsStore().fetchWebform(1);
|
|
6
|
+
return response;
|
|
7
|
+
});
|
|
8
|
+
onMounted(async () => {
|
|
9
|
+
data.value = await getFormData();
|
|
10
|
+
});
|
|
11
|
+
const Filedlabel = ((field) => {
|
|
12
|
+
return field.required ? `Your ${field.label} *` : `Your ${field.label}`;
|
|
13
|
+
});
|
|
14
|
+
const sortedFields = ((fields) => {
|
|
15
|
+
return fields.sort((a, b) => a.sortorder - b.sortorder);
|
|
16
|
+
});
|
|
17
|
+
const fomrSubmiting = ref(false);
|
|
18
|
+
const submitForm = ref({});
|
|
19
|
+
const submitInquiry = (async (submitEvent) => {
|
|
20
|
+
fomrSubmiting.value = true;
|
|
21
|
+
fomrSubmiting.value = true;
|
|
22
|
+
var public_key = "";
|
|
23
|
+
var recaptchaToken = "";
|
|
24
|
+
if (data.value.public_key) {
|
|
25
|
+
recaptchaToken = await grecaptcha.execute(data.value.public_key, { action: "submit" });
|
|
26
|
+
}
|
|
27
|
+
let allFields = document.querySelectorAll(".form-input-field");
|
|
28
|
+
let formData = {};
|
|
29
|
+
allFields.forEach((field) => {
|
|
30
|
+
const fieldId = field.getAttribute("data-id");
|
|
31
|
+
if (fieldId) {
|
|
32
|
+
formData[fieldId] = field.value;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const submitdata = { id: form_id, fields: formData, recaptcha: recaptchaToken };
|
|
36
|
+
const response = await useWebformsStore().submitInquiry(submitdata);
|
|
37
|
+
console.log(response);
|
|
38
|
+
submitForm.value = response;
|
|
39
|
+
fomrSubmiting.value = false;
|
|
40
|
+
if (submitForm.value && submitForm.value.status == "Success") {
|
|
41
|
+
allFields.forEach((field) => {
|
|
42
|
+
field.value = "";
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
}, 2e3);
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<form class="contactform" v-if="Object.keys(data).length > 0 && data.fields != void 0" @submit.prevent="submitInquiry()">
|
|
52
|
+
<div class="row gy-4">
|
|
53
|
+
<template v-for="(field, index) in sortedFields(data.fields)">
|
|
54
|
+
<div class="col-md-6" v-if="index < 4">
|
|
55
|
+
<input :required="field.required" :data-id="field.id"
|
|
56
|
+
:name="field.label.replace(/\s+/g, '').toLowerCase()" :type="field.type"
|
|
57
|
+
class="form-input-field form-control" :placeholder="Filedlabel(field)" />
|
|
58
|
+
</div>
|
|
59
|
+
<div class="col-md-12" v-if="index > 3">
|
|
60
|
+
<input :required="field.required" :data-id="field.id"
|
|
61
|
+
:name="field.label.replace(/\s+/g, '').toLowerCase()" v-if="field.type != 'textarea'"
|
|
62
|
+
:type="field.type" class="form-input-field form-control" :placeholder="Filedlabel(field)" />
|
|
63
|
+
<div v-if="field.type == 'textarea'">
|
|
64
|
+
<textarea rows="4" :required="field.required" :data-id="field.id"
|
|
65
|
+
:name="field.label.replace(/\s+/g, '').toLowerCase()" class="form-input-field form-control"
|
|
66
|
+
:placeholder="Filedlabel(field)"></textarea>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</template>
|
|
70
|
+
<button type="submit" class="btn btn-secondary w-auto px-4 rounded text-white rounded-5">
|
|
71
|
+
<span v-if="!fomrSubmiting">Send message</span>
|
|
72
|
+
<span v-if="fomrSubmiting">
|
|
73
|
+
Submitting <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-dasharray="16" stroke-dashoffset="16" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3c4.97 0 9 4.03 9 9"><animate fill="freeze" attributeName="stroke-dashoffset" dur="0.2s" values="16;0"/><animateTransform attributeName="transform" dur="1.5s" repeatCount="indefinite" type="rotate" values="0 12 12;360 12 12"/></path></svg>
|
|
74
|
+
</span>
|
|
75
|
+
</button>
|
|
76
|
+
<div v-if="submitForm?.message != void 0">
|
|
77
|
+
<div class="alert alert-success" role="alert">
|
|
78
|
+
<div v-html="submitForm.message"></div>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</form>
|
|
84
|
+
</template>
|
|
85
|
+
|
|
86
|
+
<style scoped>
|
|
87
|
+
.contactform .form-control {
|
|
88
|
+
min-height: 45px;
|
|
89
|
+
background-color: #f5f7fb;
|
|
90
|
+
border: none;
|
|
91
|
+
}
|
|
92
|
+
.contactform .form-control::placeholder {
|
|
93
|
+
color: #a6a6a6 !important;
|
|
94
|
+
}
|
|
95
|
+
.contactform .form-control::-webkit-input-placeholder {
|
|
96
|
+
color: #a6a6a6;
|
|
97
|
+
}
|
|
98
|
+
.contactform .form-control {
|
|
99
|
+
/* Firefox 19+ */
|
|
100
|
+
}
|
|
101
|
+
.contactform .form-control::-moz-placeholder {
|
|
102
|
+
color: #a6a6a6;
|
|
103
|
+
opacity: 1; /* Override Firefox's default lower opacity */
|
|
104
|
+
}
|
|
105
|
+
.contactform .form-control {
|
|
106
|
+
/* Internet Explorer 10+ */
|
|
107
|
+
}
|
|
108
|
+
.contactform .form-control:-ms-input-placeholder {
|
|
109
|
+
color: #a6a6a6;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.alert :deep(p) {
|
|
113
|
+
margin: 0 !important;
|
|
114
|
+
}
|
|
115
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
|
+
form_id?: any;
|
|
3
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
4
|
+
form_id?: any;
|
|
5
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
|
+
data?: any;
|
|
3
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
4
|
+
data?: any;
|
|
5
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, onMounted, nextTick, defineAsyncComponent } from "vue";
|
|
3
|
+
import { createApp, h } from "vue";
|
|
4
|
+
import { useRoute } from "vue-router";
|
|
5
|
+
import { useHead } from "#app";
|
|
6
|
+
const breadCrumb = defineAsyncComponent(() => import("~/components/other/BreadCrumb.vue"));
|
|
7
|
+
const route = useRoute();
|
|
8
|
+
const slug = route.params.slug || "";
|
|
9
|
+
const { data } = defineProps(["data"]);
|
|
10
|
+
const grapeContainer = ref(null);
|
|
11
|
+
const WebForm = defineAsyncComponent(
|
|
12
|
+
() => import("@/components/DynamicComponents/WebForm.vue")
|
|
13
|
+
);
|
|
14
|
+
const SubscriptionForm = defineAsyncComponent(
|
|
15
|
+
() => import("@/components/DynamicComponents/SubscriptionForm.vue")
|
|
16
|
+
);
|
|
17
|
+
onMounted(async () => {
|
|
18
|
+
await nextTick();
|
|
19
|
+
const container = grapeContainer.value;
|
|
20
|
+
if (!container) return;
|
|
21
|
+
container.innerHTML = data.data?.content?.html || '<div class="container text-center fs-4">No content Found</div>';
|
|
22
|
+
const formDivs = container.querySelectorAll("div[form_id]");
|
|
23
|
+
formDivs.forEach((el) => {
|
|
24
|
+
const formId = el.getAttribute("form_id");
|
|
25
|
+
if (!formId) return;
|
|
26
|
+
const mountEl = document.createElement("div");
|
|
27
|
+
el.replaceWith(mountEl);
|
|
28
|
+
createApp({
|
|
29
|
+
render() {
|
|
30
|
+
return h(WebForm, {
|
|
31
|
+
form_id: formId
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}).mount(mountEl);
|
|
35
|
+
});
|
|
36
|
+
const subscriptionForms = container.querySelectorAll("[subscription_form], .orix-subscription-form");
|
|
37
|
+
subscriptionForms.forEach((el) => {
|
|
38
|
+
const mountEl = document.createElement("div");
|
|
39
|
+
el.replaceWith(mountEl);
|
|
40
|
+
createApp({
|
|
41
|
+
render() {
|
|
42
|
+
return h(SubscriptionForm);
|
|
43
|
+
}
|
|
44
|
+
}).mount(mountEl);
|
|
45
|
+
});
|
|
46
|
+
const scripts = container.querySelectorAll("script");
|
|
47
|
+
console.log("scripts", scripts);
|
|
48
|
+
scripts.forEach((oldScript) => {
|
|
49
|
+
const newScript = document.createElement("script");
|
|
50
|
+
for (const attr of oldScript.attributes) {
|
|
51
|
+
newScript.setAttribute(attr.name, attr.value);
|
|
52
|
+
}
|
|
53
|
+
newScript.textContent = oldScript.textContent;
|
|
54
|
+
oldScript.parentNode?.replaceChild(newScript, oldScript);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
onMounted(async () => {
|
|
58
|
+
await nextTick();
|
|
59
|
+
const sections = document.querySelectorAll("[id]");
|
|
60
|
+
let activeLink = null;
|
|
61
|
+
const observer = new IntersectionObserver(
|
|
62
|
+
(entries) => {
|
|
63
|
+
entries.forEach((entry) => {
|
|
64
|
+
if (!entry.isIntersecting) return;
|
|
65
|
+
const id = entry.target.id;
|
|
66
|
+
const link = document.querySelector(`a[href="#${id}"]`);
|
|
67
|
+
if (!link) return;
|
|
68
|
+
if (activeLink && activeLink !== link) {
|
|
69
|
+
activeLink.style.backgroundColor = "";
|
|
70
|
+
activeLink.style.color = "";
|
|
71
|
+
}
|
|
72
|
+
link.style.backgroundColor = "rgb(0, 82, 137)";
|
|
73
|
+
link.style.color = "#ffffff";
|
|
74
|
+
activeLink = link;
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
threshold: 0.4
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
sections.forEach((section) => observer.observe(section));
|
|
82
|
+
});
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
<template>
|
|
86
|
+
<div class="container-fluid px-3 px-lg-5">
|
|
87
|
+
<breadCrumb :breadcrumbs="data?.data?.breadcrumb" :breadcrumb_title="data?.data?.breadcrumb_title || data?.data?.name" />
|
|
88
|
+
</div>
|
|
89
|
+
<div ref="grapeContainer"></div>
|
|
90
|
+
</template>
|
|
91
|
+
|
|
92
|
+
<style scoped>
|
|
93
|
+
:deep() .gjs-cell {
|
|
94
|
+
flex-grow: unset !important;
|
|
95
|
+
flex-basis: unset !important;
|
|
96
|
+
}
|
|
97
|
+
:deep() .accordion-button:not(.collapsed) {
|
|
98
|
+
background: none !important;
|
|
99
|
+
background-color: none !important;
|
|
100
|
+
color: unset !important;
|
|
101
|
+
font-weight: 500 !important;
|
|
102
|
+
}
|
|
103
|
+
:deep() .accordion-button:focus {
|
|
104
|
+
outline: none !important;
|
|
105
|
+
box-shadow: none !important;
|
|
106
|
+
}
|
|
107
|
+
:deep() .accordion-item {
|
|
108
|
+
margin: 20px 0;
|
|
109
|
+
border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color) !important;
|
|
110
|
+
}
|
|
111
|
+
:deep() .accordion-header {
|
|
112
|
+
border-bottom: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color) !important;
|
|
113
|
+
}
|
|
114
|
+
:deep() {
|
|
115
|
+
/* Scroll offset for anchor links - prevents content from hiding behind fixed header */
|
|
116
|
+
}
|
|
117
|
+
:deep() [id] {
|
|
118
|
+
scroll-margin-top: 150px;
|
|
119
|
+
}
|
|
120
|
+
</style>
|
|
121
|
+
|
|
122
|
+
<style>
|
|
123
|
+
.dynamicContent .accordion .accordion-button.collapsed{background-color:unset!important}.dynamicContent .accordion .accordion-button:not(.collapsed){background-color:unset!important;box-shadow:unset!important;color:unset!important;font-weight:500!important}
|
|
124
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
|
+
data?: any;
|
|
3
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
4
|
+
data?: any;
|
|
5
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
|
+
pageData?: any;
|
|
3
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
4
|
+
pageData?: any;
|
|
5
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, defineAsyncComponent, onMounted, watch } from "vue";
|
|
3
|
+
import stickyTabsPages from "../stickyTabsPages.vue";
|
|
4
|
+
import { useRoute } from "vue-router";
|
|
5
|
+
import { useHead } from "#app";
|
|
6
|
+
const route = useRoute();
|
|
7
|
+
const slug = route.params.slug || "home";
|
|
8
|
+
const { data: fetchData, error } = await useFetch(`/api/page/${slug}`, {});
|
|
9
|
+
const { pageData } = defineProps(["pageData"]);
|
|
10
|
+
const dynamicContent = ref("");
|
|
11
|
+
const stickyTabsContent = ref("");
|
|
12
|
+
onMounted(() => {
|
|
13
|
+
if (fetchData.value?.data?.content?.html) {
|
|
14
|
+
dynamicContent.value = fetchData.value.data.content.html;
|
|
15
|
+
} else if (pageData?.data?.content?.html) {
|
|
16
|
+
dynamicContent.value = pageData.data.content.html;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const extractStickyTabsFromHTML = (html) => {
|
|
20
|
+
if (!html || typeof html !== "string") return "";
|
|
21
|
+
try {
|
|
22
|
+
const tempDiv = document.createElement("div");
|
|
23
|
+
tempDiv.innerHTML = html;
|
|
24
|
+
let targetElement = null;
|
|
25
|
+
targetElement = tempDiv.querySelector("#ik6c");
|
|
26
|
+
if (!targetElement) {
|
|
27
|
+
targetElement = tempDiv.querySelector(".gjs-cell");
|
|
28
|
+
}
|
|
29
|
+
if (!targetElement) {
|
|
30
|
+
const allCells = tempDiv.querySelectorAll(".gjs-cell");
|
|
31
|
+
if (allCells.length > 0) {
|
|
32
|
+
targetElement = allCells[0];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!targetElement) {
|
|
36
|
+
const possibleElements = tempDiv.querySelectorAll("div");
|
|
37
|
+
for (const el of possibleElements) {
|
|
38
|
+
if (el.classList.contains("gjs-cell") || el.querySelector(".how-tab-link")) {
|
|
39
|
+
targetElement = el;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (targetElement) {
|
|
45
|
+
return targetElement.outerHTML;
|
|
46
|
+
}
|
|
47
|
+
return "";
|
|
48
|
+
} catch (error2) {
|
|
49
|
+
console.error("Error extracting sticky tabs:", error2);
|
|
50
|
+
return "";
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
watch(dynamicContent, (newHtml) => {
|
|
54
|
+
if (newHtml) {
|
|
55
|
+
stickyTabsContent.value = extractStickyTabsFromHTML(newHtml);
|
|
56
|
+
}
|
|
57
|
+
}, { immediate: true });
|
|
58
|
+
const extractOnServer = (html) => {
|
|
59
|
+
if (!html) return "";
|
|
60
|
+
const idMatch = html.match(/<div[^>]*id="ik6c"[^>]*>.*?<\/div>/s);
|
|
61
|
+
if (idMatch) return idMatch[0];
|
|
62
|
+
const classMatch = html.match(/<div[^>]*class="[^"]*gjs-cell[^"]*"[^>]*>.*?<\/div>/s);
|
|
63
|
+
if (classMatch) return classMatch[0];
|
|
64
|
+
const structureMatch = html.match(/<div[^>]*>.*?class="how-tab-link".*?<\/div>/s);
|
|
65
|
+
if (structureMatch) return structureMatch[0];
|
|
66
|
+
return "";
|
|
67
|
+
};
|
|
68
|
+
if (process.server) {
|
|
69
|
+
const htmlToExtract = fetchData.value?.data?.content?.html || pageData?.data?.content?.html || "";
|
|
70
|
+
if (htmlToExtract) {
|
|
71
|
+
stickyTabsContent.value = extractOnServer(htmlToExtract);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const isDynamic = pageData?.data?.is_dynamic;
|
|
75
|
+
const templateName = pageData?.data?.template;
|
|
76
|
+
const DynamicComponent = defineAsyncComponent(() => import("./dynamic.vue"));
|
|
77
|
+
const TemplateComponent = defineAsyncComponent({
|
|
78
|
+
loader: () => import(`./Template-${templateName}/index.vue`).catch(() => import("./Template-default/index.vue"))
|
|
79
|
+
// fallback
|
|
80
|
+
});
|
|
81
|
+
function scopeCss(css, scope = ".dynamicContent") {
|
|
82
|
+
return css.replace(
|
|
83
|
+
/(^|})\s*([^@}{]+)\s*\{/g,
|
|
84
|
+
(match, brace, selector) => {
|
|
85
|
+
if (selector.trim().startsWith("@")) {
|
|
86
|
+
return `${brace} ${selector} {`;
|
|
87
|
+
}
|
|
88
|
+
const scopedSelector = selector.split(",").map((sel) => {
|
|
89
|
+
sel = sel.trim();
|
|
90
|
+
if (sel.startsWith(scope)) return sel;
|
|
91
|
+
sel = sel.replace(/^body\b/, "").replace(/^html\b/, "").replace(/^\*/, "").trim();
|
|
92
|
+
return sel ? `${scope} ${sel}` : scope;
|
|
93
|
+
}).join(", ");
|
|
94
|
+
return `${brace} ${scopedSelector} {`;
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
useHead(() => {
|
|
99
|
+
const css = fetchData.value?.data?.content?.css || pageData?.data?.content?.css || "";
|
|
100
|
+
if (!css) return {};
|
|
101
|
+
return {
|
|
102
|
+
style: [
|
|
103
|
+
{
|
|
104
|
+
children: scopeCss(css),
|
|
105
|
+
id: "scoped-css",
|
|
106
|
+
type: "text/css"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
children: fetchData.value?.data?.content?.globalstyles?.globalCSS,
|
|
110
|
+
id: "global-css",
|
|
111
|
+
type: "text/css"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
const fullPath = ((fullUrl = "") => {
|
|
117
|
+
if (process.server) {
|
|
118
|
+
const headers = useRequestHeaders();
|
|
119
|
+
const protocol = headers["x-forwarded-proto"] || "http";
|
|
120
|
+
const host = headers.host || "localhost";
|
|
121
|
+
fullUrl = `${protocol}://${host}${route.fullPath}`;
|
|
122
|
+
} else {
|
|
123
|
+
fullUrl = `${window.location.origin}${route.fullPath}`;
|
|
124
|
+
}
|
|
125
|
+
return fullUrl;
|
|
126
|
+
});
|
|
127
|
+
useHead({
|
|
128
|
+
title: fetchData.value?.data?.meta_title || pageData?.data?.meta_title,
|
|
129
|
+
meta: [
|
|
130
|
+
{
|
|
131
|
+
name: "description",
|
|
132
|
+
content: fetchData.value?.data?.meta_description || pageData?.data?.meta_description
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: "og:title",
|
|
136
|
+
content: fetchData.value?.data?.meta_title || pageData?.data?.meta_title
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "og:description",
|
|
140
|
+
content: fetchData.value?.data?.meta_description || pageData?.data?.meta_description
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "og:url",
|
|
144
|
+
content: fullPath()
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
});
|
|
148
|
+
</script>
|
|
149
|
+
|
|
150
|
+
<template>
|
|
151
|
+
<div class="container-fluid px-0">
|
|
152
|
+
<!-- Add a wrapper div with dynamicContent class -->
|
|
153
|
+
<div v-if="isDynamic" class="dynamicContent">
|
|
154
|
+
<DynamicComponent
|
|
155
|
+
:pageData="pageData || fetchData?.data"
|
|
156
|
+
:data="fetchData"
|
|
157
|
+
/>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
<TemplateComponent
|
|
161
|
+
v-else
|
|
162
|
+
:pageData="pageData || fetchData?.data"
|
|
163
|
+
:data="fetchData"
|
|
164
|
+
/>
|
|
165
|
+
|
|
166
|
+
<!-- <stickyTabsPages
|
|
167
|
+
v-if="stickyTabsContent"
|
|
168
|
+
:htmlContent="stickyTabsContent"
|
|
169
|
+
/> -->
|
|
170
|
+
</div>
|
|
171
|
+
</template>
|
|
172
|
+
|
|
173
|
+
<style scoped>
|
|
174
|
+
.gjs-cell {
|
|
175
|
+
flex-grow: unset !important;
|
|
176
|
+
flex-basis: unset !important;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
#ik6c {
|
|
180
|
+
width: auto !important;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@media (max-width: 575.98px) {
|
|
184
|
+
#ik6c {
|
|
185
|
+
max-width: 100% !important;
|
|
186
|
+
column-gap: 0 !important;
|
|
187
|
+
}
|
|
188
|
+
.how-tab-link {
|
|
189
|
+
font-size: 11px !important;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
</style>
|
|
193
|
+
|
|
194
|
+
<style>
|
|
195
|
+
.accordion-button:not(.collapsed) {
|
|
196
|
+
background: none !important;
|
|
197
|
+
color: unset !important;
|
|
198
|
+
font-weight: 500;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.accordion-button:focus {
|
|
202
|
+
outline: none !important;
|
|
203
|
+
box-shadow: none !important;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.accordion-item {
|
|
207
|
+
margin: 20px 0;
|
|
208
|
+
border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color) !important;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.accordion-header {
|
|
212
|
+
border-bottom: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color) !important;
|
|
213
|
+
}
|
|
214
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
|
+
pageData?: any;
|
|
3
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
4
|
+
pageData?: any;
|
|
5
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -86,7 +86,7 @@ const injectProductSliderHTML = (html, datahtml) => {
|
|
|
86
86
|
);
|
|
87
87
|
return html;
|
|
88
88
|
};
|
|
89
|
-
const htmlFromCMS = data?.
|
|
89
|
+
const htmlFromCMS = data?.content?.html ?? "";
|
|
90
90
|
const finalHTML = await applyDynamicSSR(htmlFromCMS, variabledata);
|
|
91
91
|
const finalHTMLSlider = await injectProductSliderHTML(finalHTML, variabledata);
|
|
92
92
|
const hasAttributeContainer = /class="[^"]*product-attributes-wrapper[^"]*"/.test(finalHTML);
|
|
@@ -108,8 +108,8 @@ function scopeCss(css, scope = ".dynamicContent") {
|
|
|
108
108
|
);
|
|
109
109
|
}
|
|
110
110
|
useHead(() => {
|
|
111
|
-
const Globalcss = data?.
|
|
112
|
-
const css = data?.
|
|
111
|
+
const Globalcss = data?.content?.globalstyles?.globalCSS || "";
|
|
112
|
+
const css = data?.content?.css || "";
|
|
113
113
|
if (!css) return {};
|
|
114
114
|
return {
|
|
115
115
|
style: [
|
|
@@ -48,8 +48,6 @@ if (error.value) {
|
|
|
48
48
|
} else {
|
|
49
49
|
productData.value = data.value;
|
|
50
50
|
}
|
|
51
|
-
const { Template } = useProductComponent(data.value?.data, product.data.template);
|
|
52
|
-
import { useHead } from "#app";
|
|
53
51
|
const config = useRuntimeConfig();
|
|
54
52
|
const getFullUrl = () => {
|
|
55
53
|
if (process.client) {
|
|
@@ -60,7 +58,7 @@ const getFullUrl = () => {
|
|
|
60
58
|
</script>
|
|
61
59
|
|
|
62
60
|
<template>
|
|
63
|
-
<div v-if="product.
|
|
61
|
+
<div v-if="product.is_dynamic">
|
|
64
62
|
<Dynamic :data="product" :product="data"/>
|
|
65
63
|
</div>
|
|
66
64
|
</template>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
data: any;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
declare const _default: typeof __VLS_export;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
data: any;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
declare const _default: typeof __VLS_export;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
data: any;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
declare const _default: typeof __VLS_export;
|
|
6
|
+
export default _default;
|