@ozdao/prometheus-framework 0.2.211 → 0.2.213

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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":"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"}
@@ -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),