@ozdao/prometheus-framework 0.1.39 → 0.1.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. package/dist/ButtonToggleMembership-738720bd.js +1 -0
  2. package/dist/ButtonToggleMembership-e337e704.mjs +90 -0
  3. package/dist/CardBlogpost-c7adb0a7.mjs +246 -0
  4. package/dist/CardBlogpost-f308ff64.js +1 -0
  5. package/dist/CardOrganization-22beb83d.js +1 -0
  6. package/dist/CardOrganization-ae384e54.mjs +234 -0
  7. package/dist/Chips-edf2b573.js +1 -0
  8. package/dist/Chips-f06ec38f.mjs +213 -0
  9. package/dist/Community-04b25965.mjs +130 -0
  10. package/dist/Community-2f6fee0f.js +1 -0
  11. package/dist/Events-41d71b0e.js +1 -0
  12. package/dist/Events-af7170ed.mjs +134 -0
  13. package/dist/Feed-04fe1f7a.mjs +361 -0
  14. package/dist/Feed-23758089.mjs +124 -0
  15. package/dist/Feed-36e83be3.mjs +156 -0
  16. package/dist/Feed-5653cf8b.js +1 -0
  17. package/dist/Feed-5a359bb7.js +1 -0
  18. package/dist/Feed-6ca0541a.js +1 -0
  19. package/dist/Image-39955d9d.mjs +480 -0
  20. package/dist/Image-c2d190d8.js +9 -0
  21. package/dist/LeftoverAdd-21311275.js +1 -0
  22. package/dist/LeftoverAdd-ccf4595f.mjs +228 -0
  23. package/dist/Members-7251dd52.mjs +109 -0
  24. package/dist/Members-d35ab7e8.js +1 -0
  25. package/dist/Organizations-a964d4b6.mjs +72 -0
  26. package/dist/Organizations-ed6d36d6.js +1 -0
  27. package/dist/Product-299070ad.mjs +652 -0
  28. package/dist/Product-aacb05f3.js +7 -0
  29. package/dist/ProductEdit-70bed802.mjs +296 -0
  30. package/dist/ProductEdit-e5a2e0f6.js +1 -0
  31. package/dist/ProductsBackoffice-3c182d6a.mjs +86 -0
  32. package/dist/ProductsBackoffice-b684913d.js +1 -0
  33. package/dist/ProfileBlogposts-6bf526fb.js +1 -0
  34. package/dist/ProfileBlogposts-d4b17535.mjs +77 -0
  35. package/dist/ProfileEvents-3eeb4320.mjs +68 -0
  36. package/dist/ProfileEvents-90e09978.js +1 -0
  37. package/dist/ProfileOrganizations-e838925f.js +1 -0
  38. package/dist/ProfileOrganizations-edf657ca.mjs +72 -0
  39. package/dist/Publics-a31d7fe7.js +1 -0
  40. package/dist/Publics-a8f31413.mjs +45 -0
  41. package/dist/Wallet-2043b611.mjs +24682 -0
  42. package/dist/Wallet-8fa7386a.js +55 -0
  43. package/dist/auth-076a83d0.mjs +625 -0
  44. package/dist/auth-df5a20c6.js +7 -0
  45. package/dist/auth.client.cjs +1 -1
  46. package/dist/auth.client.js +4 -4
  47. package/dist/auth.validation-80b133df.js +1 -0
  48. package/dist/auth.validation-fd9ae66f.mjs +24 -0
  49. package/dist/backoffice.client.cjs +1 -1
  50. package/dist/backoffice.client.js +11 -11
  51. package/dist/categories-4327a81c.js +1 -0
  52. package/dist/categories-52a561a4.mjs +122 -0
  53. package/dist/community.client.cjs +1 -1
  54. package/dist/community.client.js +10 -10
  55. package/dist/events.client.cjs +2 -2
  56. package/dist/events.client.js +9 -9
  57. package/dist/legal.client.cjs +1 -1
  58. package/dist/legal.client.js +1 -1
  59. package/dist/main.css +1 -1
  60. package/dist/modules/gallery/components/pages/Gallery.vue.d.ts +2 -0
  61. package/dist/modules/gallery/components/sections/GalleryWithCategories.vue.d.ts +2 -0
  62. package/dist/modules/globals/components/sections/Title.vue.d.ts +6 -0
  63. package/dist/organizations-966e1cd2.mjs +122 -0
  64. package/dist/organizations-d12c42b6.js +1 -0
  65. package/dist/organizations.client-8f263e28.js +3 -0
  66. package/dist/organizations.client-9ffc023f.mjs +2996 -0
  67. package/dist/organizations.client.cjs +1 -1
  68. package/dist/organizations.client.js +15 -15
  69. package/dist/products-7e4253eb.js +1 -0
  70. package/dist/products-aabe5c02.mjs +108 -0
  71. package/dist/prometheus-framework.cjs.js +1 -1
  72. package/dist/prometheus-framework.es.js +2 -2
  73. package/dist/states.validation-4594b33c.mjs +13 -0
  74. package/dist/states.validation-69003e66.js +1 -0
  75. package/dist/style.css +1 -1
  76. package/dist/users.client.cjs +1 -1
  77. package/dist/users.client.js +198 -166
  78. package/package.json +1 -1
  79. package/src/components/LocationMarker/LocationMarker.vue +1 -1
  80. package/src/components/LocationSelection/LocationSelection.vue +1 -1
  81. package/src/components/Navigation/Navigation.vue +12 -1
  82. package/src/components/Sidebar/Sidebar.vue +8 -10
  83. package/src/modules/auth/store/auth.js +7 -4
  84. package/src/modules/backoffice/components/admin/ProductEdit.vue +0 -2
  85. package/src/modules/files/middlewares/server/md.js +1 -0
  86. package/src/modules/gallery/components/pages/Gallery.vue +21 -0
  87. package/src/modules/gallery/components/sections/GalleryWithCategories.vue +408 -0
  88. package/src/modules/gallery/gallery.client.js +11 -14
  89. package/src/modules/gallery/router/gallery.router.js +10 -0
  90. package/src/modules/globals/components/sections/Title.vue +22 -0
  91. package/src/modules/marketplace/router/marketplace.js +4 -3
  92. package/src/modules/organizations/components/sections/Feed.vue +2 -2
  93. package/src/modules/products/components/pages/ProductRecommmendation.vue +5 -3
  94. package/src/modules/products/components/sections/FilterProducts.vue +2 -0
  95. package/src/modules/products/components/sections/SectionProduct.vue +17 -5
  96. package/src/modules/products/components/sections/SortProducts.vue +0 -2
  97. package/src/modules/products/controllers/products.controller.js +83 -0
  98. package/src/modules/products/routes/products.routes.js +5 -5
  99. package/src/modules/products/store/categories.js +9 -9
  100. package/src/modules/products/store/leftovers.js +9 -6
  101. package/src/modules/products/store/products.js +0 -2
  102. package/src/modules/spots/components/layouts/Spots.vue +16 -11
  103. package/src/modules/spots/components/pages/Map.vue +9 -7
  104. package/src/modules/users/components/pages/Profile.vue +15 -5
  105. package/src/modules/users/router/users.js +10 -0
  106. package/src/modules/wallet/components/pages/Wallet.vue +104 -23
