@ozdao/martyrs 0.2.561 → 0.2.563
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/{abac-DC2x92Pa.js → abac-DYoheWuc.js} +2 -1
- package/dist/{core.logger-VRHh-WUW.js → core.cache-DALYFDdy.js} +10 -59
- package/dist/core.logger-C3q8A9dl.js +51 -0
- package/dist/core.server.js +1 -1
- package/dist/{crud-DFFgLl09.js → crud-C7FSTUes.js} +2 -1
- package/dist/inventory.server.js +4 -3
- package/dist/{main-DQtUY5ma.js → main-CmjWiDVF.js} +2837 -2548
- package/dist/marketplace.server.js +389 -0
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +3 -6
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +3 -3
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js +59 -171
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js +64 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js +160 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterOptions.vue.js +46 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterOptions.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +105 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FiltersGroup.vue.js +166 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FiltersGroup.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +4 -0
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +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.js +2 -0
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/marketplace.client.js +5 -9
- package/dist/martyrs/src/modules/marketplace/marketplace.client.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +242 -0
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js.map +1 -0
- package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.js +39 -0
- package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.js.map +1 -0
- package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js +65 -2
- package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -0
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +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.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.js +4 -3
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/orders.server.js +2 -2
- package/dist/organizations.server.js +10 -215
- package/dist/products.server.js +4 -3
- package/dist/queryProcessorOrganizations-BB11WFpc.js +221 -0
- package/dist/rents.server.js +2 -1
- package/dist/style.css +10 -1
- package/dist/{web-Cyc6i_pv.js → web-cNKIl_cL.js} +1 -1
- package/package.json +1 -1
- package/src/components/Button/Button.vue +1 -1
- package/src/components/Checkbox/Checkbox.vue +1 -1
- package/src/modules/core/views/components/layouts/Client.vue +7 -11
- package/src/modules/core/views/components/partials/Header.vue +1 -1
- package/src/modules/core/views/components/sections/Filters.vue +47 -161
- package/src/modules/core/views/components/sections/filters/FilterCheckbox.vue +12 -31
- package/src/modules/core/views/components/sections/filters/FilterDateRange.vue +15 -15
- package/src/modules/core/views/components/sections/filters/FilterOptions.vue +12 -43
- package/src/modules/core/views/components/sections/filters/FilterRange.vue +59 -36
- package/src/modules/core/views/components/sections/filters/FiltersGroup.vue +177 -0
- package/src/modules/core/views/utils/vue-app-renderer.js +12 -0
- package/src/modules/landing/components/sections/SectionFeatures.vue +1 -1
- package/src/modules/marketplace/controllers/marketplace.controller.js +123 -0
- package/src/modules/marketplace/controllers/utils/lookupConfigs.js +130 -0
- package/src/modules/marketplace/controllers/utils/queryProcessorMarketplace.js +211 -0
- package/src/modules/marketplace/marketplace.client.js +3 -10
- package/src/modules/marketplace/marketplace.server.js +22 -0
- package/src/modules/marketplace/routes/marketplace.routes.js +34 -0
- package/src/modules/marketplace/views/components/pages/Marketplace.vue +273 -0
- package/src/modules/marketplace/views/router/marketplace.router.js +37 -30
- package/src/modules/marketplace/views/store/marketplace.js +74 -3
- package/src/modules/organizations/components/blocks/CardOrganization.vue +8 -8
- package/src/modules/organizations/controllers/organizations.controller.js +1 -1
- package/src/modules/organizations/controllers/utils/queryProcessorOrganizations.js +8 -1
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
- package/dist/martyrs/src/modules/marketplace/marketplace.router.js +0 -63
- package/dist/martyrs/src/modules/marketplace/marketplace.router.js.map +0 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +0 -326
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +0 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js +0 -74
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js.map +0 -1
- package/src/modules/core/views/components/sections/filters/FilterPrice.vue +0 -81
- package/src/modules/marketplace/marketplace.router.js +0 -66
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +0 -363
- package/src/modules/marketplace/views/components/pages/Catalog.vue +0 -73
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import { m as middlewareIndexFactory } from "./index-_Edcmck_.js";
|
|
2
|
+
import { C as CacheNamespaced } from "./core.cache-DALYFDdy.js";
|
|
3
|
+
import { q as queryProcessorCore } from "./queryProcessor-CBQgZycY.js";
|
|
4
|
+
import { b as getLookupStages } from "./queryProcessorOrganizations-BB11WFpc.js";
|
|
5
|
+
import { Types } from "mongoose";
|
|
6
|
+
import * as googleMapsServicesJs from "@googlemaps/google-maps-services-js";
|
|
7
|
+
const lookupConfigs = {
|
|
8
|
+
availability: {
|
|
9
|
+
lookup: {
|
|
10
|
+
from: "stockavailabilities",
|
|
11
|
+
localField: "_id",
|
|
12
|
+
foreignField: "storage",
|
|
13
|
+
pipeline: [
|
|
14
|
+
{
|
|
15
|
+
$match: {
|
|
16
|
+
$expr: { $gt: ["$available", 0] }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
$project: {
|
|
21
|
+
_id: 1,
|
|
22
|
+
product: 1,
|
|
23
|
+
variant: 1,
|
|
24
|
+
available: 1,
|
|
25
|
+
quantity: 1
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
as: "availability"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
variants: {
|
|
33
|
+
lookup: {
|
|
34
|
+
from: "variants",
|
|
35
|
+
let: { variantIds: "$availability.variant" },
|
|
36
|
+
pipeline: [
|
|
37
|
+
{
|
|
38
|
+
$match: {
|
|
39
|
+
$expr: {
|
|
40
|
+
$in: ["$_id", "$$variantIds"]
|
|
41
|
+
},
|
|
42
|
+
status: "published"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
$project: {
|
|
47
|
+
_id: 1,
|
|
48
|
+
product: 1,
|
|
49
|
+
name: 1,
|
|
50
|
+
price: 1,
|
|
51
|
+
unit: 1,
|
|
52
|
+
images: 1,
|
|
53
|
+
sku: 1
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
as: "variants"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
products: {
|
|
61
|
+
lookup: {
|
|
62
|
+
from: "products",
|
|
63
|
+
localField: "organization",
|
|
64
|
+
foreignField: "owner.target",
|
|
65
|
+
pipeline: [
|
|
66
|
+
{
|
|
67
|
+
$match: {
|
|
68
|
+
status: "published"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
$lookup: {
|
|
73
|
+
from: "variants",
|
|
74
|
+
localField: "_id",
|
|
75
|
+
foreignField: "product",
|
|
76
|
+
pipeline: [
|
|
77
|
+
{
|
|
78
|
+
$project: {
|
|
79
|
+
_id: 1,
|
|
80
|
+
name: 1,
|
|
81
|
+
price: 1,
|
|
82
|
+
unit: 1,
|
|
83
|
+
images: 1,
|
|
84
|
+
sku: 1
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
as: "variants"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
$project: {
|
|
93
|
+
_id: 1,
|
|
94
|
+
name: 1,
|
|
95
|
+
description: 1,
|
|
96
|
+
images: 1,
|
|
97
|
+
category: 1,
|
|
98
|
+
"owner.target": 1,
|
|
99
|
+
"owner.type": 1,
|
|
100
|
+
variants: 1
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
as: "products"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
organizations: {
|
|
108
|
+
lookup: {
|
|
109
|
+
from: "organizations",
|
|
110
|
+
let: { orgIds: "$products.owner.target" },
|
|
111
|
+
pipeline: [
|
|
112
|
+
{
|
|
113
|
+
$match: {
|
|
114
|
+
$expr: {
|
|
115
|
+
$in: ["$_id", "$$orgIds"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
$project: {
|
|
121
|
+
_id: 1,
|
|
122
|
+
"profile.name": 1,
|
|
123
|
+
"profile.photo": 1,
|
|
124
|
+
"profile.description": 1,
|
|
125
|
+
"profile.tags": 1,
|
|
126
|
+
rating: 1,
|
|
127
|
+
official: 1
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
as: "organizations"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const ObjectId = Types.ObjectId;
|
|
136
|
+
const { Client } = googleMapsServicesJs;
|
|
137
|
+
const client = new Client({});
|
|
138
|
+
const getBasicMatchConditions = (query) => {
|
|
139
|
+
const conditions = [];
|
|
140
|
+
if (query.delivery) {
|
|
141
|
+
let deliveryMethods = Array.isArray(query.delivery) ? query.delivery : typeof query.delivery === "string" ? query.delivery.split(",") : [];
|
|
142
|
+
deliveryMethods = deliveryMethods.filter(Boolean).map((m) => m.trim());
|
|
143
|
+
if (deliveryMethods.length > 0) {
|
|
144
|
+
conditions.push({ delivery: { $in: deliveryMethods } });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (query.payment) {
|
|
148
|
+
let paymentMethods = Array.isArray(query.payment) ? query.payment : typeof query.payment === "string" ? query.payment.split(",") : [];
|
|
149
|
+
paymentMethods = paymentMethods.filter(Boolean).map((m) => m.trim());
|
|
150
|
+
if (paymentMethods.length > 0) {
|
|
151
|
+
conditions.push({ payment: { $in: paymentMethods } });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return conditions;
|
|
155
|
+
};
|
|
156
|
+
const getPriceConditions = (priceMin, priceMax) => {
|
|
157
|
+
if (!priceMin && !priceMax) return [];
|
|
158
|
+
const conditions = {};
|
|
159
|
+
if (priceMin !== void 0 && priceMin !== null && priceMin !== "") {
|
|
160
|
+
conditions["products.variants.price"] = { $gte: parseFloat(priceMin) };
|
|
161
|
+
}
|
|
162
|
+
if (priceMax !== void 0 && priceMax !== null && priceMax !== "") {
|
|
163
|
+
if (conditions["products.variants.price"]) {
|
|
164
|
+
conditions["products.variants.price"].$lte = parseFloat(priceMax);
|
|
165
|
+
} else {
|
|
166
|
+
conditions["products.variants.price"] = { $lte: parseFloat(priceMax) };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return Object.keys(conditions).length > 0 ? [{ $match: conditions }] : [];
|
|
170
|
+
};
|
|
171
|
+
const getCategoryConditions = (categories) => {
|
|
172
|
+
if (!categories || categories.length === 0) return [];
|
|
173
|
+
const categoriesArray = Array.isArray(categories) ? categories : categories.split(",");
|
|
174
|
+
return [
|
|
175
|
+
{
|
|
176
|
+
$match: {
|
|
177
|
+
"products.category": { $in: categoriesArray.map((id) => new ObjectId(id)) }
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
];
|
|
181
|
+
};
|
|
182
|
+
const getContainConditions = (contain) => {
|
|
183
|
+
if (!contain) return [];
|
|
184
|
+
const conditions = contain.map((property) => ({
|
|
185
|
+
[property]: { $exists: true, $not: { $size: 0 } }
|
|
186
|
+
}));
|
|
187
|
+
return conditions.length > 0 ? [{ $match: { $and: conditions } }] : [];
|
|
188
|
+
};
|
|
189
|
+
const hasLocationParams = (query) => query.location || query.address || query.city || query.state || query.country;
|
|
190
|
+
const resolveLocation = async (query) => {
|
|
191
|
+
if (query.location) {
|
|
192
|
+
const parsedLocation = typeof query.location === "string" ? JSON.parse(query.location) : query.location;
|
|
193
|
+
const coordinates = parsedLocation.lng ? [parsedLocation.lng, parsedLocation.lat] : parsedLocation.coordinates;
|
|
194
|
+
return { coordinates: coordinates.map((coord) => parseFloat(coord)) };
|
|
195
|
+
}
|
|
196
|
+
const searchString = [query.address, query.city, query.state, query.country].filter(Boolean).join(", ");
|
|
197
|
+
try {
|
|
198
|
+
const geoResponse = await client.geocode({
|
|
199
|
+
params: {
|
|
200
|
+
address: searchString,
|
|
201
|
+
key: process.env.GOOGLE_MAPS_API_KEY
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
if (!geoResponse.data.results?.length) {
|
|
205
|
+
throw new Error("Unable to geocode the provided location.");
|
|
206
|
+
}
|
|
207
|
+
const { lng, lat } = geoResponse.data.results[0].geometry.location;
|
|
208
|
+
return { coordinates: [lng, lat] };
|
|
209
|
+
} catch (err) {
|
|
210
|
+
throw new Error("Error occurred while geocoding.");
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
const getRadius = (query) => {
|
|
214
|
+
if (query.locationRadius) return parseFloat(query.locationRadius) / 6378.1;
|
|
215
|
+
if (query.city) return 25 / 6378.1;
|
|
216
|
+
if (query.state) return 50 / 6378.1;
|
|
217
|
+
return null;
|
|
218
|
+
};
|
|
219
|
+
const getDistanceStages = (location) => [
|
|
220
|
+
{
|
|
221
|
+
$addFields: {
|
|
222
|
+
distance: {
|
|
223
|
+
$function: {
|
|
224
|
+
body: `function(spotCoords, userCoords, isMiles) {
|
|
225
|
+
function toRad(x) {
|
|
226
|
+
return x * Math.PI / 180;
|
|
227
|
+
}
|
|
228
|
+
var lon1 = spotCoords[0];
|
|
229
|
+
var lat1 = spotCoords[1];
|
|
230
|
+
var lon2 = userCoords[0];
|
|
231
|
+
var lat2 = userCoords[1];
|
|
232
|
+
var R = 6371;
|
|
233
|
+
if (isMiles) R = 3959;
|
|
234
|
+
var x1 = lat2 - lat1;
|
|
235
|
+
var dLat = toRad(x1);
|
|
236
|
+
var x2 = lon2 - lon1;
|
|
237
|
+
var dLon = toRad(x2);
|
|
238
|
+
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
|
239
|
+
Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
|
|
240
|
+
Math.sin(dLon / 2) * Math.sin(dLon / 2);
|
|
241
|
+
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
242
|
+
var d = R * c;
|
|
243
|
+
return d;
|
|
244
|
+
}`,
|
|
245
|
+
args: ["$location.coordinates", location.coordinates, false],
|
|
246
|
+
lang: "js"
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
];
|
|
252
|
+
const getSpotsLocationStages = async (query) => {
|
|
253
|
+
if (!hasLocationParams(query)) {
|
|
254
|
+
return { stages: [], userLocation: null };
|
|
255
|
+
}
|
|
256
|
+
const location = await resolveLocation(query);
|
|
257
|
+
const radius = getRadius(query);
|
|
258
|
+
const geoStages = radius ? [
|
|
259
|
+
{
|
|
260
|
+
$match: {
|
|
261
|
+
"location.coordinates": {
|
|
262
|
+
$geoWithin: {
|
|
263
|
+
$centerSphere: [[location.coordinates[0], location.coordinates[1]], radius]
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
] : [];
|
|
269
|
+
return {
|
|
270
|
+
stages: [...geoStages, ...getDistanceStages(location)],
|
|
271
|
+
userLocation: location
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
const controllerFactory = (db) => {
|
|
275
|
+
const Spot = db.spot;
|
|
276
|
+
const cache = new CacheNamespaced({ ttlSeconds: 60 * 5 });
|
|
277
|
+
const readCatalog = async (req, res) => {
|
|
278
|
+
console.log("marketplace catalog query", req.query);
|
|
279
|
+
try {
|
|
280
|
+
const cacheKey = JSON.stringify(req.query);
|
|
281
|
+
let cachedResult = await cache.get(cacheKey);
|
|
282
|
+
if (cachedResult) {
|
|
283
|
+
return res.status(200).send(cachedResult);
|
|
284
|
+
}
|
|
285
|
+
const matchConditions = getBasicMatchConditions(req.query);
|
|
286
|
+
const stages = [
|
|
287
|
+
// Базовые фильтры spots (delivery, payment)
|
|
288
|
+
...matchConditions.length > 0 ? [{ $match: { $and: matchConditions } }] : [],
|
|
289
|
+
// Геопоиск ПЕРВЫМ (если есть location)
|
|
290
|
+
...req.query.location || req.query.city || req.query.state || req.query.country ? (await getSpotsLocationStages(req.query)).stages : [{ $addFields: { distance: null } }],
|
|
291
|
+
// Lookups (без availability пока)
|
|
292
|
+
...getLookupStages(["products", "organizations"], lookupConfigs),
|
|
293
|
+
// Фильтр по наличию products
|
|
294
|
+
...getContainConditions(["products", "organizations"]),
|
|
295
|
+
// Фильтр по ценам
|
|
296
|
+
...getPriceConditions(req.query.priceMin, req.query.priceMax),
|
|
297
|
+
// Фильтр по категориям
|
|
298
|
+
...getCategoryConditions(req.query.categories),
|
|
299
|
+
// Group по organization
|
|
300
|
+
{
|
|
301
|
+
$group: {
|
|
302
|
+
_id: { $arrayElemAt: ["$organizations._id", 0] },
|
|
303
|
+
profile: { $first: { $arrayElemAt: ["$organizations.profile", 0] } },
|
|
304
|
+
rating: { $first: { $arrayElemAt: ["$organizations.rating", 0] } },
|
|
305
|
+
official: { $first: { $arrayElemAt: ["$organizations.official", 0] } },
|
|
306
|
+
views: { $first: { $arrayElemAt: ["$organizations.views", 0] } },
|
|
307
|
+
spots: {
|
|
308
|
+
$push: {
|
|
309
|
+
_id: "$_id",
|
|
310
|
+
name: "$profile.name",
|
|
311
|
+
address: "$address",
|
|
312
|
+
location: "$location",
|
|
313
|
+
distance: "$distance",
|
|
314
|
+
delivery: "$delivery",
|
|
315
|
+
payment: "$payment"
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
products: { $first: "$products" },
|
|
319
|
+
distance: { $min: "$distance" }
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
// Добавляем numberOfProducts
|
|
323
|
+
{
|
|
324
|
+
$addFields: {
|
|
325
|
+
numberOfProducts: { $size: { $ifNull: ["$products", []] } }
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
// Финальная структура
|
|
329
|
+
{
|
|
330
|
+
$project: {
|
|
331
|
+
_id: 1,
|
|
332
|
+
profile: 1,
|
|
333
|
+
rating: 1,
|
|
334
|
+
official: 1,
|
|
335
|
+
views: 1,
|
|
336
|
+
spots: 1,
|
|
337
|
+
products: 1,
|
|
338
|
+
distance: 1,
|
|
339
|
+
numberOfProducts: 1
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
// Сортировка
|
|
343
|
+
...queryProcessorCore.getSortingOptions(req.query.sortParam || "distance", req.query.sortOrder),
|
|
344
|
+
// Пагинация
|
|
345
|
+
...queryProcessorCore.getPaginationOptions(req.query.skip, req.query.limit)
|
|
346
|
+
].filter(Boolean);
|
|
347
|
+
console.log("Marketplace pipeline:", JSON.stringify(stages, null, 2));
|
|
348
|
+
const catalog = await Spot.aggregate(stages);
|
|
349
|
+
await cache.setWithTags(cacheKey, catalog, ["marketplace_catalog"]);
|
|
350
|
+
res.status(200).send(catalog);
|
|
351
|
+
} catch (err) {
|
|
352
|
+
console.error("Marketplace catalog error:", err);
|
|
353
|
+
res.status(500).send({ message: err.message });
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
return {
|
|
357
|
+
readCatalog
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
const marketplaceRoutes = (function(app, db) {
|
|
361
|
+
const controller = controllerFactory(db);
|
|
362
|
+
const { authJwt } = middlewareIndexFactory(db);
|
|
363
|
+
app.get(
|
|
364
|
+
"/api/marketplace/catalog",
|
|
365
|
+
[
|
|
366
|
+
authJwt.verifyToken(true)
|
|
367
|
+
// Optional authentication
|
|
368
|
+
],
|
|
369
|
+
controller.readCatalog
|
|
370
|
+
);
|
|
371
|
+
});
|
|
372
|
+
function initializeMarketplace(app, db, origins, publicPath) {
|
|
373
|
+
if (app) {
|
|
374
|
+
marketplaceRoutes(app, db);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
const routes = {
|
|
378
|
+
marketplaceRoutes
|
|
379
|
+
};
|
|
380
|
+
const initialize = initializeMarketplace;
|
|
381
|
+
const marketplace_server = {
|
|
382
|
+
initialize: initializeMarketplace,
|
|
383
|
+
routes
|
|
384
|
+
};
|
|
385
|
+
export {
|
|
386
|
+
marketplace_server as default,
|
|
387
|
+
initialize,
|
|
388
|
+
routes
|
|
389
|
+
};
|
|
@@ -2,7 +2,7 @@ import { ref, createElementBlock, openBlock, normalizeClass, withModifiers, crea
|
|
|
2
2
|
import Loader from "../Loader/Loader.vue.js";
|
|
3
3
|
import _sfc_main$1 from "../../modules/icons/navigation/IconCheckmark.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../modules/icons/navigation/IconCross.vue.js";
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
const _hoisted_1 = ["disabled"];
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 0,
|
|
@@ -18,7 +18,7 @@ const _hoisted_4 = {
|
|
|
18
18
|
};
|
|
19
19
|
const _hoisted_5 = {
|
|
20
20
|
key: 0,
|
|
21
|
-
class: "button-counter flex flex-center"
|
|
21
|
+
class: "button-counter font-second flex flex-center"
|
|
22
22
|
};
|
|
23
23
|
const _sfc_main = {
|
|
24
24
|
__name: "Button",
|
|
@@ -155,4 +155,4 @@ const _sfc_main = {
|
|
|
155
155
|
export {
|
|
156
156
|
_sfc_main as default
|
|
157
157
|
};
|
|
158
|
-
//# sourceMappingURL=Button.
|
|
158
|
+
//# sourceMappingURL=Button.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.vue2.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n submit: {\n type: Function,\n default: async () => { console.log('Button click.') }\n },\n text: {\n type: Object,\n default: () => ({\n success: null,\n error: null\n })\n },\n counter: {\n type: Object\n },\n callback: {\n type: Function,\n default: async () => { console.log('Button callback.') }\n },\n callbackDelay: {\n type: Number,\n default: 750\n },\n showSucces: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: true\n },\n validation: {\n type: Boolean,\n default: false\n },\n})\n\nconst emits = defineEmits(['error'])\n\nconst button = ref(null)\nconst error = ref(null)\nconst loading = ref(false)\nconst finished = ref(false)\n\nasync function Submit() {\n console.log('click')\n \n button.value.style['pointer-events'] = 'none'\n error.value = null\n loading.value = true\n\n // Функция для сброса состояния кнопки\n const resetButton = () => {\n if (button.value) {\n button.value.style.pointerEvents = 'auto'\n loading.value = false\n finished.value = false\n error.value = null\n }\n }\n\n try {\n await props.submit()\n\n button.value.classList.replace('bg-main', 'bg-second')\n loading.value = false\n\n // Используем функцию сброса состояния кнопки здесь\n if (props.showSucces) { \n finished.value = true\n setTimeout(() => {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }, 500)\n } else {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }\n\n // Если есть callback, мы также установим таймер для его вызова\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay)\n\n } catch (err) {\n emits('error', err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке\n button.value.classList.replace('bg-main', 'bg-fourth-nano')\n loading.value = false\n error.value = true\n \n // После задержки снова сбрасываем состояние кнопки\n setTimeout(() => {\n resetButton()\n // Так как класс кнопки был изменен, вернем его в исходное состояние\n button.value.classList.replace('bg-fourth-nano', 'bg-main')\n }, 1330)\n }\n}\n</script>\n\n<template>\n <button \n @click.stop=\"Submit\"\n :disabled=\"validation\"\n ref=\"button\"\n\t\tclass=\"button\"\n :class=\"{ 'button--disabled': loading || validation }\"\n >\n <Transition name=\"content\" mode=\"out-in\">\n <!-- Default slot content -->\n <span v-if=\"!loading && !error && !finished || !showLoader\" class=\"button-content\">\n <slot></slot>\n </span>\n <!-- Loading state -->\n <Loader v-else-if=\"loading && !error && showLoader\" class=\"icon button-content pos-relative pos-t-0 pos-l-0 loading\"/>\n <!-- Success state -->\n <span v-else-if=\"finished && showSucces\" class=\"button-content t-semi t-center w-100 loading t-black\">\n <template v-if=\"text.success\">\n {{ text.success }}\n </template>\n <IconCheckmark v-else class=\"icon\" />\n </span>\n <!-- Error state -->\n <span v-else-if=\"error\" class=\"button-content t-center w-100 error\">\n <template v-if=\"text.error\">\n {{ text.error }}\n </template>\n <IconCross v-else class=\"icon\" />\n </span>\n </Transition>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter font-second flex flex-center\">\n <span>{{ counter }}</span>\n </div>\n </button>\n</template>\n\n<style lang=\"scss\">\nbutton[disabled] {\n opacity: 0.75 !important;\n pointer-events: none !important;\n cursor: default !important;\n color: rgba(var(--dark), 0.33) !important;\n background: rgba(var(--light), 1) !important;\n}\n\na.button {\n text-box: trim-both cap alphabetic;\n}\n\n.button {\n display: flex;\n padding: var(--small);\n border-radius: var(--small);\n text-box: trim-both cap alphabetic;\n transform: scale(1);\n opacity: 1;\n align-items: center;\n justify-content: center;\n color: black;\n text-align: center;\n font-size: 1rem;\n letter-spacing: 5%;\n transition: all 0.33s ease;\n\n &:hover {\n cursor: pointer;\n opacity: 0.9;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n &-small {\n padding: 0.75rem;\n border-radius: 0.5rem;\n height: fit-content;\n }\n\n .button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: yellow;\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n }\n}\n\n.button-content {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.icon {\n width: 1rem;\n height: 1rem;\n}\n\n/* Vue Transitions */\n.content-enter-active,\n.content-leave-active {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.content-enter-from {\n opacity: 0;\n transform: translateY(8px) scale(0.95);\n}\n\n.content-leave-to {\n opacity: 0;\n transform: translateY(-8px) scale(0.95);\n}\n\n.content-enter-to,\n.content-leave-from {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAqCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEnB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACxB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAEA,UAAI;AACF,cAAM,MAAM,OAAM;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AACrD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACpB,mBAAS,QAAQ;AACjB,qBAAW,MAAM;AACf,wBAAW;AACX,mBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,UACvD,GAAG,GAAG;AAAA,QACR,OAAO;AACL,sBAAW;AACX,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,QACvD;AAGA,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAQ,GAAI,MAAM,aAAa;AAAA,MAE5E,SAAS,KAAK;AACZ,cAAM,SAAS,GAAG;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,QAAQ;AAGd,mBAAW,MAAM;AACf,sBAAW;AAEX,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC5D,GAAG,IAAI;AAAA,MACT;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, createCommentVNode, createElementVNode, toDisplayString, normalizeClass, createVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../modules/icons/navigation/IconCheckmark.vue.js";
|
|
3
|
-
const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
|
|
3
|
+
const _hoisted_1 = { class: "flex-v-center cursor-pointer flex-nowrap flex" };
|
|
4
4
|
const _hoisted_2 = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "mn-r-auto t-transp mn-r-small"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.vue.js","sources":["../../../../../src/components/Checkbox/Checkbox.vue"],"sourcesContent":["<script setup>\n import { ref, watch, computed } from 'vue'\n\n import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n const props = defineProps({\n label: String,\n name: String,\n value: String,\n radio: {\n type: [Array, Boolean, Object],\n default: () => []\n },\n theme: {\n type: String,\n default: \"light\"\n },\n mode: {\n type: String,\n default: \"switch\",\n validator: (v) => [\"switch\", \"checkbox\"].includes(v)\n }\n })\n const emit = defineEmits(['update:radio'])\n const updateInputText = (event) => {\n if (Array.isArray(props.radio)) {\n let newRadio = [...props.radio]; // создаем копию массива для иммутабельности\n if (event.target.checked) {\n newRadio.push(props.value);\n } else {\n const index = newRadio.indexOf(props.value);\n if (index !== -1) {\n newRadio.splice(index, 1);\n }\n }\n emit('update:radio', newRadio);\n } else if (typeof props.radio === 'boolean') {\n emit('update:radio', event.target.checked);\n }\n }\n</script>\n<template>\n <label class=\"flex-v-center flex-nowrap flex\">\n <div v-if=\"label\" class=\"mn-r-auto t-transp mn-r-small\">\n <span>{{label}}</span>\n </div>\n <input \n @change=\"updateInputText\"\n class=\"round radiobutton\" \n type=\"checkbox\" \n :name=\"name\" \n :value=\"value\"\n :checked=\"Array.isArray(radio) ? radio.includes(value) : radio\"\n > \n <div \n class=\"cursor-pointer mn-l-thin flex-center field-wrapper\"\n :class=\"{\n 'transition-elastic pd-thin h-2r w-4r radius-extra': mode === 'switch',\n 'w-2r h-2r radius-small': mode === 'checkbox',\n 'bg-dark': !(Array.isArray(radio) ? radio.includes(value) : radio) && theme === 'dark' && mode === 'switch',\n 'br-dark': theme === 'dark' && mode === 'checkbox',\n 'bg-light': !(Array.isArray(radio) ? radio.includes(value) : radio) && theme === 'light' && mode === 'switch',\n 'bg-light': !(Array.isArray(radio) ? radio.includes(value) : radio) && theme === 'light' && mode === 'checkbox','bg-main': (Array.isArray(radio) ? radio.includes(value) : radio) && mode === 'switch',\n 'bg-main br-main': (Array.isArray(radio) ? radio.includes(value) : radio) && mode === 'checkbox',\n }\"\n >\n <!-- Switch toggle circle -->\n <div \n v-if=\"mode === 'switch'\"\n class=\"transition-linear w-1r h-1r radius-extra bg-white\"\n :class=\"{\n 'mn-r-auto': !(Array.isArray(radio) ? radio.includes(value) : radio),\n 'mn-l-auto': Array.isArray(radio) ? radio.includes(value) : radio,\n }\"\n />\n <!-- Checkbox checkmark -->\n <span \n v-else-if=\"mode === 'checkbox' && (Array.isArray(radio) ? radio.includes(value) : radio)\"\n class=\"t-white w-100 h-100 flex flex-center\"\n >\n <IconCheckmark class=\"i-medium\" fill=\"rgb(var(--white))\" />\n </span>\n </div>\n </label>\n</template>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKE,UAAM,QAAQ;AAkBd,UAAM,OAAO;AACb,UAAM,kBAAkB,CAAC,UAAU;AACjC,UAAI,MAAM,QAAQ,MAAM,KAAK,GAAG;AAC9B,YAAI,WAAW,CAAC,GAAG,MAAM,KAAK;AAC9B,YAAI,MAAM,OAAO,SAAS;AACxB,mBAAS,KAAK,MAAM,KAAK;AAAA,QAC3B,OAAO;AACL,gBAAM,QAAQ,SAAS,QAAQ,MAAM,KAAK;AAC1C,cAAI,UAAU,IAAI;AAChB,qBAAS,OAAO,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF;AACA,aAAK,gBAAgB,QAAQ;AAAA,MAC/B,WAAW,OAAO,MAAM,UAAU,WAAW;AAC3C,aAAK,gBAAgB,MAAM,OAAO,OAAO;AAAA,MAC3C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Checkbox.vue.js","sources":["../../../../../src/components/Checkbox/Checkbox.vue"],"sourcesContent":["<script setup>\n import { ref, watch, computed } from 'vue'\n\n import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n const props = defineProps({\n label: String,\n name: String,\n value: String,\n radio: {\n type: [Array, Boolean, Object],\n default: () => []\n },\n theme: {\n type: String,\n default: \"light\"\n },\n mode: {\n type: String,\n default: \"switch\",\n validator: (v) => [\"switch\", \"checkbox\"].includes(v)\n }\n })\n const emit = defineEmits(['update:radio'])\n const updateInputText = (event) => {\n if (Array.isArray(props.radio)) {\n let newRadio = [...props.radio]; // создаем копию массива для иммутабельности\n if (event.target.checked) {\n newRadio.push(props.value);\n } else {\n const index = newRadio.indexOf(props.value);\n if (index !== -1) {\n newRadio.splice(index, 1);\n }\n }\n emit('update:radio', newRadio);\n } else if (typeof props.radio === 'boolean') {\n emit('update:radio', event.target.checked);\n }\n }\n</script>\n<template>\n <label class=\"flex-v-center cursor-pointer flex-nowrap flex\">\n <div v-if=\"label\" class=\"mn-r-auto t-transp mn-r-small\">\n <span>{{label}}</span>\n </div>\n <input \n @change=\"updateInputText\"\n class=\"round radiobutton\" \n type=\"checkbox\" \n :name=\"name\" \n :value=\"value\"\n :checked=\"Array.isArray(radio) ? radio.includes(value) : radio\"\n > \n <div \n class=\"cursor-pointer mn-l-thin flex-center field-wrapper\"\n :class=\"{\n 'transition-elastic pd-thin h-2r w-4r radius-extra': mode === 'switch',\n 'w-2r h-2r radius-small': mode === 'checkbox',\n 'bg-dark': !(Array.isArray(radio) ? radio.includes(value) : radio) && theme === 'dark' && mode === 'switch',\n 'br-dark': theme === 'dark' && mode === 'checkbox',\n 'bg-light': !(Array.isArray(radio) ? radio.includes(value) : radio) && theme === 'light' && mode === 'switch',\n 'bg-light': !(Array.isArray(radio) ? radio.includes(value) : radio) && theme === 'light' && mode === 'checkbox','bg-main': (Array.isArray(radio) ? radio.includes(value) : radio) && mode === 'switch',\n 'bg-main br-main': (Array.isArray(radio) ? radio.includes(value) : radio) && mode === 'checkbox',\n }\"\n >\n <!-- Switch toggle circle -->\n <div \n v-if=\"mode === 'switch'\"\n class=\"transition-linear w-1r h-1r radius-extra bg-white\"\n :class=\"{\n 'mn-r-auto': !(Array.isArray(radio) ? radio.includes(value) : radio),\n 'mn-l-auto': Array.isArray(radio) ? radio.includes(value) : radio,\n }\"\n />\n <!-- Checkbox checkmark -->\n <span \n v-else-if=\"mode === 'checkbox' && (Array.isArray(radio) ? radio.includes(value) : radio)\"\n class=\"t-white w-100 h-100 flex flex-center\"\n >\n <IconCheckmark class=\"i-medium\" fill=\"rgb(var(--white))\" />\n </span>\n </div>\n </label>\n</template>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKE,UAAM,QAAQ;AAkBd,UAAM,OAAO;AACb,UAAM,kBAAkB,CAAC,UAAU;AACjC,UAAI,MAAM,QAAQ,MAAM,KAAK,GAAG;AAC9B,YAAI,WAAW,CAAC,GAAG,MAAM,KAAK;AAC9B,YAAI,MAAM,OAAO,SAAS;AACxB,mBAAS,KAAK,MAAM,KAAK;AAAA,QAC3B,OAAO;AACL,gBAAM,QAAQ,SAAS,QAAQ,MAAM,KAAK;AAC1C,cAAI,UAAU,IAAI;AAChB,qBAAS,OAAO,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF;AACA,aAAK,gBAAgB,QAAQ;AAAA,MAC/B,WAAW,OAAO,MAAM,UAAU,WAAW;AAC3C,aAAK,gBAAgB,MAAM,OAAO,OAAO;AAAA,MAC3C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, watchEffect, createBlock, openBlock, unref, isRef, withCtx, renderSlot, createVNode, createElementBlock, createCommentVNode, toDisplayString } from "vue";
|
|
2
2
|
import Field from "../Field/Field.vue.js";
|
|
3
|
-
import _sfc_main$1 from "../Button/Button.
|
|
3
|
+
import _sfc_main$1 from "../Button/Button.vue2.js";
|
|
4
4
|
import _sfc_main$2 from "../../modules/icons/navigation/IconArrow.vue.js";
|
|
5
5
|
import { useI18n } from "vue-i18n";
|
|
6
6
|
const _hoisted_1 = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, renderSlot } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
|
|
4
4
|
const _sfc_main = {
|
|
5
5
|
__name: "Menu",
|
|
@@ -14,4 +14,4 @@ const _sfc_main = {
|
|
|
14
14
|
export {
|
|
15
15
|
_sfc_main as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=Menu.
|
|
17
|
+
//# sourceMappingURL=Menu.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, watch, createElementBlock, openBlock, Fragment, withDirectives, createVNode, normalizeClass, withModifiers, createCommentVNode, createElementVNode, toDisplayString, Transition, withCtx, renderList, vShow, unref, nextTick } from "vue";
|
|
2
2
|
import clickOutside from "../FieldPhone/click-outside.js";
|
|
3
|
-
/* empty css
|
|
3
|
+
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
5
|
const _hoisted_1 = {
|
|
6
6
|
key: 0,
|
|
@@ -131,4 +131,4 @@ const Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-849
|
|
|
131
131
|
export {
|
|
132
132
|
Select as default
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=Select.
|
|
134
|
+
//# sourceMappingURL=Select.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.vue.js","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n ref=\"fieldWrapper\"\n tabindex=\"0\"\n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 pd-small radius-small bg-white mn-t-thin w-100\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"radius-thin hover-bg-light pd-thin text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<script setup>\nimport { ref, computed, watch, nextTick } from 'vue'\nimport clickOutside from '../FieldPhone/click-outside.js';\nlet vClickOutside = clickOutside\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\nconst showMenu = ref(false)\nconst fieldWrapper = ref(null)\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\nconst toggleMenu = async () => {\n showMenu.value = !showMenu.value\n \n if (showMenu.value) {\n await nextTick()\n fieldWrapper.value?.focus()\n emit('focus')\n } else {\n emit('blur')\n }\n}\nfunction clickedOutside () {\n showMenu.value = false\n}\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n ul li {\n line-height: 2;\n }\n .field-wrapper:focus {\n outline: none;\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,QAAI,gBAAgB;AACpB,UAAM,OAAO;AAKb,UAAM,QAAQ;AASd,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,kBAAkB;AAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AACA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AACD,UAAM,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AACD,UAAM,aAAa,YAAY;AAC7B,eAAS,QAAQ,CAAC,SAAS;AAE3B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAQ;AACd,qBAAa,OAAO,MAAK;AACzB,aAAK,OAAO;AAAA,MACd,OAAO;AACL,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AACA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AACV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC7D,OAAO;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC7C;AAAA,IACF;AACA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, renderSlot, Transition, withCtx, withDirectives, vShow } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
const _sfc_main = {
|
|
4
4
|
__name: "Spoiler",
|
|
5
5
|
props: {
|
|
@@ -70,4 +70,4 @@ const _sfc_main = {
|
|
|
70
70
|
export {
|
|
71
71
|
_sfc_main as default
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=Spoiler.
|
|
73
|
+
//# sourceMappingURL=Spoiler.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spoiler.vue2.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"toggleSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :isOpen=\"showSpoiler\"></slot>\n </div>\n <transition\n name=\"collapse\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n @leave=\"onLeave\"\n >\n <div v-show=\"showSpoiler\" class=\"spoiler\" ref=\"spoilerContent\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n </div>\n</template>\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nconst props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n});\n\nconst showSpoiler = ref(false);\nconst spoilerContent = ref(null);\n\nonMounted(() => {\n if (props.status) {\n showSpoiler.value = props.status;\n }\n});\n\nconst toggleSpoiler = () => {\n showSpoiler.value = !showSpoiler.value;\n};\n\n// Анимация открытия\nconst onEnter = (el) => {\n el.style.height = '0';\n void el.offsetHeight; // force reflow\n el.style.height = el.scrollHeight + 'px';\n};\n\nconst onAfterEnter = (el) => {\n el.style.height = 'auto';\n};\n\n// Анимация закрытия\nconst onLeave = (el) => {\n el.style.height = el.scrollHeight + 'px';\n void el.offsetHeight; // force reflow\n el.style.height = '0';\n};\n\ndefineExpose({\n showSpoiler\n});\n</script>\n<style lang=\"scss\">\n.spoiler {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAE/B,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,oBAAY,QAAQ,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,kBAAY,QAAQ,CAAC,YAAY;AAAA,IACnC;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS;AAClB,WAAK,GAAG;AACR,SAAG,MAAM,SAAS,GAAG,eAAe;AAAA,IACtC;AAEA,UAAM,eAAe,CAAC,OAAO;AAC3B,SAAG,MAAM,SAAS;AAAA,IACpB;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS,GAAG,eAAe;AACpC,WAAK,GAAG;AACR,SAAG,MAAM,SAAS;AAAA,IACpB;AAEA,aAAa;AAAA,MACX;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, createTextVNode, withCtx } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
4
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
|
6
6
|
import { useI18n } from "vue-i18n";
|
|
7
7
|
import { state, actions } from "../../store/auth.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
4
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
|
6
6
|
import { state, actions } from "../../store/auth.js";
|
|
7
7
|
import invitesStore from "../../../../organizations/store/invites.store.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ref, inject, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, createBlock, unref, withCtx, toDisplayString, Fragment, renderList, normalizeClass, resolveDynamicComponent } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
5
5
|
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.vue.js";
|
|
6
|
-
import _sfc_main$6 from "../../../../../components/Menu/Menu.
|
|
6
|
+
import _sfc_main$6 from "../../../../../components/Menu/Menu.vue.js";
|
|
7
7
|
import _sfc_main$b from "../../../../../components/Menu/MenuItem.vue.js";
|
|
8
8
|
import _sfc_main$3 from "../../../../organizations/components/elements/ButtonToggleMembership.vue.js";
|
|
9
9
|
import _sfc_main$2 from "../../../../reports/components/sections/FormReport.vue.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, createVNode, createElementVNode, unref, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$2 from "../../../../../components/Checkbox/Checkbox.vue.js";
|
|
3
|
-
import _sfc_main$3 from "../../../../../components/Button/Button.
|
|
3
|
+
import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
|
|
4
4
|
import _sfc_main$1 from "../sections/ProfileEditCredentials.vue.js";
|
|
5
5
|
import { useRouter } from "vue-router";
|
|
6
6
|
import { actions as actions$1 } from "../../store/auth.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
3
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
|
|
4
4
|
import UploadImage from "../../../../../components/UploadImage/UploadImage.vue.js";
|
|
5
5
|
import { useRouter } from "vue-router";
|
|
6
6
|
import { state, actions } from "../../store/users.js";
|
|
@@ -2,7 +2,7 @@ import { ref, computed, createElementBlock, openBlock, createElementVNode, creat
|
|
|
2
2
|
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
|
|
5
|
-
import _sfc_main$3 from "../../../../../components/Button/Button.
|
|
5
|
+
import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
|
|
6
6
|
import { useRoute, useRouter } from "vue-router";
|
|
7
7
|
import { useI18n } from "vue-i18n";
|
|
8
8
|
import { useStore } from "../../../../core/views/store/core.store.js";
|
|
@@ -2,7 +2,7 @@ import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlo
|
|
|
2
2
|
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
|
|
5
|
-
import _sfc_main$3 from "../../../../../components/Button/Button.
|
|
5
|
+
import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
|
|
6
6
|
import { useRoute, useRouter } from "vue-router";
|
|
7
7
|
import { useI18n } from "vue-i18n";
|
|
8
8
|
import { useStore } from "../../../../core/views/store/core.store.js";
|
|
@@ -2,7 +2,7 @@ import { ref, computed, resolveComponent, createElementBlock, openBlock, createE
|
|
|
2
2
|
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
|
|
5
|
-
import _sfc_main$3 from "../../../../../components/Button/Button.
|
|
5
|
+
import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
|
|
6
6
|
import { useRoute, useRouter } from "vue-router";
|
|
7
7
|
import { useI18n } from "vue-i18n";
|
|
8
8
|
import { useStore } from "../../../../core/views/store/core.store.js";
|
package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, createCommentVNode, openBlock, createElementVNode, createBlock, createVNode, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
3
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
|
|
4
4
|
import { useRoute, useRouter } from "vue-router";
|
|
5
5
|
import { actions, state } from "../../store/users.js";
|
|
6
6
|
import { sendCode, state as state$1 } from "../../store/twofa.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, unref, createBlock, normalizeClass, createTextVNode, withCtx, Transition, resolveDynamicComponent, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
|
-
import Select from "../../../../components/Select/Select.
|
|
3
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
4
4
|
import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
import _sfc_main$6 from "../../../organizations/components/blocks/CardOrganization.vue.js";
|
|
6
6
|
import _sfc_main$1 from "../../../icons/entities/IconFeatured.vue.js";
|