@ozdao/prometheus-framework 0.2.211 → 0.2.213

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +1 -1
  2. package/dist/prometheus-framework/src/components/Button/Button.vue.js +1 -1
  3. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +2 -2
  4. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
  5. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +2 -2
  6. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
  7. package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  8. package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
  9. package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +1 -1
  10. package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +1 -1
  11. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue.cjs +41 -0
  12. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue.cjs.map +1 -0
  13. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue.js +41 -0
  14. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue.js.map +1 -0
  15. package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  16. package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  17. package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.cjs +2 -2
  18. package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.js +2 -2
  19. package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  20. package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  21. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  22. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  23. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  24. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  25. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  26. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  27. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  28. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  29. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
  30. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  31. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.cjs +1 -2
  32. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
  33. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.js +1 -2
  34. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.js.map +1 -1
  35. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  36. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  37. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +2 -2
  38. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +2 -2
  39. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  40. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  41. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +2 -2
  42. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +2 -2
  43. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  44. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  45. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  46. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  47. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  48. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  49. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  50. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  51. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +1 -1
  52. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +1 -1
  53. package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  54. package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.js +1 -1
  55. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
  56. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
  57. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  58. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  59. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +1 -1
  60. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockFilter.vue.js +1 -1
  61. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  62. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  63. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs +5 -0
  64. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
  65. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js +7 -2
  66. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
  67. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +15 -7
  68. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  69. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +15 -7
  70. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  71. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  72. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  73. package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  74. package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  75. package/dist/prometheus-framework/src/modules/globals/views/store/globals.cjs +56 -4
  76. package/dist/prometheus-framework/src/modules/globals/views/store/globals.cjs.map +1 -1
  77. package/dist/prometheus-framework/src/modules/globals/views/store/globals.js +56 -4
  78. package/dist/prometheus-framework/src/modules/globals/views/store/globals.js.map +1 -1
  79. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs +1 -1
  80. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs.map +1 -1
  81. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.js +1 -1
  82. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.js.map +1 -1
  83. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.cjs +2 -2
  84. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.cjs.map +1 -1
  85. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.js +2 -2
  86. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.js.map +1 -1
  87. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs +1 -1
  88. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs.map +1 -1
  89. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.js +1 -1
  90. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.js.map +1 -1
  91. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.cjs +1 -1
  92. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.cjs.map +1 -1
  93. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.js +1 -1
  94. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.js.map +1 -1
  95. package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
  96. package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  97. package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.cjs +2 -2
  98. package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.js +2 -2
  99. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  100. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  101. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  102. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  103. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +1 -1
  104. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
  105. package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  106. package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  107. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
  108. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +1 -1
  109. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  110. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  111. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
  112. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  113. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  114. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  115. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  116. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  117. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +139 -0
  118. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -0
  119. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +139 -0
  120. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -0
  121. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  122. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  123. package/dist/prometheus-framework/src/modules/organizations/components/sections/Feed.vue.cjs +1 -1
  124. package/dist/prometheus-framework/src/modules/organizations/components/sections/Feed.vue.js +1 -1
  125. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  126. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  127. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +5 -10
  128. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  129. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +5 -10
  130. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  131. package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs +2 -2
  132. package/dist/prometheus-framework/src/modules/organizations/organizations.client.js +2 -2
  133. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +850 -850
  134. package/dist/prometheus-framework/src/modules/pages/pages.client.js +850 -850
  135. package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
  136. package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
  137. package/dist/prometheus-framework/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  138. package/dist/prometheus-framework/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  139. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  140. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  141. package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.cjs +1 -1
  142. package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.js +1 -1
  143. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  144. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +1 -1
  145. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  146. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  147. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  148. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  149. package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  150. package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  151. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +1 -1
  152. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +1 -1
  153. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +2 -2
  154. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +2 -2
  155. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  156. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  157. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  158. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  159. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  160. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  161. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  162. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  163. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  164. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  165. package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  166. package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js +1 -1
  167. package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
  168. package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js +1 -1
  169. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  170. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  171. package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.cjs +2 -2
  172. package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.js +2 -2
  173. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.cjs +14 -4
  174. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.cjs.map +1 -1
  175. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.js +18 -8
  176. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.js.map +1 -1
  177. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  178. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  179. package/dist/prometheus-framework.cjs.js +1 -1
  180. package/dist/prometheus-framework.es.js +3 -3
  181. package/package.json +1 -1
  182. package/src/components/Feed/Feed.vue +1 -1
  183. package/src/modules/community/components/blocks/CardBlogpost.vue +0 -22
  184. package/src/modules/community/components/pages/Blog.vue +1 -1
  185. package/src/modules/globals/views/components/layouts/App.vue +10 -2
  186. package/src/modules/globals/views/components/layouts/Client.vue +57 -46
  187. package/src/modules/globals/views/store/globals.js +69 -6
  188. package/src/modules/icons/logos/Logotype.vue +0 -4
  189. package/src/modules/icons/skeletons/SkeletonBlogpost.vue +1 -1
  190. package/src/modules/icons/skeletons/SkeletonEvent.vue +3 -3
  191. package/src/modules/icons/skeletons/SkeletonEventShort.vue +1 -1
  192. package/src/modules/icons/skeletons/SkeletonOrganization.vue +1 -1
  193. package/src/modules/organizations/components/pages/Organization.vue +3 -3
  194. package/src/modules/organizations/components/sections/Organizations.vue +0 -1
  195. package/src/modules/organizations/organizations.client.js +2 -2
  196. package/src/modules/users/components/pages/ProfileEdit.vue +11 -0
  197. /package/src/modules/organizations/components/sections/{DetailsTab.vue → DetailsTabSection.vue} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Loader = require("../Loader/Loader.vue.cjs");
