@ozdao/martyrs 0.2.428 → 0.2.430

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/community.server.js +1 -1
  2. package/dist/community.server.mjs +1 -1
  3. package/dist/events.server.js +1 -1
  4. package/dist/events.server.mjs +1 -1
  5. package/dist/gallery.server.js +1 -1
  6. package/dist/gallery.server.mjs +1 -1
  7. package/dist/{globals.logger-Deb_8o7C.mjs → globals.cache-BT6q3vOf.mjs} +0 -33
  8. package/dist/{globals.logger-BuG0pN80.js → globals.cache-CwWvNGFQ.js} +0 -33
  9. package/dist/globals.logger-BdjooLaD.js +34 -0
  10. package/dist/globals.logger-DusiFsxN.mjs +35 -0
  11. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs +13 -3
  12. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs.map +1 -1
  13. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js +14 -4
  14. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js.map +1 -1
  15. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +24 -6
  16. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  17. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +25 -7
  18. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  19. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +7 -8
  20. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  21. package/dist/martyrs/src/modules/chats/store/chat.store.js +7 -8
  22. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  23. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +6 -8
  24. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
  25. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +6 -8
  26. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
  27. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -8
  28. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +11 -8
  30. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  31. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +5 -5
  32. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  33. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +5 -5
  34. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  35. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +17 -9
  36. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
  37. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +17 -9
  38. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
  39. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -4
  40. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  41. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +16 -4
  42. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  43. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
  45. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  46. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +7 -1
  48. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +7 -1
  50. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  51. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +112 -0
  52. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -0
  53. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +112 -0
  54. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -0
  55. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +2 -2
  56. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  57. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
  58. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  59. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +18 -12
  60. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs.map +1 -1
  61. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +18 -12
  62. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  63. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +200 -92
  64. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  65. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +213 -105
  66. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +9 -12
  68. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +10 -13
  70. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +14 -6
  72. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +23 -15
  74. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +16 -99
  76. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +16 -99
  78. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +2 -2
  80. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +2 -2
  82. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +99 -99
  84. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +102 -102
  86. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +14 -8
  88. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +15 -9
  90. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/orders/store/orders.cjs +51 -0
  92. package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/orders/store/orders.js +51 -0
  94. package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
  95. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +59 -56
  96. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +63 -60
  98. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/organizations/store/organizations.cjs +0 -2
  100. package/dist/martyrs/src/modules/organizations/store/organizations.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/organizations/store/organizations.js +1 -3
  102. package/dist/martyrs/src/modules/organizations/store/organizations.js.map +1 -1
  103. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +4 -3
  104. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -4
  106. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +15 -12
  108. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +15 -12
  110. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/spots/store/spots.cjs +2 -2
  112. package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/spots/store/spots.js +2 -2
  114. package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
  115. package/dist/martyrs.css +1 -1
  116. package/dist/orders.server.js +11 -4
  117. package/dist/orders.server.mjs +10 -3
  118. package/dist/organizations.server.js +33 -30
  119. package/dist/organizations.server.mjs +33 -30
  120. package/dist/products.server.js +1 -1
  121. package/dist/products.server.mjs +1 -1
  122. package/dist/{queryProcessor-CCmHM0yi.mjs → queryProcessor-CWnMIe2U.mjs} +4 -1
  123. package/dist/{queryProcessor-CwQakZkT.js → queryProcessor-D6GuKfTV.js} +4 -1
  124. package/dist/rents.server.js +4 -3
  125. package/dist/rents.server.mjs +3 -2
  126. package/dist/spots.server.js +41 -12
  127. package/dist/spots.server.mjs +41 -12
  128. package/dist/style.css +57 -65
  129. package/dist/wallet.server.js +1 -1
  130. package/dist/wallet.server.mjs +1 -1
  131. package/package.json +1 -1
  132. package/src/modules/chats/components/pages/ChatPage.vue +18 -23
  133. package/src/modules/chats/components/sections/ChatWindow.vue +55 -38
  134. package/src/modules/chats/store/chat.store.js +20 -21
  135. package/src/modules/globals/controllers/utils/queryProcessor.js +2 -1
  136. package/src/modules/globals/views/classes/globals.websocket.js +10 -11
  137. package/src/modules/globals/views/components/layouts/Client.vue +21 -15
  138. package/src/modules/globals/views/components/partials/Header.vue +3 -4
  139. package/src/modules/globals/views/components/partials/Navigation.vue +17 -19
  140. package/src/modules/globals/views/components/partials/Sidebar.vue +20 -9
  141. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +1 -1
  142. package/src/modules/notifications/components/elements/NotificationBadge.vue +7 -0
  143. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +106 -0
  144. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
  145. package/src/modules/orders/components/blocks/CardOrderUser.vue +16 -9
  146. package/src/modules/orders/components/pages/OrderBackoffice.vue +146 -77
  147. package/src/modules/orders/components/pages/OrderCreate.vue +7 -12
  148. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +15 -3
  149. package/src/modules/orders/components/pages/Orders.vue +10 -93
  150. package/src/modules/orders/components/partials/ShopCart.vue +2 -2
  151. package/src/modules/orders/components/sections/FormDelivery.vue +35 -43
  152. package/src/modules/orders/components/sections/FormPayment.vue +17 -7
  153. package/src/modules/orders/controllers/orders.controller.js +12 -1
  154. package/src/modules/orders/store/orders.js +65 -0
  155. package/src/modules/organizations/components/pages/Organization.vue +48 -47
  156. package/src/modules/organizations/controllers/organizations.controller.js +57 -47
  157. package/src/modules/organizations/store/organizations.js +6 -6
  158. package/src/modules/products/components/pages/Products.vue +4 -3
  159. package/src/modules/spots/components/blocks/CardSpot.vue +8 -7
  160. package/src/modules/spots/controllers/spots.controller.js +47 -14
  161. package/src/modules/spots/routes/spots.routes.js +2 -3
  162. package/src/modules/spots/store/spots.js +4 -4
  163. package/src/styles/base/shadow_transitions_hover_refactor.scss +1 -0
  164. package/src/modules/landing/components/sections/HowToBuyWDR.vue +0 -130
  165. package/src/modules/landing/components/sections/WhatIsWDRSection.vue +0 -116
