@meeovi/layer-social 1.0.3

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.
Files changed (428) hide show
  1. package/README.md +79 -0
  2. package/app/assets/bootstrap/css/bootstrap-grid.min.css +6 -0
  3. package/app/assets/bootstrap/css/bootstrap-reboot.min.css +7 -0
  4. package/app/assets/bootstrap/css/bootstrap.min.css +11696 -0
  5. package/app/assets/bootstrap/js/bootstrap.bundle.min.js +6 -0
  6. package/app/assets/bootstrap/js/bootstrap.min.js +7 -0
  7. package/app/assets/commerce/css/bootstrap.css +8878 -0
  8. package/app/assets/commerce/css/bootstrap.css.map +7 -0
  9. package/app/assets/commerce/css/responsive.css +105 -0
  10. package/app/assets/commerce/css/responsive.css.map +7 -0
  11. package/app/assets/commerce/css/ui.css +1277 -0
  12. package/app/assets/commerce/css/ui.css.map +7 -0
  13. package/app/assets/commerce/fonts/fontawesome/css/all.css +4335 -0
  14. package/app/assets/commerce/fonts/fontawesome/css/all.min.css +5 -0
  15. package/app/assets/commerce/fonts/fontawesome/css/brands.css +14 -0
  16. package/app/assets/commerce/fonts/fontawesome/css/brands.min.css +5 -0
  17. package/app/assets/commerce/fonts/fontawesome/css/fontawesome.css +4302 -0
  18. package/app/assets/commerce/fonts/fontawesome/css/fontawesome.min.css +5 -0
  19. package/app/assets/commerce/fonts/fontawesome/css/regular.css +15 -0
  20. package/app/assets/commerce/fonts/fontawesome/css/regular.min.css +5 -0
  21. package/app/assets/commerce/fonts/fontawesome/css/solid.css +16 -0
  22. package/app/assets/commerce/fonts/fontawesome/css/solid.min.css +5 -0
  23. package/app/assets/commerce/fonts/fontawesome/css/svg-with-js.css +346 -0
  24. package/app/assets/commerce/fonts/fontawesome/css/svg-with-js.min.css +5 -0
  25. package/app/assets/commerce/fonts/fontawesome/css/v4-shims.css +2166 -0
  26. package/app/assets/commerce/fonts/fontawesome/css/v4-shims.min.css +5 -0
  27. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-brands-400.eot +0 -0
  28. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-brands-400.svg +3452 -0
  29. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  30. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-brands-400.woff +0 -0
  31. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  32. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-regular-400.eot +0 -0
  33. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-regular-400.svg +803 -0
  34. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  35. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-regular-400.woff +0 -0
  36. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  37. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-solid-900.eot +0 -0
  38. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-solid-900.svg +4527 -0
  39. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  40. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-solid-900.woff +0 -0
  41. package/app/assets/commerce/fonts/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  42. package/app/assets/commerce/fonts/roboto/Roboto-Bold.ttf +0 -0
  43. package/app/assets/commerce/fonts/roboto/Roboto-Light.ttf +0 -0
  44. package/app/assets/commerce/fonts/roboto/Roboto-Medium.ttf +0 -0
  45. package/app/assets/commerce/fonts/roboto/Roboto-Regular.ttf +0 -0
  46. package/app/assets/commerce/fonts/roboto/Roboto-Thin.ttf +0 -0
  47. package/app/assets/commerce/fonts/roboto/font.css +23 -0
  48. package/app/assets/commerce/images/avatars/avatar1.jpg +0 -0
  49. package/app/assets/commerce/images/avatars/avatar2.jpg +0 -0
  50. package/app/assets/commerce/images/avatars/avatar3.jpg +0 -0
  51. package/app/assets/commerce/images/banners/ad-sm.png +0 -0
  52. package/app/assets/commerce/images/banners/ad.png +0 -0
  53. package/app/assets/commerce/images/banners/banner-item1.jpg +0 -0
  54. package/app/assets/commerce/images/banners/banner-item2.jpg +0 -0
  55. package/app/assets/commerce/images/banners/banner-item3.jpg +0 -0
  56. package/app/assets/commerce/images/banners/banner1.jpg +0 -0
  57. package/app/assets/commerce/images/banners/banner2.jpg +0 -0
  58. package/app/assets/commerce/images/banners/banner3.jpg +0 -0
  59. package/app/assets/commerce/images/banners/banner4.jpg +0 -0
  60. package/app/assets/commerce/images/banners/banner5.jpg +0 -0
  61. package/app/assets/commerce/images/banners/banner6.jpg +0 -0
  62. package/app/assets/commerce/images/banners/banner7.jpg +0 -0
  63. package/app/assets/commerce/images/banners/banner8.jpg +0 -0
  64. package/app/assets/commerce/images/banners/banner9.jpg +0 -0
  65. package/app/assets/commerce/images/banners/slide1.jpg +0 -0
  66. package/app/assets/commerce/images/banners/slide2.jpg +0 -0
  67. package/app/assets/commerce/images/banners/slide3.jpg +0 -0
  68. package/app/assets/commerce/images/favicon.ico +0 -0
  69. package/app/assets/commerce/images/icons/flags/AU.png +0 -0
  70. package/app/assets/commerce/images/icons/flags/AU@2x.png +0 -0
  71. package/app/assets/commerce/images/icons/flags/CN.png +0 -0
  72. package/app/assets/commerce/images/icons/flags/CN@2x.png +0 -0
  73. package/app/assets/commerce/images/icons/flags/DE.png +0 -0
  74. package/app/assets/commerce/images/icons/flags/DE@2x.png +0 -0
  75. package/app/assets/commerce/images/icons/flags/GB.png +0 -0
  76. package/app/assets/commerce/images/icons/flags/GB@2x.png +0 -0
  77. package/app/assets/commerce/images/icons/flags/IN.png +0 -0
  78. package/app/assets/commerce/images/icons/flags/IN@2x.png +0 -0
  79. package/app/assets/commerce/images/icons/flags/RU.png +0 -0
  80. package/app/assets/commerce/images/icons/flags/RU@2x.png +0 -0
  81. package/app/assets/commerce/images/icons/flags/TR.png +0 -0
  82. package/app/assets/commerce/images/icons/flags/TR@2x.png +0 -0
  83. package/app/assets/commerce/images/icons/flags/US.png +0 -0
  84. package/app/assets/commerce/images/icons/flags/US@2x.png +0 -0
  85. package/app/assets/commerce/images/icons/flags/UZ.png +0 -0
  86. package/app/assets/commerce/images/icons/flags/UZ@2x.png +0 -0
  87. package/app/assets/commerce/images/icons/pay-american-ex.png +0 -0
  88. package/app/assets/commerce/images/icons/pay-bank.png +0 -0
  89. package/app/assets/commerce/images/icons/pay-mastercard.png +0 -0
  90. package/app/assets/commerce/images/icons/pay-visa-el.png +0 -0
  91. package/app/assets/commerce/images/icons/pay-visa.png +0 -0
  92. package/app/assets/commerce/images/items/1.jpg +0 -0
  93. package/app/assets/commerce/images/items/10.jpg +0 -0
  94. package/app/assets/commerce/images/items/11.jpg +0 -0
  95. package/app/assets/commerce/images/items/12.jpg +0 -0
  96. package/app/assets/commerce/images/items/13.jpg +0 -0
  97. package/app/assets/commerce/images/items/14.jpg +0 -0
  98. package/app/assets/commerce/images/items/15-1.jpg +0 -0
  99. package/app/assets/commerce/images/items/15-2.jpg +0 -0
  100. package/app/assets/commerce/images/items/15.jpg +0 -0
  101. package/app/assets/commerce/images/items/2.jpg +0 -0
  102. package/app/assets/commerce/images/items/3.jpg +0 -0
  103. package/app/assets/commerce/images/items/4.jpg +0 -0
  104. package/app/assets/commerce/images/items/5.jpg +0 -0
  105. package/app/assets/commerce/images/items/6.jpg +0 -0
  106. package/app/assets/commerce/images/items/7.jpg +0 -0
  107. package/app/assets/commerce/images/items/8.jpg +0 -0
  108. package/app/assets/commerce/images/items/9.jpg +0 -0
  109. package/app/assets/commerce/images/logo-white.png +0 -0
  110. package/app/assets/commerce/images/logo.png +0 -0
  111. package/app/assets/commerce/images/logo.svg +16 -0
  112. package/app/assets/commerce/images/misc/appstore.png +0 -0
  113. package/app/assets/commerce/images/misc/payments.png +0 -0
  114. package/app/assets/commerce/images/misc/playmarket.png +0 -0
  115. package/app/assets/commerce/images/posts/1.jpg +0 -0
  116. package/app/assets/commerce/images/posts/2.jpg +0 -0
  117. package/app/assets/commerce/images/posts/3.jpg +0 -0
  118. package/app/assets/commerce/images/posts/4.jpg +0 -0
  119. package/app/assets/commerce/js/bootstrap.bundle.min.js +7 -0
  120. package/app/assets/commerce/js/jquery-2.0.0.min.js +6 -0
  121. package/app/assets/commerce/js/script.js +30 -0
  122. package/app/assets/commerce/sass/_variables-custom.scss +1102 -0
  123. package/app/assets/commerce/sass/bootstrap-assets/_alert.scss +51 -0
  124. package/app/assets/commerce/sass/bootstrap-assets/_badge.scss +54 -0
  125. package/app/assets/commerce/sass/bootstrap-assets/_bootstrap.scss +44 -0
  126. package/app/assets/commerce/sass/bootstrap-assets/_breadcrumb.scss +40 -0
  127. package/app/assets/commerce/sass/bootstrap-assets/_button-group.scss +163 -0
  128. package/app/assets/commerce/sass/bootstrap-assets/_buttons.scss +137 -0
  129. package/app/assets/commerce/sass/bootstrap-assets/_card.scss +289 -0
  130. package/app/assets/commerce/sass/bootstrap-assets/_carousel.scss +197 -0
  131. package/app/assets/commerce/sass/bootstrap-assets/_close.scss +41 -0
  132. package/app/assets/commerce/sass/bootstrap-assets/_code.scss +48 -0
  133. package/app/assets/commerce/sass/bootstrap-assets/_custom-forms.scss +507 -0
  134. package/app/assets/commerce/sass/bootstrap-assets/_dropdown.scss +191 -0
  135. package/app/assets/commerce/sass/bootstrap-assets/_forms.scss +330 -0
  136. package/app/assets/commerce/sass/bootstrap-assets/_functions.scss +86 -0
  137. package/app/assets/commerce/sass/bootstrap-assets/_grid.scss +52 -0
  138. package/app/assets/commerce/sass/bootstrap-assets/_images.scss +42 -0
  139. package/app/assets/commerce/sass/bootstrap-assets/_input-group.scss +193 -0
  140. package/app/assets/commerce/sass/bootstrap-assets/_jumbotron.scss +17 -0
  141. package/app/assets/commerce/sass/bootstrap-assets/_list-group.scss +149 -0
  142. package/app/assets/commerce/sass/bootstrap-assets/_media.scss +8 -0
  143. package/app/assets/commerce/sass/bootstrap-assets/_mixins.scss +47 -0
  144. package/app/assets/commerce/sass/bootstrap-assets/_modal.scss +229 -0
  145. package/app/assets/commerce/sass/bootstrap-assets/_nav.scss +119 -0
  146. package/app/assets/commerce/sass/bootstrap-assets/_navbar.scss +295 -0
  147. package/app/assets/commerce/sass/bootstrap-assets/_pagination.scss +73 -0
  148. package/app/assets/commerce/sass/bootstrap-assets/_popover.scss +171 -0
  149. package/app/assets/commerce/sass/bootstrap-assets/_print.scss +141 -0
  150. package/app/assets/commerce/sass/bootstrap-assets/_progress.scss +43 -0
  151. package/app/assets/commerce/sass/bootstrap-assets/_reboot.scss +483 -0
  152. package/app/assets/commerce/sass/bootstrap-assets/_root.scss +19 -0
  153. package/app/assets/commerce/sass/bootstrap-assets/_spinners.scss +55 -0
  154. package/app/assets/commerce/sass/bootstrap-assets/_tables.scss +185 -0
  155. package/app/assets/commerce/sass/bootstrap-assets/_toasts.scss +44 -0
  156. package/app/assets/commerce/sass/bootstrap-assets/_tooltip.scss +115 -0
  157. package/app/assets/commerce/sass/bootstrap-assets/_transitions.scss +20 -0
  158. package/app/assets/commerce/sass/bootstrap-assets/_type.scss +125 -0
  159. package/app/assets/commerce/sass/bootstrap-assets/_utilities.scss +17 -0
  160. package/app/assets/commerce/sass/bootstrap-assets/_variables.scss +1123 -0
  161. package/app/assets/commerce/sass/bootstrap-assets/mixins/_alert.scss +13 -0
  162. package/app/assets/commerce/sass/bootstrap-assets/mixins/_background-variant.scss +21 -0
  163. package/app/assets/commerce/sass/bootstrap-assets/mixins/_badge.scss +17 -0
  164. package/app/assets/commerce/sass/bootstrap-assets/mixins/_border-radius.scss +63 -0
  165. package/app/assets/commerce/sass/bootstrap-assets/mixins/_box-shadow.scss +20 -0
  166. package/app/assets/commerce/sass/bootstrap-assets/mixins/_breakpoints.scss +123 -0
  167. package/app/assets/commerce/sass/bootstrap-assets/mixins/_buttons.scss +107 -0
  168. package/app/assets/commerce/sass/bootstrap-assets/mixins/_caret.scss +62 -0
  169. package/app/assets/commerce/sass/bootstrap-assets/mixins/_clearfix.scss +7 -0
  170. package/app/assets/commerce/sass/bootstrap-assets/mixins/_deprecate.scss +10 -0
  171. package/app/assets/commerce/sass/bootstrap-assets/mixins/_float.scss +14 -0
  172. package/app/assets/commerce/sass/bootstrap-assets/mixins/_forms.scss +192 -0
  173. package/app/assets/commerce/sass/bootstrap-assets/mixins/_gradients.scss +45 -0
  174. package/app/assets/commerce/sass/bootstrap-assets/mixins/_grid-framework.scss +66 -0
  175. package/app/assets/commerce/sass/bootstrap-assets/mixins/_grid.scss +51 -0
  176. package/app/assets/commerce/sass/bootstrap-assets/mixins/_hover.scss +37 -0
  177. package/app/assets/commerce/sass/bootstrap-assets/mixins/_image.scss +36 -0
  178. package/app/assets/commerce/sass/bootstrap-assets/mixins/_list-group.scss +21 -0
  179. package/app/assets/commerce/sass/bootstrap-assets/mixins/_lists.scss +7 -0
  180. package/app/assets/commerce/sass/bootstrap-assets/mixins/_nav-divider.scss +10 -0
  181. package/app/assets/commerce/sass/bootstrap-assets/mixins/_pagination.scss +22 -0
  182. package/app/assets/commerce/sass/bootstrap-assets/mixins/_reset-text.scss +17 -0
  183. package/app/assets/commerce/sass/bootstrap-assets/mixins/_resize.scss +6 -0
  184. package/app/assets/commerce/sass/bootstrap-assets/mixins/_screen-reader.scss +33 -0
  185. package/app/assets/commerce/sass/bootstrap-assets/mixins/_size.scss +7 -0
  186. package/app/assets/commerce/sass/bootstrap-assets/mixins/_table-row.scss +39 -0
  187. package/app/assets/commerce/sass/bootstrap-assets/mixins/_text-emphasis.scss +16 -0
  188. package/app/assets/commerce/sass/bootstrap-assets/mixins/_text-hide.scss +11 -0
  189. package/app/assets/commerce/sass/bootstrap-assets/mixins/_text-truncate.scss +8 -0
  190. package/app/assets/commerce/sass/bootstrap-assets/mixins/_transition.scss +16 -0
  191. package/app/assets/commerce/sass/bootstrap-assets/mixins/_visibility.scss +8 -0
  192. package/app/assets/commerce/sass/bootstrap-assets/utilities/_align.scss +8 -0
  193. package/app/assets/commerce/sass/bootstrap-assets/utilities/_background.scss +19 -0
  194. package/app/assets/commerce/sass/bootstrap-assets/utilities/_borders.scss +75 -0
  195. package/app/assets/commerce/sass/bootstrap-assets/utilities/_clearfix.scss +3 -0
  196. package/app/assets/commerce/sass/bootstrap-assets/utilities/_display.scss +26 -0
  197. package/app/assets/commerce/sass/bootstrap-assets/utilities/_embed.scss +39 -0
  198. package/app/assets/commerce/sass/bootstrap-assets/utilities/_flex.scss +51 -0
  199. package/app/assets/commerce/sass/bootstrap-assets/utilities/_float.scss +11 -0
  200. package/app/assets/commerce/sass/bootstrap-assets/utilities/_overflow.scss +5 -0
  201. package/app/assets/commerce/sass/bootstrap-assets/utilities/_position.scss +32 -0
  202. package/app/assets/commerce/sass/bootstrap-assets/utilities/_screenreaders.scss +11 -0
  203. package/app/assets/commerce/sass/bootstrap-assets/utilities/_shadows.scss +6 -0
  204. package/app/assets/commerce/sass/bootstrap-assets/utilities/_sizing.scss +20 -0
  205. package/app/assets/commerce/sass/bootstrap-assets/utilities/_spacing.scss +73 -0
  206. package/app/assets/commerce/sass/bootstrap-assets/utilities/_stretched-link.scss +19 -0
  207. package/app/assets/commerce/sass/bootstrap-assets/utilities/_text.scss +72 -0
  208. package/app/assets/commerce/sass/bootstrap-assets/utilities/_visibility.scss +13 -0
  209. package/app/assets/commerce/sass/bootstrap-assets/vendor/_rfs.scss +204 -0
  210. package/app/assets/commerce/sass/bootstrap.scss +9 -0
  211. package/app/assets/commerce/sass/responsive.scss +114 -0
  212. package/app/assets/commerce/sass/ui-assets/components/_buttons.scss +23 -0
  213. package/app/assets/commerce/sass/ui-assets/components/_cards-item.scss +113 -0
  214. package/app/assets/commerce/sass/ui-assets/components/_elements.scss +72 -0
  215. package/app/assets/commerce/sass/ui-assets/components/_forms.scss +19 -0
  216. package/app/assets/commerce/sass/ui-assets/components/_items.scss +25 -0
  217. package/app/assets/commerce/sass/ui-assets/components/_lists.scss +90 -0
  218. package/app/assets/commerce/sass/ui-assets/components/_menu.scss +25 -0
  219. package/app/assets/commerce/sass/ui-assets/components/_plugin-styles.scss +1 -0
  220. package/app/assets/commerce/sass/ui-assets/helpers/_bg.scss +53 -0
  221. package/app/assets/commerce/sass/ui-assets/helpers/_helper-classes.scss +110 -0
  222. package/app/assets/commerce/sass/ui-assets/helpers/_mixins.scss +50 -0
  223. package/app/assets/commerce/sass/ui-assets/helpers/_typography.scss +44 -0
  224. package/app/assets/commerce/sass/ui-assets/pages/_page-account.scss +0 -0
  225. package/app/assets/commerce/sass/ui-assets/pages/_page-base.scss +10 -0
  226. package/app/assets/commerce/sass/ui-assets/pages/_page-detail.scss +30 -0
  227. package/app/assets/commerce/sass/ui-assets/pages/_page-home.scss +92 -0
  228. package/app/assets/commerce/sass/ui-assets/pages/_page-listing.scss +1 -0
  229. package/app/assets/commerce/sass/ui-assets/pages/_page-order.scss +9 -0
  230. package/app/assets/commerce/sass/ui-assets/sections/_footer.scss +26 -0
  231. package/app/assets/commerce/sass/ui-assets/sections/_header.scss +64 -0
  232. package/app/assets/commerce/sass/ui-assets/sections/_sidebar.scss +0 -0
  233. package/app/assets/commerce/sass/ui.scss +51 -0
  234. package/app/assets/embla/embla.min.js +1 -0
  235. package/app/assets/embla/script.js +7 -0
  236. package/app/assets/images/apachelogo.png +0 -0
  237. package/app/assets/images/backgraund-trend.jpg +0 -0
  238. package/app/assets/images/background10.jpg +0 -0
  239. package/app/assets/images/background2.jpg +0 -0
  240. package/app/assets/images/graphqllogo.png +0 -0
  241. package/app/assets/images/group1.svg +1 -0
  242. package/app/assets/images/grpclogo.png +0 -0
  243. package/app/assets/images/hashes.json +1 -0
  244. package/app/assets/images/image1.jpg +0 -0
  245. package/app/assets/images/image10.jpg +0 -0
  246. package/app/assets/images/image11.jpg +0 -0
  247. package/app/assets/images/image13.jpg +0 -0
  248. package/app/assets/images/image14.jpg +0 -0
  249. package/app/assets/images/image15.jpg +0 -0
  250. package/app/assets/images/image2.jpg +0 -0
  251. package/app/assets/images/image3.jpg +0 -0
  252. package/app/assets/images/image5.jpg +0 -0
  253. package/app/assets/images/image7.jpg +0 -0
  254. package/app/assets/images/image8.jpg +0 -0
  255. package/app/assets/images/image9.jpg +0 -0
  256. package/app/assets/images/jsonlogo.png +0 -0
  257. package/app/assets/images/logo5.png +0 -0
  258. package/app/assets/images/mbr.jpg +0 -0
  259. package/app/assets/images/mongodblogo.png +0 -0
  260. package/app/assets/images/mysqllogo.png +0 -0
  261. package/app/assets/images/neo4jlogo.png +0 -0
  262. package/app/assets/images/odatalogo.png +0 -0
  263. package/app/assets/images/openapilogo.png +0 -0
  264. package/app/assets/images/postgraphqllogo.png +0 -0
  265. package/app/assets/images/quadr.svg +42 -0
  266. package/app/assets/images/shop1.jpg +0 -0
  267. package/app/assets/images/shop2.jpg +0 -0
  268. package/app/assets/images/shop3.jpg +0 -0
  269. package/app/assets/images/shop4.jpg +0 -0
  270. package/app/assets/images/soaplogo.png +0 -0
  271. package/app/assets/images/sqlitelogo.png +0 -0
  272. package/app/assets/images/team1.jpg +0 -0
  273. package/app/assets/images/team2.jpg +0 -0
  274. package/app/assets/images/team3.jpg +0 -0
  275. package/app/assets/images/trend12.jpg +0 -0
  276. package/app/assets/images/trend13.jpg +0 -0
  277. package/app/assets/images/trend14.jpg +0 -0
  278. package/app/assets/images/trend15.jpg +0 -0
  279. package/app/assets/images/trend18.jpg +0 -0
  280. package/app/assets/images/triangle-blue-transp.svg +69 -0
  281. package/app/assets/images/triangle-purpl-transp.svg +92 -0
  282. package/app/assets/mobirise/css/mbr-additional.css +1678 -0
  283. package/app/assets/parallax/jarallax.css +15 -0
  284. package/app/assets/parallax/jarallax.js +45 -0
  285. package/app/assets/parallax/jarallax.min.js +7 -0
  286. package/app/assets/playervimeo/vimeo_player.js +39 -0
  287. package/app/assets/popper/popper.min.js +4 -0
  288. package/app/assets/smoothscroll/smooth-scroll.js +29 -0
  289. package/app/assets/styles/mobile.css +349 -0
  290. package/app/assets/styles/styles.css +26 -0
  291. package/app/assets/tether/tether.min.css +1 -0
  292. package/app/assets/tether/tether.min.js +1 -0
  293. package/app/assets/theme/css/style.css +934 -0
  294. package/app/assets/theme/js/script.js +54 -0
  295. package/app/assets/web/assets/jquery/jquery.min.js +2 -0
  296. package/app/assets/web/assets/mobirise-icons2/mobirise2.css +498 -0
  297. package/app/assets/web/assets/mobirise-icons2/mobirise2.eot +0 -0
  298. package/app/assets/web/assets/mobirise-icons2/mobirise2.svg +167 -0
  299. package/app/assets/web/assets/mobirise-icons2/mobirise2.ttf +0 -0
  300. package/app/assets/web/assets/mobirise-icons2/mobirise2.woff +0 -0
  301. package/app/assets/ytplayer/index.js +24 -0
  302. package/app/components/blocks/LeafletMap.vue +151 -0
  303. package/app/components/blocks/comments.vue +79 -0
  304. package/app/components/blocks/copyright.vue +43 -0
  305. package/app/components/blocks/events/about.vue +147 -0
  306. package/app/components/blocks/flag.vue +84 -0
  307. package/app/components/blocks/groups/about.vue +102 -0
  308. package/app/components/blocks/groups/feeds.vue +16 -0
  309. package/app/components/blocks/groups/lists.vue +11 -0
  310. package/app/components/blocks/groups/media.vue +28 -0
  311. package/app/components/blocks/groups/members.vue +9 -0
  312. package/app/components/blocks/groups/products.vue +9 -0
  313. package/app/components/blocks/groups/spaceLists.vue +9 -0
  314. package/app/components/blocks/reactions.vue +42 -0
  315. package/app/components/blocks/repost.vue +9 -0
  316. package/app/components/blocks/share.vue +25 -0
  317. package/app/components/blocks/stickers.vue +11 -0
  318. package/app/components/blocks/video.vue +44 -0
  319. package/app/components/features/account/addresses.vue +279 -0
  320. package/app/components/features/account/dashboard.vue +104 -0
  321. package/app/components/features/account/downloads.vue +146 -0
  322. package/app/components/features/account/reviews.vue +320 -0
  323. package/app/components/features/account/setting/accessibility.vue +57 -0
  324. package/app/components/features/account/setting/account.vue +133 -0
  325. package/app/components/features/account/setting/communications.vue +125 -0
  326. package/app/components/features/account/setting/language.vue +93 -0
  327. package/app/components/features/account/setting/payments.vue +130 -0
  328. package/app/components/features/account/setting/personalization.vue +152 -0
  329. package/app/components/features/account/setting/privacy.vue +90 -0
  330. package/app/components/features/account/setting/security.vue +84 -0
  331. package/app/components/features/account/settings.vue +255 -0
  332. package/app/components/features/addresses/add-address.vue +191 -0
  333. package/app/components/features/addresses/update-address.vue +320 -0
  334. package/app/components/features/birthdays.vue +140 -0
  335. package/app/components/features/event/yourEvents.vue +158 -0
  336. package/app/components/features/events.vue +107 -0
  337. package/app/components/features/feed/add-post.vue +45 -0
  338. package/app/components/features/feed/posts.vue +56 -0
  339. package/app/components/features/feed/relatedposts.vue +37 -0
  340. package/app/components/features/feed/update-post.vue +279 -0
  341. package/app/components/features/feeds.vue +148 -0
  342. package/app/components/features/friends.vue +131 -0
  343. package/app/components/features/hashtags.vue +101 -0
  344. package/app/components/features/media/video.vue +0 -0
  345. package/app/components/features/media.vue +143 -0
  346. package/app/components/features/members.vue +59 -0
  347. package/app/components/features/memories.vue +66 -0
  348. package/app/components/features/radio.vue +59 -0
  349. package/app/components/features/spaceSections/audioSpaces.vue +84 -0
  350. package/app/components/features/spaceSections/crud/add-space.vue +52 -0
  351. package/app/components/features/spaceSections/crud/update-space.vue +224 -0
  352. package/app/components/features/spaceSections/defaultSpaces.vue +85 -0
  353. package/app/components/features/spaceSections/imageSpaces.vue +84 -0
  354. package/app/components/features/spaceSections/textSpaces.vue +84 -0
  355. package/app/components/features/spaceSections/videoSpaces.vue +84 -0
  356. package/app/components/features/spaces.vue +127 -0
  357. package/app/components/features/vibeSections/add-live.vue +47 -0
  358. package/app/components/features/vibeSections/relatedshorts.vue +35 -0
  359. package/app/components/features/vibeSections/shorts.vue +207 -0
  360. package/app/components/features/vibeSections/update-short.vue +266 -0
  361. package/app/components/features/vibez.vue +221 -0
  362. package/app/components/menus/lowerbar.vue +37 -0
  363. package/app/components/related/memberList.vue +38 -0
  364. package/app/components/related/post.vue +119 -0
  365. package/app/components/related/radio.vue +36 -0
  366. package/app/components/related/relatedposts.vue +30 -0
  367. package/app/components/related/relatedshorts.vue +30 -0
  368. package/app/components/related/relatedspaces.vue +30 -0
  369. package/app/components/related/relatedusers.vue +34 -0
  370. package/app/components/related/short.vue +68 -0
  371. package/app/components/related/space.vue +47 -0
  372. package/app/components/related/tag.vue +21 -0
  373. package/app/composables/cache.ts +44 -0
  374. package/app/composables/charts/createChart.js +33 -0
  375. package/app/composables/charts/deleteChart.js +15 -0
  376. package/app/composables/charts/updateChart.js +15 -0
  377. package/app/composables/config.ts +20 -0
  378. package/app/composables/contacts/createContact.js +64 -0
  379. package/app/composables/contacts/deleteContact.js +15 -0
  380. package/app/composables/contacts/updateContact.js +15 -0
  381. package/app/composables/errors.ts +16 -0
  382. package/app/composables/metrics.ts +52 -0
  383. package/app/composables/posts/createPost.js +40 -0
  384. package/app/composables/posts/deletePost.js +15 -0
  385. package/app/composables/posts/updatePost.js +15 -0
  386. package/app/composables/posts/usePosts.ts +22 -0
  387. package/app/composables/providers/atproto.ts +75 -0
  388. package/app/composables/providers/mastodon.ts +45 -0
  389. package/app/composables/rateLimit.ts +41 -0
  390. package/app/composables/registry.ts +13 -0
  391. package/app/composables/retry.ts +40 -0
  392. package/app/composables/settings/useAccessibilitySettings.js +43 -0
  393. package/app/composables/shorts/createShort.js +33 -0
  394. package/app/composables/shorts/deleteShort.js +15 -0
  395. package/app/composables/shorts/updateShort.js +15 -0
  396. package/app/composables/social/getActivity.js +33 -0
  397. package/app/composables/social/getGroups.js +33 -0
  398. package/app/composables/spaces/createSpace.js +29 -0
  399. package/app/composables/spaces/deleteSpace.js +15 -0
  400. package/app/composables/spaces/updateSpace.js +15 -0
  401. package/app/composables/spaces/useSpaceRegistry.ts +49 -0
  402. package/app/composables/stations/createStation.js +33 -0
  403. package/app/composables/stations/deleteStation.js +15 -0
  404. package/app/composables/stations/updateStation.js +15 -0
  405. package/app/composables/swr.ts +22 -0
  406. package/app/composables/types/BlueSkyTypes.ts +108 -0
  407. package/app/composables/types.ts +28 -0
  408. package/app/composables/useSocial.ts +25 -0
  409. package/app/composables/utils.ts +99 -0
  410. package/app/layouts/spaces-audio.vue +9 -0
  411. package/app/layouts/spaces-dating.vue +9 -0
  412. package/app/layouts/spaces-forum.vue +9 -0
  413. package/app/layouts/spaces-video.vue +9 -0
  414. package/app/pages/connect/event/[...slug].vue +96 -0
  415. package/app/pages/connect/hashtag/[...slug].vue +110 -0
  416. package/app/pages/connect/post/[...slug].vue +232 -0
  417. package/app/pages/connect/space/[...slug].vue +170 -0
  418. package/app/pages/connect/vibe/[...id].vue +204 -0
  419. package/app/pages/connect/vibe/preview.vue +100 -0
  420. package/app/pages/connect/vibe/upload.vue +115 -0
  421. package/app/pages/profile/[...slug].vue +91 -0
  422. package/app/plugins/rocketchat-api.js +105 -0
  423. package/app/stores/index.ts +0 -0
  424. package/app/stores/reactions.ts +206 -0
  425. package/app/stores/useCommentsStore.js +20 -0
  426. package/nuxt.config.ts +11 -0
  427. package/package.json +23 -0
  428. package/tsconfig.json +14 -0
