@ozdao/prometheus-framework 0.2.320 → 0.2.322
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/main.css +1 -1
- package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.cjs +34 -5
- package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.js +35 -6
- package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.js.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +56 -55
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +57 -56
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +0 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +0 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconEarn.vue.cjs +62 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconEarn.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconEarn.vue.js +62 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconEarn.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconInfo.vue.cjs +43 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconInfo.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconInfo.vue.js +43 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconInfo.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.cjs +132 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.js +132 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs +2 -0
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.js +12 -10
- package/dist/prometheus-framework/src/modules/landing/landing.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +492 -474
- package/dist/prometheus-framework/src/modules/pages/pages.client.js +492 -474
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/elements/ConnectMetamask.vue.cjs +81 -35
- package/dist/prometheus-framework/src/modules/wallet/views/components/elements/ConnectMetamask.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +81 -35
- package/dist/prometheus-framework/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/localization/wallet.json.cjs +0 -6
- package/dist/prometheus-framework/src/modules/wallet/views/localization/wallet.json.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/localization/wallet.json.js +0 -6
- package/dist/prometheus-framework/src/modules/wallet/views/localization/wallet.json.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -7
- package/src/modules/community/components/sections/HotPosts.vue +68 -65
- package/src/modules/events/components/sections/List.vue +0 -18
- package/src/modules/globals/views/components/layouts/Client.vue +28 -1
- package/src/modules/icons/entities/IconInfo.vue +15 -0
- package/src/modules/landing/components/sections/SectionEarn.vue +56 -54
- package/src/modules/landing/components/sections/SectionGuide.vue +4 -3
- package/src/modules/landing/landing.client.js +2 -0
- package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
- package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +74 -44
- package/src/modules/wallet/views/localization/wallet.json +0 -6
- package/src/styles/base/all.scss +5 -4
- package/src/styles/typography.scss +5 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConnectMetamask.vue.js","sources":["../../../../../../../../src/modules/wallet/views/components/elements/ConnectMetamask.vue"],"sourcesContent":["<template>\n <div>\n <!-- Connect Metamask -->\n <button \n v-if=\"!isMetaMaskInstalled\"\n @click=\"connectMetaMask\" \n class=\"transition-ease-in-out cursor-pointer
|
1
|
+
{"version":3,"file":"ConnectMetamask.vue.js","sources":["../../../../../../../../src/modules/wallet/views/components/elements/ConnectMetamask.vue"],"sourcesContent":["<template>\n <div>\n <!-- Connect Metamask -->\n <button \n v-if=\"!isMetaMaskInstalled\"\n @click=\"connectMetaMask\" \n class=\"transition-ease-in-out cursor-pointer bg-black radius-big flex-v-center flex-nowrap flex t-left uppercase w-100 pd-small t-white\"\n >\n <img loading=\"lazy\" :src=\"metamaskIcon\" class=\"mn-r-small i-big\">\n <span class=\"h4 uppercase w-100\">{{ t('connectMetaMask') }}</span>\n <IconAdd class=\"t-transp\" fill=\"rgb(var(--white))\"/>\n </button>\n <template v-else>\n <!-- Switch to Polygon -->\n <button \n v-if=\"!isPolygon\"\n @click=\"switchToPolygon\" \n class=\"transition-ease-in-out cursor-pointer hover-bg-white hover-t-black bg-black t-white radius-big flex-v-center flex-nowrap flex t-left uppercase w-100 pd-small\"\n >\n <img loading=\"lazy\" :src=\"metamaskIcon\" class=\"mn-r-small i-big\">\n <span class=\"h4 uppercase w-100\">{{ t('switchToPolygon') }}</span>\n <IconAdd class=\"t-transp\" fill=\"rgb(var(--white))\"/>\n </button>\n <!-- Add Token to metamask -->\n <button \n v-if=\"isPolygon\"\n @click=\"addToken\" \n class=\"transition-ease-in-out cursor-pointer hover-bg-white hover-t-black bg-black radius-big flex-v-center flex-nowrap flex t-left uppercase w-100 pd-small t-white\"\n >\n <img loading=\"lazy\" :src=\"metamaskIcon\" class=\"mn-r-small i-big\">\n <span class=\"h4 uppercase w-100\">{{ t('addToken') }}</span>\n <IconAdd class=\"hover-fill-black fill-white t-transp\"/>\n </button>\n </template>\n <p class=\"mn-t-small\" v-if=\"error\">{{ error }}</p>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nimport IconAdd from '@pf/src/modules/icons/navigation/IconAdd.vue';\n\nconst props = defineProps({\n // Token configuration\n tokenAddress: {\n type: String,\n required: true\n },\n tokenSymbol: {\n type: String,\n required: true\n },\n tokenImage: {\n type: String,\n required: true\n },\n tokenDecimals: {\n type: Number,\n default: 18\n },\n // Chain configuration\n targetChainId: {\n type: String,\n default: '0x89' // Polygon Mainnet by default\n },\n // UI configuration\n metamaskIcon: {\n type: String,\n default: '/icons/metamask.svg'\n },\n content: {\n type: Object,\n default: () => ({\n en: {\n \"connectMetaMask\": \"Connect MetaMask\",\n \"switchToPolygon\": \"Switch to Polygon\",\n \"addToken\": `Add token to MetaMask`,\n }\n })\n }\n});\n\nconst isMetaMaskInstalled = ref(false);\nconst isPolygon = ref(false);\nconst loading = ref(false);\nconst error = ref(null);\nconst buttonStyle = ref({});\n\nconst connectMetaMask = async () => {\n if (typeof window.ethereum !== 'undefined') {\n try {\n await window.ethereum.request({ method: 'eth_requestAccounts' });\n checkMetaMask();\n } catch (err) {\n error.value = err.message;\n console.error('Error connecting to MetaMask:', err);\n }\n } else {\n window.open('https://metamask.io/', '_blank');\n }\n};\n\nconst checkMetaMask = async () => {\n if (typeof window.ethereum !== 'undefined') {\n isMetaMaskInstalled.value = true;\n const chainId = await window.ethereum.request({ method: 'eth_chainId' });\n isPolygon.value = chainId === props.targetChainId;\n } else {\n isMetaMaskInstalled.value = false;\n }\n};\n\nconst switchToPolygon = async () => {\n try {\n await window.ethereum.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: props.targetChainId }],\n });\n checkMetaMask();\n } catch (err) {\n error.value = err.message;\n console.error('Error switching to Polygon:', err);\n }\n};\n\nconst addToken = async () => {\n buttonStyle.value['pointer-events'] = 'none';\n error.value = null;\n loading.value = true;\n \n try {\n await ethereum.request({\n method: 'wallet_watchAsset',\n params: {\n type: 'ERC20',\n options: {\n address: props.tokenAddress,\n symbol: props.tokenSymbol,\n decimals: props.tokenDecimals,\n image: props.tokenImage,\n },\n },\n });\n buttonStyle.value['background-color'] = '#009911';\n loading.value = false;\n } catch (err) {\n error.value = err.message;\n loading.value = false;\n }\n};\n\nconst { t } = useI18n({\n messages: props.content\n});\n\nonMounted(() => {\n checkMetaMask();\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,UAAM,QAAQ;AAwCd,UAAM,sBAAsB,IAAI,KAAK;AACrC,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,cAAc,IAAI,CAAA,CAAE;AAE1B,UAAM,kBAAkB,YAAY;AAClC,UAAI,OAAO,OAAO,aAAa,aAAa;AAC1C,YAAI;AACF,gBAAM,OAAO,SAAS,QAAQ,EAAE,QAAQ,sBAAqB,CAAE;AAC/D;QACD,SAAQ,KAAK;AACZ,gBAAM,QAAQ,IAAI;AAClB,kBAAQ,MAAM,iCAAiC,GAAG;AAAA,QACnD;AAAA,MACL,OAAS;AACL,eAAO,KAAK,wBAAwB,QAAQ;AAAA,MAC7C;AAAA,IACH;AAEA,UAAM,gBAAgB,YAAY;AAChC,UAAI,OAAO,OAAO,aAAa,aAAa;AAC1C,4BAAoB,QAAQ;AAC5B,cAAM,UAAU,MAAM,OAAO,SAAS,QAAQ,EAAE,QAAQ,cAAa,CAAE;AACvE,kBAAU,QAAQ,YAAY,MAAM;AAAA,MACxC,OAAS;AACL,4BAAoB,QAAQ;AAAA,MAC7B;AAAA,IACH;AAEA,UAAM,kBAAkB,YAAY;AAClC,UAAI;AACF,cAAM,OAAO,SAAS,QAAQ;AAAA,UAC5B,QAAQ;AAAA,UACR,QAAQ,CAAC,EAAE,SAAS,MAAM,cAAa,CAAE;AAAA,QAC/C,CAAK;AACD;MACD,SAAQ,KAAK;AACZ,cAAM,QAAQ,IAAI;AAClB,gBAAQ,MAAM,+BAA+B,GAAG;AAAA,MACjD;AAAA,IACH;AAEA,UAAM,WAAW,YAAY;AAC3B,kBAAY,MAAM,gBAAgB,IAAI;AACtC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAEhB,UAAI;AACF,cAAM,SAAS,QAAQ;AAAA,UACrB,QAAQ;AAAA,UACR,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,SAAS;AAAA,cACP,SAAS,MAAM;AAAA,cACf,QAAQ,MAAM;AAAA,cACd,UAAU,MAAM;AAAA,cAChB,OAAO,MAAM;AAAA,YACd;AAAA,UACF;AAAA,QACP,CAAK;AACD,oBAAY,MAAM,kBAAkB,IAAI;AACxC,gBAAQ,QAAQ;AAAA,MACjB,SAAQ,KAAK;AACZ,cAAM,QAAQ,IAAI;AAClB,gBAAQ,QAAQ;AAAA,MACjB;AAAA,IACH;AAEA,UAAM,EAAE,EAAG,IAAG,QAAQ;AAAA,MACpB,UAAU,MAAM;AAAA,IAClB,CAAC;AAED,cAAU,MAAM;AACd;IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -6,9 +6,6 @@ const messages = {
|
|
6
6
|
title: "Your Wallet",
|
7
7
|
subtitle: "Earn WDT by purchasing our weed or contributing to the community.",
|
8
8
|
token: "WDT",
|
9
|
-
connectMetaMask: "Connect MetaMask",
|
10
|
-
switchToPolygon: "Switch to Polygon",
|
11
|
-
addToken: "Add WDT to MetaMask",
|
12
9
|
pay: "pay",
|
13
10
|
youReceived: "you received",
|
14
11
|
enterAmount: "enter amount to top up",
|
@@ -22,9 +19,6 @@ const messages = {
|
|
22
19
|
wallet: {
|
23
20
|
title: "Ваш Кошелек",
|
24
21
|
subtitle: "Зарабатывайте WDT, покупая товары или внося вклад в сообщество.",
|
25
|
-
connectMetaMask: "Подключить MetaMask",
|
26
|
-
switchToPolygon: "Переподключиться на Polygon",
|
27
|
-
addToken: "Добавить WDT в Metamask",
|
28
22
|
pay: "купить",
|
29
23
|
youReceived: "вы пополнили на сумму",
|
30
24
|
enterAmount: "введите сумму для пополнения",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wallet.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"wallet.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -4,9 +4,6 @@ const messages = {
|
|
4
4
|
title: "Your Wallet",
|
5
5
|
subtitle: "Earn WDT by purchasing our weed or contributing to the community.",
|
6
6
|
token: "WDT",
|
7
|
-
connectMetaMask: "Connect MetaMask",
|
8
|
-
switchToPolygon: "Switch to Polygon",
|
9
|
-
addToken: "Add WDT to MetaMask",
|
10
7
|
pay: "pay",
|
11
8
|
youReceived: "you received",
|
12
9
|
enterAmount: "enter amount to top up",
|
@@ -20,9 +17,6 @@ const messages = {
|
|
20
17
|
wallet: {
|
21
18
|
title: "Ваш Кошелек",
|
22
19
|
subtitle: "Зарабатывайте WDT, покупая товары или внося вклад в сообщество.",
|
23
|
-
connectMetaMask: "Подключить MetaMask",
|
24
|
-
switchToPolygon: "Переподключиться на Polygon",
|
25
|
-
addToken: "Добавить WDT в Metamask",
|
26
20
|
pay: "купить",
|
27
21
|
youReceived: "вы пополнили на сумму",
|
28
22
|
enterAmount: "введите сумму для пополнения",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wallet.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"wallet.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
@@ -100,13 +100,7 @@ onMounted(async() => {
|
|
100
100
|
</template>
|
101
101
|
|
102
102
|
<style lang="scss">
|
103
|
-
|
104
|
-
transition: opacity .5s;
|
105
|
-
}
|
106
|
-
.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {
|
107
|
-
opacity: 0;
|
108
|
-
}
|
109
|
-
.carousel__track {
|
103
|
+
.carousel__track {
|
110
104
|
height: 100%;
|
111
105
|
}
|
112
106
|
.carousel-controls {
|
@@ -1,73 +1,76 @@
|
|
1
1
|
<template>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
}"
|
34
|
-
v-slot="{
|
35
|
-
item
|
36
|
-
}"
|
37
|
-
class="slider-hotpost"
|
38
|
-
>
|
39
|
-
<CardBlogpost
|
40
|
-
:key="item._id"
|
41
|
-
:blogpost="item"
|
42
|
-
:user="auth.state.user._id"
|
43
|
-
:hideDescription="true"
|
44
|
-
class="bg-white flex flex-column h-35r"
|
45
|
-
/>
|
46
|
-
</Slider>
|
47
|
-
</div>
|
48
|
-
</section>
|
2
|
+
<Slider
|
3
|
+
:store="{
|
4
|
+
read: (options) => blog.read({
|
5
|
+
skip,
|
6
|
+
limit,
|
7
|
+
user: userId,
|
8
|
+
period,
|
9
|
+
category
|
10
|
+
})
|
11
|
+
}"
|
12
|
+
:text="{
|
13
|
+
messages: {
|
14
|
+
en: {
|
15
|
+
title: 'No Blogposts Found',
|
16
|
+
description: 'Currently, there are no blogposts available.'
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}"
|
20
|
+
v-slot="{
|
21
|
+
item
|
22
|
+
}"
|
23
|
+
class="slider-hotpost flex-child-default"
|
24
|
+
>
|
25
|
+
<CardBlogpost
|
26
|
+
:key="item._id"
|
27
|
+
:blogpost="item"
|
28
|
+
:user="auth.state.user._id"
|
29
|
+
:hideDescription="true"
|
30
|
+
class="bg-white flex flex-column h-35r"
|
31
|
+
/>
|
32
|
+
</Slider>
|
49
33
|
</template>
|
50
34
|
|
51
|
-
<script setup
|
52
|
-
|
35
|
+
<script setup>
|
36
|
+
import { ref, onMounted, defineProps } from 'vue'
|
37
|
+
import Feed from '@pf/src/components/Feed/Feed.vue'
|
38
|
+
import Slider from '@pf/src/components/Slider/Slider.vue'
|
39
|
+
import CardBlogpost from '@pf/src/modules/community/components/blocks/CardBlogpost.vue'
|
40
|
+
import * as blog from '@pf/src/modules/community/store/blogposts.js'
|
41
|
+
import * as auth from '@pf/src/modules/auth/views/store/auth'
|
53
42
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
43
|
+
const props = defineProps({
|
44
|
+
skip: {
|
45
|
+
type: Number,
|
46
|
+
default: 0
|
47
|
+
},
|
48
|
+
limit: {
|
49
|
+
type: Number,
|
50
|
+
default: 8
|
51
|
+
},
|
52
|
+
userId: {
|
53
|
+
type: String,
|
54
|
+
default: () => auth.state.user._id
|
55
|
+
},
|
56
|
+
period: {
|
57
|
+
type: String,
|
58
|
+
default: 'year'
|
59
|
+
},
|
60
|
+
category: {
|
61
|
+
type: String,
|
62
|
+
default: 'featured'
|
63
|
+
}
|
64
|
+
})
|
61
65
|
</script>
|
62
66
|
|
63
|
-
<style lang="scss"
|
67
|
+
<style lang="scss">
|
68
|
+
.slider-hotpost .embla__slide {
|
69
|
+
flex: 0 0 25%;
|
70
|
+
}
|
71
|
+
@media screen and (max-width: 1025px) {
|
64
72
|
.slider-hotpost .embla__slide {
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
@media screen and (max-width: 1025px) {
|
69
|
-
.slider-hotpost .embla__slide {
|
70
|
-
flex: 0 0 75%;
|
71
|
-
}
|
72
|
-
}
|
73
|
+
flex: 0 0 75%;
|
74
|
+
}
|
75
|
+
}
|
73
76
|
</style>
|
@@ -115,22 +115,4 @@
|
|
115
115
|
</script>
|
116
116
|
|
117
117
|
<style lang="scss">
|
118
|
-
.fade-move,
|
119
|
-
.fade-enter-active,
|
120
|
-
.fade-leave-active {
|
121
|
-
transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
|
122
|
-
}
|
123
|
-
|
124
|
-
/* 2. declare enter from and leave to state */
|
125
|
-
.fade-enter-from,
|
126
|
-
.fade-leave-to {
|
127
|
-
opacity: 0;
|
128
|
-
transform: scaleY(0.01) translate(30px, 0);
|
129
|
-
}
|
130
|
-
|
131
|
-
/* 3. ensure leaving items are taken out of layout flow so that moving
|
132
|
-
animations can be calculated correctly. */
|
133
|
-
.fade-leave-active {
|
134
|
-
position: absolute;
|
135
|
-
}
|
136
118
|
</style>
|
@@ -193,7 +193,34 @@
|
|
193
193
|
});
|
194
194
|
</script>
|
195
195
|
|
196
|
-
<style lang="scss"
|
196
|
+
<style lang="scss">
|
197
|
+
.fade-enter-active, .fade-leave-active {
|
198
|
+
transition: opacity .5s;
|
199
|
+
}
|
200
|
+
.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {
|
201
|
+
opacity: 0;
|
202
|
+
}
|
203
|
+
|
204
|
+
|
205
|
+
.fade-move,
|
206
|
+
.fade-enter-active,
|
207
|
+
.fade-leave-active {
|
208
|
+
transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
|
209
|
+
}
|
210
|
+
|
211
|
+
/* 2. declare enter from and leave to state */
|
212
|
+
.fade-enter-from,
|
213
|
+
.fade-leave-to {
|
214
|
+
opacity: 0;
|
215
|
+
transform: translate(30px, 0);
|
216
|
+
}
|
217
|
+
|
218
|
+
/* 3. ensure leaving items are taken out of layout flow so that moving
|
219
|
+
animations can be calculated correctly. */
|
220
|
+
.fade-leave-active {
|
221
|
+
position: absolute;
|
222
|
+
}
|
223
|
+
|
197
224
|
.moveFromTop-enter-active,
|
198
225
|
.moveFromTop-leave-active {
|
199
226
|
transform: translateY(0);
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<template>
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="mn-b-small i-extra" f width="64" height="64" viewBox="0 0 64 64" fill="none">
|
3
|
+
<circle cx="32" cy="32" r="22.875" :stroke="fill" stroke-width="2.25"/>
|
4
|
+
<path d="M34.207 22.4192L33.436 21.6L34.207 22.4192C34.8678 21.7973 35.173 20.9832 35.173 20.088C35.173 19.1688 34.8535 18.3301 34.1341 17.7234C33.4511 17.123 32.5912 16.875 31.672 16.875C30.7602 16.875 29.912 17.1319 29.2341 17.7338C28.5388 18.3482 28.243 19.1854 28.243 20.088C28.243 20.9931 28.5391 21.8248 29.209 22.4552L29.2337 22.4785L29.2598 22.5002C29.9451 23.0714 30.8001 23.301 31.708 23.301C32.6422 23.301 33.5294 23.057 34.207 22.4192ZM33.012 26.631H28.8847C27.8742 26.631 27.055 27.4502 27.055 28.4607C27.055 29.3486 27.6924 30.1083 28.5668 30.2626L29.503 30.4279V42.2561L28.2191 42.643C27.4211 42.8835 26.875 43.6184 26.875 44.4518C26.875 45.4952 27.7208 46.341 28.7642 46.341H35.7727C36.8134 46.341 37.657 45.4974 37.657 44.4567C37.657 43.6154 37.0993 42.8761 36.2904 42.6449L35.137 42.3154V28.756C35.137 27.5824 34.1856 26.631 33.012 26.631Z" :stroke="fill" stroke-width="2.25"/>
|
5
|
+
</svg>
|
6
|
+
</template>
|
7
|
+
|
8
|
+
<script setup>
|
9
|
+
const props = defineProps({
|
10
|
+
fill: {
|
11
|
+
type: String,
|
12
|
+
default: 'rgb(var(--black))'
|
13
|
+
}
|
14
|
+
})
|
15
|
+
</script>
|
@@ -1,27 +1,23 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="pd-thin">
|
3
3
|
<section class="cols-2 bg-black t-black radius-big pd-thin gap-thin">
|
4
|
-
<div>
|
4
|
+
<div class="pos-relative flex flex-column flex-center h-100">
|
5
5
|
<div class="mn-b-thin t-white pd-big radius-big">
|
6
|
-
|
6
|
+
<img v-if="te('logo')" loading="lazy" class="mn-b-semi h-5r" :src="t('logo')">
|
7
7
|
|
8
|
-
<h2 class="mn-b-small" v-html="t('title')"/>
|
9
|
-
<p class="mn-b-small p-big t-transp">{{ t('description') }}</p>
|
10
|
-
<p class="mn-b-semi p-medium t-transp">{{ t('subdescription')}}</p>
|
8
|
+
<h2 v-if="te('title')" class="mn-b-small" v-html="t('title')"/>
|
9
|
+
<p v-if="te('description')" class="mn-b-small p-big t-transp">{{ t('description') }}</p>
|
10
|
+
<p v-if="te('subdescription')" class="mn-b-semi p-medium t-transp">{{ t('subdescription')}}</p>
|
11
11
|
|
12
12
|
<div class="gap-thin cols-2">
|
13
|
-
<router-link to="
|
14
|
-
|
15
|
-
|
16
|
-
<circle cx="32" cy="32" r="22.875" stroke="black" stroke-width="2.25"/>
|
17
|
-
<path d="M34.207 22.4192L33.436 21.6L34.207 22.4192C34.8678 21.7973 35.173 20.9832 35.173 20.088C35.173 19.1688 34.8535 18.3301 34.1341 17.7234C33.4511 17.123 32.5912 16.875 31.672 16.875C30.7602 16.875 29.912 17.1319 29.2341 17.7338C28.5388 18.3482 28.243 19.1854 28.243 20.088C28.243 20.9931 28.5391 21.8248 29.209 22.4552L29.2337 22.4785L29.2598 22.5002C29.9451 23.0714 30.8001 23.301 31.708 23.301C32.6422 23.301 33.5294 23.057 34.207 22.4192ZM33.012 26.631H28.8847C27.8742 26.631 27.055 27.4502 27.055 28.4607C27.055 29.3486 27.6924 30.1083 28.5668 30.2626L29.503 30.4279V42.2561L28.2191 42.643C27.4211 42.8835 26.875 43.6184 26.875 44.4518C26.875 45.4952 27.7208 46.341 28.7642 46.341H35.7727C36.8134 46.341 37.657 45.4974 37.657 44.4567C37.657 43.6154 37.0993 42.8761 36.2904 42.6449L35.137 42.3154V28.756C35.137 27.5824 34.1856 26.631 33.012 26.631Z" stroke="black" stroke-width="2.25"/>
|
18
|
-
</svg>
|
19
|
-
<h4 class="uppercase t-medium">{{t('action')}}</h4>
|
13
|
+
<router-link :to="t('action_link')" class="flex t-center bg-white flex-center flex-column t-black pd-big radius-big">
|
14
|
+
<IconInfo class="mn-b-small i-extra" fill="rgb(var(--black)"/>
|
15
|
+
<p class="uppercase t-semi">{{t('action')}}</p>
|
20
16
|
</router-link>
|
21
17
|
|
22
|
-
<router-link to="
|
18
|
+
<router-link :to="t('action_sublink') " class="flex t-center flex-center flex-column bg-main t-black pd-big radius-big">
|
23
19
|
<IconEarn class="mn-b-small i-extra" fill="rgb(var(--black)"/>
|
24
|
-
<
|
20
|
+
<p class="uppercase t-semi">{{t('subaction')}}</p>
|
25
21
|
</router-link>
|
26
22
|
|
27
23
|
</div>
|
@@ -30,12 +26,22 @@
|
|
30
26
|
</div>
|
31
27
|
|
32
28
|
<div class="pos-relative pd-medium flex-column flex-center flex h-100 bg-main radius-big o-hidden">
|
33
|
-
<img loading="lazy" src="
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
29
|
+
<img v-if="te('image')" loading="lazy" :src="t('image')" class="mn-t-extra z-index-1 w-75 mn-b-auto">
|
30
|
+
<ConnectMetamask
|
31
|
+
:tokenAddress="options.tokenAddress"
|
32
|
+
:tokenSymbol="options.tokenSymbol"
|
33
|
+
:tokenDecimals="options.tokenDecimals"
|
34
|
+
:tokenImage="options.tokenImage"
|
35
|
+
:targetChainId="options.targetChainId"
|
36
|
+
:metamaskIcon="options.metamaskIcon"
|
37
|
+
:content="{
|
38
|
+
en: {
|
39
|
+
'connectMetaMask': t('connectMetaMask'),
|
40
|
+
'switchToPolygon': t('switchToPolygon'),
|
41
|
+
'addToken': t('addToken')
|
42
|
+
}
|
43
|
+
}"
|
44
|
+
/>
|
39
45
|
</div>
|
40
46
|
</section>
|
41
47
|
</div>
|
@@ -45,55 +51,51 @@
|
|
45
51
|
import { computed,ref,onMounted, reactive } from 'vue'
|
46
52
|
import { useI18n } from 'vue-i18n';
|
47
53
|
|
48
|
-
import
|
49
|
-
|
54
|
+
import IconInfo from '@pf/src/modules/icons/entities/IconInfo.vue'
|
50
55
|
import IconEarn from '@pf/src/modules/icons/entities/IconEarn.vue'
|
51
|
-
import IconInfo from '@pf/src/modules/icons/navigation/IconInfo.vue'
|
52
56
|
|
53
57
|
import ConnectMetamask from '@pf/src/modules/wallet/views/components/elements/ConnectMetamask.vue'
|
54
58
|
|
55
59
|
const props = defineProps({
|
56
|
-
|
57
|
-
type:
|
58
|
-
|
59
|
-
},
|
60
|
-
mockupMobile: {
|
61
|
-
type: String,
|
62
|
-
default: "/landing/mockup-mobile.png"
|
63
|
-
},
|
64
|
-
bgImage: {
|
65
|
-
type: String,
|
66
|
-
default: "" // Введите ваше стандартное значение здесь, если необходимо
|
60
|
+
content: {
|
61
|
+
type: Object,
|
62
|
+
required: true
|
67
63
|
},
|
68
|
-
|
64
|
+
options: {
|
69
65
|
type: Object,
|
70
66
|
default: () => ({
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
subaction: 'How to Get',
|
78
|
-
},
|
79
|
-
}
|
67
|
+
tokenAddress: '0x64b4b0ade1f015d6a0c536e8cf041e181d872220',
|
68
|
+
tokenSymbol: 'OZDT',
|
69
|
+
tokenDecimals: '8',
|
70
|
+
tokenImage: 'https://ozdao.dev/logo-token.png',
|
71
|
+
targetChainId: '0x89',
|
72
|
+
metamaskIcon: "/icons/metamask.svg"
|
80
73
|
})
|
81
74
|
}
|
82
75
|
})
|
83
|
-
const { t } = useI18n(
|
76
|
+
const { t, te } = useI18n({
|
77
|
+
messages: props.content
|
78
|
+
})
|
84
79
|
</script>
|
85
80
|
|
86
81
|
<style lang="scss" scoped>
|
87
|
-
|
88
|
-
|
89
|
-
|
82
|
+
.spiral {
|
83
|
+
background-size: cover;
|
84
|
+
width: 100rem;
|
85
|
+
height: 100rem;
|
86
|
+
position: absolute;
|
87
|
+
opacity: 0.066;
|
88
|
+
transform: translate(-50%, -50%) rotate(0deg);
|
89
|
+
transform-origin: center center;
|
90
|
+
animation: spin 5s linear infinite;
|
91
|
+
}
|
92
|
+
|
93
|
+
@keyframes spin {
|
94
|
+
0% {
|
95
|
+
transform: translate(-50%, -50%) rotate(0deg);
|
90
96
|
}
|
91
|
-
|
92
|
-
transform: rotate(360deg);
|
97
|
+
100% {
|
98
|
+
transform: translate(-50%, -50%) rotate(360deg);
|
93
99
|
}
|
94
100
|
}
|
95
|
-
.rotating {
|
96
|
-
animation: rotate 16s linear infinite;
|
97
|
-
}
|
98
|
-
|
99
101
|
</style>
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// Importing Vue components
|
2
2
|
import MobileApp from './components/sections/MobileApp.vue';
|
3
3
|
import SubscribeNewsletter from './components/sections/SubscribeNewsletter.vue';
|
4
|
+
import SectionEarn from './components/sections/SectionEarn.vue';
|
4
5
|
import SectionFeatures from './components/sections/SectionFeatures.vue';
|
5
6
|
import SectionGuide from './components/sections/SectionGuide.vue';
|
6
7
|
import SectionOverview from './components/sections/SectionOverview.vue';
|
@@ -9,6 +10,7 @@ import FloatingImages from './components/elements/FloatingImages.vue';
|
|
9
10
|
import AnimatedGrid from './components/elements/AnimatedGrid.vue';
|
10
11
|
|
11
12
|
export {
|
13
|
+
SectionEarn,
|
12
14
|
MobileApp,
|
13
15
|
SectionGuide,
|
14
16
|
SectionOverview,
|