package/dist/style.css CHANGED
@@ -1116,15 +1116,18 @@ div.vue-tags-input.disabled * {
1116
1116
  }
1117
1117
  .moveFromTop-enter-active,
1118
1118
  .moveFromTop-leave-active {
1119
- transform: translateY(0);
1120
- opacity: 1;
1121
- transition: all 0.5s ease;
1119
+ transition: all 0.3s ease, max-height 0.2s ease;
1120
+ overflow: hidden;
1122
1121
  }
1123
1122
  .moveFromTop-enter-from,
1124
1123
  .moveFromTop-leave-to {
1125
1124
  transform: translateY(-1rem);
1126
1125
  opacity: 0;
1127
- transition: all 0.5s ease;
1126
+ max-height: 0;
1127
+ }
1128
+ .moveFromTop-enter-to,
1129
+ .moveFromTop-leave-from {
1130
+ max-height: 100vh;
1128
1131
  }
1129
1132
  .moveFromTopAbsolute-enter-active,
1130
1133
  .moveFromTopAbsolute-leave-active {
@@ -1277,21 +1280,21 @@ div.vue-tags-input.disabled * {
1277
1280
  margin-left: 0.5rem;
1278
1281
  }
1279
1282
 
1280
- .notification-badge-container[data-v-31a828f9] {
1283
+ .notification-badge-container[data-v-73074f7a] {
1281
1284
  position: relative;
1282
1285
  display: inline-block;
1283
1286
  }
1284
- .notification-button[data-v-31a828f9] {
1287
+ .notification-button[data-v-73074f7a] {
1285
1288
  background: none;
1286
1289
  border: none;
1287
1290
  cursor: pointer;
1288
1291
  position: relative;
1289
1292
  font-size: 1.2rem;
1290
1293
  }
1291
- .notification-icon[data-v-31a828f9] {
1294
+ .notification-icon[data-v-73074f7a] {
1292
1295
  font-size: 1.4rem;
1293
1296
  }
1294
- .button-counter[data-v-31a828f9] {
1297
+ .button-counter[data-v-73074f7a] {
1295
1298
  position: absolute;
1296
1299
  right: -8px;
1297
1300
  bottom: -8px;
@@ -1305,7 +1308,7 @@ div.vue-tags-input.disabled * {
1305
1308
  line-height: 16px;
1306
1309
  font-size: 10px;
1307
1310
  }
1308
- .notifications-dropdown[data-v-31a828f9] {
1311
+ .notifications-dropdown[data-v-73074f7a] {
1309
1312
  position: absolute;
1310
1313
  top: 100%;
1311
1314
  right: 0;
@@ -1317,40 +1320,40 @@ div.vue-tags-input.disabled * {
1317
1320
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
1318
1321
  z-index: 1000;
1319
1322
  }
1320
- .notifications-header[data-v-31a828f9] {
1323
+ .notifications-header[data-v-73074f7a] {
1321
1324
  display: flex;
1322
1325
  justify-content: space-between;
1323
1326
  align-items: center;
1324
1327
  padding: 12px 16px;
1325
1328
  border-bottom: 1px solid #eee;
1326
1329
  }
1327
- .notifications-header h3[data-v-31a828f9] {
1330
+ .notifications-header h3[data-v-73074f7a] {
1328
1331
  margin: 0;
1329
1332
  font-size: 1rem;
1330
1333
  }
1331
- .mark-all-read-btn[data-v-31a828f9] {
1334
+ .mark-all-read-btn[data-v-73074f7a] {
1332
1335
  background: none;
1333
1336
  border: none;
1334
1337
  color: #2196f3;
1335
1338
  font-size: 0.8rem;
1336
1339
  cursor: pointer;
1337
1340
  }
1338
- .notifications-loading[data-v-31a828f9],
1339
- .notifications-empty[data-v-31a828f9] {
1341
+ .notifications-loading[data-v-73074f7a],
1342
+ .notifications-empty[data-v-73074f7a] {
1340
1343
  padding: 24px;
1341
1344
  text-align: center;
1342
1345
  color: #666;
1343
1346
  }
1344
- .notifications-list[data-v-31a828f9] {
1347
+ .notifications-list[data-v-73074f7a] {
1345
1348
  max-height: 300px;
1346
1349
  overflow-y: auto;
1347
1350
  }
1348
- .notifications-footer[data-v-31a828f9] {
1351
+ .notifications-footer[data-v-73074f7a] {
1349
1352
  padding: 12px 16px;
1350
1353
  text-align: center;
1351
1354
  border-top: 1px solid #eee;
1352
1355
  }
1353
- .notifications-footer a[data-v-31a828f9] {
1356
+ .notifications-footer a[data-v-73074f7a] {
1354
1357
  color: #2196f3;
1355
1358
  text-decoration: none;
1356
1359
  font-size: 0.9rem;
@@ -1432,29 +1435,23 @@ div.vue-tags-input.disabled * {
1432
1435
  transform: translateX(0%);
1433
1436
  opacity: 1;
1434
1437
  }
1435
- .sidebar-item-btn:hover .sidebar-item-icon[data-v-baa33ec9],
1436
- .sidebar-subitem-link:hover .sidebar-subitem-icon[data-v-baa33ec9] {
1438
+ .sidebar-item-btn:hover .sidebar-item-icon[data-v-43d4ca8b],
1439
+ .sidebar-subitem-link:hover .sidebar-subitem-icon[data-v-43d4ca8b] {
1437
1440
  transform: scale(1.1);
1438
1441
  }
1439
- .sidebar-item-btn:hover .sidebar-item-icon[data-v-baa33ec9] {
1442
+ .sidebar-item-btn:hover .sidebar-item-icon[data-v-43d4ca8b] {
1440
1443
  transform: scale(1.1);
1441
1444
  }
1442
- .sidebar-subitem-link:hover .sidebar-subitem-icon[data-v-baa33ec9] {
1445
+ .sidebar-subitem-link:hover .sidebar-subitem-icon[data-v-43d4ca8b] {
1443
1446
  transform: scale(1.1);
1444
1447
  }
1445
- .sidebar-subitem-link[data-v-baa33ec9]:hover {
1446
- background: var(--light-regular);
1447
- }
1448
- .sidebar-item-btn[data-v-baa33ec9]:hover {
1449
- background: var(--light-regular);
1450
- }
1451
- .expanded-item[data-v-baa33ec9] {
1448
+ .expanded-item[data-v-43d4ca8b] {
1452
1449
  display: flex;
1453
1450
  align-items: center;
1454
1451
  width: 100%;
1455
1452
  border-radius: var(--small);
1456
1453
  }
1457
- .sidebar-item-btn[data-v-baa33ec9] {
1454
+ .sidebar-item-btn[data-v-43d4ca8b] {
1458
1455
  align-items: center;
1459
1456
  border-radius: var(--small);
1460
1457
  transition: all 0.2s;
@@ -1462,16 +1459,16 @@ div.vue-tags-input.disabled * {
1462
1459
  border: none;
1463
1460
  cursor: pointer;
1464
1461
  }
1465
- .sidebar-item-title[data-v-baa33ec9] {
1462
+ .sidebar-item-title[data-v-43d4ca8b] {
1466
1463
  font-weight: 500;
1467
1464
  transition: opacity 0.2s, width 0.2s;
1468
1465
  white-space: nowrap;
1469
1466
  }
1470
- .sidebar-item-icon[data-v-baa33ec9] {
1467
+ .sidebar-item-icon[data-v-43d4ca8b] {
1471
1468
  font-size: 1.25rem;
1472
1469
  transition: transform 0.2s;
1473
1470
  }
1474
- .sidebar-category[data-v-baa33ec9] {
1471
+ .sidebar-category[data-v-43d4ca8b] {
1475
1472
  font-size: 0.75rem;
1476
1473
  font-weight: 600;
1477
1474
  text-transform: uppercase;
@@ -1481,7 +1478,7 @@ div.vue-tags-input.disabled * {
1481
1478
  transition: opacity 0.2s;
1482
1479
  color: var(--grey-medium);
1483
1480
  }
1484
- .sidebar-highlight-indicator[data-v-baa33ec9] {
1481
+ .sidebar-highlight-indicator[data-v-43d4ca8b] {
1485
1482
  position: absolute;
1486
1483
  left: 0;
1487
1484
  width: 4px;
@@ -1490,60 +1487,60 @@ div.vue-tags-input.disabled * {
1490
1487
  background: linear-gradient(to bottom, var(--second-regular), var(--second-small));
1491
1488
  transition: opacity 0.2s;
1492
1489
  }
1493
- .sidebar-dropdown-icon[data-v-baa33ec9] {
1490
+ .sidebar-dropdown-icon[data-v-43d4ca8b] {
1494
1491
  color: var(--grey-medium);
1495
1492
  transition: transform 0.2s;
1496
1493
  }
1497
- .rotate-180[data-v-baa33ec9] {
1494
+ .rotate-180[data-v-43d4ca8b] {
1498
1495
  transform: rotate(180deg);
1499
1496
  }
1500
- .sidebar-submenu[data-v-baa33ec9] {
1497
+ .sidebar-submenu[data-v-43d4ca8b] {
1501
1498
  margin-top: var(--micro);
1502
1499
  margin-left: var(--semi);
1503
1500
  display: flex;
1504
1501
  flex-direction: column;
1505
1502
  gap: var(--micro);
1506
1503
  }
1507
- .sidebar-subitem-link[data-v-baa33ec9] {
1504
+ .sidebar-subitem-link[data-v-43d4ca8b] {
1508
1505
  display: flex;
1509
1506
  align-items: center;
1510
1507
  text-decoration: none;
1511
1508
  transition: all 0.2s;
1512
1509
  }
1513
- .sidebar-subitem-title[data-v-baa33ec9] {
1510
+ .sidebar-subitem-title[data-v-43d4ca8b] {
1514
1511
  font-size: 0.875rem;
1515
1512
  }
1516
- .hidden[data-v-baa33ec9] {
1513
+ .hidden[data-v-43d4ca8b] {
1517
1514
  opacity: 0;
1518
1515
  width: 0;
1519
1516
  display: none;
1520
1517
  }
1521
- .visible[data-v-baa33ec9] {
1518
+ .visible[data-v-43d4ca8b] {
1522
1519
  opacity: 1;
1523
1520
  display: block;
1524
1521
  }
1525
1522
 
1526
1523
  /* Dropdown animations */
1527
- .dropdown-enter[data-v-baa33ec9], .dropdown-leave[data-v-baa33ec9] {
1524
+ .dropdown-enter[data-v-43d4ca8b], .dropdown-leave[data-v-43d4ca8b] {
1528
1525
  transition: all 0.3s ease-in-out;
1529
1526
  }
1530
- .dropdown-enter-from[data-v-baa33ec9], .dropdown-leave-to[data-v-baa33ec9] {
1527
+ .dropdown-enter-from[data-v-43d4ca8b], .dropdown-leave-to[data-v-43d4ca8b] {
1531
1528
  opacity: 0;
1532
1529
  transform: translateY(-0.5rem);
1533
1530
  }
1534
- .dropdown-enter-to[data-v-baa33ec9], .dropdown-leave-from[data-v-baa33ec9] {
1531
+ .dropdown-enter-to[data-v-43d4ca8b], .dropdown-leave-from[data-v-43d4ca8b] {
1535
1532
  opacity: 1;
1536
1533
  transform: translateY(0);
1537
1534
  }
1538
1535
 
1539
1536
  /* Base sidebar styling */
1540
- .sidebar-container[data-v-be741cc6] {
1537
+ .sidebar-container[data-v-948b3b5a] {
1541
1538
  position: relative;
1542
1539
  left: 0;
1543
1540
  top: 0;
1544
1541
  transition: all 0.3s ease-in-out;
1545
1542
  }
1546
- .dark-mode-toggle[data-v-be741cc6] {
1543
+ .dark-mode-toggle[data-v-948b3b5a] {
1547
1544
  align-items: center;
1548
1545
  width: 100%;
1549
1546
  border-radius: var(--small);
@@ -1553,48 +1550,43 @@ div.vue-tags-input.disabled * {
1553
1550
  background: transparent;
1554
1551
  cursor: pointer;
1555
1552
  }
1556
- .dark-mode-toggle[data-v-be741cc6]:hover {
1553
+ .dark-mode-toggle[data-v-948b3b5a]:hover {
1557
1554
  background: var(--light-regular);
1558
1555
  }
1559
- .dark-mode-label[data-v-be741cc6] {
1556
+ .dark-mode-label[data-v-948b3b5a] {
1560
1557
  font-weight: 500;
1561
1558
  transition: opacity 0.2s, width 0.2s;
1562
1559
  white-space: nowrap;
1563
1560
  }
1564
- .dark-mode-icon[data-v-be741cc6] {
1561
+ .dark-mode-icon[data-v-948b3b5a] {
1565
1562
  font-size: 1.25rem;
1566
1563
  transition: transform 0.2s;
1567
1564
  }
1568
- .dark-mode-toggle:hover .dark-mode-icon[data-v-be741cc6] {
1565
+ .dark-mode-toggle:hover .dark-mode-icon[data-v-948b3b5a] {
1569
1566
  transform: scale(1.1);
1570
1567
  }
1571
- .sidebar-footer[data-v-be741cc6] {
1572
- border-top-width: 1px;
1573
- border-top-style: solid;
1574
- border-top-color: var(--light-regular);
1575
- }
1576
- .hidden[data-v-be741cc6] {
1568
+ .hidden[data-v-948b3b5a] {
1577
1569
  opacity: 0;
1578
1570
  width: 0;
1579
1571
  display: none;
1580
1572
  }
1581
- .visible[data-v-be741cc6] {
1573
+ .visible[data-v-948b3b5a] {
1582
1574
  opacity: 1;
1583
1575
  display: block;
1584
1576
  }
1585
1577
 
1586
1578
  /* Scrollbar styles */
1587
- [data-v-be741cc6]::-webkit-scrollbar {
1579
+ [data-v-948b3b5a]::-webkit-scrollbar {
1588
1580
  width: 6px;
1589
1581
  }
1590
- [data-v-be741cc6]::-webkit-scrollbar-track {
1582
+ [data-v-948b3b5a]::-webkit-scrollbar-track {
1591
1583
  background: transparent;
1592
1584
  }
1593
- [data-v-be741cc6]::-webkit-scrollbar-thumb {
1585
+ [data-v-948b3b5a]::-webkit-scrollbar-thumb {
1594
1586
  background-color: var(--grey-micro);
1595
1587
  border-radius: 3px;
1596
1588
  }
1597
- [data-v-be741cc6]::-webkit-scrollbar-thumb:hover {
1589
+ [data-v-948b3b5a]::-webkit-scrollbar-thumb:hover {
1598
1590
  background-color: var(--grey-small);
1599
1591
  }
1600
1592
 
@@ -1603,7 +1595,7 @@ div.vue-tags-input.disabled * {
1603
1595
  width: 100%;
1604
1596
  }
1605
1597
 
1606
- .subspotsartment[data-v-6f954e4d] {
1598
+ .subspotsartment[data-v-be40b3c0] {
1607
1599
  border: 1px solid rgba(0, 0, 0, 0.1);
1608
1600
  margin-top: 1rem;
1609
1601
  }
@@ -2481,7 +2473,7 @@ to {
2481
2473
  }
2482
2474
 
2483
2475
  /* Добавляем стиль для текста "просрочено" */
2484
- .t-red[data-v-c36567a0] {
2476
+ .t-red[data-v-f18ee795] {
2485
2477
  color: red;
2486
2478
  }
2487
2479
  .round-wrapper {
@@ -2508,10 +2500,10 @@ to {
2508
2500
  }
2509
2501
  .vue-select-header {
2510
2502
  height: 3rem;
2511
- }.blink[data-v-eeb4cbf7] {
2512
- animation: blink-animation-eeb4cbf7 1s ease infinite;
2503
+ }.blink[data-v-c30b339c] {
2504
+ animation: blink-animation-c30b339c 1s ease infinite;
2513
2505
  }
2514
- @keyframes blink-animation-eeb4cbf7 {
2506
+ @keyframes blink-animation-c30b339c {
2515
2507
  0%, 100% {
2516
2508
  opacity: 1;
2517
2509
  }
@@ -9,7 +9,7 @@ const tickets_controller = require("./tickets.controller-CcxkRHlX.js");
9
9
  const require$$0 = require("stripe");
10
10
  const require$$0$1 = require("mongoose");
11
11
  const require$$1 = require("bignumber.js");
12
- const queryProcessor = require("./queryProcessor-CwQakZkT.js");
12
+ const queryProcessor = require("./queryProcessor-D6GuKfTV.js");
13
13
  var wallet_model;
14
14
  var hasRequiredWallet_model;
15
15
  function requireWallet_model() {
@@ -8,7 +8,7 @@ import { r as requireTickets_controller } from "./tickets.controller-Bbxe7kaF.mj
8
8
  import require$$0 from "stripe";
9
9
  import require$$0$1 from "mongoose";
10
10
  import require$$1 from "bignumber.js";
11
- import { r as requireQueryProcessor } from "./queryProcessor-CCmHM0yi.mjs";
11
+ import { r as requireQueryProcessor } from "./queryProcessor-CWnMIe2U.mjs";
12
12
  var wallet_model;
13
13
  var hasRequiredWallet_model;
14
14
  function requireWallet_model() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozdao/martyrs",
3
- "version": "0.2.428",
3
+ "version": "0.2.430",
4
4
  "description": "Fullstack framework focused on user experience and ease of development.",
5
5
  "author": "OZ DAO <hello@ozdao.dev>",
6
6
  "license": "GPL-3.0-or-later",
@@ -1,19 +1,11 @@
1
1
  <template>
2
- <!-- <div class="chat-page h-max-20r"> -->
3
- <!-- <aside class="chat-list"> -->
4
- <!-- Примерный список чатов. Должен быть дополнен реальной логикой -->
5
- <!-- <div v-for="chat in chats" :key="chat.id" @click="selectChat(chat.id)">
6
- Чат {{ chat.name }}
7
- </div> -->
8
- <!-- </aside> -->
9
- <!-- <main class="chat-main"> -->
10
- <ChatWindow />
11
- <!-- </main> -->
12
- <!-- </div> -->
2
+ <main class="chat-main">
3
+ <ChatWindow />
4
+ </main>
13
5
  </template>
14
6
 
15
7
  <script setup>
16
- import { ref, onMounted } from 'vue';
8
+ import { ref, onMounted, onUnmounted } from 'vue';
17
9
  import ChatWindow from '../sections/ChatWindow.vue';
18
10
  import chatStore from '../../store/chat.store.js';
19
11
 
@@ -22,29 +14,32 @@ const props = defineProps({
22
14
  type: String,
23
15
  required: true
24
16
  },
17
+ user: {
18
+ type: String,
19
+ required: true
20
+ },
25
21
  chatID: {
26
22
  type: String,
27
23
  required: true
28
24
  },
29
- })
30
-
31
- // const chats = ref([
32
- // // Примерный список. В реальном приложении, список чатов должен загружаться с сервера.
33
- // { id: 'chat1', name: 'Чат 1' },
34
- // { id: 'chat2', name: 'Чат 2' }
35
- // ]);
25
+ });
36
26
 
37
27
  const selectChat = (chatId) => {
38
28
  chatStore.methods.setCurrentChat(chatId);
39
29
  };
40
30
 
41
- onMounted(async() => {
31
+ onMounted(async () => {
42
32
  chatStore.methods.setUsername(props.username || 'user'); // Установка имени пользователя
43
- await chatStore.methods.connectWebSocket(); // Подключение к WebSocket
44
- chatStore.methods.setCurrentChat(props.chatID);
33
+ await chatStore.methods.connectWebSocket(props.user); // Подключение к WebSocket
34
+ await chatStore.methods.setCurrentChat(props.chatID);
35
+ });
36
+
37
+ onUnmounted(() => {
38
+ // Clean up when the component is unmounted (e.g., navigating away)
39
+ chatStore.methods.disconnectChat();
45
40
  });
46
41
  </script>
47
42
 
48
43
  <style>
49
44
  /* Стили остаются без изменений */
50
- </style>
45
+ </style>
@@ -1,40 +1,34 @@
1
1
  <template>
2
2
  <div class="bg-white radius-semi bg-white o-hidden pos-relative">
3
-
4
- <div ref="allMessages" class="chat-messages o-scroll h-max-20r">
5
- <div class="pos-relative h-min-20r flex-justify-end flex flex-column br-b br-solid br-black-transp-10">
6
- <transition name="scaleIn" mode="out-in">
7
- <div v-if="messages.length < 1" class="flex-center pd-small t-center w-100 h-100 flex-column flex pos-absolute">
8
- <PlaceholderChat class="radius-100 mn-b-thin"/>
9
- <h4 class='mn-b-thin'>Here you can view your chat history</h4>
10
- <p>Feel free to ask if you have any questions.</p>
11
- </div>
3
+ <div ref="allMessages" class="chat-messages o-scroll h-max-20r">
4
+ <div class="pos-relative h-min-20r flex-justify-end flex flex-column br-b br-solid br-black-transp-10">
5
+ <transition name="scaleIn" mode="out-in">
6
+ <div v-if="messages.length < 1" class="flex-center pd-small t-center w-100 h-100 flex-column flex pos-absolute">
7
+ <PlaceholderChat class="radius-100 mn-b-thin"/>
8
+ <h4 class='mn-b-thin'>Here you can view your chat history</h4>
9
+ <p>Feel free to ask if you have any questions.</p>
10
+ </div>
12
11
 
13
- <TransitionGroup v-else name="list" tag="ul" class="w-100 o-hidden">
14
- <ChatMessage
15
- v-for="message in messages"
16
- :key="message._id"
17
- :message="message"
18
- />
19
-
20
- </TransitionGroup>
21
- </transition>
22
-
23
- </div>
12
+ <TransitionGroup v-else name="list" tag="ul" class="w-100 o-hidden" @after-enter="scrollToBottom">
13
+ <ChatMessage
14
+ v-for="message in messages"
15
+ :key="message._id"
16
+ :message="message"
17
+ />
18
+ </TransitionGroup>
19
+ </transition>
24
20
  </div>
21
+ </div>
25
22
 
26
-
27
- <div class="flex-nowrap flex-v-center flex bg-white w-100 radius-big pd-small">
28
- <IconAdd
29
- class="mn-r-thin t-transp i-regular"
30
- />
31
- <input class="" placeholder="Enter your message" type="text" v-model="newMessage" @keyup.enter="sendMessage" />
32
- </div>
23
+ <div class="flex-nowrap flex-v-center flex bg-white w-100 radius-big pd-small">
24
+ <IconAdd class="mn-r-thin t-transp i-regular" />
25
+ <input class="" placeholder="Enter your message" type="text" v-model="newMessage" @keyup.enter="sendMessage" />
26
+ </div>
33
27
  </div>
34
28
  </template>
35
29
 
36
30
  <script setup>
37
- import { ref, computed, watch } from 'vue';
31
+ import { ref, computed, watch, onMounted, nextTick } from 'vue';
38
32
 
39
33
  import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'
40
34
  import PlaceholderChat from '@martyrs/src/modules/icons/placeholders/PlaceholderChat.vue'
@@ -43,13 +37,20 @@ import ChatMessage from '../blocks/ChatMessage.vue';
43
37
  import chatStore from '../../store/chat.store.js';
44
38
 
45
39
  const newMessage = ref('');
46
- const allMessages = ref(null)
40
+ const allMessages = ref(null);
47
41
 
48
42
  // Вычисляемые свойства
49
43
  const messages = computed(() => chatStore.state.messages);
50
44
 
45
+ // Функция прокрутки вниз
46
+ const scrollToBottom = () => {
47
+ if (allMessages.value) {
48
+ allMessages.value.scrollTop = allMessages.value.scrollHeight;
49
+ }
50
+ };
51
+
51
52
  // Функция для отправки сообщения
52
- const sendMessage = () => {
53
+ const sendMessage = async () => {
53
54
  if (newMessage.value) {
54
55
  const message = {
55
56
  text: newMessage.value,
@@ -58,18 +59,34 @@ const sendMessage = () => {
58
59
  };
59
60
 
60
61
  chatStore.methods.addMessage(message);
61
- console.log(allMessages.value.lastElementChild.offsetHeight)
62
- allMessages.value.scrollTop = allMessages.value.lastElementChild.offsetHeight
63
-
64
62
  newMessage.value = '';
63
+
64
+ // Ждем, пока все анимации и рендеринг завершатся
65
+ await nextTick();
66
+ await new Promise(resolve => setTimeout(resolve, 100)); // Небольшая задержка для анимаций
67
+ scrollToBottom();
65
68
  }
66
69
  };
67
70
 
68
- // // При добавлении нового сообщения автоматически прокручиваем вниз
69
- watch(chatStore.state.messages, () => {
70
- allMessages.value.scrollTop = allMessages.value.lastElementChild.offsetHeight
71
- }, {deep: true});
71
+ // Прокрутка вниз при монтировании
72
+ onMounted(() => {
73
+ nextTick(() => {
74
+ if (allMessages.value) {
75
+ allMessages.value.scrollTop = allMessages.value.scrollHeight;
76
+ }
77
+ });
78
+ });
79
+
80
+ // Прокрутка вниз при изменении сообщений
81
+ watch(messages, () => {
82
+ nextTick(() => {
83
+ if (allMessages.value) {
84
+ allMessages.value.scrollTop = allMessages.value.scrollHeight;
85
+ }
86
+ });
87
+ }, { deep: true });
72
88
 
89
+ // Обработчик после завершения анимации входа нового элемента
73
90
  </script>
74
91
 
75
92
  <style>
@@ -82,4 +99,4 @@ watch(chatStore.state.messages, () => {
82
99
  opacity: 0;
83
100
  transform: translateX(30px);
84
101
  }
85
- </style>
102
+ </style>
@@ -8,41 +8,38 @@ const state = reactive({
8
8
  });
9
9
 
10
10
  const methods = {
11
- async connectWebSocket() {
12
- console.log('process env')
13
- console.log(process.env.WSS_URL)
14
-
11
+ async connectWebSocket(user) {
15
12
  // Use the global WebSocket instance
16
13
  try {
17
- // Get userId from auth store or another source if available
18
- const userId = window.__user_id || null;
19
-
20
- // Connect to the global WebSocket
21
- await globalWebSocket.connect(userId);
22
-
14
+ console.log('connect', user);
15
+ await globalWebSocket.connect(user);
16
+
17
+ // Remove any existing 'message' listeners for the 'chat' module to avoid duplicates
18
+ globalWebSocket.removeModuleListeners('chat');
19
+
23
20
  // Register chat message event listener
24
- globalWebSocket.addEventListener('message', (data) => {
21
+ const listenerId = globalWebSocket.addEventListener('message', (data) => {
25
22
  if (data.chatId === state.currentChatId) {
26
23
  state.messages.push(data);
27
24
  }
28
25
  }, { module: 'chat' });
29
-
26
+
30
27
  return globalWebSocket;
31
28
  } catch (error) {
32
29
  console.error('Failed to connect to WebSocket:', error);
33
30
  throw error;
34
31
  }
35
32
  },
36
-
33
+
37
34
  setMessages(messages) {
38
- console.log(process.env.API_URL)
35
+ console.log(process.env.API_URL);
39
36
  state.messages = messages;
40
37
  },
41
-
42
- addMessage(message) {
43
- globalWebSocket.send(message);
38
+
39
+ async addMessage(message) {
40
+ await globalWebSocket.send(message);
44
41
  },
45
-
42
+
46
43
  async setCurrentChat(chatId) {
47
44
  state.currentChatId = chatId;
48
45
  state.messages = []; // Clear current messages when changing chat
@@ -56,14 +53,16 @@ const methods = {
56
53
 
57
54
  methods.setMessages(messages);
58
55
  },
59
-
56
+
60
57
  setUsername(username) {
61
58
  state.username = username;
62
59
  },
63
-
60
+
64
61
  disconnectChat() {
65
- // Remove chat-specific listeners when leaving chat page
62
+ // Remove all chat-specific listeners when leaving chat page
66
63
  globalWebSocket.removeModuleListeners('chat');
64
+ // Optionally disconnect the WebSocket if no longer needed
65
+ // globalWebSocket.disconnect(); // Uncomment if you want to fully disconnect
67
66
  }
68
67
  };
69
68
 
@@ -2,7 +2,7 @@ const ObjectId = require('mongoose').Types.ObjectId;
2
2
 
3
3
  function getBasicOptions(query) {
4
4
  console.log(query);
5
- const { _id, url, status, notstatus, type, owner, customer, creator } = query;
5
+ const { _id, url, status, notstatus, type, organization, owner, customer, creator } = query;
6
6
  const stages = [];
7
7
  const conditions = [];
8
8
 
@@ -33,6 +33,7 @@ function getBasicOptions(query) {
33
33
 
34
34
  if (type) { conditions.push({ type: type }); }
35
35
  if (owner) { conditions.push({ "owner.target": new ObjectId(owner) }); }
36
+ if (organization) { conditions.push({ "organization": new ObjectId(organization) }); }
36
37
  if (customer) { conditions.push({ "customer.target": new ObjectId(customer) }); }
37
38
  if (creator) { conditions.push({ "creator.target": new ObjectId(creator) }); }
38
39