@@ -0,0 +1,93 @@
1
+ <template>
2
+ <v-card>
3
+ <v-card-title>Language and Localization</v-card-title>
4
+ <v-card-text>
5
+ <v-select
6
+ v-model="selectedLanguage"
7
+ :items="languages"
8
+ label="Preferred Language"
9
+ item-title="label"
10
+ item-value="value"
11
+ :loading="loading"
12
+ ></v-select>
13
+ <v-btn @click="saveLanguagePreference" color="primary" :loading="saving">
14
+ Save Language Preference
15
+ </v-btn>
16
+ </v-card-text>
17
+ </v-card>
18
+ </template>
19
+
20
+ <script setup>
21
+ import { ref, onMounted } from 'vue';
22
+
23
+ const config = useRuntimeConfig();
24
+ const baseUrl = config.public.vendureUrl; // Magento API base URL
25
+
26
+ const selectedLanguage = ref('');
27
+ const languages = ref([]);
28
+ const loading = ref(false);
29
+ const saving = ref(false);
30
+
31
+ // Fetch available languages
32
+ const fetchLanguages = async () => {
33
+ loading.value = true;
34
+ try {
35
+ const response = await $fetch(`/api/store/storeConfigs`, {
36
+ headers: {
37
+ 'Content-Type': 'application/json',
38
+ 'Authorization': `Bearer ${config.public.vendureApiToken}`
39
+ },
40
+ });
41
+
42
+ // Check if response is an array, if not, wrap it in an array
43
+ const storeConfigs = Array.isArray(response) ? response : [response];
44
+
45
+ languages.value = storeConfigs.map(store => ({
46
+ label: store.locale,
47
+ value: store.code
48
+ }));
49
+
50
+ // Set default selected language if available
51
+ if (languages.value.length > 0) {
52
+ selectedLanguage.value = languages.value[0].value;
53
+ }
54
+ } catch (error) {
55
+ console.error('Error fetching languages:', error);
56
+ // You might want to add user-friendly error handling here
57
+ } finally {
58
+ loading.value = false;
59
+ }
60
+ };
61
+
62
+ // Save language preference
63
+ const saveLanguagePreference = async () => {
64
+ if (!selectedLanguage.value) return;
65
+
66
+ saving.value = true;
67
+ try {
68
+ await $fetch(`/api/customers/me`, {
69
+ method: 'PUT',
70
+ headers: {
71
+ 'Content-Type': 'application/json',
72
+ 'Authorization': `Bearer ${localStorage.getItem('customerToken')}`,
73
+ },
74
+ body: {
75
+ customer: {
76
+ store_id: selectedLanguage.value,
77
+ },
78
+ },
79
+ });
80
+ console.log('Language preference saved successfully');
81
+ // You might want to add a success message here
82
+ } catch (error) {
83
+ console.error('Error saving language preference:', error);
84
+ // You might want to add an error message here
85
+ } finally {
86
+ saving.value = false;
87
+ }
88
+ };
89
+
90
+ onMounted(() => {
91
+ fetchLanguages();
92
+ });
93
+ </script>
@@ -0,0 +1,130 @@
1
+ <template>
2
+ <v-card>
3
+ <v-card-title>Payment Methods</v-card-title>
4
+ <v-card-text>
5
+ <v-alert v-if="error" type="error">{{ error }}</v-alert>
6
+ <v-progress-circular v-if="loading" indeterminate color="primary"></v-progress-circular>
7
+ <v-list v-else>
8
+ <v-list-item v-for="(method, index) in paymentMethods" :key="index">
9
+ <v-list-item-title>{{ method.type }} ending in {{ method.last4 }}</v-list-item-title>
10
+ <template v-slot:append>
11
+ <v-btn icon @click="removePaymentMethod(method.id)">
12
+ <v-icon>mdi-delete</v-icon>
13
+ </v-btn>
14
+ </template>
15
+ </v-list-item>
16
+ </v-list>
17
+ <div ref="paypalButtonContainer"></div>
18
+ </v-card-text>
19
+ </v-card>
20
+ </template>
21
+
22
+ <script setup>
23
+ import { ref, onMounted } from 'vue';
24
+ import { useRuntimeConfig } from '#imports'
25
+
26
+ const config = useRuntimeConfig()
27
+ const paymentMethods = ref([]);
28
+ const loading = ref(false);
29
+ const error = ref(null);
30
+ const paypalButtonContainer = ref(null);
31
+
32
+ const fetchPaymentMethods = async () => {
33
+ loading.value = true;
34
+ error.value = null;
35
+ try {
36
+ const response = await $fetch('/api/customers/me/payment-methods', {
37
+ method: 'GET',
38
+ headers: {
39
+ // Include any necessary authentication headers
40
+ 'Authorization': `Bearer ${config.public.vendureApiToken}`
41
+ }
42
+ });
43
+
44
+ console.log('API Response:', response);
45
+
46
+ if (typeof response === 'string' && response.startsWith('<!DOCTYPE html>')) {
47
+ throw new Error('Received HTML response instead of JSON. This might indicate an authentication issue or incorrect API endpoint.');
48
+ }
49
+
50
+ if (Array.isArray(response)) {
51
+ paymentMethods.value = response.map(method => ({
52
+ id: method.id || '',
53
+ type: method.type || '',
54
+ last4: method.last4 || ''
55
+ }));
56
+ } else if (response && typeof response === 'object') {
57
+ // If the response is an object, it might contain a data property with the array
58
+ const methodsArray = response.data || [];
59
+ if (Array.isArray(methodsArray)) {
60
+ paymentMethods.value = methodsArray.map(method => ({
61
+ id: method.id || '',
62
+ type: method.type || '',
63
+ last4: method.last4 || ''
64
+ }));
65
+ } else {
66
+ throw new Error(`Unexpected response format: ${JSON.stringify(response)}`);
67
+ }
68
+ } else {
69
+ throw new Error(`Unexpected response format: ${JSON.stringify(response)}`);
70
+ }
71
+
72
+ console.log('Processed payment methods:', paymentMethods.value);
73
+ } catch (err) {
74
+ error.value = 'Failed to fetch payment methods: ' + (err.message || 'Unknown error');
75
+ console.error('Error fetching payment methods:', err);
76
+ } finally {
77
+ loading.value = false;
78
+ }
79
+ };
80
+
81
+ const initializePayPalButton = () => {
82
+ if (window.paypal) {
83
+ window.paypal.Buttons({
84
+ createOrder: (data, actions) => {
85
+ // This function sets up the details of the transaction
86
+ return actions.order.create({
87
+ purchase_units: [{
88
+ amount: {
89
+ value: '0.01' // Set this to the appropriate amount or handle it dynamically
90
+ }
91
+ }]
92
+ });
93
+ },
94
+ onApprove: async (data, actions) => {
95
+ // This function captures the funds from the transaction
96
+ const order = await actions.order.capture();
97
+ console.log('Transaction completed', order);
98
+
99
+ // Here you would typically send the order details to your server
100
+ // to save the new payment method
101
+ try {
102
+ await fetch('/api/customers/me/payment-methods', {
103
+ method: 'POST',
104
+ body: JSON.stringify({
105
+ paypalOrderId: order.id,
106
+ // Include any other necessary details
107
+ })
108
+ });
109
+ await fetchPaymentMethods(); // Refresh the list of payment methods
110
+ } catch (err) {
111
+ error.value = 'Failed to save new payment method';
112
+ console.error(err);
113
+ }
114
+ }
115
+ }).render(paypalButtonContainer.value);
116
+ } else {
117
+ console.error('PayPal SDK not loaded');
118
+ }
119
+ };
120
+
121
+ onMounted(() => {
122
+ fetchPaymentMethods();
123
+
124
+ // Load PayPal SDK
125
+ const script = document.createElement('script');
126
+ script.src = `https://www.paypal.com/sdk/js?client-id=YOUR_PAYPAL_CLIENT_ID`;
127
+ script.addEventListener('load', initializePayPalButton);
128
+ document.body.appendChild(script);
129
+ });
130
+ </script>
@@ -0,0 +1,152 @@
1
+ <template>
2
+ <v-card>
3
+ <v-card-title>Personalization</v-card-title>
4
+ <v-card-text>
5
+ <v-select
6
+ v-model="preferredCategories"
7
+ :items="categories"
8
+ item-title="title"
9
+ item-value="value"
10
+ label="Preferred Categories"
11
+ multiple
12
+ chips
13
+ :loading="!categories.length"
14
+ ></v-select>
15
+ <v-select
16
+ v-model="preferredBrands"
17
+ :items="brands"
18
+ item-title="title"
19
+ item-value="value"
20
+ label="Preferred Brands"
21
+ multiple
22
+ chips
23
+ :loading="!brands.length"
24
+ ></v-select>
25
+ <v-switch
26
+ v-model="enableRecommendations"
27
+ label="Enable Product Recommendations"
28
+ ></v-switch>
29
+ <v-btn @click="savePersonalization" color="primary" :loading="loading">
30
+ Save Preferences
31
+ </v-btn>
32
+ <v-alert v-if="successMessage" type="success" class="mt-3">
33
+ {{ successMessage }}
34
+ </v-alert>
35
+ <v-alert v-if="errorMessage" type="error" class="mt-3">
36
+ {{ errorMessage }}
37
+ </v-alert>
38
+ </v-card-text>
39
+ </v-card>
40
+ </template>
41
+
42
+ <script setup>
43
+ import { ref } from 'vue';
44
+ import { useRuntimeConfig } from '#imports';
45
+
46
+ const config = useRuntimeConfig();
47
+ const preferredCategories = ref([]);
48
+ const preferredBrands = ref([]);
49
+ const enableRecommendations = ref(true);
50
+
51
+ // These would typically come from your backend
52
+ const categories = ref([]);
53
+ const brands = ref([]);
54
+
55
+ const loading = ref(false);
56
+ const successMessage = ref('');
57
+ const errorMessage = ref('');
58
+
59
+ const fetchCategories = async () => {
60
+ try {
61
+ const response = await $fetch(`${config.public.vendureUrl}/V1/categories`, {
62
+ method: 'GET',
63
+ headers: {
64
+ 'Content-Type': 'application/json',
65
+ // If your API requires authentication for this endpoint, include the token
66
+ 'Authorization': `Bearer ${config.public.vendureApiToken}`
67
+ }
68
+ });
69
+
70
+ // Magento returns a category tree, so we need to flatten it
71
+ const flattenCategories = (category) => {
72
+ let result = [{
73
+ value: category.id,
74
+ title: category.name
75
+ }];
76
+ if (category.children_data) {
77
+ category.children_data.forEach(child => {
78
+ result = result.concat(flattenCategories(child));
79
+ });
80
+ }
81
+ return result;
82
+ };
83
+
84
+ categories.value = flattenCategories(response);
85
+ } catch (error) {
86
+ console.error('Error fetching categories:', error);
87
+ errorMessage.value = 'Failed to load categories. Please refresh the page.';
88
+ }
89
+ };
90
+
91
+ // New function to fetch brands
92
+ const fetchBrands = async () => {
93
+ try {
94
+ const response = await $fetch('/api/commerce/catalog/brands')
95
+ brands.value = response.map(brand => ({
96
+ value: brand.brand_id,
97
+ title: brand.brand_name
98
+ }))
99
+ } catch (error) {
100
+ console.error('Error fetching brands:', error)
101
+ errorMessage.value = 'Failed to load brands. Please refresh the page.'
102
+ }
103
+ }
104
+
105
+ // Fetch categories when the component is mounted
106
+ onMounted(() => {
107
+ fetchCategories();
108
+ fetchBrands()
109
+ });
110
+
111
+ const savePersonalization = async () => {
112
+ loading.value = true;
113
+ successMessage.value = '';
114
+ errorMessage.value = '';
115
+
116
+ try {
117
+ const response = await $fetch(`${config.public.vendureUrl}/V1/customers/me`, {
118
+ method: 'PUT',
119
+ headers: {
120
+ 'Content-Type': 'application/json',
121
+ 'Authorization': `Bearer ${config.public.vendureApiToken}` // You need to obtain and store the customer token
122
+ },
123
+ body: JSON.stringify({
124
+ customer: {
125
+ custom_attributes: [
126
+ {
127
+ attribute_code: 'preferred_categories',
128
+ value: JSON.stringify(preferredCategories.value)
129
+ },
130
+ {
131
+ attribute_code: 'preferred_brands',
132
+ value: JSON.stringify(preferredBrands.value)
133
+ },
134
+ {
135
+ attribute_code: 'enable_recommendations',
136
+ value: enableRecommendations.value ? '1' : '0'
137
+ }
138
+ ]
139
+ }
140
+ })
141
+ });
142
+
143
+ successMessage.value = 'Personalization preferences saved successfully!';
144
+ } catch (error) {
145
+ console.error('Error saving personalization preferences:', error);
146
+ errorMessage.value = 'Failed to save preferences. Please try again.';
147
+ } finally {
148
+ loading.value = false;
149
+ }
150
+ };
151
+ </script>
152
+
@@ -0,0 +1,90 @@
1
+ <template>
2
+ <v-card>
3
+ <v-card-title>Privacy and Data</v-card-title>
4
+ <v-card-text>
5
+ <!--<v-switch
6
+ v-model="dataSharing"
7
+ label="Allow Data Sharing for Personalized Experiences"
8
+ @change="updateDataSharingPreference"
9
+ ></v-switch>-->
10
+ <v-row>
11
+ <v-col><v-btn @click="requestDataReport" class="mb-4">Request Personal Data Report</v-btn></v-col>
12
+ <v-col><v-btn @click="deleteAccount" color="error">Delete Account</v-btn></v-col>
13
+ </v-row>
14
+ </v-card-text>
15
+ </v-card>
16
+ </template>
17
+
18
+ <script setup>
19
+ import { ref, onMounted } from 'vue';
20
+ import { useUserStore } from '#auth/app/stores/user';
21
+
22
+ const customerStore = useUserStore();
23
+
24
+ const dataSharing = ref(true);
25
+
26
+ onMounted(async () => {
27
+ await fetchPrivacySettings();
28
+ });
29
+
30
+ const fetchPrivacySettings = async () => {
31
+ try {
32
+ const settings = await customerStore.getPrivacySettings();
33
+ dataSharing.value = settings.data_sharing_enabled;
34
+ } catch (error) {
35
+ console.error('Error fetching privacy settings:', error);
36
+ }
37
+ };
38
+
39
+ const requestDataReport = async () => {
40
+ try {
41
+ const response = await $fetch('/api/customer/gdpr/delete-customer', {
42
+ method: 'POST',
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ // Add any necessary authentication headers
46
+ },
47
+ });
48
+ console.log('Personal data report requested successfully');
49
+ // Handle the response as needed
50
+ } catch (error) {
51
+ console.error('Error requesting personal data report:', error);
52
+ }
53
+ };
54
+
55
+ const deleteAccount = async () => {
56
+ try {
57
+ const response = await $fetch('/api/customers/me', {
58
+ method: 'DELETE',
59
+ headers: {
60
+ 'Content-Type': 'application/json',
61
+ // Add any necessary authentication headers
62
+ },
63
+ });
64
+ console.log('Account deletion process initiated');
65
+ // Handle the response, e.g., log out the user and redirect
66
+ } catch (error) {
67
+ console.error('Error initiating account deletion:', error);
68
+ }
69
+ };
70
+
71
+ const updateDataSharingPreference = async () => {
72
+ try {
73
+ const response = await $fetch('/api/customers/me/data-sharing', {
74
+ method: 'PUT',
75
+ headers: {
76
+ 'Content-Type': 'application/json',
77
+ // Add any necessary authentication headers
78
+ },
79
+ body: JSON.stringify({
80
+ data_sharing_enabled: dataSharing.value
81
+ }),
82
+ });
83
+ console.log('Data sharing preference updated successfully');
84
+ // Handle the response as needed
85
+ } catch (error) {
86
+ console.error('Error updating data sharing preference:', error);
87
+ }
88
+ };
89
+ </script>
90
+
@@ -0,0 +1,84 @@
1
+ <template>
2
+ <v-card>
3
+ <v-card-title>Security Settings</v-card-title>
4
+ <v-card-text>
5
+ <v-switch v-model="twoFactorAuth" label="Enable Two-Factor Authentication"
6
+ @change="toggleTwoFactorAuth"></v-switch>
7
+ <!--<v-row>
8
+ <v-col><v-btn @click="viewLoginHistory" class="mb-4">View Login History</v-btn></v-col>
9
+ <v-col><v-btn @click="manageActiveSessions" color="warning">Manage Active Sessions</v-btn></v-col>
10
+ </v-row>-->
11
+ </v-card-text>
12
+ </v-card>
13
+ </template>
14
+
15
+ <script setup>
16
+ import {
17
+ ref
18
+ } from 'vue';
19
+
20
+ const config = useRuntimeConfig();
21
+ const twoFactorAuth = ref(false);
22
+
23
+ const toggleTwoFactorAuth = async () => {
24
+ try {
25
+ const response = await $fetch(`/api/V1/tfa/google/configure`, {
26
+ method: 'POST',
27
+ headers: {
28
+ 'Content-Type': 'application/json',
29
+ 'Authorization': `Bearer ${config.public.vendureApiToken}` // Replace with actual auth token
30
+ },
31
+ body: JSON.stringify({
32
+ 'tfa_enabled': twoFactorAuth.value
33
+ })
34
+ });
35
+ console.log('2FA status updated:', response);
36
+ } catch (error) {
37
+ console.error('Error updating 2FA status:', error);
38
+ }
39
+ };
40
+
41
+ const viewLoginHistory = async () => {
42
+ try {
43
+ const response = await $fetch(`/api/V1/customer/login-history`, {
44
+ headers: {
45
+ 'Authorization': `Bearer ${config.public.vendureApiToken}` // Replace with actual auth token
46
+ }
47
+ });
48
+ console.log('Login history:', response);
49
+ // You can then update the UI to display this information
50
+ } catch (error) {
51
+ console.error('Error fetching login history:', error);
52
+ }
53
+ };
54
+
55
+ const manageActiveSessions = async () => {
56
+ try {
57
+ const response = await $fetch(`/api/V1/customer/active-sessions`, {
58
+ headers: {
59
+ 'Authorization': `Bearer ${config.public.vendureApiToken}` // Replace with actual auth token
60
+ }
61
+ });
62
+ console.log('Active sessions:', response);
63
+ // You can then update the UI to display this information and allow management
64
+ } catch (error) {
65
+ console.error('Error fetching active sessions:', error);
66
+ }
67
+ };
68
+
69
+ const terminateSession = async (sessionId) => {
70
+ try {
71
+ const response = await $fetch(`/api/V1/customer/terminate-session/${sessionId}`, {
72
+ method: 'POST',
73
+ headers: {
74
+ 'Authorization': `Bearer ${config.public.vendureApiToken}` // Replace with actual auth token
75
+ }
76
+ });
77
+ console.log('Session terminated:', response);
78
+ // Refresh the list of active sessions
79
+ await manageActiveSessions();
80
+ } catch (error) {
81
+ console.error('Error terminating session:', error);
82
+ }
83
+ };
84
+ </script>