@ozdao/prometheus-framework 0.1.68 → 0.1.69

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. package/dist/BackofficeGallery-59a591ab.js +1 -0
  2. package/dist/BackofficeGallery-be6f69a9.mjs +307 -0
  3. package/dist/BackofficeReports-06166952.js +1 -0
  4. package/dist/BackofficeReports-50fd799c.mjs +44 -0
  5. package/dist/BlockTags-00325fa0.mjs +853 -0
  6. package/dist/BlockTags-58f95c8a.js +1 -0
  7. package/dist/ButtonToggleMembership-84d0e018.mjs +90 -0
  8. package/dist/ButtonToggleMembership-b905812f.js +1 -0
  9. package/dist/CardBlogpost-1b81b54e.mjs +246 -0
  10. package/dist/CardBlogpost-7107e04a.js +1 -0
  11. package/dist/CardOrganization-49ab5190.mjs +234 -0
  12. package/dist/CardOrganization-e6ac27f1.js +1 -0
  13. package/dist/CardProduct-4c0cb9a1.js +1 -0
  14. package/dist/CardProduct-ea0e1f84.mjs +192 -0
  15. package/dist/Chips-817cf959.js +1 -0
  16. package/dist/Chips-8c836ba6.mjs +213 -0
  17. package/dist/Community-8c4e011b.js +1 -0
  18. package/dist/Community-bd6f0cbb.mjs +131 -0
  19. package/dist/Dashboard-73b50724.js +1 -0
  20. package/dist/Dashboard-bc81b5f6.mjs +151 -0
  21. package/dist/Dropdown-60e3dc6c.js +1 -0
  22. package/dist/Dropdown-d1c81d45.mjs +169 -0
  23. package/dist/EditOrder-2b746caf.mjs +221 -0
  24. package/dist/EditOrder-e632f0cc.js +1 -0
  25. package/dist/Events-999cc8ed.js +1 -0
  26. package/dist/Events-ad8bbf27.mjs +134 -0
  27. package/dist/Feed-35e13c22.mjs +156 -0
  28. package/dist/Feed-53d96b18.mjs +361 -0
  29. package/dist/Feed-694a2fad.js +1 -0
  30. package/dist/Feed-ac4bb6ea.js +1 -0
  31. package/dist/Feed-d1d01771.js +1 -0
  32. package/dist/Feed-f7c04014.mjs +124 -0
  33. package/dist/Image-61cfd52d.js +9 -0
  34. package/dist/Image-e8be4acc.mjs +480 -0
  35. package/dist/LeftoverAdd-a268a95c.js +1 -0
  36. package/dist/LeftoverAdd-e4d93760.mjs +229 -0
  37. package/dist/Leftovers-6976802d.mjs +135 -0
  38. package/dist/Leftovers-d8f1d152.js +1 -0
  39. package/dist/Members-aeb2bca1.mjs +109 -0
  40. package/dist/Members-b9664e83.js +1 -0
  41. package/dist/Menu-93d34d9f.js +1 -0
  42. package/dist/Menu-eaf6b44c.mjs +13 -0
  43. package/dist/MenuItem-4a5881bd.mjs +85 -0
  44. package/dist/MenuItem-f35cad93.js +1 -0
  45. package/dist/Orders-8bc8963c.js +1 -0
  46. package/dist/Orders-eb262d8c.mjs +75 -0
  47. package/dist/Organizations-9926aa51.mjs +72 -0
  48. package/dist/Organizations-c653d814.js +1 -0
  49. package/dist/Payments-98328000.js +1 -0
  50. package/dist/Payments-a9066cdf.mjs +11 -0
  51. package/dist/Popup-0d8e1392.mjs +96 -0
  52. package/dist/Popup-eb11fa82.js +1 -0
  53. package/dist/Product-15043af7.mjs +651 -0
  54. package/dist/Product-82c022a4.js +7 -0
  55. package/dist/ProductEdit-05da9866.mjs +258 -0
  56. package/dist/ProductEdit-2f075296.js +1 -0
  57. package/dist/ProductsBackoffice-8462f626.js +1 -0
  58. package/dist/ProductsBackoffice-8d0f0ee8.mjs +85 -0
  59. package/dist/ProfileBlogposts-43855cb9.js +1 -0
  60. package/dist/ProfileBlogposts-f32170a3.mjs +78 -0
  61. package/dist/ProfileEvents-54be2d43.mjs +69 -0
  62. package/dist/ProfileEvents-ab69e27e.js +1 -0
  63. package/dist/ProfileOrganizations-0787cf34.mjs +72 -0
  64. package/dist/ProfileOrganizations-eb62dde4.js +1 -0
  65. package/dist/Publics-8e726d20.mjs +45 -0
  66. package/dist/Publics-ae589bf1.js +1 -0
  67. package/dist/Select-95f4701a.js +1 -0
  68. package/dist/Select-dab17282.mjs +80 -0
  69. package/dist/Select.vue_vue_type_style_index_0_scoped_dfe03dc2_lang-0ea8fbf8.js +1 -0
  70. package/dist/Select.vue_vue_type_style_index_0_scoped_dfe03dc2_lang-4ed993c7.mjs +1 -0
  71. package/dist/Socials-43293869.js +1 -0
  72. package/dist/Socials-8193477c.mjs +189 -0
  73. package/dist/UploadImage-0e8e4278.mjs +83 -0
  74. package/dist/UploadImage-8c71bda6.js +1 -0
  75. package/dist/UploadImageMultiple-c34a6c6f.mjs +58 -0
  76. package/dist/UploadImageMultiple-d1316df5.js +1 -0
  77. package/dist/Wallet-727195d9.mjs +21700 -0
  78. package/dist/Wallet-f4dda407.js +10 -0
  79. package/dist/auth-04684a60.js +7 -0
  80. package/dist/auth-7e39361f.mjs +633 -0
  81. package/dist/auth.client.cjs +1 -1
  82. package/dist/auth.client.js +5 -5
  83. package/dist/auth.server.js +1 -1
  84. package/dist/auth.server.mjs +1 -1
  85. package/dist/auth.validation-d614130d.js +1 -0
  86. package/dist/auth.validation-f4bf1deb.mjs +24 -0
  87. package/dist/axios-33aeb810.mjs +1435 -0
  88. package/dist/axios-ceccf20e.js +5 -0
  89. package/dist/backoffice.client.cjs +1 -1
  90. package/dist/backoffice.client.js +20 -20
  91. package/dist/categories-7e17a7eb.js +1 -0
  92. package/dist/categories-b7f9e8c0.mjs +122 -0
  93. package/dist/community.client.cjs +1 -1
  94. package/dist/community.client.js +209 -202
  95. package/dist/components/Upload/Upload.vue.d.ts.map +1 -1
  96. package/dist/events.client.cjs +2 -2
  97. package/dist/events.client.js +24 -27
  98. package/dist/landing.client.cjs +1 -1
  99. package/dist/landing.client.js +64 -40
  100. package/dist/leftovers-86e7d438.mjs +67 -0
  101. package/dist/leftovers-c9f70579.js +1 -0
  102. package/dist/legal.client.cjs +1 -1
  103. package/dist/legal.client.js +6 -7
  104. package/dist/main.css +1 -1
  105. package/dist/memberships-559590ad.mjs +68 -0
  106. package/dist/memberships-58af22e0.js +1 -0
  107. package/dist/modules/constructor/components/elements/H2.vue.d.ts +1 -1
  108. package/dist/modules/constructor/components/elements/Textarea.vue.d.ts +1 -1
  109. package/dist/modules/products/components/sections/EditProductInfo.vue.d.ts +1 -5
  110. package/dist/orders-1325c51b.js +1 -0
  111. package/dist/orders-c7cbe706.mjs +85 -0
  112. package/dist/organizations-71777b32.js +1 -0
  113. package/dist/organizations-93f7b610.mjs +122 -0
  114. package/dist/organizations.client-6ca27fb3.js +3 -0
  115. package/dist/organizations.client-bd63a7b2.mjs +2997 -0
  116. package/dist/organizations.client.cjs +1 -1
  117. package/dist/organizations.client.js +56 -61
  118. package/dist/products-61d83d74.js +1 -0
  119. package/dist/products-7f1e5a75.mjs +108 -0
  120. package/dist/prometheus-framework.cjs.js +21 -21
  121. package/dist/prometheus-framework.es.js +682 -690
  122. package/dist/reports-a67b4fb4.js +1 -0
  123. package/dist/reports-c579b02a.mjs +91 -0
  124. package/dist/reports.client.cjs +1 -1
  125. package/dist/reports.client.js +2 -2
  126. package/dist/states.validation-3b4604bc.mjs +13 -0
  127. package/dist/states.validation-9b43a097.js +1 -0
  128. package/dist/style.css +1 -1
  129. package/dist/users.client.cjs +1 -1
  130. package/dist/users.client.js +279 -208
  131. package/package.json +30 -35
  132. package/src/components/Button/Button.vue +1 -1
  133. package/src/components/Sidebar/Sidebar.vue +10 -8
  134. package/src/components/Upload/Upload.vue +8 -28
  135. package/src/modules/auth/controllers/auth.controller.js +1 -1
  136. package/src/modules/auth/store/auth.js +21 -24
  137. package/src/modules/backoffice/components/admin/ProductEdit.vue +2 -0
  138. package/src/modules/constructor/components/sections/Constructor.vue +7 -54
  139. package/src/modules/gallery/components/pages/Gallery.vue +7 -1
  140. package/src/modules/gallery/components/sections/GalleryWithCategories.vue +24 -8
  141. package/src/modules/gallery/gallery.client.js +5 -1
  142. package/src/modules/marketplace/components/layouts/Marketplace.vue +1 -0
  143. package/src/modules/organizations/components/pages/Organization.vue +2 -2
  144. package/src/modules/payments/components/pages/Payments.vue +4 -3
  145. package/src/modules/products/components/blocks/CardLeftover.vue +0 -1
  146. package/src/modules/products/components/blocks/CardProduct.vue +15 -1
  147. package/src/modules/products/components/sections/EditProductInfo.vue +16 -14
  148. package/src/modules/products/components/sections/FilterProducts.vue +0 -2
  149. package/src/modules/products/components/sections/SectionProduct.vue +1 -0
  150. package/src/modules/products/components/sections/SortProducts.vue +2 -0
  151. package/src/modules/products/store/categories.js +9 -9
  152. package/src/modules/products/store/leftovers.js +6 -9
  153. package/src/modules/products/store/products.js +2 -0
  154. package/src/modules/users/components/pages/Profile.vue +3 -5
  155. package/src/modules/wallet/components/pages/Wallet.vue +1 -1
  156. package/src/styles/components/button.scss +253 -0
  157. package/src/styles/theme.scss +1 -0
  158. package/src/modules/constructor/components/elements/Audio.vue +0 -82
  159. package/src/modules/constructor/components/elements/Embed.vue +0 -85
  160. package/src/modules/globals/mixins/mixins.js +0 -52
  161. package/src/modules/globals/router/routerGuards.js +0 -28
