mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-10 03:37:43 +02:00
Add link preview in new chat (#9090)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
This commit is contained in:
Generated
+126
-126
@@ -35,26 +35,26 @@ importers:
|
||||
specifier: ^8.4.1
|
||||
version: 8.4.1
|
||||
'@hcengineering/communication-client-query':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-rest-client':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-server':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-yaml':
|
||||
specifier: 0.1.191
|
||||
version: 0.1.191(typescript@5.3.3)
|
||||
specifier: 0.1.192
|
||||
version: 0.1.192(typescript@5.3.3)
|
||||
'@hocuspocus/provider':
|
||||
specifier: ^2.15.2
|
||||
version: 2.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-protocols@1.0.6(yjs@13.6.23))(yjs@13.6.23)
|
||||
@@ -3003,48 +3003,48 @@ packages:
|
||||
'@hcengineering/card@0.7.88':
|
||||
resolution: {integrity: sha512-3JDgocHFSGmQuKsrtQ5CTTm4rpd/PHahIx6oNX8sshDGpS2hnvNtrHNkJf39seIKiq0NNKmJ//Etl4I21h4c6w==, tarball: https://npm.pkg.github.com/download/@hcengineering/card/0.7.88/e39b9e182325945494f162f2dd6f16ef9bea0f3e}
|
||||
|
||||
'@hcengineering/communication-client-query@0.1.191':
|
||||
resolution: {integrity: sha512-a6TPy3EblgbeVXoLjXFDRIHgstmcWhksrsZaAjKlNE1mXSapPjBQLKVTrsSMxs9heoJnHyhZjK8gDV4W801OCw==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-client-query/0.1.191/856547affa48dfa8d14fc93aeb1dd37dc1cb1aea}
|
||||
'@hcengineering/communication-client-query@0.1.192':
|
||||
resolution: {integrity: sha512-+6WyS8FNCCtkB3Jxn5RA1PHI2OV5+/3fALjLtcMafgdIo3KsXe7EPCY88+KJS+iJR9ODw3zSGwZb/KHVpFnkwQ==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-client-query/0.1.192/6f59aae10df1eb88572c04bff5a043cff722bf7f}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-cockroach@0.1.191':
|
||||
resolution: {integrity: sha512-QtwLF6DsuitfXqAgKEgBpBgfcgLppjPLUuHM82yjay1T00ulr2RjEPpEVTT8cnWX8wPT6Y1HwEN+A8Cd+rhB3A==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-cockroach/0.1.191/2ce82718ed7a90aff789e65f7ba4dac349801668}
|
||||
'@hcengineering/communication-cockroach@0.1.192':
|
||||
resolution: {integrity: sha512-zBTtPClYE4Nw8z6QR7g6rETCr1Ja4IctypzlXFCWkVZhqH4xH4qyCpFTdZ1FafgRGGAs+ZD4942DdmLf6P+yyg==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-cockroach/0.1.192/61de4a5e268df02a855e98e550893209c47faf11}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-query@0.1.191':
|
||||
resolution: {integrity: sha512-LdxVdBkEz1iIQblecvG5ykBA5taBkxPZHmYOHOFeemqj/i1vih8N881PAPF50V2ZAT3EmG0wbVl95GaeqxR7Hg==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-query/0.1.191/ab41a7246216182d8943907db0ff1d6c349a3514}
|
||||
'@hcengineering/communication-query@0.1.192':
|
||||
resolution: {integrity: sha512-G/OGij01wPvjetnRyIKJOtZxTMiAlz2Rx1UoWfueOgAz9OJ1lnUUwMnELdSM94FXf/x3Vk4Qo2HV4ZURzYA8sQ==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-query/0.1.192/6d159a91ea996989eb8066fdd9447af1d52f9cc0}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-rest-client@0.1.191':
|
||||
resolution: {integrity: sha512-dMXPCbvZSo5TOmoq9lyWlmym6hhv5YZi3uSy0EoWn5dTStVm+1qEB+alcJ6YNAeTJlqAZ7armS3xluZzsrPH/Q==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-rest-client/0.1.191/8d96a4e67447ae975986939c50b075698bd79f55}
|
||||
'@hcengineering/communication-rest-client@0.1.192':
|
||||
resolution: {integrity: sha512-7BMJw03svbN2zbznik2dUfeup8IwOL/9bgB8Yl6JmpCAB9IkdXLpn68jSRtLN8nCe7OfqSAFs2Q2glSrIZo8Xw==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-rest-client/0.1.192/3dcb1c69921470cf80ef5f1c9e90b59bf8488ea6}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-sdk-types@0.1.191':
|
||||
resolution: {integrity: sha512-xZoik0nH0acXKttxy1F6Fz24ZxrA4JkBLVSHMWsuVHC+rwwSrHAR0sF17fpnldElrMBqCG/dhFlx2pIQE3GYCQ==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-sdk-types/0.1.191/2afe5877009aba60fe474ec936b2cbb25a394de0}
|
||||
'@hcengineering/communication-sdk-types@0.1.192':
|
||||
resolution: {integrity: sha512-V8gGlX4aR/LZdgzyu8q+ZUtDYtMW3TyancFLkDS5Uqim2lbGl+Jfd/kGs7YOr1O8LJUMwpdgD8wPVcS6egA+rA==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-sdk-types/0.1.192/55a3516f97ca9ea7e4c77bab981fb857ea71085a}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-server@0.1.191':
|
||||
resolution: {integrity: sha512-p5VAMQVS5c7lovmHljZRPqvnsULgA/Slvi7BvGzMD/mtyx3uy0OrHmIsM278s/bmBb2GaShxZZuwemCNu2Ayrw==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-server/0.1.191/11ef8e29bb59c8c668ed6b19d7d3bfdf4a4693b8}
|
||||
'@hcengineering/communication-server@0.1.192':
|
||||
resolution: {integrity: sha512-Wt8gRIE5wRmxRD8CSQE72TLzOcdGpni8c+eknoGrgOnUNNX0Mz0jsZXNGBNgtYf485bTEQt9umeTdr0M9ZINDg==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-server/0.1.192/31c1c4fe5019da50afcdb1956e106875251356d6}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-shared@0.1.191':
|
||||
resolution: {integrity: sha512-yIArgk8zmgv7gQ0tzZKpIApQ5hLUdq0CySHveH+nvPr8+Gd9NXCo1giztPXNF0mfZzXJh79rACxqiz3C1eIEEQ==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-shared/0.1.191/55aafcdc28c987971fa7d39d3486c8341819da3a}
|
||||
'@hcengineering/communication-shared@0.1.192':
|
||||
resolution: {integrity: sha512-XtuJM81xzI3ory+EcqTNvVcEmBYDgHzddfPjvMnl1eOJKOcCHHkshiGjOdYYo1Er3XX4iPRFj7FSQSEQXLpz2A==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-shared/0.1.192/3737f15c6f549d183f514b1576ebdc2c8251580c}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-types@0.1.191':
|
||||
resolution: {integrity: sha512-p8I9dnlYpfmxzAW+ZaTjflnQ4n0QMIBk34ABdDB8OEUdt6ZXUJRBAIYbrNz+nJM4DjoqKP+eZ5jNqL/7srTYMw==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-types/0.1.191/cf603c1b5d581eefe5ed3c04f2eb41da3ea50fe2}
|
||||
'@hcengineering/communication-types@0.1.192':
|
||||
resolution: {integrity: sha512-e9gAro6QEtvCatDXOjitETeh9ejSr+NhF59VuHIHHLdCWtePc1vKxf38aRi/reDTLU1JPHoFlvFRRC7BRr+Gag==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-types/0.1.192/96ec931f063fc51603dd5bc1058640a3bfdbbe07}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
'@hcengineering/communication-yaml@0.1.191':
|
||||
resolution: {integrity: sha512-Z7CSFkrYHkQ8KzrLiIodAu7t4QIFkdAWaDJO08YnJ/Oz9gS/Md1AJfKbf7Ihrsd7RrFs8efVd+NvrChmaFBdSA==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-yaml/0.1.191/46df9300079d369915108a2c0e63171976b1f945}
|
||||
'@hcengineering/communication-yaml@0.1.192':
|
||||
resolution: {integrity: sha512-EJ4/J4rUyqtkpREdSq+EZDZJbs1Ekzx0BlojSIoIjv6T4KJCTCgTv0UtOVTmL2YUXdOXuahLjFz6/LgqGcaLww==, tarball: https://npm.pkg.github.com/download/@hcengineering/communication-yaml/0.1.192/6d4dacda71fe80da832cc4114c9fbf6fa43e6262}
|
||||
peerDependencies:
|
||||
typescript: ^5.6.3
|
||||
|
||||
@@ -3972,7 +3972,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/activity-resources@file:projects/activity-resources.tgz':
|
||||
resolution: {integrity: sha512-MHhQ94/bpbr9FIby6Mko1AwxSL24Rd5evB1sIBqJIeOuTrmw6NoVRGleXXTV2tyKiLMGHLRKZX8l82O7HqkQcg==, tarball: file:projects/activity-resources.tgz}
|
||||
resolution: {integrity: sha512-BWIT2EhUenDoip7W0Z72cy+bk3w0cIIPzRr0LUP6++lUaeTR1m4EqVCehaH7z+rG8Es24TGjL2NSuBcFS6luKg==, tarball: file:projects/activity-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/activity@file:projects/activity.tgz':
|
||||
@@ -4076,7 +4076,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/card-resources@file:projects/card-resources.tgz':
|
||||
resolution: {integrity: sha512-taQdkoguI2POW2F4bfevBiG3fHB38UML1AbsJf7u20skavJPxt2cFYATCUsILjfwyJDyYxcBa1704vhlK9qTgQ==, tarball: file:projects/card-resources.tgz}
|
||||
resolution: {integrity: sha512-GTOrrnhZ+pfTFPVQ24GNCJy7yhTz6QYmO+c1PxrRYHloRfhnFeAc/vmEJleN1JtdpPAktfyQCbXBaTiv9YgpRA==, tarball: file:projects/card-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/card@file:projects/card.tgz':
|
||||
@@ -4088,7 +4088,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/chat-resources@file:projects/chat-resources.tgz':
|
||||
resolution: {integrity: sha512-MmF5dJfYC52k87iKDfZfSxwjUdfMl+tjeT5+RuMDCIPg23rN8Pt0GCoPzhHbBspKGJW3iG6Fnsg8y0soUFlbMw==, tarball: file:projects/chat-resources.tgz}
|
||||
resolution: {integrity: sha512-I6mGrf3YaAqL6RK4EtBVn5CNVfxf7pWKEv47xgeMswHtfEffsTPYkDUHyNsCyaDpWY97lMTnVBEFr+T7b87X2Q==, tarball: file:projects/chat-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/chat@file:projects/chat.tgz':
|
||||
@@ -4108,7 +4108,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/client-resources@file:projects/client-resources.tgz':
|
||||
resolution: {integrity: sha512-zIr+wGXLwhWw3K7H6DdXJ86K2KRYVzhNEG1/RVjLBhC9DkyceCi4PtgKR01+Gq6BFWBEFcwII/B37xdVdzDPOA==, tarball: file:projects/client-resources.tgz}
|
||||
resolution: {integrity: sha512-VX5kl5O5Yf6uYwEk060mM9Rn6wgUmRgtJnDyqwB2JoDAme4q8IBghUz4tLoa1rp/28RpH6tIrHGFWwRpSC0nHw==, tarball: file:projects/client-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/client@file:projects/client.tgz':
|
||||
@@ -4132,7 +4132,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/communication-resources@file:projects/communication-resources.tgz':
|
||||
resolution: {integrity: sha512-Qb3to4molkfpLYNQK5WP+Dj7UH8141h32JqoV/7YgdBsw1SJeS52IBGLftHwa1FEhM7gwiHjgRlJnL0aQ8L8nA==, tarball: file:projects/communication-resources.tgz}
|
||||
resolution: {integrity: sha512-Z0riTqBWeYsD+GjJIV9V4D2JNMRMIcKgaeiBOS0TSZihg5906HgaFcfSIS0d8ag45M2mIRWpAXjhted9jlbh/w==, tarball: file:projects/communication-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/communication@file:projects/communication.tgz':
|
||||
@@ -4340,7 +4340,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/inbox-resources@file:projects/inbox-resources.tgz':
|
||||
resolution: {integrity: sha512-MXE7we34ENFD437n5kF+2DyEBOxWoyXTqSFtVPWqocrMzBKxG9DhSr4oU3ReaMPIgmgDCz6sC/2bhEJ+v+2nIw==, tarball: file:projects/inbox-resources.tgz}
|
||||
resolution: {integrity: sha512-gtpffGRh/iYJwvYAohHZVDhuS3vThmMaIrgFD/muIDzUoOir8hp7RIgCOp5tjz7osMWpnKiBcuReyjsf5CwwxQ==, tarball: file:projects/inbox-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/inbox@file:projects/inbox.tgz':
|
||||
@@ -4412,7 +4412,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/mail-common@file:projects/mail-common.tgz':
|
||||
resolution: {integrity: sha512-SCDM0zbw4I2GnH9iQlfXmfdVLp/ypeYI4tN4IS96J+z2jpCDQShfXLpvGQceCWXHKmtSUaKDQI/qXVoRFk066w==, tarball: file:projects/mail-common.tgz}
|
||||
resolution: {integrity: sha512-l/lLdriz6ZeNYmyAJov0gBRqYKx6Ixt+lbrcEe5UNvY3mq0o2dYT2qBktiVOXRBovU37KRuetux3OIHyzTXdTw==, tarball: file:projects/mail-common.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/mail@file:projects/mail.tgz':
|
||||
@@ -4896,11 +4896,11 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-gmail@file:projects/pod-gmail.tgz':
|
||||
resolution: {integrity: sha512-iLarvkzk5YrsNPLs+u8QC8nA7cFy/JOQGCDgZigFU9wF0ajA9XE404ZSFDGdj41eelpjIlFDOnwlAufBLcWvlQ==, tarball: file:projects/pod-gmail.tgz}
|
||||
resolution: {integrity: sha512-M3P9ahGc/bgDUe2gd++nUOSZZDQB81HJneVErjj57b/cMMESYP7aKnQg3OAxgwB7Hy+k/dE/sk3qNzOgvnhsHw==, tarball: file:projects/pod-gmail.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-inbound-mail@file:projects/pod-inbound-mail.tgz':
|
||||
resolution: {integrity: sha512-j9HCnmxyXpZ7uqALbQ7DQ0Oy+PpdKIA49BYkkQ0kwU42sddLu1U1yWBRKILZ4IcuXeAfkwnHdMnpLuENPBwH9A==, tarball: file:projects/pod-inbound-mail.tgz}
|
||||
resolution: {integrity: sha512-wJEzWSq4Gb57La2Tej86OK3Ve3sYmqagQ8w/Ira6MqwdVRCqCVFXChqw5UWUyihnpI/nLudwKIKB2UMPJQ1THA==, tarball: file:projects/pod-inbound-mail.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-love@file:projects/pod-love.tgz':
|
||||
@@ -4912,7 +4912,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-msg2file@file:projects/pod-msg2file.tgz':
|
||||
resolution: {integrity: sha512-AgwjAt7FQ+D6cdcBOCALKL1tcqlW9pas7SdXZhrXUjyafMYFk2Rejr4+daQqCzy7AdvktRdzaZqlhOA31eVluw==, tarball: file:projects/pod-msg2file.tgz}
|
||||
resolution: {integrity: sha512-GHaObyopiK8FJ50Lu2PlpYq60M6GiK5fufsy8doalubepR+rJ9nfivEQ6wNK1fKxeamybOTYd9acloQS/ZiiIg==, tarball: file:projects/pod-msg2file.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-print@file:projects/pod-print.tgz':
|
||||
@@ -4920,7 +4920,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-server@file:projects/pod-server.tgz':
|
||||
resolution: {integrity: sha512-KIYdQyioTgMz2rXe1vMupICntZ/Go/oYDH0VkQ6sDC5kGFNJujvU0NAW6bJ4/ACLvEYS2AQyacStB5NfOlqfDA==, tarball: file:projects/pod-server.tgz}
|
||||
resolution: {integrity: sha512-8gQ3m2rACoaCYgbC/E7fCfp3/pzo43Lz5II41z3BihbCpi/FGVk/r3aCEwQu2LWvCa/O313ye6nHIZ5w/Mmk8Q==, tarball: file:projects/pod-server.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/pod-ses@file:projects/pod-ses.tgz':
|
||||
@@ -4968,7 +4968,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/presentation@file:projects/presentation.tgz':
|
||||
resolution: {integrity: sha512-Y8C7mjkaLouFCdOkaf8se0GrcQ6qRMtjtPUREsrEQI0y6l6Qc/W2kjrY9KnBMpvrDlmUcuxTK5LphZYfz82OKQ==, tarball: file:projects/presentation.tgz}
|
||||
resolution: {integrity: sha512-ljHTHhvbM5t3LkZWLan/evFJWvi9hJXgNEEwanmt1hH3NCVFisyHjetQup851XKL7m8imTWcEISYWxbky5eYvQ==, tarball: file:projects/presentation.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/print-assets@file:projects/print-assets.tgz':
|
||||
@@ -5096,7 +5096,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server-activity-resources@file:projects/server-activity-resources.tgz':
|
||||
resolution: {integrity: sha512-hdZkjpqJm6lB9dPlF4VgBbNd6nsTf8eTa6CbKhQikn3Yw8rCZYw4jPUO6jZDziYdiqZTE0FmEgpsz6aM1P6XLA==, tarball: file:projects/server-activity-resources.tgz}
|
||||
resolution: {integrity: sha512-8FMY6q0vlJ7lQ18MlJuQnFyYweIxcFMSNUDgMSaK+BWTzYUVsMv2OvTPvijkjvIeRhMlCv9rR2jAGkSiH4GYiA==, tarball: file:projects/server-activity-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server-activity@file:projects/server-activity.tgz':
|
||||
@@ -5140,7 +5140,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server-card-resources@file:projects/server-card-resources.tgz':
|
||||
resolution: {integrity: sha512-prxa83jp7ZNdgmjyEZHWZo0D+1urgkCC2cROpItEWXua5aA7OvlWh8IQLzgS+XcEecQjXoAgZag45jCg0Q5KgA==, tarball: file:projects/server-card-resources.tgz}
|
||||
resolution: {integrity: sha512-ljEU2tExqCjn4gp/im4z1ipJNRv7TEl9ywljnou/rJe/jPaRnz6prsNiEZdVVz/JmTOsIFkpevhRzpn4WzRQyg==, tarball: file:projects/server-card-resources.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server-card@file:projects/server-card.tgz':
|
||||
@@ -5184,7 +5184,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server-core@file:projects/server-core.tgz':
|
||||
resolution: {integrity: sha512-rD6zNjGNT6qXHPsZd5uHscPqMyvlkhN83xRtrbnEKEXfXjCYQTcbI7NxwY+jYEieQhC2XjE+gJtVP1TmxdPobQ==, tarball: file:projects/server-core.tgz}
|
||||
resolution: {integrity: sha512-E44hzsxxjYIXKOcxDe05hZux3TyxZik8YdWgM6hj1G50MH0sTrHUCirs3VXAbxmK11dWV+kn6qIFEMdadzz5yQ==, tarball: file:projects/server-core.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server-document-resources@file:projects/server-document-resources.tgz':
|
||||
@@ -5388,7 +5388,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/server@file:projects/server.tgz':
|
||||
resolution: {integrity: sha512-zXF/IlnYJRqX70mhaWr8+CJQuq2iuvE0LttvzPzRe0R+nGdxOGyvNpiLQ2FDUkSvW9BQKIFCFwyfeEBUjWQ9cQ==, tarball: file:projects/server.tgz}
|
||||
resolution: {integrity: sha512-Ah+wT1irFcBEym9jmGOjdD3Q8QhfT8uS95XgxFG0T9vyB/gtDtCh92i+AQKszMJHKwmqZmyh3GvXtei0WtprAQ==, tarball: file:projects/server.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/setting-assets@file:projects/setting-assets.tgz':
|
||||
@@ -5580,7 +5580,7 @@ packages:
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/ui-next@file:projects/ui-next.tgz':
|
||||
resolution: {integrity: sha512-9l5aWhbY/13d7Wr2D4SArufYCGblKDD4XUauk+DlAOc6XHo/XqAJaLk0kiUSkmNh8VdO3e2fbC+T5hIL1LQrsw==, tarball: file:projects/ui-next.tgz}
|
||||
resolution: {integrity: sha512-wER85AntwnQmHpxDwtB1pltm65UK6Jbq5WdpPyFGIRm82xCC2NIBqsPTzEMCNBkRDur/ODhiDGO1eu6zHZMVww==, tarball: file:projects/ui-next.tgz}
|
||||
version: 0.0.0
|
||||
|
||||
'@rush-temp/ui@file:projects/ui.tgz':
|
||||
@@ -14950,70 +14950,70 @@ snapshots:
|
||||
'@hcengineering/platform': 0.7.88
|
||||
'@hcengineering/ui': 0.7.88
|
||||
|
||||
'@hcengineering/communication-client-query@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-client-query@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-query': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-query': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
fast-equals: 5.2.2
|
||||
typescript: 5.3.3
|
||||
|
||||
'@hcengineering/communication-cockroach@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-cockroach@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
postgres: 3.4.5
|
||||
typescript: 5.3.3
|
||||
uuid: 11.1.0
|
||||
|
||||
'@hcengineering/communication-query@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-query@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-yaml': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-yaml': 0.1.192(typescript@5.3.3)
|
||||
fast-equals: 5.2.2
|
||||
typescript: 5.3.3
|
||||
uuid: 11.1.0
|
||||
|
||||
'@hcengineering/communication-rest-client@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-rest-client@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/core': 0.7.88
|
||||
snappyjs: 0.7.0
|
||||
typescript: 5.3.3
|
||||
|
||||
'@hcengineering/communication-rest-client@0.1.191(typescript@5.7.3)':
|
||||
'@hcengineering/communication-rest-client@0.1.192(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/core': 0.7.88
|
||||
snappyjs: 0.7.0
|
||||
typescript: 5.7.3
|
||||
|
||||
'@hcengineering/communication-sdk-types@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-sdk-types@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/core': 0.7.88
|
||||
typescript: 5.3.3
|
||||
|
||||
'@hcengineering/communication-sdk-types@0.1.191(typescript@5.7.3)':
|
||||
'@hcengineering/communication-sdk-types@0.1.192(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/core': 0.7.88
|
||||
typescript: 5.7.3
|
||||
|
||||
'@hcengineering/communication-server@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-server@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/account-client': 0.7.88
|
||||
'@hcengineering/communication-cockroach': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-yaml': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-cockroach': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-yaml': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/core': 0.7.88
|
||||
'@hcengineering/platform': 0.7.88
|
||||
'@hcengineering/server-token': 0.7.88
|
||||
@@ -15022,50 +15022,50 @@ snapshots:
|
||||
typescript: 5.3.3
|
||||
zod: 3.24.2
|
||||
|
||||
'@hcengineering/communication-shared@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-shared@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
typescript: 5.3.3
|
||||
|
||||
'@hcengineering/communication-shared@0.1.191(typescript@5.7.3)':
|
||||
'@hcengineering/communication-shared@0.1.192(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
typescript: 5.7.3
|
||||
|
||||
'@hcengineering/communication-types@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-types@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/card': 0.7.88
|
||||
'@hcengineering/core': 0.7.88
|
||||
'@hcengineering/tags': 0.7.88
|
||||
typescript: 5.3.3
|
||||
|
||||
'@hcengineering/communication-types@0.1.191(typescript@5.6.2)':
|
||||
'@hcengineering/communication-types@0.1.192(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@hcengineering/card': 0.7.88
|
||||
'@hcengineering/core': 0.7.88
|
||||
'@hcengineering/tags': 0.7.88
|
||||
typescript: 5.6.2
|
||||
|
||||
'@hcengineering/communication-types@0.1.191(typescript@5.7.3)':
|
||||
'@hcengineering/communication-types@0.1.192(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@hcengineering/card': 0.7.88
|
||||
'@hcengineering/core': 0.7.88
|
||||
'@hcengineering/tags': 0.7.88
|
||||
typescript: 5.7.3
|
||||
|
||||
'@hcengineering/communication-yaml@0.1.191(typescript@5.3.3)':
|
||||
'@hcengineering/communication-yaml@0.1.192(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
js-yaml: 4.1.0
|
||||
typescript: 5.3.3
|
||||
|
||||
'@hcengineering/communication-yaml@0.1.191(typescript@5.7.3)':
|
||||
'@hcengineering/communication-yaml@0.1.192(typescript@5.7.3)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
js-yaml: 4.1.0
|
||||
typescript: 5.7.3
|
||||
|
||||
@@ -16521,7 +16521,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/activity-resources@file:projects/activity-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
|
||||
@@ -17349,7 +17349,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/card-resources@file:projects/card-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@tiptap/pm@2.11.7)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.6.2)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.6.2)
|
||||
'@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
|
||||
'@types/html-to-text': 8.1.1
|
||||
'@types/jest': 29.5.12
|
||||
@@ -17444,7 +17444,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/chat-resources@file:projects/chat-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3)
|
||||
@@ -17604,8 +17604,8 @@ snapshots:
|
||||
|
||||
'@rush-temp/client-resources@file:projects/client-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@types/snappyjs': 0.7.1
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3)
|
||||
@@ -17791,7 +17791,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/communication-resources@file:projects/communication-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@types/node': 20.11.19
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.7.3)
|
||||
@@ -19454,7 +19454,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/inbox-resources@file:projects/inbox-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3)
|
||||
@@ -20012,10 +20012,10 @@ snapshots:
|
||||
|
||||
'@rush-temp/mail-common@file:projects/mail-common.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-rest-client': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-rest-client': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/express': 4.17.21
|
||||
'@types/jest': 29.5.12
|
||||
@@ -22415,7 +22415,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/pod-gmail@file:projects/pod-gmail.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/cors': 2.8.17
|
||||
'@types/express': 4.17.21
|
||||
@@ -22467,9 +22467,9 @@ snapshots:
|
||||
|
||||
'@rush-temp/pod-inbound-mail@file:projects/pod-inbound-mail.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-rest-client': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-rest-client': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/cors': 2.8.17
|
||||
'@types/express': 4.17.21
|
||||
@@ -22593,11 +22593,11 @@ snapshots:
|
||||
|
||||
'@rush-temp/pod-msg2file@file:projects/pod-msg2file.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-rest-client': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-yaml': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-rest-client': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-shared': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@hcengineering/communication-yaml': 0.1.192(typescript@5.7.3)
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/cors': 2.8.17
|
||||
'@types/express': 4.17.21
|
||||
@@ -22679,7 +22679,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/pod-server@file:projects/pod-server.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-server': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-server': 0.1.192(typescript@5.3.3)
|
||||
'@types/body-parser': 1.19.5
|
||||
'@types/cors': 2.8.17
|
||||
'@types/express': 4.17.21
|
||||
@@ -23132,9 +23132,9 @@ snapshots:
|
||||
|
||||
'@rush-temp/presentation@file:projects/presentation.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-client-query': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-client-query': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@types/png-chunks-extract': 1.0.2
|
||||
'@types/uuid': 8.3.4
|
||||
@@ -24136,8 +24136,8 @@ snapshots:
|
||||
|
||||
'@rush-temp/server-activity-resources@file:projects/server-activity-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
|
||||
@@ -24416,7 +24416,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/server-card-resources@file:projects/server-card-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.7.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.7.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.7.3)
|
||||
@@ -24699,8 +24699,8 @@ snapshots:
|
||||
|
||||
'@rush-temp/server-core@file:projects/server-core.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@types/node': 20.11.19
|
||||
'@types/uuid': 8.3.4
|
||||
@@ -26004,8 +26004,8 @@ snapshots:
|
||||
|
||||
'@rush-temp/server@file:projects/server.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-sdk-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.3.3)
|
||||
'@hcengineering/communication-sdk-types': 0.1.192(typescript@5.3.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.3.3)
|
||||
'@types/jest': 29.5.12
|
||||
'@types/node': 20.11.19
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3)
|
||||
@@ -27546,7 +27546,7 @@ snapshots:
|
||||
|
||||
'@rush-temp/ui-next@file:projects/ui-next.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))':
|
||||
dependencies:
|
||||
'@hcengineering/communication-types': 0.1.191(typescript@5.7.3)
|
||||
'@hcengineering/communication-types': 0.1.192(typescript@5.7.3)
|
||||
'@tiptap/core': 2.11.7(@tiptap/pm@2.11.7)
|
||||
'@tiptap/pm': 2.11.7
|
||||
'@types/dompurify': 3.0.5
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
"@hcengineering/client": "^0.6.18",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/collaborator-client": "^0.6.4",
|
||||
"@hcengineering/communication-client-query": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-client-query": "0.1.192",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/diffview": "^0.6.0",
|
||||
"@hcengineering/notification": "^0.6.23",
|
||||
|
||||
@@ -34,7 +34,10 @@ import {
|
||||
type Label,
|
||||
type FindLabelsParams,
|
||||
type FindCollaboratorsParams,
|
||||
type Collaborator
|
||||
type Collaborator,
|
||||
type FileData,
|
||||
type LinkPreviewData,
|
||||
type LinkPreviewID
|
||||
} from '@hcengineering/communication-types'
|
||||
import {
|
||||
type CreateFileEvent,
|
||||
@@ -55,15 +58,16 @@ import {
|
||||
NotificationRequestEventType,
|
||||
type RemoveNotificationContextEvent,
|
||||
type UpdateNotificationEvent,
|
||||
type UpdateNotificationQuery
|
||||
type UpdateNotificationQuery,
|
||||
type CreateLinkPreviewEvent,
|
||||
type RemoveLinkPreviewEvent
|
||||
} from '@hcengineering/communication-sdk-types'
|
||||
import {
|
||||
type Client as PlatformClient,
|
||||
type ClientConnection as PlatformConnection,
|
||||
getCurrentAccount,
|
||||
SocialIdType,
|
||||
generateId,
|
||||
type BlobMetadata
|
||||
generateId
|
||||
} from '@hcengineering/core'
|
||||
import { onDestroy } from 'svelte'
|
||||
import {
|
||||
@@ -223,26 +227,13 @@ class Client {
|
||||
await this.sendEvent(event)
|
||||
}
|
||||
|
||||
async createFile (
|
||||
card: CardID,
|
||||
message: MessageID,
|
||||
messageCreated: Date,
|
||||
blobId: BlobID,
|
||||
fileType: string,
|
||||
filename: string,
|
||||
size: number,
|
||||
meta?: BlobMetadata
|
||||
): Promise<void> {
|
||||
async createFile (card: CardID, message: MessageID, messageCreated: Date, data: FileData): Promise<void> {
|
||||
const event: CreateFileEvent = {
|
||||
type: MessageRequestEventType.CreateFile,
|
||||
card,
|
||||
message,
|
||||
messageCreated,
|
||||
blobId,
|
||||
fileType,
|
||||
filename,
|
||||
size,
|
||||
meta,
|
||||
data,
|
||||
creator: this.getSocialId()
|
||||
}
|
||||
await this.sendEvent(event)
|
||||
@@ -260,6 +251,35 @@ class Client {
|
||||
await this.sendEvent(event)
|
||||
}
|
||||
|
||||
async createLinkPreview (
|
||||
card: CardID,
|
||||
message: MessageID,
|
||||
messageCreated: Date,
|
||||
data: LinkPreviewData
|
||||
): Promise<void> {
|
||||
const event: CreateLinkPreviewEvent = {
|
||||
type: MessageRequestEventType.CreateLinkPreview,
|
||||
card,
|
||||
message,
|
||||
messageCreated,
|
||||
data,
|
||||
creator: this.getSocialId()
|
||||
}
|
||||
await this.sendEvent(event)
|
||||
}
|
||||
|
||||
async removeLinkPreview (card: CardID, message: MessageID, messageCreated: Date, id: LinkPreviewID): Promise<void> {
|
||||
const event: RemoveLinkPreviewEvent = {
|
||||
type: MessageRequestEventType.RemoveLinkPreview,
|
||||
card,
|
||||
message,
|
||||
messageCreated,
|
||||
id,
|
||||
creator: this.getSocialId()
|
||||
}
|
||||
await this.sendEvent(event)
|
||||
}
|
||||
|
||||
async updateNotificationContext (context: ContextID, lastView: Date): Promise<void> {
|
||||
const event: UpdateNotificationContextEvent = {
|
||||
type: NotificationRequestEventType.UpdateNotificationContext,
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"@hcengineering/attachment-resources": "^0.6.0",
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/chat": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/contact-resources": "^0.6.0",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
-->
|
||||
|
||||
<script lang="ts">
|
||||
import { getClient } from '@hcengineering/presentation'
|
||||
import { getClient, getCommunicationClient } from '@hcengineering/presentation'
|
||||
import cardPlugin, { Card } from '@hcengineering/card'
|
||||
import { Ref } from '@hcengineering/core'
|
||||
import { AttachmentPreview } from '@hcengineering/attachment-resources'
|
||||
import { Message, MessageType } from '@hcengineering/communication-types'
|
||||
import { Ref, getCurrentAccount } from '@hcengineering/core'
|
||||
import { AttachmentPreview, LinkPreview } from '@hcengineering/attachment-resources'
|
||||
import { Message, MessageType, LinkPreviewID } from '@hcengineering/communication-types'
|
||||
import { openDoc } from '@hcengineering/view-resources'
|
||||
|
||||
import ReactionsList from '../ReactionsList.svelte'
|
||||
@@ -29,6 +29,9 @@
|
||||
export let replies: boolean = true
|
||||
export let files: boolean = true
|
||||
|
||||
const me = getCurrentAccount()
|
||||
const communicationClient = getCommunicationClient()
|
||||
|
||||
function canReply (): boolean {
|
||||
return message.type === MessageType.Message || message.type === MessageType.Thread
|
||||
}
|
||||
@@ -52,6 +55,10 @@
|
||||
}
|
||||
|
||||
$: isThread = message.thread != null || message.type === MessageType.Thread
|
||||
|
||||
async function removeLinkPreview (id: LinkPreviewID): Promise<void> {
|
||||
await communicationClient.removeLinkPreview(message.card, message.id, message.created, id)
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
@@ -66,6 +73,29 @@
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
{#if !isThread && (message.links ?? []).length > 0}
|
||||
<div class="message__links">
|
||||
{#each message.links as link (link.id)}
|
||||
<LinkPreview
|
||||
isOwn={me.socialIds.includes(message.creator)}
|
||||
on:delete={() => {
|
||||
void removeLinkPreview(link.id)
|
||||
}}
|
||||
linkPreview={{
|
||||
url: link.url,
|
||||
host: link.host,
|
||||
title: link.title,
|
||||
description: link.description,
|
||||
hostname: link.hostname,
|
||||
image: link.image?.url,
|
||||
imageWidth: link.image?.width,
|
||||
imageHeight: link.image?.height,
|
||||
icon: link.favicon
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
{#if message.reactions.length > 0}
|
||||
<div class="message__reactions">
|
||||
<ReactionsList reactions={message.reactions} on:click={handleReaction} />
|
||||
@@ -105,4 +135,13 @@
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.message__links {
|
||||
display: grid;
|
||||
grid-gap: 0.75rem;
|
||||
grid-template-columns: repeat(auto-fit, 25rem);
|
||||
min-height: 2.5rem;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -21,21 +21,23 @@
|
||||
deleteFile,
|
||||
getCommunicationClient,
|
||||
getClient,
|
||||
getFileMetadata
|
||||
getFileMetadata,
|
||||
isLinkPreviewEnabled
|
||||
} from '@hcengineering/presentation'
|
||||
import { Message, MessageID } from '@hcengineering/communication-types'
|
||||
import { AttachmentPresenter } from '@hcengineering/attachment-resources'
|
||||
import { areEqualMarkups, isEmptyMarkup, EmptyMarkup } from '@hcengineering/text'
|
||||
import { Message, MessageID, FileData, LinkPreviewData } from '@hcengineering/communication-types'
|
||||
import { AttachmentPresenter, LinkPreviewCard } from '@hcengineering/attachment-resources'
|
||||
import { areEqualMarkups, isEmptyMarkup } from '@hcengineering/text'
|
||||
import { updateMyPresence } from '@hcengineering/presence-resources'
|
||||
import { ThrottledCaller } from '@hcengineering/ui'
|
||||
import { getCurrentEmployee } from '@hcengineering/contact'
|
||||
import { Card } from '@hcengineering/card'
|
||||
import { setPlatformStatus, unknownError } from '@hcengineering/platform'
|
||||
|
||||
import TextInput from '../TextInput.svelte'
|
||||
import { defaultMessageInputActions, toMarkdown } from '../../utils'
|
||||
import { defaultMessageInputActions, toMarkdown, toMarkup, loadLinkPreviewData } from '../../utils'
|
||||
import uiNext from '../../plugin'
|
||||
import IconPlus from '../icons/IconPlus.svelte'
|
||||
import { type TextInputAction, UploadedFile, type PresenceTyping, MessageDraft } from '../../types'
|
||||
import { type TextInputAction, type PresenceTyping, MessageDraft } from '../../types'
|
||||
import TypingPresenter from '../TypingPresenter.svelte'
|
||||
import { getDraft, messageToDraft, saveDraft, getEmptyDraft, removeDraft } from '../../draft'
|
||||
|
||||
@@ -43,7 +45,7 @@
|
||||
export let message: Message | undefined = undefined
|
||||
export let title: string = ''
|
||||
export let onCancel: (() => void) | undefined = undefined
|
||||
export let onSubmit: ((markdown: string, files: UploadedFile[]) => Promise<void>) | undefined = undefined
|
||||
export let onSubmit: ((markdown: string, files: FileData[]) => Promise<void>) | undefined = undefined
|
||||
|
||||
const throttle = new ThrottledCaller(500)
|
||||
const dispatch = createEventDispatcher()
|
||||
@@ -51,11 +53,16 @@
|
||||
const client = getClient()
|
||||
const me = getCurrentEmployee()
|
||||
|
||||
const maxLinkPreviewCount = 4
|
||||
const previewUrls = new Map<string, boolean>()
|
||||
const linksData = new Map<string, LinkPreviewData | null>()
|
||||
|
||||
let prevCard: Ref<Card> | undefined = card._id
|
||||
let prevMessage: MessageID | undefined = message?.id
|
||||
let draft: MessageDraft = message != null ? messageToDraft(message) : getDraft(card._id)
|
||||
|
||||
let inputElement: HTMLInputElement
|
||||
let refContainer: HTMLElement | undefined | null = undefined
|
||||
|
||||
let progress = false
|
||||
|
||||
@@ -73,9 +80,13 @@
|
||||
|
||||
function initDraft (): void {
|
||||
draft = message != null ? messageToDraft(message) : getDraft(card._id)
|
||||
previewUrls.clear()
|
||||
}
|
||||
|
||||
function _saveDraft (draft: MessageDraft): void {
|
||||
for (const link of draft.links) {
|
||||
previewUrls.set(link.url, true)
|
||||
}
|
||||
if (message === undefined) {
|
||||
saveDraft(card._id, draft)
|
||||
}
|
||||
@@ -87,8 +98,11 @@
|
||||
|
||||
const markup = event.detail
|
||||
const filesToLoad = draft.files
|
||||
const linksToLoad = draft.links
|
||||
const urlsToLoad = Array.from(previewUrls.keys()).filter((it) => previewUrls.get(it) === true)
|
||||
|
||||
draft = getEmptyDraft()
|
||||
previewUrls.clear()
|
||||
if (message === undefined) {
|
||||
removeDraft(card._id)
|
||||
}
|
||||
@@ -101,54 +115,60 @@
|
||||
}
|
||||
|
||||
if (message === undefined) {
|
||||
await createMessage(markdown, filesToLoad)
|
||||
await createMessage(markdown, filesToLoad, linksToLoad, urlsToLoad)
|
||||
dispatch('sent')
|
||||
} else {
|
||||
await editMessage(message, markdown, filesToLoad)
|
||||
await editMessage(message, markdown, filesToLoad, linksToLoad)
|
||||
}
|
||||
}
|
||||
|
||||
async function createMessage (markdown: string, files: UploadedFile[]): Promise<void> {
|
||||
async function createMessage (
|
||||
markdown: string,
|
||||
files: FileData[],
|
||||
links: LinkPreviewData[],
|
||||
urlsToLoad: string[]
|
||||
): Promise<void> {
|
||||
const { id, created } = await communicationClient.createMessage(card._id, card._class, markdown)
|
||||
|
||||
for (const file of files) {
|
||||
await communicationClient.createFile(
|
||||
card._id,
|
||||
id,
|
||||
created,
|
||||
file.blobId,
|
||||
file.type,
|
||||
file.filename,
|
||||
file.size,
|
||||
file.metadata
|
||||
)
|
||||
void client.update(card, {}, false, Date.now())
|
||||
void Promise.all(files.map((file) => communicationClient.createFile(card._id, id, created, file)))
|
||||
for (const link of links) {
|
||||
void communicationClient.createLinkPreview(card._id, id, created, link)
|
||||
}
|
||||
|
||||
for (const url of urlsToLoad) {
|
||||
if (links.some((it) => it.url === url)) continue
|
||||
const fetchedData = linksData.get(url)
|
||||
if (fetchedData === null) continue
|
||||
const data = fetchedData ?? (await loadLinkPreviewData(url))
|
||||
if (data === undefined) continue
|
||||
void communicationClient.createLinkPreview(card._id, id, created, data)
|
||||
}
|
||||
await client.update(card, {}, false, Date.now())
|
||||
}
|
||||
|
||||
async function editMessage (message: Message, markdown: string, files: UploadedFile[]): Promise<void> {
|
||||
async function editMessage (
|
||||
message: Message,
|
||||
markdown: string,
|
||||
files: FileData[],
|
||||
links: LinkPreviewData[]
|
||||
): Promise<void> {
|
||||
await communicationClient.updateMessage(card._id, message.id, message.created, markdown)
|
||||
|
||||
for (const file of files) {
|
||||
if (message.files.find((it) => it.blobId === file.blobId)) continue
|
||||
await communicationClient.createFile(
|
||||
card._id,
|
||||
message.id,
|
||||
message.created,
|
||||
file.blobId,
|
||||
file.type,
|
||||
file.filename,
|
||||
file.size,
|
||||
file.metadata
|
||||
)
|
||||
if (message.files.some((it) => it.blobId === file.blobId)) continue
|
||||
await communicationClient.createFile(card._id, message.id, message.created, file)
|
||||
}
|
||||
|
||||
for (const file of message.files) {
|
||||
if (files.find((it) => it.blobId === file.blobId)) continue
|
||||
if (files.some((it) => it.blobId === file.blobId)) continue
|
||||
void deleteFile(file.blobId)
|
||||
await communicationClient.removeFile(card._id, message.id, message.created, file.blobId)
|
||||
}
|
||||
|
||||
for (const link of links) {
|
||||
if (message.links.some((it) => it.url === link.url)) continue
|
||||
await communicationClient.createLinkPreview(card._id, message.id, message.created, link)
|
||||
}
|
||||
|
||||
dispatch('edited')
|
||||
}
|
||||
|
||||
@@ -171,7 +191,7 @@
|
||||
|
||||
async function addFile (file: File): Promise<void> {
|
||||
const uuid = await uploadFile(file)
|
||||
const metadata = await getFileMetadata(file, uuid)
|
||||
const meta = await getFileMetadata(file, uuid)
|
||||
|
||||
draft = {
|
||||
...draft,
|
||||
@@ -182,7 +202,7 @@
|
||||
type: file.type,
|
||||
filename: file.name,
|
||||
size: file.size,
|
||||
metadata
|
||||
meta
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -258,15 +278,79 @@
|
||||
progress = false
|
||||
}
|
||||
|
||||
let newMarkup: Markup | undefined = undefined
|
||||
function isValidUrl (s: string): boolean {
|
||||
let url: URL
|
||||
try {
|
||||
url = new URL(s)
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
return url.protocol.startsWith('http')
|
||||
}
|
||||
|
||||
function updateLinkPreview (): void {
|
||||
if (refContainer == null) return
|
||||
const hrefs = refContainer.getElementsByTagName('a')
|
||||
const validUrls = Array.from(hrefs)
|
||||
.filter((it) => it.target === '_blank' && isValidUrl(it.href) && it.rel !== '')
|
||||
.map((it) => it.href)
|
||||
const newUrls = new Set<string>()
|
||||
const removedUrls = new Set<string>()
|
||||
|
||||
for (const [url] of previewUrls.entries()) {
|
||||
const found = validUrls.find((it) => it === url)
|
||||
if (found === undefined) {
|
||||
removedUrls.add(url)
|
||||
}
|
||||
}
|
||||
for (const url of validUrls) {
|
||||
if (previewUrls.has(url)) continue
|
||||
previewUrls.set(url, true)
|
||||
newUrls.add(url)
|
||||
}
|
||||
|
||||
for (const url of removedUrls) {
|
||||
previewUrls.delete(url)
|
||||
draft = {
|
||||
...draft,
|
||||
links: draft.links.filter((it) => it.url !== url)
|
||||
}
|
||||
}
|
||||
if (newUrls.size > 0) {
|
||||
void loadLinks(Array.from(newUrls))
|
||||
}
|
||||
}
|
||||
|
||||
async function loadLinks (urls: string[]): Promise<void> {
|
||||
const draftId = draft._id
|
||||
|
||||
for (const url of urls) {
|
||||
try {
|
||||
const data = linksData.get(url) ?? (await loadLinkPreviewData(url))
|
||||
linksData.set(url, data ?? null)
|
||||
if (data === undefined || !previewUrls.has(url)) continue
|
||||
if (draftId !== draft._id) return
|
||||
draft = {
|
||||
...draft,
|
||||
links: [...draft.links, data]
|
||||
}
|
||||
} catch (err: any) {
|
||||
void setPlatformStatus(unknownError(err))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function onUpdate (event: CustomEvent<Markup>): Promise<void> {
|
||||
draft = {
|
||||
...draft,
|
||||
content: event.detail
|
||||
}
|
||||
const visiblePreviewUrls = Array.from(previewUrls.keys()).filter((it) => previewUrls.get(it) === true)
|
||||
if (isLinkPreviewEnabled() && visiblePreviewUrls.length < maxLinkPreviewCount) {
|
||||
updateLinkPreview()
|
||||
}
|
||||
if (message !== undefined) return
|
||||
newMarkup = event.detail
|
||||
if (!isEmptyMarkup(newMarkup)) {
|
||||
if (!isEmptyMarkup(draft.content)) {
|
||||
throttle.call(() => {
|
||||
const room = { objectId: card._id, objectClass: card._class }
|
||||
const typing: PresenceTyping = { person: me, lastTyping: Date.now() }
|
||||
@@ -279,20 +363,20 @@
|
||||
return isEmptyMarkup(draft.content) && draft.files.length === 0
|
||||
}
|
||||
|
||||
function hasChanges (files: UploadedFile[], message: Message | undefined): boolean {
|
||||
function hasChanges (files: FileData[], message: Message | undefined): boolean {
|
||||
if (isEmptyDraft()) return false
|
||||
if (message === undefined) return files.length > 0
|
||||
if (message.files.length !== files.length) return true
|
||||
if (message.files.some((it) => !files.some((f) => f.blobId === it.blobId))) return true
|
||||
if (newMarkup === undefined || draft.content === undefined) return false
|
||||
|
||||
return !areEqualMarkups(draft.content, newMarkup ?? EmptyMarkup)
|
||||
return !areEqualMarkups(draft.content, toMarkup(message.content))
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<div
|
||||
bind:this={refContainer}
|
||||
class="flex-col no-print w-full"
|
||||
on:dragover|preventDefault={() => {}}
|
||||
on:dragleave={() => {}}
|
||||
@@ -321,7 +405,7 @@
|
||||
onPaste={pasteAction}
|
||||
>
|
||||
<div slot="header" class="header">
|
||||
{#if draft.files.length > 0}
|
||||
{#if draft.files.length > 0 || draft.links.length > 0}
|
||||
<div class="flex-row-center files-list scroll-divider-color flex-gap-2 mt-2">
|
||||
{#each draft.files as file (file.blobId)}
|
||||
<div class="item flex">
|
||||
@@ -331,7 +415,7 @@
|
||||
name: file.filename,
|
||||
type: file.type,
|
||||
size: file.size,
|
||||
metadata: file.metadata
|
||||
metadata: file.meta
|
||||
}}
|
||||
showPreview
|
||||
removable
|
||||
@@ -350,6 +434,37 @@
|
||||
/>
|
||||
</div>
|
||||
{/each}
|
||||
{#if draft.links.length > 0 && draft.files.length > 0}
|
||||
<div class="divider" />
|
||||
{/if}
|
||||
|
||||
{#each draft.links as link}
|
||||
<div class="item flex">
|
||||
<LinkPreviewCard
|
||||
value={{
|
||||
url: link.url,
|
||||
host: link.host,
|
||||
title: link.title,
|
||||
description: link.description,
|
||||
hostname: link.hostname,
|
||||
image: link.image?.url,
|
||||
imageWidth: link.image?.width,
|
||||
imageHeight: link.image?.height,
|
||||
icon: link.favicon
|
||||
}}
|
||||
on:remove={(event) => {
|
||||
const result = event.detail
|
||||
if (result !== undefined) {
|
||||
previewUrls.set(result.url, false)
|
||||
draft = {
|
||||
...draft,
|
||||
links: draft.links.filter((it) => it.url !== result.url)
|
||||
}
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -368,13 +483,14 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.divider {
|
||||
height: 100%;
|
||||
border-left: 1px solid var(--theme-divider-color);
|
||||
}
|
||||
.files-list {
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
|
||||
.item + .item {
|
||||
padding-left: 1rem;
|
||||
border-left: 1px solid var(--theme-divider-color);
|
||||
}
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { getCurrentAccount, type Ref } from '@hcengineering/core'
|
||||
import { getCurrentAccount, type Ref, generateId } from '@hcengineering/core'
|
||||
import { derived, get } from 'svelte/store'
|
||||
import { type Location, location } from '@hcengineering/ui'
|
||||
import { type Card } from '@hcengineering/card'
|
||||
@@ -32,19 +32,21 @@ function geLocalStorageKey (card: Ref<Card>): string | undefined {
|
||||
|
||||
export function getEmptyDraft (): MessageDraft {
|
||||
return {
|
||||
_id: generateId(),
|
||||
content: EmptyMarkup,
|
||||
files: []
|
||||
files: [],
|
||||
links: []
|
||||
}
|
||||
}
|
||||
|
||||
export function getDraft (card: Ref<Card>): MessageDraft {
|
||||
const key = geLocalStorageKey(card)
|
||||
console.log('getDraft ket', key)
|
||||
|
||||
if (key === undefined) {
|
||||
return getEmptyDraft()
|
||||
}
|
||||
const stored = localStorage.getItem(key)
|
||||
console.log('getDraft stored', stored)
|
||||
|
||||
if (stored == null) {
|
||||
return getEmptyDraft()
|
||||
}
|
||||
@@ -52,8 +54,10 @@ export function getDraft (card: Ref<Card>): MessageDraft {
|
||||
try {
|
||||
const data = JSON.parse(stored)
|
||||
return {
|
||||
content: data.content,
|
||||
files: data.files
|
||||
_id: data._id ?? generateId(),
|
||||
content: data.content ?? EmptyMarkup,
|
||||
files: data.files ?? [],
|
||||
links: data.links ?? []
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
@@ -75,7 +79,18 @@ export function saveDraft (card: Ref<Card>, draft: MessageDraft): void {
|
||||
|
||||
export function messageToDraft (message: Message): MessageDraft {
|
||||
return {
|
||||
_id: message.id,
|
||||
content: toMarkup(message.content),
|
||||
links: message.links.map((it) => ({
|
||||
id: it.id,
|
||||
url: it.url,
|
||||
host: it.host,
|
||||
hostname: it.hostname,
|
||||
title: it.title,
|
||||
description: it.description,
|
||||
favicon: it.favicon,
|
||||
image: it.image
|
||||
})),
|
||||
files: message.files.map((it) => ({
|
||||
blobId: it.blobId,
|
||||
type: it.type,
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
import { type Asset, type IntlString } from '@hcengineering/platform'
|
||||
import { type ComponentType } from 'svelte'
|
||||
import { type TextEditorHandler } from '@hcengineering/text-editor'
|
||||
import { type BlobID } from '@hcengineering/communication-types'
|
||||
import type { BlobMetadata, Markup, Ref, Timestamp } from '@hcengineering/core'
|
||||
import { type LinkPreviewData, type FileData } from '@hcengineering/communication-types'
|
||||
import type { Markup, Ref, Timestamp } from '@hcengineering/core'
|
||||
import type { Person } from '@hcengineering/contact'
|
||||
|
||||
export interface NavigationSection {
|
||||
@@ -48,14 +48,6 @@ export interface TextInputAction {
|
||||
disabled?: boolean
|
||||
}
|
||||
|
||||
export interface UploadedFile {
|
||||
blobId: BlobID
|
||||
type: string
|
||||
filename: string
|
||||
size: number
|
||||
metadata?: BlobMetadata
|
||||
}
|
||||
|
||||
export interface Action {
|
||||
id: string
|
||||
label: IntlString
|
||||
@@ -71,6 +63,8 @@ export interface PresenceTyping {
|
||||
}
|
||||
|
||||
export interface MessageDraft {
|
||||
_id: string
|
||||
content: Markup
|
||||
files: UploadedFile[]
|
||||
files: FileData[]
|
||||
links: LinkPreviewData[]
|
||||
}
|
||||
|
||||
@@ -21,11 +21,16 @@ import {
|
||||
type Ref,
|
||||
SortingOrder
|
||||
} from '@hcengineering/core'
|
||||
import { markupToJSON, jsonToMarkup, markupToText } from '@hcengineering/text'
|
||||
import { jsonToMarkup, markupToJSON, markupToText } from '@hcengineering/text'
|
||||
import { showPopup } from '@hcengineering/ui'
|
||||
import { markupToMarkdown, markdownToMarkup } from '@hcengineering/text-markdown'
|
||||
import { MessageType, type Message } from '@hcengineering/communication-types'
|
||||
import { getClient, getCommunicationClient } from '@hcengineering/presentation'
|
||||
import { markdownToMarkup, markupToMarkdown } from '@hcengineering/text-markdown'
|
||||
import { type Message, MessageType, type LinkPreviewData } from '@hcengineering/communication-types'
|
||||
import {
|
||||
canDisplayLinkPreview,
|
||||
fetchLinkPreviewDetails,
|
||||
getClient,
|
||||
getCommunicationClient
|
||||
} from '@hcengineering/presentation'
|
||||
import { employeeByPersonIdStore } from '@hcengineering/contact-resources'
|
||||
import cardPlugin, { type Card } from '@hcengineering/card'
|
||||
import { openDoc } from '@hcengineering/view-resources'
|
||||
@@ -157,3 +162,29 @@ export function isMessageEmpty (message: Message): boolean {
|
||||
message.type === MessageType.Message
|
||||
)
|
||||
}
|
||||
|
||||
export async function loadLinkPreviewData (url: string): Promise<LinkPreviewData | undefined> {
|
||||
try {
|
||||
const meta = await fetchLinkPreviewDetails(url)
|
||||
if (canDisplayLinkPreview(meta) && meta.url !== undefined && meta.host !== undefined) {
|
||||
return {
|
||||
url: meta.url,
|
||||
host: meta.host,
|
||||
hostname: meta.hostname,
|
||||
title: meta.title,
|
||||
description: meta.description,
|
||||
favicon: meta.icon,
|
||||
image:
|
||||
meta.image != null
|
||||
? {
|
||||
url: meta.image,
|
||||
width: meta.imageWidth,
|
||||
height: meta.imageHeight
|
||||
}
|
||||
: undefined
|
||||
}
|
||||
}
|
||||
} catch (err: any) {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
"@hcengineering/ui-next": "^0.6.0",
|
||||
"@hcengineering/view": "^0.6.13",
|
||||
"@hcengineering/view-resources": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/emoji": "^0.6.0",
|
||||
"@hcengineering/emoji-resources": "^0.6.0",
|
||||
"svelte": "^4.2.19"
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
<!--
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
-->
|
||||
<script lang="ts">
|
||||
import { createEventDispatcher } from 'svelte'
|
||||
|
||||
import TrashIcon from './icons/Trash.svelte'
|
||||
import { getImageDimensions } from '../utils'
|
||||
import LinkPreviewIcon from './LinkPreviewIcon.svelte'
|
||||
import LinkPreviewImage from './LinkPreviewImage.svelte'
|
||||
import { LinkPreviewData } from '../types'
|
||||
|
||||
export let linkPreview: LinkPreviewData
|
||||
export let isOwn = false
|
||||
|
||||
const dispatch = createEventDispatcher()
|
||||
|
||||
$: description = linkPreview.description
|
||||
$: title = linkPreview.title
|
||||
$: icon = linkPreview.icon
|
||||
$: image = linkPreview.image
|
||||
$: host = linkPreview.host
|
||||
$: hostname = linkPreview.hostname
|
||||
$: url = linkPreview.url
|
||||
|
||||
$: imageDimensions =
|
||||
linkPreview.imageWidth && linkPreview.imageHeight
|
||||
? getImageDimensions(
|
||||
{ width: linkPreview.imageWidth, height: linkPreview.imageHeight },
|
||||
{
|
||||
maxWidth: 23.5,
|
||||
minWidth: 4,
|
||||
maxHeight: 15,
|
||||
minHeight: 4
|
||||
}
|
||||
)
|
||||
: undefined
|
||||
</script>
|
||||
|
||||
<div class="link-preview">
|
||||
<div class="link-preview__header">
|
||||
<LinkPreviewIcon src={icon} />
|
||||
{#if host}
|
||||
<b class="overflow-label"><a class="link" target="_blank" href={host}>{hostname}</a></b>
|
||||
{/if}
|
||||
{#if isOwn}
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<div class="link-preview__delete-button" tabindex="0" role="button" on:click={() => dispatch('delete')}>
|
||||
<TrashIcon size="small" />
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="link-preview__body">
|
||||
{#if title && title.toLowerCase() !== (hostname ?? '').toLowerCase()}
|
||||
{#if url}
|
||||
<b><a class="link" target="_blank" href={url}>{title}</a></b>
|
||||
{:else}
|
||||
<b>{title}</b>
|
||||
{/if}
|
||||
{/if}
|
||||
{#if description && description !== ''}
|
||||
<span class="link-preview__description lines-limit-4">
|
||||
{description}
|
||||
</span>
|
||||
{/if}
|
||||
</div>
|
||||
{#if image}
|
||||
<LinkPreviewImage
|
||||
{url}
|
||||
src={image}
|
||||
width={imageDimensions?.width ?? 300}
|
||||
height={imageDimensions?.height ?? 170}
|
||||
fit={imageDimensions?.fit ?? 'contain'}
|
||||
/>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.link-preview {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
line-height: 150%;
|
||||
padding: 0.75rem;
|
||||
background-color: var(--theme-link-preview-bg-color);
|
||||
border-radius: 0.75rem;
|
||||
scroll-snap-align: start;
|
||||
max-width: 26rem;
|
||||
min-width: 16rem;
|
||||
|
||||
&:hover {
|
||||
.link-preview__delete-button {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.link-preview__header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 0.375rem;
|
||||
height: 1.375rem;
|
||||
}
|
||||
|
||||
.link-preview__delete-button {
|
||||
margin-left: auto;
|
||||
cursor: pointer;
|
||||
visibility: hidden;
|
||||
|
||||
&:not(:hover) {
|
||||
color: var(--theme-link-preview-description-color);
|
||||
}
|
||||
}
|
||||
|
||||
.link-preview__body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.link-preview__description {
|
||||
color: var(--theme-link-preview-description-color);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.link {
|
||||
color: var(--theme-link-preview-text-color);
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,175 @@
|
||||
<!--
|
||||
// Copyright © 2025 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
-->
|
||||
<script lang="ts">
|
||||
import presentation from '@hcengineering/presentation'
|
||||
import { Label } from '@hcengineering/ui'
|
||||
import { createEventDispatcher } from 'svelte'
|
||||
|
||||
import { LinkPreviewData } from '../types'
|
||||
import WebIcon from './icons/Web.svelte'
|
||||
|
||||
export let value: LinkPreviewData
|
||||
|
||||
const dispatch = createEventDispatcher()
|
||||
|
||||
const maxLength: number = 30
|
||||
|
||||
const trimName = (name: string): string => {
|
||||
if (name.length <= maxLength) return name
|
||||
|
||||
const ellipsis = '...'
|
||||
const partLength = Math.floor((maxLength - ellipsis.length) / 2)
|
||||
return name.slice(0, partLength) + ellipsis + name.slice(-partLength)
|
||||
}
|
||||
|
||||
let useDefaultIcon = false
|
||||
</script>
|
||||
|
||||
<div class="flex-row-center attachment-container">
|
||||
<div class="flex-center icon image">
|
||||
{#if value.icon !== undefined && !useDefaultIcon}
|
||||
<img
|
||||
src={value.icon}
|
||||
class="link-preview-icon"
|
||||
alt="link-preview"
|
||||
on:error={() => {
|
||||
useDefaultIcon = true
|
||||
}}
|
||||
/>
|
||||
{:else}
|
||||
<WebIcon size="medium" />
|
||||
{/if}
|
||||
</div>
|
||||
<div class="flex-col info-container">
|
||||
<div class="name">
|
||||
<a target="_blank" class="no-line" style:flex-shrink={0} href={value.url}>
|
||||
{trimName(value?.title ?? value.url)}
|
||||
</a>
|
||||
</div>
|
||||
<div class="info-content flex-row-center">
|
||||
<span class="actions inline-flex clear-mins gap-1">
|
||||
{#if value.description}
|
||||
{trimName(value.description)}
|
||||
<span>•</span>
|
||||
{/if}
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<span
|
||||
class="remove-link"
|
||||
on:click={(ev) => {
|
||||
ev.stopPropagation()
|
||||
ev.preventDefault()
|
||||
dispatch('remove', value)
|
||||
}}
|
||||
>
|
||||
<Label label={presentation.string.Delete} />
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.link-preview-icon {
|
||||
max-width: 2rem;
|
||||
max-height: 2rem;
|
||||
}
|
||||
.attachment-container {
|
||||
flex-shrink: 0;
|
||||
width: auto;
|
||||
height: 3rem;
|
||||
min-width: 17.25rem;
|
||||
border-radius: 0.25rem;
|
||||
|
||||
.icon {
|
||||
flex-shrink: 0;
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
object-fit: contain;
|
||||
border: 1px solid var(--theme-button-border);
|
||||
border-radius: 0.25rem 0 0 0.25rem;
|
||||
cursor: pointer;
|
||||
|
||||
&:not(.image) {
|
||||
color: var(--primary-button-color);
|
||||
background-color: var(--primary-button-default);
|
||||
}
|
||||
&.image {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
}
|
||||
.info-container {
|
||||
padding: 0.5rem 0.75rem;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: var(--theme-button-default);
|
||||
border: 1px solid var(--theme-button-border);
|
||||
border-left: none;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
.no-line:hover ~ .info-container,
|
||||
.info-container:hover {
|
||||
background-color: var(--theme-button-hovered);
|
||||
|
||||
.actions {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.name {
|
||||
white-space: nowrap;
|
||||
font-size: 0.8125rem;
|
||||
color: var(--theme-caption-color);
|
||||
cursor: pointer;
|
||||
|
||||
&:hover ~ .info-content .actions {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.info-content {
|
||||
white-space: nowrap;
|
||||
font-size: 0.6875rem;
|
||||
color: var(--theme-darker-color);
|
||||
|
||||
.actions {
|
||||
opacity: 0;
|
||||
transition: opacity 0.1s var(--timing-main);
|
||||
}
|
||||
&:hover .actions {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.remove-link {
|
||||
color: var(--theme-error-color);
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.name:hover,
|
||||
.no-line:hover + .info-container > .name a {
|
||||
text-decoration: underline;
|
||||
color: var(--theme-caption-color);
|
||||
}
|
||||
.name:active,
|
||||
.no-line:active + .info-container > .name a {
|
||||
text-decoration: underline;
|
||||
color: var(--theme-caption-color);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -44,6 +44,8 @@ import IconUploadDuo from './components/icons/UploadDuo.svelte'
|
||||
import PreviewWidget from './components/PreviewWidget.svelte'
|
||||
import PreviewPopupActions from './components/PreviewPopupActions.svelte'
|
||||
import DrawingPresenter from './components/DrawingPresenter.svelte'
|
||||
import LinkPreview from './components/LinkPreview.svelte'
|
||||
import LinkPreviewCard from './components/LinkPreviewCard.svelte'
|
||||
|
||||
export * from './types'
|
||||
export * from './stores'
|
||||
@@ -68,7 +70,9 @@ export {
|
||||
FileBrowser,
|
||||
FileDownload,
|
||||
IconAttachment,
|
||||
IconUploadDuo
|
||||
IconUploadDuo,
|
||||
LinkPreview,
|
||||
LinkPreviewCard
|
||||
}
|
||||
|
||||
export enum FileBrowserSortMode {
|
||||
|
||||
@@ -1 +1,13 @@
|
||||
export type AttachmentImageSize = 'x-large' | 'auto'
|
||||
|
||||
export interface LinkPreviewData {
|
||||
url: string
|
||||
host: string
|
||||
title?: string
|
||||
description?: string
|
||||
hostname?: string
|
||||
image?: string
|
||||
imageWidth?: number
|
||||
imageHeight?: number
|
||||
icon?: string
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/presence": "^0.6.0",
|
||||
"@hcengineering/presentation": "^0.6.3",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/ui": "^0.6.15",
|
||||
"@hcengineering/setting": "^0.6.17",
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/card-resources": "^0.6.0",
|
||||
"@hcengineering/chat": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/contact-resources": "^0.6.0",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
|
||||
@@ -40,8 +40,8 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"@hcengineering/client": "^0.6.18",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/rpc": "^0.6.5",
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/communication": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/contact-resources": "^0.6.0",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
|
||||
@@ -157,6 +157,7 @@
|
||||
replies: true,
|
||||
files: true,
|
||||
reactions: true,
|
||||
links: true,
|
||||
order: SortingOrder.Ascending,
|
||||
limit
|
||||
}
|
||||
@@ -167,6 +168,7 @@
|
||||
replies: true,
|
||||
files: true,
|
||||
reactions: true,
|
||||
links: true,
|
||||
order,
|
||||
limit,
|
||||
from: unread && initialLastView != null ? initialLastView : undefined
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/contact-resources": "^0.6.0",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"@hcengineering/analytics-service": "^0.6.0",
|
||||
"@hcengineering/communication-server": "0.1.191",
|
||||
"@hcengineering/communication-server": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/kafka": "^0.6.0",
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
"@hcengineering/server-core": "^0.6.1",
|
||||
"@hcengineering/server-notification-resources": "^0.6.0",
|
||||
"@hcengineering/text-core": "^0.6.0",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.191"
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-types": "0.1.192"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@ export async function getNewActivityUpdates (
|
||||
if (isUnset && hierarchy.isMixin(key as any)) {
|
||||
const tag = key as Ref<Tag>
|
||||
const clazz = hierarchy.getClass(tag)
|
||||
console.log('d', hierarchy.isDerived(clazz._class, cardPlugin.class.Tag))
|
||||
|
||||
if (hierarchy.isDerived(clazz._class, cardPlugin.class.Tag)) {
|
||||
result.push({
|
||||
type: ActivityUpdateType.Tag,
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/server-core": "^0.6.1",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/server-contact": "^0.6.1",
|
||||
"@hcengineering/contact": "^0.6.24"
|
||||
}
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/query": "^0.6.12",
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/account-client": "^0.6.0",
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/rpc": "^0.6.5",
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"@hcengineering/chat": "^0.6.0",
|
||||
"@hcengineering/client": "^0.6.18",
|
||||
"@hcengineering/client-resources": "^0.6.27",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/kvs-client": "^0.6.0",
|
||||
"@hcengineering/mail-common": "^0.6.0",
|
||||
|
||||
@@ -49,10 +49,10 @@
|
||||
"@hcengineering/api-client": "^0.6.0",
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/chat": "^0.6.0",
|
||||
"@hcengineering/communication-rest-client": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-shared": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-rest-client": "0.1.192",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-shared": "0.1.192",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/kvs-client": "^0.6.0",
|
||||
|
||||
@@ -61,9 +61,9 @@
|
||||
"@hcengineering/analytics-service": "^0.6.0",
|
||||
"@hcengineering/api-client": "^0.6.0",
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/communication-rest-client": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-rest-client": "0.1.192",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/contact": "^0.6.24",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/kvs-client": "^0.6.0",
|
||||
|
||||
@@ -57,11 +57,11 @@
|
||||
"dependencies": {
|
||||
"@hcengineering/api-client": "^0.6.0",
|
||||
"@hcengineering/card": "^0.6.0",
|
||||
"@hcengineering/communication-types": "0.1.191",
|
||||
"@hcengineering/communication-shared": "0.1.191",
|
||||
"@hcengineering/communication-yaml": "0.1.191",
|
||||
"@hcengineering/communication-sdk-types": "0.1.191",
|
||||
"@hcengineering/communication-rest-client": "0.1.191",
|
||||
"@hcengineering/communication-types": "0.1.192",
|
||||
"@hcengineering/communication-shared": "0.1.192",
|
||||
"@hcengineering/communication-yaml": "0.1.192",
|
||||
"@hcengineering/communication-sdk-types": "0.1.192",
|
||||
"@hcengineering/communication-rest-client": "0.1.192",
|
||||
"@hcengineering/core": "^0.6.32",
|
||||
"@hcengineering/platform": "^0.6.11",
|
||||
"@hcengineering/server-client": "^0.6.0",
|
||||
|
||||
Reference in New Issue
Block a user