@ozdao/martyrs 0.2.469 → 0.2.471
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Media-DwVcRIAX.mjs → Media-C4Ges_Sd.mjs} +1 -1
- package/dist/{Media-DCGbUujy.js → Media-CR0V1zvB.js} +1 -1
- package/dist/_virtual/index.cjs +1 -1
- package/dist/_virtual/index.js +1 -1
- package/dist/auth.server.js +1 -1
- package/dist/auth.server.mjs +1 -1
- package/dist/chats.server.js +15 -14
- package/dist/chats.server.mjs +15 -14
- package/dist/community.server.js +1 -1
- package/dist/community.server.mjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +1 -1
- package/dist/files.server.mjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/gallery.server.mjs +1 -1
- package/dist/globals.server.js +20 -12
- package/dist/globals.server.mjs +20 -12
- package/dist/{index-DICZTQ-1.mjs → index-CgMJYdNI.mjs} +3 -0
- package/dist/{index-DQqZReAr.js → index-DxIIUtHr.js} +3 -0
- package/dist/{main-DEHjtgLs.mjs → main-CTcal9qN.mjs} +900 -884
- package/dist/{main-UVdexuMN.js → main-CsZAG5Wz.js} +5 -5
- package/dist/martyrs/node_modules/@capacitor/core/dist/index.cjs.map +1 -0
- package/dist/martyrs/node_modules/@capacitor/core/dist/index.js.map +1 -0
- package/dist/martyrs/node_modules/{.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor → @capacitor}/preferences/dist/esm/index.cjs +1 -1
- package/dist/martyrs/node_modules/@capacitor/preferences/dist/esm/index.cjs.map +1 -0
- package/dist/martyrs/node_modules/{.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor → @capacitor}/preferences/dist/esm/index.js +1 -1
- package/dist/martyrs/node_modules/@capacitor/preferences/dist/esm/index.js.map +1 -0
- package/dist/martyrs/node_modules/{.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor → @capacitor}/preferences/dist/esm/web.cjs +1 -1
- package/dist/martyrs/node_modules/@capacitor/preferences/dist/esm/web.cjs.map +1 -0
- package/dist/martyrs/node_modules/{.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor → @capacitor}/preferences/dist/esm/web.js +1 -1
- package/dist/martyrs/node_modules/@capacitor/preferences/dist/esm/web.js.map +1 -0
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +1 -0
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/ParseError.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/ParseError.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/PhoneNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/PhoneNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/constants.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/constants.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/format.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/format.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/RFC3966.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/RFC3966.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getNumberType.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getNumberType.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/isObject.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/isObject.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/parseDigits.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/parseDigits.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/isPossible.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/isPossible.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/isValid.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/isValid.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/metadata.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/metadata.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/normalizeArguments.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/normalizeArguments.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parse.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parse.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parsePhoneNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parsePhoneNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parsePhoneNumber_.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/tools/semver-compare.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/es6/tools/semver-compare.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/metadata.min.json.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/metadata.min.json.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/min/exports/parsePhoneNumber.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/min/exports/withMetadataArgument.cjs.map +1 -0
- package/dist/martyrs/node_modules/libphonenumber-js/min/exports/withMetadataArgument.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
- package/dist/{node_modules/.pnpm/uuid@11.1.0 → martyrs}/node_modules/uuid/dist/esm-browser/rng.cjs +4 -4
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
- package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.cjs → Tooltip.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js.map → Tooltip.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +47 -16
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +47 -16
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +6 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +6 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +10 -10
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +10 -10
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/globals.client.cjs +0 -9
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +0 -9
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +107 -21
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +107 -21
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +40 -97
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +40 -97
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.js +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs +36 -10
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +36 -10
- package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/notifications.server.js +69 -13
- package/dist/notifications.server.mjs +69 -13
- package/dist/orders.server.js +4 -3
- package/dist/orders.server.mjs +4 -3
- package/dist/organizations.server.js +1 -1
- package/dist/organizations.server.mjs +1 -1
- package/dist/rents.server.js +1 -1
- package/dist/rents.server.mjs +1 -1
- package/dist/wallet.server.js +1 -1
- package/dist/wallet.server.mjs +1 -1
- package/package.json +1 -1
- package/src/components/Shader/Shader.vue +44 -25
- package/src/modules/auth/controllers/middlewares/authJwt.js +4 -0
- package/src/modules/chats/routes/chats.routes.js +21 -17
- package/src/modules/chats/store/chat.store.js +55 -28
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/pages/Blog.vue +1 -1
- package/src/modules/community/components/pages/BlogPost.vue +1 -0
- package/src/modules/community/components/pages/CreateBlogPost.vue +3 -3
- package/src/modules/constructor/components/elements/VideoPlayer.vue +1 -1
- package/src/modules/constructor/components/sections/Constructor.vue +9 -9
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/controllers/classes/globals.crud.js +2 -2
- package/src/modules/globals/controllers/classes/globals.websocket.js +29 -21
- package/src/modules/globals/globals.client.js +0 -12
- package/src/modules/globals/views/classes/globals.store.js +119 -31
- package/src/modules/globals/views/classes/globals.websocket.js +46 -146
- package/src/modules/icons/entities/IconMusic.vue +14 -0
- package/src/modules/icons/navigation/IconCheck.vue +31 -0
- package/src/modules/icons/navigation/IconHeart.vue +26 -0
- package/src/modules/icons/navigation/IconPause.vue +31 -0
- package/src/modules/icons/navigation/IconPlay.vue +17 -0
- package/src/modules/icons/navigation/IconRefresh.vue +31 -0
- package/src/modules/icons/navigation/IconShuffle.vue +31 -0
- package/src/modules/icons/navigation/IconVolume.vue +31 -0
- package/src/modules/icons/skeletons/SkeletonBlogpost.vue +2 -2
- package/src/modules/music/components/SidebarMusic.vue +156 -0
- package/src/modules/music/components/cards/AlbumCard.vue +107 -0
- package/src/modules/music/components/cards/ArtistCard.vue +37 -0
- package/src/modules/music/components/cards/PlaylistCard.vue +100 -0
- package/src/modules/music/components/cards/TrackCard.vue +86 -0
- package/src/modules/music/components/forms/PlaylistForm.vue +156 -0
- package/src/modules/music/components/forms/SearchForm.vue +82 -0
- package/src/modules/music/components/forms/UploadForm.vue +313 -0
- package/src/modules/music/components/layouts/MusicLayout.vue +137 -0
- package/src/modules/music/components/lists/AlbumList.vue +25 -0
- package/src/modules/music/components/lists/ArtistList.vue +25 -0
- package/src/modules/music/components/lists/PlaylistList.vue +25 -0
- package/src/modules/music/components/lists/TrackList.vue +175 -0
- package/src/modules/music/components/pages/AlbumDetail.vue +265 -0
- package/src/modules/music/components/pages/ArtistDetail.vue +247 -0
- package/src/modules/music/components/pages/MusicHome.vue +177 -0
- package/src/modules/music/components/pages/MusicLibrary.vue +192 -0
- package/src/modules/music/components/pages/MusicUpload.vue +44 -0
- package/src/modules/music/components/pages/PlaylistDetail.vue +504 -0
- package/src/modules/music/components/pages/SearchResults.vue +397 -0
- package/src/modules/music/components/pages/TrackDetail.vue +143 -0
- package/src/modules/music/components/player/MusicPlayer.vue +202 -0
- package/src/modules/music/components/player/TrackProgress.vue +110 -0
- package/src/modules/music/components/player/VolumeControl.vue +98 -0
- package/src/modules/music/controllers/album.controller.js +98 -0
- package/src/modules/music/controllers/artist.controller.js +111 -0
- package/src/modules/music/controllers/genre.controller.js +71 -0
- package/src/modules/music/controllers/music.controller.js +174 -0
- package/src/modules/music/controllers/playlist.controller.js +182 -0
- package/src/modules/music/controllers/search.controller.js +103 -0
- package/src/modules/music/controllers/stream.controller.js +106 -0
- package/src/modules/music/models/album.model.js +61 -0
- package/src/modules/music/models/artist.model.js +67 -0
- package/src/modules/music/models/genre.model.js +42 -0
- package/src/modules/music/models/play-history.model.js +51 -0
- package/src/modules/music/models/playlist.model.js +69 -0
- package/src/modules/music/models/track.model.js +94 -0
- package/src/modules/music/music.client.js +186 -0
- package/src/modules/music/music.server.js +114 -0
- package/src/modules/music/policies/music.policies.js +84 -0
- package/src/modules/music/router/music.js +77 -0
- package/src/modules/music/routes/album.routes.js +62 -0
- package/src/modules/music/routes/artist.routes.js +67 -0
- package/src/modules/music/routes/genre.routes.js +60 -0
- package/src/modules/music/routes/music.routes.js +145 -0
- package/src/modules/music/routes/playlist.routes.js +99 -0
- package/src/modules/music/routes/search.routes.js +10 -0
- package/src/modules/music/routes/stream.routes.js +38 -0
- package/src/modules/music/store/albums.js +200 -0
- package/src/modules/music/store/artists.js +180 -0
- package/src/modules/music/store/player.js +397 -0
- package/src/modules/music/store/playlists.js +211 -0
- package/src/modules/music/store/search.js +126 -0
- package/src/modules/music/store/tracks.js +230 -0
- package/src/modules/music/websocket/streaming.handler.js +151 -0
- package/src/modules/notifications/controllers/notifications.controller.js +2 -2
- package/src/modules/notifications/notifications.client.js +57 -19
- package/src/modules/notifications/notifications.server.js +3 -1
- package/src/modules/notifications/routes/notifications.routes.js +2 -2
- package/src/modules/notifications/services/notification.service.js +34 -15
- package/src/modules/notifications/services/web-push.service.js +7 -6
- package/src/modules/orders/controllers/orders.controller.js +2 -0
- package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.2.0/node_modules/@capacitor/core/dist/index.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.2.0/node_modules/@capacitor/core/dist/index.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor/preferences/dist/esm/index.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor/preferences/dist/esm/index.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor/preferences/dist/esm/web.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.1_@capacitor_core@7.2.0/node_modules/@capacitor/preferences/dist/esm/web.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/constants.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/constants.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/format.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/format.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/RFC3966.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/RFC3966.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getNumberType.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getNumberType.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/isObject.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/isObject.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/parseDigits.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/parseDigits.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/isPossible.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/isPossible.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/isValid.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/isValid.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/normalizeArguments.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/normalizeArguments.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parse.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parse.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parsePhoneNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parsePhoneNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parsePhoneNumber_.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/tools/semver-compare.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/tools/semver-compare.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/metadata.min.json.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/metadata.min.json.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/min/exports/parsePhoneNumber.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/min/exports/withMetadataArgument.cjs.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/min/exports/withMetadataArgument.js.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs +0 -21
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -21
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
- package/src/modules/notifications/notifications2.client.js +0 -256
- package/src/modules/notifications/services/websocket.service.js +0 -100
- /package/dist/martyrs/node_modules/{.pnpm/@capacitor_core@7.2.0/node_modules/@capacitor → @capacitor}/core/dist/index.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/@capacitor_core@7.2.0/node_modules/@capacitor → @capacitor}/core/dist/index.js +0 -0
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +0 -0
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs.map +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js.map +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/ParseError.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/ParseError.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/PhoneNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/PhoneNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/constants.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/constants.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/format.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/format.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/RFC3966.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/RFC3966.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/applyInternationalSeparatorStyle.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/applyInternationalSeparatorStyle.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/checkNumberLength.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/checkNumberLength.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extension/createExtensionPattern.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extension/createExtensionPattern.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extension/extractExtension.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extension/extractExtension.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractCountryCallingCode.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractCountryCallingCode.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractNationalNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractNationalNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractPhoneContext.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/extractPhoneContext.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/formatNationalNumberUsingFormat.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/formatNationalNumberUsingFormat.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getCountryByCallingCode.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getCountryByCallingCode.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getCountryByNationalNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getCountryByNationalNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getIddPrefix.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getIddPrefix.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getNumberType.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getNumberType.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getPossibleCountriesForNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/getPossibleCountriesForNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/isObject.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/isObject.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/isViablePhoneNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/isViablePhoneNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/matchesEntirely.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/matchesEntirely.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/parseDigits.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/parseDigits.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/stripIddPrefix.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/helpers/stripIddPrefix.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/isPossible.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/isPossible.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/isValid.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/isValid.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/metadata.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/metadata.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/normalizeArguments.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/normalizeArguments.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parse.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parse.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parseIncompletePhoneNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parseIncompletePhoneNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parsePhoneNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parsePhoneNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parsePhoneNumberWithError_.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parsePhoneNumberWithError_.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parsePhoneNumber_.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/parsePhoneNumber_.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/tools/semver-compare.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/es6/tools/semver-compare.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/metadata.min.json.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/metadata.min.json.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/min/exports/parsePhoneNumber.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/min/exports/parsePhoneNumber.js +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/min/exports/withMetadataArgument.cjs +0 -0
- /package/dist/martyrs/node_modules/{.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js → libphonenumber-js}/min/exports/withMetadataArgument.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.store.js","sources":["../../../../../../src/modules/chats/store/chat.store.js"],"sourcesContent":["import { reactive, readonly } from 'vue';\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n\nconst state = reactive({\n messages: [],\n currentChatId: null,\n username: null\n});\n\nconst methods = {\n
|
|
1
|
+
{"version":3,"file":"chat.store.js","sources":["../../../../../../src/modules/chats/store/chat.store.js"],"sourcesContent":["import { reactive, readonly } from 'vue';\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n\nconst state = reactive({\n messages: [],\n currentChatId: null,\n username: null\n});\n\nconst methods = {\n /**\n * Подключение к глобальному WebSocket и подписка на чат\n * @param {String} userId\n */\n async connectWebSocket(userId) {\n try {\n console.log('[Chat] Connecting to WebSocket with userId:', userId);\n await globalWebSocket.connect(userId);\n await globalWebSocket.subscribeModule('chat'); // 👈 Подписка на модуль чата\n\n // Очистка старых листенеров\n globalWebSocket.removeModuleListeners('chat');\n\n // Добавляем обработчик входящих сообщений\n globalWebSocket.addEventListener('message', (data) => {\n if (data.chatId === state.currentChatId) {\n state.messages.push(data);\n }\n }, { module: 'chat' });\n\n } catch (error) {\n console.error('[Chat] WebSocket connection failed:', error);\n throw error;\n }\n },\n\n /**\n * Установка текущего активного чата и загрузка сообщений\n * @param {String} chatId\n */\n async setCurrentChat(chatId) {\n state.currentChatId = chatId;\n state.messages = [];\n\n // Отправляем joinChat через WebSocket\n globalWebSocket.send({ type: 'joinChat', module: 'chat', chatId });\n\n // Загружаем историю сообщений\n try {\n const response = await fetch(`/messages/${chatId}`);\n const messages = await response.json();\n methods.setMessages(messages);\n } catch (err) {\n console.error('[Chat] Failed to fetch messages:', err);\n }\n },\n\n /**\n * Установка сообщений\n * @param {Array} messages\n */\n setMessages(messages) {\n state.messages = messages;\n },\n\n /**\n * Отправка сообщения через WebSocket\n * @param {Object} message\n */\n async addMessage(message) {\n await globalWebSocket.send({\n ...message,\n module: 'chat',\n type: 'message',\n chatId: state.currentChatId\n });\n },\n\n /**\n * Установка имени пользователя\n * @param {String} username\n */\n setUsername(username) {\n state.username = username;\n },\n\n /**\n * Отключение от чата (очистка листенеров)\n */\n disconnectChat() {\n globalWebSocket.removeModuleListeners('chat');\n // globalWebSocket.disconnect(); // включить, если нужно полностью разорвать соединение\n }\n};\n\nexport default {\n state: readonly(state),\n methods\n};\n"],"names":[],"mappings":";;AAGA,MAAM,QAAQ,SAAS;AAAA,EACrB,UAAU,CAAE;AAAA,EACZ,eAAe;AAAA,EACf,UAAU;AACZ,CAAC;AAED,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKd,MAAM,iBAAiB,QAAQ;AAC7B,QAAI;AACF,cAAQ,IAAI,+CAA+C,MAAM;AACjE,YAAM,gBAAgB,QAAQ,MAAM;AACpC,YAAM,gBAAgB,gBAAgB,MAAM;AAG5C,sBAAgB,sBAAsB,MAAM;AAG5C,sBAAgB,iBAAiB,WAAW,CAAC,SAAS;AACpD,YAAI,KAAK,WAAW,MAAM,eAAe;AACvC,gBAAM,SAAS,KAAK,IAAI;AAAA,QAClC;AAAA,MACA,GAAS,EAAE,QAAQ,QAAQ;AAAA,IAEtB,SAAQ,OAAO;AACd,cAAQ,MAAM,uCAAuC,KAAK;AAC1D,YAAM;AAAA,IACZ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAM,eAAe,QAAQ;AAC3B,UAAM,gBAAgB;AACtB,UAAM,WAAW,CAAE;AAGnB,oBAAgB,KAAK,EAAE,MAAM,YAAY,QAAQ,QAAQ,QAAQ;AAGjE,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,aAAa,MAAM,EAAE;AAClD,YAAM,WAAW,MAAM,SAAS,KAAM;AACtC,cAAQ,YAAY,QAAQ;AAAA,IAC7B,SAAQ,KAAK;AACZ,cAAQ,MAAM,oCAAoC,GAAG;AAAA,IAC3D;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAY,UAAU;AACpB,UAAM,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAM,WAAW,SAAS;AACxB,UAAM,gBAAgB,KAAK;AAAA,MACzB,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ,MAAM;AAAA,IACpB,CAAK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAY,UAAU;AACpB,UAAM,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKD,iBAAiB;AACf,oBAAgB,sBAAsB,MAAM;AAAA,EAEhD;AACA;AAEA,MAAe,YAAA;AAAA,EACb,OAAO,SAAS,KAAK;AAAA,EACrB;AACF;"}
|
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
const CardHeader = require("../../../globals/views/components/blocks/CardHeader.vue.cjs");
|
|
5
5
|
const FooterBlogpost = require("./FooterBlogpost.vue.cjs");
|
|
6
6
|
const Text = require("../../../../components/Text/Text.vue.cjs");
|
|
7
|
-
;/* empty css
|
|
7
|
+
;/* empty css */
|
|
8
8
|
const vueRouter = require("vue-router");
|
|
9
9
|
const _hoisted_1 = { class: "pos-relative flex-column flex" };
|
|
10
10
|
const _hoisted_2 = { class: "pd-t-zero pd-b-zero pd-medium" };
|
|
@@ -28,7 +28,7 @@ const _hoisted_7 = ["src"];
|
|
|
28
28
|
const _hoisted_8 = {
|
|
29
29
|
key: 1,
|
|
30
30
|
controls: "",
|
|
31
|
-
class: "mn-b-medium object-fit-
|
|
31
|
+
class: "mn-b-medium object-fit-fit bg-black w-100 h-max-20r"
|
|
32
32
|
};
|
|
33
33
|
const _hoisted_9 = ["src"];
|
|
34
34
|
const _sfc_main = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardBlogpost.vue.cjs","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative flex-column flex\"\n\t>\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-
|
|
1
|
+
{"version":3,"file":"CardBlogpost.vue.cjs","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative flex-column flex\"\n\t>\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-fit bg-black w-100 h-max-20r\">\n\t <source :src=\"firstVideo.content\" type=\"video/mp4\">\n\t Your browser does not support the video tag.\n\t </video>\n\t <!-- </div> -->\n\t\t</template>\n\n\t\t\n\t\t<FooterBlogpost \n\t\t\tclass=\"pd-t-zero pd-medium\" \n\t\t\t:blogpost=\"blogpost\" :user=\"user\"\n\t\t/>\n\t\n\t</article>\n\n</template>\n\n\n<script setup=\"props\">\n\timport CardHeader from '@martyrs/src/modules/globals/views/components/blocks/CardHeader.vue'\n\timport FooterBlogpost from '@martyrs/src/modules/community/components/blocks/FooterBlogpost.vue'\t\n\n\timport Image from '@martyrs/src/modules/constructor/components/elements/Image.vue';\n\n import Text from '@martyrs/src/components/Text/Text.vue'\n\timport Chips from '@martyrs/src/components/Chips/Chips.vue'\n\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\n\timport { computed } from 'vue'\n\n\timport { useRouter } from 'vue-router'\n\n\tconst router = useRouter()\n\n\tconst props = defineProps({\n\t\tblogpost: {\n\t\t\ttype: Object,\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\thideDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thideTitle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n const firstImage = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'ImageUpload');\n\t});\n\n\tconst firstVideo = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Video');\n\t});\n\n\tconst firstText = computed(() => {\n\t return props.blogpost.content.find(block => \n\t block.type === 'Textarea' && block.class !== 'h2'\n\t );\n\t});\n\n</script>\n\n<style lang=\"scss\">\n</style>\n\n\n"],"names":["useRouter","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHC,UAAM,SAASA,UAAS,UAAA;AAExB,UAAM,QAAQ;AAoBb,UAAM,aAAaC,IAAAA,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,aAAa;AAAA,IAC3E,CAAE;AAED,UAAM,aAAaA,IAAAA,SAAS,MAAM;AAChC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,OAAO;AAAA,IACrE,CAAE;AAED,UAAM,YAAYA,IAAAA,SAAS,MAAM;AAC/B,aAAO,MAAM,SAAS,QAAQ;AAAA,QAAK,WACjC,MAAM,SAAS,cAAc,MAAM,UAAU;AAAA,MAC9C;AAAA,IACJ,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,7 +2,7 @@ import { computed, createElementBlock, openBlock, createVNode, createElementVNod
|
|
|
2
2
|
import _sfc_main$1 from "../../../globals/views/components/blocks/CardHeader.vue.js";
|
|
3
3
|
import _sfc_main$3 from "./FooterBlogpost.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../components/Text/Text.vue.js";
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
import { useRouter } from "vue-router";
|
|
7
7
|
const _hoisted_1 = { class: "pos-relative flex-column flex" };
|
|
8
8
|
const _hoisted_2 = { class: "pd-t-zero pd-b-zero pd-medium" };
|
|
@@ -26,7 +26,7 @@ const _hoisted_7 = ["src"];
|
|
|
26
26
|
const _hoisted_8 = {
|
|
27
27
|
key: 1,
|
|
28
28
|
controls: "",
|
|
29
|
-
class: "mn-b-medium object-fit-
|
|
29
|
+
class: "mn-b-medium object-fit-fit bg-black w-100 h-max-20r"
|
|
30
30
|
};
|
|
31
31
|
const _hoisted_9 = ["src"];
|
|
32
32
|
const _sfc_main = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardBlogpost.vue.js","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative flex-column flex\"\n\t>\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-
|
|
1
|
+
{"version":3,"file":"CardBlogpost.vue.js","sources":["../../../../../../../src/modules/community/components/blocks/CardBlogpost.vue"],"sourcesContent":["<template>\n\t<article \n\t\tclass=\"pos-relative flex-column flex\"\n\t>\n\t\t<CardHeader \n\t :class=\"{\n\t \t'mn-b-small pd-medium': type !== 'short',\n\t \t'flex-child-order-last flex-child mn-l-small': type === 'short',\n\t }\"\n\t :entity=\"blogpost\"\n\t :entityType=\"'blogpost'\"\n\t :user=\"user\"\n\t :owner=\"blogpost.owner\" \n \t:creator=\"blogpost.creator\"\n \t:date=\"blogpost.createdAt\"\n \t:actions=\"user && user === blogpost.creator.target._id ? [\n { to: { name: 'Edit BlogPost', params: {url: blogpost.url } }, label: 'Edit' }\n ]: null\"\n\t\t/>\n\n\t\n\t\t<section\n\t\t\tclass=\"pd-t-zero pd-b-zero pd-medium\"\n\t\t>\n\t\t\t\n\t\t\t<div v-if=\"type !== 'blogpostPage'\" class=\"cursor-pointer mn-b-thin flex-nowrap flex w-100\">\n\n\t\t\t\t<Text \n\t\t\t\t\tv-if=\"!hideTitle\"\n\t\t\t\t \t:text=\"blogpost.name || ''\" \n\t\t\t\t \t:maxLen=\"80\" \n\t\t\t\t \tclass=\"h3 d-block\"\n\t\t\t\t \t@click=\"router.push({\n\t\t\t\t\t\tname: 'BlogPost', \n\t\t\t\t\t\tparams: { \n\t\t\t\t\t\t\turl: blogpost.url \n\t\t\t\t\t\t}\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\n\t\t\t\t<div \n\t\t\t\t\tv-if=\"blogpost.status === 'draft'\" \n\t\t\t\t\tclass=\"pd-micro t-white uppercase t-semi p-small flex-center flex pd-r-small pd-l-small mn-l-thin w-min bg-second radius-extra\"\n\t\t\t\t>\n\t\t\t\t\t{{blogpost.status}}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t\n\t\t\t<p \n\t\t\t\tv-if=\"firstText && firstText.content && type !== 'blogpostPage' && !hideDescription\" \n\t\t\t\tclass='mn-b-small t-transp p-big'\n\t\t\t>\n\t\t\t\t{{firstText.content.slice(0,120)}}...\n\t\t\t</p>\n\n\t\t\t<h3 \n\t\t\t\tv-if=\"type === 'blogpostPage' && !hideTitle\" \n\t\t\t\tclass=\"mn-b-small h2\"\n\t\t\t>\n\t\t\t\t{{blogpost.name}}\n\t\t\t</h3>\n\n\t\t\t<slot></slot>\n\n\t\t\t<!-- <Chips \n \tv-if=\"type !== 'short' && blogpost.tags?.length > 0\" \n \t:chips=\"blogpost.tags\"\n \t/> -->\n\n\t\t</section>\n\n\t\t\t<!-- <Image :prop=\"{content:firstImage.content}\" class=\"h-100\"/> -->\n\n\t\t<template\n\t\t\tv-if=\"firstImage && firstImage.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<img loading=\"lazy\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + firstImage.content\" \n\t\t\t\talt=\"Blog post image\" \n\t\t\t\tclass=\"mn-b-medium object-fit-cover w-100 h-min-10r h-100\"\n\t\t\t/>\n\t\t</template>\n\n\t\t<template\n\t\t\tv-if=\"!firstImage?.content && firstVideo && firstVideo.content && type !== 'blogpostPage'\"\n\t\t>\n\t\t\t<!-- <div class=\"flex-center flex\"> -->\n\t <video controls class=\"mn-b-medium object-fit-fit bg-black w-100 h-max-20r\">\n\t <source :src=\"firstVideo.content\" type=\"video/mp4\">\n\t Your browser does not support the video tag.\n\t </video>\n\t <!-- </div> -->\n\t\t</template>\n\n\t\t\n\t\t<FooterBlogpost \n\t\t\tclass=\"pd-t-zero pd-medium\" \n\t\t\t:blogpost=\"blogpost\" :user=\"user\"\n\t\t/>\n\t\n\t</article>\n\n</template>\n\n\n<script setup=\"props\">\n\timport CardHeader from '@martyrs/src/modules/globals/views/components/blocks/CardHeader.vue'\n\timport FooterBlogpost from '@martyrs/src/modules/community/components/blocks/FooterBlogpost.vue'\t\n\n\timport Image from '@martyrs/src/modules/constructor/components/elements/Image.vue';\n\n import Text from '@martyrs/src/components/Text/Text.vue'\n\timport Chips from '@martyrs/src/components/Chips/Chips.vue'\n\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\n\timport { computed } from 'vue'\n\n\timport { useRouter } from 'vue-router'\n\n\tconst router = useRouter()\n\n\tconst props = defineProps({\n\t\tblogpost: {\n\t\t\ttype: Object,\n\t\t},\n\t\tuser: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\thideDescription: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\thideTitle: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n const firstImage = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'ImageUpload');\n\t});\n\n\tconst firstVideo = computed(() => {\n\t return props.blogpost.content.find(block => block.type === 'Video');\n\t});\n\n\tconst firstText = computed(() => {\n\t return props.blogpost.content.find(block => \n\t block.type === 'Textarea' && block.class !== 'h2'\n\t );\n\t});\n\n</script>\n\n<style lang=\"scss\">\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHC,UAAM,SAAS,UAAS;AAExB,UAAM,QAAQ;AAoBb,UAAM,aAAa,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,aAAa;AAAA,IAC3E,CAAE;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,SAAS,QAAQ,KAAK,WAAS,MAAM,SAAS,OAAO;AAAA,IACrE,CAAE;AAED,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,SAAS,QAAQ;AAAA,QAAK,WACjC,MAAM,SAAS,cAAc,MAAM,UAAU;AAAA,MAC9C;AAAA,IACJ,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blog.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/Blog.vue"],"sourcesContent":["<template>\n <section>\n <Feed\n v-model:sort=\"blog.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Blog Posts Found',\n description: 'Currently, there are no posts available in this blog. Please check back later.'\n },\n }\"\n :store=\"{\n read: (options) => blog.read(options)\n }\"\n :options=\"{\n limit: 15,\n category: route.params.category,\n period: route.query.period,\n status: 'published',\n user: auth.state.user._id,\n following: route.params.category === 'following' ? auth.state.user._id : null,\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"
|
|
1
|
+
{"version":3,"file":"Blog.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/Blog.vue"],"sourcesContent":["<template>\n <section>\n <Feed\n v-model:sort=\"blog.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Blog Posts Found',\n description: 'Currently, there are no posts available in this blog. Please check back later.'\n },\n }\"\n :store=\"{\n read: (options) => blog.read(options)\n }\"\n :options=\"{\n limit: 15,\n category: route.params.category,\n period: route.query.period,\n status: 'published',\n user: auth.state.user._id,\n following: route.params.category === 'following' ? auth.state.user._id : null,\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"rows-1 gap-thin\"\n >\n <CardBlogpost \n v-for=\"item in items\" \n :key=\"item._id\" \n :blogpost=\"item\" \n :user=\"auth.state.user._id\" \n class=\"h-max-40r bg-light mn-b-thin radius-medium mobile:radius-zero\"\n />\n </Feed>\n </section>\n</template>\n\n\n<script setup=\"props\">\n import { ref, computed, onMounted, watch } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\n\n // Import state\n import * as blog from '@martyrs/src/modules/community/store/blogposts.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\n // State\n const route = useRoute();\n const router = useRouter();\n\n // if (!route.params.category) {\n // route.params.category = 'popular'\n // }\n \n onMounted(() => {\n\n if (route.query) {\n const query = route.query;\n\n const newFilterValue = {\n tags: query.tags ? query.tags.split(',') : [],\n period: query.period ? query.period : null,\n };\n\n // проверяем наличие категории в route.params и добавляем ее в фильтр\n // if (route.params.category) {\n // newFilterValue.category = route.params.category;\n // }\n\n blog.state.filter = newFilterValue;\n }\n \n });\n\n watch(() => blog.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => (Array.isArray(value) && value.length > 0) || (typeof value === 'string' && value))\n .map(([key, value]) => [key, Array.isArray(value) ? value.join(',') : value])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n</script>\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useRoute","useRouter","onMounted","blog.state","watch"],"mappings":";;;;;;;;;;;;;AAqDE,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,SAASC,UAAAA,UAAW;AAM1BC,QAAAA,UAAU,MAAM;AAEd,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AAEpB,cAAM,iBAAiB;AAAA,UACrB,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,GAAG,IAAI,CAAE;AAAA,UAC7C,QAAQ,MAAM,SAAS,MAAM,SAAS;AAAA,QACvC;AAODC,kBAAU,MAAC,SAAS;AAAA,MAC1B;AAAA,IAEA,CAAG;AAEDC,QAAAA,MAAM,MAAMD,UAAU,MAAC,QAAQ,CAAC,gBAAgB,mBAAmB;AAEjE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAO;AAGhC,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACxB;AAAA,MACA,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,KAAO,OAAO,UAAU,YAAY,KAAM,EAC3G,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;AAAA,MAC/E;AACD,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blog.vue.js","sources":["../../../../../../../src/modules/community/components/pages/Blog.vue"],"sourcesContent":["<template>\n <section>\n <Feed\n v-model:sort=\"blog.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Blog Posts Found',\n description: 'Currently, there are no posts available in this blog. Please check back later.'\n },\n }\"\n :store=\"{\n read: (options) => blog.read(options)\n }\"\n :options=\"{\n limit: 15,\n category: route.params.category,\n period: route.query.period,\n status: 'published',\n user: auth.state.user._id,\n following: route.params.category === 'following' ? auth.state.user._id : null,\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"
|
|
1
|
+
{"version":3,"file":"Blog.vue.js","sources":["../../../../../../../src/modules/community/components/pages/Blog.vue"],"sourcesContent":["<template>\n <section>\n <Feed\n v-model:sort=\"blog.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Blog Posts Found',\n description: 'Currently, there are no posts available in this blog. Please check back later.'\n },\n }\"\n :store=\"{\n read: (options) => blog.read(options)\n }\"\n :options=\"{\n limit: 15,\n category: route.params.category,\n period: route.query.period,\n status: 'published',\n user: auth.state.user._id,\n following: route.params.category === 'following' ? auth.state.user._id : null,\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"rows-1 gap-thin\"\n >\n <CardBlogpost \n v-for=\"item in items\" \n :key=\"item._id\" \n :blogpost=\"item\" \n :user=\"auth.state.user._id\" \n class=\"h-max-40r bg-light mn-b-thin radius-medium mobile:radius-zero\"\n />\n </Feed>\n </section>\n</template>\n\n\n<script setup=\"props\">\n import { ref, computed, onMounted, watch } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue';\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\n\n // Import state\n import * as blog from '@martyrs/src/modules/community/store/blogposts.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\n // State\n const route = useRoute();\n const router = useRouter();\n\n // if (!route.params.category) {\n // route.params.category = 'popular'\n // }\n \n onMounted(() => {\n\n if (route.query) {\n const query = route.query;\n\n const newFilterValue = {\n tags: query.tags ? query.tags.split(',') : [],\n period: query.period ? query.period : null,\n };\n\n // проверяем наличие категории в route.params и добавляем ее в фильтр\n // if (route.params.category) {\n // newFilterValue.category = route.params.category;\n // }\n\n blog.state.filter = newFilterValue;\n }\n \n });\n\n watch(() => blog.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => (Array.isArray(value) && value.length > 0) || (typeof value === 'string' && value))\n .map(([key, value]) => [key, Array.isArray(value) ? value.join(',') : value])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n</script>\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.state"],"mappings":";;;;;;;;;;;AAqDE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAM1B,cAAU,MAAM;AAEd,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AAEpB,cAAM,iBAAiB;AAAA,UACrB,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,GAAG,IAAI,CAAE;AAAA,UAC7C,QAAQ,MAAM,SAAS,MAAM,SAAS;AAAA,QACvC;AAODA,cAAW,SAAS;AAAA,MAC1B;AAAA,IAEA,CAAG;AAED,UAAM,MAAMA,MAAW,QAAQ,CAAC,gBAAgB,mBAAmB;AAEjE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAO;AAGhC,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACxB;AAAA,MACA,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,KAAO,OAAO,UAAU,YAAY,KAAM,EAC3G,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;AAAA,MAC/E;AACD,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -9,10 +9,10 @@ const SkeletonBlogpost = require("../../../icons/skeletons/SkeletonBlogpost.vue.
|
|
|
9
9
|
const vueRouter = require("vue-router");
|
|
10
10
|
require("vue-i18n");
|
|
11
11
|
;/* empty css */
|
|
12
|
-
;/* empty css
|
|
12
|
+
;/* empty css */
|
|
13
13
|
;/* empty css */
|
|
14
14
|
require("../../../rents/views/store/rents.store.cjs");
|
|
15
|
-
;/* empty css
|
|
15
|
+
;/* empty css */
|
|
16
16
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
17
17
|
require("../../../organizations/store/memberships.cjs");
|
|
18
18
|
require("../../../organizations/store/organizations.cjs");
|
|
@@ -89,7 +89,10 @@ const _sfc_main = {
|
|
|
89
89
|
}, {
|
|
90
90
|
default: vue.withCtx(() => [
|
|
91
91
|
isLoading.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(3, (i) => {
|
|
92
|
-
return vue.createVNode(SkeletonBlogpost.default, {
|
|
92
|
+
return vue.createVNode(SkeletonBlogpost.default, {
|
|
93
|
+
key: i,
|
|
94
|
+
class: ""
|
|
95
|
+
});
|
|
93
96
|
}), 64)) : vue.createCommentVNode("", true)
|
|
94
97
|
]),
|
|
95
98
|
_: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlogPost.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/BlogPost.vue"],"sourcesContent":["<template>\n <section>\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"o-hidden bg-light radius-medium\">\n <SkeletonBlogpost\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n />\n </TransitionGroup>\n <transition \n name=\"fade\"\n >\n <EmptyState \n v-if=\"!isLoading && !blogpost\"\n title=\"No Blogpost Found\"\n description=\"Currently, there are no blogposts available. Please check back later.\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </transition>\n\n <TransitionGroup tag=\"div\" name=\"fade\" class=\"container\">\n \t <!-- <button @click=\"share\" >\n\t\t\t Поделиться\n\t\t\t </button>\n\t\t\t -->\n \t<CardBlogpost \n v-if=\"!isLoading && blogpost\"\n @click=\"$router.push({name: 'Blogpost', params: {url: blogpost.url}})\" \n :blogpost=\"blogpost\" \n :user=\"auth.state.user._id\"\n :type=\"'blogpostPage'\"\n :hideTitle=\"true\"\n class=\"mn-b-regular bg-light radius-medium\"\n >\n\n \t <Viewer\n \t v-if=\"blogpost && blogpost.content\"\n \t :content=\"blogpost.content\"\n \t />\n\n \t\t\t\t<a v-if=\"blogpost.source\" :href=\"blogpost.source\" target=\"_blank\" class=\"mn-b-semi d-block w-max radius-big pd-thin bg-black t-white\">\n \t\t\t\t\tCheck Source 🔗\n \t\t\t\t</a>\n \t\t\t\n </CardBlogpost>\n\n \t<!-- <h3 class=\"mn-b-small\">Recommended Communities</h3>\n \t\t<Publics \n \t\t\tclass=\"mn-b-small\"\n \t\t/> -->\n\n <Comments \n v-if=\"!isLoading && blogpost\" \n :type=\"'blogpost'\" \n :target=\"blogpost._id\" \n :owner=\"auth.state.user._id\"\n />\n \n </TransitionGroup> \n \n </section>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onServerPrefetch, watch } from 'vue';\nimport { useHead } from '@unhead/vue'\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\nimport SkeletonBlogpost from '@martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue'\nimport Publics from '@martyrs/src/modules/organizations/components/sections/Publics.vue'\nimport Comments from '@martyrs/src/modules/community/components/sections/Comments.vue';\nimport Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n \nimport { useRoute } from 'vue-router';\n\nconst route = useRoute();\nconst blogpost = computed(() => blog.state.current);\nconst isLoading = ref(false);\nconst canShare = ref(false);\nconst error = ref(null);\n\nasync function fetchBlogpost() {\n try {\n isLoading.value = true;\n const data = await blog.read({ user: auth.state.user?._id, url: route.params.url });\n blogpost.value = data[0];\n // Обновляем состояние хранилища\n blog.state.current = data[0];\n } catch (err) {\n error.value = err;\n console.error('Error fetching blogpost:', err);\n } finally {\n isLoading.value = false;\n }\n}\n\nonServerPrefetch(async() => {\n\tawait fetchBlogpost()\n});\n\nonMounted(async() => {\n if (!blogpost.value || blogpost.value.url !== route.params.url) {\n await fetchBlogpost();\n }\n canShare.value = !!navigator.share;\n});\n\n\nconst share = async () => {\n if (!canShare.value) return;\n try {\n await navigator.share({\n title: blogpost.value.name,\n text: firstText.value?.content.slice(0, 120) || 'Check out this blog post!',\n url: window.location.href,\n });\n console.log('Content shared successfully');\n } catch (error) {\n console.error('Error sharing:', error);\n }\n};\n\nconst firstImage = computed(() => {\n return blogpost.value?.content?.find(block => block.type === 'ImageUpload');\n});\n\nconst firstText = computed(() => {\n return blogpost.value?.content?.find(block => \n block.type === 'Textarea' && block.class !== 'h2'\n );\n});\n\nconst metadata = computed(() => ({\n title: blogpost.value?.name,\n description: firstText.value?.content.slice(0, 120),\n meta: [\n { hid: 'description', name: 'description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:title', property: 'og:title', content: blogpost.value?.name },\n { hid: 'og:description', property: 'og:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:image', property: 'og:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:title', name: 'twitter:title', content: blogpost.value?.name },\n { hid: 'twitter:description', name: 'twitter:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'twitter:image', name: 'twitter:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:card', name: 'twitter:card', content: 'summary_large_image' },\n ],\n}));\n\nuseHead(metadata);\n</script>\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useRoute","computed","blog.state","ref","blog.read","auth.state","onServerPrefetch","onMounted","useHead"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"BlogPost.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/BlogPost.vue"],"sourcesContent":["<template>\n <section>\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"o-hidden bg-light radius-medium\">\n <SkeletonBlogpost\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n class=\"\"\n />\n </TransitionGroup>\n <transition \n name=\"fade\"\n >\n <EmptyState \n v-if=\"!isLoading && !blogpost\"\n title=\"No Blogpost Found\"\n description=\"Currently, there are no blogposts available. Please check back later.\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </transition>\n\n <TransitionGroup tag=\"div\" name=\"fade\" class=\"container\">\n \t <!-- <button @click=\"share\" >\n\t\t\t Поделиться\n\t\t\t </button>\n\t\t\t -->\n \t<CardBlogpost \n v-if=\"!isLoading && blogpost\"\n @click=\"$router.push({name: 'Blogpost', params: {url: blogpost.url}})\" \n :blogpost=\"blogpost\" \n :user=\"auth.state.user._id\"\n :type=\"'blogpostPage'\"\n :hideTitle=\"true\"\n class=\"mn-b-regular bg-light radius-medium\"\n >\n\n \t <Viewer\n \t v-if=\"blogpost && blogpost.content\"\n \t :content=\"blogpost.content\"\n \t />\n\n \t\t\t\t<a v-if=\"blogpost.source\" :href=\"blogpost.source\" target=\"_blank\" class=\"mn-b-semi d-block w-max radius-big pd-thin bg-black t-white\">\n \t\t\t\t\tCheck Source 🔗\n \t\t\t\t</a>\n \t\t\t\n </CardBlogpost>\n\n \t<!-- <h3 class=\"mn-b-small\">Recommended Communities</h3>\n \t\t<Publics \n \t\t\tclass=\"mn-b-small\"\n \t\t/> -->\n\n <Comments \n v-if=\"!isLoading && blogpost\" \n :type=\"'blogpost'\" \n :target=\"blogpost._id\" \n :owner=\"auth.state.user._id\"\n />\n \n </TransitionGroup> \n \n </section>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onServerPrefetch, watch } from 'vue';\nimport { useHead } from '@unhead/vue'\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\nimport SkeletonBlogpost from '@martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue'\nimport Publics from '@martyrs/src/modules/organizations/components/sections/Publics.vue'\nimport Comments from '@martyrs/src/modules/community/components/sections/Comments.vue';\nimport Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n \nimport { useRoute } from 'vue-router';\n\nconst route = useRoute();\nconst blogpost = computed(() => blog.state.current);\nconst isLoading = ref(false);\nconst canShare = ref(false);\nconst error = ref(null);\n\nasync function fetchBlogpost() {\n try {\n isLoading.value = true;\n const data = await blog.read({ user: auth.state.user?._id, url: route.params.url });\n blogpost.value = data[0];\n // Обновляем состояние хранилища\n blog.state.current = data[0];\n } catch (err) {\n error.value = err;\n console.error('Error fetching blogpost:', err);\n } finally {\n isLoading.value = false;\n }\n}\n\nonServerPrefetch(async() => {\n\tawait fetchBlogpost()\n});\n\nonMounted(async() => {\n if (!blogpost.value || blogpost.value.url !== route.params.url) {\n await fetchBlogpost();\n }\n canShare.value = !!navigator.share;\n});\n\n\nconst share = async () => {\n if (!canShare.value) return;\n try {\n await navigator.share({\n title: blogpost.value.name,\n text: firstText.value?.content.slice(0, 120) || 'Check out this blog post!',\n url: window.location.href,\n });\n console.log('Content shared successfully');\n } catch (error) {\n console.error('Error sharing:', error);\n }\n};\n\nconst firstImage = computed(() => {\n return blogpost.value?.content?.find(block => block.type === 'ImageUpload');\n});\n\nconst firstText = computed(() => {\n return blogpost.value?.content?.find(block => \n block.type === 'Textarea' && block.class !== 'h2'\n );\n});\n\nconst metadata = computed(() => ({\n title: blogpost.value?.name,\n description: firstText.value?.content.slice(0, 120),\n meta: [\n { hid: 'description', name: 'description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:title', property: 'og:title', content: blogpost.value?.name },\n { hid: 'og:description', property: 'og:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:image', property: 'og:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:title', name: 'twitter:title', content: blogpost.value?.name },\n { hid: 'twitter:description', name: 'twitter:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'twitter:image', name: 'twitter:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:card', name: 'twitter:card', content: 'summary_large_image' },\n ],\n}));\n\nuseHead(metadata);\n</script>\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useRoute","computed","blog.state","ref","blog.read","auth.state","onServerPrefetch","onMounted","useHead"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA8EA,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,WAAWC,IAAQ,SAAC,MAAMC,UAAU,MAAC,OAAO;AAClD,UAAM,YAAYC,IAAG,IAAC,KAAK;AAC3B,UAAM,WAAWA,IAAG,IAAC,KAAK;AAC1B,UAAM,QAAQA,IAAG,IAAC,IAAI;AAEtB,mBAAe,gBAAgB;;AAC7B,UAAI;AACF,kBAAU,QAAQ;AAClB,cAAM,OAAO,MAAMC,eAAU,EAAE,OAAMC,UAAU,MAAC,SAAXA,mBAAiB,KAAK,KAAK,MAAM,OAAO,IAAG,CAAE;AAClF,iBAAS,QAAQ,KAAK,CAAC;AAEvBH,wBAAW,UAAU,KAAK,CAAC;AAAA,MAC5B,SAAQ,KAAK;AACZ,cAAM,QAAQ;AACd,gBAAQ,MAAM,4BAA4B,GAAG;AAAA,MACjD,UAAY;AACR,kBAAU,QAAQ;AAAA,MACtB;AAAA,IACA;AAEAI,QAAAA,iBAAiB,YAAW;AAC3B,YAAM,cAAa;AAAA,IACpB,CAAC;AAEDC,QAAAA,UAAU,YAAW;AACnB,UAAI,CAAC,SAAS,SAAS,SAAS,MAAM,QAAQ,MAAM,OAAO,KAAK;AAC9D,cAAM,cAAe;AAAA,MACzB;AACE,eAAS,QAAQ,CAAC,CAAC,UAAU;AAAA,IAC/B,CAAC;AAiBD,UAAM,aAAaN,IAAQ,SAAC,MAAM;;AAChC,cAAO,oBAAS,UAAT,mBAAgB,YAAhB,mBAAyB,KAAK,WAAS,MAAM,SAAS;AAAA,IAC/D,CAAC;AAED,UAAM,YAAYA,IAAQ,SAAC,MAAM;;AAC/B,cAAO,oBAAS,UAAT,mBAAgB,YAAhB,mBAAyB;AAAA,QAAK,WACnC,MAAM,SAAS,cAAc,MAAM,UAAU;AAAA;AAAA,IAEjD,CAAC;AAED,UAAM,WAAWA,IAAQ,SAAC,MAAO;;AAAA;AAAA,QAC/B,QAAO,cAAS,UAAT,mBAAgB;AAAA,QACvB,cAAa,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG;AAAA,QAC/C,MAAM;AAAA,UACJ,EAAE,KAAK,eAAe,MAAM,eAAe,UAAS,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG,KAAM;AAAA,UAC5F,EAAE,KAAK,YAAY,UAAU,YAAY,UAAS,cAAS,UAAT,mBAAgB,KAAM;AAAA,UACxE,EAAE,KAAK,kBAAkB,UAAU,kBAAkB,UAAS,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG,KAAM;AAAA,UACtG,EAAE,KAAK,YAAY,UAAU,YAAY,WAAS,gBAAW,UAAX,mBAAkB,WAAU,GAAG,QAAQ,IAAI,eAAe,GAAG,WAAW,MAAM,OAAO,KAAK,GAAG,QAAQ,IAAI,eAAe,qBAAsB;AAAA,UAChM,EAAE,KAAK,iBAAiB,MAAM,iBAAiB,UAAS,cAAS,UAAT,mBAAgB,KAAM;AAAA,UAC9E,EAAE,KAAK,uBAAuB,MAAM,uBAAuB,UAAS,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG,KAAM;AAAA,UAC5G,EAAE,KAAK,iBAAiB,MAAM,iBAAiB,WAAS,gBAAW,UAAX,mBAAkB,WAAU,GAAG,QAAQ,IAAI,eAAe,GAAG,WAAW,MAAM,OAAO,KAAK,GAAG,QAAQ,IAAI,eAAe,qBAAsB;AAAA,UACtM,EAAE,KAAK,gBAAgB,MAAM,gBAAgB,SAAS,sBAAuB;AAAA,QAC9E;AAAA,MACH;AAAA,KAAE;AAEFO,gBAAO,EAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -7,10 +7,10 @@ import SkeletonBlogpost from "../../../icons/skeletons/SkeletonBlogpost.vue.js";
|
|
|
7
7
|
import { useRoute } from "vue-router";
|
|
8
8
|
import "vue-i18n";
|
|
9
9
|
/* empty css */
|
|
10
|
-
/* empty css
|
|
10
|
+
/* empty css */
|
|
11
11
|
/* empty css */
|
|
12
12
|
import "../../../rents/views/store/rents.store.js";
|
|
13
|
-
/* empty css
|
|
13
|
+
/* empty css */
|
|
14
14
|
import { state as state$1 } from "../../../auth/views/store/auth.js";
|
|
15
15
|
import "../../../organizations/store/memberships.js";
|
|
16
16
|
import "../../../organizations/store/organizations.js";
|
|
@@ -87,7 +87,10 @@ const _sfc_main = {
|
|
|
87
87
|
}, {
|
|
88
88
|
default: withCtx(() => [
|
|
89
89
|
isLoading.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, renderList(3, (i) => {
|
|
90
|
-
return createVNode(SkeletonBlogpost, {
|
|
90
|
+
return createVNode(SkeletonBlogpost, {
|
|
91
|
+
key: i,
|
|
92
|
+
class: ""
|
|
93
|
+
});
|
|
91
94
|
}), 64)) : createCommentVNode("", true)
|
|
92
95
|
]),
|
|
93
96
|
_: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/BlogPost.vue"],"sourcesContent":["<template>\n <section>\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"o-hidden bg-light radius-medium\">\n <SkeletonBlogpost\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n />\n </TransitionGroup>\n <transition \n name=\"fade\"\n >\n <EmptyState \n v-if=\"!isLoading && !blogpost\"\n title=\"No Blogpost Found\"\n description=\"Currently, there are no blogposts available. Please check back later.\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </transition>\n\n <TransitionGroup tag=\"div\" name=\"fade\" class=\"container\">\n \t <!-- <button @click=\"share\" >\n\t\t\t Поделиться\n\t\t\t </button>\n\t\t\t -->\n \t<CardBlogpost \n v-if=\"!isLoading && blogpost\"\n @click=\"$router.push({name: 'Blogpost', params: {url: blogpost.url}})\" \n :blogpost=\"blogpost\" \n :user=\"auth.state.user._id\"\n :type=\"'blogpostPage'\"\n :hideTitle=\"true\"\n class=\"mn-b-regular bg-light radius-medium\"\n >\n\n \t <Viewer\n \t v-if=\"blogpost && blogpost.content\"\n \t :content=\"blogpost.content\"\n \t />\n\n \t\t\t\t<a v-if=\"blogpost.source\" :href=\"blogpost.source\" target=\"_blank\" class=\"mn-b-semi d-block w-max radius-big pd-thin bg-black t-white\">\n \t\t\t\t\tCheck Source 🔗\n \t\t\t\t</a>\n \t\t\t\n </CardBlogpost>\n\n \t<!-- <h3 class=\"mn-b-small\">Recommended Communities</h3>\n \t\t<Publics \n \t\t\tclass=\"mn-b-small\"\n \t\t/> -->\n\n <Comments \n v-if=\"!isLoading && blogpost\" \n :type=\"'blogpost'\" \n :target=\"blogpost._id\" \n :owner=\"auth.state.user._id\"\n />\n \n </TransitionGroup> \n \n </section>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onServerPrefetch, watch } from 'vue';\nimport { useHead } from '@unhead/vue'\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\nimport SkeletonBlogpost from '@martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue'\nimport Publics from '@martyrs/src/modules/organizations/components/sections/Publics.vue'\nimport Comments from '@martyrs/src/modules/community/components/sections/Comments.vue';\nimport Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n \nimport { useRoute } from 'vue-router';\n\nconst route = useRoute();\nconst blogpost = computed(() => blog.state.current);\nconst isLoading = ref(false);\nconst canShare = ref(false);\nconst error = ref(null);\n\nasync function fetchBlogpost() {\n try {\n isLoading.value = true;\n const data = await blog.read({ user: auth.state.user?._id, url: route.params.url });\n blogpost.value = data[0];\n // Обновляем состояние хранилища\n blog.state.current = data[0];\n } catch (err) {\n error.value = err;\n console.error('Error fetching blogpost:', err);\n } finally {\n isLoading.value = false;\n }\n}\n\nonServerPrefetch(async() => {\n\tawait fetchBlogpost()\n});\n\nonMounted(async() => {\n if (!blogpost.value || blogpost.value.url !== route.params.url) {\n await fetchBlogpost();\n }\n canShare.value = !!navigator.share;\n});\n\n\nconst share = async () => {\n if (!canShare.value) return;\n try {\n await navigator.share({\n title: blogpost.value.name,\n text: firstText.value?.content.slice(0, 120) || 'Check out this blog post!',\n url: window.location.href,\n });\n console.log('Content shared successfully');\n } catch (error) {\n console.error('Error sharing:', error);\n }\n};\n\nconst firstImage = computed(() => {\n return blogpost.value?.content?.find(block => block.type === 'ImageUpload');\n});\n\nconst firstText = computed(() => {\n return blogpost.value?.content?.find(block => \n block.type === 'Textarea' && block.class !== 'h2'\n );\n});\n\nconst metadata = computed(() => ({\n title: blogpost.value?.name,\n description: firstText.value?.content.slice(0, 120),\n meta: [\n { hid: 'description', name: 'description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:title', property: 'og:title', content: blogpost.value?.name },\n { hid: 'og:description', property: 'og:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:image', property: 'og:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:title', name: 'twitter:title', content: blogpost.value?.name },\n { hid: 'twitter:description', name: 'twitter:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'twitter:image', name: 'twitter:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:card', name: 'twitter:card', content: 'summary_large_image' },\n ],\n}));\n\nuseHead(metadata);\n</script>\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.state","blog.read","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"BlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/BlogPost.vue"],"sourcesContent":["<template>\n <section>\n <TransitionGroup tag=\"ul\" name=\"fade\" class=\"o-hidden bg-light radius-medium\">\n <SkeletonBlogpost\n v-if=\"isLoading\"\n v-for=\"i in 3\" :key=\"i\"\n class=\"\"\n />\n </TransitionGroup>\n <transition \n name=\"fade\"\n >\n <EmptyState \n v-if=\"!isLoading && !blogpost\"\n title=\"No Blogpost Found\"\n description=\"Currently, there are no blogposts available. Please check back later.\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </transition>\n\n <TransitionGroup tag=\"div\" name=\"fade\" class=\"container\">\n \t <!-- <button @click=\"share\" >\n\t\t\t Поделиться\n\t\t\t </button>\n\t\t\t -->\n \t<CardBlogpost \n v-if=\"!isLoading && blogpost\"\n @click=\"$router.push({name: 'Blogpost', params: {url: blogpost.url}})\" \n :blogpost=\"blogpost\" \n :user=\"auth.state.user._id\"\n :type=\"'blogpostPage'\"\n :hideTitle=\"true\"\n class=\"mn-b-regular bg-light radius-medium\"\n >\n\n \t <Viewer\n \t v-if=\"blogpost && blogpost.content\"\n \t :content=\"blogpost.content\"\n \t />\n\n \t\t\t\t<a v-if=\"blogpost.source\" :href=\"blogpost.source\" target=\"_blank\" class=\"mn-b-semi d-block w-max radius-big pd-thin bg-black t-white\">\n \t\t\t\t\tCheck Source 🔗\n \t\t\t\t</a>\n \t\t\t\n </CardBlogpost>\n\n \t<!-- <h3 class=\"mn-b-small\">Recommended Communities</h3>\n \t\t<Publics \n \t\t\tclass=\"mn-b-small\"\n \t\t/> -->\n\n <Comments \n v-if=\"!isLoading && blogpost\" \n :type=\"'blogpost'\" \n :target=\"blogpost._id\" \n :owner=\"auth.state.user._id\"\n />\n \n </TransitionGroup> \n \n </section>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onServerPrefetch, watch } from 'vue';\nimport { useHead } from '@unhead/vue'\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\nimport SkeletonBlogpost from '@martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue'\nimport Publics from '@martyrs/src/modules/organizations/components/sections/Publics.vue'\nimport Comments from '@martyrs/src/modules/community/components/sections/Comments.vue';\nimport Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n \nimport { useRoute } from 'vue-router';\n\nconst route = useRoute();\nconst blogpost = computed(() => blog.state.current);\nconst isLoading = ref(false);\nconst canShare = ref(false);\nconst error = ref(null);\n\nasync function fetchBlogpost() {\n try {\n isLoading.value = true;\n const data = await blog.read({ user: auth.state.user?._id, url: route.params.url });\n blogpost.value = data[0];\n // Обновляем состояние хранилища\n blog.state.current = data[0];\n } catch (err) {\n error.value = err;\n console.error('Error fetching blogpost:', err);\n } finally {\n isLoading.value = false;\n }\n}\n\nonServerPrefetch(async() => {\n\tawait fetchBlogpost()\n});\n\nonMounted(async() => {\n if (!blogpost.value || blogpost.value.url !== route.params.url) {\n await fetchBlogpost();\n }\n canShare.value = !!navigator.share;\n});\n\n\nconst share = async () => {\n if (!canShare.value) return;\n try {\n await navigator.share({\n title: blogpost.value.name,\n text: firstText.value?.content.slice(0, 120) || 'Check out this blog post!',\n url: window.location.href,\n });\n console.log('Content shared successfully');\n } catch (error) {\n console.error('Error sharing:', error);\n }\n};\n\nconst firstImage = computed(() => {\n return blogpost.value?.content?.find(block => block.type === 'ImageUpload');\n});\n\nconst firstText = computed(() => {\n return blogpost.value?.content?.find(block => \n block.type === 'Textarea' && block.class !== 'h2'\n );\n});\n\nconst metadata = computed(() => ({\n title: blogpost.value?.name,\n description: firstText.value?.content.slice(0, 120),\n meta: [\n { hid: 'description', name: 'description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:title', property: 'og:title', content: blogpost.value?.name },\n { hid: 'og:description', property: 'og:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'og:image', property: 'og:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:title', name: 'twitter:title', content: blogpost.value?.name },\n { hid: 'twitter:description', name: 'twitter:description', content: firstText.value?.content.slice(0, 120) },\n { hid: 'twitter:image', name: 'twitter:image', content: firstImage.value?.content ? `${process.env.FILE_SERVER_URL}${firstImage.value.content}` : `${process.env.FILE_SERVER_URL}/favicon/cover.jpg` },\n { hid: 'twitter:card', name: 'twitter:card', content: 'summary_large_image' },\n ],\n}));\n\nuseHead(metadata);\n</script>\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.state","blog.read","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8EA,UAAM,QAAQ,SAAU;AACxB,UAAM,WAAW,SAAS,MAAMA,MAAW,OAAO;AAClD,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,QAAQ,IAAI,IAAI;AAEtB,mBAAe,gBAAgB;;AAC7B,UAAI;AACF,kBAAU,QAAQ;AAClB,cAAM,OAAO,MAAMC,KAAU,EAAE,OAAMC,aAAW,SAAXA,mBAAiB,KAAK,KAAK,MAAM,OAAO,IAAG,CAAE;AAClF,iBAAS,QAAQ,KAAK,CAAC;AAEvBF,cAAW,UAAU,KAAK,CAAC;AAAA,MAC5B,SAAQ,KAAK;AACZ,cAAM,QAAQ;AACd,gBAAQ,MAAM,4BAA4B,GAAG;AAAA,MACjD,UAAY;AACR,kBAAU,QAAQ;AAAA,MACtB;AAAA,IACA;AAEA,qBAAiB,YAAW;AAC3B,YAAM,cAAa;AAAA,IACpB,CAAC;AAED,cAAU,YAAW;AACnB,UAAI,CAAC,SAAS,SAAS,SAAS,MAAM,QAAQ,MAAM,OAAO,KAAK;AAC9D,cAAM,cAAe;AAAA,MACzB;AACE,eAAS,QAAQ,CAAC,CAAC,UAAU;AAAA,IAC/B,CAAC;AAiBD,UAAM,aAAa,SAAS,MAAM;;AAChC,cAAO,oBAAS,UAAT,mBAAgB,YAAhB,mBAAyB,KAAK,WAAS,MAAM,SAAS;AAAA,IAC/D,CAAC;AAED,UAAM,YAAY,SAAS,MAAM;;AAC/B,cAAO,oBAAS,UAAT,mBAAgB,YAAhB,mBAAyB;AAAA,QAAK,WACnC,MAAM,SAAS,cAAc,MAAM,UAAU;AAAA;AAAA,IAEjD,CAAC;AAED,UAAM,WAAW,SAAS,MAAO;;AAAA;AAAA,QAC/B,QAAO,cAAS,UAAT,mBAAgB;AAAA,QACvB,cAAa,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG;AAAA,QAC/C,MAAM;AAAA,UACJ,EAAE,KAAK,eAAe,MAAM,eAAe,UAAS,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG,KAAM;AAAA,UAC5F,EAAE,KAAK,YAAY,UAAU,YAAY,UAAS,cAAS,UAAT,mBAAgB,KAAM;AAAA,UACxE,EAAE,KAAK,kBAAkB,UAAU,kBAAkB,UAAS,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG,KAAM;AAAA,UACtG,EAAE,KAAK,YAAY,UAAU,YAAY,WAAS,gBAAW,UAAX,mBAAkB,WAAU,GAAG,QAAQ,IAAI,eAAe,GAAG,WAAW,MAAM,OAAO,KAAK,GAAG,QAAQ,IAAI,eAAe,qBAAsB;AAAA,UAChM,EAAE,KAAK,iBAAiB,MAAM,iBAAiB,UAAS,cAAS,UAAT,mBAAgB,KAAM;AAAA,UAC9E,EAAE,KAAK,uBAAuB,MAAM,uBAAuB,UAAS,eAAU,UAAV,mBAAiB,QAAQ,MAAM,GAAG,KAAM;AAAA,UAC5G,EAAE,KAAK,iBAAiB,MAAM,iBAAiB,WAAS,gBAAW,UAAX,mBAAkB,WAAU,GAAG,QAAQ,IAAI,eAAe,GAAG,WAAW,MAAM,OAAO,KAAK,GAAG,QAAQ,IAAI,eAAe,qBAAsB;AAAA,UACtM,EAAE,KAAK,gBAAgB,MAAM,gBAAgB,SAAS,sBAAuB;AAAA,QAC9E;AAAA,MACH;AAAA,KAAE;AAEF,YAAQ,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
require("isomorphic-dompurify");
|
|
5
5
|
;/* empty css */
|
|
6
6
|
const Constructor = require("../../../constructor/components/sections/Constructor.vue.cjs");
|
|
7
|
-
const Popup = require("../../../../components/Popup/Popup.
|
|
7
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
8
8
|
require("../../../../../../_virtual/index.cjs");
|
|
9
9
|
;/* empty css */
|
|
10
10
|
;/* empty css */
|
|
@@ -19,14 +19,14 @@ const blogposts = require("../../store/blogposts.cjs");
|
|
|
19
19
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
20
20
|
const organizations = require("../../../organizations/store/organizations.cjs");
|
|
21
21
|
const mixins = require("../../../globals/views/mixins/mixins.cjs");
|
|
22
|
-
const _hoisted_1 = { class: "w-100
|
|
22
|
+
const _hoisted_1 = { class: "w-100 bg-light radius-medium pos-relative" };
|
|
23
23
|
const _hoisted_2 = {
|
|
24
24
|
style: { "min-height": "100%" },
|
|
25
|
-
class: "w-100
|
|
25
|
+
class: "w-100 pd-big"
|
|
26
26
|
};
|
|
27
27
|
const _hoisted_3 = {
|
|
28
28
|
key: 0,
|
|
29
|
-
class: "pd-
|
|
29
|
+
class: "pd-small pos-sticky pos-l-0 pos-b-0 w-100"
|
|
30
30
|
};
|
|
31
31
|
const _hoisted_4 = { class: "pd-thin radius-big bg-main w-100 flex-nowrap flex" };
|
|
32
32
|
const _hoisted_5 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateBlogPost.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"w-100 h-100 pos-relative\"\n >\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-white pd-big radius-medium\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n\n </section>\n\n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport FieldTags from '@martyrs/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useGlobalMixins","useRoute","useRouter","ref","onMounted","blog.read","auth.state","blog.clean","blog.state","computed","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateBlogPost.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"w-100 bg-light radius-medium pos-relative\"\n >\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 pd-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n\n </section>\n\n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-small pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport FieldTags from '@martyrs/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useGlobalMixins","useRoute","useRouter","ref","onMounted","blog.read","auth.state","blog.clean","blog.state","computed","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { ref, onMounted, computed, createElementBlock, openBlock, createElementV
|
|
|
2
2
|
import "isomorphic-dompurify";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _sfc_main$1 from "../../../constructor/components/sections/Constructor.vue.js";
|
|
5
|
-
import _sfc_main$2 from "../../../../components/Popup/Popup.
|
|
5
|
+
import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
|
|
6
6
|
import "../../../../../../_virtual/index.js";
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
@@ -17,14 +17,14 @@ import { read, clean, state as state$1, remove, update, create } from "../../sto
|
|
|
17
17
|
import { state } from "../../../auth/views/store/auth.js";
|
|
18
18
|
import { actions } from "../../../organizations/store/organizations.js";
|
|
19
19
|
import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
|
|
20
|
-
const _hoisted_1 = { class: "w-100
|
|
20
|
+
const _hoisted_1 = { class: "w-100 bg-light radius-medium pos-relative" };
|
|
21
21
|
const _hoisted_2 = {
|
|
22
22
|
style: { "min-height": "100%" },
|
|
23
|
-
class: "w-100
|
|
23
|
+
class: "w-100 pd-big"
|
|
24
24
|
};
|
|
25
25
|
const _hoisted_3 = {
|
|
26
26
|
key: 0,
|
|
27
|
-
class: "pd-
|
|
27
|
+
class: "pd-small pos-sticky pos-l-0 pos-b-0 w-100"
|
|
28
28
|
};
|
|
29
29
|
const _hoisted_4 = { class: "pd-thin radius-big bg-main w-100 flex-nowrap flex" };
|
|
30
30
|
const _hoisted_5 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateBlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"w-100 h-100 pos-relative\"\n >\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-white pd-big radius-medium\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n\n </section>\n\n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport FieldTags from '@martyrs/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.read","auth.state","blog.clean","blog.state","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateBlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"w-100 bg-light radius-medium pos-relative\"\n >\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 pd-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n\n </section>\n\n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-small pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport FieldTags from '@martyrs/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.read","auth.state","blog.clean","blog.state","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
5
5
|
;/* empty css */
|
|
6
|
-
;/* empty css
|
|
6
|
+
;/* empty css */
|
|
7
7
|
;/* empty css */
|
|
8
8
|
;/* empty css */
|
|
9
9
|
const Slider_native = require("../../../../components/Slider/Slider.native.vue.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createBlock, openBlock, withCtx } from "vue";
|
|
2
2
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
3
3
|
/* empty css */
|
|
4
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
6
|
/* empty css */
|
|
7
7
|
import SliderNative from "../../../../components/Slider/Slider.native.vue.js";
|