@@ -1,13 +1,13 @@
1
1
  <template>
2
- <div class="mn-big flex-column flex">
3
- <!-- {{
2
+ <!-- <div class="mn-big flex-column flex">
3
+ {{
4
4
  store.products.current
5
5
  }}
6
6
  <Select
7
7
  :options="[
8
- 'unpublished',
9
- 'published',
10
- 'archivied'
8
+ 'unpublished',
9
+ 'published',
10
+ 'archivied'
11
11
  ]"
12
12
  v-model:select="store.products.state.current.status"
13
13
  placeholder="Display product"
@@ -31,8 +31,8 @@
31
31
  placeholder="Введите описание"
32
32
  class="w-100 mn-small bg-white radius-small pd-medium"
33
33
  type="textarea"
34
- /> -->
35
- </div>
34
+ />
35
+ </div> -->
36
36
  </template>
37
37
 
38
38
  <script setup="props">
@@ -49,18 +49,20 @@ import { toRefs } from 'vue';
49
49
  /////////////////////////////
50
50
  // HELPERS
51
51
  /////////////////////////////
52
- function functionReload () {
53
- location.reload()
54
- }
52
+ // const store = useStore()
53
+
54
+ // function functionReload () {
55
+ // location.reload()
56
+ // }
55
57
 
56
58
  /////////////////////////////
57
59
  // CREATED
58
60
  /////////////////////////////
59
- const props = defineProps({
60
- product: Object,
61
- });
61
+ // const props = defineProps({
62
+ // product: Object,
63
+ // });
62
64
 
63
- const { product } = toRefs(props);
65
+ // const { product } = toRefs(props);
64
66
 
65
67
  /////////////////////////////
66
68
  // MOUNTED
@@ -82,10 +82,8 @@
82
82
 
83
83
  <script setup>
84
84
  import { ref, watch } from 'vue'
85
-
86
85
  import Spoiler from "@pf/src/components/Spoiler/Spoiler.vue"
87
86
  import Checkbox from "@pf/src/components/Checkbox/Checkbox.vue"
88
-
89
87
  import { useI18n } from 'vue-i18n'
90
88
 
91
89
  import * as categories from '@pf/src/modules/products/store/categories';
@@ -109,6 +109,7 @@ import ImagesThumbnails from "@pf/src/modules/products/components/blocks/ImagesT
109
109
 
110
110
  import IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'
111
111
 
112
+
112
113
  import THC from '@pf/src/modules/products/components/elements/THC.vue'
113
114
  import Price from '@pf/src/modules/products/components/elements/Price.vue'
114
115
  // import SelectElement from '@/components/elements/SelectElement.vue'
@@ -28,6 +28,8 @@ import { ref, watch } from 'vue'
28
28
 
29
29
  import { useI18n } from 'vue-i18n'
30
30
 
31
+
32
+ // Пропсы и данные, которые вы передаёте в компонент
31
33
  const props = defineProps({
32
34
  categories: Array,
33
35
  prices: Array,
@@ -1,12 +1,12 @@
1
- /////////////////////////////
2
- // DEPENDENCIES
3
- /////////////////////////////
4
- import { reactive, watch, computed } from "vue";
5
- import axios from 'axios';
6
- // Globals
7
- import { setError } from '@pf/src/modules/globals/store/globals'
8
- // Setup Axios
9
- const $axios = axios.create({baseURL: process.env.API_URL, withCredentials: true})
1
+ import { reactive, watch, computed } from "vue";
2
+
3
+ import Cookies from "js-cookie";
4
+ import axios from "axios";
5
+
6
+ import { setError } from "@pf/src/modules/globals/store/globals";
7
+
8
+ const clientUrl = process.env.API_URL;
9
+ const $axios = axios.create({ baseURL: clientUrl, withCredentials: true });
10
10
 
11
11
  const state = reactive({
12
12
  all: [],
@@ -1,12 +1,9 @@
1
- /////////////////////////////
2
- // DEPENDENCIES
3
- /////////////////////////////
4
- import { reactive, watch, computed } from "vue";
5
- import axios from 'axios';
6
- // Globals
7
- import { setError } from '@pf/src/modules/globals/store/globals'
8
- // Setup Axios
9
- const $axios = axios.create({baseURL: process.env.API_URL, withCredentials: true})
1
+ import { reactive, watch } from "vue";
2
+ import axios from "axios";
3
+ import { setError } from "@pf/src/modules/globals/store/globals";
4
+
5
+ const clientUrl = process.env.API_URL;
6
+ const $axios = axios.create({ baseURL: clientUrl, withCredentials: true });
10
7
 
11
8
  const state = reactive({
12
9
  all: [],
@@ -2,6 +2,8 @@
2
2
  // DEPENDENCIES
3
3
  /////////////////////////////
4
4
  import { reactive, watch, computed } from "vue";
5
+ // Dependencies
6
+ import Cookies from 'js-cookie'
5
7
  import axios from 'axios';
6
8
  // Globals
7
9
  import { setError } from '@pf/src/modules/globals/store/globals'
@@ -192,14 +192,11 @@
192
192
 
193
193
 
194
194
 
195
- <!-- <Menu class="mn-regular bg-grey">
195
+ <Menu class="mn-regular bg-grey">
196
196
  <MenuItem @click="router.push({name: 'User Wallet', params: {_id: route.params._id}})" class="cursor-pointer">
197
197
  <IconGroups class="i-semi" :icon="true"/>
198
198
  <span>Wallet</span>
199
199
  </MenuItem>
200
- </Menu> -->
201
-
202
-
203
200
 
204
201
  <!-- <MenuItem @click="router.push({name: 'User Comments', params: {_id: route.params._id}})" class="cursor-pointer">
205
202
  <span>Comments</span>
@@ -207,7 +204,8 @@
207
204
  <MenuItem @click="router.push({name: 'User Likes', params: {_id: route.params._id}})" class="cursor-pointer">
208
205
  <span>Likes</span>
209
206
  </MenuItem> -->
210
-
207
+ </Menu>
208
+
211
209
  <Menu
212
210
  v-if="auth.state.user._id === route.params._id"
213
211
  class="bg-grey"
@@ -109,9 +109,9 @@
109
109
 
110
110
 
111
111
  <script setup>
112
+ import { computed, onMounted,reactive, ref,toRefs } from 'vue'
112
113
  import Web3 from 'web3'
113
114
 
114
- import { computed, onMounted,reactive, ref,toRefs } from 'vue'
115
115
 
116
116
  import { useRoute,useRouter } from 'vue-router'
117
117
 
@@ -0,0 +1,253 @@
1
+ button[disabled] {background: grey; &:hover {background: grey; } }
2
+
3
+ .button {
4
+ display: flex;
5
+ width: fit-content;
6
+
7
+ padding: 1rem 1.75rem;
8
+ border-radius: 3rem;
9
+
10
+ transform: scale(1);
11
+ opacity: 1;
12
+
13
+ align-items: center;
14
+ justify-content: center;
15
+
16
+ text-align: center;
17
+ text-transform: uppercase;
18
+ font-size: 1rem;
19
+ font-weight: 500;
20
+ letter-spacing: 5%;
21
+
22
+ transition: all 0.33s ease;
23
+
24
+ &:hover {
25
+ opacity: 1;
26
+ cursor: pointer;
27
+ }
28
+
29
+ &:active {
30
+ transform: scale(0.95);
31
+ }
32
+
33
+ &-small {
34
+ padding: 0.5rem 0.75rem;
35
+ border-radius: 0.5rem;
36
+ height: fit-content;
37
+ }
38
+
39
+ &-square {
40
+ height: 2.5rem;
41
+ width: 2.5rem;
42
+
43
+ padding: 1rem;
44
+ border-radius: 0.5rem;
45
+ font-size: 1.125rem;
46
+ }
47
+
48
+ &-close-popup {
49
+ position: absolute;
50
+
51
+ right: 0;
52
+ top: 0;
53
+
54
+ width: 3rem;
55
+ height: 3rem;
56
+
57
+ background: transparent;
58
+
59
+ padding: 0;
60
+
61
+ border-radius: 0;
62
+
63
+ img {
64
+ width: 33%;
65
+ }
66
+ }
67
+
68
+ &-delete {
69
+ &:hover {
70
+ background: red;
71
+ }
72
+ }
73
+
74
+ &-grey {
75
+ background: rgba(var(--dark), 1);;
76
+ background-color: #F7F7F7;
77
+ }
78
+
79
+ &-sort {
80
+ height: 2.5rem;
81
+
82
+ padding: 0.5rem 1.25rem;
83
+
84
+ text-transform: none;
85
+ font-size: 1rem;
86
+ background: rgba(var(--dark), 1);;
87
+ background-color: #F7F7F7;
88
+ }
89
+
90
+ &-active {
91
+ background: rgb(var(--main));;
92
+ color: white;
93
+ &:hover {
94
+ background: rgb(var(--main));;
95
+ color: rgba(255,255,255,0.75);
96
+
97
+ }
98
+ }
99
+
100
+
101
+
102
+
103
+ &-filter {
104
+ height: 2.5rem;
105
+
106
+ padding: 0;
107
+ border-radius: 0.5rem;
108
+ font-size: 1.125rem;
109
+
110
+ background: rgba(var(--dark), 1);;
111
+ background: white;
112
+ }
113
+
114
+ &-disabled {
115
+ color: rgba(0,0,0,0.5);
116
+
117
+ &:hover {
118
+ color: rgba(0,0,0,0.5);
119
+ }
120
+ &:active {
121
+ pointer-events: none;
122
+ transform: scale(1,1);
123
+ }
124
+ }
125
+ &-active {
126
+ background: rgb(var(--main));;
127
+ color: white;
128
+ &:hover {
129
+ background: rgb(var(--main));;
130
+ color: rgba(255,255,255,0.75);
131
+
132
+ }
133
+ }
134
+ &-reset-filter {
135
+ width: 100%;
136
+ text-transform: uppecase;
137
+ height: 3.75rem;
138
+
139
+ background: transparent;
140
+
141
+ &:hover {
142
+ background: rgb(var(--main));;
143
+ color: black;
144
+
145
+ }
146
+ }
147
+
148
+ &-icon {
149
+ height: 1rem; width: 1rem; background: transparent; img { width: 100%; height: 100%}
150
+ background: transparent;
151
+ box-shadow: none;
152
+ border-radius: 0;
153
+ padding: 0;
154
+
155
+ &:hover {
156
+ cursor: pointer;
157
+ }
158
+ }
159
+
160
+
161
+ &-link {
162
+ color: rgba(0, 0, 0, 0.5);
163
+ font-size: 1.125rem;
164
+ display: flex;
165
+ align-items: center;
166
+ font-weight: 600;
167
+
168
+ &-blue {color: #2495FF;}
169
+
170
+ &-black{color: rgba(0, 0, 0, 0.5);}
171
+
172
+ &-cream {color: #DBADAA; text-align: left; font-weight: 600; letter-spacing: 0;}
173
+
174
+ }
175
+
176
+ &-otr-link {
177
+ display: inline-flex;
178
+ margin-top: 0.25rem;
179
+ align-items: center;
180
+ color: #000;
181
+
182
+ img { margin-right: 0.5rem;}
183
+ }
184
+
185
+ &-cart {
186
+ display: inline-flex;
187
+ color: #000;
188
+ height: 3rem;
189
+ width: 3rem;
190
+ font-weight: 700;
191
+ width: fit-content;
192
+ font-size: 1.5rem;
193
+ background: rgb(var(--main));;
194
+ background: #FAF7F3;
195
+ text-transform: none;
196
+ padding: 0.75rem 1rem;
197
+ border-radius: 4rem;
198
+
199
+ &:hover {
200
+ background: rgb(var(--main));;
201
+ color: white;
202
+ opacity: 1;
203
+
204
+ cursor: pointer;
205
+ }
206
+ }
207
+
208
+ &-cart-big {
209
+ display: inline-flex;
210
+ color: #000;
211
+ font-weight: 700;
212
+ width: fit-content;
213
+ background: #FFE500;
214
+ text-transform: none;
215
+ font-size: 2rme;
216
+ padding: 1.5rem 2rem;
217
+ border-radius: 2rem;
218
+ }
219
+
220
+ &-blog {
221
+ padding: 0.75rem 1rem;
222
+ background-color: #2495FF;
223
+ color: #fff;
224
+ border-radius: 0.375rem;
225
+ font-size: 1.125rem;
226
+ text-transform: uppercase;
227
+ width: fit-content;
228
+ }
229
+
230
+ &-nav-footer{
231
+ color: #000;
232
+ font-size: 0.875rem;
233
+ font-weight: 700; display: flex;
234
+ align-items: center;
235
+ svg {margin-right: 0.5rem;}}
236
+
237
+ &-inst {
238
+ background: radial-gradient(179.06% 43.44% at -16.75% 7.2%, #3771C8 0%, #3771C8 12.8%, rgba(102, 0, 255, 0) 100%),
239
+ radial-gradient(92.18% 99.11% at 26.56% 107.7%, #FFDD55 0%, #FFDD55 10%, #FF543E 50%, #C837AB 100%);
240
+ color: white;
241
+ font-size: 1.125rem;
242
+ font-weight: 700;
243
+ text-transform: uppercase;
244
+ padding: 0.75rem 0.75rem;
245
+ border-radius: 0.5625rem;
246
+ display: flex;
247
+ align-items: center;
248
+ justify-content: center;
249
+ width: fit-content;
250
+ box-shadow: 4px 4px 24px -12px rgba(201, 163, 163, 0.5);
251
+ img {margin-right: 0.5rem}
252
+ }
253
+ }
@@ -1,5 +1,6 @@
1
1
  @import './components/block';
2
2
  @import './components/breadcrumbs';
3
+ @import './components/button';
3
4
  @import './components/card';
4
5
  // @import './components/input';
5
6
  @import './components/item';
@@ -1,82 +0,0 @@
1
- <template>
2
- <div
3
- class="mn-thin w-100 pd-medium bg-white radius-medium">
4
-
5
- <div
6
- v-if="prop.content"
7
- v-html="prop.content"
8
- class="flex-center flex"
9
- />
10
-
11
- <div
12
- class=""
13
- v-else
14
- >
15
- <Upload
16
- v-model:field="embedCode"
17
- @file-change="onComponentClick"
18
- type="file"
19
- :placeholder="'Enter embed code'"
20
- class="
21
- w-100
22
- br-solid
23
- br-1px
24
- br-black-transp-10
25
- pd-medium
26
- radius-small
27
- mn-thin
28
- "
29
- />
30
- <button
31
- @click="onComponentClick"
32
- class="button-small button"
33
- >
34
- Save
35
- </button>
36
- </div>
37
- <!-- <button v-if="prop.content" @click="editEmbedCode">Edit Embed Code</button> -->
38
- </div>
39
- </template>
40
-
41
- <script setup>
42
- import { ref } from 'vue';
43
-
44
- import Upload from '@pf/src/components/Upload/Upload.vue'
45
-
46
- const embedCode = ref(null);
47
-
48
- const props = defineProps([
49
- 'label',
50
- 'value',
51
- 'prop'
52
- ]);
53
-
54
- const emit = defineEmits(['input', 'updateBlock']);
55
-
56
- function isValidEmbedCode(code) {
57
- const allowedSources = [/youtube\.com/, /soundcloud\.com/, /vimeo\.com/];
58
- return allowedSources.some(pattern => pattern.test(code));
59
- }
60
-
61
- function onComponentClick(file) {
62
- embedCode.value = file
63
- if (embedCode.value && isValidEmbedCode(embedCode.value)) {
64
- emit('input', embedCode.value);
65
- emit('updateBlock', props.prop, { content: embedCode.value });
66
- } else {
67
- alert('Invalid embed code or source not allowed.');
68
- }
69
- }
70
-
71
- function editEmbedCode() {
72
- let embedInput = prompt('Edit embed code:', prop.content);
73
- if (embedInput && isValidEmbedCode(embedInput)) {
74
- embedCode.value = embedInput;
75
- emit('input', embedCode.value);
76
- emit('updateBlock', props.prop, { content: embedCode.value });
77
- } else {
78
- alert('Invalid embed code or source not allowed.');
79
- }
80
- }
81
- </script>
82
-
@@ -1,85 +0,0 @@
1
- <template>
2
- <div
3
- class="mn-thin w-100 pd-medium bg-white radius-medium">
4
-
5
- <div
6
- v-if="prop.content"
7
- v-html="prop.content"
8
- class="flex-center flex"
9
- />
10
-
11
- <div
12
- class=""
13
- v-else
14
- >
15
- <Field
16
- v-model:field="embedCode"
17
- type="textarea"
18
- :placeholder="'Paste your embed code here'"
19
- class="
20
- w-100
21
- br-solid
22
- br-1px
23
- br-black-transp-10
24
- pd-medium
25
- radius-small
26
- mn-thin
27
- "
28
- />
29
- <div class="flex-v-center flex-nowrap flex gap-small">
30
-
31
- <p class="t-center">Embeds from youtube.com, vimeo.com, soundcloud.com are allowed</p>
32
- <button
33
- @click="onComponentClick"
34
- class="button-small button"
35
- >
36
- Save
37
- </button>
38
- </div>
39
- </div>
40
- <!-- <button v-if="prop.content" @click="editEmbedCode">Edit Embed Code</button> -->
41
- </div>
42
- </template>
43
-
44
- <script setup>
45
- import { ref } from 'vue';
46
-
47
- import Field from '@pf/src/components/Field/Field.vue'
48
-
49
- const embedCode = ref(null);
50
-
51
- const props = defineProps([
52
- 'label',
53
- 'value',
54
- 'prop'
55
- ]);
56
-
57
- const emit = defineEmits(['input', 'updateBlock']);
58
-
59
- function isValidEmbedCode(code) {
60
- const allowedSources = [/youtube\.com/, /soundcloud\.com/, /vimeo\.com/];
61
- return allowedSources.some(pattern => pattern.test(code));
62
- }
63
-
64
- function onComponentClick() {
65
-
66
- if (embedCode.value && isValidEmbedCode(embedCode.value)) {
67
- emit('input', embedCode.value);
68
- emit('updateBlock', props.prop, { content: embedCode.value });
69
- } else {
70
- alert('Invalid embed code or source not allowed.');
71
- }
72
- }
73
-
74
- function editEmbedCode() {
75
- let embedInput = prompt('Edit embed code:', prop.content);
76
- if (embedInput && isValidEmbedCode(embedInput)) {
77
- embedCode.value = embedInput;
78
- emit('input', embedCode.value);
79
- emit('updateBlock', props.prop, { content: embedCode.value });
80
- } else {
81
- alert('Invalid embed code or source not allowed.');
82
- }
83
- }
84
- </script>
85
-
@@ -1,52 +0,0 @@
1
- // mixins.js
2
- export const globalMixins = {
3
- methods: {
4
- returnCurrency() {
5
- const currency = '฿'
6
- return currency
7
- },
8
- formatPrice(number) {
9
- const currency = this.returnCurrency();
10
- let formattedNumber = number.toFixed(2).replace('.', ',').replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
11
- return `${formattedNumber} ${currency}`;
12
- },
13
- formatDate(d) {
14
- var fixedDate = new Date(d);
15
- var yyyy = fixedDate.getFullYear().toString();
16
- var mm = (fixedDate.getMonth() + 1).toString();
17
- var dd = fixedDate.getDate().toString();
18
- var hh = fixedDate.getHours().toString();
19
- var minmin = fixedDate.getMinutes().toString();
20
-
21
- return yyyy + '.' + (mm[1] ? mm : "0" + mm[0]) + '.' + (dd[1] ? dd : "0" + dd[0]) + " в " + (hh[1] ? hh : "0" + hh[0]) + ':' + (minmin[1] ? minmin : "0" + minmin[0]);
22
- },
23
- normalizeUrlParam(param) {
24
- if (!param) param = ''
25
-
26
- return param
27
- .toLowerCase()
28
- .replace(/ /g, '-')
29
- .replace(/[^a-z0-9-]/g, '');
30
- },
31
- getMarketplaceLink(categories, country, state, city) {
32
- categories = []
33
-
34
- let country_normalized = this.normalizeUrlParam(country);
35
- let state_normalized = this.normalizeUrlParam(state);
36
- let city_normalized = this.normalizeUrlParam(city);
37
- let base = `/marketplace/${country_normalized || ''}${state_normalized ? `/${state_normalized}` : ''}${city_normalized ? `/${city_normalized}` : ''}`;
38
-
39
- if (categories.length) {
40
- base += `?categories=${categories.join(",")}`;
41
- }
42
-
43
- return base;
44
- },
45
- getSpotsLink(country, state, city) {
46
- let country_normalized = this.normalizeUrlParam(country);
47
- let state_normalized = this.normalizeUrlParam(state);
48
- let city_normalized = this.normalizeUrlParam(city);
49
- return `/spots/${country_normalized || ''}${state_normalized ? `/${state_normalized}` : ''}${city_normalized ? `/${city_normalized}` : ''}`;
50
- },
51
- }
52
- }
@@ -1,28 +0,0 @@
1
- // routerGuards.js
2
- export function setupRouterGuards(router, store, app) {
3
- router.beforeEach((to, from, next) => {
4
- const { authorize } = to.meta;
5
-
6
- if (authorize) {
7
- if (store.auth.state.access.status === false) {
8
- return next({ path: '/', query: { returnUrl: to.path } });
9
- }
10
-
11
- if (authorize.length && !authorize.some(r => store.auth.state.access.roles.includes(r))) {
12
- return next({ path: '/' });
13
- }
14
- }
15
-
16
- const locale = to.params.locale;
17
- if (
18
- app.config.globalProperties.$i18n.locale !== locale
19
- && locale
20
- && Object.keys(i18n.global.availableLocales).includes(locale)
21
- ) {
22
- app.config.globalProperties.$i18n.locale = locale;
23
- return next();
24
- }
25
-
26
- next();
27
- });
28
- }