{"version":3,"file":"js/app.cbb51cca.js","mappings":"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","sources":["webpack://frontend/./node_modules/.pnpm/moment@2.29.4/node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://frontend/./src/const.ts","webpack://frontend/./src/App.vue?df62","webpack://frontend/./src/components/ui/SnackBar.vue?c5ec","webpack://frontend/./src/components/ui/SnackBar.vue?8779","webpack://frontend/./src/components/ui/SnackBar.vue","webpack://frontend/./src/components/NavBar.vue?0e4f","webpack://frontend/./src/components/ui/SearchBar.vue?05ea","webpack://frontend/./src/stores/searchStore.ts","webpack://frontend/./src/components/ui/SearchBar.vue?bd89","webpack://frontend/./src/components/ui/SearchBar.vue","webpack://frontend/./src/components/NavBar.vue?7be1","webpack://frontend/./src/components/NavBar.vue","webpack://frontend/./src/App.vue?9d44","webpack://frontend/./src/App.vue","webpack://frontend/./src/main.ts","webpack://frontend/./src/views/Home/BaseHome.vue?c340","webpack://frontend/./src/views/BaseView.vue?bbd9","webpack://frontend/./src/views/BaseView.vue?ea3c","webpack://frontend/./src/views/BaseView.vue","webpack://frontend/./src/components/ui/FullDialog.vue?62de","webpack://frontend/./src/components/ui/FullDialog.vue?706b","webpack://frontend/./src/components/ui/FullDialog.vue","webpack://frontend/./src/components/PostEditor/PostEditor.vue?4b5f","webpack://frontend/./src/models/factories.ts","webpack://frontend/./src/components/ui/TextEditor.vue?5471","webpack://frontend/./src/components/ui/TextEditor.vue?2bc7","webpack://frontend/./src/components/ui/TextEditor.vue","webpack://frontend/./src/components/ui/SegmentedButtons.vue?21e8","webpack://frontend/./src/components/ui/SegmentedButtons.vue?ac90","webpack://frontend/./src/components/ui/SegmentedButtons.vue","webpack://frontend/./src/components/ui/VideoInput.vue?7f56","webpack://frontend/./src/components/ui/VideoInput.vue?a61a","webpack://frontend/./src/components/ui/VideoInput.vue","webpack://frontend/./src/components/PostEditor/SourceList.vue?30a8","webpack://frontend/./src/components/PostEditor/SourceList.vue?153b","webpack://frontend/./src/components/PostEditor/SourceList.vue","webpack://frontend/./src/components/PostEditor/VideoThumbnail.vue?139b","webpack://frontend/./src/components/PostEditor/VideoThumbnail.vue?3000","webpack://frontend/./src/components/PostEditor/VideoThumbnail.vue","webpack://frontend/./src/components/PostEditor/PostEditor.vue?1500","webpack://frontend/./src/components/PostEditor/PostEditor.vue","webpack://frontend/./src/composables/useSections.ts","webpack://frontend/./src/composables/usePosts.ts","webpack://frontend/./src/components/PostList.vue?6cd2","webpack://frontend/./src/components/ui/MDDialog.vue?4ca7","webpack://frontend/./src/mixins.ts","webpack://frontend/./src/components/ui/MDDialog.vue?b973","webpack://frontend/./src/components/ui/MDDialog.vue","webpack://frontend/./src/components/Post/FactCheckVoter.vue?7989","webpack://frontend/./src/components/Post/FactCheckVoter.vue?b48d","webpack://frontend/./src/components/Post/FactCheckVoter.vue","webpack://frontend/./src/components/PostList.vue?5a70","webpack://frontend/./src/components/PostList.vue","webpack://frontend/./src/views/Home/BaseHome.vue?ce0b","webpack://frontend/./src/views/Home/BaseHome.vue","webpack://frontend/./src/views/Profile/UserProfile.vue?805c","webpack://frontend/./src/composables/useUser.ts","webpack://frontend/./src/components/Sections/SectionSorter.vue?5524","webpack://frontend/./src/components/Sections/SectionSorter.vue?8d0f","webpack://frontend/./src/components/Sections/SectionSorter.vue","webpack://frontend/./src/views/Profile/UserProfile.vue?b298","webpack://frontend/./src/views/Profile/UserProfile.vue","webpack://frontend/./src/views/Login.vue?c93c","webpack://frontend/./src/views/Login.vue?a54d","webpack://frontend/./src/views/Login.vue","webpack://frontend/./src/views/Register.vue?3e9d","webpack://frontend/./src/components/ui/CalendarInput.vue?42a0","webpack://frontend/./src/components/ui/CalendarInput.vue?632f","webpack://frontend/./src/components/ui/CalendarInput.vue","webpack://frontend/./src/views/Register.vue?0c1b","webpack://frontend/./src/views/Register.vue","webpack://frontend/./src/views/Profile/ProfileSettings.vue?1f2e","webpack://frontend/./src/components/ui/AvatarSelector.vue?8702","webpack://frontend/./src/components/ui/AvatarSelector.vue?4161","webpack://frontend/./src/components/ui/AvatarSelector.vue","webpack://frontend/./src/views/Profile/ProfileSettings.vue?3225","webpack://frontend/./src/views/Profile/ProfileSettings.vue","webpack://frontend/./src/components/Post/PostDetail.vue?6a49","webpack://frontend/./src/components/Post/PostDetail.vue?9a6c","webpack://frontend/./src/components/Post/PostDetail.vue","webpack://frontend/./src/router/index.ts","webpack://frontend/./src/mock/posts.ts","webpack://frontend/./src/mock/sections.ts","webpack://frontend/./src/stores/mainStore.ts","webpack://frontend/./src/utils.ts","webpack://frontend/./src/components/Post/PostPreview.vue?248e","webpack://frontend/./src/components/Post/PostComment.vue?0982","webpack://frontend/./src/components/Post/PostComment.vue?289b","webpack://frontend/./src/components/Post/PostComment.vue","webpack://frontend/./src/components/Post/CommentEditor.vue?44d1","webpack://frontend/./src/components/Post/CommentEditor.vue?3bf5","webpack://frontend/./src/components/Post/CommentEditor.vue","webpack://frontend/./src/components/Post/VerticalFactCheck.vue","webpack://frontend/./src/components/Post/VerticalFactCheck.vue?dab9","webpack://frontend/./src/components/Post/SharedPost.vue?911f","webpack://frontend/./src/components/Post/SharedPost.vue?2b6f","webpack://frontend/./src/components/Post/SharedPost.vue","webpack://frontend/./src/components/Post/PostPreview.vue?0982","webpack://frontend/./src/components/Post/PostPreview.vue","webpack://frontend/./src/components/Post/VideoPlayer.vue?0964","webpack://frontend/./src/components/Post/VideoPlayer.vue?f260","webpack://frontend/./src/components/Post/VideoPlayer.vue","webpack://frontend/./src/components/Sections/SectionList.vue?0a0e","webpack://frontend/./src/components/Sections/SectionListItem.vue?ee08","webpack://frontend/./src/components/Sections/SectionListItem.vue?cf24","webpack://frontend/./src/components/Sections/SectionListItem.vue","webpack://frontend/./src/components/Sections/SectionList.vue?a0f8","webpack://frontend/./src/components/Sections/SectionList.vue","webpack://frontend/./src/components/UserAvatar.vue?0008","webpack://frontend/./src/components/UserAvatar.vue?e3c1","webpack://frontend/./src/components/UserAvatar.vue","webpack://frontend/./src/components/ui/DropdownMenu.vue?83de","webpack://frontend/./src/components/ui/DropdownMenu.vue?8971","webpack://frontend/./src/components/ui/DropdownMenu.vue","webpack://frontend/./src/components/ui/LoadingSpinner.vue?b6a2","webpack://frontend/./src/components/ui/LoadingSpinner.vue?f053","webpack://frontend/./src/components/ui/LoadingSpinner.vue","webpack://frontend/webpack/bootstrap","webpack://frontend/webpack/runtime/chunk loaded","webpack://frontend/webpack/runtime/compat get default export","webpack://frontend/webpack/runtime/define property getters","webpack://frontend/webpack/runtime/ensure chunk","webpack://frontend/webpack/runtime/get javascript chunk filename","webpack://frontend/webpack/runtime/get mini-css chunk filename","webpack://frontend/webpack/runtime/global","webpack://frontend/webpack/runtime/hasOwnProperty shorthand","webpack://frontend/webpack/runtime/load script","webpack://frontend/webpack/runtime/make namespace object","webpack://frontend/webpack/runtime/node module decorator","webpack://frontend/webpack/runtime/publicPath","webpack://frontend/webpack/runtime/jsonp chunk loading","webpack://frontend/webpack/startup"],"sourcesContent":["var map = {\n\t\"./af\": 8965,\n\t\"./af.js\": 8965,\n\t\"./ar\": 6765,\n\t\"./ar-dz\": 2541,\n\t\"./ar-dz.js\": 2541,\n\t\"./ar-kw\": 2497,\n\t\"./ar-kw.js\": 2497,\n\t\"./ar-ly\": 9205,\n\t\"./ar-ly.js\": 9205,\n\t\"./ar-ma\": 1320,\n\t\"./ar-ma.js\": 1320,\n\t\"./ar-sa\": 8823,\n\t\"./ar-sa.js\": 8823,\n\t\"./ar-tn\": 1281,\n\t\"./ar-tn.js\": 1281,\n\t\"./ar.js\": 6765,\n\t\"./az\": 7269,\n\t\"./az.js\": 7269,\n\t\"./be\": 7431,\n\t\"./be.js\": 7431,\n\t\"./bg\": 4318,\n\t\"./bg.js\": 4318,\n\t\"./bm\": 5071,\n\t\"./bm.js\": 5071,\n\t\"./bn\": 9855,\n\t\"./bn-bd\": 4758,\n\t\"./bn-bd.js\": 4758,\n\t\"./bn.js\": 9855,\n\t\"./bo\": 2430,\n\t\"./bo.js\": 2430,\n\t\"./br\": 7050,\n\t\"./br.js\": 7050,\n\t\"./bs\": 1582,\n\t\"./bs.js\": 1582,\n\t\"./ca\": 201,\n\t\"./ca.js\": 201,\n\t\"./cs\": 4476,\n\t\"./cs.js\": 4476,\n\t\"./cv\": 6409,\n\t\"./cv.js\": 6409,\n\t\"./cy\": 1503,\n\t\"./cy.js\": 1503,\n\t\"./da\": 5980,\n\t\"./da.js\": 5980,\n\t\"./de\": 8042,\n\t\"./de-at\": 6991,\n\t\"./de-at.js\": 6991,\n\t\"./de-ch\": 5953,\n\t\"./de-ch.js\": 5953,\n\t\"./de.js\": 8042,\n\t\"./dv\": 610,\n\t\"./dv.js\": 610,\n\t\"./el\": 7879,\n\t\"./el.js\": 7879,\n\t\"./en-au\": 2949,\n\t\"./en-au.js\": 2949,\n\t\"./en-ca\": 8404,\n\t\"./en-ca.js\": 8404,\n\t\"./en-gb\": 4103,\n\t\"./en-gb.js\": 4103,\n\t\"./en-ie\": 7061,\n\t\"./en-ie.js\": 7061,\n\t\"./en-il\": 5761,\n\t\"./en-il.js\": 5761,\n\t\"./en-in\": 34,\n\t\"./en-in.js\": 34,\n\t\"./en-nz\": 6700,\n\t\"./en-nz.js\": 6700,\n\t\"./en-sg\": 5852,\n\t\"./en-sg.js\": 5852,\n\t\"./eo\": 6043,\n\t\"./eo.js\": 6043,\n\t\"./es\": 7807,\n\t\"./es-do\": 9271,\n\t\"./es-do.js\": 9271,\n\t\"./es-mx\": 4649,\n\t\"./es-mx.js\": 4649,\n\t\"./es-us\": 2924,\n\t\"./es-us.js\": 2924,\n\t\"./es.js\": 7807,\n\t\"./et\": 1549,\n\t\"./et.js\": 1549,\n\t\"./eu\": 1580,\n\t\"./eu.js\": 1580,\n\t\"./fa\": 8342,\n\t\"./fa.js\": 8342,\n\t\"./fi\": 748,\n\t\"./fi.js\": 748,\n\t\"./fil\": 4994,\n\t\"./fil.js\": 4994,\n\t\"./fo\": 1167,\n\t\"./fo.js\": 1167,\n\t\"./fr\": 9078,\n\t\"./fr-ca\": 5249,\n\t\"./fr-ca.js\": 5249,\n\t\"./fr-ch\": 8250,\n\t\"./fr-ch.js\": 8250,\n\t\"./fr.js\": 9078,\n\t\"./fy\": 5006,\n\t\"./fy.js\": 5006,\n\t\"./ga\": 1443,\n\t\"./ga.js\": 1443,\n\t\"./gd\": 8295,\n\t\"./gd.js\": 8295,\n\t\"./gl\": 9686,\n\t\"./gl.js\": 9686,\n\t\"./gom-deva\": 9722,\n\t\"./gom-deva.js\": 9722,\n\t\"./gom-latn\": 4467,\n\t\"./gom-latn.js\": 4467,\n\t\"./gu\": 2561,\n\t\"./gu.js\": 2561,\n\t\"./he\": 5060,\n\t\"./he.js\": 5060,\n\t\"./hi\": 5023,\n\t\"./hi.js\": 5023,\n\t\"./hr\": 3427,\n\t\"./hr.js\": 3427,\n\t\"./hu\": 6806,\n\t\"./hu.js\": 6806,\n\t\"./hy-am\": 5578,\n\t\"./hy-am.js\": 5578,\n\t\"./id\": 5986,\n\t\"./id.js\": 5986,\n\t\"./is\": 7146,\n\t\"./is.js\": 7146,\n\t\"./it\": 8432,\n\t\"./it-ch\": 4195,\n\t\"./it-ch.js\": 4195,\n\t\"./it.js\": 8432,\n\t\"./ja\": 5801,\n\t\"./ja.js\": 5801,\n\t\"./jv\": 7828,\n\t\"./jv.js\": 7828,\n\t\"./ka\": 2341,\n\t\"./ka.js\": 2341,\n\t\"./kk\": 6710,\n\t\"./kk.js\": 6710,\n\t\"./km\": 9114,\n\t\"./km.js\": 9114,\n\t\"./kn\": 7334,\n\t\"./kn.js\": 7334,\n\t\"./ko\": 8383,\n\t\"./ko.js\": 8383,\n\t\"./ku\": 7177,\n\t\"./ku.js\": 7177,\n\t\"./ky\": 69,\n\t\"./ky.js\": 69,\n\t\"./lb\": 9584,\n\t\"./lb.js\": 9584,\n\t\"./lo\": 9431,\n\t\"./lo.js\": 9431,\n\t\"./lt\": 8892,\n\t\"./lt.js\": 8892,\n\t\"./lv\": 1519,\n\t\"./lv.js\": 1519,\n\t\"./me\": 5382,\n\t\"./me.js\": 5382,\n\t\"./mi\": 1825,\n\t\"./mi.js\": 1825,\n\t\"./mk\": 7395,\n\t\"./mk.js\": 7395,\n\t\"./ml\": 9884,\n\t\"./ml.js\": 9884,\n\t\"./mn\": 4760,\n\t\"./mn.js\": 4760,\n\t\"./mr\": 8240,\n\t\"./mr.js\": 8240,\n\t\"./ms\": 3947,\n\t\"./ms-my\": 2466,\n\t\"./ms-my.js\": 2466,\n\t\"./ms.js\": 3947,\n\t\"./mt\": 2226,\n\t\"./mt.js\": 2226,\n\t\"./my\": 3535,\n\t\"./my.js\": 3535,\n\t\"./nb\": 2708,\n\t\"./nb.js\": 2708,\n\t\"./ne\": 5442,\n\t\"./ne.js\": 5442,\n\t\"./nl\": 7481,\n\t\"./nl-be\": 1352,\n\t\"./nl-be.js\": 1352,\n\t\"./nl.js\": 7481,\n\t\"./nn\": 586,\n\t\"./nn.js\": 586,\n\t\"./oc-lnc\": 3908,\n\t\"./oc-lnc.js\": 3908,\n\t\"./pa-in\": 2130,\n\t\"./pa-in.js\": 2130,\n\t\"./pl\": 37,\n\t\"./pl.js\": 37,\n\t\"./pt\": 8705,\n\t\"./pt-br\": 7998,\n\t\"./pt-br.js\": 7998,\n\t\"./pt.js\": 8705,\n\t\"./ro\": 4909,\n\t\"./ro.js\": 4909,\n\t\"./ru\": 3001,\n\t\"./ru.js\": 3001,\n\t\"./sd\": 327,\n\t\"./sd.js\": 327,\n\t\"./se\": 3067,\n\t\"./se.js\": 3067,\n\t\"./si\": 7123,\n\t\"./si.js\": 7123,\n\t\"./sk\": 4590,\n\t\"./sk.js\": 4590,\n\t\"./sl\": 1643,\n\t\"./sl.js\": 1643,\n\t\"./sq\": 8752,\n\t\"./sq.js\": 8752,\n\t\"./sr\": 828,\n\t\"./sr-cyrl\": 8398,\n\t\"./sr-cyrl.js\": 8398,\n\t\"./sr.js\": 828,\n\t\"./ss\": 4886,\n\t\"./ss.js\": 4886,\n\t\"./sv\": 9494,\n\t\"./sv.js\": 9494,\n\t\"./sw\": 4218,\n\t\"./sw.js\": 4218,\n\t\"./ta\": 81,\n\t\"./ta.js\": 81,\n\t\"./te\": 4208,\n\t\"./te.js\": 4208,\n\t\"./tet\": 2592,\n\t\"./tet.js\": 2592,\n\t\"./tg\": 3508,\n\t\"./tg.js\": 3508,\n\t\"./th\": 4223,\n\t\"./th.js\": 4223,\n\t\"./tk\": 5434,\n\t\"./tk.js\": 5434,\n\t\"./tl-ph\": 8618,\n\t\"./tl-ph.js\": 8618,\n\t\"./tlh\": 8429,\n\t\"./tlh.js\": 8429,\n\t\"./tr\": 7615,\n\t\"./tr.js\": 7615,\n\t\"./tzl\": 6196,\n\t\"./tzl.js\": 6196,\n\t\"./tzm\": 1012,\n\t\"./tzm-latn\": 482,\n\t\"./tzm-latn.js\": 482,\n\t\"./tzm.js\": 1012,\n\t\"./ug-cn\": 2346,\n\t\"./ug-cn.js\": 2346,\n\t\"./uk\": 8746,\n\t\"./uk.js\": 8746,\n\t\"./ur\": 9625,\n\t\"./ur.js\": 9625,\n\t\"./uz\": 3093,\n\t\"./uz-latn\": 746,\n\t\"./uz-latn.js\": 746,\n\t\"./uz.js\": 3093,\n\t\"./vi\": 2969,\n\t\"./vi.js\": 2969,\n\t\"./x-pseudo\": 3454,\n\t\"./x-pseudo.js\": 3454,\n\t\"./yo\": 5855,\n\t\"./yo.js\": 5855,\n\t\"./zh-cn\": 6599,\n\t\"./zh-cn.js\": 6599,\n\t\"./zh-hk\": 1228,\n\t\"./zh-hk.js\": 1228,\n\t\"./zh-mo\": 2608,\n\t\"./zh-mo.js\": 2608,\n\t\"./zh-tw\": 3574,\n\t\"./zh-tw.js\": 3574\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8660;","import { RouteLocationRaw } from \"vue-router\";\nimport { PostType } from \"./models/interfaces\";\nimport { VariantJSConfiguration } from \"@variantjs/vue\";\n\nexport const MOCK_SERVICE_ACTIVE = false;\n\nexport interface PostFilter {\n post_type?: PostType;\n section?: string;\n author?: string;\n saved_by?: string;\n}\n\nexport interface SectionFilter {\n parent?: string | null;\n relevant_for?: string;\n}\n\nexport interface TabItem {\n label: string;\n value: RouteLocationRaw;\n}\n\nexport const configuration: VariantJSConfiguration = {\n TButton: {\n // The fixed classes will never change and will be merged with the `classes` value or the active variant\n fixedClasses:\n \"rounded-full inline-flex items-center transition ease-in-out duration-150 disabled:cursor-not-allowed disabled:opacity-80\",\n // Classes used when any variant is active\n classes:\n \"bg-primary py-1 px-4 hover:bg-primary-dark shadow-md active:shadow-sm active:bg-primary-darker focus:border-primary-darker text-on-primary\",\n variants: {\n secondary: {\n classes:\n \"bg-secondary py-1 px-4 hover:bg-secondary-dark active:bg-secondary-darker focus:border-secondary-darker text-on-secondary\",\n },\n icon: {\n classes:\n \"bg-transparent rounded-full p-2 active:bg-gray-200 focus:bg-gray-100 shadow-none hover:bg-gray-100\",\n },\n text: {\n classes:\n \"bg-transparent rounded-full py-2 px-4 active:bg-gray-200 focus:bg-gray-100 shadow-none hover:bg-gray-100\",\n },\n tab: {\n classes:\n \"bg-transparent px-2 py-2 rounded-sm hover:bg-secondary hover:bg-opacity-5 hover:text-secondary-darker text-secondary-dark shadow-none hover:shadow-none focus:shadow-none active:shadow-none\",\n },\n \"tab-sm\": {\n classes:\n \"bg-transparent px-1 py-1 rounded-sm hover:bg-secondary hover:bg-opacity-5 hover:text-secondary-darker text-secondary-dark shadow-none hover:shadow-none focus:shadow-none active:shadow-none\",\n },\n // A red variant of the button (applied when ``)\n error: {\n classes:\n \"text-white bg-red-600 hover:bg-red-500 focus:border-red-700 active:bg-red-700 text-sm font-medium border border-transparent px-3 py-2 rounded-md\",\n },\n // A green variant of the button (applied when ``)\n success: {\n classes:\n \"text-white bg-green-600 hover:bg-green-500 focus:border-green-700 active:bg-green-700 text-sm font-medium border border-transparent px-3 py-2 rounded-md\",\n },\n // ...unlimited variants\n },\n // ...More settings\n },\n TInput: {\n fixedClasses:\n \"block w-full px-3 py-2 transition duration-100 ease-in-out border rounded shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\",\n classes:\n \"text-black placeholder-gray-400 bg-white border-gray-300 focus:border-blue-500 \",\n variants: {\n danger: {\n classes: \"border-red-300 bg-red-50 placeholder-red-200 text-red-900\",\n },\n success: {\n classes:\n \"border-green-300 bg-green-50 placeholder-gray-400 text-green-900\",\n },\n search: {\n classes: \"rounded-full\",\n },\n },\n },\n TTag: {\n fixedClasses: \"\",\n classes: \"\",\n variants: {\n title: {\n classes: \"text-2xl leading-8 font-extrabold text-gray-900\",\n },\n subtitle: { classes: \"text-lg leading-6 font-medium text-gray-900\" },\n error: { classes: \"text-red-500\" },\n badge: {\n classes:\n \"inline-flex items-center px-3 py-0.5 rounded-full text-xs font-medium leading-4 bg-gray-100 text-gray-800\",\n },\n avatar: {\n classes:\n \"inline-flex items-center justify-center h-10 w-10 rounded-full bg-gray-500 overflow-hidden leading-none text-center\",\n },\n },\n },\n TCard: {\n fixedClasses: {\n wrapper: \"border rounded \",\n body: \"p-4\",\n header: \"border-b p-3 rounded-t\",\n footer: \"border-t p-3 rounded-b\",\n },\n classes: {\n wrapper: \"bg-gray-50 border-gray-50\",\n body: \"\",\n header: \"border-gray-100\",\n footer: \"border-gray-100\",\n },\n variants: {\n danger: {\n wrapper: \"bg-red-50 text-red-700 border-red-200\",\n header: \"border-red-200 text-red-700\",\n footer: \"border-red-200 text-red-700\",\n },\n },\n },\n TSelect: {\n fixedClasses:\n \"block w-full pl-3 pr-10 py-2 transition duration-100 ease-in-out border rounded shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\",\n classes:\n \"text-black placeholder-gray-400 bg-white border-gray-300 focus:border-blue-500 \",\n variants: {\n danger: {\n classes: \"border-red-300 bg-red-50 placeholder-red-200 text-red-900\",\n },\n success: {\n classes:\n \"border-green-300 bg-green-50 placeholder-gray-400 text-green-900\",\n },\n },\n },\n TRichSelect: {\n fixedClasses: {\n wrapper: \"relative\",\n buttonWrapper: \"inline-block relative w-full\",\n selectButton:\n \"w-full flex text-left justify-between items-center px-3 py-2 text-black transition duration-100 ease-in-out border rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\",\n selectButtonLabel: \"block truncate\",\n selectButtonPlaceholder: \"block truncate\",\n selectButtonIcon: \"fill-current flex-shrink-0 ml-1 h-4 w-4\",\n selectButtonClearButton:\n \"rounded flex flex-shrink-0 items-center justify-center absolute right-0 top-0 m-2 h-6 w-6 transition duration-100 ease-in-out\",\n selectButtonClearIcon: \"fill-current h-3 w-3\",\n dropdown:\n \"absolute w-full z-10 -mt-1 absolute border-b border-l border-r rounded-b shadow-sm z-10\",\n dropdownFeedback: \"\",\n loadingMoreResults: \"\",\n optionsList: \"overflow-auto\",\n searchWrapper: \"inline-block w-full\",\n searchBox: \"inline-block w-full\",\n optgroup: \"\",\n option: \"cursor-pointer\",\n disabledOption: \"opacity-50 cursor-not-allowed\",\n highlightedOption: \"cursor-pointer\",\n selectedOption: \"cursor-pointer\",\n selectedHighlightedOption: \"cursor-pointer\",\n optionContent: \"\",\n optionLabel: \"truncate block\",\n selectedIcon: \"fill-current h-4 w-4\",\n enterClass: \"\",\n enterActiveClass: \"\",\n enterToClass: \"\",\n leaveClass: \"\",\n leaveActiveClass: \"\",\n leaveToClass: \"\",\n },\n classes: {\n wrapper: \"\",\n buttonWrapper: \"\",\n selectButton: \"bg-white border-gray-300\",\n selectButtonLabel: \"\",\n selectButtonPlaceholder: \"text-gray-400\",\n selectButtonIcon: \"text-gray-600\",\n selectButtonClearButton: \"hover:bg-blue-100 text-gray-600\",\n selectButtonClearIcon: \"\",\n dropdown: \"bg-white border-gray-300\",\n dropdownFeedback: \"pb-2 px-3 text-gray-400 text-sm\",\n loadingMoreResults: \"pb-2 px-3 text-gray-400 text-sm\",\n optionsList: \"\",\n searchWrapper: \"p-2 placeholder-gray-400\",\n searchBox:\n \"px-3 py-2 bg-gray-50 text-sm rounded border focus:outline-none focus:shadow-outline border-gray-300\",\n optgroup: \"text-gray-400 uppercase text-xs py-1 px-2 font-semibold\",\n option: \"w-full\",\n disabledOption: \"\",\n highlightedOption: \"bg-secondary bg-opacity-10\",\n selectedOption: \" bg-secondary font-medium text-white\",\n selectedHighlightedOption: \" bg-secondary font-medium text-white\",\n optionContent: \"flex items-start space-x-2 px-3 py-2\",\n optionLabel: \"w-full flex justify-start\",\n selectedIcon: \"\",\n enterClass: \"opacity-0\",\n enterActiveClass: \"transition ease-out duration-100\",\n enterToClass: \"opacity-100\",\n leaveClass: \"opacity-100\",\n leaveActiveClass: \"transition ease-in duration-75\",\n leaveToClass: \"opacity-0\",\n },\n variants: {\n danger: {\n selectButton: \"border-red-300 bg-red-50 text-red-900\",\n selectButtonPlaceholder: \"text-red-200\",\n selectButtonIcon: \"text-red-500\",\n selectButtonClearButton: \"hover:bg-red-200 text-red-500\",\n dropdown: \"bg-red-50 border-red-300\",\n },\n success: {\n selectButton: \"border-green-300 bg-green-50 text-green-900\",\n selectButtonIcon: \"text-green-500\",\n selectButtonClearButton: \"hover:bg-green-200 text-green-500\",\n dropdown: \"bg-green-50 border-green-300\",\n },\n },\n },\n \"t-textarea\": {\n props: {\n fixedClasses:\n \"block w-full px-3 py-2 transition duration-100 ease-in-out border rounded shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\",\n classes:\n \"text-black placeholder-gray-400 bg-white border-gray-300 focus:border-blue-500 \",\n variants: {\n danger: \"border-red-300 bg-red-50 placeholder-red-200 text-red-900\",\n success:\n \"border-green-300 bg-green-50 placeholder-gray-400 text-green-900\",\n },\n },\n },\n TRadio: {\n fixedClasses:\n \"transition duration-100 ease-in-out shadow-sm focus:border-blue-500 focus:outline-none focus:ring-opacity-50 focus:ring-offset-0 disabled:opacity-50 disabled:cursor-not-allowed\",\n classes: \"text-blue-500 border-gray-300\",\n // variants: {\n // error: \"text-red-500 border-red-300\",\n // success: \"text-green-500 border-green-300\",\n // },\n },\n \"t-checkbox\": {\n props: {\n fixedClasses:\n \"transition duration-100 ease-in-out rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 focus:ring-offset-0 disabled:opacity-50 disabled:cursor-not-allowed\",\n classes: \"text-blue-500 border-gray-300 \",\n variants: {\n error: \"text-red-500 border-red-300\",\n success: \"text-green-500 border-green-300\",\n },\n },\n },\n \"t-input-group\": {\n props: {\n fixedClasses: {\n wrapper: \"\",\n label: \"block\",\n body: \"\",\n feedback: \" text-sm text-sm\",\n description: \"text-gray-400 text-sm\",\n },\n classes: {\n wrapper: \"\",\n label: \"\",\n body: \"\",\n feedback: \"text-gray-400\",\n description: \"text-gray-400\",\n },\n variants: {\n danger: {\n label: \"text-red-500\",\n feedback: \"text-red-500\",\n },\n success: {\n label: \"text-green-500\",\n feedback: \"text-green-500\",\n },\n },\n },\n },\n \"t-datepicker\": {\n props: {\n fixedClasses: {\n navigator: \"flex\",\n navigatorViewButton: \"flex items-center\",\n navigatorViewButtonIcon: \"flex-shrink-0 h-5 w-5\",\n navigatorViewButtonBackIcon: \"flex-shrink-0 h-5 w-5\",\n navigatorLabel: \"flex items-center py-1\",\n navigatorPrevButtonIcon: \"h-6 w-6 inline-flex\",\n navigatorNextButtonIcon: \"h-6 w-6 inline-flex\",\n inputWrapper: \"relative\",\n viewGroup: \"inline-flex flex-wrap\",\n view: \"w-64\",\n calendarDaysWrapper: \"grid grid-cols-7\",\n calendarHeaderWrapper: \"grid grid-cols-7\",\n monthWrapper: \"grid grid-cols-4\",\n yearWrapper: \"grid grid-cols-4\",\n input:\n \"block w-full px-3 py-2 transition duration-100 ease-in-out border rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\",\n clearButton:\n \"flex flex-shrink-0 items-center justify-center absolute right-0 top-0 m-2 h-6 w-6\",\n clearButtonIcon: \"fill-current h-3 w-3\",\n },\n classes: {\n wrapper: \"flex flex-col\",\n dropdownWrapper: \"relative z-10\",\n dropdown:\n \"origin-top-left absolute rounded shadow bg-white overflow-hidden mt-1\",\n enterClass: \"opacity-0 scale-95\",\n enterActiveClass: \"transition transform ease-out duration-100\",\n enterToClass: \"opacity-100 scale-100\",\n leaveClass: \"opacity-100 scale-100\",\n leaveActiveClass: \"transition transform ease-in duration-75\",\n leaveToClass: \"opacity-0 scale-95\",\n inlineWrapper: \"\",\n inlineViews: \"rounded bg-white border mt-1 inline-flex\",\n inputWrapper: \"\",\n input: \"text-black placeholder-gray-400 border-gray-300\",\n clearButton:\n \"hover:bg-gray-100 rounded transition duration-100 ease-in-out text-gray-600\",\n clearButtonIcon: \"\",\n viewGroup: \"\",\n view: \"\",\n navigator: \"pt-2 px-3\",\n navigatorViewButton:\n \"transition ease-in-out duration-100 inline-flex cursor-pointer rounded-full px-2 py-1 -ml-1 hover:bg-gray-100\",\n navigatorViewButtonIcon: \"fill-current text-gray-400\",\n navigatorViewButtonBackIcon: \"fill-current text-gray-400\",\n navigatorViewButtonMonth: \"text-gray-700 font-semibold\",\n navigatorViewButtonYear: \"text-gray-500 ml-1\",\n navigatorViewButtonYearRange: \"text-gray-500 ml-1\",\n navigatorLabel: \"py-1\",\n navigatorLabelMonth: \"text-gray-700 font-semibold\",\n navigatorLabelYear: \"text-gray-500 ml-1\",\n navigatorPrevButton:\n \"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-100 rounded-full p-1 ml-2 ml-auto disabled:opacity-50 disabled:cursor-not-allowed\",\n navigatorNextButton:\n \"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-100 rounded-full p-1 -mr-1 disabled:opacity-50 disabled:cursor-not-allowed\",\n navigatorPrevButtonIcon: \"text-gray-400\",\n navigatorNextButtonIcon: \"text-gray-400\",\n calendarWrapper: \"px-3 pt-2\",\n calendarHeaderWrapper: \"\",\n calendarHeaderWeekDay:\n \"uppercase text-xs text-gray-500 w-8 h-8 flex items-center justify-center\",\n calendarDaysWrapper: \"\",\n calendarDaysDayWrapper: \"w-full h-8 flex flex-shrink-0 items-center\",\n otherMonthDay:\n \"text-sm rounded-full w-8 h-8 mx-auto hover:bg-blue-100 text-gray-400 disabled:opacity-50 disabled:cursor-not-allowed\",\n emptyDay: \"\",\n inRangeFirstDay:\n \"text-sm bg-blue-500 text-white w-full h-8 rounded-l-full\",\n inRangeLastDay:\n \"text-sm bg-blue-500 text-white w-full h-8 rounded-r-full\",\n inRangeDay:\n \"text-sm bg-blue-200 w-full h-8 disabled:opacity-50 disabled:cursor-not-allowed\",\n selectedDay:\n \"text-sm rounded-full w-8 h-8 mx-auto bg-blue-500 text-white disabled:opacity-50 disabled:cursor-not-allowed\",\n activeDay:\n \"text-sm rounded-full bg-blue-100 w-8 h-8 mx-auto disabled:opacity-50 disabled:cursor-not-allowed\",\n highlightedDay:\n \"text-sm rounded-full bg-blue-200 w-8 h-8 mx-auto disabled:opacity-50 disabled:cursor-not-allowed\",\n day: \"text-sm rounded-full w-8 h-8 mx-auto hover:bg-blue-100 disabled:opacity-50 disabled:cursor-not-allowed\",\n today:\n \"text-sm rounded-full w-8 h-8 mx-auto hover:bg-blue-100 disabled:opacity-50 disabled:cursor-not-allowed border border-blue-500\",\n monthWrapper: \"px-3 pt-2\",\n selectedMonth:\n \"text-sm rounded w-full h-12 mx-auto bg-blue-500 text-white\",\n activeMonth: \"text-sm rounded w-full h-12 mx-auto bg-blue-100\",\n month: \"text-sm rounded w-full h-12 mx-auto hover:bg-blue-100\",\n yearWrapper: \"px-3 pt-2\",\n year: \"text-sm rounded w-full h-12 mx-auto hover:bg-blue-100\",\n selectedYear:\n \"text-sm rounded w-full h-12 mx-auto bg-blue-500 text-white\",\n activeYear: \"text-sm rounded w-full h-12 mx-auto bg-blue-100\",\n },\n variants: {\n danger: {\n input: \"border-red-300 bg-red-50 placeholder-red-200 text-red-900\",\n clearButton: \"hover:bg-red-200 text-red-500\",\n },\n },\n },\n },\n \"t-toggle\": {\n props: {\n fixedClasses: {\n wrapper:\n \"relative inline-flex flex-shrink-0 cursor-pointer transition-colors ease-in-out duration-200\",\n wrapperChecked:\n \"relative inline-flex flex-shrink-0 cursor-pointer transition-colors ease-in-out duration-200 border-2 border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n wrapperDisabled:\n \"relative inline-flex flex-shrink-0 cursor-pointer transition-colors ease-in-out duration-200 opacity-50 cursor-not-allowed\",\n wrapperCheckedDisabled:\n \"relative inline-flex flex-shrink-0 cursor-pointer transition-colors ease-in-out duration-200 opacity-50 cursor-not-allowed border-2 border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n button:\n \"inline-block absolute transform translate-x-0 transition ease-in-out duration-200\",\n buttonChecked:\n \"inline-block absolute transform translate-x-full transition ease-in-out duration-200\",\n checkedPlaceholder: \"inline-block\",\n uncheckedPlaceholder: \"inline-block\",\n },\n classes: {\n wrapper:\n \"bg-gray-100 rounded-full border-2 border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n wrapperChecked: \"bg-blue-500 rounded-full\",\n wrapperDisabled:\n \"bg-gray-100 rounded-full border-2 border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n wrapperCheckedDisabled: \"bg-blue-500\",\n button:\n \"h-5 w-5 rounded-full bg-white shadow flex items-center justify-center text-gray-400 text-xs\",\n buttonChecked:\n \"h-5 w-5 rounded-full bg-white shadow flex items-center justify-center text-blue-500 text-xs\",\n checkedPlaceholder:\n \"rounded-full w-5 h-5 flex items-center justify-center text-gray-400 text-xs\",\n uncheckedPlaceholder:\n \"rounded-full w-5 h-5 flex items-center justify-center text-gray-400 text-xs\",\n },\n variants: {\n danger: {\n wrapperChecked: \"bg-red-500 rounded-full\",\n wrapperCheckedDisabled: \"bg-red-500 rounded-full\",\n },\n success: {\n wrapperChecked: \"bg-green-500 rounded-full\",\n wrapperCheckedDisabled: \"bg-green-500 rounded-full\",\n },\n box: {\n wrapper:\n \"bg-gray-100 rounded-sm border-2 border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n wrapperChecked: \"bg-blue-500 rounded-sm\",\n wrapperCheckedDisabled: \"bg-blue-500 rounded-sm\",\n button:\n \"h-6 w-6 rounded-sm bg-white shadow flex items-center justify-center text-gray-400 text-xs\",\n buttonChecked:\n \"h-6 w-6 rounded-sm bg-white shadow flex items-center justify-center text-blue-500 text-xs\",\n checkedPlaceholder:\n \"rounded-sm w-6 h-6 flex items-center justify-center text-gray-400 text-xs\",\n uncheckedPlaceholder:\n \"rounded-sm w-6 h-6 flex items-center justify-center text-gray-400 text-xs\",\n },\n },\n },\n },\n \"t-alert\": {\n props: {\n fixedClasses: {\n wrapper: \"relative flex items-center p-4 border-l-4 rounded shadow-sm\",\n body: \"flex-grow\",\n close:\n \"absolute relative flex items-center justify-center ml-4 flex-shrink-0 w-6 h-6 transition duration-100 ease-in-out rounded focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n closeIcon: \"fill-current h-4 w-4\",\n },\n classes: {\n wrapper: \"bg-blue-50 border-blue-500\",\n body: \"text-blue-700\",\n close: \"text-blue-500 hover:bg-blue-200\",\n },\n variants: {\n danger: {\n wrapper: \"bg-red-50 border-red-500\",\n body: \"text-red-700\",\n close: \"text-red-500 hover:bg-red-200\",\n },\n success: {\n wrapper: \"bg-green-50 border-green-500\",\n body: \"text-green-700\",\n close: \"text-green-500 hover:bg-green-200\",\n },\n },\n },\n },\n\n \"t-modal\": {\n props: {\n fixedClasses: {\n overlay:\n \"z-40 overflow-auto scrolling-touch left-0 top-0 bottom-0 right-0 w-full h-full fixed bg-opacity-50\",\n wrapper: \"relative mx-auto z-50 max-w-lg px-3 py-12\",\n modal: \"overflow-visible relative rounded\",\n body: \"p-3\",\n header: \"border-b p-3 rounded-t\",\n footer: \" p-3 rounded-b\",\n close:\n \"flex items-center justify-center rounded-full absolute right-0 top-0 -m-3 h-8 w-8 transition duration-100 ease-in-out focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n },\n classes: {\n overlay: \"bg-black\",\n wrapper: \"\",\n modal: \"bg-white shadow\",\n body: \"p-3\",\n header: \"border-gray-100\",\n footer: \"bg-gray-100\",\n close: \"bg-gray-100 text-gray-600 hover:bg-gray-200\",\n closeIcon: \"fill-current h-4 w-4\",\n overlayEnterClass: \"opacity-0\",\n overlayEnterActiveClass: \"transition ease-out duration-100\",\n overlayEnterToClass: \"opacity-100\",\n overlayLeaveClass: \"opacity-100\",\n overlayLeaveActiveClass: \"transition ease-in duration-75\",\n overlayLeaveToClass: \"opacity-0\",\n enterClass: \"\",\n enterActiveClass: \"\",\n enterToClass: \"\",\n leaveClass: \"\",\n leaveActiveClass: \"\",\n leaveToClass: \"\",\n },\n variants: {\n danger: {\n overlay: \"bg-red-100\",\n header: \"border-red-50 text-red-700\",\n close:\n \"bg-red-50 text-red-700 hover:bg-red-200 border-red-100 border\",\n modal: \"bg-white border border-red-100 shadow-lg\",\n footer: \"bg-red-50\",\n },\n },\n },\n },\n \"t-dialog\": {\n props: {\n fixedClasses: {\n overlay:\n \"overflow-auto scrolling-touch left-0 top-0 bottom-0 right-0 w-full h-full fixed z-40 bg-opacity-50\",\n wrapper: \"relative mx-auto\",\n modal: \"overflow-visible relative \",\n close:\n \"flex items-center justify-center rounded-full absolute right-0 top-0 -m-3 h-8 w-8 transition duration-100 ease-in-out focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n dialog: \"overflow-visible relative\",\n iconWrapper:\n \"flex flex-shrink-0 h-12 items-center justify-center rounded-full w-12 mx-auto\",\n icon: \"w-6 h-6\",\n okButton:\n \"block px-4 py-2 text-white transition duration-100 ease-in-out border border-transparent rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed w-full max-w-xs\",\n buttons: \"p-3 flex space-x-4 justify-center bg-gray-100 rounded-b\",\n },\n classes: {\n close: \"bg-gray-100 text-gray-600 hover:bg-gray-200\",\n closeIcon: \"fill-current h-4 w-4\",\n overlay: \"bg-black\",\n wrapper: \"z-50 max-w-lg px-3 py-12\",\n dialog: \"bg-white shadow rounded text-left\",\n body: \"p-3 space-y-3\",\n buttons: \"bg-gray-100\",\n iconWrapper: \"bg-gray-100\",\n icon: \"text-gray-500\",\n content: \"w-full flex justify-center flex-col\",\n titleWrapper: \"\",\n title: \"text-lg font-semibold text-center\",\n textWrapper: \"text-left w-full\",\n text: \"\",\n cancelButton:\n \"block px-4 py-2 transition duration-100 ease-in-out bg-white border border-gray-300 rounded shadow-sm hover:bg-gray-100 focus:border-gray-100 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed w-full max-w-xs\",\n okButton: \"bg-blue-500 hover:bg-blue-600\",\n inputWrapper: \"mt-3 flex items-center space-x-3\",\n input:\n \"block w-full px-3 py-2 text-black placeholder-gray-400 transition duration-100 ease-in-out bg-white border border-gray-300 rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed w-full\",\n select:\n \"block w-full px-3 py-2 text-black placeholder-gray-400 transition duration-100 ease-in-out bg-white border border-gray-300 rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed w-full\",\n radioWrapper: \"flex items-center space-x-2\",\n radio:\n \"text-blue-500 transition duration-100 ease-in-out border-gray-300 shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 focus:ring-offset-0 disabled:opacity-50 disabled:cursor-not-allowed\",\n radioText: \"\",\n checkboxWrapper: \"flex items-center space-x-2\",\n checkbox:\n \"text-blue-500 transition duration-100 ease-in-out border-gray-300 rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 focus:ring-offset-0 disabled:opacity-50 disabled:cursor-not-allowed\",\n checkboxText: \"\",\n errorMessage: \"text-red-500 block text-sm\",\n busyWrapper:\n \"absolute bg-opacity-50 bg-white flex h-full items-center justify-center left-0 top-0 w-full\",\n busyIcon: \"animate-spin h-6 w-6 fill-current text-gray-500\",\n overlayEnterClass: \"opacity-0\",\n overlayEnterActiveClass: \"transition ease-out duration-100\",\n overlayEnterToClass: \"opacity-100\",\n overlayLeaveClass: \"opacity-100\",\n overlayLeaveActiveClass: \"transition ease-in duration-75\",\n overlayLeaveToClass: \"opacity-0\",\n enterClass: \"\",\n enterActiveClass: \"\",\n enterToClass: \"\",\n leaveClass: \"\",\n leaveActiveClass: \"\",\n leaveToClass: \"\",\n },\n variants: {\n danger: {\n overlay: \"bg-red-100\",\n okButton: \"bg-red-500 hover:bg-red-600\",\n iconWrapper: \"bg-red-50\",\n buttons: \"bg-red-50\",\n icon: \"text-red-500\",\n },\n horizontal: {\n body: \"p-3 flex space-x-3\",\n title: \"text-lg font-semibold\",\n },\n },\n },\n },\n \"t-table\": {\n props: {\n classes: {\n table:\n \"min-w-full divide-y divide-gray-100 shadow-sm border-gray-200 border\",\n thead: \"\",\n theadTr: \"\",\n theadTh: \"px-3 py-2 font-semibold text-left bg-gray-100 border-b\",\n tbody: \"bg-white divide-y divide-gray-100\",\n tr: \"\",\n td: \"px-3 py-2 whitespace-no-wrap\",\n tfoot: \"\",\n tfootTr: \"\",\n tfootTd: \"\",\n },\n variants: {\n thin: {\n td: \"p-1 whitespace-no-wrap text-sm\",\n theadTh: \"p-1 font-semibold text-left bg-gray-100 border-b text-sm\",\n },\n },\n },\n },\n \"t-pagination\": {\n props: {\n classes: {\n wrapper: \"table border-collapse text-center bg-white mx-auto shadow-sm\",\n element:\n \"w-8 h-8 border border-gray-200 table-cell hover:border-blue-100\",\n activeElement:\n \"w-8 h-8 border border-gray-200 border-blue-500 table-cell hover:border-blue-600\",\n disabledElement: \"w-8 h-8 border border-gray-200 table-cell\",\n ellipsisElement: \"w-8 h-8 border border-gray-200 hidden md:table-cell\",\n activeButton:\n \"bg-blue-500 w-full h-full text-white hover:bg-blue-600 transition duration-100 ease-in-out focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n disabledButton:\n \"opacity-25 w-full h-full cursor-not-allowed transition duration-100 ease-in-out\",\n button:\n \"hover:bg-blue-100 w-full h-full transition duration-100 ease-in-out focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n ellipsis: \"\",\n },\n variants: {\n rounded: {\n wrapper: \"bg-white mx-auto text-center flex space-x-2\",\n element: \"w-8 h-8 rounded-full\",\n activeElement: \"w-8 h-8 rounded-full\",\n disabledElement: \"w-8 h-8 rounded-full\",\n ellipsisElement: \"w-8 h-8 rounded-full hidden md:inline\",\n activeButton:\n \"border border-blue-500 bg-blue-500 w-full h-full rounded-full text-white hover:bg-blue-600 transition duration-100 ease-in-out focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n disabledButton:\n \"border border-gray-200 opacity-25 w-full h-full rounded-full cursor-not-allowed transition duration-100 ease-in-out\",\n button:\n \"border border-gray-200 hover:bg-blue-100 hover:border-blue-100 rounded-full w-full h-full transition duration-100 ease-in-out focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50\",\n ellipsis: \"\",\n },\n },\n },\n },\n \"t-dropdown\": {\n props: {\n fixedClasses: {\n button:\n \"flex items-center text-white block px-4 py-2 transition duration-100 ease-in-out border border-transparent rounded shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\",\n wrapper: \"inline-flex flex-col\",\n dropdownWrapper: \"relative z-10\",\n dropdown: \"origin-top-left absolute left-0 w-56 rounded shadow mt-1\",\n enterClass: \"opacity-0 scale-95\",\n enterActiveClass: \"transition transform ease-out duration-100\",\n enterToClass: \"opacity-100 scale-100\",\n leaveClass: \"opacity-100 scale-100\",\n leaveActiveClass: \"transition transform ease-in duration-75\",\n leaveToClass: \"opacity-0 scale-95\",\n },\n classes: {\n button: \"bg-blue-500 hover:bg-blue-600\",\n dropdown: \"bg-white\",\n },\n variants: {\n danger: {\n button: \"bg-red-500 hover:bg-red-600\",\n dropdown: \"bg-red-50\",\n },\n },\n },\n },\n};\n\nexport const registrationErrors = {\n \"This password is too short. It must contain at least 8 characters.\":\n \"La password è troppo corta. Deve contenere almeno 8 caratteri.\",\n \"This password is too common.\": \"La password è troppo comune.\",\n \"A user with that username already exists.\":\n \"Nome utente già registrato. Prova a fare il login.\",\n \"user with this email already exists.\":\n \"Indirizzo email già registrato. Prova a fare il login.\",\n \"The two password fields didn't match.\": \"Le due password non coincidono.\",\n \"Enter a valid email address.\": \"L'indirizzo email non è valido.\",\n \"Date has wrong format. Use one of these formats instead: YYYY-MM-DD.\":\n \"Inserisci una data di nascita valida.\",\n \"Invalid birth date\": \"Inserisci una data di nascita valida.\",\n \"Too young\": \"Non hai l'età minima per poterti registrare a Juno.\",\n};\n\nexport function formatDate(date: Date) {\n const year = date.getFullYear();\n const month = (\"0\" + (date.getMonth() + 1)).slice(-2); // add leading zero if necessary\n const day = (\"0\" + date.getDate()).slice(-2); // add leading zero if necessary\n return year + \"-\" + month + \"-\" + day;\n}\n\nexport const sanitizeOptions = {\n allowedTags: [\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"div\",\n \"hr\",\n \"li\",\n \"ol\",\n \"p\",\n \"pre\",\n \"ul\",\n \"a\",\n \"b\",\n \"img\",\n \"br\",\n \"cite\",\n \"code\",\n \"em\",\n \"i\",\n \"s\",\n \"samp\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"time\",\n \"u\",\n \"caption\",\n \"col\",\n \"colgroup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"tr\",\n ],\n disallowedTagsMode: \"discard\",\n allowedAttributes: {\n a: [\"href\", \"name\", \"target\"],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\", \"data\"],\n },\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [\n \"img\",\n \"br\",\n \"hr\",\n \"area\",\n \"base\",\n \"basefont\",\n \"input\",\n \"link\",\n \"meta\",\n ],\n // URL schemes we permit\n allowedSchemes: [\"http\", \"https\", \"ftp\", \"mailto\", \"tel\", \"data\"],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [\"href\", \"src\", \"cite\"],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n};\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-full\" }\nconst _hoisted_2 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex flex-col\"\n}\nconst _hoisted_4 = { class: \"flex items-center\" }\nconst _hoisted_5 = { class: \"text-xl text-link\" }\nconst _hoisted_6 = { class: \"flex items-center space-x-2 text-sm text-muted\" }\nconst _hoisted_7 = { class: \"flex items-center space-x-2 text-sm text-muted\" }\nconst _hoisted_8 = { class: \"text-sm text-muted\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NavBar = _resolveComponent(\"NavBar\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_SnackBar = _resolveComponent(\"SnackBar\")!\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_CogIcon = _resolveComponent(\"CogIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_LogoutIcon = _resolveComponent(\"LogoutIcon\")!\n const _component_SectionList = _resolveComponent(\"SectionList\")!\n const _component_Slide = _resolveComponent(\"Slide\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.showNavBar)\n ? (_openBlock(), _createBlock(_component_NavBar, {\n key: 0,\n onOpenMobileSidebar: _cache[0] || (_cache[0] = ($event: any) => (_ctx.mobileSidebarExpanded = !_ctx.mobileSidebarExpanded))\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_router_view, { class: \"\" }),\n _createVNode(_component_SnackBar, { ref: \"snackbarRef\" }, null, 512),\n _createVNode(_component_Slide, {\n isOpen: _ctx.mobileSidebarExpanded,\n closeOnNavigation: true,\n disableOutsideClick: true\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_UserAvatar, {\n size: 'lg',\n url: _ctx.mainStore.user?.profile_picture ?? ''\n }, null, 8, [\"url\"]),\n (_ctx.mainStore.user)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_router_link, {\n class: \"mr-2\",\n to: {\n name: 'UserProfile',\n params: {\n userId: _ctx.mainStore.user.id,\n },\n }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_5, _toDisplayString(_ctx.mainStore.user.full_name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(_component_router_link, { to: { name: 'ProfileSettings' } }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_CogIcon, { size: \"22\" })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_TButton, {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.logOut())),\n variant: 'icon',\n class: \"ml-2\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_LogoutIcon, { size: \"22\" })\n ])\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.mainStore.user.email), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_SectionList, { sections: _ctx.shownSections }, null, 8, [\"sections\"])\n ]),\n _: 1\n }, 8, [\"isOpen\"])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"mdc-snackbar__surface\",\n role: \"status\",\n \"aria-relevant\": \"additions\"\n}, [\n /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"mdc-snackbar__label\",\n \"aria-atomic\": \"false\"\n })\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"aside\", {\n id: _ctx.snackbarId,\n class: \"mdc-snackbar\"\n }, _hoisted_3, 8, _hoisted_1))\n}","\nimport { v4 as uuid4 } from \"uuid\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { MDCSnackbar } from \"@material/snackbar\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\n\nexport default defineComponent({\n name: \"SnackBar\",\n props: {},\n data() {\n return {\n baseUuid: uuid4(),\n snackbar: null as MDCSnackbar | null,\n };\n },\n watch: {\n message(newVal) {\n if (newVal) {\n this.openFor(newVal, 5000);\n }\n },\n },\n mounted() {\n const snackbar = new MDCSnackbar(\n document.querySelector(\"#\" + this.snackbarId) as Element\n );\n this.snackbar = snackbar;\n },\n methods: {\n openFor(message: string, timeoutMs: number) {\n if (this.snackbar) {\n this.snackbar.timeoutMs = timeoutMs;\n this.snackbar.labelText = message;\n this.snackbar.open();\n }\n },\n },\n computed: {\n ...mapStores(useMainStore),\n snackbarId(): string {\n return \"a\" + this.baseUuid + \"-mdc-snackbar\";\n },\n message(): string {\n return this.mainStore.snackbarMessage;\n },\n },\n});\n","import { render } from \"./SnackBar.vue?vue&type=template&id=4b77149e&ts=true\"\nimport script from \"./SnackBar.vue?vue&type=script&lang=ts\"\nexport * from \"./SnackBar.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createBlock as _createBlock, createTextVNode as _createTextVNode } from \"vue\"\nimport _imports_0 from '@/assets/logo.png'\nimport _imports_1 from '@/assets/logo_mono.png'\n\n\nconst _hoisted_1 = { class: \"sticky top-0 z-50 flex items-center px-4 py-4 bg-white shadow-md md:py-2 md:px-8\" }\nconst _hoisted_2 = [\"href\"]\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"w-20 md:w-28\",\n src: _imports_0\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"hidden md:block w-28\",\n src: _imports_0\n}, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"w-5 mr-8 md:hidden\",\n src: _imports_1\n}, null, -1)\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"px-2 py-4\" }\nconst _hoisted_11 = { class: \"flex items-center space-x-4\" }\nconst _hoisted_12 = { class: \"flex flex-col\" }\nconst _hoisted_13 = { class: \"flex items-center\" }\nconst _hoisted_14 = { class: \"text-xl text-link\" }\nconst _hoisted_15 = { class: \"flex items-center space-x-2 text-sm text-muted\" }\nconst _hoisted_16 = { class: \"flex items-center space-x-2 text-sm text-muted\" }\nconst _hoisted_17 = { class: \"text-sm text-muted\" }\nconst _hoisted_18 = {\n key: 1,\n class: \"flex items-center space-x-2\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SearchBar = _resolveComponent(\"SearchBar\")!\n const _component_MenuIcon = _resolveComponent(\"MenuIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_CogIcon = _resolveComponent(\"CogIcon\")!\n const _component_LogoutIcon = _resolveComponent(\"LogoutIcon\")!\n const _component_DropdownMenu = _resolveComponent(\"DropdownMenu\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"a\", {\n href: _ctx.$router.resolve({ path: '/' }).href\n }, [\n (_ctx.mainStore.user)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _hoisted_9))\n ], 8, _hoisted_2),\n _createVNode(_component_SearchBar, { class: \"w-7/12 ml-auto md:mx-auto md:w-2/5\" }),\n _createVNode(_component_TButton, {\n class: \"block md:hidden\",\n variant: 'icon',\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('openMobileSidebar')))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_MenuIcon)\n ]),\n _: 1\n }),\n (_ctx.mainStore.user)\n ? (_openBlock(), _createBlock(_component_DropdownMenu, {\n key: 0,\n class: \"hidden md:block\",\n placement: 'right',\n expanded: _ctx.userCardExpanded,\n onToggleExpanded: _cache[2] || (_cache[2] = ($event: any) => (_ctx.userCardExpanded = !_ctx.userCardExpanded))\n }, {\n activator: _withCtx(() => [\n _createVNode(_component_UserAvatar, {\n class: \"cursor-pointer\",\n url: _ctx.avatarUrl\n }, null, 8, [\"url\"])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_UserAvatar, {\n size: 'lg',\n url: _ctx.avatarUrl\n }, null, 8, [\"url\"]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_router_link, {\n class: \"mr-2\",\n to: {\n name: 'UserProfile',\n params: {\n userId: _ctx.mainStore.user.id,\n },\n }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_14, _toDisplayString(_ctx.mainStore.user.full_name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(_component_router_link, { to: { name: 'ProfileSettings' } }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_CogIcon, { size: \"24\" })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_TButton, {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.logOut())),\n variant: 'icon',\n class: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_LogoutIcon, { size: \"24\" })\n ])\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.mainStore.user.email), 1)\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"expanded\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createVNode(_component_router_link, { to: { name: 'Login' } }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Login\")\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"hidden md:block\",\n to: { name: 'Register' }\n }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, { variant: 'text' }, {\n default: _withCtx(() => [\n _createTextVNode(\"Registrati\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, vShow as _vShow, withDirectives as _withDirectives, resolveDirective as _resolveDirective } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative\" }\nconst _hoisted_2 = { class: \"flex items-center -space-x-9\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"absolute z-50 w-full py-4 overflow-y-auto bg-white rounded shadow-lg\",\n style: {\"max-height\":\"28rem\"}\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"px-4 py-3\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"px-3 py-4\"\n}\nconst _hoisted_6 = {\n key: 0,\n class: \"flex items-center space-x-2\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"flex items-center space-x-2\"\n}\nconst _hoisted_8 = { key: 2 }\nconst _hoisted_9 = { key: 3 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MagnifyIcon = _resolveComponent(\"MagnifyIcon\")!\n const _component_TInput = _resolveComponent(\"TInput\")!\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_PostOutlineIcon = _resolveComponent(\"PostOutlineIcon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_MagnifyIcon, { class: \"z-10 text-gray-500\" }),\n _createVNode(_component_TInput, {\n variant: 'search',\n placeholder: \"Cerca contenuti\",\n class: \"pl-11\",\n modelValue: _ctx.query,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.query) = $event)),\n onInput: _ctx.updateQuery,\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onFocus()))\n }, null, 8, [\"modelValue\", \"onInput\"])\n ]),\n (_ctx.showResults)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, \"Ricerca in corso...\"))\n : _createCommentVNode(\"\", true),\n (!_ctx.loading && _ctx.unifiedResults.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, \" Nessun risultato \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unifiedResults.slice(\n 0,\n _ctx.PAGE_SIZE * _ctx.resultsPage\n ), (result, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"flex flex-col w-full px-4 py-3 transition-colors duration-75 hover:bg-light\"\n }, [\n _createVNode(_component_router_link, {\n to: _ctx.resultTypeRouteMapping[result.type](result.data.id)\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n (result.type === 'user')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_UserAvatar, {\n size: 'sm',\n url: result.data.profile_picture\n }, null, 8, [\"url\"]),\n _createElementVNode(\"span\", null, _toDisplayString(result.data.full_name), 1)\n ]))\n : (result.type === 'post')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createVNode(_component_PostOutlineIcon, { class: \"light-icon\" }),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.getPostPreview(result.data)), 1)\n ]))\n : (result.type === 'section')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"b\", null, _toDisplayString(result.data.name), 1),\n _createTextVNode(\" → Sezione \")\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"b\", null, _toDisplayString(result.data.name), 1),\n _createTextVNode(\" → Sottosezione \")\n ])\n ]))\n ])\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]))\n }), 128)),\n _withDirectives(_createElementVNode(\"div\", null, [\n _createVNode(_component_TButton, {\n class: \"w-full\",\n variant: 'text',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onMoreResults()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Mostra altri risultati\")\n ]),\n _: 1\n })\n ], 512), [\n [_vShow, _ctx.unifiedResults.length > _ctx.PAGE_SIZE * _ctx.resultsPage]\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])), [\n [_directive_click_outside, () => (_ctx.showResults = false)]\n ])\n}","import axios from \"axios\";\nimport { defineStore } from \"pinia\";\nimport { Post, Section, User } from \"../models\";\n\nexport const useSearchStore = defineStore({\n id: \"search\",\n state: () => ({\n query: \"\",\n results: {\n posts: [],\n sections: [],\n subsections: [],\n users: [],\n } as {\n posts: Post[];\n sections: Section[];\n subsections: Section[];\n users: User[];\n },\n loading: false,\n error: null as any,\n }),\n getters: {\n // hasResults: (state) => {\n // return (\n // state.results.posts.length > 0 ||\n // state.results.sections.length > 0 ||\n // state.results.subsections.length > 0 ||\n // state.results.users.length > 0\n // );\n // },\n unifiedResults: (state) =>\n [\n ...state.results.sections.map((s) => ({ type: \"section\", data: s })),\n ...state.results.subsections.map((s) => ({\n type: \"subsection\",\n data: s,\n })),\n ...state.results.users\n .filter((u) => u.user_type === \"disseminator\")\n .map((u) => ({ type: \"user\", data: u })),\n ...state.results.posts\n .filter((p) => p.post_type === \"dissemination\")\n .map((p) => ({ type: \"post\", data: p })),\n ...state.results.users\n .filter((u) => u.user_type === \"member\")\n .map((u) => ({ type: \"user\", data: u })),\n ...state.results.posts\n .filter((p) => p.post_type === \"personal\")\n .map((p) => ({ type: \"post\", data: p })),\n ] as (\n | {\n type: \"post\";\n data: Post;\n }\n | {\n type: \"section\";\n data: Section;\n }\n | {\n type: \"subsection\";\n data: Section;\n }\n | {\n type: \"user\";\n data: User;\n }\n )[],\n },\n actions: {\n setQuery(newQuery: string) {\n this.query = newQuery;\n },\n setLoading(newLoading: boolean) {\n this.loading = newLoading;\n },\n async search() {\n this.loading = true;\n try {\n const response = await axios(`/search/?q=${this.query}`);\n const data = response.data;\n this.results = data;\n } catch (error) {\n this.error = error;\n } finally {\n this.loading = false;\n }\n },\n },\n});\n","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport UserAvatar from \"../UserAvatar.vue\";\nimport { TInput } from \"@variantjs/vue\";\nimport { TButton } from \"@variantjs/vue\";\nimport MagnifyIcon from \"vue-material-design-icons/Magnify.vue\";\nimport PostOutlineIcon from \"vue-material-design-icons/PostOutline.vue\";\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst debounce = require(\"lodash.debounce\");\n\nimport { useSearchStore } from \"../../stores/searchStore\";\nimport { storeToRefs } from \"pinia\";\nimport { ref } from \"vue\";\nimport { stripHtmlFromString } from \"../../utils\";\nimport { Post } from \"../../models\";\n\nexport default defineComponent({\n setup() {\n const searchStore = useSearchStore();\n const { query, results, loading, error, unifiedResults } =\n storeToRefs(searchStore);\n const { setQuery, setLoading, search } = searchStore;\n\n const debouncedSearch = debounce(search, 500);\n\n const updateQuery = (event: { target: { value: string } }) => {\n setQuery(event.target.value);\n showResults.value = query.value.length > 0;\n setLoading(true);\n debouncedSearch();\n };\n\n const showResults = ref(false);\n\n const onFocus = () => {\n if (query.value.length > 0) {\n showResults.value = true;\n }\n };\n\n const PAGE_SIZE = 2;\n const resultsPage = ref(1);\n\n const onMoreResults = () => {\n resultsPage.value += 1;\n };\n\n const resultTypeRouteMapping = {\n user: (userId: string) => ({\n name: \"UserProfile\",\n params: {\n userId,\n },\n }),\n post: (postId: string) => ({\n name: \"PostDetail\",\n params: {\n postId,\n },\n }),\n section: (sectionId: string) => ({\n name: \"SectionHome\",\n params: {\n sectionId,\n },\n }),\n subsection: (sectionId: string) => ({\n name: \"SectionHome\",\n params: {\n sectionId,\n },\n }),\n };\n\n const getPostPreview = (post: Post) => {\n const strippedText = stripHtmlFromString(post.content);\n const preview =\n strippedText.length > 100\n ? strippedText.slice(0, 100) + \"...\"\n : strippedText;\n return preview;\n };\n\n return {\n query,\n results,\n loading,\n error,\n updateQuery,\n unifiedResults,\n resultTypeRouteMapping,\n showResults,\n onFocus,\n PAGE_SIZE,\n resultsPage,\n onMoreResults,\n getPostPreview,\n };\n },\n components: { MagnifyIcon, TInput, UserAvatar, TButton, PostOutlineIcon },\n});\n","import { render } from \"./SearchBar.vue?vue&type=template&id=4e8731c2&ts=true\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=ts\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { TButton } from \"@variantjs/vue\";\nimport CogIcon from \"vue-material-design-icons/Cog.vue\";\nimport LogoutIcon from \"vue-material-design-icons/Logout.vue\";\nimport MenuIcon from \"vue-material-design-icons/Menu.vue\";\nimport DropdownMenu from \"./ui/DropdownMenu.vue\";\nimport UserAvatar from \"@/components/UserAvatar.vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { mapStores } from \"pinia\";\nimport SearchBar from \"./ui/SearchBar.vue\";\nimport { useMainStore } from \"../stores/mainStore\";\nimport { logOut } from \"../utils\";\nexport default defineComponent({\n name: \"NavBar\",\n props: {},\n methods: {\n logOut,\n },\n data() {\n return {\n userCardExpanded: false,\n };\n },\n computed: {\n ...mapStores(useMainStore),\n avatarUrl(): string {\n return (this.mainStore.user?.profile_picture as string) ?? \"\";\n },\n },\n components: {\n UserAvatar,\n SearchBar,\n DropdownMenu,\n CogIcon,\n LogoutIcon,\n TButton,\n MenuIcon,\n },\n});\n","import { render } from \"./NavBar.vue?vue&type=template&id=30bd28f2&ts=true\"\nimport script from \"./NavBar.vue?vue&type=script&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport SnackBar from \"./components/ui/SnackBar.vue\";\nimport { defineComponent } from \"@vue/runtime-core\";\nimport NavBar from \"./components/NavBar.vue\";\nimport { useMainStore } from \"./stores/mainStore\";\nimport { useRoute } from \"vue-router\";\nimport { computed, ref } from \"vue\";\nimport MobileSidebar from \"@/components/ui/MobileSidebar.vue\";\nimport SectionList from \"./components/Sections/SectionList.vue\";\nimport { Slide } from \"vue3-burger-menu\";\nimport { logOut } from \"./utils\";\nimport UserAvatar from \"./components/UserAvatar.vue\";\nimport CogIcon from \"vue-material-design-icons/Cog.vue\";\nimport LogoutIcon from \"vue-material-design-icons/Logout.vue\";\nexport default defineComponent({\n name: \"App\",\n props: {},\n methods: {},\n setup() {\n const mainStore = useMainStore();\n mainStore.init();\n\n const mobileSidebarExpanded = ref(false);\n\n // show the navbar only if the route meta doesn't disable it\n const showNavBar = computed(() => {\n const route = useRoute();\n return !route.meta.disableNavBar;\n });\n\n const shownSections = computed(() => {\n return mainStore.sections;\n });\n\n return {\n showNavBar,\n mobileSidebarExpanded,\n shownSections,\n mainStore,\n logOut,\n };\n },\n components: {\n NavBar,\n SnackBar,\n Slide,\n SectionList,\n UserAvatar,\n CogIcon,\n LogoutIcon,\n },\n});\n","import { render } from \"./App.vue?vue&type=template&id=4fdbdcab&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport { variantJS } from \"@variantjs/vue\";\nimport Vue3Sanitize from \"vue-3-sanitize\";\n\nimport \"./index.css\";\nimport { configuration, sanitizeOptions } from \"./const\";\nimport { createPinia } from \"pinia\";\nimport axios from \"axios\";\nimport { clickOutsideDirective, logOut } from \"./utils\";\n\nconst pinia = createPinia();\n\nconst dev = process.env.NODE_ENV !== \"production\";\n\naxios.defaults.baseURL = dev\n ? process.env.VUE_APP_AXIOS_BASE ?? \"http://127.0.0.1:8000\"\n : process.env.VUE_APP_AXIOS_BASE;\n\naxios.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (\n error?.response?.status === 401 &&\n (router.currentRoute.value.name?.toString().toLowerCase() ?? \"\") !==\n \"login\"\n ) {\n logOut(false, router.currentRoute.value.fullPath);\n } else {\n throw error;\n }\n }\n);\n\ncreateApp(App)\n .directive(\"click-outside\", clickOutsideDirective)\n .use(pinia)\n .use(router)\n .use(Vue3Sanitize, sanitizeOptions)\n .use(variantJS, configuration)\n .mount(\"#app\");\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"w-full\" }\nconst _hoisted_2 = { class: \"grid grid-cols-12 pt-4 mx-4 mb-4 text-lg font-medium md:mx-0\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex items-center col-span-12 p-4 bg-white md:col-span-8 md:col-start-3 rounded-xl\"\n}\nconst _hoisted_4 = { class: \"text-2xl font-medium\" }\nconst _hoisted_5 = { class: \"flex flex-col ml-auto text-sm\" }\nconst _hoisted_6 = { class: \"flex items-center space-x-1\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"span\", null, \"Torna alla home\", -1)\nconst _hoisted_8 = {\n key: 1,\n class: \"flex items-center col-span-12 md:col-span-8 md:col-start-3\"\n}\nconst _hoisted_9 = { class: \"fixed z-20 flex content-end col-span-12 my-auto mt-2 right-2 bottom-4 md:static md:mt-0 md:col-span-2\" }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden md:inline\" }, \"Nuovo post\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_HomeIcon = _resolveComponent(\"HomeIcon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_PlusIcon = _resolveComponent(\"PlusIcon\")!\n const _component_PostList = _resolveComponent(\"PostList\")!\n const _component_VueEternalLoading = _resolveComponent(\"VueEternalLoading\")!\n const _component_BaseView = _resolveComponent(\"BaseView\")!\n const _component_PostEditor = _resolveComponent(\"PostEditor\")!\n const _component_FullDialog = _resolveComponent(\"FullDialog\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_BaseView, null, {\n \"top-row\": _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.currentSection)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_UserAvatar, {\n size: 'lg',\n class: \"mr-4\"\n }),\n _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(_ctx.currentSection.name), 1),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_router_link, {\n class: \"transition-colors duration-200 hover:text-secondary-darker\",\n to: {\n path: '/',\n }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_HomeIcon, { size: \"20\" }),\n _hoisted_7\n ])\n ]),\n _: 1\n })\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.tabs, (tab, index) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n key: tab.value,\n class: _normalizeClass([\n _ctx.isActiveTab(tab.value) ? 'active-tab' : 'inactive-tab',\n index === 0 ? 'ml-auto' : '',\n index === _ctx.tabs.length - 1 ? 'mr-auto' : '',\n 'md:text-base text-sm',\n ]),\n to: tab.value\n }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, { variant: 'tab' }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(tab.label), 1)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"class\", \"to\"]))\n }), 128))\n ])),\n _createElementVNode(\"div\", _hoisted_9, [\n (_ctx.mainStore.userId)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n style: {\"background\":\"var(--juno-gradient-light) !important\"},\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onShowPostEditor())),\n class: \"py-4 ml-auto md:py-3 md:mx-auto darken-on-hover\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_PlusIcon, { class: \"md:mr-1\" }),\n _hoisted_10\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n main: _withCtx(() => [\n _createVNode(_component_PostList, { posts: _ctx.posts }, null, 8, [\"posts\"]),\n _createVNode(_component_VueEternalLoading, {\n load: _ctx.onLoadMore,\n \"is-initial\": _ctx.isInitialInfiniteLoad,\n \"onUpdate:isInitial\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.isInitialInfiniteLoad) = $event))\n }, {\n loading: _withCtx(() => [\n _createTextVNode(\" Caricamento... \")\n ]),\n \"no-more\": _withCtx(() => [\n _createTextVNode(\"  \")\n ]),\n _: 1\n }, 8, [\"load\", \"is-initial\"])\n ]),\n _: 1\n }),\n _createVNode(_component_FullDialog, {\n onCloseDialog: _cache[3] || (_cache[3] = ($event: any) => (_ctx.showPostEditor = false)),\n open: _ctx.showPostEditor\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Nuovo post\")\n ]),\n content: _withCtx(() => [\n _createVNode(_component_PostEditor, {\n onDone: _cache[2] || (_cache[2] = ($event: any) => (_ctx.showPostEditor = false)),\n canCreateDisseminationPost: \n _ctx.currentUser?.user_type === 'disseminator'\n \n }, null, 8, [\"canCreateDisseminationPost\"])\n ]),\n _: 1\n }, 8, [\"open\"])\n ]))\n}","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"min-h-screen pb-8 bg-light\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"w-full\"\n}\nconst _hoisted_3 = { class: \"grid grid-cols-12 pl-4 pr-6 md:pr-10 md:pl-8\" }\nconst _hoisted_4 = { class: \"hidden pt-2 md:block md:col-span-2 md:pt-4\" }\nconst _hoisted_5 = { class: \"sticky max-h-screen pb-24 overflow-visible overflow-y-auto top-24\" }\nconst _hoisted_6 = { class: \"col-span-12 px-4 py-2 mx-4 bg-white md:py-6 md:mx-0 md:col-span-8 md:px-8 rounded-2xl\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"hidden col-span-2 px-10 pt-4 md:block\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mb-4 text-xl font-medium\" }, \"Eventi\"),\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"opacity-70\" }, \"Coming soon!\")\n], -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SectionList = _resolveComponent(\"SectionList\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.$slots['top-row']?.())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"top-row\")\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _renderSlot(_ctx.$slots, \"sections-top\"),\n _createVNode(_component_SectionList, { sections: _ctx.shownSections }, null, 8, [\"sections\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _renderSlot(_ctx.$slots, \"main\")\n ]),\n _hoisted_7\n ])\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport SectionList from \"@/components/Sections/SectionList.vue\";\nimport { TButton } from \"@variantjs/vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"@/stores/mainStore\";\nimport { TabItem } from \"@/const\";\nexport default defineComponent({\n name: \"BaseView\",\n props: {\n tabs: {\n type: Array as PropType,\n default: () => [],\n },\n },\n async created() {\n //wrapWithLoading(async () => await this.mainStore.getSections());\n },\n data() {\n return {\n showPostEditor: false,\n };\n },\n methods: {\n isActiveTab(tabName: string) {\n return this.$route.name === tabName;\n },\n onShowPostEditor() {\n this.showPostEditor = true;\n },\n },\n computed: {\n ...mapStores(useMainStore),\n shownSections() {\n return this.mainStore.sections; //.filter((s) => s.parent === null);\n },\n },\n components: {\n SectionList,\n //TButton,\n // PlusIcon,\n // PostEditor,\n // FullDialog,\n },\n});\n","import { render } from \"./BaseView.vue?vue&type=template&id=471c24bb&ts=true\"\nimport script from \"./BaseView.vue?vue&type=script&lang=ts\"\nexport * from \"./BaseView.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderSlot as _renderSlot, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = { class: \"w-screen h-screen mdc-dialog__container\" }\nconst _hoisted_3 = {\n class: \"w-screen h-screen py-4 md:px-4 mdc-dialog__surface\",\n style: {\"max-height\":\"100vh !important\",\"max-width\":\"100vw !important\",\"width\":\"100vw !important\",\"height\":\"100vh !important\",\"border-radius\":\"0 !important\"},\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": \"my-dialog-title\",\n \"aria-describedby\": \"my-dialog-content\"\n}\nconst _hoisted_4 = { class: \"mb-4 mdc-dialog__header\" }\nconst _hoisted_5 = [\"id\"]\nconst _hoisted_6 = [\"id\"]\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"mdc-dialog__scrim\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: _ctx.dialogId,\n style: {\"z-index\":\"9999999 !important\"},\n class: \"mdc-dialog mdc-dialog--fullscreen\"\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"h2\", {\n class: \"text-2xl font-medium\",\n id: _ctx.dialogId + '-title'\n }, [\n _renderSlot(_ctx.$slots, \"title\", {}, () => [\n _createTextVNode(\"Title\")\n ])\n ], 8, _hoisted_5),\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"mdc-dialog__close\",\n \"data-mdc-dialog-action\": \"close\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n class: \"mdc-dialog__content\",\n id: _ctx.dialogId + '-content'\n }, [\n _renderSlot(_ctx.$slots, \"content\", {}, () => [\n _createTextVNode(\"Content\")\n ])\n ], 8, _hoisted_6)\n ])\n ]),\n _hoisted_7\n ], 8, _hoisted_1))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { MDCDialog } from \"@material/dialog\";\nimport { v4 as uuid4 } from \"uuid\";\nimport { TButton } from \"@variantjs/vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\nexport default defineComponent({\n name: \"FullDialog\",\n props: {\n open: {\n type: Boolean as PropType,\n default: false,\n },\n },\n watch: {\n open() {\n if (this.open) {\n this.mdcComponent?.open();\n } else {\n this.mdcComponent?.close();\n }\n },\n },\n mounted() {\n const dialog = new MDCDialog(\n document.querySelector(\"#\" + this.dialogId) as Element\n );\n this.mdcComponent = dialog;\n dialog.listen(\"MDCDialog:closed\", () => {\n this.$emit(\"closeDialog\");\n });\n if (this.open) {\n dialog.open();\n }\n },\n data() {\n return {\n mdcComponent: null as MDCDialog | null,\n baseUuid: uuid4(),\n };\n },\n methods: {},\n computed: {\n dialogId() {\n return \"a\" + this.baseUuid + \"-mdc-dialog\";\n },\n },\n components: { TButton, CloseIcon },\n});\n","import { render } from \"./FullDialog.vue?vue&type=template&id=1b4f1c87&ts=true\"\nimport script from \"./FullDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./FullDialog.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-full\" }\nconst _hoisted_2 = { class: \"flex items-start mb-8\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex flex-col md:items-center md:flex-row\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"mr-2 text-muted\" }, \"Tipologia di post\", -1)\nconst _hoisted_5 = {\n key: 0,\n class: \"mr-2 md:ml-8 text-muted\"\n}\nconst _hoisted_6 = { class: \"flex flex-col space-y-4 md:flex-row md:space-y-0 md:space-x-8\" }\nconst _hoisted_7 = { class: \"w-full\" }\nconst _hoisted_8 = { class: \"mt-4\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"h4\", { class: \"mb-2\" }, \"Video allegati\", -1)\nconst _hoisted_10 = { class: \"flex items-center w-11/12 space-x-4 overflow-auto md:w-full\" }\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"md:w-1/3\" }\nconst _hoisted_13 = { key: 0 }\nconst _hoisted_14 = { class: \"mt-4\" }\nconst _hoisted_15 = { class: \"flex items-center mb-4 space-x-2\" }\nconst _hoisted_16 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"enable-background\": \"new 0 0 24 24\",\n height: \"28px\",\n viewBox: \"0 0 24 24\",\n width: \"28px\",\n style: {\"fill\":\"currentColor\"}\n}\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"rect\", {\n fill: \"none\",\n height: \"24\",\n width: \"24\"\n })\n], -1)\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M20,3H4C2.9,3,2,3.9,2,5v14c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V5 C22,3.9,21.1,3,20,3z M20,19H4V5h16V19z\",\n \"fill-rule\": \"evenodd\"\n }),\n /*#__PURE__*/_createElementVNode(\"polygon\", {\n \"fill-rule\": \"evenodd\",\n points: \"19.41,10.42 17.99,9 14.82,12.17 13.41,10.75 12,12.16 14.82,15\"\n }),\n /*#__PURE__*/_createElementVNode(\"rect\", {\n \"fill-rule\": \"evenodd\",\n height: \"2\",\n width: \"5\",\n x: \"5\",\n y: \"7\"\n }),\n /*#__PURE__*/_createElementVNode(\"rect\", {\n \"fill-rule\": \"evenodd\",\n height: \"2\",\n width: \"5\",\n x: \"5\",\n y: \"11\"\n }),\n /*#__PURE__*/_createElementVNode(\"rect\", {\n \"fill-rule\": \"evenodd\",\n height: \"2\",\n width: \"5\",\n x: \"5\",\n y: \"15\"\n })\n ])\n], -1)\nconst _hoisted_19 = [\n _hoisted_17,\n _hoisted_18\n]\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"text-xl\" }, \"Fonti\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SegmentedButtons = _resolveComponent(\"SegmentedButtons\")!\n const _component_TRichSelect = _resolveComponent(\"TRichSelect\")!\n const _component_PlusIcon = _resolveComponent(\"PlusIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_PublishIcon = _resolveComponent(\"PublishIcon\")!\n const _component_TextEditor = _resolveComponent(\"TextEditor\")!\n const _component_VideoInput = _resolveComponent(\"VideoInput\")!\n const _component_VideoThumbnail = _resolveComponent(\"VideoThumbnail\")!\n const _component_VideoPlayer = _resolveComponent(\"VideoPlayer\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SourceList = _resolveComponent(\"SourceList\")!\n const _component_TCard = _resolveComponent(\"TCard\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.canCreateDisseminationPost)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createVNode(_component_SegmentedButtons, {\n class: \"\",\n modelValue: _ctx.post.post_type,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.post.post_type) = $event)),\n options: _ctx.postTypeOptions\n }, null, 8, [\"modelValue\", \"options\"]),\n (_ctx.post.post_type === 'dissemination')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, \" Sezione \"))\n : _createCommentVNode(\"\", true),\n (_ctx.post.post_type === 'dissemination')\n ? (_openBlock(), _createBlock(_component_TRichSelect, {\n key: 1,\n searchBoxPlaceholder: 'Cerca...',\n noResultsText: \n _ctx.sectionsOptions.length === 0\n ? 'Non sei autorizzato a postare in alcuna sezione. Richiedi l\\'autorizzazione agli amministratori.'\n : 'Nessuna sezione trovata'\n ,\n class: \"z-50 md:w-72\",\n modelValue: _ctx.post.section,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.post.section) = $event)),\n options: _ctx.sectionsOptions\n }, null, 8, [\"searchBoxPlaceholder\", \"noResultsText\", \"modelValue\", \"options\"]))\n : _createCommentVNode(\"\", true),\n (false && _ctx.post.post_type === 'dissemination')\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 2,\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_PlusIcon)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_TButton, {\n style: {\"background\":\"var(--juno-gradient-light) !important\"},\n class: \"py-2 mt-4 ml-auto text-lg font-medium md:mt-0\",\n disabled: _ctx.invalidPost || _ctx.publishing,\n variant: 'primary',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onPublish()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_PublishIcon, { class: \"mr-1\" }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.publishing ? \"Attendi...\" : \"Pubblica\"), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_TextEditor, {\n tall: true,\n modelValue: _ctx.post.content,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.post.content) = $event))\n }, null, 8, [\"modelValue\"]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_VideoInput, {\n ref: \"videoInput\",\n loading: _ctx.uploadingVideo,\n onFile: _cache[4] || (_cache[4] = ($event: any) => (_ctx.onVideoUpload($event)))\n }, null, 8, [\"loading\"]),\n false\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.localVideos, (video) => {\n return (_openBlock(), _createBlock(_component_VideoThumbnail, {\n video: video,\n key: video.id,\n onDeleteVideo: ($event: any) => (_ctx.deleteDraftVideo(video))\n }, null, 8, [\"video\", \"onDeleteVideo\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.localVideos, (video) => {\n return (_openBlock(), _createBlock(_component_VideoPlayer, {\n url: video.file,\n videoId: video.id,\n thumbnail: video.thumbnail,\n title: video.title,\n key: video.id,\n onDeleteVideo: ($event: any) => (_ctx.deleteDraftVideo(video)),\n canRemove: true\n }, null, 8, [\"url\", \"videoId\", \"thumbnail\", \"title\", \"onDeleteVideo\"]))\n }), 128))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n (_ctx.post.post_type === 'dissemination')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"p\", null, [\n _createTextVNode(\" Il tuo post è soggetto alle \"),\n _createVNode(_component_router_link, {\n target: \"_blank\",\n to: { name: 'Guidelines' },\n class: \"underline text-secondary-dark\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"linee guida di Juno\")\n ]),\n _: 1\n }),\n _createTextVNode(\". \")\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_TCard, { variant: 'flat' }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_15, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_16, _hoisted_19)),\n _hoisted_20\n ]),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_SourceList, {\n modelValue: _ctx.post.sources,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.post.sources) = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _: 1\n })\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Comment, Post } from \"./interfaces\";\nexport const getBlankPost = (postType: \"dissemination\" | \"personal\"): Post => ({\n id: \"\",\n content: \"\",\n author: null as any,\n created_at: \"\",\n post_type: postType,\n section: null,\n sources: [],\n});\n\nexport const getBlankPostComment = (\n content: string,\n comment_type: \"regular\" | \"fact_check\" = \"regular\"\n): Comment => ({\n id: \"\",\n content,\n created_at: \"\",\n user: null as any,\n comment_type,\n});\n\nexport const getSharedPost = (postId: string, content: string): Post => ({\n id: \"\",\n content,\n author: null as any,\n created_at: \"\",\n post_type: \"personal\",\n section: null,\n sources: [],\n shared: postId,\n});\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = [\"rows\", \"value\"]\nconst _hoisted_4 = [\"innerHTML\"]\nconst _hoisted_5 = {\n key: 0,\n class: \"text-sm font-light text-danger-dark\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_quill_editor = _resolveComponent(\"quill-editor\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n style: _normalizeStyle(_ctx.tall ? 'min-height: 30vh' : ''),\n id: _ctx.id\n }, [\n _createElementVNode(\"div\", {\n onMouseup: _cache[5] || (_cache[5] = ($event: any) => (_ctx.endDragging())),\n class: \"relative flex space-x-2\",\n style: _normalizeStyle(_ctx.tall ? 'min-height: 30vh' : '')\n }, [\n _createElementVNode(\"div\", {\n id: _ctx.resizablePanelId,\n style: _normalizeStyle(_ctx.tall ? 'min-height: 30vh' : ''),\n class: _normalizeClass([\"relative z-10 h-full rounded-t-sm light-input bg-gray-50\", { 'opacity-80': _ctx.disabled, 'w-full': !_ctx.showPreview }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"z-10 tex2jax_ignore ql-editor-container\", [\n _ctx.$slots.errors?.() ? 'ql-editor-container-error' : '',\n _ctx.tall ? 'ql-editor-tall' : '',\n ]])\n }, [\n (!_ctx.showBaseEditor && !_ctx.forceBaseEditor)\n ? (_openBlock(), _createBlock(_component_quill_editor, {\n key: 0,\n options: _ctx.editorOptions,\n value: _ctx.modelValue,\n disabled: _ctx.disabled || _ctx.internalDisabled,\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onEditorChange($event))),\n onReady: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onEditorReady($event)))\n }, null, 8, [\"options\", \"value\", \"disabled\"]))\n : (_openBlock(), _createElementBlock(\"textarea\", {\n key: 1,\n class: \"py-3.5 px-3.5 bg-transparent rounded-t-sm outline-none\",\n rows: _ctx.baseEditorRows,\n onInput: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('update:modelValue', $event.target.value))),\n value: _ctx.modelValue\n }, null, 40, _hoisted_3))\n ], 2),\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"absolute -z-1 top-2 left-2 origin-0 ql-floating-label\", { 'fixed-label': _ctx.modelValue?.length > 0 }])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ], 14, _hoisted_2),\n (_ctx.showPreview)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n style: _normalizeStyle([_ctx.dividerStyle, {\"width\":\"5px\",\"transition-property\":\"background\"}]),\n onMousedown: _cache[3] || (_cache[3] = ($event: any) => (_ctx.startDragging())),\n class: \"absolute top-0 z-30 h-full duration-150 delay-75 bg-gray-300 bg-opacity-50 resizer hover:bg-opacity-70\"\n }, null, 36))\n : _createCommentVNode(\"\", true),\n (_ctx.showPreview)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n onMousedown: _cache[4] || (_cache[4] = ($event: any) => (_ctx.startDragging())),\n style: _normalizeStyle({\n ..._ctx.dividerStyle,\n transform: 'translate(-40%, -50%) rotate(90deg)',\n 'font-size': '20px !important',\n }),\n class: \"absolute z-30 opacity-30 resizer top-1/2 material-icons-outlined\"\n }, \" drag_handle \", 36))\n : _createCommentVNode(\"\", true),\n (_ctx.showPreview)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: \"relative px-8 py-2\",\n style: _normalizeStyle({ width: 100 - _ctx.previewPanelWidth + '%' })\n }, [\n _createElementVNode(\"div\", {\n style: {\"white-space\":\"break-spaces\"},\n class: \"w-full\",\n innerHTML: _ctx.stripHtmlFromLaTexBlocks(_ctx.modelValue)\n }, null, 8, _hoisted_4)\n ], 4))\n : _createCommentVNode(\"\", true)\n ], 36),\n (_ctx.$slots.errors?.())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _renderSlot(_ctx.$slots, \"errors\")\n ]))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}","\n/* eslint-disable @typescript-eslint/no-var-requires */\nimport { v4 as uuid4 } from \"uuid\";\nimport { defineComponent } from \"@vue/runtime-core\";\n\nimport { quillEditor } from \"vue3-quill\";\n\nimport Quill from \"quill\";\n\nconst ImageResize = require(\"quill-image-resize\").default;\nconst ImageDrop = require(\"quill-image-drop-module\").ImageDrop;\nimport MagicUrl from \"quill-magic-url\";\n\nQuill.register(\"modules/magicUrl\", MagicUrl);\nQuill.register(\"modules/imageDrop\", ImageDrop);\nQuill.register(\"modules/imageResize\", ImageResize);\n\nexport default defineComponent({\n name: \"TextEditor\",\n props: {\n modelValue: {\n type: String,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n tall: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: \"\",\n },\n forceBaseEditor: {\n type: Boolean,\n default: false,\n },\n showPreviewButton: {\n type: Boolean,\n default: true,\n },\n baseEditorRows: {\n type: Number,\n default: 8,\n },\n },\n components: {\n quillEditor,\n },\n watch: {},\n mounted() {\n // prevent auto-focusing of quill editor\n this.$nextTick(() => (this.internalDisabled = false));\n this.addCustomButtons();\n },\n data() {\n return {\n showBaseEditor: false,\n instance: null as any,\n //content: \"\",\n internalDisabled: true,\n showPreview: false,\n resizablePanelId: uuid4(),\n previewPanelWidth: 50,\n pos: 0,\n triggerTexHandle: null as number | null,\n id: \"a\" + uuid4(), // https://github.com/testing-library/dom-testing-library/issues/168,\n };\n },\n methods: {\n handleDragging(e: any) {\n const percentage = ((e.pageX - 51) / window.innerWidth) * 100;\n if (percentage >= 30 && percentage <= 70) {\n this.previewPanelWidth = percentage;\n }\n },\n addCustomButtons() {\n // add custom LaTeX button\n const latexButton = document.querySelector(\"#\" + this.id + \" .ql-latex\");\n if (latexButton) {\n // when clicked, the LaTeX button inserts two $'s and positions the cursor between them\n latexButton.addEventListener(\"click\", () => {\n const selection = this.instance.getSelection(true);\n this.instance.insertText(selection.index, \"$$\");\n this.instance.setSelection(selection.index + 1, 0);\n });\n latexButton.innerHTML = document.getElementById(\n `${this.id}latex-button-src`\n )?.innerHTML as string;\n }\n // add custom html button\n const htmlButton = document.querySelector(\"#\" + this.id + \" .ql-html\");\n if (htmlButton) {\n // when clicked, the html button toggles between full & base editor\n htmlButton.addEventListener(\"click\", () => {\n this.toggleBaseEditor();\n });\n htmlButton.innerHTML = document.getElementById(\n `${this.id}html-button-src`\n )?.innerHTML as string;\n }\n },\n startDragging() {\n document.addEventListener(\"mousemove\", this.handleDragging);\n },\n endDragging() {\n document.removeEventListener(\"mousemove\", this.handleDragging);\n },\n toggleBaseEditor() {\n this.showBaseEditor = !this.showBaseEditor;\n },\n onEditorChange({ html }: unknown) {\n this.$emit(\"update:modelValue\", html);\n },\n onEditorReady(quill: any) {\n this.$emit(\"ready\", quill);\n\n quill.on(\"selection-change\", this.onSelectionChange);\n quill.root.addEventListener(\"blur\", () => this.$emit(\"blur\"));\n this.instance = quill;\n },\n onSelectionChange(event: any) {\n if (event) {\n this.$emit(\"selectionChange\", {\n fullText: this.instance.getText(),\n text: this.instance.getText(event.index - 5, event.length + 10),\n range: event,\n });\n }\n },\n },\n computed: {\n previewPanelStyle() {\n if (!this.showPreview) {\n return {};\n }\n return { width: this.previewPanelWidth + \"%\" };\n },\n dividerStyle() {\n return { left: this.previewPanelWidth + \"%\" };\n },\n\n editorOptions() {\n return {\n theme: \"snow\",\n placeholder: this.placeholder,\n modules: {\n toolbar: [\n [\"bold\", \"italic\", \"underline\", \"strike\"],\n [\"code-block\"],\n //[{ header: 1 }, { header: 2 }],\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n //[{ script: 'sub' }, { script: 'super' }],\n //[{ indent: '-1' }, { indent: '+1' }],\n //[{ direction: 'rtl' }],\n // [{ size: ['small', false, 'large', 'huge'] }],\n // [{ header: [1, 2, 3, 4, 5, 6, false] }],\n // [{ color: [] }, { background: [] }],\n // [{ font: [] }],\n // [{ align: [] }],\n [\"image\"], // \"video\"\n [\"clean\"],\n // [\"latex\"],\n // [\"html\"],\n ],\n imageResize: {\n modules: [\"Resize\", \"DisplaySize\"],\n },\n imageDrop: true,\n magicUrl: true,\n },\n };\n },\n },\n});\n","import { render } from \"./TextEditor.vue?vue&type=template&id=d4950266&ts=true\"\nimport script from \"./TextEditor.vue?vue&type=script&lang=ts\"\nexport * from \"./TextEditor.vue?vue&type=script&lang=ts\"\n\nimport \"./TextEditor.vue?vue&type=style&index=0&id=d4950266&lang=css\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center\" }\nconst _hoisted_2 = [\"for\"]\nconst _hoisted_3 = [\"onInput\", \"id\", \"value\", \"checked\", \"disabled\"]\nconst _hoisted_4 = { class: \"flex mx-auto space-x-2 items-top\" }\nconst _hoisted_5 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (option, index) => {\n return (_openBlock(), _createElementBlock(\"label\", {\n for: _ctx.id + '-input-' + index,\n class: _normalizeClass([\"relative flex flex-grow max-h-screen px-4 py-2 overflow-hidden overflow-x-hidden overflow-y-hidden text-sm font-medium text-center text-gray-600 border border-gray-400 rounded-sm cursor-pointer min-w-fit overflow-ellipsis whitespace-nowrap items-top\", {\n 'pl-4.5 pr-3.5': index === 0,\n 'pl-4 pr-4.5': index === _ctx.options.length - 1,\n 'rounded-r-none': index < _ctx.options.length - 1,\n 'rounded-l-none border-l-0 pl-4.5': index !== 0,\n 'bg-primary bg-opacity-20 ': option.value == _ctx.modelValue,\n 'hover:text-gray-800 hover:bg-light': option.value != _ctx.modelValue,\n }]),\n key: _ctx.id + '-option-' + index\n }, [\n _createElementVNode(\"input\", {\n onInput: ($event: any) => (_ctx.onInput(option.value, $event)),\n class: \"invisible w-0 h-0\",\n type: \"radio\",\n id: _ctx.id + '-input-' + index,\n value: option.value,\n checked: option.value == _ctx.modelValue,\n disabled: _ctx.disabled\n }, null, 40, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", {\n class: \"\",\n innerHTML: option.label\n }, null, 8, _hoisted_5)\n ])\n ], 10, _hoisted_2))\n }), 128))\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { SelectableOption } from \"../../utils\";\nimport { TButton } from \"@variantjs/vue\";\nimport { v4 as uuid4 } from \"uuid\";\nexport default defineComponent({\n name: \"SegmentedButtons\",\n props: {\n modelValue: {\n type: String as PropType,\n required: true,\n },\n options: {\n type: Array as PropType[]>,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n id: \"a\" + uuid4(),\n };\n },\n methods: {\n onInput(value: string, inputEvent: Event) {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n (inputEvent.target as unknown as { checked: boolean }).checked = false;\n inputEvent.preventDefault();\n this.$emit(\"update:modelValue\", value);\n },\n },\n computed: {},\n components: {\n // TButton\n },\n});\n","import { render } from \"./SegmentedButtons.vue?vue&type=template&id=2470cf96&ts=true\"\nimport script from \"./SegmentedButtons.vue?vue&type=script&lang=ts\"\nexport * from \"./SegmentedButtons.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = [\"disabled\", \"id\"]\nconst _hoisted_3 = { class: \"flex flex-col items-center justify-center\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VideoPlusIcon = _resolveComponent(\"VideoPlusIcon\")!\n const _component_LoadingSpinner = _resolveComponent(\"LoadingSpinner\")!\n const _component_TCard = _resolveComponent(\"TCard\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"block w-min\", [_ctx.loading ? 'cursor-wait' : 'cursor-pointer']]),\n for: _ctx.baseId\n }, [\n _createElementVNode(\"input\", {\n disabled: _ctx.loading,\n class: \"absolute invisible w-0 h-0\",\n id: _ctx.baseId,\n type: \"file\",\n accept: \"video/*\",\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onFileChange($event)))\n }, null, 40, _hoisted_2),\n _createVNode(_component_TCard, { class: \"flex flex-col items-center justify-center w-56 transition-colors duration-200 ease-out h-36 group hover:bg-slate-100\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n (!_ctx.loading)\n ? (_openBlock(), _createBlock(_component_VideoPlusIcon, {\n key: 0,\n class: \"z-10 duration-300 ease-out transform text-secondary group-hover:scale-110\",\n size: 80\n }))\n : (_openBlock(), _createBlock(_component_LoadingSpinner, { key: 1 }))\n ])\n ]),\n _: 1\n })\n ], 10, _hoisted_1)\n ]))\n}","\nimport { TCard } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { v4 as uuid4 } from \"uuid\";\nimport VideoPlusIcon from \"vue-material-design-icons/VideoPlus.vue\";\n// import UploadIcon from \"vue-material-design-icons/Upload.vue\";\nimport LoadingSpinner from \"./LoadingSpinner.vue\";\n\nexport default defineComponent({\n name: \"VideoInput\",\n props: {\n loading: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n baseId: \"a\" + uuid4(),\n };\n },\n methods: {\n onFileChange(event: { target: { files: FileList | null } }) {\n const file = event.target.files?.[0];\n if (file) {\n this.$emit(\"file\", file);\n }\n // reset the input\n (event.target as any).value = \"\";\n },\n },\n computed: {},\n components: { TCard, VideoPlusIcon, LoadingSpinner },\n});\n","import { render } from \"./VideoInput.vue?vue&type=template&id=3c22b6a4&ts=true\"\nimport script from \"./VideoInput.vue?vue&type=script&lang=ts\"\nexport * from \"./VideoInput.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-col w-full space-y-2\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-1\" }, \"Aggiungi fonte\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TInput = _resolveComponent(\"TInput\")!\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_PlusIcon = _resolveComponent(\"PlusIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.modelValue, (source, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"flex items-center mb-4 space-x-2\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_TInput, {\n class: \"bg-gray-100\",\n type: \"text\",\n modelValue: source.description,\n \"onUpdate:modelValue\": ($event: any) => (\n _ctx.onEditSource(index, { ...source, description: $event })\n ),\n placeholder: 'Descrizione (URL, titolo, autore...)'\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"placeholder\"])\n ]),\n _createVNode(_component_TButton, {\n variant: 'icon',\n onClick: ($event: any) => (_ctx.onDeleteSource(index))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ]))\n }), 128)),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_TButton, {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onAddSource())),\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_PlusIcon),\n _createTextVNode(),\n _hoisted_2\n ]),\n _: 1\n })\n ])\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { PostSource } from \"@/models\";\nimport { TButton, TInput } from \"@variantjs/vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\n\nexport default defineComponent({\n name: \"SourceList\",\n props: {\n modelValue: {\n type: Array as PropType,\n required: true,\n },\n },\n data() {\n return {\n defaultSourceOptions: [\n {\n text: \"Tipo di fonte\",\n value: \"\",\n disabled: true,\n },\n {\n text: \"Studio in vitro\",\n value: \"Studio in vitro\",\n },\n {\n text: \"Doppio cieco\",\n value: \"Doppio cieco\",\n },\n {\n text: \"Cieco\",\n value: \"Cieco\",\n },\n {\n text: \"Altro\",\n value: \"Altro\",\n },\n ],\n otherType: \"\",\n };\n },\n methods: {\n onAddSource() {\n this.$emit(\"update:modelValue\", [\n ...this.modelValue,\n {\n source_type: \"\",\n description: \"\",\n },\n ]);\n },\n onEditSource(index: number, source: PostSource) {\n const newSources = [...this.modelValue];\n // const updatedSource = { ...source };\n\n // console.log({ updatedSource });\n\n // if (source.source_type === \"Altro\") {\n // updatedSource.source_type = this.otherType;\n // }\n\n newSources[index] = source;\n this.$emit(\"update:modelValue\", newSources);\n },\n onDeleteSource(index: number) {\n const newSources = [...this.modelValue];\n newSources.splice(index, 1);\n this.$emit(\"update:modelValue\", newSources);\n },\n },\n computed: {},\n components: { TInput, TButton, PlusIcon, CloseIcon },\n});\n","import { render } from \"./SourceList.vue?vue&type=template&id=11a42c8c&ts=true\"\nimport script from \"./SourceList.vue?vue&type=script&lang=ts\"\nexport * from \"./SourceList.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, createVNode as _createVNode, withCtx as _withCtx, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"relative w-56 overflow-hidden rounded h-36\",\n style: {\"margin\":\"-16px !important\"}\n}\nconst _hoisted_2 = { class: \"absolute right-0 z-50 hidden text-light filter hover:text-black drop-shadow-xl group-hover:block\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VideoIcon = _resolveComponent(\"VideoIcon\")!\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_TCard = _resolveComponent(\"TCard\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_TCard, { class: \"transition-colors duration-200 ease-out group hover:bg-slate-100\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n style: _normalizeStyle(\n _ctx.base64Thumbnail\n ? 'background-image: url(' +\n _ctx.base64Thumbnail +\n '); background-size: cover; filter: brightness(0.8)'\n : ''\n ),\n class: \"absolute top-0 left-0 flex flex-col items-center w-56 h-36\"\n }, [\n (!_ctx.video.thumbnail)\n ? (_openBlock(), _createBlock(_component_VideoIcon, {\n key: 0,\n class: \"z-10 duration-300 ease-out transform text-secondary group-hover:scale-110\",\n size: 40\n }))\n : _createCommentVNode(\"\", true)\n ], 4),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"bg-white bg-opacity-30\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('deleteVideo')))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}","\nimport { TCard } from \"@variantjs/vue\";\nimport { TButton } from \"@variantjs/vue\";\n\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Video } from \"../../models\";\nimport VideoIcon from \"vue-material-design-icons/Video.vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\n\nexport default defineComponent({\n name: \"VideoThumbnail\",\n props: {\n video: {\n type: Object as PropType,\n required: true,\n },\n },\n methods: {},\n computed: {\n base64Thumbnail() {\n return `data:image/png;base64,${this.video.thumbnail}`;\n },\n title() {\n // preview of the title cut to 50 chars\n return (\n this.video.title.trim().slice(0, 25) +\n (this.video.title.length > 25 ? \"...\" : \"\")\n );\n },\n },\n components: { TCard, VideoIcon, TButton, CloseIcon },\n});\n","import { render } from \"./VideoThumbnail.vue?vue&type=template&id=c71bdf28&ts=true\"\nimport script from \"./VideoThumbnail.vue?vue&type=script&lang=ts\"\nexport * from \"./VideoThumbnail.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { getBlankPost } from \"../../models/factories\";\nimport TextEditor from \"../ui/TextEditor.vue\";\nimport SegmentedButtons from \"../ui/SegmentedButtons.vue\";\nimport { TButton, TCard, TRichSelect } from \"@variantjs/vue\";\nimport PublishIcon from \"vue-material-design-icons/Publish.vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\nimport VideoInput from \"../ui/VideoInput.vue\";\nimport SourceList from \"./SourceList.vue\";\nimport { Section, Video } from \"../../models\";\nimport { showSuccessNotification, uploadVideo } from \"../../utils\";\nimport VideoThumbnail from \"./VideoThumbnail.vue\";\nimport VideoPlayer from \"../Post/VideoPlayer.vue\";\n\nconst LOCAL_VIDEOS_KEY = \"draft_post_video_ids\";\n\nexport default defineComponent({\n name: \"PostEditor\",\n props: {\n canCreateDisseminationPost: {\n type: Boolean,\n required: true,\n },\n },\n created() {\n this.localVideos = this.getDraftVideos();\n },\n watch: {\n \"post.post_type\": {\n handler(newVal) {\n if (newVal === \"personal\") {\n this.post.section = null;\n this.post.sources = [];\n }\n },\n },\n },\n data() {\n return {\n post: getBlankPost(\n this.canCreateDisseminationPost ? \"dissemination\" : \"personal\"\n ),\n postTypeOptions: [\n {\n label: \"Divulgativo\",\n value: \"dissemination\",\n },\n {\n label: \"Personale\",\n value: \"personal\",\n },\n ],\n publishing: false,\n localVideos: [] as Video[],\n uploadingVideo: false,\n };\n },\n methods: {\n async onPublish() {\n this.publishing = true;\n try {\n await this.mainStore.createPost(\n this.post,\n this.getDraftVideos().map((v) => v.id)\n );\n this.resetLocalDraft();\n this.$emit(\"done\");\n showSuccessNotification(\"Post pubblicato con successo\");\n } catch (e) {\n console.error(e);\n } finally {\n this.publishing = false;\n }\n },\n async onVideoUpload(file: Blob) {\n this.uploadingVideo = true;\n try {\n const response = await uploadVideo(file);\n this.addDraftVideo(response);\n } catch (e) {\n console.error(e);\n } finally {\n this.uploadingVideo = false;\n (this.$refs.videoInput as any).value = null;\n }\n },\n addDraftVideo(video: Video) {\n const localVideos = JSON.parse(\n localStorage.getItem(LOCAL_VIDEOS_KEY) ?? \"[]\"\n ) as Video[];\n localVideos.push(video);\n localStorage.setItem(LOCAL_VIDEOS_KEY, JSON.stringify(localVideos));\n\n this.localVideos = localVideos;\n },\n deleteDraftVideo(video: Video) {\n const localVideos = JSON.parse(\n localStorage.getItem(LOCAL_VIDEOS_KEY) ?? \"[]\"\n ) as Video[];\n const index = localVideos.findIndex((v) => v.id === video.id);\n if (index !== -1) {\n localVideos.splice(index, 1);\n }\n localStorage.setItem(LOCAL_VIDEOS_KEY, JSON.stringify(localVideos));\n\n this.localVideos = localVideos;\n },\n getDraftVideos() {\n return JSON.parse(\n localStorage.getItem(LOCAL_VIDEOS_KEY) ?? \"[]\"\n ) as Video[];\n },\n resetLocalDraft() {\n this.post = getBlankPost(\n this.canCreateDisseminationPost ? \"dissemination\" : \"personal\"\n );\n localStorage.setItem(LOCAL_VIDEOS_KEY, JSON.stringify([]));\n this.localVideos = [];\n },\n },\n computed: {\n ...mapStores(useMainStore),\n invalidPost(): boolean {\n return (\n this.post.content.trim().length === 0 ||\n ((!this.post.section ||\n (this.post.sources ?? []).some(\n (s) => s.description.trim().length === 0\n )) &&\n this.post.post_type === \"dissemination\")\n );\n },\n sectionsOptions(): { value: string; text: string }[] {\n const sections = [...this.mainStore.sections].filter((s) => {\n const authorizedSections = (\n this.mainStore.user?.authorized_sections ?? []\n ).map((s) => String(s));\n\n return (\n authorizedSections.includes(String(s.id)) ||\n authorizedSections.includes(String(s.parent))\n );\n });\n\n function getSortedSections(parentId: string | null): any[] {\n // Filter sections based on the parent id\n return sections\n .filter((section) => section.parent === parentId)\n .sort((a, b) => a.name.localeCompare(b.name)) // Sort sections with the same parent\n .reduce((acc, section) => {\n // Recursively get the sorted subsections and concatenate them\n return acc.concat(section, getSortedSections(section.id));\n }, [] as Section[]);\n }\n\n // Start with parent id as null (root sections)\n const sortedSections = getSortedSections(null);\n\n // Map the sorted sections to the desired format\n return sortedSections.map((s) => ({\n value: s.id,\n text: (s.parent === null ? \"\" : \"- \") + s.name,\n }));\n },\n sectionNames(): string[] {\n return this.mainStore.sections.map((s) => s.name);\n },\n },\n components: {\n TextEditor,\n SegmentedButtons,\n TCard,\n TButton,\n PublishIcon,\n TRichSelect,\n PlusIcon,\n VideoInput,\n SourceList,\n VideoThumbnail,\n VideoPlayer,\n },\n});\n","import { render } from \"./PostEditor.vue?vue&type=template&id=f9c8fbee&ts=true\"\nimport script from \"./PostEditor.vue?vue&type=script&lang=ts\"\nexport * from \"./PostEditor.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { WatchCallback, ref, watch } from \"vue\";\nimport { useMainStore } from \"@/stores/mainStore\";\nimport { wrapWithLoading } from \"@/utils\";\nimport { Section } from \"@/models\";\nimport { SectionFilter } from \"@/const\";\nimport { useRoute } from \"vue-router\";\n\nexport default function useSections() {\n const mainStore = useMainStore();\n const route = useRoute();\n\n const sectionId = route.params.sectionId as string;\n const currentSection = ref(null as Section | null);\n\n const onSectionIdChange = (callback: WatchCallback) =>\n watch(() => route.params.sectionId, callback, { immediate: true });\n\n const fetchSections = async (filters?: SectionFilter) => {\n await wrapWithLoading(async () => {\n await mainStore.getSections(filters);\n });\n };\n\n // Keep currentSection up to date\n onSectionIdChange(async (sectionId) => {\n if (sectionId) {\n currentSection.value = await mainStore.getSectionById(\n sectionId as string\n );\n } else {\n currentSection.value = null;\n }\n });\n\n return {\n currentSection, // Current section\n fetchSections, // Fetch sections\n sectionId, // Current section id from route, if any\n onSectionIdChange, // Watch for section id changes\n };\n}\n","import { useMainStore } from \"@/stores/mainStore\";\nimport { PostFilter } from \"@/const\";\n\nexport default function usePostsByType() {\n const mainStore = useMainStore();\n\n const fetchPosts = async (filters?: PostFilter, page?: number) => {\n mainStore.loadingPosts = true;\n try {\n const moreResults = await mainStore.getPosts(filters, page);\n return moreResults;\n } finally {\n mainStore.loadingPosts = false;\n }\n };\n\n return {\n fetchPosts,\n };\n}\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createVNode as _createVNode, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, vModelText as _vModelText, withDirectives as _withDirectives, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"flex flex-col items-center space-y-4\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"text-xl text-gray-500\" }, \"Nessun post da mostrare. Creane uno!\", -1)\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_6 = [\n _hoisted_4\n]\nconst _hoisted_7 = { class: \"flex flex-col space-y-4\" }\nconst _hoisted_8 = { class: \"flex\" }\nconst _hoisted_9 = { class: \"flex flex-col items-center -mx-4 space-y-4 md:items-center md:mr-0 md:flex-row md:space-y-0 md:space-x-4\" }\nconst _hoisted_10 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_11 = { class: \"flex p-2 bg-opacity-50 rounded-full bg-secondary-light\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"text-lg font-medium\" }, \"Quante monete vuoi donare?\", -1)\nconst _hoisted_13 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_14 = { class: \"flex\" }\nconst _hoisted_15 = { class: \"flex flex-col space-y-4\" }\nconst _hoisted_16 = { class: \"flex flex-col\" }\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"mb-1\" }, \" Aggiungi un commento che spieghi le motivazioni del tuo voto \", -1)\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"text-sm text-muted\" }, \"Il commento sarà pubblico\", -1)\nconst _hoisted_19 = { class: \"flex\" }\nconst _hoisted_20 = {\n key: 0,\n class: \"flex flex-col space-y-4\"\n}\nconst _hoisted_21 = { class: \"font-semibold\" }\nconst _hoisted_22 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PostPreview = _resolveComponent(\"PostPreview\")!\n const _component_PostOutlineIcon = _resolveComponent(\"PostOutlineIcon\")!\n const _component_TextEditor = _resolveComponent(\"TextEditor\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_MDDialog = _resolveComponent(\"MDDialog\")!\n const _component_HandCoinIcon = _resolveComponent(\"HandCoinIcon\")!\n const _component_FactCheckVoter = _resolveComponent(\"FactCheckVoter\")!\n const _component_TTextarea = _resolveComponent(\"TTextarea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.posts, (post) => {\n return (_openBlock(), _createBlock(_component_PostPreview, {\n class: \"pt-8 pb-8 border-b md:pt-10 md:pb-12 last:border-b-0 first:pt-4 last:pb-4\",\n key: post.id,\n post: post,\n comments: _ctx.mainStore.postComments[post.id] ?? [],\n disableComment: _ctx.creatingCommentForPosts.has(post.id),\n onShare: ($event: any) => (_ctx.onShare(post)),\n onFactCheck: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onFactCheck($event))),\n onShowSources: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onShowSources($event))),\n onLike: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onLike($event))),\n onSave: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onSave($event))),\n onDelete: _cache[4] || (_cache[4] = ($event: any) => (_ctx.onDelete($event))),\n onCreateComment: ($event: any) => (_ctx.onCreateComment(post.id, $event)),\n onGiveCoin: _cache[5] || (_cache[5] = ($event: any) => (_ctx.onGiveCoin($event)))\n }, null, 8, [\"post\", \"comments\", \"disableComment\", \"onShare\", \"onCreateComment\"]))\n }), 128)),\n (_ctx.posts.length === 0 && !_ctx.mainStore.loadingPosts)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_PostOutlineIcon, {\n size: \"120\",\n class: \"opacity-50 light-icon\"\n }),\n _hoisted_2\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.mainStore.loadingPosts)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList([1, 2, 3], (index) => {\n return _createElementVNode(\"div\", {\n class: \"my-8\",\n key: index\n }, _hoisted_6)\n }), 64))\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_MDDialog, {\n onCloseDialog: _cache[8] || (_cache[8] = ($event: any) => (_ctx.sharingPost = null)),\n open: _ctx.sharingPost !== null,\n large: true\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Condividi post\")\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n (_ctx.sharingPost)\n ? (_openBlock(), _createBlock(_component_PostPreview, {\n key: 0,\n post: _ctx.sharingPost,\n readonly: true\n }, null, 8, [\"post\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_TextEditor, {\n modelValue: _ctx.sharePostText,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.sharePostText) = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n actions: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_TButton, {\n disabled: _ctx.loadingAction,\n class: \"ml-auto\",\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.doShare()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.loadingAction ? \"Attendi...\" : \"Condividi\"), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"open\"]),\n _createVNode(_component_MDDialog, {\n onCloseDialog: _cache[12] || (_cache[12] = ($event: any) => (_ctx.givingCoinPost = null)),\n open: _ctx.givingCoinPost !== null,\n large: true\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Dona monete\")\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_HandCoinIcon, {\n style: {\"margin-top\":\"-1px\"},\n class: \"text-secondary\",\n size: \"28\"\n })\n ]),\n _hoisted_12\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_TButton, {\n variant: 'secondary',\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.coinsToGive = Math.max(0, _ctx.coinsToGive - 1)))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"-1\")\n ]),\n _: 1\n }),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"w-32 px-2 py-1 border rounded\",\n type: \"number\",\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.coinsToGive) = $event)),\n min: \"0\"\n }, null, 512), [\n [_vModelText, _ctx.coinsToGive]\n ]),\n _createVNode(_component_TButton, {\n variant: 'secondary',\n onClick: _cache[11] || (_cache[11] = ($event: any) => (_ctx.coinsToGive += 1))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" +1 \")\n ]),\n _: 1\n })\n ])\n ])\n ]),\n actions: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_TButton, {\n disabled: _ctx.loadingAction || _ctx.coinsToGive <= 0,\n class: \"ml-auto\",\n onClick: _ctx.doGiveCoin\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.loadingAction ? \"Attendi...\" : \"Dona\"), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"open\"]),\n _createVNode(_component_MDDialog, {\n onCloseDialog: _cache[16] || (_cache[16] = ($event: any) => (_ctx.factCheckingPost = null)),\n open: _ctx.factCheckingPost !== null,\n large: true\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Fact check\")\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_FactCheckVoter, {\n modelValue: _ctx.dirtyFactCheck,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((_ctx.dirtyFactCheck) = $event))\n }, null, 8, [\"modelValue\"]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_16, [\n _hoisted_17,\n _hoisted_18,\n _createVNode(_component_TTextarea, {\n modelValue: _ctx.factCheckComment,\n \"onUpdate:modelValue\": _cache[14] || (_cache[14] = ($event: any) => ((_ctx.factCheckComment) = $event)),\n maxlength: \"500\",\n class: \"w-full mt-4\",\n placeholder: \"Spiega la motivazione del tuo voto\"\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ])\n ]),\n actions: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_TButton, {\n disabled: _ctx.loadingAction || _ctx.factCheckComment.trim().length === 0,\n class: \"ml-auto\",\n onClick: _cache[15] || (_cache[15] = ($event: any) => (_ctx.doFactCheck()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.loadingAction ? \"Attendi...\" : \"Vota\"), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"open\"]),\n _createVNode(_component_MDDialog, {\n onCloseDialog: _cache[17] || (_cache[17] = ($event: any) => (_ctx.showingSourcesPost = null)),\n open: _ctx.showingSourcesPost !== null,\n \"ok-only\": true\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Fonti\")\n ]),\n content: _withCtx(() => [\n (_ctx.showingSourcesPost)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.showingSourcesPost.sources, (source, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n _createElementVNode(\"h4\", _hoisted_21, _toDisplayString(source.source_type), 1),\n _createElementVNode(\"p\", {\n class: \"text-sm\",\n innerHTML: _ctx.stringToTextWithLinks(source.description)\n }, null, 8, _hoisted_22)\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"open\"])\n ]))\n}","import { renderSlot as _renderSlot, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = { class: \"mdc-dialog__container\" }\nconst _hoisted_3 = { class: \"flex items-center mb-4 mdc-dialog__header\" }\nconst _hoisted_4 = [\"id\"]\nconst _hoisted_5 = [\"id\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"-mr-3 mdc-dialog__actions\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"mdc-button__label\" }, \"Ok\", -1)\nconst _hoisted_8 = {\n key: 1,\n class: \"mt-2 mb-2 mr-4\"\n}\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"mdc-dialog__scrim\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: _ctx.dialogId,\n style: {\"z-index\":\"9999999 !important\"},\n class: \"mdc-dialog\"\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: \"px-4 py-4 mdc-dialog__surface\",\n style: _normalizeStyle(\n _ctx.large\n ? _ctx.mediaQueryMdMatches\n ? 'min-width: 600px !important; max-width: 900px !important;'\n : 'min-width: 200px !important; max-width: 370px !important;'\n : ''\n ),\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": \"my-dialog-title\",\n \"aria-describedby\": \"my-dialog-content\"\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h2\", {\n class: \"text-2xl font-medium\",\n id: _ctx.dialogId + '-title'\n }, [\n _renderSlot(_ctx.$slots, \"title\", {}, () => [\n _createTextVNode(\"Title\")\n ])\n ], 8, _hoisted_4),\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"ml-auto mdc-dialog__close\",\n \"data-mdc-dialog-action\": \"close\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n class: \"mdc-dialog__content\",\n id: _ctx.dialogId + '-content'\n }, [\n _renderSlot(_ctx.$slots, \"content\", {}, () => [\n _createTextVNode(\"Content\")\n ])\n ], 8, _hoisted_5),\n (_ctx.okOnly)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_TButton, {\n variant: 'text',\n type: \"button\",\n class: \"mdc-dialog__button\",\n \"data-mdc-dialog-action\": \"ok\"\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$slots.actions?.())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _renderSlot(_ctx.$slots, \"actions\")\n ]))\n : _createCommentVNode(\"\", true)\n ], 4)\n ]),\n _hoisted_9\n ], 8, _hoisted_1))\n}","export const mediaQueryMixin = {\n computed: {\n mediaQueryMdMatches(): boolean {\n const mq = window.matchMedia(\"(min-width: 768px)\");\n return mq.matches;\n },\n },\n};\n","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { MDCDialog } from \"@material/dialog\";\nimport { v4 as uuid4 } from \"uuid\";\nimport { TButton } from \"@variantjs/vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\nimport { mediaQueryMixin } from \"../../mixins\";\nexport default defineComponent({\n name: \"MDDialog\",\n props: {\n open: {\n type: Boolean as PropType,\n default: false,\n },\n large: {\n type: Boolean as PropType,\n default: false,\n },\n okOnly: {\n type: Boolean as PropType,\n default: false,\n },\n },\n mixins: [mediaQueryMixin],\n watch: {\n open() {\n if (this.open) {\n this.mdcComponent?.open();\n } else {\n this.mdcComponent?.close();\n }\n },\n },\n mounted() {\n const dialog = new MDCDialog(\n document.querySelector(\"#\" + this.dialogId) as Element\n );\n this.mdcComponent = dialog;\n dialog.listen(\"MDCDialog:closed\", () => {\n this.$emit(\"closeDialog\");\n });\n if (this.open) {\n dialog.open();\n }\n },\n data() {\n return {\n mdcComponent: null as MDCDialog | null,\n baseUuid: uuid4(),\n };\n },\n methods: {},\n computed: {\n dialogId() {\n return \"a\" + this.baseUuid + \"-mdc-dialog\";\n },\n },\n components: { TButton, CloseIcon },\n});\n","import { render } from \"./MDDialog.vue?vue&type=template&id=e8466178&ts=true\"\nimport script from \"./MDDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./MDDialog.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"flex items-center\" }, [\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"text-lg\" }, \"Quanto è affidabile questo post?\")\n], -1)\nconst _hoisted_2 = { class: \"flex md:flex-row space-y-2 md:space-y-0 items-center mt-4 -ml-2.5 md:space-x-4 flex-col-reverse\" }\nconst _hoisted_3 = [\"for\"]\nconst _hoisted_4 = [\"for\"]\nconst _hoisted_5 = [\"for\"]\nconst _hoisted_6 = [\"for\"]\nconst _hoisted_7 = [\"for\"]\nconst _hoisted_8 = [\"for\"]\nconst _hoisted_9 = [\"for\"]\nconst _hoisted_10 = [\"for\"]\nconst _hoisted_11 = [\"for\"]\nconst _hoisted_12 = [\"for\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TRadio = _resolveComponent(\"TRadio\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '0',\n class: _normalizeClass([\"flex items-center p-2 space-x-1 rounded cursor-pointer\", [\n _ctx.modelValue === 0\n ? 'bg-red-800 hover:bg-red-800 bg-opacity-30 hover:bg-opacity-30'\n : 'hover:bg-light',\n ]])\n }, [\n _createVNode(_component_TRadio, {\n class: \"absolute invisible w-0 h-0 opacity-0\",\n name: _ctx.baseUuid,\n modelValue: _ctx.modelValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('update:modelValue', $event))),\n value: 0,\n id: _ctx.baseUuid + '0'\n }, null, 8, [\"name\", \"modelValue\", \"id\"]),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '0',\n class: \"text-lg cursor-pointer\"\n }, \"0% - 20%\", 8, _hoisted_4)\n ], 10, _hoisted_3),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '20',\n class: _normalizeClass([\"flex items-center p-2 space-x-1 rounded cursor-pointer hover:bg-light\", [\n _ctx.modelValue === 30\n ? 'bg-red-600 hover:bg-red-600 bg-opacity-20 hover:bg-opacity-20'\n : 'hover:bg-light',\n ]])\n }, [\n _createVNode(_component_TRadio, {\n class: \"absolute invisible w-0 h-0 opacity-0\",\n name: _ctx.baseUuid,\n modelValue: _ctx.modelValue,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('update:modelValue', $event))),\n value: 30,\n id: _ctx.baseUuid + '20'\n }, null, 8, [\"name\", \"modelValue\", \"id\"]),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '20',\n class: \"text-lg cursor-pointer\"\n }, \"20% - 40%\", 8, _hoisted_6)\n ], 10, _hoisted_5),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '40',\n class: _normalizeClass([\"flex items-center p-2 space-x-1 rounded cursor-pointer hover:bg-light\", [\n _ctx.modelValue === 50\n ? 'bg-yellow-400 hover:bg-yellow-400 bg-opacity-20 hover:bg-opacity-20'\n : 'hover:bg-light',\n ]])\n }, [\n _createVNode(_component_TRadio, {\n class: \"absolute invisible w-0 h-0 opacity-0\",\n name: _ctx.baseUuid,\n modelValue: _ctx.modelValue,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('update:modelValue', $event))),\n value: 50,\n id: _ctx.baseUuid + '40'\n }, null, 8, [\"name\", \"modelValue\", \"id\"]),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '40',\n class: \"text-lg cursor-pointer\"\n }, \"40% - 60%\", 8, _hoisted_8)\n ], 10, _hoisted_7),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '80',\n class: _normalizeClass([\"flex items-center p-2 space-x-1 rounded cursor-pointer\", [\n _ctx.modelValue === 80\n ? 'bg-green-700 hover:bg-green-700 bg-opacity-20 hover:bg-opacity-20'\n : 'hover:bg-light',\n ]])\n }, [\n _createVNode(_component_TRadio, {\n class: \"absolute invisible w-0 h-0 opacity-0\",\n name: _ctx.baseUuid,\n modelValue: _ctx.modelValue,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('update:modelValue', $event))),\n value: 80,\n id: _ctx.baseUuid + '80'\n }, null, 8, [\"name\", \"modelValue\", \"id\"]),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '80',\n class: \"text-lg cursor-pointer\"\n }, \"60% - 80%\", 8, _hoisted_10)\n ], 10, _hoisted_9),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '100',\n class: _normalizeClass([\"flex items-center p-2 space-x-1 rounded cursor-pointer\", [\n _ctx.modelValue === 100\n ? 'bg-green-700 hover:bg-green-700 bg-opacity-40 hover:bg-opacity-40'\n : 'hover:bg-light',\n ]])\n }, [\n _createVNode(_component_TRadio, {\n class: \"absolute invisible w-0 h-0 opacity-0\",\n name: _ctx.baseUuid,\n modelValue: _ctx.modelValue,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('update:modelValue', $event))),\n value: 100,\n id: _ctx.baseUuid + '100'\n }, null, 8, [\"name\", \"modelValue\", \"id\"]),\n _createElementVNode(\"label\", {\n for: _ctx.baseUuid + '100',\n class: \"text-lg cursor-pointer\"\n }, \"80% - 100%\", 8, _hoisted_12)\n ], 10, _hoisted_11)\n ])\n ]))\n}","\nimport { TRadio } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { v4 as uuid } from \"uuid\";\nexport default defineComponent({\n name: \"FactCheckVoter\",\n props: {\n modelValue: {\n type: Number as PropType,\n default: 0,\n },\n },\n methods: {},\n data() {\n return {\n baseUuid: uuid(),\n };\n },\n computed: {},\n components: {\n TRadio,\n },\n});\n","import { render } from \"./FactCheckVoter.vue?vue&type=template&id=84720160&ts=true\"\nimport script from \"./FactCheckVoter.vue?vue&type=script&lang=ts\"\nexport * from \"./FactCheckVoter.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { TTextarea } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Post } from \"@/models\";\nimport PostPreview from \"./Post/PostPreview.vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"@/stores/mainStore\";\nimport MDDialog from \"./ui/MDDialog.vue\";\nimport TextEditor from \"./ui/TextEditor.vue\";\nimport { TButton } from \"@variantjs/vue\";\nimport PostOutlineIcon from \"vue-material-design-icons/PostOutline.vue\";\nimport { getBlankPostComment, getSharedPost } from \"../models/factories\";\nimport FactCheckVoter from \"./Post/FactCheckVoter.vue\";\nimport { showSuccessNotification } from \"../utils\";\nimport HandCoinIcon from \"vue-material-design-icons/HandCoin.vue\";\n\nexport default defineComponent({\n name: \"PostList\",\n props: {\n posts: {\n type: Array as PropType,\n default: () => [],\n },\n },\n data() {\n return {\n sharingPost: null as null | Post,\n givingCoinPost: null as null | Post,\n coinsToGive: 0,\n factCheckingPost: null as null | Post,\n showingSourcesPost: null as null | Post,\n dirtyFactCheck: 0,\n sharePostText: \"\",\n loadingAction: false,\n creatingCommentForPosts: new Set(),\n factCheckComment: \"\",\n };\n },\n methods: {\n stringToTextWithLinks(text: string) {\n // turns a plain text string into an html paragraph where links are turned to elements\n // and newlines are turned to elements\n const urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n const urlMatches = text.match(urlRegex);\n if (urlMatches) {\n urlMatches.forEach((url) => {\n text = text.replace(\n url,\n `${url}`\n );\n });\n }\n return text.replace(/\\n/g, \"\");\n },\n onShare(post: Post) {\n if (!this.mainStore.userId) {\n this.$router.push({ name: \"Login\" });\n return;\n }\n this.sharingPost = post;\n },\n onGiveCoin(post: Post) {\n if (!this.mainStore.userId) {\n this.$router.push({ name: \"Login\" });\n return;\n }\n this.givingCoinPost = post;\n },\n async onLike(post: Post) {\n if (!this.mainStore.userId) {\n this.$router.push({ name: \"Login\" });\n return;\n }\n await this.mainStore.likePost(post.id, !!post.liked);\n },\n async onSave(post: Post) {\n if (!this.mainStore.userId) {\n this.$router.push({ name: \"Login\" });\n return;\n }\n await this.mainStore.savePost(post.id, !!post.saved);\n },\n async onDelete(post: Post) {\n if (\n !confirm(\n \"Sei sicuro di voler eliminare questo post? Quest'azione è irreversibile.\"\n )\n )\n return;\n await this.mainStore.deletePost(post.id);\n showSuccessNotification(\"Post eliminato con successo\");\n },\n async onCreateComment(postId: string, text: string) {\n if (!this.mainStore.userId) {\n this.$router.push({ name: \"Login\" });\n return;\n }\n this.creatingCommentForPosts.add(postId);\n try {\n await this.mainStore.createComment(postId, getBlankPostComment(text));\n } finally {\n this.creatingCommentForPosts.delete(postId);\n }\n },\n async doShare() {\n this.loadingAction = true;\n try {\n const post = getSharedPost(\n this.sharingPost?.id ?? \"\",\n this.sharePostText\n );\n await this.mainStore.createPost(post);\n this.sharingPost = null;\n showSuccessNotification(\"Post condiviso\");\n } finally {\n this.loadingAction = false;\n }\n },\n async doGiveCoin() {\n if (!this.givingCoinPost || this.coinsToGive <= 0) return;\n this.loadingAction = true;\n try {\n // TODO implement\n this.coinsToGive = 0;\n this.givingCoinPost = null;\n showSuccessNotification(\"Monete donate\");\n } finally {\n this.loadingAction = false;\n }\n },\n async doFactCheck() {\n if (!this.factCheckingPost || this.factCheckComment.trim().length === 0)\n return;\n try {\n this.loadingAction = true;\n await this.mainStore.factCheckPost(\n this.factCheckingPost.id,\n this.dirtyFactCheck\n );\n if (this.factCheckComment) {\n await this.mainStore.createComment(\n this.factCheckingPost.id,\n getBlankPostComment(this.factCheckComment, \"fact_check\")\n );\n this.factCheckComment = \"\";\n }\n this.factCheckingPost = null;\n showSuccessNotification(\"Voto salvato\");\n } finally {\n this.loadingAction = false;\n }\n },\n onFactCheck(post: Post) {\n this.factCheckingPost = post;\n if (post.my_fact_check_vote) {\n this.dirtyFactCheck = post.my_fact_check_vote;\n }\n },\n onShowSources(post: Post) {\n this.showingSourcesPost = post;\n },\n },\n computed: {\n ...mapStores(useMainStore),\n },\n components: {\n PostPreview,\n MDDialog,\n TextEditor,\n TButton,\n FactCheckVoter,\n PostOutlineIcon,\n TTextarea,\n HandCoinIcon,\n },\n});\n","import { render } from \"./PostList.vue?vue&type=template&id=5251cae7&ts=true\"\nimport script from \"./PostList.vue?vue&type=script&lang=ts\"\nexport * from \"./PostList.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport BaseView from \"../BaseView.vue\";\nimport { TabItem } from \"@/const\";\nimport { TButton } from \"@variantjs/vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport { mapStores } from \"pinia\";\nimport FullDialog from \"@/components/ui/FullDialog.vue\";\nimport PostEditor from \"@/components/PostEditor/PostEditor.vue\";\nimport { useMainStore } from \"@/stores/mainStore\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport useSections from \"@/composables/useSections\";\nimport usePostsByType from \"@/composables/usePosts\";\nimport UserAvatar from \"../../components/UserAvatar.vue\";\nimport HomeIcon from \"vue-material-design-icons/Home.vue\";\nimport { PostType } from \"../../models\";\nimport PostList from \"../../components/PostList.vue\";\nimport { VueEternalLoading, LoadAction } from \"@ts-pro/vue-eternal-loading\";\n\nexport default defineComponent({\n name: \"BaseHome\",\n props: {\n postType: {\n type: String as PropType,\n required: false,\n },\n sectionId: {\n type: String,\n required: false,\n },\n },\n methods: {\n onShowPostEditor() {\n this.showPostEditor = true;\n },\n isActiveTab(tabValue: { name: string; params: Record }) {\n return (\n this.$route.name === tabValue.name &&\n // TODO refactor this\n Object.values(this.$route.params)[0] ===\n Object.values(tabValue.params)[0]\n );\n },\n },\n computed: {\n ...mapStores(useMainStore),\n },\n setup(props) {\n const mainStore = useMainStore();\n\n const HOME_TABS: TabItem[] = [\n {\n label: \"Home divulgativa\",\n value: {\n name: \"Home\",\n params: { postType: \"dissemination\" },\n },\n },\n {\n label: \"Home personale\",\n value: {\n name: \"Home\",\n params: { postType: \"personal\" },\n },\n },\n {\n label: \"Home mista\",\n value: {\n name: \"Home\",\n params: { postType: \"mixed\" },\n },\n },\n ];\n\n const tabs: Ref = ref(HOME_TABS);\n\n const { fetchSections, currentSection } = useSections();\n\n const { fetchPosts } = usePostsByType();\n\n const posts = computed(() => mainStore.posts);\n const currentUser = computed(() => mainStore.user);\n\n const isInitialInfiniteLoad = ref(false);\n const currentPage = ref(1);\n\n const onLoadMore = async ({ loaded, noMore, error }: LoadAction) => {\n try {\n currentPage.value++;\n const moreResults = await fetchPosts(\n {\n post_type:\n (props.postType as any) === \"mixed\" ? undefined : props.postType,\n section: props.sectionId,\n },\n currentPage.value\n );\n // console.log(\"moreResults\", moreResults);\n if (!moreResults) {\n noMore();\n } else {\n loaded();\n }\n } catch {\n error();\n }\n };\n\n watch(\n () => currentPage.value,\n (newPage) => {\n if (newPage === 1) {\n isInitialInfiniteLoad.value = true;\n }\n }\n );\n\n // watch for props changes to both sectionId and postType\n watch(\n () => [props.sectionId, props.postType],\n ([newSectionId, newPostType], oldProps) => {\n const [oldSectionId, oldPostType] = oldProps ?? [undefined, undefined];\n // TODO check for validity of newSectionId and newPostType\n\n if (newSectionId && newSectionId != oldSectionId) {\n currentPage.value = 1;\n // if inside of a section, remove the tabs, loads its sub-sections and posts\n tabs.value = [];\n fetchPosts({ section: newSectionId as string }, 1);\n fetchSections({ parent: newSectionId as string });\n } else if (newPostType && newPostType != oldPostType) {\n currentPage.value = 1;\n // if inside of a post type, show the tabs and load posts of that type\n tabs.value = HOME_TABS;\n fetchPosts(\n newPostType === \"mixed\"\n ? undefined\n : { post_type: newPostType as PostType },\n 1\n );\n fetchSections();\n }\n },\n { immediate: true }\n );\n\n const showPostEditor = ref(false);\n\n return {\n tabs,\n showPostEditor,\n posts,\n currentSection,\n currentUser,\n onLoadMore,\n isInitialInfiniteLoad,\n };\n },\n\n components: {\n BaseView,\n TButton,\n PlusIcon,\n FullDialog,\n PostEditor,\n UserAvatar,\n HomeIcon,\n PostList,\n VueEternalLoading,\n },\n});\n","import { render } from \"./BaseHome.vue?vue&type=template&id=0e25eeb3&ts=true\"\nimport script from \"./BaseHome.vue?vue&type=script&lang=ts\"\nexport * from \"./BaseHome.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createSlots as _createSlots } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center space-x-2 text-sm text-muted\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Modifica ordine\", -1)\nconst _hoisted_3 = { class: \"w-full\" }\nconst _hoisted_4 = { class: \"grid grid-cols-12 pt-4 mb-4 text-lg font-medium\" }\nconst _hoisted_5 = { class: \"fixed flex content-end col-span-2 col-start-11 my-auto mt-2 right-2 bottom-4 md:static md:mt-0\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden md:inline\" }, \"Nuovo post\", -1)\nconst _hoisted_7 = {\n key: 0,\n class: \"mb-12\"\n}\nconst _hoisted_8 = { class: \"flex items-center col-span-8 col-start-3 p-4 bg-white rounded-xl\" }\nconst _hoisted_9 = { class: \"text-2xl font-medium\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"flex flex-col text-sm\"\n}\nconst _hoisted_11 = { class: \"flex items-center space-x-2 text-sm text-muted\" }\nconst _hoisted_12 = { class: \"flex items-center\" }\nconst _hoisted_13 = { class: \"flex flex-col w-2/3 ml-4 space-y-2\" }\nconst _hoisted_14 = { class: \"mr-2 text-sm md:text-base\" }\nconst _hoisted_15 = { class: \"ml-auto\" }\nconst _hoisted_16 = { class: \"flex flex-col items-center space-y-4\" }\nconst _hoisted_17 = { class: \"flex items-center space-x-1 cursor-pointer text-link\" }\nconst _hoisted_18 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_19 = { class: \"text-xl font-medium\" }\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-muted\" }, \"follower\", -1)\nconst _hoisted_21 = { class: \"flex flex-col px-1 py-1 space-y-4 overflow-y-auto max-h-72\" }\nconst _hoisted_22 = { class: \"text-link\" }\nconst _hoisted_23 = {\n key: 0,\n class: \"flex items-center space-x-1\"\n}\nconst _hoisted_24 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden md:inline\" }, \"Non seguire più\", -1)\nconst _hoisted_25 = {\n key: 1,\n class: \"flex items-center space-x-1\"\n}\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"\" }, \"Segui\", -1)\nconst _hoisted_27 = { class: \"flex items-center space-x-1 cursor-pointer text-link\" }\nconst _hoisted_28 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_29 = { class: \"text-xl font-medium\" }\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-muted\" }, \"seguiti\", -1)\nconst _hoisted_31 = { class: \"flex flex-col px-1 py-1 space-y-4 overflow-y-auto max-h-72\" }\nconst _hoisted_32 = { class: \"text-link\" }\nconst _hoisted_33 = { class: \"mb-2 ml-4 text-2xl font-medium mt-14\" }\nconst _hoisted_34 = {\n key: 1,\n class: \"flex items-center mt-2 mb-4\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SortIcon = _resolveComponent(\"SortIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_PlusIcon = _resolveComponent(\"PlusIcon\")!\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_CogIcon = _resolveComponent(\"CogIcon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_AccountGroupIcon = _resolveComponent(\"AccountGroupIcon\")!\n const _component_AccountMinusIcon = _resolveComponent(\"AccountMinusIcon\")!\n const _component_AccountPlusIcon = _resolveComponent(\"AccountPlusIcon\")!\n const _component_DropdownMenu = _resolveComponent(\"DropdownMenu\")!\n const _component_PostList = _resolveComponent(\"PostList\")!\n const _component_BaseView = _resolveComponent(\"BaseView\")!\n const _component_PostEditor = _resolveComponent(\"PostEditor\")!\n const _component_FullDialog = _resolveComponent(\"FullDialog\")!\n const _component_SectionSorter = _resolveComponent(\"SectionSorter\")!\n const _component_MDDialog = _resolveComponent(\"MDDialog\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_BaseView, null, _createSlots({\n \"top-row\": _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.isOwnProfile)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n style: {\"background\":\"var(--juno-gradient-light) !important\"},\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onShowPostEditor())),\n class: \"py-4 mx-auto md:py-3 darken-on-hover\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_PlusIcon, { class: \"md:mr-1\" }),\n _hoisted_6\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n main: _withCtx(() => [\n (_ctx.currentUser)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_UserAvatar, {\n size: 'lg',\n class: \"mr-4\",\n url: _ctx.currentUser.profile_picture\n }, null, 8, [\"url\"]),\n _createElementVNode(\"h2\", _hoisted_9, _toDisplayString(_ctx.currentUser.full_name), 1),\n (_ctx.isOwnProfile)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(_component_router_link, { to: { name: 'ProfileSettings' } }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"ml-2\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_CogIcon, { size: \"24\" })\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.currentUser.bio), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_component_DropdownMenu, {\n placement: 'right',\n expanded: _ctx.followersExpanded,\n onToggleExpanded: _cache[2] || (_cache[2] = ($event: any) => (\n _ctx.currentUserFollowers.length > 0\n ? (_ctx.followersExpanded = !_ctx.followersExpanded)\n : null\n ))\n }, {\n activator: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_AccountGroupIcon, {\n class: \"text-secondary-dark\",\n size: \"30\"\n }),\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.currentUser.followers_count), 1)\n ]),\n _hoisted_20\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_21, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.currentUserFollowers, (follower) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: follower.id,\n class: \"flex items-center\"\n }, [\n _createVNode(_component_UserAvatar, {\n size: 'sm',\n url: follower.profile_picture,\n class: \"mr-2\"\n }, null, 8, [\"url\"]),\n _createVNode(_component_router_link, {\n to: {\n name: 'UserProfile',\n params: {\n userId: follower.id,\n },\n }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_22, _toDisplayString(follower.full_name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (follower.id != _ctx.mainStore.user.id)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n class: \"ml-auto text-secondary-dark\",\n onClick: ($event: any) => (_ctx.onFollow(follower.id, follower.is_followed)),\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n (follower.is_followed)\n ? (_openBlock(), _createBlock(_component_AccountMinusIcon, {\n key: 0,\n class: \"-ml-1 md:ml-0.5\"\n }))\n : (_openBlock(), _createBlock(_component_AccountPlusIcon, { key: 1 }))\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n }, 8, [\"expanded\"]),\n (_ctx.mainStore.user && _ctx.currentUser.id != _ctx.mainStore.user.id)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onFollow(_ctx.currentUser.id, _ctx.currentUser.is_followed))),\n variant: 'secondary'\n }, {\n default: _withCtx(() => [\n (_ctx.currentUser.is_followed)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, [\n _createVNode(_component_AccountMinusIcon, { class: \"-ml-1 md:ml-0.5\" }),\n _hoisted_24\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createVNode(_component_AccountPlusIcon),\n _hoisted_26\n ]))\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_DropdownMenu, {\n key: 1,\n placement: 'right',\n expanded: _ctx.followedExpanded,\n onToggleExpanded: _cache[4] || (_cache[4] = ($event: any) => (\n _ctx.currentUserFollowed.length > 0\n ? (_ctx.followedExpanded = !_ctx.followedExpanded)\n : null\n ))\n }, {\n activator: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"span\", _hoisted_29, _toDisplayString(_ctx.currentUserFollowed.length), 1)\n ]),\n _hoisted_30\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_31, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.currentUserFollowed, (follower) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: follower.id,\n class: \"flex items-center\"\n }, [\n _createVNode(_component_UserAvatar, {\n size: 'sm',\n url: follower.profile_picture,\n class: \"mr-2\"\n }, null, 8, [\"url\"]),\n _createVNode(_component_router_link, {\n to: {\n name: 'UserProfile',\n params: {\n userId: follower.id,\n },\n }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_32, _toDisplayString(follower.full_name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (follower.id != _ctx.mainStore.user.id)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n class: \"ml-auto text-secondary-dark\",\n onClick: ($event: any) => (_ctx.onFollow(follower.id, follower.is_followed)),\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n (follower.is_followed)\n ? (_openBlock(), _createBlock(_component_AccountMinusIcon, {\n key: 0,\n class: \"-ml-1 md:ml-0.5\"\n }))\n : (_openBlock(), _createBlock(_component_AccountPlusIcon, { key: 1 }))\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n }, 8, [\"expanded\"]))\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"h3\", _hoisted_33, \" Post di \" + _toDisplayString(_ctx.currentUser?.full_name), 1),\n (_ctx.currentUser?.user_type === 'disseminator')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_34, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.tabs, (tab, index) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n key: tab.value,\n class: _normalizeClass([\n _ctx.isActiveTab(tab.value) ? 'active-tab' : 'inactive-tab',\n index === 0 ? 'ml-auto' : '',\n index === _ctx.tabs.length - 1 ? 'mr-auto' : '',\n ]),\n to: tab.value\n }, {\n default: _withCtx(() => [\n _createVNode(_component_TButton, { variant: 'tab' }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(tab.label), 1)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"class\", \"to\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_PostList, {\n class: _normalizeClass([{ 'mt-8': _ctx.currentUser?.user_type !== 'disseminator' }, \"-mx-2 md:mx-0\"]),\n posts: _ctx.posts\n }, null, 8, [\"class\", \"posts\"])\n ]),\n _: 2\n }, [\n (_ctx.isOwnProfile)\n ? {\n name: \"sections-top\",\n fn: _withCtx(() => [\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"mb-6 -mt-4 -ml-2\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onSortSections()))\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_SortIcon, { size: \"18\" }),\n _hoisted_2\n ])\n ]),\n _: 1\n })\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1024),\n _createVNode(_component_FullDialog, {\n onCloseDialog: _cache[6] || (_cache[6] = ($event: any) => (_ctx.showPostEditor = false)),\n open: _ctx.showPostEditor\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Nuovo post\")\n ]),\n content: _withCtx(() => [\n _createVNode(_component_PostEditor, {\n onDone: _cache[5] || (_cache[5] = ($event: any) => (_ctx.showPostEditor = false)),\n canCreateDisseminationPost: \n _ctx.currentUser?.user_type === 'disseminator'\n \n }, null, 8, [\"canCreateDisseminationPost\"])\n ]),\n _: 1\n }, 8, [\"open\"]),\n _createVNode(_component_MDDialog, {\n onCloseDialog: _cache[8] || (_cache[8] = ($event: any) => (_ctx.showSortSectionsDialog = false)),\n open: _ctx.showSortSectionsDialog,\n large: true\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Riordina sezioni\")\n ]),\n content: _withCtx(() => [\n (_ctx.sectionsSortOption)\n ? (_openBlock(), _createBlock(_component_SectionSorter, {\n key: 0,\n sections: _ctx.mainStore.topLevelSections,\n onClose: _cache[7] || (_cache[7] = ($event: any) => (_ctx.showSortSectionsDialog = false)),\n \"sort-type\": _ctx.sectionsSortOption\n }, null, 8, [\"sections\", \"sort-type\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"open\"])\n ]))\n}","import { WatchCallback, ref, watch } from \"vue\";\nimport { useMainStore } from \"@/stores/mainStore\";\nimport { wrapWithLoading } from \"@/utils\";\nimport { PreviewUser, Section, User } from \"@/models\";\nimport { SectionFilter } from \"@/const\";\nimport { useRoute } from \"vue-router\";\n\nexport default function useSections() {\n const mainStore = useMainStore();\n const route = useRoute();\n\n // const userId = route.params.userId as string;\n const currentUser = ref(null as User | null);\n const currentUserFollowers = ref([] as PreviewUser[]);\n const currentUserFollowed = ref([] as PreviewUser[]);\n\n const onUserIdChange = (callback: WatchCallback) =>\n watch(() => route.params.userId, callback, { immediate: true });\n\n // Keep currentSection up to date\n onUserIdChange(async (userId) => {\n if (userId) {\n currentUser.value = await mainStore.getUserById(userId);\n currentUserFollowers.value = await mainStore.getUserFollowersByUserId(\n userId\n );\n currentUserFollowed.value = await mainStore.getUserFollowedByUserId(\n userId\n );\n } else {\n currentUser.value = null;\n currentUserFollowers.value = [];\n }\n });\n\n return {\n currentUser,\n currentUserFollowers,\n currentUserFollowed,\n };\n}\n","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-muted\" }, \"Ordina per:\", -1)\nconst _hoisted_2 = { class: \"flex flex-col mt-2 mb-4 space-y-2\" }\nconst _hoisted_3 = { class: \"flex items-center\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2\" }, \"Ordine alfabetico\", -1)\nconst _hoisted_5 = { class: \"flex items-center\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2\" }, \"Ordine cronologico\", -1)\nconst _hoisted_7 = { class: \"flex items-center\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2\" }, \"Più condivise\", -1)\nconst _hoisted_9 = { class: \"flex items-center\" }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2\" }, \"Personalizzato\", -1)\nconst _hoisted_11 = {\n class: \"flex items-center p-2 my-2 space-x-2 transition-colors duration-100 ease-in-out rounded-sm cursor-move group hover:bg-light\",\n style: {\"min-width\":\"300px\"}\n}\nconst _hoisted_12 = { class: \"flex items-center w-full mt-4 space-x-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TRadio = _resolveComponent(\"TRadio\")!\n const _component_DragVerticalIcon = _resolveComponent(\"DragVerticalIcon\")!\n const _component_draggable = _resolveComponent(\"draggable\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createVNode(_component_TRadio, {\n name: \"options\",\n modelValue: _ctx.dirtySortType,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.dirtySortType) = $event)),\n value: \"alphabetical\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_4\n ]),\n _createElementVNode(\"label\", _hoisted_5, [\n _createVNode(_component_TRadio, {\n name: \"options\",\n modelValue: _ctx.dirtySortType,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.dirtySortType) = $event)),\n value: \"chronological\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_6\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createVNode(_component_TRadio, {\n name: \"options\",\n modelValue: _ctx.dirtySortType,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.dirtySortType) = $event)),\n value: \"popularity\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_8\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createVNode(_component_TRadio, {\n name: \"options\",\n modelValue: _ctx.dirtySortType,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.dirtySortType) = $event)),\n value: \"custom\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_10\n ])\n ]),\n _createVNode(_component_draggable, {\n modelValue: _ctx.sortedSections,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.sortedSections) = $event)),\n \"ghost-class\": \"drag-ghost\",\n itemKey: 'id',\n animation: \"100\",\n disabled: _ctx.dirtySortType !== 'custom',\n class: _normalizeClass({ 'select-none opacity-30': _ctx.dirtySortType !== 'custom' })\n }, {\n item: _withCtx(({ element }) => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_DragVerticalIcon, { class: \"transition-opacity duration-100 ease-in-out opacity-20 group-hover:opacity-80\" }),\n _createElementVNode(\"p\", null, _toDisplayString(element?.name), 1)\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"disabled\", \"class\"]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_TButton, {\n variant: 'secondary',\n class: \"ml-auto\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.onSave())),\n disabled: !_ctx.thereAreChanges\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Applica\")\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('close')))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Annulla\")\n ]),\n _: 1\n })\n ])\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Section } from \"@/models\";\nimport draggable from \"vuedraggable\";\nimport DragVerticalIcon from \"vue-material-design-icons/DragVertical.vue\";\nimport { TButton, TRadio } from \"@variantjs/vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"@/stores/mainStore\";\n\nexport type SortOption = \"alphabetical\" | \"chrono\" | \"most_shared\" | \"custom\";\n\nexport default defineComponent({\n name: \"SectionSorter\",\n props: {\n sections: {\n type: Array as PropType,\n required: true,\n },\n sortType: {\n type: String as PropType,\n default: \"alphabetical\",\n },\n },\n watch: {\n serializedSectionsAndSortType: {\n immediate: true,\n handler() {\n this.sortedSections = [...this.sections];\n this.dirtySortType = this.sortType;\n },\n },\n },\n data() {\n return {\n sortedSections: [] as Section[],\n dirtySortType: \"\" as SortOption,\n };\n },\n methods: {\n async onSave() {\n await this.mainStore.setSectionSorting(\n this.dirtySortType,\n this.sortedSections.map((s) => s.id)\n );\n // once saved, refresh the page\n window.location.reload();\n },\n },\n computed: {\n ...mapStores(useMainStore),\n thereAreChanges() {\n return (\n this.dirtySortType !== this.sortType ||\n this.sortedSections.some((s, i) => s.id !== this.sections[i].id)\n );\n },\n serializedSectionsAndSortType() {\n return JSON.stringify({\n sections: this.sections.map((s) => s.id),\n sortType: this.sortType,\n });\n },\n },\n components: { draggable, DragVerticalIcon, TRadio, TButton },\n});\n","import { render } from \"./SectionSorter.vue?vue&type=template&id=477f7507&ts=true\"\nimport script from \"./SectionSorter.vue?vue&type=script&lang=ts\"\nexport * from \"./SectionSorter.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport BaseView from \"../BaseView.vue\";\nimport { TabItem } from \"@/const\";\nimport { TButton } from \"@variantjs/vue\";\nimport PlusIcon from \"vue-material-design-icons/Plus.vue\";\nimport FullDialog from \"@/components/ui/FullDialog.vue\";\nimport MDDialog from \"@/components/ui/MDDialog.vue\";\nimport PostEditor from \"@/components/PostEditor/PostEditor.vue\";\nimport { useMainStore } from \"@/stores/mainStore\";\nimport { computed, Ref, ref, watch } from \"vue\";\nimport useSections from \"@/composables/useSections\";\nimport usePostsByType from \"@/composables/usePosts\";\nimport UserAvatar from \"../../components/UserAvatar.vue\";\nimport { PostType } from \"../../models\";\nimport PostList from \"../../components/PostList.vue\";\nimport useUser from \"../../composables/useUser\";\nimport AccountPlusIcon from \"vue-material-design-icons/AccountPlus.vue\";\nimport AccountMinusIcon from \"vue-material-design-icons/AccountMinus.vue\";\nimport AccountGroupIcon from \"vue-material-design-icons/AccountGroup.vue\";\nimport SortIcon from \"vue-material-design-icons/Sort.vue\";\nimport CogIcon from \"vue-material-design-icons/Cog.vue\";\nimport SectionSorter, {\n SortOption,\n} from \"../../components/Sections/SectionSorter.vue\";\nimport DropdownMenu from \"../../components/ui/DropdownMenu.vue\";\n\nexport default defineComponent({\n name: \"UserProfile\",\n props: {\n postType: {\n type: String as PropType,\n default: \"mixed\",\n required: false,\n },\n sectionId: {\n type: String,\n required: false,\n },\n userId: {\n type: String,\n required: true,\n },\n },\n methods: {\n onShowPostEditor() {\n this.showPostEditor = true;\n },\n isActiveTab(tabValue: { name: string; params: Record }) {\n return (\n this.$route.name === tabValue.name &&\n // TODO refactor this\n Object.values(this.$route.params)[1] ===\n Object.values(tabValue.params)[0]\n );\n },\n },\n setup(props) {\n const mainStore = useMainStore();\n\n const PROFILE_TABS: TabItem[] = [\n {\n label: \"Divulgativi\",\n value: {\n name: \"UserProfile\",\n params: { postType: \"dissemination\" },\n },\n },\n {\n label: \"Personali\",\n value: {\n name: \"UserProfile\",\n params: { postType: \"personal\" },\n },\n },\n {\n label: \"Misti\",\n value: {\n name: \"UserProfile\",\n params: { postType: \"mixed\" },\n },\n },\n ];\n\n const tabs: Ref = ref(PROFILE_TABS);\n\n const { fetchSections, currentSection } = useSections();\n\n const { fetchPosts } = usePostsByType();\n const { currentUser, currentUserFollowers, currentUserFollowed } =\n useUser();\n\n const posts = computed(() => mainStore.posts);\n const isOwnProfile = computed(() => mainStore.user?.id == props.userId);\n\n const sectionsSortOption = ref(null) as Ref;\n\n const showSortSectionsDialog = ref(false);\n const onSortSections = () => {\n showSortSectionsDialog.value = true;\n };\n\n // watch for props changes to both sectionId and postType\n watch(\n () => [props.sectionId, props.postType, props.userId],\n ([newSectionId, newPostType, newUserId], oldProps) => {\n const [oldSectionId, oldPostType, oldUserId] = oldProps ?? [\n undefined,\n undefined,\n undefined,\n ];\n\n // TODO check for validity of newSectionId and newPostType\n const postFilters = {\n ...(newSectionId ? { section: newSectionId } : {}),\n ...(newPostType ? { post_type: newPostType as PostType } : {}),\n author: newUserId,\n };\n\n const sectionFilters = {\n ...(newSectionId ? { parent: newSectionId } : {}),\n relevant_for: newUserId,\n };\n\n const shouldRefetch = !(\n newSectionId === oldSectionId &&\n newPostType === oldPostType &&\n newUserId === oldUserId\n );\n\n if (shouldRefetch) {\n fetchPosts(postFilters);\n fetchSections(sectionFilters);\n if (isOwnProfile.value) {\n mainStore.getSectionSorting().then((res) => {\n sectionsSortOption.value = res.sort_type;\n });\n }\n\n tabs.value = newSectionId ? [] : PROFILE_TABS;\n }\n },\n { immediate: true }\n );\n\n const showPostEditor = ref(false);\n\n const onFollow = async (userId: string, isFollowed: boolean) => {\n if (currentUser.value) {\n await mainStore.followUser(userId, isFollowed);\n // refetch current user & followers\n // TODO simplify\n currentUser.value = await mainStore.getUserById(currentUser.value.id);\n currentUserFollowers.value = await mainStore.getUserFollowersByUserId(\n currentUser.value.id\n );\n currentUserFollowed.value = await mainStore.getUserFollowedByUserId(\n currentUser.value.id\n );\n }\n };\n\n const followersExpanded = ref(false);\n const followedExpanded = ref(false);\n\n return {\n tabs,\n showPostEditor,\n posts,\n currentSection,\n currentUser,\n currentUserFollowers,\n currentUserFollowed,\n isOwnProfile,\n onSortSections,\n showSortSectionsDialog,\n mainStore,\n sectionsSortOption,\n onFollow,\n followersExpanded,\n followedExpanded,\n };\n },\n\n components: {\n BaseView,\n TButton,\n PlusIcon,\n FullDialog,\n PostEditor,\n UserAvatar,\n PostList,\n AccountPlusIcon,\n AccountMinusIcon,\n AccountGroupIcon,\n SortIcon,\n MDDialog,\n SectionSorter,\n CogIcon,\n DropdownMenu,\n },\n});\n","import { render } from \"./UserProfile.vue?vue&type=template&id=31616da8&ts=true\"\nimport script from \"./UserProfile.vue?vue&type=script&lang=ts\"\nexport * from \"./UserProfile.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers } from \"vue\"\nimport _imports_0 from '@/assets/logo.png'\nimport _imports_1 from '@/assets/logo_mono.png'\n\n\nconst _hoisted_1 = { class: \"flex flex-col items-center\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"absolute top-0 left-0 w-screen h-screen bg-gray-900 bg-opacity-60\" }, null, -1)\nconst _hoisted_3 = { class: \"relative z-10 flex items-center w-full py-2 bg-white shadow-lg\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"hidden ml-8 md:block md:w-28\",\n src: _imports_0\n}, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"w-5 ml-4 mr-4 md:hidden\",\n src: _imports_1\n}, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"static md:-translate-x-1/2 md:-translate-y-1/2 md:transform md:mx-auto md:absolute md:text-3xl top-1/2 left-1/2\" }, \" Unisciti a Juno \", -1)\nconst _hoisted_7 = { class: \"absolute z-10 w-11/12 p-8 transform -translate-x-1/2 -translate-y-1/2 bg-white rounded-lg shadow-lg md:w-3/5 lg:w-2/5 top-1/2 left-1/2\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"h4\", { class: \"mx-auto mb-8 text-2xl font-medium\" }, \"Entra in Juno\", -1)\nconst _hoisted_9 = { class: \"flex flex-col space-y-2\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"mt-2 text-error\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_TInput = _resolveComponent(\"TInput\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, { to: { path: '/' } }, {\n default: _withCtx(() => [\n _hoisted_4,\n _hoisted_5\n ]),\n _: 1\n }),\n _hoisted_6\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"form\", {\n class: \"flex flex-col\",\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.onSubmit()), [\"prevent\"]))\n }, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_TInput, {\n modelValue: _ctx.username,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.username) = $event)),\n label: \"Username\",\n placeholder: \"Username\",\n class: \"w-full\",\n required: \"true\"\n }, null, 8, [\"modelValue\"]),\n _createVNode(_component_TInput, {\n modelValue: _ctx.password,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.password) = $event)),\n label: \"Password\",\n placeholder: \"Password\",\n class: \"w-full\",\n type: \"password\",\n required: \"true\"\n }, null, 8, [\"modelValue\"])\n ]),\n (_ctx.showError)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, \" Username o password errati \"))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_TButton, {\n class: \"mx-auto mt-6 text-lg\",\n type: \"submit\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Login\")\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"mt-4 text-muted hover:underline w-max\",\n to: { name: 'Register' }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Non hai un account? Registrati \")\n ]),\n _: 1\n })\n ], 32)\n ])\n ]))\n}","\nimport { TButton, TInput } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../stores/mainStore\";\nexport default defineComponent({\n name: \"LoginView\",\n props: {},\n data() {\n return {\n username: \"\",\n password: \"\",\n showError: false,\n };\n },\n methods: {\n async onSubmit() {\n try {\n const user = await this.mainStore.login(this.username, this.password);\n if (user.registration_complete) {\n this.$router.push(\"/\");\n } else {\n this.$router.push(\"/me\");\n }\n } catch (e: any) {\n if (e.response.status === 400) {\n this.showError = true;\n } else {\n throw e;\n }\n }\n },\n },\n computed: {\n ...mapStores(useMainStore),\n },\n components: { TInput, TButton },\n});\n","import { render } from \"./Login.vue?vue&type=template&id=201c0a40&ts=true\"\nimport script from \"./Login.vue?vue&type=script&lang=ts\"\nexport * from \"./Login.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers } from \"vue\"\nimport _imports_0 from '@/assets/logo.png'\nimport _imports_1 from '@/assets/logo_mono.png'\n\n\nconst _hoisted_1 = { class: \"flex flex-col items-center\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"absolute top-0 left-0 w-screen h-screen bg-gray-900 bg-opacity-60\" }, null, -1)\nconst _hoisted_3 = { class: \"relative z-10 flex items-center w-full py-2 bg-white shadow-lg\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"hidden ml-8 md:block md:w-28\",\n src: _imports_0\n}, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"w-5 ml-4 mr-4 md:hidden\",\n src: _imports_1\n}, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"static md:-translate-x-1/2 md:-translate-y-1/2 md:transform md:mx-auto md:absolute md:text-3xl top-1/2 left-1/2\" }, \" Unisciti a Juno \", -1)\nconst _hoisted_7 = { class: \"absolute z-10 w-11/12 p-8 transform -translate-x-1/2 -translate-y-1/2 bg-white rounded-lg shadow-lg md:w-3/5 lg:w-2/5 top-1/2 left-1/2\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"h4\", { class: \"mx-auto mb-8 text-2xl font-medium\" }, \"Crea un account\", -1)\nconst _hoisted_9 = { class: \"flex flex-col space-y-2\" }\nconst _hoisted_10 = { class: \"relative\" }\nconst _hoisted_11 = { class: \"relative\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-xl\" }, \"Registrati\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_TInput = _resolveComponent(\"TInput\")!\n const _component_CalendarInput = _resolveComponent(\"CalendarInput\")!\n const _component_EyeIcon = _resolveComponent(\"EyeIcon\")!\n const _component_EyeOffIcon = _resolveComponent(\"EyeOffIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, { to: { path: '/' } }, {\n default: _withCtx(() => [\n _hoisted_4,\n _hoisted_5\n ]),\n _: 1\n }),\n _hoisted_6\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"form\", {\n class: \"flex flex-col\",\n onSubmit: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (_ctx.onSubmit()), [\"prevent\"]))\n }, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_TInput, {\n modelValue: _ctx.username,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.username) = $event)),\n autocomplete: \"off\",\n label: \"Username\",\n placeholder: \"Username\",\n class: \"w-full\",\n required: \"true\"\n }, null, 8, [\"modelValue\"]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors['username'] ?? [], (err, index) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: index,\n class: \"my-1 text-error\"\n }, _toDisplayString(_ctx.registrationErrors[err] ?? err), 1))\n }), 128)),\n _createVNode(_component_TInput, {\n autocomplete: \"off\",\n modelValue: _ctx.email,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.email) = $event)),\n label: \"Email\",\n placeholder: \"Email\",\n class: \"w-full\",\n required: \"true\"\n }, null, 8, [\"modelValue\"]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors['email'] ?? [], (err, index) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: index,\n class: \"my-1 text-error\"\n }, _toDisplayString(_ctx.registrationErrors[err] ?? err), 1))\n }), 128)),\n _createVNode(_component_CalendarInput, {\n modelValue: _ctx.birthDate,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.birthDate) = $event))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Data di nascita\")\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors['birth_date'] ?? [], (err, index) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: index,\n class: \"my-1 text-error\"\n }, _toDisplayString(_ctx.registrationErrors[err] ?? err), 1))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_TInput, {\n autocomplete: \"new-password\",\n modelValue: _ctx.password,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.password) = $event)),\n label: \"Password\",\n placeholder: \"Password\",\n class: \"w-full\",\n type: _ctx.showPassword ? 'text' : 'password',\n required: \"true\"\n }, null, 8, [\"modelValue\", \"type\"]),\n _createVNode(_component_TButton, {\n class: \"absolute top-0 z-10 right-2 opacity-70\",\n style: {\"margin-top\":\"1px\"},\n variant: 'icon',\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.showPassword = !_ctx.showPassword))\n }, {\n default: _withCtx(() => [\n (!_ctx.showPassword)\n ? (_openBlock(), _createBlock(_component_EyeIcon, { key: 0 }))\n : (_openBlock(), _createBlock(_component_EyeOffIcon, { key: 1 }))\n ]),\n _: 1\n })\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors['password'] ?? [], (err, index) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: index,\n class: \"my-1 text-error\"\n }, _toDisplayString(_ctx.registrationErrors[err] ?? err), 1))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_TInput, {\n autocomplete: \"new-password\",\n modelValue: _ctx.passwordConfirm,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.passwordConfirm) = $event)),\n label: \"Conferma password\",\n placeholder: \"Conferma password\",\n class: \"w-full\",\n type: _ctx.showConfirmPassword ? 'text' : 'password',\n required: \"true\"\n }, null, 8, [\"modelValue\", \"type\"]),\n _createVNode(_component_TButton, {\n class: \"absolute top-0 z-10 right-2 opacity-70\",\n style: {\"margin-top\":\"1px\"},\n variant: 'icon',\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.showConfirmPassword = !_ctx.showConfirmPassword))\n }, {\n default: _withCtx(() => [\n (!_ctx.showConfirmPassword)\n ? (_openBlock(), _createBlock(_component_EyeIcon, { key: 0 }))\n : (_openBlock(), _createBlock(_component_EyeOffIcon, { key: 1 }))\n ]),\n _: 1\n })\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors['re_password'] ?? [], (err, index) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: index,\n class: \"my-1 text-error\"\n }, _toDisplayString(_ctx.registrationErrors[err] ?? err), 1))\n }), 128))\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.errors['non_field_errors'] ?? [], (err, index) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: index,\n class: \"my-1 text-error\"\n }, _toDisplayString(_ctx.registrationErrors[err] ?? err), 1))\n }), 128)),\n _createVNode(_component_TButton, {\n type: \"submit\",\n class: \"mx-auto mt-6\"\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"mt-4 text-muted hover:underline w-max\",\n to: { name: 'Login' }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Hai già un account? Accedi \")\n ]),\n _: 1\n })\n ], 32)\n ])\n ]))\n}","import { renderSlot as _renderSlot, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, withCtx as _withCtx, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative block w-full transition duration-100 ease-in-out rounded shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50 disabled:cursor-not-allowed\" }\nconst _hoisted_2 = [\"for\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"text-sm font-light text-danger-dark\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CalendarTodayIcon = _resolveComponent(\"CalendarTodayIcon\")!\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_date_picker = _resolveComponent(\"date-picker\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", { for: _ctx.elementId }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([{\n 'border-danger-dark focus-within:border-danger-dark': _ctx.$slots.errors,\n }, \"\"])\n }, [\n _createElementVNode(\"label\", {\n class: _normalizeClass([{ hidden: _ctx.proxyModelValue }, \"absolute text-gray-400 transform -translate-y-1/2 top-1/2 left-3\"])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2),\n _createVNode(_component_date_picker, {\n class: \"w-full h-full\",\n id: _ctx.elementId,\n onOpen: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onOpen())),\n open: _ctx.calendarOpen,\n onClose: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onClose())),\n onFocus: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('focus'))),\n value: _ctx.proxyModelValue,\n \"onUpdate:value\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.proxyModelValue) = $event)),\n type: \"date\",\n ref: 'calendar-' + _ctx.elementId,\n \"show-second\": false,\n formatter: _ctx.formatter,\n \"title-time-format\": 'DD-MM-YYYY',\n required: \"\"\n }, {\n \"icon-calendar\": _withCtx(() => [\n false\n ? (_openBlock(), _createBlock(_component_CalendarTodayIcon, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n \"icon-clear\": _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"id\", \"open\", \"value\", \"formatter\"])\n ], 2),\n (_ctx.$slots.errors?.())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"errors\")\n ]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ]))\n}","\nimport { defineComponent } from \"@vue/runtime-core\";\nimport { v4 as uuid4 } from \"uuid\";\nimport CalendarTodayIcon from \"vue-material-design-icons/CalendarToday.vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\nimport DatePicker from \"vue-datepicker-next\";\nimport \"vue-datepicker-next/index.css\";\nimport \"vue-datepicker-next/locale/it\";\n\nexport default defineComponent({\n name: \"CalendarInput\",\n components: { DatePicker, CalendarTodayIcon, CloseIcon },\n props: [\"modelValue\"],\n created() {\n this.elementId = uuid4();\n },\n data() {\n return {\n calendarOpen: false,\n elementId: \"\",\n formatter: {\n //[optional] Date to String\n stringify: (date: Date) => {\n return date ? date.toLocaleDateString() : \"\";\n },\n //[optional] String to Date\n parse: (value: string) => {\n return value ? new Date(value) : null;\n },\n //[optional] getWeekNumber\n getWeek: (date: any) => {\n return; // a number\n },\n },\n };\n },\n methods: {\n onOpen() {\n this.calendarOpen = true;\n this.$emit(\"open\");\n },\n onClose() {\n this.calendarOpen = false;\n this.$emit(\"close\");\n },\n close() {\n this.calendarOpen = false;\n },\n },\n computed: {\n proxyModelValue: {\n get() {\n if (!this.modelValue) {\n return null;\n }\n if (typeof this.modelValue === \"string\") {\n // TODO move this to converter in API module\n return new Date(this.modelValue.replace(\" \", \"T\"));\n }\n\n return this.modelValue;\n },\n set(val: unknown) {\n this.$emit(\"update:modelValue\", val);\n },\n },\n },\n});\n","import { render } from \"./CalendarInput.vue?vue&type=template&id=bc682eec&ts=true\"\nimport script from \"./CalendarInput.vue?vue&type=script&lang=ts\"\nexport * from \"./CalendarInput.vue?vue&type=script&lang=ts\"\n\nimport \"./CalendarInput.vue?vue&type=style&index=0&id=bc682eec&lang=css\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { TButton, TInput } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../stores/mainStore\";\nimport { registrationErrors } from \"../const\";\nimport { showSuccessNotification } from \"../utils\";\nimport CalendarInput from \"../components/ui/CalendarInput.vue\";\nimport EyeIcon from \"vue-material-design-icons/Eye.vue\";\nimport EyeOffIcon from \"vue-material-design-icons/EyeOff.vue\";\n\nexport default defineComponent({\n name: \"RegisterView\",\n props: {},\n methods: {\n async onSubmit() {\n try {\n await this.mainStore.registerUser(\n this.username,\n this.email,\n this.password,\n this.passwordConfirm,\n this.birthDate as Date\n );\n this.$router.push({ name: \"Login\" });\n showSuccessNotification(\"Account creato con successo\");\n } catch (e: any) {\n console.error(e);\n if (e.response?.status === 400) {\n this.errors = e.response.data;\n } else {\n throw e;\n }\n }\n },\n },\n data() {\n return {\n username: \"\",\n email: \"\",\n password: \"\",\n passwordConfirm: \"\",\n birthDate: null as Date | null,\n errors: {} as Record,\n registrationErrors,\n showPassword: false,\n showConfirmPassword: false,\n };\n },\n computed: {\n ...mapStores(useMainStore),\n },\n components: { TInput, TButton, CalendarInput, EyeOffIcon, EyeIcon },\n});\n","import { render } from \"./Register.vue?vue&type=template&id=45c0c1cd&ts=true\"\nimport script from \"./Register.vue?vue&type=script&lang=ts\"\nexport * from \"./Register.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"grid min-h-screen grid-cols-12 bg-light\" }\nconst _hoisted_2 = { class: \"col-span-10 col-start-2 px-4 py-8 my-12 bg-white md:py-12 md:px-20 rounded-2xl\" }\nconst _hoisted_3 = { class: \"flex flex-col items-start space-y-4 md:flex-row md:space-y-0 md:space-x-8\" }\nconst _hoisted_4 = { class: \"w-2/3\" }\nconst _hoisted_5 = { class: \"text-2xl font-medium\" }\nconst _hoisted_6 = { class: \"mt-2 text-sm text-muted\" }\nconst _hoisted_7 = { class: \"w-full mt-8\" }\nconst _hoisted_8 = { class: \"flex items-center mb-2 space-x-2\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"h4\", { class: \"text-lg font-medium\" }, \"Bio\", -1)\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = {\n key: 1,\n class: \"text-muted\"\n}\nconst _hoisted_13 = {\n key: 2,\n class: \"mt-0.5\"\n}\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"mt-20 mb-8 text-2xl font-medium\" }, \"Post salvati\", -1)\nconst _hoisted_15 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_AvatarSelector = _resolveComponent(\"AvatarSelector\")!\n const _component_EditIcon = _resolveComponent(\"EditIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_TTextarea = _resolveComponent(\"TTextarea\")!\n const _component_DoneIcon = _resolveComponent(\"DoneIcon\")!\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_PostList = _resolveComponent(\"PostList\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_AvatarSelector, {\n url: _ctx.mainStore.user?.profile_picture\n }, null, 8, [\"url\"]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"h3\", _hoisted_5, _toDisplayString(_ctx.mainStore.user?.full_name), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.mainStore.user?.email), 1),\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.mainStore.user?.user_type === \"disseminator\"\n ? \"Divulgatore\"\n : \"Membro\"), 1),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n (!_ctx.editingBio)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n class: \"-mb-0.5\",\n variant: 'icon',\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.editingBio = true))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_EditIcon, { size: \"22\" })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n (!_ctx.editingBio)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_10, [\n (_ctx.mainStore.user?.bio)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_ctx.mainStore.user?.bio), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"Non hai ancora scritto una bio\"))\n ]))\n : (_openBlock(), _createBlock(_component_TTextarea, {\n key: 1,\n modelValue: _ctx.dirtyBio,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.dirtyBio) = $event)),\n class: \"w-full mt-4\",\n placeholder: \"Scrivi qualcosa su di te\",\n maxlength: \"300\"\n }, null, 8, [\"modelValue\"])),\n (_ctx.editingBio)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createVNode(_component_TButton, {\n variant: 'icon',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onUpdateBio()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DoneIcon)\n ]),\n _: 1\n }),\n _createVNode(_component_TButton, {\n variant: 'icon',\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.editingBio = false))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _hoisted_14,\n _createVNode(_component_PostList, {\n posts: _ctx.mainStore.posts\n }, null, 8, [\"posts\"]),\n (_ctx.mainStore.posts.length === 0 && !_ctx.mainStore.loadingPosts)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, \" Nessun post salvato \"))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = {\n style: {\"min-width\":\"12rem\",\"min-height\":\"12rem\",\"max-width\":\"12rem\",\"max-height\":\"12rem\"},\n class: \"relative overflow-hidden rounded-full cursor-pointer group\"\n}\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"absolute bottom-0 left-0 z-10 flex items-center w-full transition-all duration-300 ease-in-out bg-black bg-opacity-40 group-hover:bg-opacity-80 h-14\" }\nconst _hoisted_5 = [\"id\"]\nconst _hoisted_6 = { class: \"flex items-center w-full\" }\nconst _hoisted_7 = { class: \"flex space-x-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CameraIcon = _resolveComponent(\"CameraIcon\")!\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_MDDialog = _resolveComponent(\"MDDialog\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"label\", { for: _ctx.baseId }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"img\", {\n src: _ctx.urlWithFallback,\n alt: \"Avatar\",\n class: \"transition-all duration-300 ease-in-out filter group-hover:brightness-90\"\n }, null, 8, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_CameraIcon, {\n class: \"z-20 mx-auto text-gray-200 transition-transform duration-300 ease-in-out transform group-hover:scale-110\",\n size: \"40\"\n })\n ])\n ])\n ], 8, _hoisted_1),\n _createElementVNode(\"input\", {\n class: \"absolute invisible w-0 h-0\",\n id: _ctx.baseId,\n type: \"file\",\n accept: \"image/*\",\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onFileChange($event)))\n }, null, 40, _hoisted_5),\n _createVNode(_component_MDDialog, {\n onCloseDialog: _cache[3] || (_cache[3] = ($event: any) => (_ctx.selectedFile = null)),\n open: _ctx.selectedFile !== null,\n large: true\n }, {\n title: _withCtx(() => [\n _createTextVNode(\"Anteprima\")\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.selectedImageUrl)\n ? (_openBlock(), _createBlock(_component_UserAvatar, {\n key: 0,\n class: \"mx-auto\",\n size: 'xl',\n url: _ctx.selectedImageUrl\n }, null, 8, [\"url\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n actions: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_TButton, {\n disabled: _ctx.loading,\n class: \"ml-auto\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.confirm()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.loading ? \"Attendi...\" : \"Carica\"), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_TButton, {\n variant: 'icon',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.selectedFile = null))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Annulla\")\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"open\"])\n ]))\n}","\nimport UserAvatar from \"../UserAvatar.vue\";\nimport { TButton } from \"@variantjs/vue\";\n\nimport CameraIcon from \"vue-material-design-icons/Camera.vue\";\nimport { v4 as uuid4 } from \"uuid\";\nimport MDDialog from \"./MDDialog.vue\";\n\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\nexport default defineComponent({\n name: \"AvatarSelector\",\n props: {\n url: {\n type: String as PropType,\n required: true,\n },\n },\n data() {\n return {\n baseId: \"a\" + uuid4(),\n selectedFile: null as File | null,\n loading: false,\n };\n },\n methods: {\n onFileChange(event: { target: { files: FileList | null } }) {\n const file = event.target.files?.[0];\n if (!file) {\n return;\n }\n this.selectedFile = file;\n },\n async confirm() {\n this.loading = true;\n try {\n await this.mainStore.updateMe({\n profile_picture: this.selectedFile as File,\n });\n window.location.reload();\n } catch (e) {\n console.error(e);\n } finally {\n this.loading = false;\n this.selectedFile = null;\n }\n },\n },\n computed: {\n ...mapStores(useMainStore),\n urlWithFallback() {\n return this.url || \"https://via.placeholder.com/150\";\n },\n selectedImageUrl() {\n return this.selectedFile ? URL.createObjectURL(this.selectedFile) : \"\";\n },\n },\n components: { CameraIcon, MDDialog, UserAvatar, TButton },\n});\n","import { render } from \"./AvatarSelector.vue?vue&type=template&id=2e3f4958&ts=true\"\nimport script from \"./AvatarSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./AvatarSelector.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { TTextarea } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport AvatarSelector from \"../../components/ui/AvatarSelector.vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\nimport EditIcon from \"vue-material-design-icons/Pencil.vue\";\nimport DoneIcon from \"vue-material-design-icons/Check.vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\nimport { TButton } from \"@variantjs/vue\";\nimport { showSuccessNotification } from \"../../utils\";\nimport PostList from \"../../components/PostList.vue\";\n\nexport default defineComponent({\n name: \"ProfileSettings\",\n props: {},\n async created() {\n await this.mainStore.getMe();\n this.dirtyBio = this.mainStore.user?.bio ?? \"\";\n try {\n this.mainStore.loadingPosts = true;\n await this.mainStore.getPosts({ saved_by: this.mainStore.user?.id });\n } finally {\n this.mainStore.loadingPosts = false;\n }\n },\n methods: {\n async onUpdateBio() {\n this.savingBio = true;\n try {\n await this.mainStore.updateMe({ bio: this.dirtyBio });\n showSuccessNotification(\"Bio aggiornata\");\n } finally {\n this.savingBio = false;\n this.editingBio = false;\n }\n },\n },\n data() {\n return {\n editingBio: false,\n dirtyBio: \"\",\n savingBio: false,\n };\n },\n computed: {\n ...mapStores(useMainStore),\n },\n components: {\n AvatarSelector,\n TTextarea,\n EditIcon,\n TButton,\n DoneIcon,\n CloseIcon,\n PostList,\n },\n});\n","import { render } from \"./ProfileSettings.vue?vue&type=template&id=7ec2b09a&ts=true\"\nimport script from \"./ProfileSettings.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileSettings.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"\" }\nconst _hoisted_2 = { class: \"\" }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"h3\", {\n class: \"h-4 bg-gray-200 rounded-md\",\n style: {\"width\":\"40%\"}\n}, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"ul\", { class: \"mt-5 space-y-3\" }, [\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"w-full h-4 bg-gray-200 rounded-md\" }),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"w-full h-4 bg-gray-200 rounded-md\" }),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"w-full h-4 bg-gray-200 rounded-md\" }),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"w-full h-4 bg-gray-200 rounded-md\" })\n], -1)\nconst _hoisted_6 = [\n _hoisted_4,\n _hoisted_5\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PostList = _resolveComponent(\"PostList\")!\n const _component_BaseView = _resolveComponent(\"BaseView\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_BaseView, { class: \"pt-12\" }, {\n main: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n (!_ctx.loading && _ctx.post)\n ? (_openBlock(), _createBlock(_component_PostList, {\n key: 0,\n posts: [_ctx.post]\n }, null, 8, [\"posts\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_6))\n ])\n ]),\n _: 1\n })\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport BaseView from \"../../views/BaseView.vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\nimport { Post } from \"../../models\";\nimport PostList from \"../PostList.vue\";\n\nexport default defineComponent({\n name: \"PostDetail\",\n props: {\n postId: {\n type: String,\n required: true,\n },\n },\n async created() {\n this.loading = true;\n try {\n this.mainStore.getSections();\n await this.mainStore.getPostById(this.postId);\n } finally {\n this.loading = false;\n }\n },\n data() {\n return {\n loading: false,\n };\n },\n methods: {},\n computed: {\n ...mapStores(useMainStore),\n post() {\n return this.mainStore.postById(this.postId);\n },\n },\n components: { BaseView, PostList },\n});\n","import { render } from \"./PostDetail.vue?vue&type=template&id=354e2f62&ts=true\"\nimport script from \"./PostDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./PostDetail.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from \"vue-router\";\nimport BaseHome from \"../views/Home/BaseHome.vue\";\nimport UserProfile from \"../views/Profile/UserProfile.vue\";\nimport Login from \"../views/Login.vue\";\nimport Register from \"../views/Register.vue\";\nimport ProfileSettings from \"../views/Profile/ProfileSettings.vue\";\nimport PostDetail from \"../components/Post/PostDetail.vue\";\nconst routes: Array = [\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n meta: {\n disableNavBar: true,\n },\n },\n {\n path: \"/register\",\n name: \"Register\",\n component: Register,\n meta: {\n disableNavBar: true,\n },\n },\n {\n path: \"/me\",\n name: \"ProfileSettings\",\n component: ProfileSettings,\n },\n {\n path: \"/guidelines\",\n name: \"Guidelines\",\n component: () => import(\"../views/GuideLines.vue\"),\n },\n // Home\n {\n path: \"/\",\n redirect: { name: \"Home\", params: { postType: \"dissemination\" } },\n // TODO logged in guard\n },\n {\n path: \"/section/:sectionId\",\n name: \"SectionHome\",\n component: BaseHome,\n props: true,\n },\n {\n path: \"/:postType?\",\n name: \"Home\",\n component: BaseHome,\n props: true,\n },\n // User profile\n {\n path: \"/user/:userId/:postType?\",\n beforeEnter: (to, _from, next) => {\n if (!to.params.postType) {\n to.params.postType = \"mixed\";\n }\n next();\n },\n name: \"UserProfile\",\n component: UserProfile,\n props: true,\n },\n {\n path: \"/user/:userId/section/:sectionId\",\n name: \"UserProfileSection\",\n component: UserProfile,\n props: true,\n },\n // Posts\n {\n path: \"/post/:postId\",\n name: \"PostDetail\",\n component: PostDetail,\n props: true,\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n});\n\nexport default router;\n","import { Post, Comment } from \"../models/interfaces\";\n\nexport const mockDisseminationPosts: Post[] = [\n {\n id: \"1\",\n author: {\n id: \"1\",\n full_name: \"Mario Rossi\",\n profile_picture: \"https://picsum.photos/200\",\n is_followed: true,\n },\n content:\n \"Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti in, ipsa magni deleniti odit pariatur culpa soluta, maxime aliquam distinctio voluptate vitae nulla! Deleniti dicta cum amet commodi esse explicabo.\",\n created_at: \"2020-01-01T00:00:00.000Z\",\n post_type: \"dissemination\",\n fact_check_score: 0.8,\n my_fact_check_vote: 1,\n saved: true,\n section: \"1\",\n },\n {\n id: \"2\",\n author: {\n id: \"1\",\n full_name: \"Mario Rossi\",\n profile_picture: \"https://picsum.photos/200\",\n is_followed: true,\n },\n content:\n \"Post 2 abc lorem ipsum. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti in, ipsa magni deleniti odit pariatur culpa soluta, maxime aliquam distinctio voluptate vitae nulla! \",\n created_at: \"2020-01-01T00:00:00.000Z\",\n post_type: \"dissemination\",\n fact_check_score: 0.4,\n my_fact_check_vote: 1,\n saved: true,\n section: \"1\",\n },\n];\n\nexport const mockPersonalPosts: Post[] = [\n {\n id: \"20\",\n author: {\n id: \"1\",\n full_name: \"Mario Rossi\",\n profile_picture: \"https://picsum.photos/200\",\n is_followed: true,\n },\n content:\n \"Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti in, ipsa magni deleniti odit pariatur culpa soluta, maxime aliquam distinctio voluptate vitae nulla! Deleniti dicta cum amet commodi esse explicabo. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti in, ipsa magni deleniti odit pariatur culpa soluta, maxime aliquam distinctio voluptate vitae nulla! Deleniti dicta cum amet commodi esse explicabo.\",\n created_at: \"2020-01-01T00:00:00.000Z\",\n post_type: \"personal\",\n fact_check_score: 85,\n my_fact_check_vote: 90,\n saved: true,\n section: \"5\",\n liked: true,\n },\n {\n id: \"2\",\n author: {\n id: \"1\",\n full_name: \"Mario Rossi\",\n profile_picture: \"https://picsum.photos/200\",\n is_followed: true,\n },\n content:\n \"Post 2 abc lorem ipsum. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti in, ipsa magni deleniti odit pariatur culpa soluta, maxime aliquam distinctio voluptate vitae nulla! \",\n created_at: \"2020-01-01T00:00:00.000Z\",\n post_type: \"personal\",\n fact_check_score: 65,\n my_fact_check_vote: 30,\n saved: true,\n section: \"1\",\n },\n];\n\nexport const mockPostComments: Record = {\n \"20\": [\n {\n id: \"1\",\n user: {\n id: \"1\",\n full_name: \"Mario Rossi\",\n profile_picture: \"https://picsum.photos/200\",\n is_followed: true,\n },\n created_at: \"2020-01-01T00:00:00.000Z\",\n content: \"Lorem ipsum dolor sit, amet consectetur adipisicing elit.\",\n comment_type: \"regular\",\n },\n {\n id: \"2\",\n user: {\n id: \"1\",\n full_name: \"Mario Rossi\",\n profile_picture: \"https://picsum.photos/200\",\n is_followed: true,\n },\n created_at: \"2020-01-01T00:00:00.000Z\",\n content:\n \"Lorem ipsum dolor sit, amet consectetur adipisicing elit. Corrupti in, ipsa magni deleniti odit pariatur.\",\n comment_type: \"regular\",\n },\n ],\n};\n","import { Section } from \"../models/interfaces\";\n\nexport const mockSections: Section[] = [\n {\n id: \"1\",\n name: \"Medicina\",\n parent: null,\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n {\n id: \"2\",\n name: \"Sport\",\n parent: null,\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n {\n id: \"4\",\n name: \"Chimica\",\n parent: null,\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n {\n id: \"3\",\n name: \"Biologia\",\n parent: null,\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n {\n id: \"5\",\n name: \"Chimica inorganica\",\n parent: \"4\",\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n {\n id: \"6\",\n name: \"Industriale\",\n parent: \"4\",\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n {\n id: \"7\",\n name: \"Alimenti\",\n parent: \"4\",\n created_at: \"2020-01-01T00:00:00.000Z\",\n },\n];\n","import { defineStore } from \"pinia\";\nimport {\n Post,\n PostType,\n Section,\n Comment,\n User,\n PreviewUser,\n} from \"../models/interfaces\";\nimport {\n MOCK_SERVICE_ACTIVE,\n PostFilter,\n SectionFilter,\n formatDate,\n} from \"../const\";\nimport {\n mockDisseminationPosts,\n mockPersonalPosts,\n mockPostComments,\n} from \"../mock/posts\";\nimport { mockSections } from \"../mock/sections\";\nimport axios from \"axios\";\nimport { SortOption } from \"../components/Sections/SectionSorter.vue\";\n\nexport const useMainStore = defineStore(\"main\", {\n state: () => ({\n posts: [] as Post[],\n sections: [] as Section[],\n postComments: {} as Record,\n user: null as User | null,\n token: \"\",\n snackbarMessage: \"\",\n loadingPosts: false,\n loadingSections: false,\n }),\n getters: {\n userId: (state) => state.user?.id,\n postById: (state) => (id: string) => state.posts.find((p) => p.id == id),\n topLevelSections: (state) => state.sections.filter((s) => !s.parent),\n },\n actions: {\n init() {\n const token = localStorage.getItem(\"token\");\n const user = localStorage.getItem(\"user\");\n if (token) {\n this.token = token;\n axios.defaults.headers.common[\"Authorization\"] = \"Token \" + this.token;\n }\n if (user) {\n this.user = JSON.parse(user);\n }\n },\n resetToken() {\n this.token = \"\";\n this.user = null;\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"user\");\n axios.defaults.headers.common[\"Authorization\"] = \"\";\n },\n async login(username: string, password: string) {\n axios.defaults.headers.common[\"Authorization\"] = \"\";\n localStorage.removeItem(\"token\");\n const formData = {\n username,\n password,\n };\n const response = await axios.post(\"/api/v1/token/login/\", formData);\n\n const token = response.data.auth_token;\n this.token = token;\n\n axios.defaults.headers.common[\"Authorization\"] = \"Token \" + token;\n localStorage.setItem(\"token\", token);\n\n const user: User = (await axios.get(\"/api/v1/users/me/\")).data;\n\n this.user = user;\n localStorage.setItem(\"user\", JSON.stringify(user));\n\n return user;\n },\n async getMe() {\n const user: User = (await axios.get(\"/api/v1/users/me/\")).data;\n this.user = user;\n localStorage.setItem(\"user\", JSON.stringify(user));\n return user;\n },\n async updateMe(user: Partial) {\n if (user.profile_picture instanceof File) {\n const formData = new FormData();\n formData.append(\"profile_picture\", user.profile_picture);\n const response = await axios.patch(\"/api/v1/users/me/\", formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n this.user = response.data;\n localStorage.setItem(\"user\", JSON.stringify(response.data));\n return response.data;\n }\n const updatedUser: User = (await axios.patch(\"/api/v1/users/me/\", user))\n .data;\n this.user = updatedUser;\n localStorage.setItem(\"user\", JSON.stringify(updatedUser));\n return updatedUser;\n },\n async getUserProfilePicture(userId: string): Promise {\n const response = await axios.get(`/users/${userId}/profile_picture/`, {\n responseType: \"arraybuffer\",\n });\n return response.data;\n },\n async registerUser(\n username: string,\n email: string,\n password: string,\n rePassword: string,\n birthDate: Date\n ) {\n const formData = {\n username,\n email,\n password,\n re_password: rePassword,\n // only send the date, not the time\n birth_date: formatDate(birthDate),\n };\n const response = await axios.post(\"/api/v1/users/\", formData);\n\n return response.data;\n },\n async setSectionSorting(sortType: SortOption, customOrdering?: string[]) {\n const response = await axios.post(\"/sections/sort_preference/\", {\n sort_type: sortType,\n custom_ordering: customOrdering,\n });\n return response.data;\n },\n async getSectionSorting(): Promise<{\n sort_type: SortOption;\n custom_ordering?: string[];\n }> {\n const response = await axios.get(\"/sections/sort_preference/\");\n return response.data;\n },\n async createPost(post: Post, videoIds: string[] = []) {\n const newPost = await axios.post(\"/posts/\", {\n ...post,\n video_ids: videoIds,\n });\n this.posts.unshift(newPost.data);\n },\n async updatePost(post: Post) {\n const updatedPost = await axios.put(`/posts/${post.id}/`, post);\n const index = this.posts.findIndex((p) => p.id == post.id);\n this.posts[index] = updatedPost.data;\n },\n async factCheckPost(postId: string, value: number) {\n const updatedPost = await axios.post(`/posts/${postId}/fact_check/`, {\n value,\n });\n const index = this.posts.findIndex((p) => p.id == postId);\n this.posts[index] = updatedPost.data;\n },\n async likePost(postId: string, remove: boolean) {\n const updatedPost = await axios[remove ? \"delete\" : \"post\"](\n `/posts/${postId}/like/`\n );\n const index = this.posts.findIndex((p) => p.id == postId);\n this.posts[index] = updatedPost.data;\n },\n async savePost(postId: string, remove: boolean) {\n const updatedPost = await axios[remove ? \"delete\" : \"post\"](\n `/posts/${postId}/save/`\n );\n const index = this.posts.findIndex((p) => p.id == postId);\n this.posts[index] = updatedPost.data;\n },\n async deletePost(postId: string) {\n await axios.delete(`/posts/${postId}/`);\n const index = this.posts.findIndex((p) => p.id == postId);\n this.posts.splice(index, 1);\n },\n async followUser(userId: string, remove: boolean): Promise {\n const updatedUser = await axios[remove ? \"delete\" : \"put\"](\n `/users/${userId}/followers/`\n );\n return updatedUser.data;\n },\n async createComment(postId: string, comment: Comment) {\n const newComment = await axios.post(\n `/posts/${postId}/comments/`,\n comment\n );\n this.postComments[postId].unshift(newComment.data);\n },\n async getPostComments(postId: string) {\n if (MOCK_SERVICE_ACTIVE) {\n if (this.postComments[postId]) {\n return this.postComments[postId];\n }\n this.postComments[postId] = mockPostComments[postId];\n } else {\n const comments = await axios.get(`/posts/${postId}/comments/`);\n this.postComments[postId] = comments.data;\n }\n },\n async getPosts(filters?: PostFilter, page?: number) {\n if (MOCK_SERVICE_ACTIVE) {\n this.posts =\n filters?.post_type === \"dissemination\"\n ? mockDisseminationPosts\n : filters?.post_type === \"personal\"\n ? mockPersonalPosts\n : [...mockDisseminationPosts, ...mockPersonalPosts];\n this.posts = this.posts.filter((p) => {\n if (filters?.section) {\n return (\n p.section == filters.section ||\n mockSections.find((s) => s.parent == filters.section)?.id ==\n p.section\n );\n }\n return true;\n });\n } else {\n const params = new URLSearchParams();\n if (filters) {\n if (filters.post_type) {\n params.append(\"post_type\", filters.post_type);\n }\n if (filters.author !== undefined) {\n params.append(\"author\", filters.author);\n }\n if (filters.section !== undefined) {\n params.append(\"section\", filters.section);\n }\n if (filters.saved_by !== undefined) {\n params.append(\"saved_by\", filters.saved_by);\n }\n }\n const url = `/posts/?${params.toString()}${\n page ? `&page=${page}` : \"&paginate=false\"\n }`;\n const posts = await axios.get(url);\n if (page) {\n if (page > 1) {\n this.posts.push(...posts.data.results);\n } else {\n this.posts = posts.data.results;\n }\n return posts.data.next !== null;\n }\n this.posts = posts.data;\n return false;\n }\n },\n async getPostById(id: string) {\n if (MOCK_SERVICE_ACTIVE) {\n return mockDisseminationPosts.find((post) => post.id == id) as Post;\n }\n const post = await axios.get(`/posts/${id}/`);\n // insert the post in the store or update it if it already exists\n const index = this.posts.findIndex((p) => p.id == id);\n if (index == -1) {\n this.posts.unshift(post.data);\n } else {\n this.posts[index] = post.data;\n }\n return post.data;\n },\n async getSections(filters?: SectionFilter) {\n if (MOCK_SERVICE_ACTIVE) {\n this.sections = mockSections;\n if (filters && filters.parent !== undefined) {\n this.sections = this.sections.filter(\n (s) => s.parent == filters.parent\n );\n }\n } else {\n const params = new URLSearchParams();\n if (filters) {\n if (filters.parent !== undefined && filters.parent !== null) {\n params.append(\"parent\", filters.parent);\n }\n if (filters.relevant_for !== undefined) {\n params.append(\"relevant_for\", filters.relevant_for);\n }\n }\n\n // Append query parameters to the URL\n const url = `/sections/?${params.toString()}`;\n const sections = await axios.get(url);\n this.sections = sections.data;\n }\n },\n async getSectionById(id: string) {\n if (MOCK_SERVICE_ACTIVE) {\n return mockSections.find((section) => section.id == id) as Section;\n } else {\n const localSection = this.sections.find((s) => s.id == id);\n if (localSection) {\n return localSection;\n }\n const { data: section } = await axios.get(`/sections/${id}/`);\n // this.sections.unshift(section);\n return section;\n }\n },\n async getUserById(userId: string): Promise {\n if (MOCK_SERVICE_ACTIVE) {\n return {\n id: \"1\",\n full_name: \"John Doe\",\n followers_count: 10,\n profile_picture: \"https://i.pravatar.cc/300\",\n is_followed: true,\n user_type: \"disseminator\",\n wallet_balance: 100,\n bio: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor, nisl eget ultricies aliquam, nunc nisl ultricies nunc, vitae aliquam nisl nunc eget nisl.\",\n birth_date: \"1990-01-01\",\n };\n } else {\n const user = await axios.get(`/users/${userId}/`);\n return user.data;\n }\n },\n async getUserFollowersByUserId(userId: string): Promise {\n const users = await axios.get(`/users/${userId}/followers/`);\n return users.data;\n },\n async getUserFollowedByUserId(userId: string): Promise {\n const users = await axios.get(`/users/${userId}/followed/`);\n return users.data;\n },\n async getVideoById(videoId: string): Promise {\n const video = await axios.get(`/videos/${videoId}/`, {\n responseType: \"arraybuffer\",\n });\n return video.data;\n },\n },\n});\n","import axios from \"axios\";\nimport { Video } from \"./models\";\nimport { useMainStore } from \"./stores/mainStore\";\nimport router from \"./router\";\nimport moment from \"moment\";\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction setLoadingState(state: boolean) {\n // TODO implement;\n state;\n return;\n}\n\nexport interface SelectableOption {\n label: string;\n value: T;\n icon?: string;\n}\n\nexport const wrapWithLoading = async (\n fn: () => any,\n errorCallback?: (e: any) => void\n) => {\n setLoadingState(true);\n try {\n await fn();\n setLoadingState(false);\n } catch (e) {\n errorCallback?.(e);\n } finally {\n setLoadingState(false);\n }\n};\n\nexport const showSuccessNotification = (message?: string) => {\n console.log(\"SUCCESS\", message);\n useMainStore().snackbarMessage =\n message || \"Operazione effettuata con successo\";\n};\n\nexport function setErrorNotification(message: string) {\n // TODO implement;\n console.error(message);\n return;\n}\n\nexport const uploadVideo = async (videoFile: Blob): Promise => {\n const data = new FormData();\n data.append(\"file\", videoFile);\n\n const response = await axios.post(\"/videos/\", data, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n\n return response.data;\n};\n\nexport const clickOutsideDirective = {\n beforeMount: (\n el: {\n clickOutsideEvent: {\n (event: any): void;\n (this: Document, ev: MouseEvent): any;\n };\n contains: (arg0: any) => any;\n },\n binding: { value: () => void }\n ) => {\n el.clickOutsideEvent = (event: any) => {\n // check that click was outside the element and its children\n if (!(el == event.target || el.contains(event.target))) {\n binding.value?.();\n }\n };\n document.addEventListener(\"click\", el.clickOutsideEvent);\n },\n unmounted: (el: {\n clickOutsideEvent: (this: Document, ev: MouseEvent) => any;\n }) => {\n document.removeEventListener(\"click\", el.clickOutsideEvent);\n },\n};\n\nexport const stripHtmlFromString = (html: string) => {\n const tmp = document.createElement(\"DIV\");\n tmp.innerHTML = html;\n return tmp.textContent || tmp.innerText || \"\";\n};\n\ndeclare const Buffer: any;\n\nexport const arraybufferToBase64 = (data: ArrayBuffer): string => {\n return Buffer.from(data, \"binary\").toString(\"base64\");\n};\n\nexport const logOut = (showMessage = true, redirect = \"\"): void => {\n const mainStore = useMainStore();\n mainStore.resetToken();\n\n router.push({\n name: \"Login\",\n ...(redirect ? { query: { redirect } } : {}),\n });\n if (showMessage) {\n showSuccessNotification(\"Logout effettuato con successo\");\n }\n};\n\nexport const getFormattedTimestamp = (\n timestamp: string,\n dateOnly = false,\n reduced = false\n): string => {\n return moment(timestamp)\n .locale(\"it\")\n .format(\n reduced\n ? \"DD MMM YYYY\" + (dateOnly ? \"\" : \", HH:mm\")\n : \"DD MMMM YYYY\" + (dateOnly ? \"\" : `, [alle] HH:mm`)\n );\n};\n\nexport const getFormattedRelativeTimestamp = (\n timestamp: string\n // dateOnly = false,\n // reduced = false\n): string => {\n moment.updateLocale(\"it\", {\n relativeTime: {\n past: function (val) {\n return val + (val === \"ieri\" || val === \"adesso\" ? \"\" : \" fa\");\n },\n s: \"adesso\",\n m: \"1 minuto\",\n mm: \"%d minuti\",\n h: \"un'ora\",\n hh: \"%d ore\",\n d: \"ieri\",\n dd: \"%d giorni\",\n M: \"un mese\",\n MM: \"%d mesi\",\n y: \"un anno\",\n yy: \"%d anni\",\n },\n });\n\n return moment(timestamp).locale(\"it\").fromNow();\n // .format(\n // reduced\n // ? \"DD MMM YYYY\" + (dateOnly ? \"\" : \", HH:mm\")\n // : \"DD MMMM YYYY\" + (dateOnly ? \"\" : `, [alle] HH:mm`)\n // );\n};\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"px-0 py-1 md:py-4 md:px-4\",\n ref: \"observer\"\n}\nconst _hoisted_2 = { class: \"flex justify-between\" }\nconst _hoisted_3 = { class: \"flex flex-col space-y-0 overflow-hidden\" }\nconst _hoisted_4 = { class: \"overflow-hidden text-xl font-medium transition-colors duration-75 ease-in-out text-ellipsis hover:text-secondary-dark\" }\nconst _hoisted_5 = { class: \"flex flex-wrap items-center\" }\nconst _hoisted_6 = {\n key: 1,\n class: \"select-none opacity-60 mx-1.5\"\n}\nconst _hoisted_7 = { class: \"text-sm text-muted\" }\nconst _hoisted_8 = { class: \"\" }\nconst _hoisted_9 = { class: \"flex items-start mt-4\" }\nconst _hoisted_10 = { class: \"flex flex-col items-start mt-4 space-y-8 overflow-hidden md:w-11/12\" }\nconst _hoisted_11 = { class: \"post-body\" }\nconst _hoisted_12 = {\n key: 0,\n class: \"flex items-center w-full space-x-2 overflow-auto\"\n}\nconst _hoisted_13 = {\n key: 0,\n class: \"hidden md:block\"\n}\nconst _hoisted_14 = {\n key: 1,\n class: \"flex items-center my-4\"\n}\nconst _hoisted_15 = { class: \"flex items-center mr-auto text-sm md:space-x-4\" }\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden md:inline\" }, \"Revisione dei contenuti\", -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden md:inline\" }, \"Fonti\", -1)\nconst _hoisted_18 = { class: \"flex items-center -space-x-1 md:space-x-2\" }\nconst _hoisted_19 = { class: \"flex items-center -space-x-0.5 md:mr-2 mr-3\" }\nconst _hoisted_20 = { class: \"\" }\nconst _hoisted_21 = {\n key: 2,\n class: \"flex items-center mb-6 space-x-2\"\n}\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"h5\", { class: \"font-medium\" }, \"Revisione dei contenuti\", -1)\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"h5\", { class: \"font-medium\" }, \"Commenti\", -1)\nconst _hoisted_24 = {\n key: 3,\n class: \"mb-4\"\n}\nconst _hoisted_25 = {\n key: 0,\n class: \"font-medium\"\n}\nconst _hoisted_26 = {\n key: 4,\n class: \"flex flex-col space-y-2\"\n}\nconst _hoisted_27 = { key: 0 }\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"text-sm text-muted\" }, \"Ancora nessun commento\", -1)\nconst _hoisted_29 = [\n _hoisted_28\n]\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"\" }, \"Mostra tutti\", -1)\nconst _hoisted_31 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_VerticalFactCheck = _resolveComponent(\"VerticalFactCheck\")!\n const _component_v_runtime_template = _resolveComponent(\"v-runtime-template\")!\n const _component_VideoPlayer = _resolveComponent(\"VideoPlayer\")!\n const _component_SpeedometerIcon = _resolveComponent(\"SpeedometerIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_EyeIcon = _resolveComponent(\"EyeIcon\")!\n const _component_ThumbUpIcon = _resolveComponent(\"ThumbUpIcon\")!\n const _component_ThumbUpOutlineIcon = _resolveComponent(\"ThumbUpOutlineIcon\")!\n const _component_HandCoinIcon = _resolveComponent(\"HandCoinIcon\")!\n const _component_BookmarkIcon = _resolveComponent(\"BookmarkIcon\")!\n const _component_BookmarkOutlineIcon = _resolveComponent(\"BookmarkOutlineIcon\")!\n const _component_ShareIcon = _resolveComponent(\"ShareIcon\")!\n const _component_DeleteIcon = _resolveComponent(\"DeleteIcon\")!\n const _component_PostComment = _resolveComponent(\"PostComment\")!\n const _component_CommentEditor = _resolveComponent(\"CommentEditor\")!\n const _component_SharedPost = _resolveComponent(\"SharedPost\")!\n\n return (!_ctx.post.shared)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"flex w-4/5\", [_ctx.postSection ? 'items-start' : 'items-center']])\n }, [\n _createVNode(_component_router_link, { to: _ctx.postAuthorProfileRoute }, {\n default: _withCtx(() => [\n _createVNode(_component_UserAvatar, {\n class: \"mr-4\",\n url: _ctx.post.author.profile_picture\n }, null, 8, [\"url\"])\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, { to: _ctx.postAuthorProfileRoute }, {\n default: _withCtx(() => [\n _createElementVNode(\"h3\", _hoisted_4, _toDisplayString(_ctx.post.author.full_name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.postSectionParent)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"transition-colors duration-75 ease-in-out opacity-80 hover:text-secondary-dark\",\n to: {\n name: 'SectionHome',\n params: { sectionId: _ctx.postSectionParent.id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.postSectionParent.name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.postSectionParent)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, \"›\"))\n : _createCommentVNode(\"\", true),\n (_ctx.postSection)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 2,\n class: \"transition-colors duration-75 ease-in-out opacity-80 hover:text-secondary-dark\",\n to: {\n name: 'SectionHome',\n params: { sectionId: _ctx.postSection.id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.postSection.name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 2),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(_ctx.formattedTimestamp), 1)\n ])\n ]),\n (_ctx.post.post_type === 'dissemination')\n ? (_openBlock(), _createBlock(_component_VerticalFactCheck, {\n key: 0,\n class: \"block mt-5 -mb-3 md:hidden\",\n orientation: 'horizontal',\n value: _ctx.post.fact_check_score\n }, null, 8, [\"value\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_v_runtime_template, { template: _ctx.postContentTemplate }, null, 8, [\"template\"])\n ]),\n (_ctx.post.videos && _ctx.post.videos.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.post.videos, (video) => {\n return (_openBlock(), _createBlock(_component_VideoPlayer, {\n videoId: video.id,\n url: video.file,\n title: video.title,\n thumbnail: video.thumbnail,\n status: video.status,\n key: video.id,\n canRemove: false\n }, null, 8, [\"videoId\", \"url\", \"title\", \"thumbnail\", \"status\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.post.post_type === 'dissemination')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createVNode(_component_VerticalFactCheck, {\n style: {\"margin-right\":\"-10px !important\"},\n orientation: 'vertical',\n value: _ctx.post.fact_check_score\n }, null, 8, [\"value\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (!_ctx.readonly)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n (\n _ctx.mainStore.user?.user_type === 'disseminator' &&\n _ctx.mainStore.user?.id != _ctx.post.author.id &&\n _ctx.post.post_type === 'dissemination'\n )\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n class: \"font-semibold\",\n variant: 'icon',\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('factCheck', _ctx.post)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_SpeedometerIcon, {\n size: \"20\",\n class: \"mr-2\"\n }),\n _hoisted_16\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n ((_ctx.post.sources?.length ?? 0) > 0)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 1,\n class: \"font-semibold text-primary-dark\",\n variant: 'icon',\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('showSources', _ctx.post)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_EyeIcon, {\n size: \"20\",\n class: \"mr-2\"\n }),\n _hoisted_17\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_TButton, {\n class: \"text-primary-darker\",\n variant: 'icon',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('like', _ctx.post)))\n }, {\n default: _withCtx(() => [\n (_ctx.post.liked)\n ? (_openBlock(), _createBlock(_component_ThumbUpIcon, { key: 0 }))\n : (_openBlock(), _createBlock(_component_ThumbUpOutlineIcon, { key: 1 }))\n ]),\n _: 1\n }),\n _createElementVNode(\"p\", _hoisted_20, _toDisplayString(_ctx.post.likes), 1)\n ]),\n _createVNode(_component_TButton, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.onGiveCoin())),\n class: \"text-secondary\",\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_HandCoinIcon)\n ]),\n _: 1\n }),\n _createVNode(_component_TButton, {\n class: \"text-secondary-darker\",\n variant: 'icon',\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$emit('save', _ctx.post)))\n }, {\n default: _withCtx(() => [\n (_ctx.post.saved)\n ? (_openBlock(), _createBlock(_component_BookmarkIcon, { key: 0 }))\n : (_openBlock(), _createBlock(_component_BookmarkOutlineIcon, { key: 1 }))\n ]),\n _: 1\n }),\n (_ctx.canShare)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('share', _ctx.post))),\n class: \"text-on-primary\",\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ShareIcon)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.isPostOwner)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 1,\n class: \"text-gray-600\",\n variant: 'icon',\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('delete', _ctx.post)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DeleteIcon)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.readonly && _ctx.factCheckComments.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _createVNode(_component_TButton, {\n onClick: _cache[7] || (_cache[7] = ($event: any) => (_ctx.shownCommentsTab = 'fact_check')),\n variant: 'tab-sm',\n class: _normalizeClass([\n _ctx.shownCommentsTab === 'fact_check' ? 'active-tab' : 'inactive-tab',\n ])\n }, {\n default: _withCtx(() => [\n _hoisted_22\n ]),\n _: 1\n }, 8, [\"class\"]),\n _createVNode(_component_TButton, {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.shownCommentsTab = 'regular')),\n variant: 'tab-sm',\n class: _normalizeClass([\n _ctx.shownCommentsTab === 'regular' ? 'active-tab' : 'inactive-tab',\n ])\n }, {\n default: _withCtx(() => [\n _hoisted_23\n ]),\n _: 1\n }, 8, [\"class\"])\n ]))\n : (!_ctx.readonly)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24, [\n (_ctx.comments.length > 0)\n ? (_openBlock(), _createElementBlock(\"h5\", _hoisted_25, \"Commenti\"))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.readonly)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.shownCommentsTab === 'regular'\n ? _ctx.shownRegularComments\n : _ctx.factCheckComments, (comment) => {\n return (_openBlock(), _createBlock(_component_PostComment, {\n key: comment.id,\n comment: comment\n }, null, 8, [\"comment\"]))\n }), 128)),\n (\n _ctx.factCheckComments.length > 0 &&\n _ctx.regularComments.length === 0 &&\n _ctx.shownCommentsTab === 'regular'\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_27, _hoisted_29))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (\n _ctx.shownCommentsTab === 'regular' &&\n _ctx.regularComments.length > _ctx.shownRegularComments.length\n )\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 5,\n class: \"font-semibold\",\n variant: 'icon',\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.showAllComments = true))\n }, {\n default: _withCtx(() => [\n _hoisted_30\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.readonly)\n ? (_openBlock(), _createBlock(_component_CommentEditor, {\n key: 6,\n onCreateComment: _cache[10] || (_cache[10] = ($event: any) => (_ctx.$emit('createComment', $event))),\n class: \"mt-6\",\n disabled: _ctx.disableComment\n }, null, 8, [\"disabled\"]))\n : _createCommentVNode(\"\", true)\n ], 512))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [\n _createVNode(_component_SharedPost, {\n post: _ctx.post,\n onShowSources: _cache[11] || (_cache[11] = ($event: any) => (_ctx.$emit('showSources', $event))),\n onFactCheck: _cache[12] || (_cache[12] = ($event: any) => (_ctx.$emit('factCheck', $event))),\n onDelete: _cache[13] || (_cache[13] = ($event: any) => (_ctx.$emit('delete', $event)))\n }, null, 8, [\"post\"])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-start space-x-2\" }\nconst _hoisted_2 = { class: \"flex flex-col items-start\" }\nconst _hoisted_3 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_4 = { class: \"font-medium transition-colors duration-75 ease-in-out hover:text-secondary-dark\" }\nconst _hoisted_5 = { class: \"text-xs opacity-60\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_link, { to: _ctx.commentAuthorProfileRoute }, {\n default: _withCtx(() => [\n _createVNode(_component_UserAvatar, {\n size: 'sm',\n url: _ctx.comment.user.profile_picture\n }, null, 8, [\"url\"])\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, { to: _ctx.commentAuthorProfileRoute }, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.comment.user.full_name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createElementVNode(\"p\", _hoisted_5, _toDisplayString(_ctx.formattedTimestamp), 1)\n ]),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.comment.content), 1)\n ])\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Comment } from \"../../models/interfaces\";\nimport UserAvatar from \"../UserAvatar.vue\";\nexport default defineComponent({\n name: \"PostComment\",\n props: {\n comment: {\n type: Object as PropType,\n required: true,\n },\n },\n methods: {},\n computed: {\n formattedTimestamp() {\n return new Date(this.comment.created_at).toLocaleString(\"it\", {\n dateStyle: \"long\",\n timeStyle: \"short\",\n // dayPeriod: \"short\",\n });\n },\n commentAuthorProfileRoute() {\n return {\n name: \"UserProfile\",\n params: {\n userId: this.comment.user.id,\n },\n };\n },\n },\n components: { UserAvatar },\n});\n","import { render } from \"./PostComment.vue?vue&type=template&id=21119334&ts=true\"\nimport script from \"./PostComment.vue?vue&type=script&lang=ts\"\nexport * from \"./PostComment.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, withKeys as _withKeys, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center space-x-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TInput = _resolveComponent(\"TInput\")!\n const _component_SendIcon = _resolveComponent(\"SendIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_TInput, {\n onKeyup: _cache[0] || (_cache[0] = _withKeys(($event: any) => (_ctx.onCreateComment()), [\"enter\"])),\n variant: 'search',\n modelValue: _ctx.comment,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.comment) = $event)),\n placeholder: \"Scrivi un commento...\",\n disabled: _ctx.disabled\n }, null, 8, [\"modelValue\", \"disabled\"]),\n _createVNode(_component_TButton, {\n disabled: _ctx.disabled,\n variant: 'icon',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onCreateComment()))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_SendIcon, { class: \"button-icon\" })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]))\n}","\nimport { TButton, TInput } from \"@variantjs/vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport SendIcon from \"vue-material-design-icons/Send.vue\";\nexport default defineComponent({\n name: \"CommentEditor\",\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n methods: {\n onCreateComment() {\n if (this.comment.trim().length > 0) {\n this.$emit(\"createComment\", this.comment);\n this.comment = \"\";\n }\n },\n },\n data() {\n return {\n comment: \"\",\n };\n },\n computed: {},\n components: { TInput, TButton, SendIcon },\n});\n","import { render } from \"./CommentEditor.vue?vue&type=template&id=236220a5&ts=true\"\nimport script from \"./CommentEditor.vue?vue&type=script&lang=ts\"\nexport * from \"./CommentEditor.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n Affidabilità : {{ value }}%\n \n \n \n \n \n \n\n\n\n\n\n","import { render } from \"./VerticalFactCheck.vue?vue&type=template&id=54f93922&scoped=true\"\nimport script from \"./VerticalFactCheck.vue?vue&type=script&lang=js\"\nexport * from \"./VerticalFactCheck.vue?vue&type=script&lang=js\"\n\nimport \"./VerticalFactCheck.vue?vue&type=style&index=0&id=54f93922&scoped=true&lang=css\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-54f93922\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex flex-col space-y-6\" }\nconst _hoisted_2 = { class: \"flex items-center space-x-2\" }\nconst _hoisted_3 = { class: \"text-base\" }\nconst _hoisted_4 = [\"innerHTML\"]\nconst _hoisted_5 = { class: \"p-4 bg-opacity-50 rounded-md bg-light\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"flex justify-end\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_UserAvatar = _resolveComponent(\"UserAvatar\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_PostPreview = _resolveComponent(\"PostPreview\")!\n const _component_DeleteIcon = _resolveComponent(\"DeleteIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_router_link, { to: _ctx.postAuthorProfileRoute }, {\n default: _withCtx(() => [\n _createVNode(_component_UserAvatar, {\n class: \"\",\n size: 'sm',\n url: _ctx.post.author.profile_picture\n }, null, 8, [\"url\"])\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createElementVNode(\"h3\", _hoisted_3, [\n _createVNode(_component_router_link, {\n class: \"text-link\",\n to: _ctx.postAuthorProfileRoute\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.post.author.full_name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createTextVNode(\" ha condiviso \"),\n _createVNode(_component_router_link, {\n class: \"font-medium text-link\",\n to: _ctx.sharedPostRoute\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"un post\")\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ]),\n _createElementVNode(\"div\", {\n innerHTML: _ctx.post.content\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_PostPreview, {\n post: _ctx.post.shared,\n onFactCheck: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('factCheck', $event))),\n onShowSources: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('showSources', $event))),\n readonly: true,\n canShare: false\n }, null, 8, [\"post\"])\n ]),\n (_ctx.isPostOwner)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_TButton, {\n class: \"text-gray-600\",\n variant: 'icon',\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('delete', _ctx.post)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DeleteIcon)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport UserAvatar from \"../UserAvatar.vue\";\nimport { Post } from \"@/models\";\nimport {\n defineComponent,\n PropType,\n defineAsyncComponent,\n} from \"@vue/runtime-core\";\nimport { useMainStore } from \"../../stores/mainStore\";\nimport { mapStores } from \"pinia\";\nimport { TButton } from \"@variantjs/vue\";\nimport DeleteIcon from \"vue-material-design-icons/Delete.vue\";\n\nexport default defineComponent({\n name: \"SharedPost\",\n props: {\n post: {\n type: Object as PropType,\n required: true,\n },\n },\n beforeCreate() {\n // dynamically import specialized components to prevent circular imports\n\n (this.$options.components as any).PostPreview = defineAsyncComponent(\n () => import(\"./PostPreview.vue\")\n );\n },\n methods: {},\n computed: {\n ...mapStores(useMainStore),\n isPostOwner() {\n return this.post.author.id == this.mainStore.user?.id;\n },\n postAuthorProfileRoute() {\n return {\n name: \"UserProfile\",\n params: {\n userId: this.post.author.id,\n },\n };\n },\n sharedPostRoute() {\n return {\n name: \"PostDetail\",\n params: {\n postId:\n typeof this.post.shared === \"object\"\n ? this.post.shared.id\n : this.post.shared,\n },\n };\n },\n },\n components: { UserAvatar, DeleteIcon, TButton },\n});\n","import { render } from \"./SharedPost.vue?vue&type=template&id=3552a6d2&ts=true\"\nimport script from \"./SharedPost.vue?vue&type=script&lang=ts\"\nexport * from \"./SharedPost.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport VideoPlayer from \"./VideoPlayer.vue\";\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Comment, Post } from \"../../models/interfaces\";\nimport UserAvatar from \"../UserAvatar.vue\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\nimport { TButton } from \"@variantjs/vue\";\nimport BookmarkIcon from \"vue-material-design-icons/Bookmark.vue\";\nimport BookmarkOutlineIcon from \"vue-material-design-icons/BookmarkOutline.vue\";\nimport ThumbUpIcon from \"vue-material-design-icons/ThumbUp.vue\";\nimport ThumbUpOutlineIcon from \"vue-material-design-icons/ThumbUpOutline.vue\";\nimport HandCoinIcon from \"vue-material-design-icons/HandCoin.vue\";\nimport ShareIcon from \"vue-material-design-icons/Share.vue\";\nimport DeleteIcon from \"vue-material-design-icons/Delete.vue\";\nimport EyeIcon from \"vue-material-design-icons/Eye.vue\";\nimport SpeedometerIcon from \"vue-material-design-icons/Speedometer.vue\";\nimport PostComment from \"./PostComment.vue\";\nimport CommentEditor from \"./CommentEditor.vue\";\nimport VerticalFactCheck from \"./VerticalFactCheck.vue\";\nimport SharedPost from \"./SharedPost.vue\";\nimport { Section } from \"../../models\";\nimport VRuntimeTemplate from \"vue3-runtime-template\";\nimport { getFormattedRelativeTimestamp } from \"../../utils\";\n\nexport default defineComponent({\n name: \"PostPreview\",\n props: {\n post: {\n type: Object as PropType,\n required: true,\n },\n comments: {\n type: Array as PropType,\n default: () => [],\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n canShare: {\n type: Boolean,\n default: true,\n },\n disableComment: {\n type: Boolean,\n default: false,\n },\n },\n async created() {\n if (this.post.my_fact_check_vote) {\n this.factCheckVote = this.post.my_fact_check_vote;\n }\n if (this.post.section) {\n this.postSection = await this.mainStore.getSectionById(this.post.section);\n }\n if (this.post.section_parent) {\n this.postSectionParent = await this.mainStore.getSectionById(\n this.post.section_parent\n );\n }\n },\n mounted() {\n if (this.post.shared) {\n return;\n }\n this.observer = new IntersectionObserver(\n (entries) => {\n // If the component is in view\n if (entries[0].isIntersecting && this.observer) {\n // Now we fetch comments\n this.mainStore.getPostComments(this.post.id);\n try {\n // Once we've fetched the comments, we don't need the observer anymore\n this.observer.unobserve(this.$refs.observer as Element);\n } catch {\n // too bad\n }\n }\n },\n {\n // Adjust the margins to make the observer trigger when the element is close to being in view.\n rootMargin: \"100px\",\n }\n );\n // Start observing the component\n this.observer.observe(this.$refs.observer as Element);\n },\n data() {\n return {\n factCheckVote: 50,\n postSection: null as null | Section,\n postSectionParent: null as null | Section,\n observer: null as null | IntersectionObserver,\n showAll: false,\n showAllComments: false,\n shownCommentsTab: \"fact_check\" as \"regular\" | \"fact_check\",\n };\n },\n methods: {\n onGiveCoin() {\n this.$emit(\"giveCoin\", this.post);\n },\n onShowAllClick() {\n this.showAll = true;\n },\n injectButtonIntoLastParagraph(html: string, buttonHtml: string) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, \"text/html\");\n const paragraphs = doc.querySelectorAll(\"p\");\n const lastParagraph = paragraphs[paragraphs.length - 1];\n lastParagraph.innerHTML += buttonHtml;\n const serializer = new XMLSerializer();\n return serializer.serializeToString(doc.body);\n },\n },\n watch: {\n regularCommentsCount: {\n immediate: true,\n handler(count) {\n if (count > 0 && this.factCheckComments.length === 0) {\n this.shownCommentsTab = \"regular\";\n }\n },\n },\n },\n computed: {\n ...mapStores(useMainStore),\n regularCommentsCount() {\n return this.regularComments.length;\n },\n regularComments() {\n return this.comments.filter((c) => c.comment_type === \"regular\");\n },\n factCheckComments() {\n return this.comments.filter((c) => c.comment_type === \"fact_check\");\n },\n shownRegularComments() {\n // regular comments\n if (this.showAllComments) {\n return this.regularComments;\n }\n return [...this.regularComments].slice(0, 3);\n },\n postAuthorProfileRoute() {\n return {\n name: \"UserProfile\",\n params: {\n userId: this.post.author.id,\n },\n };\n },\n isPostOwner() {\n return this.post.author.id == this.mainStore.user?.id;\n },\n shownPostContent() {\n if (this.showAll) {\n return {\n text: this.$sanitize(this.post.content),\n cutoffApplied: false,\n };\n }\n const parser = new DOMParser();\n const doc = parser.parseFromString(this.post.content, \"text/html\");\n\n let text = \"\";\n let length = 0;\n let cutoff = false;\n let tags: string[] = []; // Stores the currently open tags\n\n const selfClosingTags = [\n \"br\",\n \"img\",\n \"input\",\n \"area\",\n \"base\",\n \"col\",\n \"command\",\n \"embed\",\n \"hr\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n ];\n\n const traverse = (node: any) => {\n for (let child of node.childNodes) {\n if (cutoff) return;\n if (child.nodeType === Node.TEXT_NODE) {\n length += child.textContent.length;\n if (length > 500) {\n text +=\n child.textContent.slice(\n 0,\n 500 - (length - child.textContent.length)\n ) + \"...\";\n cutoff = true;\n // Close any open tags\n while (tags.length > 0) {\n text += `${tags.pop()}>`;\n }\n } else {\n text += child.textContent;\n }\n } else if (child.nodeType === Node.ELEMENT_NODE) {\n if (selfClosingTags.includes(child.tagName.toLowerCase())) {\n text += child.outerHTML;\n } else {\n let html = `<${child.tagName.toLowerCase()}>`;\n text += html;\n tags.push(child.tagName.toLowerCase()); // Add the tag to the stack\n traverse(child);\n if (!cutoff) {\n html = `${tags.pop()}>`; // Close the tag if not cutoff\n text += html;\n }\n }\n }\n }\n };\n\n traverse(doc.body);\n return {\n text: this.$sanitize(text),\n cutoffApplied: cutoff,\n };\n },\n postContentTemplate() {\n const { text, cutoffApplied } = this.shownPostContent;\n const buttonHtml = cutoffApplied\n ? `Mostra tutto`\n : \"\";\n\n return this.injectButtonIntoLastParagraph(text, buttonHtml).replace(\n /tbutton/g,\n \"TButton\"\n );\n },\n formattedTimestamp() {\n return getFormattedRelativeTimestamp(this.post.created_at);\n // return getFormattedTimestamp(this.post.created_at, false, true);\n },\n // formattedTimestampReduced() {\n // return getFormattedTimestamp(this.post.created_at, true, true);\n // },\n },\n components: {\n UserAvatar,\n TButton,\n BookmarkIcon,\n BookmarkOutlineIcon,\n ThumbUpIcon,\n ThumbUpOutlineIcon,\n HandCoinIcon,\n PostComment,\n CommentEditor,\n ShareIcon,\n SharedPost,\n VerticalFactCheck,\n EyeIcon,\n SpeedometerIcon,\n VideoPlayer,\n DeleteIcon,\n VRuntimeTemplate,\n },\n});\n","import { render } from \"./PostPreview.vue?vue&type=template&id=74b0bd45&ts=true\"\nimport script from \"./PostPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./PostPreview.vue?vue&type=script&lang=ts\"\n\nimport \"./PostPreview.vue?vue&type=style&index=0&id=74b0bd45&lang=css\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { ref: \"observer\" }\nconst _hoisted_2 = { class: \"\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"absolute top-0 right-0 z-50 hidden text-light filter hover:text-black drop-shadow-xl group-hover:block\"\n}\nconst _hoisted_4 = {\n class: \"relative w-56 overflow-hidden h-36\",\n style: {\"margin\":\"-16px !important\",\"transition\":\"filter 0.2s ease-out\",\"filter\":\"brightness(0.7)\"}\n}\nconst _hoisted_5 = {\n key: 1,\n style: {\"z-index\":\"1001\"},\n class: \"fixed flex w-full transform -translate-x-1/2 -translate-y-1/2 lg:w-auto video-container top-1/2 left-1/2\"\n}\nconst _hoisted_6 = {\n key: 0,\n class: \"fixed flex flex-col items-center w-full space-y-6 text-xl font-medium text-white transform -translate-x-1/2 -translate-y-1/2 shadow-2xl top-1/2 left-1/2\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"text-center\" }, \" Stiamo elaborando il video. Riprova tra qualche minuto. \", -1)\nconst _hoisted_8 = {\n key: 2,\n playsinline: \"\",\n controls: \"\",\n class: \"w-full m-auto\"\n}\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"p\", null, \" Il tuo browswer non supporta la riproduzione di video. Prova con un altro browser. \", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PlayIcon = _resolveComponent(\"PlayIcon\")!\n const _component_CloseIcon = _resolveComponent(\"CloseIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_VideoIcon = _resolveComponent(\"VideoIcon\")!\n const _component_TCard = _resolveComponent(\"TCard\")!\n const _component_CloudClockOutlineIcon = _resolveComponent(\"CloudClockOutlineIcon\")!\n const _component_LoadingSpinner = _resolveComponent(\"LoadingSpinner\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_TCard, {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onPlay())),\n class: \"relative overflow-hidden transition-colors duration-200 ease-out rounded-md cursor-pointer group\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_PlayIcon, {\n class: \"absolute z-10 transition-transform duration-200 ease-in-out transform -translate-x-1/2 -translate-y-1/2 drop-shadow-lg top-1/2 left-1/2 text-light group-hover:scale-110\",\n size: 75\n }),\n (_ctx.canRemove)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_TButton, {\n variant: 'icon',\n class: \"bg-white bg-opacity-30\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('deleteVideo')))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_CloseIcon)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n style: _normalizeStyle(\n _ctx.base64Thumbnail\n ? 'background-image: url(' +\n _ctx.base64Thumbnail +\n '); background-size: cover;'\n : ''\n ),\n class: \"absolute top-0 left-0 flex flex-col items-center w-56 h-36\"\n }, [\n (!_ctx.thumbnail)\n ? (_openBlock(), _createBlock(_component_VideoIcon, {\n key: 0,\n class: \"z-10 duration-300 ease-out transform text-secondary group-hover:scale-110\",\n size: 40\n }))\n : _createCommentVNode(\"\", true)\n ], 4)\n ])\n ]),\n _: 1\n })\n ]),\n (_ctx.showPlayer)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"fixed top-0 left-0 w-screen h-screen cursor-pointer bg-gray-950 bg-opacity-80\",\n style: {\"z-index\":\"1000\"},\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onClose()))\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.showPlayer)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_ctx.status !== 'done')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_CloudClockOutlineIcon, {\n class: \"opacity-70\",\n size: \"100\"\n }),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.downloading)\n ? (_openBlock(), _createBlock(_component_LoadingSpinner, {\n key: 1,\n class: \"fixed transform -translate-x-1/2 -translate-y-1/2 top-1/2 left-1/2\"\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.videoUrl)\n ? (_openBlock(), _createElementBlock(\"video\", _hoisted_8, [\n _createElementVNode(\"source\", {\n src: _ctx.url,\n class: \"\"\n }, null, 8, _hoisted_9),\n _hoisted_10\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 512))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { mapStores } from \"pinia\";\nimport { useMainStore } from \"../../stores/mainStore\";\nimport { TCard } from \"@variantjs/vue\";\nimport { TButton } from \"@variantjs/vue\";\nimport VideoIcon from \"vue-material-design-icons/Video.vue\";\nimport PlayIcon from \"vue-material-design-icons/Play.vue\";\nimport CloudClockOutlineIcon from \"vue-material-design-icons/CloudClockOutline.vue\";\nimport CloseIcon from \"vue-material-design-icons/Close.vue\";\nimport LoadingSpinner from \"../ui/LoadingSpinner.vue\";\n// import { VideoPlayer as VueVideoPlayer } from \"@videojs-player/vue\";\n// import \"video.js/dist/video-js.css\";\nimport axios from \"axios\";\n\nexport default defineComponent({\n name: \"VideoPlayer\",\n props: {\n thumbnail: {\n type: String,\n required: false,\n },\n videoId: {\n type: String,\n required: true,\n },\n url: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n required: false,\n },\n canRemove: {\n type: Boolean,\n default: false,\n },\n status: {\n type: String as PropType<\"done\" | \"processing\" | \"failed\">,\n required: true,\n },\n },\n mounted() {\n this.observer = new IntersectionObserver(\n (entries) => {\n // If the component is in view\n if (entries[0].isIntersecting && this.observer) {\n // Now we download the video\n this.downloadVideo();\n // Once we've downloaded the video, we don't need the observer anymore\n try {\n // Once we've fetched the comments, we don't need the observer anymore\n this.observer.unobserve(this.$refs.observer as Element);\n } catch {\n // too bad\n }\n }\n },\n {\n // Adjust the margins to make the observer trigger when the element is close to being in view.\n rootMargin: \"100px\",\n }\n );\n // Start observing the component\n this.observer.observe(this.$refs.observer as Element);\n },\n data() {\n return {\n downloading: false,\n videoSrc: \"\",\n arrayBufferSource: null as null | ArrayBuffer,\n showPlayer: false,\n observer: null as null | IntersectionObserver,\n };\n },\n methods: {\n async downloadVideo() {\n return;\n // if (this.status !== \"done\") {\n // return;\n // }\n // this.downloading = true;\n // try {\n // this.arrayBufferSource = await this.mainStore.getVideoById(\n // this.videoId\n // );\n // this.videoSrc = (window.URL || window.webkitURL).createObjectURL(\n // new Blob([this.arrayBufferSource as ArrayBuffer])\n // );\n // } catch (e) {\n // console.error(e);\n // } finally {\n // this.downloading = false;\n // }\n },\n onPlay() {\n this.showPlayer = true;\n },\n onClose() {\n this.showPlayer = false;\n },\n },\n computed: {\n ...mapStores(useMainStore),\n base64Thumbnail() {\n if (!this.thumbnail) {\n return \"\";\n }\n return `data:image/png;base64,${this.thumbnail}`;\n },\n videoUrl() {\n // return axios.defaults.baseURL + `/download/${this.videoId}/#.mp4`;\n return axios.defaults.baseURL + `/videos/${this.videoId}/`;\n },\n },\n components: {\n TCard,\n VideoIcon,\n PlayIcon,\n CloseIcon,\n TButton,\n LoadingSpinner,\n // VueVideoPlayer,\n CloudClockOutlineIcon,\n },\n});\n","import { render } from \"./VideoPlayer.vue?vue&type=template&id=cc320f4e&ts=true\"\nimport script from \"./VideoPlayer.vue?vue&type=script&lang=ts\"\nexport * from \"./VideoPlayer.vue?vue&type=script&lang=ts\"\n\nimport \"./VideoPlayer.vue?vue&type=style&index=0&id=cc320f4e&lang=css\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex flex-col space-y-0\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SectionListItem = _resolveComponent(\"SectionListItem\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.processedSections, (section) => {\n return (_openBlock(), _createBlock(_component_SectionListItem, {\n key: section.id,\n section: section,\n \"sub-sections\": _ctx.getSubSections(section.id)\n }, null, 8, [\"section\", \"sub-sections\"]))\n }), 128))\n ]))\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"text-lg font-medium\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"text-base font-medium\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_MenuDownIcon = _resolveComponent(\"MenuDownIcon\")!\n const _component_MenuUpIcon = _resolveComponent(\"MenuUpIcon\")!\n const _component_TButton = _resolveComponent(\"TButton\")!\n const _component_SectionListItem = _resolveComponent(\"SectionListItem\", true)!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"flex items-center space-x-0.5\", {\n 'pl-4': _ctx.sub,\n }])\n }, [\n _createVNode(_component_router_link, {\n class: \"hover-underline-animation hover:font-medium\",\n to: { name: _ctx.routeName, params: { sectionId: _ctx.section.id } }\n }, {\n default: _withCtx(() => [\n (!_ctx.sub)\n ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_1, _toDisplayString(_ctx.section.name), 1))\n : (_openBlock(), _createElementBlock(\"h4\", _hoisted_2, _toDisplayString(_ctx.section.name), 1))\n ]),\n _: 1\n }, 8, [\"to\"]),\n (_ctx.hasSubSections)\n ? (_openBlock(), _createBlock(_component_TButton, {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.expanded = !_ctx.expanded)),\n variant: 'icon'\n }, {\n default: _withCtx(() => [\n (!_ctx.expanded)\n ? (_openBlock(), _createBlock(_component_MenuDownIcon, { key: 0 }))\n : (_openBlock(), _createBlock(_component_MenuUpIcon, { key: 1 }))\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\n _ctx.expanded ? 'max-h-96' : 'max-h-0',\n 'transition-all duration-300 ease overflow-hidden flex flex-col pt-6',\n ])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.subSections, (subSection) => {\n return (_openBlock(), _createBlock(_component_SectionListItem, {\n sub: true,\n key: subSection.id,\n section: subSection\n }, null, 8, [\"section\"]))\n }), 128))\n ], 2)\n ]))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Section } from \"@/models/interfaces\";\nimport MenuDownIcon from \"vue-material-design-icons/MenuDown.vue\";\nimport MenuUpIcon from \"vue-material-design-icons/MenuUp.vue\";\nimport { TButton } from \"@variantjs/vue\";\nexport default defineComponent({\n // eslint-disable-next-line vue/multi-word-component-names\n name: \"SectionListItem\",\n props: {\n section: {\n type: Object as PropType,\n required: true,\n },\n subSections: {\n type: Array as PropType,\n default: () => [],\n },\n sub: {\n type: Boolean as PropType,\n default: false,\n },\n },\n data() {\n return {\n expanded: false,\n };\n },\n components: { MenuDownIcon, MenuUpIcon, TButton },\n methods: {},\n computed: {\n hasSubSections() {\n return this.subSections.length > 0;\n },\n routeName() {\n const currentRouteParams = this.$route.params;\n return currentRouteParams.userId ? \"UserProfileSection\" : \"SectionHome\";\n },\n },\n});\n","import { render } from \"./SectionListItem.vue?vue&type=template&id=10fb4556&ts=true\"\nimport script from \"./SectionListItem.vue?vue&type=script&lang=ts\"\nexport * from \"./SectionListItem.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nimport { Section } from \"@/models/interfaces\";\nimport SectionListItem from \"@/components/Sections/SectionListItem.vue\";\nexport default defineComponent({\n name: \"SectionList\",\n components: { SectionListItem },\n props: {\n sections: {\n type: Array as PropType,\n required: true,\n },\n },\n methods: {\n getSubSections(parentId: string) {\n return this.sections.filter((s) => s.parent == parentId);\n },\n },\n computed: {\n topLevelSections() {\n return this.sections.filter((s) => s.parent === null);\n },\n processedSections() {\n // if we're at top level, only show top-level sections, otherwise show all\n return this.$route.params.sectionId\n ? this.sections\n : this.topLevelSections;\n },\n },\n});\n","import { render } from \"./SectionList.vue?vue&type=template&id=74073c80&ts=true\"\nimport script from \"./SectionList.vue?vue&type=script&lang=ts\"\nexport * from \"./SectionList.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"overflow-hidden rounded-full\",\n style: _normalizeStyle(_ctx.sizeStyle)\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.urlWithFallback,\n alt: \"Avatar\"\n }, null, 8, _hoisted_1)\n ], 4))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nexport default defineComponent({\n name: \"UserAvatar\",\n props: {\n url: {\n type: String as PropType,\n required: true,\n },\n size: {\n type: String as PropType<\"sm\" | \"md\" | \"lg\" | \"xl\">,\n default: \"md\",\n },\n },\n methods: {},\n computed: {\n urlWithFallback() {\n return this.url || \"https://via.placeholder.com/150\";\n },\n sizeStyle() {\n const sizes = {\n sm: \"1.5rem\",\n md: \"2.5rem\",\n lg: \"3.5rem\",\n xl: \"15rem\",\n };\n\n return {\n \"min-width\": sizes[this.size],\n \"min-height\": sizes[this.size],\n \"max-width\": sizes[this.size],\n \"max-height\": sizes[this.size],\n };\n },\n },\n});\n","import { render } from \"./UserAvatar.vue?vue&type=template&id=0d5e98c5&ts=true\"\nimport script from \"./UserAvatar.vue?vue&type=script&lang=ts\"\nexport * from \"./UserAvatar.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.$slots.activator?.())\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('toggleExpanded')))\n }, [\n _renderSlot(_ctx.$slots, \"activator\")\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"absolute z-50 w-max overflow-y-auto transition-all duration-100 ease-in transform bg-white mt-1.5 card shadow-popup\", {\n 'opacity-0 scale-95 invisible max-h-97': !_ctx.expanded,\n 'max-h-97 opacity-100 scale-100': _ctx.expanded,\n 'origin-top-left left-0': _ctx.placement === 'left',\n 'origin-top-right right-0': _ctx.placement === 'right',\n }])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ])), [\n [_directive_click_outside, () => (_ctx.expanded ? _ctx.$emit('toggleExpanded') : undefined)]\n ])\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\n\nexport default defineComponent({\n name: \"DropdownMenu\",\n props: {\n tooltip: {\n type: String,\n default: \"\",\n },\n label: {\n type: String,\n default: \"\",\n },\n icon: {\n type: String,\n default: \"more_vert\",\n },\n trailingIcon: {\n type: String,\n default: \"\",\n },\n expanded: {\n type: Boolean,\n required: true,\n },\n placement: {\n type: String as PropType<\"left\" | \"right\">,\n default: \"left\",\n },\n loading: {\n type: Boolean,\n default: false,\n },\n },\n methods: {},\n computed: {},\n components: {},\n});\n","import { render } from \"./DropdownMenu.vue?vue&type=template&id=4f0f0a84&ts=true\"\nimport script from \"./DropdownMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./DropdownMenu.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"spinner\",\n width: \"65px\",\n height: \"65px\",\n viewBox: \"0 0 66 66\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"circle\", {\n class: \"path\",\n fill: \"none\",\n \"stroke-width\": \"6\",\n \"stroke-linecap\": \"round\",\n cx: \"33\",\n cy: \"33\",\n r: \"30\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\nimport { defineComponent, PropType } from \"@vue/runtime-core\";\nexport default defineComponent({\n name: \"LoadingSpinner\",\n props: {},\n methods: {},\n computed: {},\n});\n","import { render } from \"./LoadingSpinner.vue?vue&type=template&id=602d7377&ts=true\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=ts\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=ts\"\n\nimport \"./LoadingSpinner.vue?vue&type=style&index=0&id=602d7377&lang=css\"\n\nimport exportComponent from \"/tmp/build/node_modules/.pnpm/vue-loader@17.1.0_vue@3.2.47_webpack@5.82.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + \"54fe75ac\" + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfrontend\"] = self[\"webpackChunkfrontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3032); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","MOCK_SERVICE_ACTIVE","configuration","TButton","fixedClasses","classes","variants","secondary","icon","text","tab","error","success","TInput","danger","search","TTag","title","subtitle","badge","avatar","TCard","wrapper","body","header","footer","TSelect","TRichSelect","buttonWrapper","selectButton","selectButtonLabel","selectButtonPlaceholder","selectButtonIcon","selectButtonClearButton","selectButtonClearIcon","dropdown","dropdownFeedback","loadingMoreResults","optionsList","searchWrapper","searchBox","optgroup","option","disabledOption","highlightedOption","selectedOption","selectedHighlightedOption","optionContent","optionLabel","selectedIcon","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","props","TRadio","label","feedback","description","navigator","navigatorViewButton","navigatorViewButtonIcon","navigatorViewButtonBackIcon","navigatorLabel","navigatorPrevButtonIcon","navigatorNextButtonIcon","inputWrapper","viewGroup","view","calendarDaysWrapper","calendarHeaderWrapper","monthWrapper","yearWrapper","input","clearButton","clearButtonIcon","dropdownWrapper","inlineWrapper","inlineViews","navigatorViewButtonMonth","navigatorViewButtonYear","navigatorViewButtonYearRange","navigatorLabelMonth","navigatorLabelYear","navigatorPrevButton","navigatorNextButton","calendarWrapper","calendarHeaderWeekDay","calendarDaysDayWrapper","otherMonthDay","emptyDay","inRangeFirstDay","inRangeLastDay","inRangeDay","selectedDay","activeDay","highlightedDay","day","today","selectedMonth","activeMonth","month","year","selectedYear","activeYear","wrapperChecked","wrapperDisabled","wrapperCheckedDisabled","button","buttonChecked","checkedPlaceholder","uncheckedPlaceholder","box","close","closeIcon","overlay","modal","overlayEnterClass","overlayEnterActiveClass","overlayEnterToClass","overlayLeaveClass","overlayLeaveActiveClass","overlayLeaveToClass","dialog","iconWrapper","okButton","buttons","content","titleWrapper","textWrapper","cancelButton","select","radioWrapper","radio","radioText","checkboxWrapper","checkbox","checkboxText","errorMessage","busyWrapper","busyIcon","horizontal","table","thead","theadTr","theadTh","tbody","tr","td","tfoot","tfootTr","tfootTd","thin","element","activeElement","disabledElement","ellipsisElement","activeButton","disabledButton","ellipsis","rounded","registrationErrors","formatDate","date","getFullYear","getMonth","slice","getDate","sanitizeOptions","allowedTags","disallowedTagsMode","allowedAttributes","a","img","selfClosing","allowedSchemes","allowedSchemesByTag","allowedSchemesAppliedToAttributes","allowProtocolRelative","enforceHtmlBoundary","_hoisted_1","class","_hoisted_2","_hoisted_3","key","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","render","_ctx","_cache","$props","$setup","$data","$options","_component_NavBar","_resolveComponent","_component_router_view","_component_SnackBar","_component_UserAvatar","_component_router_link","_component_CogIcon","_component_TButton","_component_LogoutIcon","_component_SectionList","_component_Slide","_openBlock","_createElementBlock","showNavBar","_createBlock","onOpenMobileSidebar","$event","mobileSidebarExpanded","_createCommentVNode","_createVNode","ref","isOpen","closeOnNavigation","disableOutsideClick","default","_withCtx","_createElementVNode","size","url","mainStore","user","profile_picture","to","name","params","userId","_toDisplayString","full_name","_","variant","onClick","logOut","email","sections","shownSections","role","snackbarId","defineComponent","data","baseUuid","uuid4","snackbar","watch","message","newVal","this","openFor","mounted","MDCSnackbar","document","querySelector","methods","timeoutMs","labelText","open","computed","mapStores","useMainStore","snackbarMessage","__exports__","src","_imports_0","_imports_1","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_component_SearchBar","_component_MenuIcon","_component_DropdownMenu","href","$router","path","$emit","placement","expanded","userCardExpanded","onToggleExpanded","activator","avatarUrl","_createTextVNode","style","_component_MagnifyIcon","_component_TInput","_component_PostOutlineIcon","_directive_click_outside","_resolveDirective","_withDirectives","placeholder","modelValue","query","onInput","updateQuery","onFocus","showResults","loading","unifiedResults","length","_Fragment","_renderList","PAGE_SIZE","resultsPage","result","index","resultTypeRouteMapping","type","getPostPreview","onMoreResults","_vShow","useSearchStore","defineStore","state","results","posts","subsections","users","getters","s","filter","u","user_type","p","post_type","actions","setQuery","newQuery","setLoading","newLoading","async","response","axios","debounce","require","setup","searchStore","storeToRefs","debouncedSearch","event","target","value","post","postId","section","sectionId","subsection","strippedText","stripHtmlFromString","preview","components","MagnifyIcon","UserAvatar","PostOutlineIcon","SearchBar","DropdownMenu","CogIcon","LogoutIcon","MenuIcon","init","route","useRoute","meta","disableNavBar","NavBar","SnackBar","Slide","SectionList","pinia","createPinia","process","status","router","toString","toLowerCase","createApp","App","directive","clickOutsideDirective","use","Vue3Sanitize","variantJS","mount","_component_HomeIcon","_component_PlusIcon","_component_PostList","_component_VueEternalLoading","_component_BaseView","_component_PostEditor","_component_FullDialog","currentSection","tabs","_normalizeClass","isActiveTab","onShowPostEditor","main","load","onLoadMore","isInitialInfiniteLoad","onCloseDialog","showPostEditor","onDone","canCreateDisseminationPost","currentUser","$slots","_renderSlot","Array","tabName","$route","_component_CloseIcon","dialogId","Boolean","mdcComponent","MDCDialog","listen","CloseIcon","xmlns","height","viewBox","width","fill","d","points","x","y","_hoisted_19","_hoisted_20","_component_SegmentedButtons","_component_TRichSelect","_component_PublishIcon","_component_TextEditor","_component_VideoInput","_component_VideoPlayer","_component_SourceList","_component_TCard","options","postTypeOptions","searchBoxPlaceholder","noResultsText","sectionsOptions","disabled","invalidPost","publishing","onPublish","tall","uploadingVideo","onFile","onVideoUpload","localVideos","video","file","videoId","thumbnail","onDeleteVideo","deleteDraftVideo","canRemove","sources","getBlankPost","postType","author","created_at","getBlankPostComment","comment_type","getSharedPost","shared","_component_quill_editor","_normalizeStyle","onMouseup","endDragging","resizablePanelId","showPreview","errors","showBaseEditor","forceBaseEditor","rows","baseEditorRows","editorOptions","internalDisabled","onChange","onEditorChange","onReady","onEditorReady","dividerStyle","onMousedown","startDragging","transform","previewPanelWidth","innerHTML","stripHtmlFromLaTexBlocks","ImageResize","ImageDrop","Quill","MagicUrl","String","required","showPreviewButton","Number","quillEditor","$nextTick","addCustomButtons","instance","pos","triggerTexHandle","handleDragging","percentage","pageX","window","innerWidth","latexButton","addEventListener","selection","getSelection","insertText","setSelection","getElementById","htmlButton","toggleBaseEditor","removeEventListener","html","quill","on","onSelectionChange","root","fullText","getText","range","previewPanelStyle","left","theme","modules","toolbar","list","imageResize","imageDrop","magicUrl","for","checked","inputEvent","preventDefault","_component_VideoPlusIcon","_component_LoadingSpinner","baseId","accept","onFileChange","files","VideoPlusIcon","LoadingSpinner","source","onEditSource","onDeleteSource","onAddSource","defaultSourceOptions","otherType","source_type","newSources","splice","PlusIcon","_component_VideoIcon","base64Thumbnail","trim","VideoIcon","LOCAL_VIDEOS_KEY","created","getDraftVideos","handler","createPost","v","resetLocalDraft","showSuccessNotification","console","uploadVideo","addDraftVideo","$refs","videoInput","JSON","parse","localStorage","getItem","push","setItem","stringify","findIndex","some","authorizedSections","authorized_sections","includes","parent","getSortedSections","parentId","sort","b","localeCompare","reduce","acc","concat","sortedSections","sectionNames","TextEditor","SegmentedButtons","PublishIcon","VideoInput","SourceList","VideoThumbnail","VideoPlayer","useSections","onSectionIdChange","callback","immediate","fetchSections","wrapWithLoading","getSections","filters","getSectionById","usePostsByType","fetchPosts","page","loadingPosts","moreResults","getPosts","_createStaticVNode","_hoisted_21","_hoisted_22","_component_PostPreview","_component_MDDialog","_component_HandCoinIcon","_component_FactCheckVoter","_component_TTextarea","comments","postComments","disableComment","creatingCommentForPosts","has","onShare","onFactCheck","onShowSources","onLike","onSave","onDelete","onCreateComment","onGiveCoin","sharingPost","large","readonly","sharePostText","loadingAction","doShare","givingCoinPost","coinsToGive","Math","max","min","_vModelText","doGiveCoin","factCheckingPost","dirtyFactCheck","factCheckComment","maxlength","doFactCheck","showingSourcesPost","stringToTextWithLinks","mediaQueryMdMatches","okOnly","mediaQueryMixin","mq","matchMedia","matches","mixins","_component_TRadio","uuid","Set","urlRegex","urlMatches","match","forEach","replace","likePost","liked","savePost","saved","confirm","deletePost","add","createComment","delete","factCheckPost","my_fact_check_vote","PostPreview","MDDialog","FactCheckVoter","TTextarea","HandCoinIcon","tabValue","values","HOME_TABS","currentPage","loaded","noMore","undefined","newPage","newSectionId","newPostType","oldProps","oldSectionId","oldPostType","BaseView","FullDialog","PostEditor","HomeIcon","PostList","VueEternalLoading","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_component_SortIcon","_component_AccountGroupIcon","_component_AccountMinusIcon","_component_AccountPlusIcon","_component_SectionSorter","_createSlots","isOwnProfile","bio","followersExpanded","currentUserFollowers","followers_count","follower","onFollow","is_followed","followedExpanded","currentUserFollowed","fn","onSortSections","showSortSectionsDialog","sectionsSortOption","topLevelSections","onClose","onUserIdChange","getUserById","getUserFollowersByUserId","getUserFollowedByUserId","_component_DragVerticalIcon","_component_draggable","dirtySortType","itemKey","animation","item","thereAreChanges","sortType","serializedSectionsAndSortType","setSectionSorting","location","reload","i","draggable","DragVerticalIcon","PROFILE_TABS","useUser","newUserId","oldUserId","postFilters","sectionFilters","relevant_for","shouldRefetch","getSectionSorting","then","res","sort_type","isFollowed","followUser","AccountPlusIcon","AccountMinusIcon","AccountGroupIcon","SortIcon","SectionSorter","onSubmit","_withModifiers","username","password","showError","login","registration_complete","_component_CalendarInput","_component_EyeIcon","_component_EyeOffIcon","autocomplete","err","birthDate","showPassword","passwordConfirm","showConfirmPassword","_component_date_picker","elementId","hidden","proxyModelValue","onOpen","calendarOpen","formatter","DatePicker","CalendarTodayIcon","toLocaleDateString","Date","getWeek","get","set","val","registerUser","CalendarInput","EyeOffIcon","EyeIcon","_component_AvatarSelector","_component_EditIcon","_component_DoneIcon","editingBio","dirtyBio","onUpdateBio","_component_CameraIcon","urlWithFallback","alt","selectedFile","selectedImageUrl","updateMe","URL","createObjectURL","CameraIcon","getMe","saved_by","savingBio","AvatarSelector","EditIcon","DoneIcon","getPostById","postById","routes","component","Login","Register","ProfileSettings","redirect","BaseHome","beforeEnter","_from","next","UserProfile","PostDetail","createRouter","history","createWebHistory","mockDisseminationPosts","fact_check_score","mockPersonalPosts","mockPostComments","mockSections","token","loadingSections","find","resetToken","removeItem","formData","auth_token","File","FormData","append","headers","updatedUser","responseType","rePassword","re_password","birth_date","customOrdering","custom_ordering","videoIds","newPost","video_ids","unshift","updatedPost","remove","comment","newComment","URLSearchParams","localSection","wallet_balance","setLoadingState","errorCallback","log","videoFile","beforeMount","el","binding","clickOutsideEvent","contains","unmounted","tmp","createElement","textContent","innerText","showMessage","getFormattedRelativeTimestamp","timestamp","moment","relativeTime","past","m","mm","h","hh","dd","M","MM","yy","locale","fromNow","_component_VerticalFactCheck","_component_v_runtime_template","_component_SpeedometerIcon","_component_ThumbUpIcon","_component_ThumbUpOutlineIcon","_component_BookmarkIcon","_component_BookmarkOutlineIcon","_component_ShareIcon","_component_DeleteIcon","_component_PostComment","_component_CommentEditor","_component_SharedPost","postSection","postAuthorProfileRoute","postSectionParent","formattedTimestamp","orientation","template","postContentTemplate","videos","likes","canShare","isPostOwner","factCheckComments","shownCommentsTab","shownRegularComments","regularComments","showAllComments","commentAuthorProfileRoute","toLocaleString","dateStyle","timeStyle","_component_SendIcon","onKeyup","_withKeys","SendIcon","thumbPosition","thumbColor","updateThumbPosition","colorStops","l","startIndex","startColor","endColor","t","onMounted","sharedPostRoute","beforeCreate","defineAsyncComponent","DeleteIcon","factCheckVote","section_parent","observer","IntersectionObserver","entries","isIntersecting","getPostComments","unobserve","rootMargin","observe","showAll","onShowAllClick","injectButtonIntoLastParagraph","buttonHtml","parser","DOMParser","doc","parseFromString","paragraphs","querySelectorAll","lastParagraph","serializer","XMLSerializer","serializeToString","regularCommentsCount","count","c","shownPostContent","$sanitize","cutoffApplied","cutoff","tags","selfClosingTags","traverse","node","child","childNodes","nodeType","Node","TEXT_NODE","pop","ELEMENT_NODE","tagName","outerHTML","BookmarkIcon","BookmarkOutlineIcon","ThumbUpIcon","ThumbUpOutlineIcon","PostComment","CommentEditor","ShareIcon","SharedPost","VerticalFactCheck","SpeedometerIcon","VRuntimeTemplate","playsinline","controls","_component_PlayIcon","_component_CloudClockOutlineIcon","onPlay","showPlayer","downloading","videoUrl","downloadVideo","videoSrc","arrayBufferSource","PlayIcon","CloudClockOutlineIcon","_component_SectionListItem","processedSections","getSubSections","_component_MenuDownIcon","_component_MenuUpIcon","sub","routeName","hasSubSections","subSections","subSection","MenuDownIcon","MenuUpIcon","currentRouteParams","SectionListItem","sizeStyle","sizes","sm","md","lg","xl","tooltip","trailingIcon","cx","cy","r","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","n","getter","__esModule","definition","defineProperty","enumerable","f","chunkId","Promise","all","promises","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","installedChunks","installedChunkData","promise","reject","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}
Affidabilità : {{ value }}%