4
+ const Loader = require("../Loader/Loader.vue2.cjs");
5
5
  ;/* empty css */
6
6
  const _hoisted_1 = ["disabled"];
7
7
  const _hoisted_2 = { key: 0 };
@@ -1,5 +1,5 @@
1
1
  import { ref, openBlock, createElementBlock, withModifiers, createVNode, Transition, withCtx, renderSlot, toDisplayString, createCommentVNode } from "vue";
2
- import Loader from "../Loader/Loader.vue.js";
2
+ import Loader from "../Loader/Loader.vue2.js";
3
3
  /* empty css */
4
4
  const _hoisted_1 = ["disabled"];
5
5
  const _hoisted_2 = { key: 0 };
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const SkeletonEvent = require("../../modules/icons/skeletons/SkeletonEvent.vue.cjs");
5
- const Loader = require("../Loader/Loader.vue.cjs");
5
+ const Loader = require("../Loader/Loader.vue2.cjs");
6
6
  const EmptyState = require("../EmptyState/EmptyState.vue.cjs");
7
7
  const Dropdown = require("../Dropdown/Dropdown.vue.cjs");
8
8
  const Calendar = require("../DatePicker/Calendar.vue2.cjs");
@@ -331,7 +331,7 @@ const _sfc_main = {
331
331
  __props.showLoadMore && hasMoreItems.value && itemsList.value.length > 0 && !vue.unref(isLoadingExtra) ? (vue.openBlock(), vue.createElementBlock("button", {
332
332
  key: 3,
333
333
  onClick: loadMoreItems,
334
- class: "col-w-100 mn-t-thin w-100 bg-main button"
334
+ class: "col-w-100 mn-t-thin w-100 t-black bg-main button"
335
335
  }, " Load More ")) : (vue.openBlock(), vue.createElementBlock("div", {
336
336
  key: "sentinel",
337
337
  ref_key: "sentinel",
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.vue.cjs","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-big o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = ref(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction updateSearch(search) {\n currentSearch.value = search\n currentSkip.value = 0\n currentLimit.value = 10\n\n fetchItems();\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\n\nwatch(() => props.external, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => date.value, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => sort.value?.order, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\nwatch(() => sort.value?.param, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\n\nwatch(() => props.options, (newVal, oldVal) => {\n if (\n newVal.organization !== oldVal.organization ||\n newVal.categories !== oldVal.categories ||\n newVal.prices !== oldVal.prices ||\n newVal.delivery !== oldVal.delivery ||\n newVal.search !== oldVal.search ||\n newVal.status !== oldVal.status ||\n newVal.hidden !== oldVal.hidden ||\n newVal.type !== oldVal.type ||\n newVal.tags !== oldVal.tags || \n newVal.following !== oldVal.following\n ) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","ref","search","watch","onMounted","onUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.vue.cjs","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-big o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = ref(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction updateSearch(search) {\n currentSearch.value = search\n currentSkip.value = 0\n currentLimit.value = 10\n\n fetchItems();\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\n\nwatch(() => props.external, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => date.value, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => sort.value?.order, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\nwatch(() => sort.value?.param, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\n\nwatch(() => props.options, (newVal, oldVal) => {\n if (\n newVal.organization !== oldVal.organization ||\n newVal.categories !== oldVal.categories ||\n newVal.prices !== oldVal.prices ||\n newVal.delivery !== oldVal.delivery ||\n newVal.search !== oldVal.search ||\n newVal.status !== oldVal.status ||\n newVal.hidden !== oldVal.hidden ||\n newVal.type !== oldVal.type ||\n newVal.tags !== oldVal.tags || \n newVal.following !== oldVal.following\n ) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","ref","search","watch","onMounted","onUnmounted"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { mergeModels, useModel, ref, watch, onMounted, onUnmounted, openBlock, createElementBlock, Fragment, createBlock, normalizeClass, createCommentVNode, createElementVNode, createVNode, withCtx, unref, TransitionGroup, renderList, renderSlot } from "vue";
2
2
  import SkeletonEvent from "../../modules/icons/skeletons/SkeletonEvent.vue.js";
3
- import Loader from "../Loader/Loader.vue.js";
3
+ import Loader from "../Loader/Loader.vue2.js";
4
4
  import _sfc_main$a from "../EmptyState/EmptyState.vue.js";
5
5
  import _sfc_main$5 from "../Dropdown/Dropdown.vue.js";
6
6
  import _sfc_main$7 from "../DatePicker/Calendar.vue2.js";
@@ -329,7 +329,7 @@ const _sfc_main = {
329
329
  __props.showLoadMore && hasMoreItems.value && itemsList.value.length > 0 && !unref(isLoadingExtra) ? (openBlock(), createElementBlock("button", {
330
330
  key: 3,
331
331
  onClick: loadMoreItems,
332
- class: "col-w-100 mn-t-thin w-100 bg-main button"
332
+ class: "col-w-100 mn-t-thin w-100 t-black bg-main button"
333
333
  }, " Load More ")) : (openBlock(), createElementBlock("div", {
334
334
  key: "sentinel",
335
335
  ref_key: "sentinel",
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.vue.js","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-big o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = ref(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction updateSearch(search) {\n currentSearch.value = search\n currentSkip.value = 0\n currentLimit.value = 10\n\n fetchItems();\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\n\nwatch(() => props.external, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => date.value, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => sort.value?.order, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\nwatch(() => sort.value?.param, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\n\nwatch(() => props.options, (newVal, oldVal) => {\n if (\n newVal.organization !== oldVal.organization ||\n newVal.categories !== oldVal.categories ||\n newVal.prices !== oldVal.prices ||\n newVal.delivery !== oldVal.delivery ||\n newVal.search !== oldVal.search ||\n newVal.status !== oldVal.status ||\n newVal.hidden !== oldVal.hidden ||\n newVal.type !== oldVal.type ||\n newVal.tags !== oldVal.tags || \n newVal.following !== oldVal.following\n ) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","search"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.vue.js","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-big o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = ref(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction updateSearch(search) {\n currentSearch.value = search\n currentSkip.value = 0\n currentLimit.value = 10\n\n fetchItems();\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\n\nwatch(() => props.external, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => date.value, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nwatch(() => sort.value?.order, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\nwatch(() => sort.value?.param, (newVal, oldVal) => {\n\n if (newVal !== oldVal) {\n currentSkip.value = 0\n fetchItems();\n }\n});\n\n\nwatch(() => props.options, (newVal, oldVal) => {\n if (\n newVal.organization !== oldVal.organization ||\n newVal.categories !== oldVal.categories ||\n newVal.prices !== oldVal.prices ||\n newVal.delivery !== oldVal.delivery ||\n newVal.search !== oldVal.search ||\n newVal.status !== oldVal.status ||\n newVal.hidden !== oldVal.hidden ||\n newVal.type !== oldVal.type ||\n newVal.tags !== oldVal.tags || \n newVal.following !== oldVal.following\n ) {\n currentSkip.value = 0\n fetchItems();\n }\n}, { deep: true });\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","search"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmKA,UAAM,SAASA,SAAY,SAAA,QAAQ;AACnC,UAAM,OAAOA,kBAAY,MAAM;AAC/B,UAAM,SAASA,SAAY,SAAA,QAAQ;AACnC,UAAM,OAAOA,kBAAY,MAAM;AAC/B,UAAM,QAAQA,kBAAY,OAAO;AAGjC,UAAM,QAAQ;AA6Cd,UAAM,YAAY,IAAI,MAAM,SAAS,CAAE,CAAA;AACvC,UAAM,eAAe,IAAI,KAAK;AAE9B,QAAI,YAAY,IAAI,IAAI;AACxB,QAAI,iBAAiB,IAAI,KAAK;AAC9B,QAAI,WAAW,IAAI,IAAI;AAEvB,QAAI,cAAc,IAAI,MAAM,QAAQ,OAAO,MAAM,QAAQ,OAAO,CAAC;AACjE,QAAI,eAAe,IAAI,MAAM,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,EAAE;AAKrE,QAAI,gBAAgB,IAAI,EAAE;AAE1B,aAAS,aAAaC,SAAQ;AAC5B,oBAAc,QAAQA;AACtB,kBAAY,QAAQ;AACpB,mBAAa,QAAQ;AAErB;IACF;AAEA,UAAM,gBAAgB,YAAY;AAChC,qBAAe,QAAQ;AAEvB,UAAI,aAAa,OAAO;AACtB,oBAAY,SAAS,aAAa;AAElC,cAAM,OAAO,MAAM,MAAM,MAAM,KAAK;AAAA,UAClC,MAAM,YAAY;AAAA,UAClB,OAAO,aAAa;AAAA,UACpB,QAAQ,cAAc;AAAA,UACtB,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ;AAAA,UAC3C,SAAS,KAAK,QAAQ,KAAK,MAAM,MAAM;AAAA,UACvC,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ;AAAA,UAC3C,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ;AAAA,UAC3C,GAAG,MAAM;AAAA,QACf,CAAK;AAED,YAAI,KAAK,WAAW,GAAG;AACrB,uBAAa,QAAQ;AAAA,QACtB,WAAU,KAAK,SAAS,aAAa,OAAO;AAC3C,uBAAa,QAAQ;AAAA,QAC3B,OAAW;AACL,uBAAa,QAAQ;AAAA,QACtB;AAED,kBAAU,QAAQ,CAAC,GAAG,UAAU,OAAO,GAAG,IAAI;AAE9C,YAAI,MAAM,MAAO,OAAM,QAAQ,UAAU;AAAA,MAC1C;AAED,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,aAAa,YAAY;AAC7B,YAAM,OAAO,MAAM,MAAM,MAAM,KAAK;AAAA,QAClC,MAAM,YAAY;AAAA,QAClB,OAAO,aAAa;AAAA,QACpB,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ;AAAA,QAC3C,SAAS,KAAK,QAAQ,KAAK,MAAM,MAAM;AAAA,QACvC,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ;AAAA,QAC3C,WAAW,KAAK,QAAQ,KAAK,MAAM,QAAQ;AAAA,QAC3C,QAAQ,cAAc;AAAA,QACtB,GAAG,MAAM;AAAA,MACb,CAAG;AAED,UAAI,KAAK,WAAW,GAAG;AACrB,qBAAa,QAAQ;AAAA,MACtB,WAAU,KAAK,SAAS,aAAa,OAAO;AAC3C,qBAAa,QAAQ;AAAA,MACzB,OAAS;AACL,qBAAa,QAAQ;AAAA,MACtB;AAED,gBAAU,QAAQ;AAClB,UAAI,MAAM,MAAO,OAAM,QAAQ,UAAU;AACzC,gBAAU,QAAQ;AAAA,IACpB;AAGA,UAAM,MAAM,MAAM,UAAU,CAAC,QAAQ,WAAW;AAC9C,UAAI,WAAW,QAAQ;AACpB,oBAAY,QAAQ;AACrB;MACD;AAAA,IACH,GAAG,EAAE,MAAM,KAAI,CAAE;AAEjB,UAAM,MAAM,KAAK,OAAO,CAAC,QAAQ,WAAW;AAC1C,UAAI,WAAW,QAAQ;AACpB,oBAAY,QAAQ;AACrB;MACD;AAAA,IACH,GAAG,EAAE,MAAM,KAAI,CAAE;AAEjB,UAAM,MAAA;;AAAM,wBAAK,UAAL,mBAAY;AAAA,OAAO,CAAC,QAAQ,WAAW;AAEjD,UAAI,WAAW,QAAQ;AACpB,oBAAY,QAAQ;AACrB;MACD;AAAA,IACH,CAAC;AAED,UAAM,MAAA;;AAAM,wBAAK,UAAL,mBAAY;AAAA,OAAO,CAAC,QAAQ,WAAW;AAEjD,UAAI,WAAW,QAAQ;AACpB,oBAAY,QAAQ;AACrB;MACD;AAAA,IACH,CAAC;AAGD,UAAM,MAAM,MAAM,SAAS,CAAC,QAAQ,WAAW;AAC7C,UACE,OAAO,iBAAiB,OAAO,gBAC/B,OAAO,eAAe,OAAO,cAC7B,OAAO,WAAW,OAAO,UACzB,OAAO,aAAa,OAAO,YAC3B,OAAO,WAAW,OAAO,UACzB,OAAO,WAAW,OAAO,UACzB,OAAO,WAAW,OAAO,UACzB,OAAO,SAAS,OAAO,QACvB,OAAO,SAAS,OAAO,QACvB,OAAO,cAAc,OAAO,WAC5B;AACA,oBAAY,QAAQ;AACpB;MACD;AAAA,IACH,GAAG,EAAE,MAAM,KAAI,CAAE;AAEjB,QAAI,WAAW;AAEf,cAAU,YAAY;AACpB,YAAM,WAAY;AAElB,UAAI,OAAO,WAAW,eAAe,CAAC,MAAM,cAAc;AACxD,mBAAW,IAAI,qBAAqB,aAAW;AAC7C,cAAI,QAAQ,KAAK,WAAS,MAAM,cAAc,GAAG;AAC/C,0BAAe;AAAA,UAChB;AAAA,QACP,CAAK;AAED,YAAI,SAAS,MAAO,UAAS,QAAQ,SAAS,KAAK;AAAA,MACpD;AAAA,IACH,CAAC;AAED,gBAAY,MAAM;AAChB,UAAI,UAAU;AACZ,iBAAS,WAAU;AAAA,MACpB;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const index = require("../../../../node_modules/@googlemaps/js-api-loader/dist/index.cjs");
5
- const Loader = require("../Loader/Loader.vue.cjs");
5
+ const Loader = require("../Loader/Loader.vue2.cjs");
6
6
  ;/* empty css */
7
7
  const _hoisted_1 = { class: "pos-relative" };
8
8
  const _hoisted_2 = {
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, watchEffect, openBlock, createElementBlock, createElementVNode, createVNode, Transition, withCtx, createBlock } from "vue";
2
2
  import { Loader } from "../../../../node_modules/@googlemaps/js-api-loader/dist/index.js";
3
- import Loader$1 from "../Loader/Loader.vue.js";
3
+ import Loader$1 from "../Loader/Loader.vue2.js";
4
4
  /* empty css */
5
5
  const _hoisted_1 = { class: "pos-relative" };
6
6
  const _hoisted_2 = {
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
5
5
  require("vue-i18n");
6
6
  const emblaCarouselVue_esm = require("../../../../node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs");
7
7
  const emblaCarouselAutoplay_esm = require("../../../../node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs");
8
- ;/* empty css */
8
+ ;/* empty css */
9
9
  const _hoisted_1 = { class: "embla__container" };
10
10
  const _sfc_main = {
11
11
  __name: "Slider",
@@ -3,7 +3,7 @@ import { useRouter } from "vue-router";
3
3
  import "vue-i18n";
4
4
  import emblaCarouselVue from "../../../../node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js";
5
5
  import Autoplay from "../../../../node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  const _hoisted_1 = { class: "embla__container" };
8
8
  const _sfc_main = {
9
9
  __name: "Slider",
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ ;/* empty css */
5
+ const _hoisted_1 = { class: "spoiler" };
6
+ const _sfc_main = {
7
+ __name: "Spoiler",
8
+ props: {
9
+ status: {
10
+ type: Boolean,
11
+ default: false
12
+ }
13
+ },
14
+ setup(__props) {
15
+ const props = __props;
16
+ const showSpoiler = vue.ref(false);
17
+ if (props.status) showSpoiler.value = props.status;
18
+ return (_ctx, _cache) => {
19
+ return vue.openBlock(), vue.createElementBlock("div", null, [
20
+ vue.createElementVNode("div", {
21
+ onClick: _cache[0] || (_cache[0] = ($event) => showSpoiler.value = !showSpoiler.value),
22
+ class: "flex-v-center flex-nowrap flex"
23
+ }, [
24
+ vue.renderSlot(_ctx.$slots, "header", { isOpen: showSpoiler.value })
25
+ ]),
26
+ vue.createVNode(vue.Transition, { name: "collapse" }, {
27
+ default: vue.withCtx(() => [
28
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_1, [
29
+ vue.renderSlot(_ctx.$slots, "content")
30
+ ], 512), [
31
+ [vue.vShow, showSpoiler.value]
32
+ ])
33
+ ]),
34
+ _: 3
35
+ })
36
+ ]);
37
+ };
38
+ }
39
+ };
40
+ exports.default = _sfc_main;
41
+ //# sourceMappingURL=Spoiler.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spoiler.vue.cjs","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"showSpoiler = !showSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :is-open=\"showSpoiler\"></slot>\n </div>\n\n <transition name=\"collapse\">\n <div v-show=\"showSpoiler\" class=\"spoiler\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n\n </div>\n</template>\n\n<script setup>\n import { ref, computed } from 'vue';\n\n const props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n });\n\n const showSpoiler = ref(false);\n\n if (props.status) showSpoiler.value = props.status\n</script>\n\n<style lang=\"scss\">\n .spoiler {\n transition: max-height 0.3s cubic-bezier(.15,.68,.33,.93);\n }\n .collapse-enter-active,\n .collapse-leave-active {\n max-height: 2000px;\n }\n\n .collapse-enter-from,\n .collapse-leave-to {\n max-height: 0;\n }\n</style> "],"names":["ref"],"mappings":";;;;;;;;;;;;;;AAkBE,UAAM,QAAQ;AAOd,UAAM,cAAcA,QAAI,KAAK;AAE7B,QAAI,MAAM,OAAQ,aAAY,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,41 @@
1
+ import { ref, openBlock, createElementBlock, createElementVNode, renderSlot, createVNode, Transition, withCtx, withDirectives, vShow } from "vue";
2
+ /* empty css */
3
+ const _hoisted_1 = { class: "spoiler" };
4
+ const _sfc_main = {
5
+ __name: "Spoiler",
6
+ props: {
7
+ status: {
8
+ type: Boolean,
9
+ default: false
10
+ }
11
+ },
12
+ setup(__props) {
13
+ const props = __props;
14
+ const showSpoiler = ref(false);
15
+ if (props.status) showSpoiler.value = props.status;
16
+ return (_ctx, _cache) => {
17
+ return openBlock(), createElementBlock("div", null, [
18
+ createElementVNode("div", {
19
+ onClick: _cache[0] || (_cache[0] = ($event) => showSpoiler.value = !showSpoiler.value),
20
+ class: "flex-v-center flex-nowrap flex"
21
+ }, [
22
+ renderSlot(_ctx.$slots, "header", { isOpen: showSpoiler.value })
23
+ ]),
24
+ createVNode(Transition, { name: "collapse" }, {
25
+ default: withCtx(() => [
26
+ withDirectives(createElementVNode("div", _hoisted_1, [
27
+ renderSlot(_ctx.$slots, "content")
28
+ ], 512), [
29
+ [vShow, showSpoiler.value]
30
+ ])
31
+ ]),
32
+ _: 3
33
+ })
34
+ ]);
35
+ };
36
+ }
37
+ };
38
+ export {
39
+ _sfc_main as default
40
+ };
41
+ //# sourceMappingURL=Spoiler.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spoiler.vue.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"showSpoiler = !showSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :is-open=\"showSpoiler\"></slot>\n </div>\n\n <transition name=\"collapse\">\n <div v-show=\"showSpoiler\" class=\"spoiler\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n\n </div>\n</template>\n\n<script setup>\n import { ref, computed } from 'vue';\n\n const props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n });\n\n const showSpoiler = ref(false);\n\n if (props.status) showSpoiler.value = props.status\n</script>\n\n<style lang=\"scss\">\n .spoiler {\n transition: max-height 0.3s cubic-bezier(.15,.68,.33,.93);\n }\n .collapse-enter-active,\n .collapse-leave-active {\n max-height: 2000px;\n }\n\n .collapse-enter-from,\n .collapse-leave-to {\n max-height: 0;\n }\n</style> "],"names":[],"mappings":";;;;;;;;;;;;AAkBE,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAE7B,QAAI,MAAM,OAAQ,aAAY,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const axios = require("axios");
5
- const Loader = require("../Loader/Loader.vue.cjs");
5
+ const Loader = require("../Loader/Loader.vue2.cjs");
6
6
  const IconUpload = require("../../modules/icons/navigation/IconUpload.vue.cjs");
7
7
  const _hoisted_1 = {
8
8
  key: 0,
@@ -1,6 +1,6 @@
1
1
  import { ref, openBlock, createElementBlock, withModifiers, createVNode, Transition, withCtx, toDisplayString, createCommentVNode, createBlock, createElementVNode } from "vue";
2
2
  import axios from "axios";
3
- import Loader from "../Loader/Loader.vue.js";
3
+ import Loader from "../Loader/Loader.vue2.js";
4
4
  import _sfc_main$1 from "../../modules/icons/navigation/IconUpload.vue.js";
5
5
  const _hoisted_1 = {
6
6
  key: 0,
@@ -3,8 +3,8 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  ;/* empty css */
6
- ;/* empty css */
7
- ;/* empty css */
6
+ ;/* empty css */
7
+ ;/* empty css */
8
8
  require("vue-i18n");
9
9
  ;/* empty css */
10
10
  const vueRouter = require("vue-router");
@@ -1,8 +1,8 @@
1
1
  import { ref, resolveComponent, openBlock, createElementBlock, createVNode, withCtx, Transition, createBlock, resolveDynamicComponent, createElementVNode } from "vue";
2
2
  /* empty css */
3
3
  /* empty css */
4
- /* empty css */
5
- /* empty css */
4
+ /* empty css */
5
+ /* empty css */
6
6
  import "vue-i18n";
7
7
  /* empty css */
8
8
  import { useRoute, useRouter } from "vue-router";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  const Field = require("../../../../../components/Field/Field.vue2.cjs");
6
- const Button = require("../../../../../components/Button/Button.vue.cjs");
6
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
7
7
  const vueRouter = require("vue-router");
8
8
  const vueI18n = require("vue-i18n");
9
9
  const auth = require("../../store/auth.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, openBlock, createElementBlock, createElementVNode, toDisplayString, unref, createVNode, createTextVNode, createCommentVNode, withCtx } from "vue";
2
2
  /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue2.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { useI18n } from "vue-i18n";
7
7
  import { state, actions } from "../../store/auth.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  const Field = require("../../../../../components/Field/Field.vue2.cjs");
6
- const Button = require("../../../../../components/Button/Button.vue.cjs");
6
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
7
7
  const vueRouter = require("vue-router");
8
8
  const auth = require("../../store/auth.cjs");
9
9
  const invites = require("../../../../organizations/store/invites.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, openBlock, createElementBlock, createElementVNode, createVNode, withCtx } from "vue";
2
2
  /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue2.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { state, actions as actions$1 } from "../../store/auth.js";
7
7
  import { actions } from "../../../../organizations/store/invites.js";
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
5
5
  const Field = require("../../../../../components/Field/Field.vue2.cjs");
6
6
  const FieldPhone = require("../../../../../components/FieldPhone/FieldPhone.vue.cjs");
7
- const Button = require("../../../../../components/Button/Button.vue.cjs");
7
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
8
8
  const vueRouter = require("vue-router");
9
9
  const vueI18n = require("vue-i18n");
10
10
  const ResetPassword = require("../../localization/ResetPassword.json.cjs");
@@ -2,7 +2,7 @@ import { ref, openBlock, createElementBlock, createElementVNode, toDisplayString
2
2
  import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
3
  import Field from "../../../../../components/Field/Field.vue2.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import text from "../../localization/ResetPassword.json.js";
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
5
5
  const Field = require("../../../../../components/Field/Field.vue2.cjs");
6
6
  const FieldPhone = require("../../../../../components/FieldPhone/FieldPhone.vue.cjs");
7
- const Button = require("../../../../../components/Button/Button.vue.cjs");
7
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
8
8
  const vueRouter = require("vue-router");
9
9
  const vueI18n = require("vue-i18n");
10
10
  const SignIn = require("../../localization/SignIn.json.cjs");
@@ -2,7 +2,7 @@ import { ref, onMounted, resolveComponent, openBlock, createElementBlock, create
2
2
  import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
3
  import Field from "../../../../../components/Field/Field.vue2.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import text from "../../localization/SignIn.json.js";
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
5
5
  const Field = require("../../../../../components/Field/Field.vue2.cjs");
6
6
  const FieldPhone = require("../../../../../components/FieldPhone/FieldPhone.vue.cjs");
7
- const Button = require("../../../../../components/Button/Button.vue.cjs");
7
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
8
8
  const vueRouter = require("vue-router");
9
9
  const vueI18n = require("vue-i18n");
10
10
  const SignUp = require("../../localization/SignUp.json.cjs");
@@ -2,7 +2,7 @@ import { ref, resolveComponent, openBlock, createElementBlock, createElementVNod
2
2
  import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
3
  import Field from "../../../../../components/Field/Field.vue2.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import text from "../../localization/SignUp.json.js";
@@ -1 +1 @@
1
- {"version":3,"file":"CardBlogpost.vue.cjs","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative bg-light radius-big flex-column flex\"\n\t>\n\n\t\t<!-- <router-link \n\t\t\tv-if=\"user && user === blogpost.creator.target._id\"\n\t\t\t:to=\"{\n\t\t\t\tname: 'Edit BlogPost', \n\t\t\t\tparams: {\n\t\t\t\t\turl: blogpost.url\n\t\t\t\t}\n\t\t\t}\" \n\n\t\t\tclass=\"\n\t\t\t\tcursor-pointer \n\t\t\t\tpos-absolute pos-t-regular pos-r-regular\n\t\t\t\tradius-extra pd-thin bg-second\n\t\t\t\"\n\t\t>\n\t\t\t<IconEdit\n\t\t\t\tclass=\"i-regular\"\n\t\t\t\tclasses=\"fill-white\"\n\t\t\t/>\n\t\t</router-link> -->\n\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-cover w-100 h-max-20r\">\n\t <source :src=\"firstVideo.content\" type=\"video/mp4\">\n\t Your browser does not support the video tag.\n\t </video>\n\t <!-- </div> -->\n\t\t</template>\n\n\t\t\n\t\t<FooterBlogpost \n\t\t\tclass=\"pd-t-zero pd-medium\" \n\t\t\t:blogpost=\"blogpost\" :user=\"user\"\n\t\t/>\n\t\n\t</article>\n\n</template>\n\n\n<script setup=\"props\">\n\timport CardHeader from '@pf/src/modules/globals/views/components/blocks/CardHeader.vue'\n\timport FooterBlogpost from '@pf/src/modules/community/components/blocks/FooterBlogpost.vue'\t\n\n\timport Image from '@pf/src/modules/constructor/components/elements/Image.vue';\n\n import Text from '@pf/src/components/Text/Text.vue'\n\timport Chips from '@pf/src/components/Chips/Chips.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\n\timport { computed } from 'vue'\n\n\timport { useRouter } from 'vue-router'\n\n\tconst router = useRouter()\n\n\tconst props = defineProps({\n\t\tblogpost: {\n\t\t\ttype: Object,\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\thideDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thideTitle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n const firstImage = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'ImageUpload');\n\t});\n\n\tconst firstVideo = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Video');\n\t});\n\n\tconst firstText = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Textarea');\n\t});\n\n</script>\n\n<style lang=\"scss\">\n</style>\n\n\n"],"names":["useRouter","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IC,UAAM,SAASA,UAAAA,UAAW;AAE1B,UAAM,QAAQ;AAoBb,UAAM,aAAaC,IAAAA,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,aAAa;AAAA,IAC3E,CAAE;AAED,UAAM,aAAaA,IAAAA,SAAS,MAAM;AAChC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,OAAO;AAAA,IACrE,CAAE;AAED,UAAM,YAAYA,IAAAA,SAAS,MAAM;AAC/B,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,UAAU;AAAA,IACxE,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardBlogpost.vue.cjs","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative bg-light radius-big flex-column flex\"\n\t>\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-cover w-100 h-max-20r\">\n\t <source :src=\"firstVideo.content\" type=\"video/mp4\">\n\t Your browser does not support the video tag.\n\t </video>\n\t <!-- </div> -->\n\t\t</template>\n\n\t\t\n\t\t<FooterBlogpost \n\t\t\tclass=\"pd-t-zero pd-medium\" \n\t\t\t:blogpost=\"blogpost\" :user=\"user\"\n\t\t/>\n\t\n\t</article>\n\n</template>\n\n\n<script setup=\"props\">\n\timport CardHeader from '@pf/src/modules/globals/views/components/blocks/CardHeader.vue'\n\timport FooterBlogpost from '@pf/src/modules/community/components/blocks/FooterBlogpost.vue'\t\n\n\timport Image from '@pf/src/modules/constructor/components/elements/Image.vue';\n\n import Text from '@pf/src/components/Text/Text.vue'\n\timport Chips from '@pf/src/components/Chips/Chips.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\n\timport { computed } from 'vue'\n\n\timport { useRouter } from 'vue-router'\n\n\tconst router = useRouter()\n\n\tconst props = defineProps({\n\t\tblogpost: {\n\t\t\ttype: Object,\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\thideDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thideTitle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n const firstImage = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'ImageUpload');\n\t});\n\n\tconst firstVideo = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Video');\n\t});\n\n\tconst firstText = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Textarea');\n\t});\n\n</script>\n\n<style lang=\"scss\">\n</style>\n\n\n"],"names":["useRouter","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHC,UAAM,SAASA,UAAAA,UAAW;AAE1B,UAAM,QAAQ;AAoBb,UAAM,aAAaC,IAAAA,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,aAAa;AAAA,IAC3E,CAAE;AAED,UAAM,aAAaA,IAAAA,SAAS,MAAM;AAChC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,OAAO;AAAA,IACrE,CAAE;AAED,UAAM,YAAYA,IAAAA,SAAS,MAAM;AAC/B,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,UAAU;AAAA,IACxE,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardBlogpost.vue.js","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative bg-light radius-big flex-column flex\"\n\t>\n\n\t\t<!-- <router-link \n\t\t\tv-if=\"user && user === blogpost.creator.target._id\"\n\t\t\t:to=\"{\n\t\t\t\tname: 'Edit BlogPost', \n\t\t\t\tparams: {\n\t\t\t\t\turl: blogpost.url\n\t\t\t\t}\n\t\t\t}\" \n\n\t\t\tclass=\"\n\t\t\t\tcursor-pointer \n\t\t\t\tpos-absolute pos-t-regular pos-r-regular\n\t\t\t\tradius-extra pd-thin bg-second\n\t\t\t\"\n\t\t>\n\t\t\t<IconEdit\n\t\t\t\tclass=\"i-regular\"\n\t\t\t\tclasses=\"fill-white\"\n\t\t\t/>\n\t\t</router-link> -->\n\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-cover w-100 h-max-20r\">\n\t <source :src=\"firstVideo.content\" type=\"video/mp4\">\n\t Your browser does not support the video tag.\n\t </video>\n\t <!-- </div> -->\n\t\t</template>\n\n\t\t\n\t\t<FooterBlogpost \n\t\t\tclass=\"pd-t-zero pd-medium\" \n\t\t\t:blogpost=\"blogpost\" :user=\"user\"\n\t\t/>\n\t\n\t</article>\n\n</template>\n\n\n<script setup=\"props\">\n\timport CardHeader from '@pf/src/modules/globals/views/components/blocks/CardHeader.vue'\n\timport FooterBlogpost from '@pf/src/modules/community/components/blocks/FooterBlogpost.vue'\t\n\n\timport Image from '@pf/src/modules/constructor/components/elements/Image.vue';\n\n import Text from '@pf/src/components/Text/Text.vue'\n\timport Chips from '@pf/src/components/Chips/Chips.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\n\timport { computed } from 'vue'\n\n\timport { useRouter } from 'vue-router'\n\n\tconst router = useRouter()\n\n\tconst props = defineProps({\n\t\tblogpost: {\n\t\t\ttype: Object,\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\thideDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thideTitle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n const firstImage = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'ImageUpload');\n\t});\n\n\tconst firstVideo = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Video');\n\t});\n\n\tconst firstText = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Textarea');\n\t});\n\n</script>\n\n<style lang=\"scss\">\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IC,UAAM,SAAS,UAAW;AAE1B,UAAM,QAAQ;AAoBb,UAAM,aAAa,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,aAAa;AAAA,IAC3E,CAAE;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,OAAO;AAAA,IACrE,CAAE;AAED,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,UAAU;AAAA,IACxE,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardBlogpost.vue.js","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative bg-light radius-big flex-column flex\"\n\t>\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-cover w-100 h-max-20r\">\n\t <source :src=\"firstVideo.content\" type=\"video/mp4\">\n\t Your browser does not support the video tag.\n\t </video>\n\t <!-- </div> -->\n\t\t</template>\n\n\t\t\n\t\t<FooterBlogpost \n\t\t\tclass=\"pd-t-zero pd-medium\" \n\t\t\t:blogpost=\"blogpost\" :user=\"user\"\n\t\t/>\n\t\n\t</article>\n\n</template>\n\n\n<script setup=\"props\">\n\timport CardHeader from '@pf/src/modules/globals/views/components/blocks/CardHeader.vue'\n\timport FooterBlogpost from '@pf/src/modules/community/components/blocks/FooterBlogpost.vue'\t\n\n\timport Image from '@pf/src/modules/constructor/components/elements/Image.vue';\n\n import Text from '@pf/src/components/Text/Text.vue'\n\timport Chips from '@pf/src/components/Chips/Chips.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\n\timport { computed } from 'vue'\n\n\timport { useRouter } from 'vue-router'\n\n\tconst router = useRouter()\n\n\tconst props = defineProps({\n\t\tblogpost: {\n\t\t\ttype: Object,\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\thideDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thideTitle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n const firstImage = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'ImageUpload');\n\t});\n\n\tconst firstVideo = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Video');\n\t});\n\n\tconst firstText = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Textarea');\n\t});\n\n</script>\n\n<style lang=\"scss\">\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHC,UAAM,SAAS,UAAW;AAE1B,UAAM,QAAQ;AAoBb,UAAM,aAAa,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,aAAa;AAAA,IAC3E,CAAE;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,OAAO;AAAA,IACrE,CAAE;AAED,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,UAAU;AAAA,IACxE,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -8,7 +8,6 @@ const Feed = require("../../../../components/Feed/Feed.vue.cjs");
8
8
  const CardBlogpost = require("../blocks/CardBlogpost.vue.cjs");
9
9
  const blogposts = require("../../store/blogposts.cjs");
10
10
  const auth = require("../../../auth/views/store/auth.cjs");
11
- const _hoisted_1 = { class: "bg-white" };
12
11
  const _sfc_main = {
13
12
  __name: "Blog",
14
13
  setup(__props) {
@@ -38,7 +37,7 @@ const _sfc_main = {
38
37
  router.replace({ query });
39
38
  }, { deep: true });
40
39
  return (_ctx, _cache) => {
41
- return vue.openBlock(), vue.createElementBlock("section", _hoisted_1, [
40
+ return vue.openBlock(), vue.createElementBlock("section", null, [
42
41
  vue.createVNode(Feed.default, {
43
42
  sort: blogposts.state.sort,
44
43
  "onUpdate:sort": _cache[0] || (_cache[0] = ($event) => blogposts.state.sort = $event),