@@ -0,0 +1,2996 @@
1
+ import { openBlock as a, createElementBlock as r, createElementVNode as n, toDisplayString as g, ref as w, renderSlot as z, createVNode as m, Transition as F, withCtx as y, createCommentVNode as f, onMounted as ue, watch as H, Fragment as k, renderList as C, createBlock as b, pushScopeId as ae, popScopeId as oe, reactive as pe, withAsyncContext as ee, computed as N, unref as $, normalizeClass as ne, createTextVNode as X, watchEffect as de, resolveDirective as Te, normalizeProps as P, guardReactiveProps as V, resolveDynamicComponent as re, mergeProps as be, toHandlers as Ie, withDirectives as se, vShow as ve, withModifiers as ye, toRefs as Ue, resolveComponent as me, vModelText as $e } from "vue";
2
+ import { useRoute as B, useRouter as j } from "vue-router";
3
+ import { useI18n as Be } from "vue-i18n";
4
+ import { s as L } from "./globals-96ba60e4.mjs";
5
+ import "./Breadcrumbs.vue_vue_type_style_index_0_lang-4ed993c7.mjs";
6
+ import { _ as Me } from "./Tab-054b61f7.mjs";
7
+ import "./MenuItem-4a5881bd.mjs";
8
+ import { _ as je } from "./Feed-04fe1f7a.mjs";
9
+ import { _ as Re } from "./Feed-23758089.mjs";
10
+ import "./Tab.vue_vue_type_style_index_0_lang-4ed993c7.mjs";
11
+ import { _ as M } from "./_plugin-vue_export-helper-dad06003.mjs";
12
+ import { a as he } from "./index-a661083c.mjs";
13
+ import { s as T } from "./auth-076a83d0.mjs";
14
+ import { D as qe, _ as Ne, P as He } from "./Dropdown-ef2df9a9.mjs";
15
+ import { a as Ze, _ as Ke } from "./CardOrganization-ae384e54.mjs";
16
+ import { I as Ge } from "./IconEdit-9edfd74d.mjs";
17
+ import { _ as we } from "./ButtonToggleMembership-e337e704.mjs";
18
+ import { _ as Ye } from "./Socials-8193477c.mjs";
19
+ import { s as x, a as J } from "./organizations-966e1cd2.mjs";
20
+ import { m as We, a as Pe, s as Ae } from "./memberships-12210953.mjs";
21
+ import { C as I } from "./Checkbox-5dbe7b23.mjs";
22
+ import { a as Je, s as xe, _ as Qe } from "./categories-52a561a4.mjs";
23
+ import { _ as Xe } from "./Feed-d114330c.mjs";
24
+ import { _ as et } from "./CardProduct-fca53299.mjs";
25
+ import { a as tt, s as st } from "./products-aabe5c02.mjs";
26
+ import "./Field.vue_vue_type_style_index_0_scoped_f4a29b0d_lang-4ed993c7.mjs";
27
+ import { S as nt } from "./Select-11ddabf5.mjs";
28
+ import "./Button.vue_vue_type_style_index_0_lang-4ed993c7.mjs";
29
+ import "./inputs.validation-db65277a.mjs";
30
+ import { _ as at } from "./BlockTags-ee310572.mjs";
31
+ import { F as E } from "./Field-e5ad88d3.mjs";
32
+ import { S as ot } from "./SelectMulti-58704d69.mjs";
33
+ import { _ as De } from "./UploadImage-3c627d89.mjs";
34
+ import { _ as ce } from "./Button-9e1a9284.mjs";
35
+ import "./Popup.vue_vue_type_style_index_0_lang-4ed993c7.mjs";
36
+ import "./Organizations-a964d4b6.mjs";
37
+ import "./reports-79cd9459.mjs";
38
+ import "./Publics-a8f31413.mjs";
39
+ import { a as Q } from "./auth.validation-fd9ae66f.mjs";
40
+ const it = { class: "mn-big radius-medium pd-big bg-white" }, lt = { class: "mn-regular" }, rt = { class: "mn-small t-transp p-medium" }, _e = {
41
+ __name: "EmptyState",
42
+ props: {
43
+ title: {
44
+ type: String,
45
+ default: "У вас еще нет организации"
46
+ },
47
+ description: {
48
+ type: String,
49
+ default: "Для использования сервиса, вам необходимо добавить вашу организацию."
50
+ },
51
+ action: {
52
+ type: String,
53
+ default: "Создать организацию"
54
+ },
55
+ callback: {
56
+ type: Function,
57
+ default: () => {
58
+ }
59
+ }
60
+ },
61
+ setup(e) {
62
+ return (t, s) => (a(), r("section", it, [
63
+ n("h3", lt, g(e.title), 1),
64
+ n("p", rt, g(e.description), 1),
65
+ n("button", {
66
+ onClick: s[0] || (s[0] = (...i) => e.callback && e.callback(...i)),
67
+ class: "t-white bg-second w-100 button"
68
+ }, g(e.action), 1)
69
+ ]));
70
+ }
71
+ };
72
+ const dt = {
73
+ key: 0,
74
+ class: "spoiler"
75
+ }, q = {
76
+ __name: "Spoiler",
77
+ props: {
78
+ status: {
79
+ type: Boolean,
80
+ default: !1
81
+ }
82
+ },
83
+ setup(e) {
84
+ const t = e, s = w(!1);
85
+ return t.status && (s.value = t.status), (i, l) => (a(), r("div", null, [
86
+ n("div", {
87
+ onClick: l[0] || (l[0] = (o) => s.value = !s.value),
88
+ class: "flex-v-center flex-nowrap flex"
89
+ }, [
90
+ z(i.$slots, "header")
91
+ ]),
92
+ m(F, { name: "collapse" }, {
93
+ default: y(() => [
94
+ s.value ? (a(), r("div", dt, [
95
+ z(i.$slots, "content")
96
+ ])) : f("", !0)
97
+ ]),
98
+ _: 3
99
+ })
100
+ ]));
101
+ }
102
+ };
103
+ const ct = {
104
+ __name: "Map",
105
+ props: {
106
+ location: Object
107
+ },
108
+ setup(e) {
109
+ const t = e;
110
+ let s = w(null), i = null, l = null;
111
+ return ue(async () => {
112
+ i = new google.maps.Map(s.value, {
113
+ zoom: 13,
114
+ center: {
115
+ lat: t.location.lat,
116
+ lng: t.location.lng
117
+ }
118
+ }), l = new google.maps.Marker({
119
+ position: {
120
+ lat: t.location.lat,
121
+ lng: t.location.lng
122
+ },
123
+ map: i
124
+ });
125
+ }), H(() => t.location, () => {
126
+ i && l && (l.setPosition(new google.maps.LatLng(t.location.lat, t.location.lng)), i.setCenter(new google.maps.LatLng(t.location.lat, t.location.lng)));
127
+ }, { deep: !0 }), (o, p) => (a(), r("div", {
128
+ ref_key: "gmap",
129
+ ref: s,
130
+ class: "gmap"
131
+ }, null, 512));
132
+ }
133
+ }, ut = /* @__PURE__ */ M(ct, [["__scopeId", "data-v-c194b4a5"]]);
134
+ const pt = { class: "pd-small flex-nowrap flex" }, mt = { class: "user-card__info" }, ht = { class: "user-card__name" }, _t = { class: "user-card__position" }, gt = {
135
+ __name: "SpotSub",
136
+ props: {
137
+ department: {
138
+ type: Object,
139
+ required: !0
140
+ }
141
+ // Define other props here
142
+ },
143
+ setup(e) {
144
+ return (t, s) => (a(), r("div", pt, [
145
+ n("div", mt, [
146
+ n("p", ht, g(e.department.name ? e.department.name : "Безымянный"), 1),
147
+ n("p", _t, g(e.department.members ? e.department.members.length : "0") + " человек", 1)
148
+ ])
149
+ ]));
150
+ }
151
+ }, ft = /* @__PURE__ */ M(gt, [["__scopeId", "data-v-58a64d57"]]);
152
+ const bt = { class: "pd-small flex-nowrap flex" }, vt = { class: "user-card__info" }, yt = { class: "user-card__name" }, $t = { class: "t-transp" }, wt = {
153
+ __name: "User",
154
+ props: {
155
+ user: {
156
+ type: Object,
157
+ required: !0
158
+ },
159
+ position: {
160
+ type: String,
161
+ required: !0
162
+ }
163
+ // Define other props here
164
+ },
165
+ setup(e) {
166
+ return (t, s) => (a(), r("div", bt, [
167
+ n("div", vt, [
168
+ n("p", yt, g(e.user.name ? e.user.name : "Безымянный"), 1),
169
+ n("p", $t, g(e.position), 1)
170
+ ])
171
+ ]));
172
+ }
173
+ }, ge = /* @__PURE__ */ M(wt, [["__scopeId", "data-v-a27accf5"]]);
174
+ const ie = (e) => (ae("data-v-6ef388c4"), e = e(), oe(), e), xt = { class: "radius-big o-hidden cols-2-1_3" }, kt = { class: "pd-medium w-100" }, Ct = /* @__PURE__ */ ie(() => /* @__PURE__ */ n("path", {
175
+ d: "M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z",
176
+ fill: "black"
177
+ }, null, -1)), Ot = [
178
+ Ct
179
+ ], Lt = ["innerHTML"], St = ["innerHTML"], zt = { class: "pd-small flex-v-center flex-nowrap flex" }, Mt = /* @__PURE__ */ ie(() => /* @__PURE__ */ n("h5", { class: "w-100" }, "Contacts ", -1)), Pt = { class: "mn-r-small" }, At = /* @__PURE__ */ ie(() => /* @__PURE__ */ n("svg", {
180
+ width: "14",
181
+ height: "9",
182
+ viewBox: "0 0 14 9",
183
+ fill: "none",
184
+ xmlns: "http://www.w3.org/2000/svg"
185
+ }, [
186
+ /* @__PURE__ */ n("path", {
187
+ "fill-rule": "evenodd",
188
+ "clip-rule": "evenodd",
189
+ d: "M12.4697 0.469727L13.5304 1.53039L7.00006 8.06072L0.469727 1.53039L1.53039 0.469727L7.00006 5.9394L12.4697 0.469727Z",
190
+ fill: "#8A8A8A"
191
+ })
192
+ ], -1)), Dt = { key: 0 }, Vt = { class: "pd-small flex-v-center flex-nowrap flex" }, Et = /* @__PURE__ */ ie(() => /* @__PURE__ */ n("h5", { class: "w-100" }, "Working Hours ", -1)), Ft = { class: "mn-r-small" }, Tt = /* @__PURE__ */ ie(() => /* @__PURE__ */ n("svg", {
193
+ width: "14",
194
+ height: "9",
195
+ viewBox: "0 0 14 9",
196
+ fill: "none",
197
+ xmlns: "http://www.w3.org/2000/svg"
198
+ }, [
199
+ /* @__PURE__ */ n("path", {
200
+ "fill-rule": "evenodd",
201
+ "clip-rule": "evenodd",
202
+ d: "M12.4697 0.469727L13.5304 1.53039L7.00006 8.06072L0.469727 1.53039L1.53039 0.469727L7.00006 5.9394L12.4697 0.469727Z",
203
+ fill: "#8A8A8A"
204
+ })
205
+ ], -1)), It = { key: 0 }, Ut = {
206
+ __name: "CardSpot",
207
+ props: {
208
+ spot: Object,
209
+ organization: Object
210
+ },
211
+ setup(e) {
212
+ const t = e;
213
+ return (s, i) => (a(), r("div", xt, [
214
+ m(ut, {
215
+ location: { lat: e.spot.location.coordinates[1], lng: e.spot.location.coordinates[0] },
216
+ class: ""
217
+ }, null, 8, ["location"]),
218
+ n("div", kt, [
219
+ (a(), r("svg", {
220
+ onClick: i[0] || (i[0] = (l) => s.$router.push(`/organizations/${t.organization._id}/spots/${e.spot._id}/edit`)),
221
+ class: "i-regular pos-absolute pos-r-0 pos-t-0 t-transp",
222
+ width: "652",
223
+ height: "652",
224
+ viewBox: "0 0 652 652",
225
+ fill: "none",
226
+ xmlns: "http://www.w3.org/2000/svg"
227
+ }, Ot)),
228
+ n("h3", {
229
+ onClick: i[1] || (i[1] = (l) => s.$router.push(`/app/organization/${t.organization._id}/spots/${e.spot._id}`)),
230
+ class: "mn-small w-100",
231
+ innerHTML: e.spot.profile.name
232
+ }, null, 8, Lt),
233
+ n("p", {
234
+ onClick: i[2] || (i[2] = (l) => s.$router.push(`/app/organization/${t.organization._id}/spots/${e.spot._id}`)),
235
+ class: "mn-small p-big w-100",
236
+ innerHTML: e.spot.address
237
+ }, null, 8, St),
238
+ m(q, { class: "radius-small o-hidden br-1px br-solid br-grey mn-thin" }, {
239
+ header: y(() => [
240
+ n("div", zt, [
241
+ Mt,
242
+ n("p", Pt, g(e.spot.members.length) + " человек", 1),
243
+ At
244
+ ])
245
+ ]),
246
+ content: y(() => [
247
+ n("ul", null, [
248
+ e.spot.members.length < 1 ? (a(), r("li", Dt, "В отделе еще нет участников")) : f("", !0),
249
+ (a(!0), r(k, null, C(e.spot.members, (l, o) => (a(), b(ge, {
250
+ class: "br-b br-solid br-grey",
251
+ key: o,
252
+ user: l.user,
253
+ position: l.position,
254
+ onClick: (p) => s.$router.push(`/app/profile/${l.user._id}`)
255
+ }, null, 8, ["user", "position", "onClick"]))), 128))
256
+ ])
257
+ ]),
258
+ _: 1
259
+ }),
260
+ m(q, { class: "radius-small o-hidden br-1px br-solid br-grey mn-thin" }, {
261
+ header: y(() => [
262
+ n("div", Vt, [
263
+ Et,
264
+ n("p", Ft, g(e.spot.subspots ? e.spot.subspots.length : 0) + " отделов", 1),
265
+ Tt
266
+ ])
267
+ ]),
268
+ content: y(() => [
269
+ n("ul", null, [
270
+ e.spot.subspots.length < 1 ? (a(), r("li", It, "В отделе еще нет подотделов")) : f("", !0),
271
+ (a(!0), r(k, null, C(e.spot.subspots, (l, o) => (a(), b(ft, {
272
+ onClick: (p) => s.$router.push(`/app/organization/spots/${l._id}`),
273
+ key: o,
274
+ class: "br-b br-solid br-grey",
275
+ spot: l
276
+ }, null, 8, ["onClick", "spot"]))), 128))
277
+ ])
278
+ ]),
279
+ _: 1
280
+ })
281
+ ])
282
+ ]));
283
+ }
284
+ }, Bt = /* @__PURE__ */ M(Ut, [["__scopeId", "data-v-6ef388c4"]]), G = he.create({ baseURL: process.env.API_URL, withCredentials: !0 });
285
+ G.defaults.withCredentials = !0;
286
+ const _ = pe({
287
+ spots: [],
288
+ spot: {
289
+ organization: "",
290
+ profile: {
291
+ photo: "",
292
+ name: "",
293
+ description: "",
294
+ categories: []
295
+ },
296
+ address: "",
297
+ location: {
298
+ lat: null,
299
+ lng: null
300
+ },
301
+ worktime: [],
302
+ delivery: [],
303
+ payment: [],
304
+ members: [],
305
+ subspots: []
306
+ },
307
+ error: null
308
+ }), R = {
309
+ async readOne(e) {
310
+ await G.get(`/api/spots/get/${e}`).then((t) => {
311
+ _.spot = t.data, _.error = null;
312
+ }).catch((t) => {
313
+ L(t);
314
+ });
315
+ },
316
+ async read(e) {
317
+ await G.get(`/api/spots/${e}`).then((t) => {
318
+ console.log("Response:", t), _.spots = t.data, _.error = null;
319
+ }).catch((t) => {
320
+ L(t);
321
+ });
322
+ },
323
+ async create(e, t) {
324
+ await G.post(`/api/spots/${e}/create`, t).then((s) => {
325
+ _.error = null, _.spot = s.data;
326
+ }).catch((s) => {
327
+ L(s);
328
+ });
329
+ },
330
+ async update(e, t) {
331
+ await G.post(`/api/spots/${e}/update`, t).then(() => {
332
+ _.error = null;
333
+ }).catch((s) => {
334
+ L(s);
335
+ });
336
+ },
337
+ async delete(e, t) {
338
+ await G.delete(`/api/spots/${e}/delete`, { data: { _id: t } }).then(() => {
339
+ _.error = null;
340
+ }).catch((s) => {
341
+ L(s);
342
+ });
343
+ }
344
+ };
345
+ H(_, (e, t) => {
346
+ });
347
+ const jt = {
348
+ __name: "Feed",
349
+ props: {
350
+ organization: Object,
351
+ units: Array,
352
+ memberships: Array
353
+ },
354
+ async setup(e) {
355
+ let t, s;
356
+ const i = e;
357
+ w("spots"), [t, s] = ee(() => R.read(i.organization._id)), await t, s();
358
+ const l = N(() => {
359
+ const o = _.spots, p = o.flatMap(
360
+ (c) => c.subspots.map((d) => d._id)
361
+ );
362
+ return o.filter(
363
+ (c) => !p.includes(c._id)
364
+ );
365
+ });
366
+ return (o, p) => (a(), b(F, { name: "slide-fade" }, {
367
+ default: y(() => [
368
+ n("div", null, [
369
+ $(l).length < 1 ? (a(), b(_e, {
370
+ key: 0,
371
+ title: "You don't have any spots yet.",
372
+ description: "Add spots to your hub.",
373
+ action: "Add spot",
374
+ callback: () => o.$router.push(`/spots/${i.organization._id}/spots/create`)
375
+ }, null, 8, ["callback"])) : f("", !0),
376
+ n("div", null, [
377
+ (a(!0), r(k, null, C($(l), (c, d) => (a(), b(Bt, {
378
+ key: d,
379
+ spot: c,
380
+ organization: e.organization,
381
+ class: "radius-big bg-grey mn-thin"
382
+ }, null, 8, ["spot", "organization"]))), 128)),
383
+ $(l).length > 0 && T.user._id === e.organization.owner ? (a(), r("button", {
384
+ key: 0,
385
+ onClick: p[0] || (p[0] = (c) => o.$router.push(`/spots/${i.organization._id}/spots/create`)),
386
+ class: "mn-thin button w-100"
387
+ }, " Add spot ")) : f("", !0)
388
+ ])
389
+ ])
390
+ ]),
391
+ _: 1
392
+ }));
393
+ }
394
+ }, Rt = { class: "mn-small w-100" }, qt = ["href"], Nt = /* @__PURE__ */ n("span", { class: "t-semi uppercase" }, "Website", -1), Ht = [
395
+ Nt
396
+ ], Zt = ["href"], Kt = /* @__PURE__ */ n("span", { class: "t-semi uppercase" }, "Phone", -1), Gt = [
397
+ Kt
398
+ ], Yt = ["href"], Wt = /* @__PURE__ */ n("span", { class: "t-semi uppercase" }, "Email", -1), Jt = [
399
+ Wt
400
+ ], Qt = ["href"], Xt = /* @__PURE__ */ n("span", { class: "t-semi uppercase" }, "Address", -1), es = [
401
+ Xt
402
+ ], qi = {
403
+ __name: "Contacts",
404
+ props: {
405
+ website: String,
406
+ phone: String,
407
+ email: String,
408
+ address: String
409
+ },
410
+ setup(e) {
411
+ const t = e, s = N(() => t.website ? !t.website.startsWith("http://") && !t.website.startsWith("https://") ? `http://${t.website}` : t.website : null), i = N(() => t.address ? encodeURIComponent(t.address) : null);
412
+ return (l, o) => (a(), r("div", Rt, [
413
+ $(s) ? (a(), r("a", {
414
+ key: 0,
415
+ href: $(s),
416
+ target: "_blank",
417
+ class: "w-100 br-2px br-solid br-grey radius-small pd-small flex-v-center flex-nowrap flex"
418
+ }, Ht, 8, qt)) : f("", !0),
419
+ t.phone ? (a(), r("a", {
420
+ key: 1,
421
+ href: `tel:${t.phone}`,
422
+ class: "w-100 br-2px br-solid br-grey radius-small pd-small flex-v-center flex-nowrap flex"
423
+ }, Gt, 8, Zt)) : f("", !0),
424
+ t.email ? (a(), r("a", {
425
+ key: 2,
426
+ href: `mailto:${t.email}`,
427
+ target: "_blank",
428
+ class: "w-100 br-2px br-solid br-grey radius-small pd-small flex-v-center flex-nowrap flex"
429
+ }, Jt, 8, Yt)) : f("", !0),
430
+ $(i) ? (a(), r("a", {
431
+ key: 3,
432
+ href: `https://www.google.com/maps/search/?api=1&query=${$(i)}`,
433
+ target: "_blank",
434
+ class: "w-100 br-2px br-solid br-grey radius-small pd-small flex-v-center flex-nowrap flex"
435
+ }, es, 8, Qt)) : f("", !0)
436
+ ]));
437
+ }
438
+ }, ts = { class: "w-100 mn-small star-container flex-v-center flex" }, ss = { class: "p-big t-semi mn-r-small" }, ns = /* @__PURE__ */ n("path", {
439
+ fill: "#00FF88",
440
+ d: "M62.2406 5.85971L75.413 32.6098L105.203 36.8654C110.472 37.676 112.498 44.3636 108.648 48.0113L87.1668 68.8844L92.2331 98.2689C93.2464 103.741 87.5721 107.591 82.9111 105.159L56.3637 91.3788L29.8163 105.159C25.1553 107.794 19.4811 103.741 20.4944 98.4716L25.5607 68.8844L4.07956 48.0113C0.22917 44.3636 2.25569 37.676 7.52464 36.8654L37.3145 32.6098L50.4868 5.85971C52.9186 0.996063 59.8088 0.996063 62.2406 5.85971Z"
441
+ }, null, -1), as = [
442
+ ns
443
+ ], os = { class: "" }, Ni = {
444
+ __name: "Rating",
445
+ props: {
446
+ rating: {
447
+ type: Number,
448
+ required: !0
449
+ },
450
+ amount: {
451
+ type: Number,
452
+ required: !0
453
+ }
454
+ },
455
+ setup(e) {
456
+ return (t, s) => (a(), r("section", null, [
457
+ n("div", ts, [
458
+ n("span", ss, g(e.rating), 1),
459
+ (a(), r(k, null, C(5, (i) => n("svg", {
460
+ class: ne(["i-semi mn-r-small", { "t-transp": i > e.rating }]),
461
+ width: "113",
462
+ height: "108",
463
+ viewBox: "0 0 113 108",
464
+ fill: "none",
465
+ xmlns: "http://www.w3.org/2000/svg"
466
+ }, as, 2)), 64))
467
+ ]),
468
+ n("p", os, "Based on " + g(e.amount) + " reviews", 1)
469
+ ]));
470
+ }
471
+ }, is = { class: "t-center flex-center flex-column flex pd-medium radius-big bg-grey" }, ls = { class: "bg-black pd-thin radius-small" }, rs = /* @__PURE__ */ n("button", { class: "w-100 bg-black br-solid br-1px br-white-transp-20 t-white button-small button" }, " Report ", -1), ds = ["src"], cs = { class: "mn-thin" }, us = { class: "mn-medium p-big" }, ps = { class: "flex-center flex-wrap gap-thin flex mn-semi" }, ms = { class: "pd-thin radius-small t-semi uppercase t-black bg-main p-medium" }, hs = { class: "t-semi mn-small" }, _s = {
472
+ key: 5,
473
+ class: "mn-t-small mn-thin"
474
+ }, gs = {
475
+ __name: "DetailsTab",
476
+ props: {
477
+ organization: Object,
478
+ user: Object
479
+ },
480
+ setup(e) {
481
+ const t = B(), s = ({ membership: i, status: l, target: o }, p, c) => {
482
+ We.handleMembershipUpdate(x.current, i, l, o, p, c);
483
+ };
484
+ return (i, l) => (a(), b(F, { name: "slide-fade" }, {
485
+ default: y(() => [
486
+ n("section", is, [
487
+ e.user._id !== e.organization.owner ? (a(), b(qe, {
488
+ key: 0,
489
+ label: "...",
490
+ align: "right",
491
+ class: "cursor-pointer pos-absolute pos-r-0 pos-t-0 pd-thin radius-extra"
492
+ }, {
493
+ default: y(() => [
494
+ n("section", ls, [
495
+ m(Ne, {
496
+ user: e.user._id,
497
+ type: "organization",
498
+ target: e.organization._id,
499
+ text: "Report",
500
+ class: "w-100"
501
+ }, {
502
+ default: y(() => [
503
+ rs
504
+ ]),
505
+ _: 1
506
+ }, 8, ["user", "target"]),
507
+ e.user._id && e.user._id !== e.organization.owner ? (a(), b(we, {
508
+ key: 0,
509
+ user: e.user._id,
510
+ type: "organization",
511
+ role: "blocked",
512
+ target: e.organization._id,
513
+ status: e.organization.isBlocked,
514
+ text: { create: "Block", remove: "Unblock" },
515
+ onUpdateMembership: l[0] || (l[0] = (o) => s(o, "isBlocked")),
516
+ class: "t-white mn-t-thin bg-red"
517
+ }, null, 8, ["user", "target", "status"])) : f("", !0)
518
+ ])
519
+ ]),
520
+ _: 1
521
+ }, 8, ["label"])) : f("", !0),
522
+ e.user._id === e.organization.owner ? (a(), b(Ge, {
523
+ key: 1,
524
+ onClick: l[1] || (l[1] = (o) => i.$router.push({
525
+ name: "Organization Edit",
526
+ params: {
527
+ _id: e.organization._id
528
+ }
529
+ })),
530
+ class: "pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
531
+ })) : f("", !0),
532
+ e.organization.profile.photo ? (a(), r("img", {
533
+ key: 2,
534
+ src: (i.FILE_SERVER_URL || "") + e.organization.profile.photo,
535
+ class: "radius-big bg-grey flex-center flex mn-small i-extra"
536
+ }, null, 8, ds)) : (a(), b(He, {
537
+ key: 3,
538
+ class: "radius-medium mn-small i-extra"
539
+ })),
540
+ n("h1", cs, g(e.organization.profile.name), 1),
541
+ n("p", us, [
542
+ m(Ze, {
543
+ text: e.organization.profile.description ? e.organization.profile.description : "",
544
+ maxLen: 240
545
+ }, null, 8, ["text"])
546
+ ]),
547
+ n("div", ps, [
548
+ (a(!0), r(k, null, C(e.organization.profile.tags, (o) => (a(), r("span", ms, g(o), 1))), 256))
549
+ ]),
550
+ n("p", hs, " 👨‍👨‍👧‍👧 " + g(e.organization.numberOfSubscribers) + " followers ", 1),
551
+ e.user._id && $(t).params._id && $(t).params._id !== e.user._id && e.organization.owner !== e.user._id ? (a(), b(we, {
552
+ key: 4,
553
+ user: e.user._id,
554
+ type: "organization",
555
+ role: "subscriber",
556
+ target: e.organization._id,
557
+ status: e.organization.isSubscriber,
558
+ text: { create: "Follow", remove: "Unfollow" },
559
+ onUpdateMembership: l[2] || (l[2] = (o) => s(o, "isSubscriber", "numberOfSubscribers")),
560
+ class: "w-min mn-medium mn-r-auto mn-l-auto"
561
+ }, null, 8, ["user", "target", "status"])) : f("", !0),
562
+ Object.values(e.organization.socials).some((o) => o) ? (a(), r("h4", _s, " Find us in socials ")) : f("", !0),
563
+ m(Ye, {
564
+ telegram: e.organization.socials.telegram,
565
+ facebook: e.organization.socials.facebook,
566
+ instagram: e.organization.socials.instagram,
567
+ twitter: e.organization.socials.twitter
568
+ }, null, 8, ["telegram", "facebook", "instagram", "twitter"])
569
+ ])
570
+ ]),
571
+ _: 1
572
+ }));
573
+ }
574
+ };
575
+ const fs = { class: "pd-medium bg-grey radius-big" }, bs = { class: "mn-small" }, vs = /* @__PURE__ */ n("hr", { class: "mn-small" }, null, -1), ys = { class: "mn-r-auto t-medium p-big" }, $s = /* @__PURE__ */ n("hr", { class: "mn-small" }, null, -1), ws = { class: "mn-r-auto t-medium p-big" }, xs = /* @__PURE__ */ n("hr", { class: "mn-small" }, null, -1), ks = /* @__PURE__ */ n("p", { class: "mn-r-auto t-medium p-big" }, "Delivery", -1), Cs = /* @__PURE__ */ n("hr", { class: "mn-semi" }, null, -1), Os = {
576
+ __name: "FilterProducts",
577
+ props: {
578
+ selectedFilters: Object,
579
+ prices: {
580
+ type: Array,
581
+ default: () => [
582
+ { label: "Under $5", value: { min: 0, max: 5 } },
583
+ { label: "$5 to $10", value: { min: 5, max: 10 } },
584
+ { label: "$10 to $20", value: { min: 10, max: 20 } },
585
+ { label: "$20 and above", value: { min: 20, max: 1 / 0 } }
586
+ ]
587
+ },
588
+ deliveryOptions: {
589
+ type: Array,
590
+ default: () => [
591
+ { label: "Pickup", value: { min: 0, max: 25 } },
592
+ { label: "Courier", value: { min: 25, max: 50 } },
593
+ { label: "Post", value: { min: 50, max: 100 } }
594
+ ]
595
+ }
596
+ },
597
+ emits: ["updateFilters", "resetFilters"],
598
+ async setup(e, { emit: t }) {
599
+ let s, i;
600
+ [s, i] = ee(() => Je.fetchCategories()), await s, i();
601
+ let l = w({
602
+ categories: [],
603
+ prices: [],
604
+ delivery: [],
605
+ extra: []
606
+ });
607
+ const o = (u, h) => {
608
+ t("updateFilters", { filterType: u, value: h });
609
+ }, p = () => {
610
+ t("resetFilters");
611
+ }, c = {
612
+ locale: "en",
613
+ messages: {
614
+ en: {
615
+ categoriesTitle: "Category",
616
+ categories: [],
617
+ filters: {
618
+ title: "Filters",
619
+ price: {
620
+ title: "Price",
621
+ from: "From",
622
+ to: "To"
623
+ },
624
+ filters: [],
625
+ reset: "Reset Filters"
626
+ }
627
+ },
628
+ ru: {
629
+ categoriesTitle: "Категория",
630
+ categories: [],
631
+ filters: {
632
+ title: "Фильтры",
633
+ price: {
634
+ title: "Цена",
635
+ from: "От",
636
+ to: "До"
637
+ },
638
+ filters: [],
639
+ reset: "Сбросить фильтры"
640
+ }
641
+ }
642
+ }
643
+ };
644
+ xe.all.forEach((u) => {
645
+ u.localization.forEach((h) => {
646
+ c.messages[h.locale].categories.push(h.text);
647
+ });
648
+ });
649
+ const { t: d } = Be(c);
650
+ return (u, h) => (a(), r("div", fs, [
651
+ n("h3", bs, g($(d)("filters.title")), 1),
652
+ vs,
653
+ m(q, {
654
+ class: "radius-small o-hidden br-1px br-solid br-grey mn-small",
655
+ status: !0
656
+ }, {
657
+ header: y(() => [
658
+ n("p", ys, g($(d)("categoriesTitle")), 1)
659
+ ]),
660
+ content: y(() => [
661
+ (a(!0), r(k, null, C(xe.all, (v, O) => (a(), b(I, {
662
+ key: O,
663
+ label: v.name,
664
+ value: v.url,
665
+ class: "w-100 mn-t-small mn-small bg-white radius-small pd-small",
666
+ radio: $(l).categories,
667
+ onChange: (D) => o("categories", v.url)
668
+ }, null, 8, ["label", "value", "radio", "onChange"]))), 128))
669
+ ]),
670
+ _: 1
671
+ }),
672
+ $s,
673
+ m(q, {
674
+ class: "radius-small o-hidden br-1px br-solid br-grey mn-small",
675
+ status: !1
676
+ }, {
677
+ header: y(() => [
678
+ n("p", ws, g($(d)("filters.price.title")), 1)
679
+ ]),
680
+ content: y(() => [
681
+ (a(!0), r(k, null, C(e.prices, (v, O) => (a(), b(I, {
682
+ key: O,
683
+ label: v.label,
684
+ value: v.value,
685
+ class: "w-100 mn-t-small bg-white radius-small pd-small",
686
+ radio: $(l).prices,
687
+ onChange: (D) => o("prices", v.value)
688
+ }, null, 8, ["label", "value", "radio", "onChange"]))), 128))
689
+ ]),
690
+ _: 1
691
+ }),
692
+ xs,
693
+ m(q, {
694
+ class: "radius-small o-hidden br-1px br-solid br-grey mn-small",
695
+ status: !1
696
+ }, {
697
+ header: y(() => [
698
+ ks
699
+ ]),
700
+ content: y(() => [
701
+ (a(!0), r(k, null, C(e.deliveryOptions, (v, O) => (a(), b(I, {
702
+ key: O,
703
+ label: v.label,
704
+ value: v.value,
705
+ class: "w-100 mn-t-small bg-white radius-small pd-small",
706
+ radio: $(l).delivery,
707
+ onChange: (D) => o("delivery", v.value)
708
+ }, null, 8, ["label", "value", "radio", "onChange"]))), 128))
709
+ ]),
710
+ _: 1
711
+ }),
712
+ Cs,
713
+ n("button", {
714
+ onClick: p,
715
+ class: "bg-main w-100 button"
716
+ }, g($(d)("filters.reset")), 1)
717
+ ]));
718
+ }
719
+ }, Ls = { class: "cols-2-1_3 gap-thin pd-thin" }, Ss = {
720
+ __name: "Products",
721
+ setup(e) {
722
+ const t = B();
723
+ return j(), (s, i) => (a(), r("div", Ls, [
724
+ m(Os),
725
+ m(Xe, {
726
+ states: {
727
+ empty: {
728
+ title: "No Products Found",
729
+ description: "Currently, there are no products available."
730
+ }
731
+ },
732
+ store: {
733
+ read: (l) => tt.read(l),
734
+ state: st
735
+ },
736
+ options: {
737
+ limit: 15,
738
+ organization: $(t).params._id
739
+ // user: user
740
+ }
741
+ }, {
742
+ default: y(({
743
+ items: l
744
+ }) => [
745
+ (a(!0), r(k, null, C(l, (o) => (a(), b(et, {
746
+ key: o._id,
747
+ product: o,
748
+ onClick: (p) => s.$router.push({
749
+ name: "Product Organization",
750
+ params: {
751
+ _id: $(t).params._id,
752
+ product: o._id
753
+ }
754
+ })
755
+ }, null, 8, ["product", "onClick"]))), 128))
756
+ ]),
757
+ _: 1
758
+ }, 8, ["states", "store", "options"])
759
+ ]));
760
+ }
761
+ };
762
+ const zs = { class: "pd-small flex-nowrap flex" }, Ms = { class: "user-card__info" }, Ps = { class: "user-card__name" }, As = { class: "user-card__position" }, Ds = {
763
+ __name: "DepartmentSub",
764
+ props: {
765
+ department: {
766
+ type: Object,
767
+ required: !0
768
+ }
769
+ // Define other props here
770
+ },
771
+ setup(e) {
772
+ return (t, s) => (a(), r("div", zs, [
773
+ n("div", Ms, [
774
+ n("p", Ps, g(e.department.name ? e.department.name : "Безымянный"), 1),
775
+ n("p", As, g(e.department.members ? e.department.members.length : "0") + " человек", 1)
776
+ ])
777
+ ]));
778
+ }
779
+ }, Ve = /* @__PURE__ */ M(Ds, [["__scopeId", "data-v-d65b1483"]]);
780
+ const le = (e) => (ae("data-v-02b80617"), e = e(), oe(), e), Vs = { class: "radius-big o-hidden cols-2-1_3" }, Es = { class: "pd-medium w-100" }, Fs = /* @__PURE__ */ le(() => /* @__PURE__ */ n("path", {
781
+ d: "M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z",
782
+ fill: "black"
783
+ }, null, -1)), Ts = [
784
+ Fs
785
+ ], Is = ["innerHTML"], Us = { class: "pd-small flex-v-center flex-nowrap flex" }, Bs = /* @__PURE__ */ le(() => /* @__PURE__ */ n("h5", { class: "w-100" }, "Contacts ", -1)), js = { class: "mn-r-small" }, Rs = /* @__PURE__ */ le(() => /* @__PURE__ */ n("svg", {
786
+ width: "14",
787
+ height: "9",
788
+ viewBox: "0 0 14 9",
789
+ fill: "none",
790
+ xmlns: "http://www.w3.org/2000/svg"
791
+ }, [
792
+ /* @__PURE__ */ n("path", {
793
+ "fill-rule": "evenodd",
794
+ "clip-rule": "evenodd",
795
+ d: "M12.4697 0.469727L13.5304 1.53039L7.00006 8.06072L0.469727 1.53039L1.53039 0.469727L7.00006 5.9394L12.4697 0.469727Z",
796
+ fill: "#8A8A8A"
797
+ })
798
+ ], -1)), qs = { key: 0 }, Ns = { class: "pd-small flex-v-center flex-nowrap flex" }, Hs = /* @__PURE__ */ le(() => /* @__PURE__ */ n("h5", { class: "w-100" }, "Working Hours ", -1)), Zs = { class: "mn-r-small" }, Ks = /* @__PURE__ */ le(() => /* @__PURE__ */ n("svg", {
799
+ width: "14",
800
+ height: "9",
801
+ viewBox: "0 0 14 9",
802
+ fill: "none",
803
+ xmlns: "http://www.w3.org/2000/svg"
804
+ }, [
805
+ /* @__PURE__ */ n("path", {
806
+ "fill-rule": "evenodd",
807
+ "clip-rule": "evenodd",
808
+ d: "M12.4697 0.469727L13.5304 1.53039L7.00006 8.06072L0.469727 1.53039L1.53039 0.469727L7.00006 5.9394L12.4697 0.469727Z",
809
+ fill: "#8A8A8A"
810
+ })
811
+ ], -1)), Gs = { key: 0 }, Ys = {
812
+ __name: "CardDepartment",
813
+ props: {
814
+ department: Object,
815
+ organization: Object
816
+ },
817
+ setup(e) {
818
+ const t = e;
819
+ return (s, i) => (a(), r("div", Vs, [
820
+ n("div", Es, [
821
+ (a(), r("svg", {
822
+ onClick: i[0] || (i[0] = (l) => s.$router.push(`/app/organization/${t.organization._id}/departments/${e.department._id}/edit`)),
823
+ class: "i-regular pos-absolute pos-r-0 pos-t-0 t-transp",
824
+ width: "652",
825
+ height: "652",
826
+ viewBox: "0 0 652 652",
827
+ fill: "none",
828
+ xmlns: "http://www.w3.org/2000/svg"
829
+ }, Ts)),
830
+ n("h3", {
831
+ onClick: i[1] || (i[1] = (l) => s.$router.push(`/app/organization/${t.organization._id}/departments/${e.department._id}`)),
832
+ class: "mn-small w-100",
833
+ innerHTML: e.department.profile.name
834
+ }, null, 8, Is),
835
+ m(q, { class: "radius-small o-hidden br-1px br-solid br-grey mn-thin" }, {
836
+ header: y(() => [
837
+ n("div", Us, [
838
+ Bs,
839
+ n("p", js, g(e.department.members.length) + " человек", 1),
840
+ Rs
841
+ ])
842
+ ]),
843
+ content: y(() => [
844
+ n("ul", null, [
845
+ e.department.members.length < 1 ? (a(), r("li", qs, "В отделе еще нет участников")) : f("", !0),
846
+ (a(!0), r(k, null, C(e.department.members, (l, o) => (a(), b(ge, {
847
+ class: "br-b br-solid br-grey",
848
+ key: o,
849
+ user: l.user,
850
+ position: l.position,
851
+ onClick: (p) => s.$router.push(`/app/profile/${l.user._id}`)
852
+ }, null, 8, ["user", "position", "onClick"]))), 128))
853
+ ])
854
+ ]),
855
+ _: 1
856
+ }),
857
+ m(q, { class: "radius-small o-hidden br-1px br-solid br-grey mn-thin" }, {
858
+ header: y(() => [
859
+ n("div", Ns, [
860
+ Hs,
861
+ n("p", Zs, g(e.department.subdepartments ? e.department.subdepartments.length : 0) + " отделов", 1),
862
+ Ks
863
+ ])
864
+ ]),
865
+ content: y(() => [
866
+ n("ul", null, [
867
+ e.department.subdepartments.length < 1 ? (a(), r("li", Gs, "В отделе еще нет подотделов")) : f("", !0),
868
+ (a(!0), r(k, null, C(e.department.subdepartments, (l, o) => (a(), b(Ve, {
869
+ onClick: (p) => s.$router.push(`/app/organization/departments/${l._id}`),
870
+ key: o,
871
+ class: "br-b br-solid br-grey",
872
+ department: l
873
+ }, null, 8, ["onClick", "department"]))), 128))
874
+ ])
875
+ ]),
876
+ _: 1
877
+ })
878
+ ])
879
+ ]));
880
+ }
881
+ }, Ws = /* @__PURE__ */ M(Ys, [["__scopeId", "data-v-02b80617"]]), Y = he.create({ baseURL: process.env.API_URL, withCredentials: !0 });
882
+ Y.defaults.withCredentials = !0;
883
+ const A = pe({
884
+ departments: [],
885
+ department: {
886
+ organization: "",
887
+ profile: {
888
+ photo: "",
889
+ name: "",
890
+ description: "",
891
+ categories: []
892
+ },
893
+ address: "",
894
+ location: {
895
+ lat: null,
896
+ lng: null
897
+ },
898
+ worktime: [],
899
+ delivery: [],
900
+ payment: [],
901
+ members: [],
902
+ subdepartments: []
903
+ },
904
+ error: null
905
+ }), Ee = {
906
+ async readOne(e) {
907
+ await Y.get(`/api/departments/get/${e}`).then((t) => {
908
+ A.department = t.data, A.error = null;
909
+ }).catch((t) => {
910
+ L(t);
911
+ });
912
+ },
913
+ async read(e) {
914
+ await Y.get(`/api/departments/${e}`).then((t) => {
915
+ console.log("Response:", t), A.departments = t.data, A.error = null;
916
+ }).catch((t) => {
917
+ L(t);
918
+ });
919
+ },
920
+ async create(e, t) {
921
+ await Y.post(`/api/departments/${e}/create`, t).then((s) => {
922
+ A.error = null, A.department = s.data;
923
+ }).catch((s) => {
924
+ L(s);
925
+ });
926
+ },
927
+ async update(e, t) {
928
+ await Y.post(`/api/departments/${e}/update`, t).then(() => {
929
+ A.error = null;
930
+ }).catch((s) => {
931
+ L(s);
932
+ });
933
+ },
934
+ async delete(e, t) {
935
+ await Y.delete(`/api/departments/${e}/delete`, { data: { _id: t } }).then(() => {
936
+ A.error = null;
937
+ }).catch((s) => {
938
+ L(s);
939
+ });
940
+ }
941
+ };
942
+ H(A, (e, t) => {
943
+ });
944
+ const Hi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
945
+ __proto__: null,
946
+ actions: Ee,
947
+ state: A
948
+ }, Symbol.toStringTag, { value: "Module" })), Zi = {
949
+ __name: "FeedDepartments",
950
+ props: {
951
+ organization: Object,
952
+ units: Array,
953
+ memberships: Array
954
+ },
955
+ async setup(e) {
956
+ let t, s;
957
+ const i = e;
958
+ w("departments"), [t, s] = ee(() => Ee.read(i.organization._id)), await t, s();
959
+ const l = N(() => {
960
+ const o = A.departments, p = o.flatMap(
961
+ (c) => c.subdepartments.map((d) => d._id)
962
+ );
963
+ return o.filter(
964
+ (c) => !p.includes(c._id)
965
+ );
966
+ });
967
+ return (o, p) => (a(), b(F, { name: "slide-fade" }, {
968
+ default: y(() => [
969
+ n("div", null, [
970
+ $(l).length < 1 ? (a(), b(_e, {
971
+ key: 0,
972
+ title: "You don't have any spots yet.",
973
+ description: "Add spots to your hub.",
974
+ action: "Add spot",
975
+ callback: () => o.$router.push(`/organization/${i.organization._id}/departments/create`)
976
+ }, null, 8, ["callback"])) : f("", !0),
977
+ n("div", null, [
978
+ (a(!0), r(k, null, C($(l), (c, d) => (a(), b(Ws, {
979
+ key: d,
980
+ department: c,
981
+ organization: e.organization,
982
+ class: "radius-big bg-grey mn-thin"
983
+ }, null, 8, ["department", "organization"]))), 128)),
984
+ $(l).length > 0 && T.user._id === e.organization.owner ? (a(), r("button", {
985
+ key: 0,
986
+ onClick: p[0] || (p[0] = (c) => o.$router.push(`/organization/${i.organization._id}/departments/create`)),
987
+ class: "mn-thin button w-100"
988
+ }, " Add spot ")) : f("", !0)
989
+ ])
990
+ ])
991
+ ]),
992
+ _: 1
993
+ }));
994
+ }
995
+ }, W = he.create({ baseURL: process.env.API_URL, withCredentials: !0 });
996
+ W.defaults.withCredentials = !0;
997
+ const U = pe({
998
+ invites: [],
999
+ invite: null,
1000
+ error: null
1001
+ }), Fe = {
1002
+ async read(e) {
1003
+ await W.get(`/api/invites/${e}`).then((t) => {
1004
+ U.invites = t.data, U.error = null;
1005
+ }).catch((t) => {
1006
+ L(t);
1007
+ });
1008
+ },
1009
+ async readOne(e) {
1010
+ await W.get(`/api/invites/get/${e}`).then((t) => {
1011
+ U.invite = t.data, T.user.phone = t.data.invitedPhone, T.user.email = t.data.invitedEmail;
1012
+ }).catch((t) => {
1013
+ L(t);
1014
+ });
1015
+ },
1016
+ async create(e, t) {
1017
+ await W.post(`/api/invites/${e}/create`, t).then(() => {
1018
+ U.error = null;
1019
+ }).catch((s) => {
1020
+ L(s);
1021
+ });
1022
+ },
1023
+ async update(e, t) {
1024
+ await W.put(`/api/invites/${e}/update`, t).then(() => {
1025
+ U.error = null;
1026
+ }).catch((s) => {
1027
+ L(s);
1028
+ });
1029
+ },
1030
+ async delete(e) {
1031
+ await W.delete(`/api/invites/${e}/delete`).then(() => {
1032
+ U.error = null;
1033
+ }).catch((t) => {
1034
+ L(t);
1035
+ });
1036
+ }
1037
+ };
1038
+ H(U, (e, t) => {
1039
+ });
1040
+ const Ki = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1041
+ __proto__: null,
1042
+ actions: Fe,
1043
+ state: U
1044
+ }, Symbol.toStringTag, { value: "Module" })), Js = { class: "mn-medium radius-medium pd-semi bg-white" }, Qs = /* @__PURE__ */ n("h3", { class: "mn-medium" }, "Добавить участников", -1), Xs = /* @__PURE__ */ n("p", { class: "mn-small t-transp p-medium" }, "Укажите email или телефон, чтобы отправить ссылку с приглашением:", -1), en = { class: "w-100 flex-nowrap flex" }, tn = {
1045
+ key: 0,
1046
+ class: "mn-r-medium flex-v-center flex"
1047
+ }, sn = ["onClick"], nn = /* @__PURE__ */ n("p", { class: "t-blue mn-r-small" }, "+ Добавить приглашение", -1), an = [
1048
+ nn
1049
+ ], on = /* @__PURE__ */ n("span", null, "Отправить приглашения ", -1), ln = {
1050
+ __name: "MembersAdd",
1051
+ props: {
1052
+ organization: Object
1053
+ },
1054
+ emits: ["send-invite"],
1055
+ setup(e, { emit: t }) {
1056
+ const s = e, i = w(null), l = w([{ contact: "", role: "" }]);
1057
+ function o() {
1058
+ l.value.push({ contact: "", role: "" });
1059
+ }
1060
+ function p(u) {
1061
+ l.value.splice(u, 1);
1062
+ }
1063
+ async function c(u) {
1064
+ await Fe.create(s.organization._id, l.value);
1065
+ }
1066
+ function d() {
1067
+ }
1068
+ return (u, h) => (a(), r("div", null, [
1069
+ n("section", Js, [
1070
+ Qs,
1071
+ Xs,
1072
+ (a(!0), r(k, null, C(l.value, (v, O) => (a(), r("div", {
1073
+ key: O,
1074
+ class: "br-1px br-solid br-grey flex radius-small mn-thin"
1075
+ }, [
1076
+ n("div", en, [
1077
+ m(E, {
1078
+ field: v.contact,
1079
+ "onUpdate:field": (D) => v.contact = D,
1080
+ placeholder: "Email или телефон",
1081
+ class: "w-100 bg-white",
1082
+ validation: i.value
1083
+ }, null, 8, ["field", "onUpdate:field", "validation"]),
1084
+ O > 0 ? (a(), r("div", tn, [
1085
+ n("button", {
1086
+ onClick: (D) => p(O),
1087
+ class: "button-small button"
1088
+ }, "×", 8, sn)
1089
+ ])) : f("", !0)
1090
+ ]),
1091
+ m(nt, {
1092
+ options: [
1093
+ { name: "Директор", value: "director" },
1094
+ { name: "Менеджер", value: "manager" },
1095
+ { name: "Сотрудник", value: "member" }
1096
+ ],
1097
+ prop: v,
1098
+ content: "role",
1099
+ placeholder: "Роль",
1100
+ size: "small",
1101
+ class: "w-80"
1102
+ }, null, 8, ["prop"])
1103
+ ]))), 128)),
1104
+ n("div", {
1105
+ onClick: o,
1106
+ class: "mn-small flex-v-center flex-nowrap flex"
1107
+ }, an),
1108
+ m(ce, {
1109
+ submit: u.a = () => c(U.invites),
1110
+ callback: d,
1111
+ class: "mn-t-medium"
1112
+ }, {
1113
+ default: y(() => [
1114
+ on
1115
+ ]),
1116
+ _: 1
1117
+ }, 8, ["submit"])
1118
+ ])
1119
+ ]));
1120
+ }
1121
+ }, rn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1122
+ __proto__: null,
1123
+ default: ln
1124
+ }, Symbol.toStringTag, { value: "Module" })), dn = { class: "mn-big radius-medium bg-white" }, cn = {
1125
+ key: 0,
1126
+ class: "pd-semi"
1127
+ }, un = { class: "br-grey br-1px br-solid radius-small flex-nowrap flex-v-center flex pd-medium" }, pn = { class: "w-100 mn-r-small" }, mn = { class: "t-transp" }, hn = {
1128
+ key: 0,
1129
+ class: "mn-l-medium flex-v-center flex"
1130
+ }, _n = ["onClick"], gn = {
1131
+ key: 1,
1132
+ class: "pd-semi"
1133
+ }, fn = { key: 0 }, bn = { class: "br-grey br-1px br-solid radius-small mn-thin flex-nowrap flex-v-center flex pd-medium" }, vn = { class: "w-100 mn-r-small" }, yn = { class: "t-transp" }, $n = { class: "mn-l-medium flex-v-center flex" }, wn = ["onClick"], Gi = {
1134
+ __name: "MembersList",
1135
+ props: {
1136
+ organization: Object,
1137
+ memberships: Array,
1138
+ invites: Array
1139
+ },
1140
+ emits: [["removeMember", "removeInvite"]],
1141
+ setup(e, { emit: t }) {
1142
+ const s = e, i = w("members");
1143
+ function l(p, c) {
1144
+ s.memberships.splice(p, 1), t("removeMember", c);
1145
+ }
1146
+ function o(p, c) {
1147
+ s.invites.splice(p, 1), t("removeInvite", c);
1148
+ }
1149
+ return (p, c) => (a(), r("section", dn, [
1150
+ m(Me, {
1151
+ selected: i.value,
1152
+ "onUpdate:selected": c[0] || (c[0] = (d) => i.value = d),
1153
+ class: "br-grey br-b br-solid radius-small",
1154
+ tabs: [
1155
+ { name: "Участники", value: "members" },
1156
+ { name: "Приглашения", value: "invites" }
1157
+ ]
1158
+ }, null, 8, ["selected"]),
1159
+ i.value === "members" ? (a(), r("div", cn, [
1160
+ (a(!0), r(k, null, C(e.memberships, (d, u) => (a(), r("div", un, [
1161
+ n("span", pn, g(d.user.email) + " " + g(d.user.phone), 1),
1162
+ n("span", mn, g(d.position), 1),
1163
+ d.position !== "Основатель" ? (a(), r("div", hn, [
1164
+ n("button", {
1165
+ onClick: (h) => l(u, d),
1166
+ class: "button-small button"
1167
+ }, "×", 8, _n)
1168
+ ])) : f("", !0)
1169
+ ]))), 256))
1170
+ ])) : f("", !0),
1171
+ i.value === "invites" ? (a(), r("div", gn, [
1172
+ e.invites.length < 1 ? (a(), r("span", fn, "В организации нет приглашений")) : f("", !0),
1173
+ (a(!0), r(k, null, C(e.invites, (d, u) => (a(), r("div", bn, [
1174
+ n("span", vn, g(d.invitedEmail) + " " + g(d.invitedPhone), 1),
1175
+ n("span", yn, g(d.status), 1),
1176
+ n("div", $n, [
1177
+ n("button", {
1178
+ onClick: (h) => o(u, d),
1179
+ class: "button-small button"
1180
+ }, "×", 8, wn)
1181
+ ])
1182
+ ]))), 256))
1183
+ ])) : f("", !0)
1184
+ ]));
1185
+ }
1186
+ };
1187
+ const xn = {
1188
+ key: 0,
1189
+ class: "pd-thin for-transition w-100"
1190
+ }, kn = /* @__PURE__ */ n("p", null, "34 members", -1), Cn = [
1191
+ kn
1192
+ ], On = { class: "pos-relative" }, Ln = { key: 0 }, Sn = {
1193
+ __name: "Organization",
1194
+ setup(e) {
1195
+ const t = j(), s = B();
1196
+ let i = s.query.tab ? s.query.tab : "events";
1197
+ const l = w(null);
1198
+ ue(async () => {
1199
+ l.value = await J.read({ _id: s.params._id, user: T.user._id }), await Pe.read(s.params._id);
1200
+ });
1201
+ const o = w(i);
1202
+ return s.query.tab = o.value, H(o, (p) => {
1203
+ t.replace({ query: { ...s.query, tab: p } });
1204
+ }), (p, c) => l.value ? (a(), r("div", xn, [
1205
+ m(gs, {
1206
+ organization: x.current,
1207
+ user: T.user,
1208
+ class: "mn-semi"
1209
+ }, null, 8, ["organization", "user"]),
1210
+ n("section", {
1211
+ onClick: c[0] || (c[0] = (d) => $(t).push({
1212
+ name: "Organization Members",
1213
+ params: {
1214
+ _id: $(s).params._id
1215
+ }
1216
+ })),
1217
+ class: "mn-semi bg-grey radius-big pd-medium"
1218
+ }, Cn),
1219
+ m(Me, {
1220
+ selected: o.value,
1221
+ "onUpdate:selected": c[1] || (c[1] = (d) => o.value = d),
1222
+ tabs: [
1223
+ { name: "Community", value: "community" },
1224
+ { name: "Products", value: "products" },
1225
+ { name: "Events", value: "events" },
1226
+ { name: "Spots", value: "spots" }
1227
+ ],
1228
+ class: "mn-small o-hidden h5 radius-big bg-grey"
1229
+ }, null, 8, ["selected"]),
1230
+ n("div", On, [
1231
+ m(F, { name: "slide-fade" }, {
1232
+ default: y(() => [
1233
+ o.value === "community" ? (a(), b(Re, {
1234
+ key: 0,
1235
+ user: T.user._id,
1236
+ owner: $(s).params._id
1237
+ }, null, 8, ["user", "owner"])) : f("", !0)
1238
+ ]),
1239
+ _: 1
1240
+ }),
1241
+ m(F, { name: "slide-fade" }, {
1242
+ default: y(() => [
1243
+ o.value === "events" ? (a(), b(je, {
1244
+ key: 0,
1245
+ user: T.user._id,
1246
+ owner: $(s).params._id,
1247
+ sortOrder: "asc"
1248
+ }, null, 8, ["user", "owner"])) : f("", !0)
1249
+ ]),
1250
+ _: 1
1251
+ }),
1252
+ m(F, { name: "slide-fade" }, {
1253
+ default: y(() => [
1254
+ o.value === "products" ? (a(), b(Ss, {
1255
+ key: 0,
1256
+ organization: x.current
1257
+ }, null, 8, ["organization"])) : f("", !0)
1258
+ ]),
1259
+ _: 1
1260
+ }),
1261
+ m(F, { name: "slide-fade" }, {
1262
+ default: y(() => [
1263
+ o.value === "spots" ? (a(), r("div", Ln, [
1264
+ m(jt, {
1265
+ organization: x.current,
1266
+ memberships: Ae.memberships
1267
+ }, null, 8, ["organization", "memberships"])
1268
+ ])) : f("", !0)
1269
+ ]),
1270
+ _: 1
1271
+ })
1272
+ ])
1273
+ ])) : f("", !0);
1274
+ }
1275
+ }, zn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1276
+ __proto__: null,
1277
+ default: Sn
1278
+ }, Symbol.toStringTag, { value: "Module" })), Mn = { class: "for-transition w-100" }, Pn = {
1279
+ id: "dash",
1280
+ class: "pd-medium bg-grey"
1281
+ }, An = { class: "mn-medium radius-medium pd-semi bg-white" }, Dn = { class: "flex-nowrap flex mn-small" }, Vn = { class: "w-100" }, En = /* @__PURE__ */ n("path", {
1282
+ d: "M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z",
1283
+ fill: "black"
1284
+ }, null, -1), Fn = [
1285
+ En
1286
+ ], Tn = ["innerHTML"], In = { class: "mn-medium radius-medium pd-semi bg-white" }, Un = /* @__PURE__ */ n("h3", { class: "mn-regular" }, "Команда", -1), Bn = { key: 0 }, jn = { class: "mn-medium radius-medium pd-semi bg-white" }, Rn = /* @__PURE__ */ n("h3", { class: "mn-regular" }, "Подотделы", -1), qn = { key: 0 }, Nn = {
1287
+ __name: "Department",
1288
+ async setup(e) {
1289
+ let t, s;
1290
+ j();
1291
+ const i = B();
1292
+ return [t, s] = ee(() => R.readOne(i.params._id)), await t, s(), (l, o) => (a(), r("div", Mn, [
1293
+ n("div", Pn, [
1294
+ n("section", An, [
1295
+ n("div", Dn, [
1296
+ n("h2", Vn, g(_.department.name), 1),
1297
+ (a(), r("svg", {
1298
+ onClick: o[0] || (o[0] = (p) => l.$router.push(`/app/organization/departments/${_.department._id}/edit`)),
1299
+ class: "i-regular t-transp",
1300
+ width: "652",
1301
+ height: "652",
1302
+ viewBox: "0 0 652 652",
1303
+ fill: "none",
1304
+ xmlns: "http://www.w3.org/2000/svg"
1305
+ }, Fn))
1306
+ ]),
1307
+ n("p", {
1308
+ class: "t-transp p-big",
1309
+ innerHTML: _.department.description
1310
+ }, null, 8, Tn)
1311
+ ]),
1312
+ n("section", In, [
1313
+ Un,
1314
+ n("ul", null, [
1315
+ _.department.members.length < 1 ? (a(), r("li", Bn, "В отделе еще нет участников")) : f("", !0),
1316
+ (a(!0), r(k, null, C(_.department.members, (p, c) => (a(), b(ge, {
1317
+ class: "br-b br-solid br-grey",
1318
+ key: c,
1319
+ user: p.user,
1320
+ position: p.position,
1321
+ onClick: (d) => l.$router.push(`/app/profile/${p.user._id}`)
1322
+ }, null, 8, ["user", "position", "onClick"]))), 128))
1323
+ ])
1324
+ ]),
1325
+ n("section", jn, [
1326
+ Rn,
1327
+ n("ul", null, [
1328
+ _.department.subdepartments.length < 1 ? (a(), r("li", qn, "В отделе еще нет подотделов")) : f("", !0),
1329
+ (a(!0), r(k, null, C(_.department.subdepartments, (p, c) => (a(), b(Ve, {
1330
+ onClick: (d) => l.$router.push(`/app/organization/departments/${p._id}`),
1331
+ key: c,
1332
+ class: "br-b br-solid br-grey",
1333
+ department: p
1334
+ }, null, 8, ["onClick", "department"]))), 128))
1335
+ ])
1336
+ ])
1337
+ ])
1338
+ ]));
1339
+ }
1340
+ }, Hn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1341
+ __proto__: null,
1342
+ default: Nn
1343
+ }, Symbol.toStringTag, { value: "Module" })), Zn = { class: "for-transition pd-thin" }, Kn = /* @__PURE__ */ n("h3", { class: "mn-small" }, "Type of group", -1), Gn = /* @__PURE__ */ n("p", { class: "mn-thin" }, "Public groups are open to everyone, whereas in exclusive groups only members can post. If you wish to make a group private, select 'hidden'.", -1), Yn = /* @__PURE__ */ n("h3", { class: "mn-small" }, "Profile", -1), Wn = { class: "mn-thin radius-small w-100 h-10r bg-grey flex-center flex-column flex" }, Jn = /* @__PURE__ */ n("h4", null, "Upload photo", -1), Qn = /* @__PURE__ */ n("h3", { class: "mn-small" }, "Socials", -1), Xn = /* @__PURE__ */ n("p", { class: "mn-thin" }, "Please provide only the username for social media profiles, without full links.", -1), ea = {
1344
+ __name: "OrganizationEdit",
1345
+ async setup(e) {
1346
+ let t, s;
1347
+ const i = B(), l = j();
1348
+ J.reset(), i.params._id && ([t, s] = ee(() => J.read({ _id: i.params._id })), await t, s());
1349
+ const o = N(() => x.current);
1350
+ async function p() {
1351
+ i.params._id ? await J.update(i.params._id, o.value) : await J.create(x.current, T.user._id);
1352
+ }
1353
+ function c() {
1354
+ l.replace({ name: "Organization", params: { _id: x.current._id } });
1355
+ }
1356
+ return (d, u) => (a(), r("div", Zn, [
1357
+ Kn,
1358
+ Gn,
1359
+ m(ot, {
1360
+ modelValue: x.current.types,
1361
+ "onUpdate:modelValue": u[0] || (u[0] = (h) => x.current.types = h),
1362
+ options: ["public", "exclusive", "hidden"],
1363
+ multiple: !1,
1364
+ taggable: !1,
1365
+ placeholder: "Type to search or add type of organization",
1366
+ class: "mn-semi bg-grey pd-medium radius-small"
1367
+ }, null, 8, ["modelValue"]),
1368
+ Yn,
1369
+ n("div", Wn, [
1370
+ m(De, {
1371
+ photo: x.current.profile.photo,
1372
+ "onUpdate:photo": u[1] || (u[1] = (h) => x.current.profile.photo = h),
1373
+ uploadPath: "organizations/" + x.current._id + "/avatars",
1374
+ class: "h-4r w-4r aspect-1x1 o-hidden mn-thin radius-extra"
1375
+ }, null, 8, ["photo", "uploadPath"]),
1376
+ Jn
1377
+ ]),
1378
+ m(E, {
1379
+ field: x.current.profile.name,
1380
+ "onUpdate:field": u[2] || (u[2] = (h) => x.current.profile.name = h),
1381
+ placeholder: "Name of organization",
1382
+ class: "mn-thin bg-grey pd-medium radius-small"
1383
+ }, null, 8, ["field"]),
1384
+ m(E, {
1385
+ field: x.current.profile.description,
1386
+ "onUpdate:field": u[3] || (u[3] = (h) => x.current.profile.description = h),
1387
+ placeholder: "Brief description of your group",
1388
+ class: "mn-thin bg-grey pd-medium radius-small"
1389
+ }, null, 8, ["field"]),
1390
+ m(at, {
1391
+ onTagsChanged: u[4] || (u[4] = (h) => x.current.profile.tags = h),
1392
+ tags: x.current.profile.tags
1393
+ }, null, 8, ["tags"]),
1394
+ Qn,
1395
+ Xn,
1396
+ m(E, {
1397
+ field: x.current.socials.instagram,
1398
+ "onUpdate:field": u[5] || (u[5] = (h) => x.current.socials.instagram = h),
1399
+ label: "Instagram",
1400
+ placeholder: "",
1401
+ class: "mn-thin bg-grey pd-medium radius-small"
1402
+ }, null, 8, ["field"]),
1403
+ m(E, {
1404
+ field: x.current.socials.twitter,
1405
+ "onUpdate:field": u[6] || (u[6] = (h) => x.current.socials.twitter = h),
1406
+ label: "Twitter",
1407
+ placeholder: "",
1408
+ class: "mn-thin bg-grey pd-medium radius-small"
1409
+ }, null, 8, ["field"]),
1410
+ m(E, {
1411
+ field: x.current.socials.facebook,
1412
+ "onUpdate:field": u[7] || (u[7] = (h) => x.current.socials.facebook = h),
1413
+ label: "Facebook",
1414
+ placeholder: "",
1415
+ class: "mn-thin bg-grey pd-medium radius-small"
1416
+ }, null, 8, ["field"]),
1417
+ m(E, {
1418
+ field: x.current.socials.telegram,
1419
+ "onUpdate:field": u[8] || (u[8] = (h) => x.current.socials.telegram = h),
1420
+ label: "Telegram",
1421
+ placeholder: "",
1422
+ class: "mn-thin bg-grey pd-medium radius-small"
1423
+ }, null, 8, ["field"]),
1424
+ m(ce, {
1425
+ submit: p,
1426
+ callback: c,
1427
+ class: "mn-thin"
1428
+ }, {
1429
+ default: y(() => [
1430
+ X("Save")
1431
+ ]),
1432
+ _: 1
1433
+ })
1434
+ ]));
1435
+ }
1436
+ }, ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1437
+ __proto__: null,
1438
+ default: ea
1439
+ }, Symbol.toStringTag, { value: "Module" }));
1440
+ const ta = {
1441
+ key: 0,
1442
+ class: "t-transp mn-r-small"
1443
+ }, sa = ["placeholder", "value"], na = {
1444
+ key: 0,
1445
+ class: "mn-t-thin invalid-feedback"
1446
+ }, aa = {
1447
+ __name: "Address",
1448
+ props: {
1449
+ apiKey: {
1450
+ type: String,
1451
+ required: !0
1452
+ },
1453
+ label: null,
1454
+ placeholder: "Enter something here",
1455
+ field: null,
1456
+ location: {
1457
+ type: Object,
1458
+ default: { lat: 48.6900735, lng: 41.1620239 }
1459
+ },
1460
+ address: {
1461
+ type: String,
1462
+ default: ""
1463
+ }
1464
+ },
1465
+ emits: ["update:address", "update:location", "update:country", "update:state", "update:city"],
1466
+ setup(e, { emit: t }) {
1467
+ const s = e, i = w(null);
1468
+ let l;
1469
+ const o = () => {
1470
+ l = new google.maps.places.Autocomplete(i.value), l.addListener("place_changed", c);
1471
+ }, p = () => {
1472
+ l || o();
1473
+ }, c = () => {
1474
+ const d = l.getPlace();
1475
+ if (!d.geometry || !d.address_components)
1476
+ return;
1477
+ let u = "", h = "", v = "";
1478
+ for (let Z = 0; Z < d.address_components.length; Z++) {
1479
+ console.log(d.address_components);
1480
+ let S = d.address_components[Z];
1481
+ S.types.includes("country") && (u = S.long_name), S.types.includes("administrative_area_level_1") && (h = S.long_name), S.types.includes("locality") && (v = S.long_name);
1482
+ }
1483
+ const O = d.formatted_address, D = { lat: d.geometry.location.lat(), lng: d.geometry.location.lng() };
1484
+ t("update:address", O), t("update:location", D), t("update:country", u), t("update:state", h), t("update:city", v);
1485
+ };
1486
+ return de(() => {
1487
+ s.address !== i.value && (i.value = s.address);
1488
+ }), ue(() => {
1489
+ o();
1490
+ }), (d, u) => (a(), r("div", {
1491
+ class: ne([d.$attrs.class, "flex-nowrap flex"])
1492
+ }, [
1493
+ e.label ? (a(), r("div", ta, [
1494
+ n("span", null, g(e.label), 1)
1495
+ ])) : f("", !0),
1496
+ n("input", {
1497
+ ref_key: "addressInput",
1498
+ ref: i,
1499
+ class: "w-100",
1500
+ placeholder: e.placeholder,
1501
+ value: e.address,
1502
+ onInput: p
1503
+ }, null, 40, sa),
1504
+ m(F, {
1505
+ mode: "out-in",
1506
+ name: "fade"
1507
+ }, {
1508
+ default: y(() => [
1509
+ d.validation ? (a(), r("div", na, " * " + g(d.validation.message), 1)) : f("", !0)
1510
+ ]),
1511
+ _: 1
1512
+ })
1513
+ ], 2));
1514
+ }
1515
+ }, oa = /* @__PURE__ */ M(aa, [["__scopeId", "data-v-faece1a6"]]);
1516
+ const ia = (e) => (ae("data-v-29acef04"), e = e(), oe(), e), la = { class: "pos-relative map-container" }, ra = /* @__PURE__ */ ia(() => /* @__PURE__ */ n("svg", {
1517
+ class: "i-medium",
1518
+ width: "98",
1519
+ height: "98",
1520
+ viewBox: "0 0 98 98",
1521
+ fill: "none",
1522
+ xmlns: "http://www.w3.org/2000/svg"
1523
+ }, [
1524
+ /* @__PURE__ */ n("path", {
1525
+ d: "M50.0004 31.4995C39.7996 31.4995 31.5 39.7991 31.5 49.9999C31.5 60.2007 39.7996 68.5003 50.0004 68.5003C60.2012 68.5003 68.5008 60.2007 68.5008 49.9999C68.5008 39.7991 60.2012 31.4995 50.0004 31.4995ZM50.0004 63.7944C42.3941 63.7944 36.2059 57.6062 36.2059 49.9999C36.2059 42.3936 42.3941 36.2054 50.0004 36.2054C57.6067 36.2054 63.7949 42.3936 63.7949 49.9999C63.7949 57.6062 57.6067 63.7944 50.0004 63.7944Z",
1526
+ fill: "white"
1527
+ }),
1528
+ /* @__PURE__ */ n("path", {
1529
+ d: "M97.6471 47.6471H84.56C83.3977 30.4141 69.5859 16.6024 52.3529 15.44V2.35294C52.3529 1.05255 51.2988 0 50 0C48.6996 0 47.6471 1.05255 47.6471 2.35294V15.44C30.4141 16.6024 16.6024 30.4141 15.44 47.6471H2.35294C1.05255 47.6471 0 48.6996 0 50C0 51.2988 1.05255 52.3529 2.35294 52.3529H15.44C16.6024 69.5859 30.4141 83.3977 47.6471 84.56V97.6471C47.6471 98.9459 48.6996 100 50 100C51.2988 100 52.3529 98.9459 52.3529 97.6471V84.56C69.5859 83.3977 83.3977 69.5859 84.56 52.3529H97.6471C98.9459 52.3529 100 51.2988 100 50C100 48.6996 98.9459 47.6471 97.6471 47.6471ZM50 79.9435C33.4886 79.9435 20.0565 66.5114 20.0565 50C20.0565 33.4886 33.4886 20.0565 50 20.0565C66.5098 20.0565 79.9435 33.4886 79.9435 50C79.9435 66.5098 66.5098 79.9435 50 79.9435Z",
1530
+ fill: "white"
1531
+ })
1532
+ ], -1)), da = [
1533
+ ra
1534
+ ], ca = {
1535
+ __name: "LocationMarker",
1536
+ props: {
1537
+ location: {
1538
+ type: Object,
1539
+ default: { lat: 48.6900735, lng: 41.1620239 }
1540
+ },
1541
+ address: {
1542
+ type: String,
1543
+ default: ""
1544
+ },
1545
+ apiKey: String
1546
+ },
1547
+ emits: ["update:location", "update:address", "update:country", "update:state", "update:city"],
1548
+ setup(e, { emit: t }) {
1549
+ const s = e, i = w(null);
1550
+ let l, o;
1551
+ ue(() => {
1552
+ l = new google.maps.Map(i.value, {
1553
+ center: s.location,
1554
+ zoom: 15,
1555
+ mapTypeControl: !1,
1556
+ fullscreenControl: !1
1557
+ }), o = new google.maps.Marker({
1558
+ position: s.location,
1559
+ map: l,
1560
+ draggable: !0
1561
+ }), o.addListener("dragend", (d) => {
1562
+ const u = { lat: d.latLng.lat(), lng: d.latLng.lng() };
1563
+ t("update:location", u), p(u);
1564
+ });
1565
+ }), de(() => {
1566
+ s.location && o && o.setPosition(new google.maps.LatLng(s.location.lat, s.location.lng));
1567
+ }), de(() => {
1568
+ if (s.location && l) {
1569
+ const d = new google.maps.LatLng(s.location.lat, s.location.lng);
1570
+ l.setCenter(d);
1571
+ }
1572
+ });
1573
+ function p(d) {
1574
+ new google.maps.Geocoder().geocode({ location: d }, (h, v) => {
1575
+ if (v === "OK")
1576
+ if (h[0]) {
1577
+ t("update:address", h[0].formatted_address);
1578
+ let O = "", D = "", Z = "";
1579
+ h[0].address_components.forEach((S) => {
1580
+ S.types.includes("country") && (O = S.long_name), S.types.includes("administrative_area_level_1") && (D = S.long_name), S.types.includes("locality") && (Z = S.long_name);
1581
+ }), t("update:country", O), t("update:state", D), t("update:city", Z);
1582
+ } else
1583
+ console.error("No results found");
1584
+ else
1585
+ console.error("Geocoder failed due to: " + v);
1586
+ });
1587
+ }
1588
+ async function c() {
1589
+ navigator.geolocation ? navigator.geolocation.getCurrentPosition((d) => {
1590
+ const u = { lat: d.coords.latitude, lng: d.coords.longitude };
1591
+ t("update:location", u), p(u);
1592
+ }, () => {
1593
+ console.error("Error getting location");
1594
+ }) : console.error("Geolocation is not supported by this browser.");
1595
+ }
1596
+ return (d, u) => (a(), r("div", la, [
1597
+ n("div", {
1598
+ ref_key: "mapContainer",
1599
+ ref: i,
1600
+ class: "w-100 h-100"
1601
+ }, null, 512),
1602
+ n("button", {
1603
+ class: "pos-absolute pos-t-regular pos-r-regular i-semi bg-second radius-extra",
1604
+ onClick: c
1605
+ }, da)
1606
+ ]));
1607
+ }
1608
+ }, ua = /* @__PURE__ */ M(ca, [["__scopeId", "data-v-29acef04"]]);
1609
+ var pa = Object.defineProperty, ma = Object.defineProperties, ha = Object.getOwnPropertyDescriptors, Ce = Object.getOwnPropertySymbols, _a = Object.prototype.hasOwnProperty, ga = Object.prototype.propertyIsEnumerable, Oe = (e, t, s) => t in e ? pa(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, K = (e, t) => {
1610
+ for (var s in t || (t = {}))
1611
+ _a.call(t, s) && Oe(e, s, t[s]);
1612
+ if (Ce)
1613
+ for (var s of Ce(t))
1614
+ ga.call(t, s) && Oe(e, s, t[s]);
1615
+ return e;
1616
+ }, Le = (e, t) => ma(e, ha(t));
1617
+ const fa = {
1618
+ props: {
1619
+ autoscroll: {
1620
+ type: Boolean,
1621
+ default: !0
1622
+ }
1623
+ },
1624
+ watch: {
1625
+ typeAheadPointer() {
1626
+ this.autoscroll && this.maybeAdjustScroll();
1627
+ },
1628
+ open(e) {
1629
+ this.autoscroll && e && this.$nextTick(() => this.maybeAdjustScroll());
1630
+ }
1631
+ },
1632
+ methods: {
1633
+ maybeAdjustScroll() {
1634
+ var e;
1635
+ const t = ((e = this.$refs.dropdownMenu) == null ? void 0 : e.children[this.typeAheadPointer]) || !1;
1636
+ if (t) {
1637
+ const s = this.getDropdownViewport(), { top: i, bottom: l, height: o } = t.getBoundingClientRect();
1638
+ if (i < s.top)
1639
+ return this.$refs.dropdownMenu.scrollTop = t.offsetTop;
1640
+ if (l > s.bottom)
1641
+ return this.$refs.dropdownMenu.scrollTop = t.offsetTop - (s.height - o);
1642
+ }
1643
+ },
1644
+ getDropdownViewport() {
1645
+ return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {
1646
+ height: 0,
1647
+ top: 0,
1648
+ bottom: 0
1649
+ };
1650
+ }
1651
+ }
1652
+ }, ba = {
1653
+ data() {
1654
+ return {
1655
+ typeAheadPointer: -1
1656
+ };
1657
+ },
1658
+ watch: {
1659
+ filteredOptions() {
1660
+ for (let e = 0; e < this.filteredOptions.length; e++)
1661
+ if (this.selectable(this.filteredOptions[e])) {
1662
+ this.typeAheadPointer = e;
1663
+ break;
1664
+ }
1665
+ },
1666
+ open(e) {
1667
+ e && this.typeAheadToLastSelected();
1668
+ },
1669
+ selectedValue() {
1670
+ this.open && this.typeAheadToLastSelected();
1671
+ }
1672
+ },
1673
+ methods: {
1674
+ typeAheadUp() {
1675
+ for (let e = this.typeAheadPointer - 1; e >= 0; e--)
1676
+ if (this.selectable(this.filteredOptions[e])) {
1677
+ this.typeAheadPointer = e;
1678
+ break;
1679
+ }
1680
+ },
1681
+ typeAheadDown() {
1682
+ for (let e = this.typeAheadPointer + 1; e < this.filteredOptions.length; e++)
1683
+ if (this.selectable(this.filteredOptions[e])) {
1684
+ this.typeAheadPointer = e;
1685
+ break;
1686
+ }
1687
+ },
1688
+ typeAheadSelect() {
1689
+ const e = this.filteredOptions[this.typeAheadPointer];
1690
+ e && this.selectable(e) && this.select(e);
1691
+ },
1692
+ typeAheadToLastSelected() {
1693
+ this.typeAheadPointer = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;
1694
+ }
1695
+ }
1696
+ }, va = {
1697
+ props: {
1698
+ loading: {
1699
+ type: Boolean,
1700
+ default: !1
1701
+ }
1702
+ },
1703
+ data() {
1704
+ return {
1705
+ mutableLoading: !1
1706
+ };
1707
+ },
1708
+ watch: {
1709
+ search() {
1710
+ this.$emit("search", this.search, this.toggleLoading);
1711
+ },
1712
+ loading(e) {
1713
+ this.mutableLoading = e;
1714
+ }
1715
+ },
1716
+ methods: {
1717
+ toggleLoading(e = null) {
1718
+ return e == null ? this.mutableLoading = !this.mutableLoading : this.mutableLoading = e;
1719
+ }
1720
+ }
1721
+ }, fe = (e, t) => {
1722
+ const s = e.__vccOpts || e;
1723
+ for (const [i, l] of t)
1724
+ s[i] = l;
1725
+ return s;
1726
+ }, ya = {}, $a = {
1727
+ xmlns: "http://www.w3.org/2000/svg",
1728
+ width: "10",
1729
+ height: "10"
1730
+ }, wa = /* @__PURE__ */ n("path", { d: "M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z" }, null, -1), xa = [
1731
+ wa
1732
+ ];
1733
+ function ka(e, t) {
1734
+ return a(), r("svg", $a, xa);
1735
+ }
1736
+ const Ca = /* @__PURE__ */ fe(ya, [["render", ka]]), Oa = {}, La = {
1737
+ xmlns: "http://www.w3.org/2000/svg",
1738
+ width: "14",
1739
+ height: "10"
1740
+ }, Sa = /* @__PURE__ */ n("path", { d: "M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z" }, null, -1), za = [
1741
+ Sa
1742
+ ];
1743
+ function Ma(e, t) {
1744
+ return a(), r("svg", La, za);
1745
+ }
1746
+ const Pa = /* @__PURE__ */ fe(Oa, [["render", Ma]]), Se = {
1747
+ Deselect: Ca,
1748
+ OpenIndicator: Pa
1749
+ }, Aa = {
1750
+ mounted(e, { instance: t }) {
1751
+ if (t.appendToBody) {
1752
+ const {
1753
+ height: s,
1754
+ top: i,
1755
+ left: l,
1756
+ width: o
1757
+ } = t.$refs.toggle.getBoundingClientRect();
1758
+ let p = window.scrollX || window.pageXOffset, c = window.scrollY || window.pageYOffset;
1759
+ e.unbindPosition = t.calculatePosition(e, t, {
1760
+ width: o + "px",
1761
+ left: p + l + "px",
1762
+ top: c + i + s + "px"
1763
+ }), document.body.appendChild(e);
1764
+ }
1765
+ },
1766
+ unmounted(e, { instance: t }) {
1767
+ t.appendToBody && (e.unbindPosition && typeof e.unbindPosition == "function" && e.unbindPosition(), e.parentNode && e.parentNode.removeChild(e));
1768
+ }
1769
+ };
1770
+ function Da(e) {
1771
+ const t = {};
1772
+ return Object.keys(e).sort().forEach((s) => {
1773
+ t[s] = e[s];
1774
+ }), JSON.stringify(t);
1775
+ }
1776
+ let Va = 0;
1777
+ function Ea() {
1778
+ return ++Va;
1779
+ }
1780
+ const Fa = {
1781
+ components: K({}, Se),
1782
+ directives: { appendToBody: Aa },
1783
+ mixins: [fa, ba, va],
1784
+ compatConfig: {
1785
+ MODE: 3
1786
+ },
1787
+ emits: [
1788
+ "open",
1789
+ "close",
1790
+ "update:modelValue",
1791
+ "search",
1792
+ "search:compositionstart",
1793
+ "search:compositionend",
1794
+ "search:keydown",
1795
+ "search:blur",
1796
+ "search:focus",
1797
+ "search:input",
1798
+ "option:created",
1799
+ "option:selecting",
1800
+ "option:selected",
1801
+ "option:deselecting",
1802
+ "option:deselected"
1803
+ ],
1804
+ props: {
1805
+ modelValue: {},
1806
+ components: {
1807
+ type: Object,
1808
+ default: () => ({})
1809
+ },
1810
+ options: {
1811
+ type: Array,
1812
+ default() {
1813
+ return [];
1814
+ }
1815
+ },
1816
+ disabled: {
1817
+ type: Boolean,
1818
+ default: !1
1819
+ },
1820
+ clearable: {
1821
+ type: Boolean,
1822
+ default: !0
1823
+ },
1824
+ deselectFromDropdown: {
1825
+ type: Boolean,
1826
+ default: !1
1827
+ },
1828
+ searchable: {
1829
+ type: Boolean,
1830
+ default: !0
1831
+ },
1832
+ multiple: {
1833
+ type: Boolean,
1834
+ default: !1
1835
+ },
1836
+ placeholder: {
1837
+ type: String,
1838
+ default: ""
1839
+ },
1840
+ transition: {
1841
+ type: String,
1842
+ default: "vs__fade"
1843
+ },
1844
+ clearSearchOnSelect: {
1845
+ type: Boolean,
1846
+ default: !0
1847
+ },
1848
+ closeOnSelect: {
1849
+ type: Boolean,
1850
+ default: !0
1851
+ },
1852
+ label: {
1853
+ type: String,
1854
+ default: "label"
1855
+ },
1856
+ autocomplete: {
1857
+ type: String,
1858
+ default: "off"
1859
+ },
1860
+ reduce: {
1861
+ type: Function,
1862
+ default: (e) => e
1863
+ },
1864
+ selectable: {
1865
+ type: Function,
1866
+ default: (e) => !0
1867
+ },
1868
+ getOptionLabel: {
1869
+ type: Function,
1870
+ default(e) {
1871
+ return typeof e == "object" ? e.hasOwnProperty(this.label) ? e[this.label] : console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}.
1872
+ https://vue-select.org/api/props.html#getoptionlabel`) : e;
1873
+ }
1874
+ },
1875
+ getOptionKey: {
1876
+ type: Function,
1877
+ default(e) {
1878
+ if (typeof e != "object")
1879
+ return e;
1880
+ try {
1881
+ return e.hasOwnProperty("id") ? e.id : Da(e);
1882
+ } catch (t) {
1883
+ return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.
1884
+ https://vue-select.org/api/props.html#getoptionkey`, e, t);
1885
+ }
1886
+ }
1887
+ },
1888
+ onTab: {
1889
+ type: Function,
1890
+ default: function() {
1891
+ this.selectOnTab && !this.isComposing && this.typeAheadSelect();
1892
+ }
1893
+ },
1894
+ taggable: {
1895
+ type: Boolean,
1896
+ default: !1
1897
+ },
1898
+ tabindex: {
1899
+ type: Number,
1900
+ default: null
1901
+ },
1902
+ pushTags: {
1903
+ type: Boolean,
1904
+ default: !1
1905
+ },
1906
+ filterable: {
1907
+ type: Boolean,
1908
+ default: !0
1909
+ },
1910
+ filterBy: {
1911
+ type: Function,
1912
+ default(e, t, s) {
1913
+ return (t || "").toLocaleLowerCase().indexOf(s.toLocaleLowerCase()) > -1;
1914
+ }
1915
+ },
1916
+ filter: {
1917
+ type: Function,
1918
+ default(e, t) {
1919
+ return e.filter((s) => {
1920
+ let i = this.getOptionLabel(s);
1921
+ return typeof i == "number" && (i = i.toString()), this.filterBy(s, i, t);
1922
+ });
1923
+ }
1924
+ },
1925
+ createOption: {
1926
+ type: Function,
1927
+ default(e) {
1928
+ return typeof this.optionList[0] == "object" ? { [this.label]: e } : e;
1929
+ }
1930
+ },
1931
+ resetOnOptionsChange: {
1932
+ default: !1,
1933
+ validator: (e) => ["function", "boolean"].includes(typeof e)
1934
+ },
1935
+ clearSearchOnBlur: {
1936
+ type: Function,
1937
+ default: function({ clearSearchOnSelect: e, multiple: t }) {
1938
+ return e && !t;
1939
+ }
1940
+ },
1941
+ noDrop: {
1942
+ type: Boolean,
1943
+ default: !1
1944
+ },
1945
+ inputId: {
1946
+ type: String
1947
+ },
1948
+ dir: {
1949
+ type: String,
1950
+ default: "auto"
1951
+ },
1952
+ selectOnTab: {
1953
+ type: Boolean,
1954
+ default: !1
1955
+ },
1956
+ selectOnKeyCodes: {
1957
+ type: Array,
1958
+ default: () => [13]
1959
+ },
1960
+ searchInputQuerySelector: {
1961
+ type: String,
1962
+ default: "[type=search]"
1963
+ },
1964
+ mapKeydown: {
1965
+ type: Function,
1966
+ default: (e, t) => e
1967
+ },
1968
+ appendToBody: {
1969
+ type: Boolean,
1970
+ default: !1
1971
+ },
1972
+ calculatePosition: {
1973
+ type: Function,
1974
+ default(e, t, { width: s, top: i, left: l }) {
1975
+ e.style.top = i, e.style.left = l, e.style.width = s;
1976
+ }
1977
+ },
1978
+ dropdownShouldOpen: {
1979
+ type: Function,
1980
+ default({ noDrop: e, open: t, mutableLoading: s }) {
1981
+ return e ? !1 : t && !s;
1982
+ }
1983
+ },
1984
+ uid: {
1985
+ type: [String, Number],
1986
+ default: () => Ea()
1987
+ }
1988
+ },
1989
+ data() {
1990
+ return {
1991
+ search: "",
1992
+ open: !1,
1993
+ isComposing: !1,
1994
+ pushedTags: [],
1995
+ _value: [],
1996
+ deselectButtons: []
1997
+ };
1998
+ },
1999
+ computed: {
2000
+ isReducingValues() {
2001
+ return this.$props.reduce !== this.$options.props.reduce.default;
2002
+ },
2003
+ isTrackingValues() {
2004
+ return typeof this.modelValue > "u" || this.isReducingValues;
2005
+ },
2006
+ selectedValue() {
2007
+ let e = this.modelValue;
2008
+ return this.isTrackingValues && (e = this.$data._value), e != null && e !== "" ? [].concat(e) : [];
2009
+ },
2010
+ optionList() {
2011
+ return this.options.concat(this.pushTags ? this.pushedTags : []);
2012
+ },
2013
+ searchEl() {
2014
+ return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;
2015
+ },
2016
+ scope() {
2017
+ const e = {
2018
+ search: this.search,
2019
+ loading: this.loading,
2020
+ searching: this.searching,
2021
+ filteredOptions: this.filteredOptions
2022
+ };
2023
+ return {
2024
+ search: {
2025
+ attributes: K({
2026
+ disabled: this.disabled,
2027
+ placeholder: this.searchPlaceholder,
2028
+ tabindex: this.tabindex,
2029
+ readonly: !this.searchable,
2030
+ id: this.inputId,
2031
+ "aria-autocomplete": "list",
2032
+ "aria-labelledby": `vs${this.uid}__combobox`,
2033
+ "aria-controls": `vs${this.uid}__listbox`,
2034
+ ref: "search",
2035
+ type: "search",
2036
+ autocomplete: this.autocomplete,
2037
+ value: this.search
2038
+ }, this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {
2039
+ "aria-activedescendant": `vs${this.uid}__option-${this.typeAheadPointer}`
2040
+ } : {}),
2041
+ events: {
2042
+ compositionstart: () => this.isComposing = !0,
2043
+ compositionend: () => this.isComposing = !1,
2044
+ keydown: this.onSearchKeyDown,
2045
+ blur: this.onSearchBlur,
2046
+ focus: this.onSearchFocus,
2047
+ input: (t) => this.search = t.target.value
2048
+ }
2049
+ },
2050
+ spinner: {
2051
+ loading: this.mutableLoading
2052
+ },
2053
+ noOptions: {
2054
+ search: this.search,
2055
+ loading: this.mutableLoading,
2056
+ searching: this.searching
2057
+ },
2058
+ openIndicator: {
2059
+ attributes: {
2060
+ ref: "openIndicator",
2061
+ role: "presentation",
2062
+ class: "vs__open-indicator"
2063
+ }
2064
+ },
2065
+ listHeader: e,
2066
+ listFooter: e,
2067
+ header: Le(K({}, e), { deselect: this.deselect }),
2068
+ footer: Le(K({}, e), { deselect: this.deselect })
2069
+ };
2070
+ },
2071
+ childComponents() {
2072
+ return K(K({}, Se), this.components);
2073
+ },
2074
+ stateClasses() {
2075
+ return {
2076
+ "vs--open": this.dropdownOpen,
2077
+ "vs--single": !this.multiple,
2078
+ "vs--multiple": this.multiple,
2079
+ "vs--searching": this.searching && !this.noDrop,
2080
+ "vs--searchable": this.searchable && !this.noDrop,
2081
+ "vs--unsearchable": !this.searchable,
2082
+ "vs--loading": this.mutableLoading,
2083
+ "vs--disabled": this.disabled
2084
+ };
2085
+ },
2086
+ searching() {
2087
+ return !!this.search;
2088
+ },
2089
+ dropdownOpen() {
2090
+ return this.dropdownShouldOpen(this);
2091
+ },
2092
+ searchPlaceholder() {
2093
+ return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;
2094
+ },
2095
+ filteredOptions() {
2096
+ const e = [].concat(this.optionList);
2097
+ if (!this.filterable && !this.taggable)
2098
+ return e;
2099
+ const t = this.search.length ? this.filter(e, this.search, this) : e;
2100
+ if (this.taggable && this.search.length) {
2101
+ const s = this.createOption(this.search);
2102
+ this.optionExists(s) || t.unshift(s);
2103
+ }
2104
+ return t;
2105
+ },
2106
+ isValueEmpty() {
2107
+ return this.selectedValue.length === 0;
2108
+ },
2109
+ showClearButton() {
2110
+ return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;
2111
+ }
2112
+ },
2113
+ watch: {
2114
+ options(e, t) {
2115
+ const s = () => typeof this.resetOnOptionsChange == "function" ? this.resetOnOptionsChange(e, t, this.selectedValue) : this.resetOnOptionsChange;
2116
+ !this.taggable && s() && this.clearSelection(), this.modelValue && this.isTrackingValues && this.setInternalValueFromOptions(this.modelValue);
2117
+ },
2118
+ modelValue: {
2119
+ immediate: !0,
2120
+ handler(e) {
2121
+ this.isTrackingValues && this.setInternalValueFromOptions(e);
2122
+ }
2123
+ },
2124
+ multiple() {
2125
+ this.clearSelection();
2126
+ },
2127
+ open(e) {
2128
+ this.$emit(e ? "open" : "close");
2129
+ }
2130
+ },
2131
+ created() {
2132
+ this.mutableLoading = this.loading;
2133
+ },
2134
+ methods: {
2135
+ setInternalValueFromOptions(e) {
2136
+ Array.isArray(e) ? this.$data._value = e.map((t) => this.findOptionFromReducedValue(t)) : this.$data._value = this.findOptionFromReducedValue(e);
2137
+ },
2138
+ select(e) {
2139
+ this.$emit("option:selecting", e), this.isOptionSelected(e) ? this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1) && this.deselect(e) : (this.taggable && !this.optionExists(e) && (this.$emit("option:created", e), this.pushTag(e)), this.multiple && (e = this.selectedValue.concat(e)), this.updateValue(e), this.$emit("option:selected", e)), this.onAfterSelect(e);
2140
+ },
2141
+ deselect(e) {
2142
+ this.$emit("option:deselecting", e), this.updateValue(this.selectedValue.filter((t) => !this.optionComparator(t, e))), this.$emit("option:deselected", e);
2143
+ },
2144
+ clearSelection() {
2145
+ this.updateValue(this.multiple ? [] : null);
2146
+ },
2147
+ onAfterSelect(e) {
2148
+ this.closeOnSelect && (this.open = !this.open, this.searchEl.blur()), this.clearSearchOnSelect && (this.search = "");
2149
+ },
2150
+ updateValue(e) {
2151
+ typeof this.modelValue > "u" && (this.$data._value = e), e !== null && (Array.isArray(e) ? e = e.map((t) => this.reduce(t)) : e = this.reduce(e)), this.$emit("update:modelValue", e);
2152
+ },
2153
+ toggleDropdown(e) {
2154
+ const t = e.target !== this.searchEl;
2155
+ t && e.preventDefault();
2156
+ const s = [
2157
+ ...this.deselectButtons || [],
2158
+ this.$refs.clearButton
2159
+ ];
2160
+ if (this.searchEl === void 0 || s.filter(Boolean).some((i) => i.contains(e.target) || i === e.target)) {
2161
+ e.preventDefault();
2162
+ return;
2163
+ }
2164
+ this.open && t ? this.searchEl.blur() : this.disabled || (this.open = !0, this.searchEl.focus());
2165
+ },
2166
+ isOptionSelected(e) {
2167
+ return this.selectedValue.some((t) => this.optionComparator(t, e));
2168
+ },
2169
+ isOptionDeselectable(e) {
2170
+ return this.isOptionSelected(e) && this.deselectFromDropdown;
2171
+ },
2172
+ optionComparator(e, t) {
2173
+ return this.getOptionKey(e) === this.getOptionKey(t);
2174
+ },
2175
+ findOptionFromReducedValue(e) {
2176
+ const t = (i) => JSON.stringify(this.reduce(i)) === JSON.stringify(e), s = [...this.options, ...this.pushedTags].filter(t);
2177
+ return s.length === 1 ? s[0] : s.find((i) => this.optionComparator(i, this.$data._value)) || e;
2178
+ },
2179
+ closeSearchOptions() {
2180
+ this.open = !1, this.$emit("search:blur");
2181
+ },
2182
+ maybeDeleteValue() {
2183
+ if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {
2184
+ let e = null;
2185
+ this.multiple && (e = [
2186
+ ...this.selectedValue.slice(0, this.selectedValue.length - 1)
2187
+ ]), this.updateValue(e);
2188
+ }
2189
+ },
2190
+ optionExists(e) {
2191
+ return this.optionList.some((t) => this.optionComparator(t, e));
2192
+ },
2193
+ normalizeOptionForSlot(e) {
2194
+ return typeof e == "object" ? e : { [this.label]: e };
2195
+ },
2196
+ pushTag(e) {
2197
+ this.pushedTags.push(e);
2198
+ },
2199
+ onEscape() {
2200
+ this.search.length ? this.search = "" : this.searchEl.blur();
2201
+ },
2202
+ onSearchBlur() {
2203
+ if (this.mousedown && !this.searching)
2204
+ this.mousedown = !1;
2205
+ else {
2206
+ const { clearSearchOnSelect: e, multiple: t } = this;
2207
+ this.clearSearchOnBlur({ clearSearchOnSelect: e, multiple: t }) && (this.search = ""), this.closeSearchOptions();
2208
+ return;
2209
+ }
2210
+ if (this.search.length === 0 && this.options.length === 0) {
2211
+ this.closeSearchOptions();
2212
+ return;
2213
+ }
2214
+ },
2215
+ onSearchFocus() {
2216
+ this.open = !0, this.$emit("search:focus");
2217
+ },
2218
+ onMousedown() {
2219
+ this.mousedown = !0;
2220
+ },
2221
+ onMouseUp() {
2222
+ this.mousedown = !1;
2223
+ },
2224
+ onSearchKeyDown(e) {
2225
+ const t = (l) => (l.preventDefault(), !this.isComposing && this.typeAheadSelect()), s = {
2226
+ 8: (l) => this.maybeDeleteValue(),
2227
+ 9: (l) => this.onTab(),
2228
+ 27: (l) => this.onEscape(),
2229
+ 38: (l) => (l.preventDefault(), this.typeAheadUp()),
2230
+ 40: (l) => (l.preventDefault(), this.typeAheadDown())
2231
+ };
2232
+ this.selectOnKeyCodes.forEach((l) => s[l] = t);
2233
+ const i = this.mapKeydown(s, this);
2234
+ if (typeof i[e.keyCode] == "function")
2235
+ return i[e.keyCode](e);
2236
+ }
2237
+ }
2238
+ }, Ta = ["dir"], Ia = ["id", "aria-expanded", "aria-owns"], Ua = {
2239
+ ref: "selectedOptions",
2240
+ class: "vs__selected-options"
2241
+ }, Ba = ["disabled", "title", "aria-label", "onClick"], ja = {
2242
+ ref: "actions",
2243
+ class: "vs__actions"
2244
+ }, Ra = ["disabled"], qa = { class: "vs__spinner" }, Na = ["id"], Ha = ["id", "aria-selected", "onMouseover", "onClick"], Za = {
2245
+ key: 0,
2246
+ class: "vs__no-options"
2247
+ }, Ka = /* @__PURE__ */ X(" Sorry, no matching options. "), Ga = ["id"];
2248
+ function Ya(e, t, s, i, l, o) {
2249
+ const p = Te("append-to-body");
2250
+ return a(), r("div", {
2251
+ dir: s.dir,
2252
+ class: ne(["v-select", o.stateClasses])
2253
+ }, [
2254
+ z(e.$slots, "header", P(V(o.scope.header))),
2255
+ n("div", {
2256
+ id: `vs${s.uid}__combobox`,
2257
+ ref: "toggle",
2258
+ class: "vs__dropdown-toggle",
2259
+ role: "combobox",
2260
+ "aria-expanded": o.dropdownOpen.toString(),
2261
+ "aria-owns": `vs${s.uid}__listbox`,
2262
+ "aria-label": "Search for option",
2263
+ onMousedown: t[1] || (t[1] = (c) => o.toggleDropdown(c))
2264
+ }, [
2265
+ n("div", Ua, [
2266
+ (a(!0), r(k, null, C(o.selectedValue, (c, d) => z(e.$slots, "selected-option-container", {
2267
+ option: o.normalizeOptionForSlot(c),
2268
+ deselect: o.deselect,
2269
+ multiple: s.multiple,
2270
+ disabled: s.disabled
2271
+ }, () => [
2272
+ (a(), r("span", {
2273
+ key: s.getOptionKey(c),
2274
+ class: "vs__selected"
2275
+ }, [
2276
+ z(e.$slots, "selected-option", P(V(o.normalizeOptionForSlot(c))), () => [
2277
+ X(g(s.getOptionLabel(c)), 1)
2278
+ ]),
2279
+ s.multiple ? (a(), r("button", {
2280
+ key: 0,
2281
+ ref_for: !0,
2282
+ ref: (u) => l.deselectButtons[d] = u,
2283
+ disabled: s.disabled,
2284
+ type: "button",
2285
+ class: "vs__deselect",
2286
+ title: `Deselect ${s.getOptionLabel(c)}`,
2287
+ "aria-label": `Deselect ${s.getOptionLabel(c)}`,
2288
+ onClick: (u) => o.deselect(c)
2289
+ }, [
2290
+ (a(), b(re(o.childComponents.Deselect)))
2291
+ ], 8, Ba)) : f("", !0)
2292
+ ]))
2293
+ ])), 256)),
2294
+ z(e.$slots, "search", P(V(o.scope.search)), () => [
2295
+ n("input", be({ class: "vs__search" }, o.scope.search.attributes, Ie(o.scope.search.events)), null, 16)
2296
+ ])
2297
+ ], 512),
2298
+ n("div", ja, [
2299
+ se(n("button", {
2300
+ ref: "clearButton",
2301
+ disabled: s.disabled,
2302
+ type: "button",
2303
+ class: "vs__clear",
2304
+ title: "Clear Selected",
2305
+ "aria-label": "Clear Selected",
2306
+ onClick: t[0] || (t[0] = (...c) => o.clearSelection && o.clearSelection(...c))
2307
+ }, [
2308
+ (a(), b(re(o.childComponents.Deselect)))
2309
+ ], 8, Ra), [
2310
+ [ve, o.showClearButton]
2311
+ ]),
2312
+ z(e.$slots, "open-indicator", P(V(o.scope.openIndicator)), () => [
2313
+ s.noDrop ? f("", !0) : (a(), b(re(o.childComponents.OpenIndicator), P(be({ key: 0 }, o.scope.openIndicator.attributes)), null, 16))
2314
+ ]),
2315
+ z(e.$slots, "spinner", P(V(o.scope.spinner)), () => [
2316
+ se(n("div", qa, "Loading...", 512), [
2317
+ [ve, e.mutableLoading]
2318
+ ])
2319
+ ])
2320
+ ], 512)
2321
+ ], 40, Ia),
2322
+ m(F, { name: s.transition }, {
2323
+ default: y(() => [
2324
+ o.dropdownOpen ? se((a(), r("ul", {
2325
+ id: `vs${s.uid}__listbox`,
2326
+ ref: "dropdownMenu",
2327
+ key: `vs${s.uid}__listbox`,
2328
+ class: "vs__dropdown-menu",
2329
+ role: "listbox",
2330
+ tabindex: "-1",
2331
+ onMousedown: t[2] || (t[2] = ye((...c) => o.onMousedown && o.onMousedown(...c), ["prevent"])),
2332
+ onMouseup: t[3] || (t[3] = (...c) => o.onMouseUp && o.onMouseUp(...c))
2333
+ }, [
2334
+ z(e.$slots, "list-header", P(V(o.scope.listHeader))),
2335
+ (a(!0), r(k, null, C(o.filteredOptions, (c, d) => (a(), r("li", {
2336
+ id: `vs${s.uid}__option-${d}`,
2337
+ key: s.getOptionKey(c),
2338
+ role: "option",
2339
+ class: ne(["vs__dropdown-option", {
2340
+ "vs__dropdown-option--deselect": o.isOptionDeselectable(c) && d === e.typeAheadPointer,
2341
+ "vs__dropdown-option--selected": o.isOptionSelected(c),
2342
+ "vs__dropdown-option--highlight": d === e.typeAheadPointer,
2343
+ "vs__dropdown-option--disabled": !s.selectable(c)
2344
+ }]),
2345
+ "aria-selected": d === e.typeAheadPointer ? !0 : null,
2346
+ onMouseover: (u) => s.selectable(c) ? e.typeAheadPointer = d : null,
2347
+ onClick: ye((u) => s.selectable(c) ? o.select(c) : null, ["prevent", "stop"])
2348
+ }, [
2349
+ z(e.$slots, "option", P(V(o.normalizeOptionForSlot(c))), () => [
2350
+ X(g(s.getOptionLabel(c)), 1)
2351
+ ])
2352
+ ], 42, Ha))), 128)),
2353
+ o.filteredOptions.length === 0 ? (a(), r("li", Za, [
2354
+ z(e.$slots, "no-options", P(V(o.scope.noOptions)), () => [
2355
+ Ka
2356
+ ])
2357
+ ])) : f("", !0),
2358
+ z(e.$slots, "list-footer", P(V(o.scope.listFooter)))
2359
+ ], 40, Na)), [
2360
+ [p]
2361
+ ]) : (a(), r("ul", {
2362
+ key: 1,
2363
+ id: `vs${s.uid}__listbox`,
2364
+ role: "listbox",
2365
+ style: { display: "none", visibility: "hidden" }
2366
+ }, null, 8, Ga))
2367
+ ]),
2368
+ _: 3
2369
+ }, 8, ["name"]),
2370
+ z(e.$slots, "footer", P(V(o.scope.footer)))
2371
+ ], 10, Ta);
2372
+ }
2373
+ const Wa = /* @__PURE__ */ fe(Fa, [["render", Ya]]);
2374
+ const Ja = { class: "w-100" }, Qa = { class: "flex" }, Xa = { class: "mn-regular" }, eo = { class: "flex-column flex-wrap block" }, to = {
2375
+ key: 0,
2376
+ class: "w-100"
2377
+ }, so = { class: "w-100 flex-center flex-nowrap flex" }, no = { class: "mn-r-regular w-100" }, ao = ["onClick"], oo = {
2378
+ key: 0,
2379
+ class: "mn-t-small mn-small w-100"
2380
+ }, Yi = {
2381
+ __name: "EditArray",
2382
+ props: {
2383
+ name: Object,
2384
+ items: Array
2385
+ },
2386
+ emits: ["add", "remove"],
2387
+ setup(e, { emit: t }) {
2388
+ j(), B();
2389
+ let s = pe([]);
2390
+ Ue(s);
2391
+ const i = w(null), l = w(null), o = w(null);
2392
+ N(() => {
2393
+ if (i.value === null || o.value === null || o.value === "")
2394
+ return !0;
2395
+ if (i.value.modifications.length > 0)
2396
+ return l.value === null;
2397
+ });
2398
+ function p(c) {
2399
+ store.commit("leftovers/deleteItemFromLeftover", c);
2400
+ }
2401
+ return (c, d) => (a(), r("div", Ja, [
2402
+ n("div", Qa, [
2403
+ n("h3", Xa, g(e.name), 1)
2404
+ ]),
2405
+ n("ul", eo, [
2406
+ e.items.length < 1 ? (a(), r("span", to, "Вы еще не добавили позиции")) : f("", !0),
2407
+ (a(!0), r(k, null, C(e.items, (u, h) => (a(), r("li", {
2408
+ key: u._id,
2409
+ class: "w-100"
2410
+ }, [
2411
+ n("div", so, [
2412
+ n("span", no, g(u.name), 1),
2413
+ n("a", {
2414
+ class: "w-20 button",
2415
+ onClick: (v) => p(u)
2416
+ }, "Удалить", 8, ao)
2417
+ ]),
2418
+ h != e.items.length - 1 ? (a(), r("hr", oo)) : f("", !0)
2419
+ ]))), 128))
2420
+ ])
2421
+ ]));
2422
+ }
2423
+ };
2424
+ const io = { class: "br-grey radius-small mn-small" }, lo = {
2425
+ key: 1,
2426
+ class: "pd-small br-grey br-1px br-solid"
2427
+ }, ro = ["disabled"], co = {
2428
+ __name: "DepartmentMemberModify",
2429
+ props: {
2430
+ isPopupOpen: Boolean,
2431
+ department: Number,
2432
+ departments: Array,
2433
+ maindepartment: Object,
2434
+ alldepartments: Array
2435
+ },
2436
+ emits: ["callback", "remove"],
2437
+ setup(e, { emit: t }) {
2438
+ const s = e, i = w({
2439
+ subdepartment: null
2440
+ });
2441
+ s.department !== null && (i.value = s.departments[s.department]);
2442
+ function l(d, u, h) {
2443
+ return d.filter((v) => !(u.some((O) => O._id === v._id) || h._id === v._id));
2444
+ }
2445
+ const o = N(() => l(s.alldepartments, s.departments, s.maindepartment));
2446
+ async function p() {
2447
+ s.departments.push(i.value.subdepartment), t("callback");
2448
+ }
2449
+ async function c() {
2450
+ s.departments.splice(s.department, 1), t("callback");
2451
+ }
2452
+ return (d, u) => (a(), r("div", null, [
2453
+ n("div", io, [
2454
+ s.department === null ? (a(), b($(Wa), {
2455
+ key: 0,
2456
+ modelValue: i.value.subdepartment,
2457
+ "onUpdate:modelValue": u[0] || (u[0] = (h) => i.value.subdepartment = h),
2458
+ options: $(o),
2459
+ "get-option-label": (h) => h.name,
2460
+ class: "w-100 mn-small"
2461
+ }, null, 8, ["modelValue", "options", "get-option-label"])) : (a(), r("div", lo, g(i.value.name ? i.value.name : "Безымянный"), 1))
2462
+ ]),
2463
+ s.department === null ? (a(), r("button", {
2464
+ key: 0,
2465
+ disabled: !i.value.subdepartment,
2466
+ onClick: p,
2467
+ class: "w-100 button bg-second t-white"
2468
+ }, " Добавить отдел ", 8, ro)) : f("", !0),
2469
+ s.department !== null ? (a(), r("button", {
2470
+ key: 1,
2471
+ onClick: c,
2472
+ class: "w-100 button bg-fourth t-white"
2473
+ }, " Удалить отдел ")) : f("", !0)
2474
+ ]));
2475
+ }
2476
+ }, Wi = /* @__PURE__ */ M(co, [["__scopeId", "data-v-21f393e1"]]);
2477
+ const te = (e) => (ae("data-v-6a9ce43d"), e = e(), oe(), e), uo = { class: "for-transition w-100" }, po = { class: "pd-b-zero pd-t-zero pd-thin" }, mo = { class: "pd-thin" }, ho = { class: "flex-nowrap flex bg-grey pd-medium radius-big" }, _o = {
2478
+ key: 0,
2479
+ class: "mn-r-auto"
2480
+ }, go = {
2481
+ key: 1,
2482
+ class: "mn-r-auto"
2483
+ }, fo = { class: "flex-nowrap flex pd-thin" }, bo = { class: "pd-b-zero pd-t-zero pd-thin cols-2 gap-thin" }, vo = { class: "flex-stretch flex-column flex" }, yo = { class: "mn-thin bg-grey pd-medium o-hidden radius-big" }, $o = /* @__PURE__ */ te(() => /* @__PURE__ */ n("h3", { class: "mn-semi" }, "Profile", -1)), wo = { class: "radius-small flex-nowrap flex" }, xo = { class: "w-100 flex-child-grow-1 flex-child" }, ko = { class: "bg-grey pd-medium o-hidden radius-big" }, Co = /* @__PURE__ */ te(() => /* @__PURE__ */ n("h3", { class: "mn-semi" }, "Details", -1)), Oo = /* @__PURE__ */ te(() => /* @__PURE__ */ n("p", { class: "p-medium mn-small" }, "Please the available delivery options:", -1)), Lo = { class: "mn-medium flex-nowrap flex" }, So = /* @__PURE__ */ te(() => /* @__PURE__ */ n("p", { class: "p-medium mn-small" }, "Please select the available payment methods:", -1)), zo = { class: "flex-nowrap flex" }, Mo = { class: "bg-grey pd-medium o-hidden radius-big" }, Po = /* @__PURE__ */ te(() => /* @__PURE__ */ n("h3", { class: "mn-semi" }, "Location", -1)), Ao = /* @__PURE__ */ te(() => /* @__PURE__ */ n("p", { class: "mn-small p-medium" }, "Or choose on map:", -1)), Do = { class: "flex-nowrap flex pd-thin" }, Vo = {
2484
+ __name: "DepartmentEdit",
2485
+ setup(e) {
2486
+ const t = j(), s = B();
2487
+ w("details"), w(!1);
2488
+ async function i() {
2489
+ s.params.department && await Pe.read(s.params.department), w(Ae.memberships), await R.read(s.params._id), s.params.department && await R.readOne(s.params.department);
2490
+ }
2491
+ i(), w(_.department.members), w(!1), w(null), w(!1), w(null);
2492
+ async function l() {
2493
+ s.params.department && await R.update(
2494
+ s.params._id,
2495
+ _.department
2496
+ ), s.params.department || await R.create(
2497
+ s.params._id,
2498
+ _.department
2499
+ );
2500
+ }
2501
+ function o() {
2502
+ t.replace({ name: "Department", params: { _id: s.params._id, department: _.department._id } });
2503
+ }
2504
+ async function p() {
2505
+ await R.delete(
2506
+ s.params._id,
2507
+ _.department
2508
+ );
2509
+ }
2510
+ return (c, d) => (a(), r("div", uo, [
2511
+ n("div", po, [
2512
+ m(Qe, { class: "pd-medium bg-grey radius-big" })
2513
+ ]),
2514
+ n("div", mo, [
2515
+ n("header", ho, [
2516
+ $(s).params.department ? (a(), r("h1", _o, "Edit Spot")) : (a(), r("h1", go, "Create Spot")),
2517
+ n("section", fo, [
2518
+ m(ce, {
2519
+ submit: l,
2520
+ callback: o
2521
+ }, {
2522
+ default: y(() => [
2523
+ X("Save Spot")
2524
+ ]),
2525
+ _: 1
2526
+ })
2527
+ ])
2528
+ ])
2529
+ ]),
2530
+ n("div", bo, [
2531
+ n("div", vo, [
2532
+ n("div", yo, [
2533
+ $o,
2534
+ n("div", wo, [
2535
+ m(De, {
2536
+ photo: _.department.profile.photo,
2537
+ "onUpdate:photo": d[0] || (d[0] = (u) => _.department.profile.photo = u),
2538
+ uploadPath: "organizations/" + _.department.name + "/avatars",
2539
+ class: "w-8r aspect-1x1 o-hidden mn-r-small radius-extra"
2540
+ }, null, 8, ["photo", "uploadPath"]),
2541
+ n("div", xo, [
2542
+ m(E, {
2543
+ field: _.department.profile.name,
2544
+ "onUpdate:field": d[1] || (d[1] = (u) => _.department.profile.name = u),
2545
+ label: "Name",
2546
+ placeholder: "Spot Name",
2547
+ class: "mn-small bg-white radius-small pd-medium",
2548
+ validation: c.organizationName
2549
+ }, null, 8, ["field", "validation"]),
2550
+ m(E, {
2551
+ field: _.department.profile.description,
2552
+ "onUpdate:field": d[2] || (d[2] = (u) => _.department.profile.description = u),
2553
+ label: "Description",
2554
+ placeholder: "Spot description (max 120 symbols)",
2555
+ class: "bg-white radius-small pd-medium",
2556
+ validation: c.organizationName
2557
+ }, null, 8, ["field", "validation"])
2558
+ ])
2559
+ ])
2560
+ ]),
2561
+ n("div", ko, [
2562
+ Co,
2563
+ Oo,
2564
+ n("div", Lo, [
2565
+ m(I, {
2566
+ label: "Pickup",
2567
+ name: "Delivery",
2568
+ value: "pickup",
2569
+ class: "w-100 mn-r-small bg-white radius-small pd-small",
2570
+ radio: _.department.delivery
2571
+ }, null, 8, ["radio"]),
2572
+ m(I, {
2573
+ label: "Delivery",
2574
+ name: "Delivery",
2575
+ value: "courier",
2576
+ class: "w-100 mn-r-small bg-white radius-small pd-small",
2577
+ radio: _.department.delivery
2578
+ }, null, 8, ["radio"]),
2579
+ m(I, {
2580
+ label: "Post",
2581
+ name: "Delivery",
2582
+ value: "post",
2583
+ class: "w-100 bg-white radius-small pd-small",
2584
+ radio: _.department.delivery
2585
+ }, null, 8, ["radio"])
2586
+ ]),
2587
+ So,
2588
+ n("div", zo, [
2589
+ m(I, {
2590
+ label: "Cash",
2591
+ name: "Payment",
2592
+ value: "cash",
2593
+ class: "w-100 mn-r-small bg-white radius-small pd-small",
2594
+ radio: _.department.payment
2595
+ }, null, 8, ["radio"]),
2596
+ m(I, {
2597
+ label: "Bank Transfer",
2598
+ name: "Payment",
2599
+ value: "bank",
2600
+ class: "w-100 mn-r-small bg-white radius-small pd-small",
2601
+ radio: _.department.payment
2602
+ }, null, 8, ["radio"]),
2603
+ m(I, {
2604
+ label: "Crypto",
2605
+ name: "Payment",
2606
+ value: "crypto",
2607
+ class: "w-100 bg-white radius-small pd-small",
2608
+ radio: _.department.payment
2609
+ }, null, 8, ["radio"])
2610
+ ])
2611
+ ])
2612
+ ]),
2613
+ n("div", Mo, [
2614
+ Po,
2615
+ m(oa, {
2616
+ apiKey: c.GOOGLE_MAPS_API_KEY,
2617
+ address: _.department.address,
2618
+ location: _.department.location,
2619
+ label: "Address",
2620
+ placeholder: "Enter delivery address",
2621
+ class: "bg-white radius-small pd-small mn-small",
2622
+ "onUpdate:location": d[3] || (d[3] = (u) => {
2623
+ _.department.location = u;
2624
+ }),
2625
+ "onUpdate:address": d[4] || (d[4] = (u) => {
2626
+ _.department.address = u;
2627
+ })
2628
+ }, null, 8, ["apiKey", "address", "location"]),
2629
+ Ao,
2630
+ m(ua, {
2631
+ address: _.department.address,
2632
+ location: _.department.location,
2633
+ apiKey: c.GOOGLE_MAPS_API_KEY,
2634
+ class: "radius-big o-hidden",
2635
+ "onUpdate:location": d[5] || (d[5] = (u) => {
2636
+ _.department.location = u;
2637
+ }),
2638
+ "onUpdate:address": d[6] || (d[6] = (u) => {
2639
+ _.department.address = u;
2640
+ })
2641
+ }, null, 8, ["address", "location", "apiKey"])
2642
+ ])
2643
+ ]),
2644
+ n("section", Do, [
2645
+ m(ce, {
2646
+ submit: p,
2647
+ callback: c.redirectToDash,
2648
+ class: "bg-grey"
2649
+ }, {
2650
+ default: y(() => [
2651
+ X("Delete Spot")
2652
+ ]),
2653
+ _: 1
2654
+ }, 8, ["callback"])
2655
+ ])
2656
+ ]));
2657
+ }
2658
+ }, Eo = /* @__PURE__ */ M(Vo, [["__scopeId", "data-v-6a9ce43d"]]), ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2659
+ __proto__: null,
2660
+ default: Eo
2661
+ }, Symbol.toStringTag, { value: "Module" })), Fo = { class: "unit" }, To = { class: "unit-details" }, Io = { key: 0 }, Uo = { class: "subunits" }, Ji = {
2662
+ __name: "Unit",
2663
+ props: {
2664
+ unit: {
2665
+ type: Object,
2666
+ required: !0
2667
+ },
2668
+ editMode: {
2669
+ type: Boolean,
2670
+ required: !0
2671
+ }
2672
+ },
2673
+ setup(e) {
2674
+ const t = e, s = w({ ...t.unit });
2675
+ H(t.unit, () => {
2676
+ s.value = { ...t.unit };
2677
+ });
2678
+ async function i() {
2679
+ emit("unit-updated", s.value);
2680
+ }
2681
+ async function l() {
2682
+ emit("subunit-added", t.unit._id);
2683
+ }
2684
+ return (o, p) => {
2685
+ const c = me("unit-component");
2686
+ return a(), r("div", Fo, [
2687
+ n("div", To, [
2688
+ n("h3", null, g(e.unit.name), 1),
2689
+ n("p", null, g(e.unit.description), 1),
2690
+ e.editMode ? (a(), r("div", Io, [
2691
+ se(n("input", {
2692
+ "onUpdate:modelValue": p[0] || (p[0] = (d) => s.value.name = d),
2693
+ placeholder: "Название отдела"
2694
+ }, null, 512), [
2695
+ [$e, s.value.name]
2696
+ ]),
2697
+ se(n("input", {
2698
+ "onUpdate:modelValue": p[1] || (p[1] = (d) => s.value.description = d),
2699
+ placeholder: "Описание отдела"
2700
+ }, null, 512), [
2701
+ [$e, s.value.description]
2702
+ ]),
2703
+ n("button", { onClick: i }, "Сохранить"),
2704
+ n("button", { onClick: l }, "Добавить подотдел")
2705
+ ])) : f("", !0)
2706
+ ]),
2707
+ n("div", Uo, [
2708
+ (a(!0), r(k, null, C(e.unit.subunits, (d, u) => (a(), b(c, {
2709
+ key: u,
2710
+ unit: d,
2711
+ "edit-mode": e.editMode
2712
+ }, null, 8, ["unit", "edit-mode"]))), 128))
2713
+ ])
2714
+ ]);
2715
+ };
2716
+ }
2717
+ };
2718
+ const Bo = { class: "for-transition bg-white radius-big w-100" }, jo = { class: "" }, Ro = {
2719
+ key: 1,
2720
+ class: "cols-1"
2721
+ }, Qi = {
2722
+ __name: "Organizations",
2723
+ props: {
2724
+ owner: {
2725
+ type: String,
2726
+ default: null
2727
+ },
2728
+ user: {
2729
+ type: [String, Number],
2730
+ default: null
2731
+ },
2732
+ onlyuser: {
2733
+ type: [String, Number],
2734
+ default: null
2735
+ }
2736
+ },
2737
+ async setup(e) {
2738
+ let t, s;
2739
+ const i = e, l = w(null);
2740
+ l.value = ([t, s] = ee(() => J.read({ owner: i.owner, user: i.user, onlyuser: i.onlyuser })), t = await t, s(), t);
2741
+ const o = j(), p = B();
2742
+ let c = p.query.tab ? p.query.tab : "details";
2743
+ const d = w(c);
2744
+ return p.query.tab = d.value, H(d, (u) => {
2745
+ o.replace({ query: { ...p.query, tab: u } });
2746
+ }), (u, h) => (a(), r("div", Bo, [
2747
+ n("div", jo, [
2748
+ l.value < 1 ? (a(), b(_e, {
2749
+ key: 0,
2750
+ title: "You Haven't Joined Any Organization Yet",
2751
+ description: "Weeder is all about community. Join an organization or maybe you want to create your own?",
2752
+ action: "Create organization",
2753
+ callback: u.a = () => u.$router.push("/app/organization/create/details")
2754
+ }, null, 8, ["callback"])) : (a(), r("div", Ro, [
2755
+ (a(!0), r(k, null, C(l.value, (v) => (a(), b(Ke, {
2756
+ key: v._id,
2757
+ organization: v,
2758
+ user: T.user,
2759
+ onUpdateMembership: u.handleMembershipUpdate,
2760
+ class: ne(["w-100", { "mn-r-small": u.index !== l.value.length - 1 }])
2761
+ }, null, 8, ["organization", "user", "onUpdateMembership", "class"]))), 128))
2762
+ ]))
2763
+ ])
2764
+ ]));
2765
+ }
2766
+ };
2767
+ const qo = (e) => (ae("data-v-20739d92"), e = e(), oe(), e), No = { class: "documents" }, Ho = /* @__PURE__ */ qo(() => /* @__PURE__ */ n("h3", { class: "mn-small" }, "Список документов", -1)), Zo = { class: "mn-big cols-4" }, Ko = ["onClick"], Go = { class: "mn-small" }, Yo = { class: "t-semi t-transp radius-small" }, Wo = {
2768
+ __name: "Documents",
2769
+ setup(e) {
2770
+ j(), B();
2771
+ let t = [{
2772
+ name: "Паспорт",
2773
+ status: "Не добавлен",
2774
+ inputs: [{
2775
+ type: "text",
2776
+ name: "Номер и серия"
2777
+ }, {
2778
+ type: "text",
2779
+ name: "Место выдачи"
2780
+ }, {
2781
+ type: "text",
2782
+ name: "Дата выдачи"
2783
+ }]
2784
+ }, {
2785
+ name: "ИНН",
2786
+ status: "Не добавлен",
2787
+ inputs: [{
2788
+ type: "text",
2789
+ name: "Дата регистрации"
2790
+ }]
2791
+ }, {
2792
+ name: "СНИЛС",
2793
+ status: "Не добавлен",
2794
+ inputs: [{
2795
+ type: "text",
2796
+ name: "Дата регистрации"
2797
+ }]
2798
+ }, {
2799
+ name: "Военный билет",
2800
+ status: "Не добавлен",
2801
+ inputs: [{
2802
+ type: "text",
2803
+ name: "Дата регистрации"
2804
+ }]
2805
+ }];
2806
+ const s = w(!1), i = w(null), l = (c) => {
2807
+ i.value = c, s.value = !0;
2808
+ }, o = () => {
2809
+ s.value = !1;
2810
+ }, p = () => {
2811
+ o();
2812
+ };
2813
+ return de(() => {
2814
+ }), (c, d) => {
2815
+ const u = me("Popup");
2816
+ return a(), r("div", No, [
2817
+ Ho,
2818
+ n("div", Zo, [
2819
+ (a(!0), r(k, null, C($(t), (h, v) => (a(), r("div", {
2820
+ key: v,
2821
+ onClick: (O) => l(v),
2822
+ class: "h-100 pd-medium bg-white radius-small"
2823
+ }, [
2824
+ n("h3", Go, g(h.name), 1),
2825
+ n("p", Yo, g(h.status), 1)
2826
+ ], 8, Ko))), 128))
2827
+ ]),
2828
+ m(u, {
2829
+ title: "Добавить документ",
2830
+ onClosePopup: o,
2831
+ isPopupOpen: s.value
2832
+ }, {
2833
+ default: y(() => [
2834
+ (a(!0), r(k, null, C($(t)[i.value].inputs, (h) => (a(), r("div", {
2835
+ key: h.name
2836
+ }, [
2837
+ m(E, {
2838
+ field: h.value,
2839
+ "onUpdate:field": (v) => h.value = v,
2840
+ label: h.name,
2841
+ _id: h.name,
2842
+ placeholder: h.name,
2843
+ class: "w-100"
2844
+ }, null, 8, ["field", "onUpdate:field", "label", "_id", "placeholder"])
2845
+ ]))), 128)),
2846
+ n("button", {
2847
+ onClick: p,
2848
+ class: "w-100 mn-small button"
2849
+ }, "Отправить на верификацию")
2850
+ ]),
2851
+ _: 1
2852
+ }, 8, ["isPopupOpen"])
2853
+ ]);
2854
+ };
2855
+ }
2856
+ }, Xi = /* @__PURE__ */ M(Wo, [["__scopeId", "data-v-20739d92"]]), Jo = {};
2857
+ function Qo(e, t) {
2858
+ const s = me("router-view");
2859
+ return a(), b(s, null, {
2860
+ default: y(({ Component: i, route: l }) => [
2861
+ (a(), b(re(i)))
2862
+ ]),
2863
+ _: 1
2864
+ });
2865
+ }
2866
+ const Xo = /* @__PURE__ */ M(Jo, [["render", Qo]]), ei = [{
2867
+ path: ":_id",
2868
+ name: "Organization",
2869
+ meta: {
2870
+ title: {
2871
+ en: "Organization",
2872
+ ru: "Организация"
2873
+ }
2874
+ },
2875
+ component: () => Promise.resolve().then(() => zn)
2876
+ }, {
2877
+ path: "create",
2878
+ name: "Create Organization",
2879
+ meta: {
2880
+ title: {
2881
+ en: "Create Organization",
2882
+ ru: "Создать Организацию"
2883
+ }
2884
+ },
2885
+ beforeEnter: [Q],
2886
+ component: () => Promise.resolve().then(() => ke)
2887
+ }, {
2888
+ path: ":_id/edit",
2889
+ name: "Organization Edit",
2890
+ meta: {
2891
+ title: {
2892
+ en: "Edit Organization",
2893
+ ru: "Редактировать Организацию"
2894
+ }
2895
+ },
2896
+ beforeEnter: [Q],
2897
+ component: () => Promise.resolve().then(() => ke)
2898
+ }], ti = [{
2899
+ path: ":_id/departments/create",
2900
+ name: "Department Creation",
2901
+ meta: {
2902
+ title: "Создание отдела"
2903
+ },
2904
+ beforeEnter: [Q],
2905
+ component: () => Promise.resolve().then(() => ze)
2906
+ }, {
2907
+ path: ":_id/departments/:department",
2908
+ name: "Department",
2909
+ meta: {
2910
+ title: "Отдел"
2911
+ },
2912
+ beforeEnter: [Q],
2913
+ component: () => Promise.resolve().then(() => Hn)
2914
+ }, {
2915
+ path: ":_id/departments/:department/edit",
2916
+ name: "Department Edit",
2917
+ meta: {
2918
+ title: "Редактирование отдела"
2919
+ },
2920
+ beforeEnter: [Q],
2921
+ component: () => Promise.resolve().then(() => ze)
2922
+ }], si = [{
2923
+ path: ":_id/members",
2924
+ name: "Organization Members",
2925
+ meta: {
2926
+ title: {
2927
+ en: "Members",
2928
+ ru: "Участникb"
2929
+ }
2930
+ },
2931
+ component: () => import("./Members-7251dd52.mjs")
2932
+ }, {
2933
+ path: ":_id/members/invite",
2934
+ name: "Invite Member",
2935
+ component: () => Promise.resolve().then(() => rn)
2936
+ }], ni = [{
2937
+ path: ":_id/products/:product",
2938
+ name: "Product Organization",
2939
+ meta: {
2940
+ title: {
2941
+ en: "Product",
2942
+ ru: "Продукт"
2943
+ }
2944
+ },
2945
+ component: () => import("./Product-299070ad.mjs")
2946
+ }, {
2947
+ path: ":_id/products/:product/edit",
2948
+ name: "ProductEdit",
2949
+ beforeEnter: [Q],
2950
+ component: () => import("./ProductEdit-70bed802.mjs")
2951
+ }, {
2952
+ path: ":_id/products/add",
2953
+ name: "AddProduct",
2954
+ component: () => import("./ProductEdit-70bed802.mjs")
2955
+ }], el = [{
2956
+ path: "organizations",
2957
+ component: Xo,
2958
+ meta: {
2959
+ title: {
2960
+ en: "Organizations",
2961
+ ru: "Организации"
2962
+ }
2963
+ },
2964
+ children: [
2965
+ ...ei,
2966
+ ...ti,
2967
+ ...ni,
2968
+ ...si
2969
+ ]
2970
+ }];
2971
+ export {
2972
+ Ws as C,
2973
+ Eo as D,
2974
+ ge as U,
2975
+ ln as _,
2976
+ Fe as a,
2977
+ Gi as b,
2978
+ Sn as c,
2979
+ Nn as d,
2980
+ ea as e,
2981
+ Yi as f,
2982
+ Ji as g,
2983
+ Ve as h,
2984
+ Wi as i,
2985
+ Ni as j,
2986
+ _e as k,
2987
+ qi as l,
2988
+ Zi as m,
2989
+ gs as n,
2990
+ Qi as o,
2991
+ Xi as p,
2992
+ Ki as q,
2993
+ Hi as r,
2994
+ U as s,
2995
+ el as t
2996
+ };