@os-team/profile 1.0.45 → 1.0.47

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 (310) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/{emotion.d.js → @types/emotion.d.js} +0 -0
  3. package/dist/cjs/@types/emotion.d.js.map +1 -0
  4. package/dist/cjs/@types/i18next.d.js +4 -0
  5. package/dist/cjs/@types/i18next.d.js.map +1 -0
  6. package/dist/cjs/components/profile/ProfileButton.js +0 -6
  7. package/dist/cjs/components/profile/ProfileButton.js.map +1 -1
  8. package/dist/cjs/components/profile/ProfileConfigContext.js +0 -8
  9. package/dist/cjs/components/profile/ProfileConfigContext.js.map +1 -1
  10. package/dist/cjs/components/profile/ProfileContext.js +0 -8
  11. package/dist/cjs/components/profile/ProfileContext.js.map +1 -1
  12. package/dist/cjs/components/profile/ProfileDrawer.js +2 -20
  13. package/dist/cjs/components/profile/ProfileDrawer.js.map +1 -1
  14. package/dist/cjs/components/profile/ProfileDrawerContent.js +30 -86
  15. package/dist/cjs/components/profile/ProfileDrawerContent.js.map +1 -1
  16. package/dist/cjs/components/profile/ProfileNavigationItem.js +4 -18
  17. package/dist/cjs/components/profile/ProfileNavigationItem.js.map +1 -1
  18. package/dist/cjs/components/profile/ProfileUpdateNameForm.js +3 -14
  19. package/dist/cjs/components/profile/ProfileUpdateNameForm.js.map +1 -1
  20. package/dist/cjs/components/profile/ProfileUpdateNameModal.js +21 -49
  21. package/dist/cjs/components/profile/ProfileUpdateNameModal.js.map +1 -1
  22. package/dist/cjs/components/profile/ProfileUpdatePasswordForm.js +3 -14
  23. package/dist/cjs/components/profile/ProfileUpdatePasswordForm.js.map +1 -1
  24. package/dist/cjs/components/profile/ProfileUpdatePasswordModal.js +19 -45
  25. package/dist/cjs/components/profile/ProfileUpdatePasswordModal.js.map +1 -1
  26. package/dist/cjs/components/profile/ProtectedWrapper.js +4 -19
  27. package/dist/cjs/components/profile/ProtectedWrapper.js.map +1 -1
  28. package/dist/cjs/components/profile/UserAvatar.js +5 -17
  29. package/dist/cjs/components/profile/UserAvatar.js.map +1 -1
  30. package/dist/cjs/components/profile/UserAvatarAddon.js +2 -19
  31. package/dist/cjs/components/profile/UserAvatarAddon.js.map +1 -1
  32. package/dist/cjs/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js +4 -9
  33. package/dist/cjs/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js.map +1 -1
  34. package/dist/cjs/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js +33 -42
  35. package/dist/cjs/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js.map +1 -1
  36. package/dist/cjs/components/profile/__generated__/ProfileDrawerSignOutMutation.graphql.js +4 -9
  37. package/dist/cjs/components/profile/__generated__/ProfileDrawerSignOutMutation.graphql.js.map +1 -1
  38. package/dist/cjs/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.js +33 -42
  39. package/dist/cjs/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.js.map +1 -1
  40. package/dist/cjs/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js +31 -48
  41. package/dist/cjs/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js.map +1 -1
  42. package/dist/cjs/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js +27 -36
  43. package/dist/cjs/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js.map +1 -1
  44. package/dist/cjs/components/profile/__generated__/ProtectedWrapperQuery.graphql.js +4 -9
  45. package/dist/cjs/components/profile/__generated__/ProtectedWrapperQuery.graphql.js.map +1 -1
  46. package/dist/cjs/components/session/SessionDrawer.js +2 -20
  47. package/dist/cjs/components/session/SessionDrawer.js.map +1 -1
  48. package/dist/cjs/components/session/SessionDrawerContent.js +0 -15
  49. package/dist/cjs/components/session/SessionDrawerContent.js.map +1 -1
  50. package/dist/cjs/components/session/SessionList.js +6 -39
  51. package/dist/cjs/components/session/SessionList.js.map +1 -1
  52. package/dist/cjs/components/session/SessionListItem.js +22 -84
  53. package/dist/cjs/components/session/SessionListItem.js.map +1 -1
  54. package/dist/cjs/components/session/SessionListSkeleton.js +2 -15
  55. package/dist/cjs/components/session/SessionListSkeleton.js.map +1 -1
  56. package/dist/cjs/components/session/__generated__/SessionDrawerContentQuery.graphql.js +1 -2
  57. package/dist/cjs/components/session/__generated__/SessionDrawerContentQuery.graphql.js.map +1 -1
  58. package/dist/cjs/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js +4 -9
  59. package/dist/cjs/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js.map +1 -1
  60. package/dist/cjs/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js +27 -36
  61. package/dist/cjs/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js.map +1 -1
  62. package/dist/cjs/components/session/__generated__/SessionListItem_session.graphql.js +1 -2
  63. package/dist/cjs/components/session/__generated__/SessionListItem_session.graphql.js.map +1 -1
  64. package/dist/cjs/components/session/__generated__/SessionListRefetchQuery.graphql.js +1 -2
  65. package/dist/cjs/components/session/__generated__/SessionListRefetchQuery.graphql.js.map +1 -1
  66. package/dist/cjs/components/session/__generated__/SessionList_sessions.graphql.js +1 -2
  67. package/dist/cjs/components/session/__generated__/SessionList_sessions.graphql.js.map +1 -1
  68. package/dist/cjs/components/session/formatDate.js +0 -2
  69. package/dist/cjs/components/session/formatDate.js.map +1 -1
  70. package/dist/cjs/components/session/getLastSeen.js +0 -2
  71. package/dist/cjs/components/session/getLastSeen.js.map +1 -1
  72. package/dist/cjs/components/shared/ButtonUpdate.js +2 -9
  73. package/dist/cjs/components/shared/ButtonUpdate.js.map +1 -1
  74. package/dist/cjs/components/shared/ErrorResult.js +4 -17
  75. package/dist/cjs/components/shared/ErrorResult.js.map +1 -1
  76. package/dist/cjs/components/shared/MainLoader.js +0 -10
  77. package/dist/cjs/components/shared/MainLoader.js.map +1 -1
  78. package/dist/cjs/components/shared/icons/AndroidIcon.js +0 -6
  79. package/dist/cjs/components/shared/icons/AndroidIcon.js.map +1 -1
  80. package/dist/cjs/components/shared/icons/AppleIcon.js +0 -6
  81. package/dist/cjs/components/shared/icons/AppleIcon.js.map +1 -1
  82. package/dist/cjs/components/shared/icons/BrowserIcon.js +0 -6
  83. package/dist/cjs/components/shared/icons/BrowserIcon.js.map +1 -1
  84. package/dist/cjs/components/shared/icons/ProfileIcon.js +0 -6
  85. package/dist/cjs/components/shared/icons/ProfileIcon.js.map +1 -1
  86. package/dist/cjs/components/shared/icons/UnknownDeviceIcon.js +0 -6
  87. package/dist/cjs/components/shared/icons/UnknownDeviceIcon.js.map +1 -1
  88. package/dist/cjs/index.js +0 -19
  89. package/dist/cjs/index.js.map +1 -1
  90. package/dist/cjs/utils/getUserFullName.js +2 -4
  91. package/dist/cjs/utils/getUserFullName.js.map +1 -1
  92. package/dist/esm/{emotion.d.js → @types/emotion.d.js} +0 -0
  93. package/dist/esm/@types/emotion.d.js.map +1 -0
  94. package/dist/esm/@types/i18next.d.js +2 -0
  95. package/dist/esm/@types/i18next.d.js.map +1 -0
  96. package/dist/esm/components/profile/ProfileButton.js +0 -3
  97. package/dist/esm/components/profile/ProfileButton.js.map +1 -1
  98. package/dist/esm/components/profile/ProfileConfigContext.js.map +1 -1
  99. package/dist/esm/components/profile/ProfileContext.js.map +1 -1
  100. package/dist/esm/components/profile/ProfileDrawer.js +0 -3
  101. package/dist/esm/components/profile/ProfileDrawer.js.map +1 -1
  102. package/dist/esm/components/profile/ProfileDrawerContent.js +5 -16
  103. package/dist/esm/components/profile/ProfileDrawerContent.js.map +1 -1
  104. package/dist/esm/components/profile/ProfileNavigationItem.js +1 -4
  105. package/dist/esm/components/profile/ProfileNavigationItem.js.map +1 -1
  106. package/dist/esm/components/profile/ProfileUpdateNameForm.js +1 -4
  107. package/dist/esm/components/profile/ProfileUpdateNameForm.js.map +1 -1
  108. package/dist/esm/components/profile/ProfileUpdateNameModal.js +3 -5
  109. package/dist/esm/components/profile/ProfileUpdateNameModal.js.map +1 -1
  110. package/dist/esm/components/profile/ProfileUpdatePasswordForm.js +1 -4
  111. package/dist/esm/components/profile/ProfileUpdatePasswordForm.js.map +1 -1
  112. package/dist/esm/components/profile/ProfileUpdatePasswordModal.js +3 -5
  113. package/dist/esm/components/profile/ProfileUpdatePasswordModal.js.map +1 -1
  114. package/dist/esm/components/profile/ProtectedWrapper.js +0 -4
  115. package/dist/esm/components/profile/ProtectedWrapper.js.map +1 -1
  116. package/dist/esm/components/profile/UserAvatar.js +0 -3
  117. package/dist/esm/components/profile/UserAvatar.js.map +1 -1
  118. package/dist/esm/components/profile/UserAvatarAddon.js +0 -3
  119. package/dist/esm/components/profile/UserAvatarAddon.js.map +1 -1
  120. package/dist/esm/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js +4 -8
  121. package/dist/esm/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js.map +1 -1
  122. package/dist/esm/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js +33 -41
  123. package/dist/esm/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js.map +1 -1
  124. package/dist/esm/components/profile/__generated__/ProfileDrawerSignOutMutation.graphql.js +4 -8
  125. package/dist/esm/components/profile/__generated__/ProfileDrawerSignOutMutation.graphql.js.map +1 -1
  126. package/dist/esm/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.js +33 -41
  127. package/dist/esm/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.js.map +1 -1
  128. package/dist/esm/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js +31 -47
  129. package/dist/esm/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js.map +1 -1
  130. package/dist/esm/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js +27 -35
  131. package/dist/esm/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js.map +1 -1
  132. package/dist/esm/components/profile/__generated__/ProtectedWrapperQuery.graphql.js +4 -8
  133. package/dist/esm/components/profile/__generated__/ProtectedWrapperQuery.graphql.js.map +1 -1
  134. package/dist/esm/components/session/SessionDrawer.js +1 -4
  135. package/dist/esm/components/session/SessionDrawer.js.map +1 -1
  136. package/dist/esm/components/session/SessionDrawerContent.js +0 -5
  137. package/dist/esm/components/session/SessionDrawerContent.js.map +1 -1
  138. package/dist/esm/components/session/SessionList.js +1 -4
  139. package/dist/esm/components/session/SessionList.js.map +1 -1
  140. package/dist/esm/components/session/SessionListItem.js +3 -17
  141. package/dist/esm/components/session/SessionListItem.js.map +1 -1
  142. package/dist/esm/components/session/SessionListSkeleton.js +1 -3
  143. package/dist/esm/components/session/SessionListSkeleton.js.map +1 -1
  144. package/dist/esm/components/session/__generated__/SessionDrawerContentQuery.graphql.js +1 -1
  145. package/dist/esm/components/session/__generated__/SessionDrawerContentQuery.graphql.js.map +1 -1
  146. package/dist/esm/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js +4 -8
  147. package/dist/esm/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js.map +1 -1
  148. package/dist/esm/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js +27 -35
  149. package/dist/esm/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js.map +1 -1
  150. package/dist/esm/components/session/__generated__/SessionListItem_session.graphql.js +1 -1
  151. package/dist/esm/components/session/__generated__/SessionListItem_session.graphql.js.map +1 -1
  152. package/dist/esm/components/session/__generated__/SessionListRefetchQuery.graphql.js +1 -1
  153. package/dist/esm/components/session/__generated__/SessionListRefetchQuery.graphql.js.map +1 -1
  154. package/dist/esm/components/session/__generated__/SessionList_sessions.graphql.js +1 -1
  155. package/dist/esm/components/session/__generated__/SessionList_sessions.graphql.js.map +1 -1
  156. package/dist/esm/components/session/formatDate.js +0 -1
  157. package/dist/esm/components/session/formatDate.js.map +1 -1
  158. package/dist/esm/components/session/getLastSeen.js +0 -1
  159. package/dist/esm/components/session/getLastSeen.js.map +1 -1
  160. package/dist/esm/components/shared/ButtonUpdate.js +1 -3
  161. package/dist/esm/components/shared/ButtonUpdate.js.map +1 -1
  162. package/dist/esm/components/shared/ErrorResult.js +3 -5
  163. package/dist/esm/components/shared/ErrorResult.js.map +1 -1
  164. package/dist/esm/components/shared/MainLoader.js +0 -2
  165. package/dist/esm/components/shared/MainLoader.js.map +1 -1
  166. package/dist/esm/components/shared/icons/AndroidIcon.js +0 -1
  167. package/dist/esm/components/shared/icons/AndroidIcon.js.map +1 -1
  168. package/dist/esm/components/shared/icons/AppleIcon.js +0 -1
  169. package/dist/esm/components/shared/icons/AppleIcon.js.map +1 -1
  170. package/dist/esm/components/shared/icons/BrowserIcon.js +0 -1
  171. package/dist/esm/components/shared/icons/BrowserIcon.js.map +1 -1
  172. package/dist/esm/components/shared/icons/ProfileIcon.js +0 -1
  173. package/dist/esm/components/shared/icons/ProfileIcon.js.map +1 -1
  174. package/dist/esm/components/shared/icons/UnknownDeviceIcon.js +0 -1
  175. package/dist/esm/components/shared/icons/UnknownDeviceIcon.js.map +1 -1
  176. package/dist/esm/index.js.map +1 -1
  177. package/dist/esm/utils/getUserFullName.js +0 -1
  178. package/dist/esm/utils/getUserFullName.js.map +1 -1
  179. package/dist/types/{components → src/lib/components}/profile/ProfileButton.d.ts +0 -0
  180. package/dist/types/src/lib/components/profile/ProfileButton.d.ts.map +1 -0
  181. package/dist/types/{components → src/lib/components}/profile/ProfileConfigContext.d.ts +0 -0
  182. package/dist/types/src/lib/components/profile/ProfileConfigContext.d.ts.map +1 -0
  183. package/dist/types/{components → src/lib/components}/profile/ProfileContext.d.ts +0 -0
  184. package/dist/types/src/lib/components/profile/ProfileContext.d.ts.map +1 -0
  185. package/dist/types/{components → src/lib/components}/profile/ProfileDrawer.d.ts +0 -0
  186. package/dist/types/src/lib/components/profile/ProfileDrawer.d.ts.map +1 -0
  187. package/dist/types/{components → src/lib/components}/profile/ProfileDrawerContent.d.ts +0 -0
  188. package/dist/types/src/lib/components/profile/ProfileDrawerContent.d.ts.map +1 -0
  189. package/dist/types/{components → src/lib/components}/profile/ProfileNavigationItem.d.ts +0 -0
  190. package/dist/types/src/lib/components/profile/ProfileNavigationItem.d.ts.map +1 -0
  191. package/dist/types/{components → src/lib/components}/profile/ProfileUpdateNameForm.d.ts +0 -0
  192. package/dist/types/src/lib/components/profile/ProfileUpdateNameForm.d.ts.map +1 -0
  193. package/dist/types/{components → src/lib/components}/profile/ProfileUpdateNameModal.d.ts +0 -0
  194. package/dist/types/src/lib/components/profile/ProfileUpdateNameModal.d.ts.map +1 -0
  195. package/dist/types/{components → src/lib/components}/profile/ProfileUpdatePasswordForm.d.ts +0 -0
  196. package/dist/types/src/lib/components/profile/ProfileUpdatePasswordForm.d.ts.map +1 -0
  197. package/dist/types/{components → src/lib/components}/profile/ProfileUpdatePasswordModal.d.ts +0 -0
  198. package/dist/types/src/lib/components/profile/ProfileUpdatePasswordModal.d.ts.map +1 -0
  199. package/dist/types/{components → src/lib/components}/profile/ProtectedWrapper.d.ts +0 -0
  200. package/dist/types/src/lib/components/profile/ProtectedWrapper.d.ts.map +1 -0
  201. package/dist/types/{components → src/lib/components}/profile/UserAvatar.d.ts +0 -0
  202. package/dist/types/src/lib/components/profile/UserAvatar.d.ts.map +1 -0
  203. package/dist/types/{components → src/lib/components}/profile/UserAvatarAddon.d.ts +0 -0
  204. package/dist/types/src/lib/components/profile/UserAvatarAddon.d.ts.map +1 -0
  205. package/dist/types/{components → src/lib/components}/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.d.ts +0 -0
  206. package/dist/types/src/lib/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.d.ts.map +1 -0
  207. package/dist/types/{components → src/lib/components}/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.d.ts +0 -0
  208. package/dist/types/src/lib/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.d.ts.map +1 -0
  209. package/dist/types/{components → src/lib/components}/profile/__generated__/ProfileDrawerSignOutMutation.graphql.d.ts +0 -0
  210. package/dist/types/src/lib/components/profile/__generated__/ProfileDrawerSignOutMutation.graphql.d.ts.map +1 -0
  211. package/dist/types/{components → src/lib/components}/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.d.ts +0 -0
  212. package/dist/types/src/lib/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.d.ts.map +1 -0
  213. package/dist/types/{components → src/lib/components}/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts +0 -0
  214. package/dist/types/src/lib/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts.map +1 -0
  215. package/dist/types/{components → src/lib/components}/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.d.ts +0 -0
  216. package/dist/types/src/lib/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.d.ts.map +1 -0
  217. package/dist/types/{components → src/lib/components}/profile/__generated__/ProtectedWrapperQuery.graphql.d.ts +0 -0
  218. package/dist/types/src/lib/components/profile/__generated__/ProtectedWrapperQuery.graphql.d.ts.map +1 -0
  219. package/dist/types/{components → src/lib/components}/session/SessionDrawer.d.ts +0 -0
  220. package/dist/types/src/lib/components/session/SessionDrawer.d.ts.map +1 -0
  221. package/dist/types/{components → src/lib/components}/session/SessionDrawerContent.d.ts +0 -0
  222. package/dist/types/src/lib/components/session/SessionDrawerContent.d.ts.map +1 -0
  223. package/dist/types/{components → src/lib/components}/session/SessionList.d.ts +0 -0
  224. package/dist/types/src/lib/components/session/SessionList.d.ts.map +1 -0
  225. package/dist/types/{components → src/lib/components}/session/SessionListItem.d.ts +0 -0
  226. package/dist/types/src/lib/components/session/SessionListItem.d.ts.map +1 -0
  227. package/dist/types/{components → src/lib/components}/session/SessionListSkeleton.d.ts +0 -0
  228. package/dist/types/src/lib/components/session/SessionListSkeleton.d.ts.map +1 -0
  229. package/dist/types/{components → src/lib/components}/session/__generated__/SessionDrawerContentQuery.graphql.d.ts +0 -0
  230. package/dist/types/src/lib/components/session/__generated__/SessionDrawerContentQuery.graphql.d.ts.map +1 -0
  231. package/dist/types/{components → src/lib/components}/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.d.ts +0 -0
  232. package/dist/types/src/lib/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.d.ts.map +1 -0
  233. package/dist/types/{components → src/lib/components}/session/__generated__/SessionListItemDestroySessionMutation.graphql.d.ts +0 -0
  234. package/dist/types/src/lib/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.d.ts.map +1 -0
  235. package/dist/types/{components → src/lib/components}/session/__generated__/SessionListItem_session.graphql.d.ts +0 -0
  236. package/dist/types/src/lib/components/session/__generated__/SessionListItem_session.graphql.d.ts.map +1 -0
  237. package/dist/types/{components → src/lib/components}/session/__generated__/SessionListRefetchQuery.graphql.d.ts +0 -0
  238. package/dist/types/src/lib/components/session/__generated__/SessionListRefetchQuery.graphql.d.ts.map +1 -0
  239. package/dist/types/{components → src/lib/components}/session/__generated__/SessionList_sessions.graphql.d.ts +0 -0
  240. package/dist/types/src/lib/components/session/__generated__/SessionList_sessions.graphql.d.ts.map +1 -0
  241. package/dist/types/{components → src/lib/components}/session/formatDate.d.ts +0 -0
  242. package/dist/types/src/lib/components/session/formatDate.d.ts.map +1 -0
  243. package/dist/types/{components → src/lib/components}/session/getLastSeen.d.ts +0 -0
  244. package/dist/types/src/lib/components/session/getLastSeen.d.ts.map +1 -0
  245. package/dist/types/{components → src/lib/components}/shared/ButtonUpdate.d.ts +0 -0
  246. package/dist/types/src/lib/components/shared/ButtonUpdate.d.ts.map +1 -0
  247. package/dist/types/{components → src/lib/components}/shared/ErrorResult.d.ts +0 -0
  248. package/dist/types/src/lib/components/shared/ErrorResult.d.ts.map +1 -0
  249. package/dist/types/{components → src/lib/components}/shared/MainLoader.d.ts +0 -0
  250. package/dist/types/src/lib/components/shared/MainLoader.d.ts.map +1 -0
  251. package/dist/types/{components → src/lib/components}/shared/icons/AndroidIcon.d.ts +0 -0
  252. package/dist/types/src/lib/components/shared/icons/AndroidIcon.d.ts.map +1 -0
  253. package/dist/types/{components → src/lib/components}/shared/icons/AppleIcon.d.ts +0 -0
  254. package/dist/types/src/lib/components/shared/icons/AppleIcon.d.ts.map +1 -0
  255. package/dist/types/{components → src/lib/components}/shared/icons/BrowserIcon.d.ts +0 -0
  256. package/dist/types/src/lib/components/shared/icons/BrowserIcon.d.ts.map +1 -0
  257. package/dist/types/{components → src/lib/components}/shared/icons/ProfileIcon.d.ts +0 -0
  258. package/dist/types/src/lib/components/shared/icons/ProfileIcon.d.ts.map +1 -0
  259. package/dist/types/{components → src/lib/components}/shared/icons/UnknownDeviceIcon.d.ts +0 -0
  260. package/dist/types/src/lib/components/shared/icons/UnknownDeviceIcon.d.ts.map +1 -0
  261. package/dist/types/{index.d.ts → src/lib/index.d.ts} +0 -0
  262. package/dist/types/src/lib/index.d.ts.map +1 -0
  263. package/dist/types/{utils → src/lib/utils}/getUserFullName.d.ts +0 -0
  264. package/dist/types/src/lib/utils/getUserFullName.d.ts.map +1 -0
  265. package/package.json +29 -29
  266. package/dist/cjs/emotion.d.js.map +0 -1
  267. package/dist/esm/emotion.d.js.map +0 -1
  268. package/dist/types/components/profile/ProfileButton.d.ts.map +0 -1
  269. package/dist/types/components/profile/ProfileConfigContext.d.ts.map +0 -1
  270. package/dist/types/components/profile/ProfileContext.d.ts.map +0 -1
  271. package/dist/types/components/profile/ProfileDrawer.d.ts.map +0 -1
  272. package/dist/types/components/profile/ProfileDrawerContent.d.ts.map +0 -1
  273. package/dist/types/components/profile/ProfileNavigationItem.d.ts.map +0 -1
  274. package/dist/types/components/profile/ProfileUpdateNameForm.d.ts.map +0 -1
  275. package/dist/types/components/profile/ProfileUpdateNameModal.d.ts.map +0 -1
  276. package/dist/types/components/profile/ProfileUpdatePasswordForm.d.ts.map +0 -1
  277. package/dist/types/components/profile/ProfileUpdatePasswordModal.d.ts.map +0 -1
  278. package/dist/types/components/profile/ProtectedWrapper.d.ts.map +0 -1
  279. package/dist/types/components/profile/UserAvatar.d.ts.map +0 -1
  280. package/dist/types/components/profile/UserAvatarAddon.d.ts.map +0 -1
  281. package/dist/types/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.d.ts.map +0 -1
  282. package/dist/types/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.d.ts.map +0 -1
  283. package/dist/types/components/profile/__generated__/ProfileDrawerSignOutMutation.graphql.d.ts.map +0 -1
  284. package/dist/types/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.d.ts.map +0 -1
  285. package/dist/types/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts.map +0 -1
  286. package/dist/types/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.d.ts.map +0 -1
  287. package/dist/types/components/profile/__generated__/ProtectedWrapperQuery.graphql.d.ts.map +0 -1
  288. package/dist/types/components/session/SessionDrawer.d.ts.map +0 -1
  289. package/dist/types/components/session/SessionDrawerContent.d.ts.map +0 -1
  290. package/dist/types/components/session/SessionList.d.ts.map +0 -1
  291. package/dist/types/components/session/SessionListItem.d.ts.map +0 -1
  292. package/dist/types/components/session/SessionListSkeleton.d.ts.map +0 -1
  293. package/dist/types/components/session/__generated__/SessionDrawerContentQuery.graphql.d.ts.map +0 -1
  294. package/dist/types/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.d.ts.map +0 -1
  295. package/dist/types/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.d.ts.map +0 -1
  296. package/dist/types/components/session/__generated__/SessionListItem_session.graphql.d.ts.map +0 -1
  297. package/dist/types/components/session/__generated__/SessionListRefetchQuery.graphql.d.ts.map +0 -1
  298. package/dist/types/components/session/__generated__/SessionList_sessions.graphql.d.ts.map +0 -1
  299. package/dist/types/components/session/formatDate.d.ts.map +0 -1
  300. package/dist/types/components/session/getLastSeen.d.ts.map +0 -1
  301. package/dist/types/components/shared/ButtonUpdate.d.ts.map +0 -1
  302. package/dist/types/components/shared/ErrorResult.d.ts.map +0 -1
  303. package/dist/types/components/shared/MainLoader.d.ts.map +0 -1
  304. package/dist/types/components/shared/icons/AndroidIcon.d.ts.map +0 -1
  305. package/dist/types/components/shared/icons/AppleIcon.d.ts.map +0 -1
  306. package/dist/types/components/shared/icons/BrowserIcon.d.ts.map +0 -1
  307. package/dist/types/components/shared/icons/ProfileIcon.d.ts.map +0 -1
  308. package/dist/types/components/shared/icons/UnknownDeviceIcon.d.ts.map +0 -1
  309. package/dist/types/index.d.ts.map +0 -1
  310. package/dist/types/utils/getUserFullName.d.ts.map +0 -1
@@ -1,104 +1,62 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = exports.IconContainer = exports.Icon = exports.Content = exports.Container = void 0;
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _hooks = require("react-relay/hooks");
13
-
14
10
  var _styled = _interopRequireDefault(require("@emotion/styled"));
15
-
16
11
  var _reactI18next = require("react-i18next");
17
-
18
12
  var _pluralForms = _interopRequireDefault(require("@os-team/plural-forms"));
19
-
20
13
  var _core = require("@os-design/core");
21
-
22
14
  var _styles = require("@os-design/styles");
23
-
24
15
  var _theming = require("@os-design/theming");
25
-
26
16
  var _utils = require("@os-design/utils");
27
-
28
17
  var _icons = require("@os-design/icons");
29
-
30
18
  var _react2 = require("@emotion/react");
31
-
32
19
  var _getLastSeen = _interopRequireDefault(require("./getLastSeen"));
33
-
34
20
  var _formatDate = _interopRequireDefault(require("./formatDate"));
35
-
36
21
  var _UnknownDeviceIcon = _interopRequireDefault(require("../shared/icons/UnknownDeviceIcon"));
37
-
38
22
  var _BrowserIcon = _interopRequireDefault(require("../shared/icons/BrowserIcon"));
39
-
40
23
  var _AppleIcon = _interopRequireDefault(require("../shared/icons/AppleIcon"));
41
-
42
24
  var _AndroidIcon = _interopRequireDefault(require("../shared/icons/AndroidIcon"));
43
-
44
25
  var _SessionListItem_session, _SessionListItemDestroySessionMutation, _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
45
-
46
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
-
48
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
-
50
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
-
52
29
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
53
-
54
30
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
55
-
56
31
  function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
57
-
58
32
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
59
-
60
33
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
61
-
62
34
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
63
-
64
35
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
65
-
66
36
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
67
-
68
37
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
69
-
70
38
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
71
-
72
39
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
73
-
74
40
  var sessionListItemFragment = _SessionListItem_session !== void 0 ? _SessionListItem_session : (_SessionListItem_session = require("./__generated__/SessionListItem_session.graphql"), _SessionListItem_session.hash && _SessionListItem_session.hash !== "c73c341c5f6e75f7bef7402186ce242b" && console.error("The definition of 'SessionListItem_session' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _SessionListItem_session);
75
-
76
41
  var Container = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n position: relative;\n padding: 0.5em 0;\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 1px solid ", ";\n }\n\n @media (hover: hover) {\n // Hide actions by default\n & > nav {\n opacity: 0;\n }\n\n // Display actions either on focus, or on hover\n &:hover,\n &:focus-within {\n & > nav {\n opacity: 1;\n }\n }\n }\n\n ", ";\n"])), function (p) {
77
42
  return (0, _theming.clr)(p.theme.listItemColorBorder);
78
43
  }, (0, _styles.horizontalPaddingStyles)());
79
-
80
44
  exports.Container = Container;
81
-
82
45
  var Info = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n font-size: ", "em;\n ", ";\n"])), function (p) {
83
46
  return p.theme.sizes.small;
84
47
  }, _styles.ellipsisStyles);
85
-
86
48
  var Content = _styled.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex: 1;\n overflow: hidden;\n"])));
87
-
88
49
  exports.Content = Content;
89
50
  var Title = (0, _styled.default)(Info)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n font-weight: 500;\n"])));
90
51
  var LastSeen = (0, _styled.default)(Info)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n color: ", ";\n"])), function (p) {
91
52
  return (0, _theming.clr)(p.theme.inputColorPlaceholder);
92
53
  });
93
-
94
54
  var hasSwipeStyles = function hasSwipeStyles(p) {
95
55
  return p.hasSwipe && (0, _react2.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n transform: translateX(100%);\n ", ";\n "])), (0, _styles.transitionStyles)('transform')(p));
96
56
  };
97
-
98
57
  var openedStyles = function openedStyles(p) {
99
58
  return p.opened && (0, _react2.css)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n transform: translateX(0);\n "])));
100
59
  };
101
-
102
60
  var Actions = (0, _styled.default)('nav', (0, _utils.omitEmotionProps)('hasSwipe', 'opened'))(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n\n display: flex;\n align-items: center;\n\n background: linear-gradient(\n to right,\n ", ",\n ", "\n ", "em\n );\n\n ", ";\n ", ";\n ", ";\n"])), function (p) {
103
61
  return (0, _theming.clr)([].concat(_toConsumableArray(p.theme.colorBg.slice(0, 3)), [0]));
104
62
  }, function (p) {
@@ -106,9 +64,7 @@ var Actions = (0, _styled.default)('nav', (0, _utils.omitEmotionProps)('hasSwipe
106
64
  }, function (p) {
107
65
  return p.theme.listItemActionsPaddingLeft;
108
66
  }, hasSwipeStyles, openedStyles, (0, _styles.horizontalPaddingStyles)('right'));
109
-
110
67
  var IconContainer = _styled.default.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 0.6em;\n"])));
111
-
112
68
  exports.IconContainer = IconContainer;
113
69
  var Icon = (0, _styled.default)('div', (0, _utils.omitEmotionProps)('bgColor'))(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n font-size: 1.4em;\n width: 1.3em;\n height: 1.3em;\n\n svg {\n height: 1.3em;\n }\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ", "em;\n background-color: ", ";\n color: hsl(0, 0%, 100%);\n"])), function (p) {
114
70
  return p.theme.borderRadius;
@@ -116,39 +72,31 @@ var Icon = (0, _styled.default)('div', (0, _utils.omitEmotionProps)('bgColor'))(
116
72
  return p.bgColor;
117
73
  });
118
74
  exports.Icon = Icon;
119
-
120
75
  var nameVersionToString = function nameVersionToString(name, version) {
121
76
  if (!name) return null;
122
77
  return "".concat(name).concat(version ? " ".concat(version) : '');
123
78
  };
124
-
125
79
  var mergeInfo = function mergeInfo() {
126
80
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
127
81
  args[_key] = arguments[_key];
128
82
  }
129
-
130
83
  return args.filter(function (item) {
131
84
  return item !== null;
132
85
  }).join(', ') || null;
133
86
  };
134
-
135
87
  var SessionListItem = function SessionListItem(_ref) {
136
88
  var sessionKey = _ref.sessionKey,
137
- hideLastSeenAt = _ref.hideLastSeenAt;
89
+ hideLastSeenAt = _ref.hideLastSeenAt;
138
90
  var session = (0, _hooks.useFragment)(sessionListItemFragment, sessionKey);
139
-
140
- var _useTranslation = (0, _reactI18next.useTranslation)('profile'),
141
- t = _useTranslation.t,
142
- i18n = _useTranslation.i18n;
143
-
91
+ var _useTranslation = (0, _reactI18next.useTranslation)(['profile']),
92
+ t = _useTranslation.t,
93
+ i18n = _useTranslation.i18n;
144
94
  var touchDevice = (0, _react.useMemo)(function () {
145
95
  return (0, _utils.isTouchDevice)();
146
96
  }, []);
147
-
148
97
  var _useSwipe = (0, _utils.useSwipe)(),
149
- opened = _useSwipe.opened,
150
- handlers = _useSwipe.handlers;
151
-
98
+ opened = _useSwipe.opened,
99
+ handlers = _useSwipe.handlers;
152
100
  var browser = (0, _react.useMemo)(function () {
153
101
  return nameVersionToString(session.browserName, session.browserVersion);
154
102
  }, [session.browserName, session.browserVersion]);
@@ -156,13 +104,12 @@ var SessionListItem = function SessionListItem(_ref) {
156
104
  return nameVersionToString(session.osName, session.osVersion);
157
105
  }, [session.osName, session.osVersion]);
158
106
  var deviceBrandModel = (0, _react.useMemo)(function () {
159
- var arr = [session.deviceBrand, session.deviceModel]; // Include the manufacturer name only if it does not equal to the brand name.
107
+ var arr = [session.deviceBrand, session.deviceModel];
108
+ // Include the manufacturer name only if it does not equal to the brand name.
160
109
  // For example, it allows to avoid "Apple Apple iPhone 6".
161
-
162
110
  if (session.deviceManufacturer !== session.deviceBrand) {
163
111
  arr.unshift(session.deviceManufacturer);
164
112
  }
165
-
166
113
  return arr.filter(function (item) {
167
114
  return item !== null;
168
115
  }).join(' ') || null;
@@ -184,11 +131,9 @@ var SessionListItem = function SessionListItem(_ref) {
184
131
  }, [session.city, session.country, session.ip]);
185
132
  var lastSeen = (0, _react.useMemo)(function () {
186
133
  var lsa = (0, _getLastSeen.default)(session.lastSeenAt);
187
-
188
134
  if (!lsa) {
189
135
  return "".concat(t('profile:sessions.lastSeenOn'), " ").concat((0, _formatDate.default)(session.lastSeenAt, t, i18n.language));
190
136
  }
191
-
192
137
  return "".concat(t('profile:sessions.lastSeen'), " ").concat(lsa[0], " ").concat((0, _pluralForms.default)({
193
138
  language: i18n.language,
194
139
  forms: t("profile:sessions.".concat(lsa[1]), {
@@ -197,29 +142,23 @@ var SessionListItem = function SessionListItem(_ref) {
197
142
  number: lsa[0]
198
143
  }), " ").concat(t('profile:sessions.ago'));
199
144
  }, [i18n.language, session.lastSeenAt, t]);
200
-
201
145
  var _useMemo = (0, _react.useMemo)(function () {
202
- if (browser) return [/*#__PURE__*/_react.default.createElement(_BrowserIcon.default, null), 'hsl(30, 60%, 50%)'];
203
-
204
- if (session.isApp) {
205
- if (session.osName === 'iOS' || session.osName === 'iPhone OS') {
206
- return [/*#__PURE__*/_react.default.createElement(_AppleIcon.default, null), 'hsl(0, 0%, 50%)'];
146
+ if (browser) return [/*#__PURE__*/_react.default.createElement(_BrowserIcon.default, null), 'hsl(30, 60%, 50%)'];
147
+ if (session.isApp) {
148
+ if (session.osName === 'iOS' || session.osName === 'iPhone OS') {
149
+ return [/*#__PURE__*/_react.default.createElement(_AppleIcon.default, null), 'hsl(0, 0%, 50%)'];
150
+ }
151
+ if (session.osName === 'Android') return [/*#__PURE__*/_react.default.createElement(_AndroidIcon.default, null), 'hsl(150, 60%, 50%)'];
207
152
  }
208
-
209
- if (session.osName === 'Android') return [/*#__PURE__*/_react.default.createElement(_AndroidIcon.default, null), 'hsl(150, 60%, 50%)'];
210
- }
211
-
212
- return [/*#__PURE__*/_react.default.createElement(_UnknownDeviceIcon.default, null), 'hsl(5, 60%, 50%)'];
213
- }, [browser, session.isApp, session.osName]),
214
- _useMemo2 = _slicedToArray(_useMemo, 2),
215
- iconComponent = _useMemo2[0],
216
- iconColor = _useMemo2[1];
217
-
153
+ return [/*#__PURE__*/_react.default.createElement(_UnknownDeviceIcon.default, null), 'hsl(5, 60%, 50%)'];
154
+ }, [browser, session.isApp, session.osName]),
155
+ _useMemo2 = _slicedToArray(_useMemo, 2),
156
+ iconComponent = _useMemo2[0],
157
+ iconColor = _useMemo2[1];
218
158
  var _useMutation = (0, _hooks.useMutation)(_SessionListItemDestroySessionMutation !== void 0 ? _SessionListItemDestroySessionMutation : (_SessionListItemDestroySessionMutation = require("./__generated__/SessionListItemDestroySessionMutation.graphql"), _SessionListItemDestroySessionMutation.hash && _SessionListItemDestroySessionMutation.hash !== "ad6c0d1313a70dd63c0baccc2f7abd6e" && console.error("The definition of 'SessionListItemDestroySessionMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _SessionListItemDestroySessionMutation)),
219
- _useMutation2 = _slicedToArray(_useMutation, 2),
220
- commitDestroySession = _useMutation2[0],
221
- loadingDestroySession = _useMutation2[1];
222
-
159
+ _useMutation2 = _slicedToArray(_useMutation, 2),
160
+ commitDestroySession = _useMutation2[0],
161
+ loadingDestroySession = _useMutation2[1];
223
162
  var destroySession = (0, _react.useCallback)(function () {
224
163
  commitDestroySession({
225
164
  variables: {
@@ -257,7 +196,6 @@ var SessionListItem = function SessionListItem(_ref) {
257
196
  onClick: destroySession
258
197
  }, /*#__PURE__*/_react.default.createElement(_icons.SignOut, null))));
259
198
  };
260
-
261
199
  var _default = SessionListItem;
262
200
  exports.default = _default;
263
201
  //# sourceMappingURL=SessionListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionListItem.js","names":["sessionListItemFragment","Container","styled","div","p","clr","theme","listItemColorBorder","horizontalPaddingStyles","Info","sizes","small","ellipsisStyles","Content","Title","LastSeen","inputColorPlaceholder","hasSwipeStyles","hasSwipe","css","transitionStyles","openedStyles","opened","Actions","omitEmotionProps","colorBg","slice","listItemActionsPaddingLeft","IconContainer","Icon","borderRadius","bgColor","nameVersionToString","name","version","mergeInfo","args","filter","item","join","SessionListItem","sessionKey","hideLastSeenAt","session","useFragment","useTranslation","t","i18n","touchDevice","useMemo","isTouchDevice","useSwipe","handlers","browser","browserName","browserVersion","os","osName","osVersion","deviceBrandModel","arr","deviceBrand","deviceModel","deviceManufacturer","unshift","title","deviceType","toLowerCase","returnObjects","deviceName","deviceInfo","isApp","ip","location","city","country","lastSeen","lsa","getLastSeen","lastSeenAt","formatDate","language","pluralForms","forms","number","iconComponent","iconColor","useMutation","commitDestroySession","loadingDestroySession","destroySession","useCallback","variables","input","id","updater","store","record","get","sessionRecords","getLinkedRecords","setLinkedRecords","getDataID","onError","error","message","onCompleted","success"],"sources":["../../../../src/lib/components/session/SessionListItem.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport graphql from 'babel-plugin-relay/macro';\nimport { useFragment, useMutation } from 'react-relay/hooks';\nimport styled from '@emotion/styled';\nimport { useTranslation } from 'react-i18next';\nimport pluralForms from '@os-team/plural-forms';\nimport { Button, message } from '@os-design/core';\nimport {\n ellipsisStyles,\n horizontalPaddingStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { clr, Color } from '@os-design/theming';\nimport { isTouchDevice, omitEmotionProps, useSwipe } from '@os-design/utils';\nimport { SignOut } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport { SessionListItem_session$key } from './__generated__/SessionListItem_session.graphql';\nimport getLastSeen from './getLastSeen';\nimport formatDate from './formatDate';\nimport { SessionListItemDestroySessionMutation } from './__generated__/SessionListItemDestroySessionMutation.graphql';\nimport UnknownDeviceIcon from '../shared/icons/UnknownDeviceIcon';\nimport BrowserIcon from '../shared/icons/BrowserIcon';\nimport AppleIcon from '../shared/icons/AppleIcon';\nimport AndroidIcon from '../shared/icons/AndroidIcon';\n\nconst sessionListItemFragment = graphql`\n fragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n }\n`;\n\ninterface SessionListItemProps {\n sessionKey: SessionListItem_session$key;\n hideLastSeenAt?: boolean;\n}\n\nexport const Container = styled.div`\n display: flex;\n position: relative;\n padding: 0.5em 0;\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 1px solid ${(p) => clr(p.theme.listItemColorBorder)};\n }\n\n @media (hover: hover) {\n // Hide actions by default\n & > nav {\n opacity: 0;\n }\n\n // Display actions either on focus, or on hover\n &:hover,\n &:focus-within {\n & > nav {\n opacity: 1;\n }\n }\n }\n\n ${horizontalPaddingStyles()};\n`;\n\nconst Info = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n ${ellipsisStyles};\n`;\n\nexport const Content = styled.div`\n flex: 1;\n overflow: hidden;\n`;\n\nconst Title = styled(Info)`\n font-weight: 500;\n`;\n\nconst LastSeen = styled(Info)`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n`;\n\nconst hasSwipeStyles = (p) =>\n p.hasSwipe &&\n css`\n transform: translateX(100%);\n ${transitionStyles('transform')(p)};\n `;\n\nconst openedStyles = (p) =>\n p.opened &&\n css`\n transform: translateX(0);\n `;\n\ninterface ActionsProps {\n hasSwipe: boolean;\n opened: boolean;\n}\nconst Actions = styled(\n 'nav',\n omitEmotionProps('hasSwipe', 'opened')\n)<ActionsProps>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n\n display: flex;\n align-items: center;\n\n background: linear-gradient(\n to right,\n ${(p) => clr([...p.theme.colorBg.slice(0, 3), 0] as Color)},\n ${(p) => clr(p.theme.colorBg)}\n ${(p) => p.theme.listItemActionsPaddingLeft}em\n );\n\n ${hasSwipeStyles};\n ${openedStyles};\n ${horizontalPaddingStyles('right')};\n`;\n\nexport const IconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 0.6em;\n`;\n\ninterface IconProps {\n bgColor: string;\n}\nexport const Icon = styled('div', omitEmotionProps('bgColor'))<IconProps>`\n font-size: 1.4em;\n width: 1.3em;\n height: 1.3em;\n\n svg {\n height: 1.3em;\n }\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n background-color: ${(p) => p.bgColor};\n color: hsl(0, 0%, 100%);\n`;\n\nconst nameVersionToString = (\n name: string | null,\n version: string | null\n): string | null => {\n if (!name) return null;\n return `${name}${version ? ` ${version}` : ''}`;\n};\n\nconst mergeInfo = (...args: Array<string | null>): string | null =>\n args.filter((item) => item !== null).join(', ') || null;\n\nconst SessionListItem: React.FC<SessionListItemProps> = ({\n sessionKey,\n hideLastSeenAt,\n}) => {\n const session = useFragment(sessionListItemFragment, sessionKey);\n const { t, i18n } = useTranslation('profile');\n const touchDevice = useMemo(() => isTouchDevice(), []);\n const { opened, handlers } = useSwipe();\n\n const browser = useMemo(\n () => nameVersionToString(session.browserName, session.browserVersion),\n [session.browserName, session.browserVersion]\n );\n\n const os = useMemo(\n () => nameVersionToString(session.osName, session.osVersion),\n [session.osName, session.osVersion]\n );\n\n const deviceBrandModel = useMemo(() => {\n const arr = [session.deviceBrand, session.deviceModel];\n // Include the manufacturer name only if it does not equal to the brand name.\n // For example, it allows to avoid \"Apple Apple iPhone 6\".\n if (session.deviceManufacturer !== session.deviceBrand) {\n arr.unshift(session.deviceManufacturer);\n }\n return arr.filter((item) => item !== null).join(' ') || null;\n }, [session.deviceBrand, session.deviceManufacturer, session.deviceModel]);\n\n const title = useMemo(() => {\n let deviceType = (session.deviceType || 'unknown').toLowerCase();\n if (browser) deviceType = 'browser';\n return `${\n t('profile:sessions.deviceType', { returnObjects: true })[deviceType]\n }${session.deviceName ? ` ${session.deviceName}` : ''}`;\n }, [browser, session.deviceName, session.deviceType, t]);\n\n const deviceInfo = useMemo(\n () =>\n session.isApp ? mergeInfo(deviceBrandModel, os) : mergeInfo(browser, os),\n [browser, deviceBrandModel, os, session.isApp]\n );\n\n const ip = useMemo(() => {\n if (!session.ip) return null;\n const location = mergeInfo(session.city, session.country);\n return `${session.ip}${location ? ` (${location})` : ''}`;\n }, [session.city, session.country, session.ip]);\n\n const lastSeen = useMemo(() => {\n const lsa = getLastSeen(session.lastSeenAt);\n if (!lsa) {\n return `${t('profile:sessions.lastSeenOn')} ${formatDate(\n session.lastSeenAt,\n t,\n i18n.language\n )}`;\n }\n return `${t('profile:sessions.lastSeen')} ${lsa[0]} ${pluralForms({\n language: i18n.language,\n forms: t(`profile:sessions.${lsa[1]}`, { returnObjects: true }),\n number: lsa[0],\n })} ${t('profile:sessions.ago')}`;\n }, [i18n.language, session.lastSeenAt, t]);\n\n const [iconComponent, iconColor] = useMemo(() => {\n if (browser) return [<BrowserIcon />, 'hsl(30, 60%, 50%)'];\n if (session.isApp) {\n if (session.osName === 'iOS' || session.osName === 'iPhone OS') {\n return [<AppleIcon />, 'hsl(0, 0%, 50%)'];\n }\n if (session.osName === 'Android')\n return [<AndroidIcon />, 'hsl(150, 60%, 50%)'];\n }\n return [<UnknownDeviceIcon />, 'hsl(5, 60%, 50%)'];\n }, [browser, session.isApp, session.osName]);\n\n const [commitDestroySession, loadingDestroySession] =\n useMutation<SessionListItemDestroySessionMutation>(graphql`\n mutation SessionListItemDestroySessionMutation(\n $input: DestroySessionInput!\n ) {\n destroySession(input: $input) {\n ok\n }\n }\n `);\n\n const destroySession = useCallback(() => {\n commitDestroySession({\n variables: {\n input: {\n id: session.id,\n },\n },\n updater: (store) => {\n const record = store.get('client:root');\n if (!record) return;\n\n const sessionRecords = record.getLinkedRecords('sessions');\n if (!sessionRecords) return;\n\n record.setLinkedRecords(\n sessionRecords.filter((item) => item.getDataID() !== session.id),\n 'sessions'\n );\n },\n onError: (error) => {\n message.error(error.message);\n },\n onCompleted: () => {\n message.success(t('profile:sessions.destroyed'));\n },\n });\n }, [commitDestroySession, session.id, t]);\n\n return (\n <Container {...handlers}>\n <IconContainer>\n <Icon bgColor={iconColor}>{iconComponent}</Icon>\n </IconContainer>\n\n <Content>\n <Title>{title}</Title>\n {deviceInfo && <Info>{deviceInfo}</Info>}\n {ip && <Info>{ip}</Info>}\n {!hideLastSeenAt && <LastSeen>{lastSeen}</LastSeen>}\n </Content>\n\n <Actions hasSwipe={touchDevice} opened={opened}>\n <Button\n type='ghost'\n wide='never'\n size='small'\n loading={loadingDestroySession}\n onClick={destroySession}\n >\n <SignOut />\n </Button>\n </Actions>\n </Container>\n );\n};\n\nexport default SessionListItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"SessionListItem.js","names":["sessionListItemFragment","Container","styled","div","p","clr","theme","listItemColorBorder","horizontalPaddingStyles","Info","sizes","small","ellipsisStyles","Content","Title","LastSeen","inputColorPlaceholder","hasSwipeStyles","hasSwipe","css","transitionStyles","openedStyles","opened","Actions","omitEmotionProps","colorBg","slice","listItemActionsPaddingLeft","IconContainer","Icon","borderRadius","bgColor","nameVersionToString","name","version","mergeInfo","args","filter","item","join","SessionListItem","sessionKey","hideLastSeenAt","session","useFragment","useTranslation","t","i18n","touchDevice","useMemo","isTouchDevice","useSwipe","handlers","browser","browserName","browserVersion","os","osName","osVersion","deviceBrandModel","arr","deviceBrand","deviceModel","deviceManufacturer","unshift","title","deviceType","toLowerCase","returnObjects","deviceName","deviceInfo","isApp","ip","location","city","country","lastSeen","lsa","getLastSeen","lastSeenAt","formatDate","language","pluralForms","forms","number","iconComponent","iconColor","useMutation","commitDestroySession","loadingDestroySession","destroySession","useCallback","variables","input","id","updater","store","record","get","sessionRecords","getLinkedRecords","setLinkedRecords","getDataID","onError","error","message","onCompleted","success"],"sources":["../../../../src/lib/components/session/SessionListItem.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport graphql from 'babel-plugin-relay/macro';\nimport { useFragment, useMutation } from 'react-relay/hooks';\nimport styled from '@emotion/styled';\nimport { useTranslation } from 'react-i18next';\nimport pluralForms from '@os-team/plural-forms';\nimport { Button, message } from '@os-design/core';\nimport {\n ellipsisStyles,\n horizontalPaddingStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { clr, Color } from '@os-design/theming';\nimport { isTouchDevice, omitEmotionProps, useSwipe } from '@os-design/utils';\nimport { SignOut } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport { SessionListItem_session$key } from './__generated__/SessionListItem_session.graphql';\nimport getLastSeen from './getLastSeen';\nimport formatDate from './formatDate';\nimport { SessionListItemDestroySessionMutation } from './__generated__/SessionListItemDestroySessionMutation.graphql';\nimport UnknownDeviceIcon from '../shared/icons/UnknownDeviceIcon';\nimport BrowserIcon from '../shared/icons/BrowserIcon';\nimport AppleIcon from '../shared/icons/AppleIcon';\nimport AndroidIcon from '../shared/icons/AndroidIcon';\n\nconst sessionListItemFragment = graphql`\n fragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n }\n`;\n\ninterface SessionListItemProps {\n sessionKey: SessionListItem_session$key;\n hideLastSeenAt?: boolean;\n}\n\nexport const Container = styled.div`\n display: flex;\n position: relative;\n padding: 0.5em 0;\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 1px solid ${(p) => clr(p.theme.listItemColorBorder)};\n }\n\n @media (hover: hover) {\n // Hide actions by default\n & > nav {\n opacity: 0;\n }\n\n // Display actions either on focus, or on hover\n &:hover,\n &:focus-within {\n & > nav {\n opacity: 1;\n }\n }\n }\n\n ${horizontalPaddingStyles()};\n`;\n\nconst Info = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n ${ellipsisStyles};\n`;\n\nexport const Content = styled.div`\n flex: 1;\n overflow: hidden;\n`;\n\nconst Title = styled(Info)`\n font-weight: 500;\n`;\n\nconst LastSeen = styled(Info)`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n`;\n\nconst hasSwipeStyles = (p) =>\n p.hasSwipe &&\n css`\n transform: translateX(100%);\n ${transitionStyles('transform')(p)};\n `;\n\nconst openedStyles = (p) =>\n p.opened &&\n css`\n transform: translateX(0);\n `;\n\ninterface ActionsProps {\n hasSwipe: boolean;\n opened: boolean;\n}\nconst Actions = styled(\n 'nav',\n omitEmotionProps('hasSwipe', 'opened')\n)<ActionsProps>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n\n display: flex;\n align-items: center;\n\n background: linear-gradient(\n to right,\n ${(p) => clr([...p.theme.colorBg.slice(0, 3), 0] as Color)},\n ${(p) => clr(p.theme.colorBg)}\n ${(p) => p.theme.listItemActionsPaddingLeft}em\n );\n\n ${hasSwipeStyles};\n ${openedStyles};\n ${horizontalPaddingStyles('right')};\n`;\n\nexport const IconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 0.6em;\n`;\n\ninterface IconProps {\n bgColor: string;\n}\nexport const Icon = styled('div', omitEmotionProps('bgColor'))<IconProps>`\n font-size: 1.4em;\n width: 1.3em;\n height: 1.3em;\n\n svg {\n height: 1.3em;\n }\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n background-color: ${(p) => p.bgColor};\n color: hsl(0, 0%, 100%);\n`;\n\nconst nameVersionToString = (\n name: string | null,\n version: string | null\n): string | null => {\n if (!name) return null;\n return `${name}${version ? ` ${version}` : ''}`;\n};\n\nconst mergeInfo = (...args: Array<string | null>): string | null =>\n args.filter((item) => item !== null).join(', ') || null;\n\nconst SessionListItem: React.FC<SessionListItemProps> = ({\n sessionKey,\n hideLastSeenAt,\n}) => {\n const session = useFragment(sessionListItemFragment, sessionKey);\n const { t, i18n } = useTranslation(['profile']);\n const touchDevice = useMemo(() => isTouchDevice(), []);\n const { opened, handlers } = useSwipe();\n\n const browser = useMemo(\n () => nameVersionToString(session.browserName, session.browserVersion),\n [session.browserName, session.browserVersion]\n );\n\n const os = useMemo(\n () => nameVersionToString(session.osName, session.osVersion),\n [session.osName, session.osVersion]\n );\n\n const deviceBrandModel = useMemo(() => {\n const arr = [session.deviceBrand, session.deviceModel];\n // Include the manufacturer name only if it does not equal to the brand name.\n // For example, it allows to avoid \"Apple Apple iPhone 6\".\n if (session.deviceManufacturer !== session.deviceBrand) {\n arr.unshift(session.deviceManufacturer);\n }\n return arr.filter((item) => item !== null).join(' ') || null;\n }, [session.deviceBrand, session.deviceManufacturer, session.deviceModel]);\n\n const title = useMemo(() => {\n let deviceType = (session.deviceType || 'unknown').toLowerCase();\n if (browser) deviceType = 'browser';\n return `${\n t('profile:sessions.deviceType', { returnObjects: true })[deviceType]\n }${session.deviceName ? ` ${session.deviceName}` : ''}`;\n }, [browser, session.deviceName, session.deviceType, t]);\n\n const deviceInfo = useMemo(\n () =>\n session.isApp ? mergeInfo(deviceBrandModel, os) : mergeInfo(browser, os),\n [browser, deviceBrandModel, os, session.isApp]\n );\n\n const ip = useMemo(() => {\n if (!session.ip) return null;\n const location = mergeInfo(session.city, session.country);\n return `${session.ip}${location ? ` (${location})` : ''}`;\n }, [session.city, session.country, session.ip]);\n\n const lastSeen = useMemo(() => {\n const lsa = getLastSeen(session.lastSeenAt);\n if (!lsa) {\n return `${t('profile:sessions.lastSeenOn')} ${formatDate(\n session.lastSeenAt,\n t,\n i18n.language\n )}`;\n }\n return `${t('profile:sessions.lastSeen')} ${lsa[0]} ${pluralForms({\n language: i18n.language,\n forms: t(`profile:sessions.${lsa[1]}`, { returnObjects: true }),\n number: lsa[0],\n })} ${t('profile:sessions.ago')}`;\n }, [i18n.language, session.lastSeenAt, t]);\n\n const [iconComponent, iconColor] = useMemo(() => {\n if (browser) return [<BrowserIcon />, 'hsl(30, 60%, 50%)'];\n if (session.isApp) {\n if (session.osName === 'iOS' || session.osName === 'iPhone OS') {\n return [<AppleIcon />, 'hsl(0, 0%, 50%)'];\n }\n if (session.osName === 'Android')\n return [<AndroidIcon />, 'hsl(150, 60%, 50%)'];\n }\n return [<UnknownDeviceIcon />, 'hsl(5, 60%, 50%)'];\n }, [browser, session.isApp, session.osName]);\n\n const [commitDestroySession, loadingDestroySession] =\n useMutation<SessionListItemDestroySessionMutation>(graphql`\n mutation SessionListItemDestroySessionMutation(\n $input: DestroySessionInput!\n ) {\n destroySession(input: $input) {\n ok\n }\n }\n `);\n\n const destroySession = useCallback(() => {\n commitDestroySession({\n variables: {\n input: {\n id: session.id,\n },\n },\n updater: (store) => {\n const record = store.get('client:root');\n if (!record) return;\n\n const sessionRecords = record.getLinkedRecords('sessions');\n if (!sessionRecords) return;\n\n record.setLinkedRecords(\n sessionRecords.filter((item) => item.getDataID() !== session.id),\n 'sessions'\n );\n },\n onError: (error) => {\n message.error(error.message);\n },\n onCompleted: () => {\n message.success(t('profile:sessions.destroyed'));\n },\n });\n }, [commitDestroySession, session.id, t]);\n\n return (\n <Container {...handlers}>\n <IconContainer>\n <Icon bgColor={iconColor}>{iconComponent}</Icon>\n </IconContainer>\n\n <Content>\n <Title>{title}</Title>\n {deviceInfo && <Info>{deviceInfo}</Info>}\n {ip && <Info>{ip}</Info>}\n {!hideLastSeenAt && <LastSeen>{lastSeen}</LastSeen>}\n </Content>\n\n <Actions hasSwipe={touchDevice} opened={opened}>\n <Button\n type='ghost'\n wide='never'\n size='small'\n loading={loadingDestroySession}\n onClick={destroySession}\n >\n <SignOut />\n </Button>\n </Actions>\n </Container>\n );\n};\n\nexport default SessionListItem;\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAsD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEtD,IAAMA,uBAAuB,scAkB5B;AAOM,IAAMC,SAAS,GAAGC,eAAM,CAACC,GAAG,ueAOJ,UAACC,CAAC;EAAA,OAAK,IAAAC,YAAG,EAACD,CAAC,CAACE,KAAK,CAACC,mBAAmB,CAAC;AAAA,GAkBlE,IAAAC,+BAAuB,GAAE,CAC5B;AAAC;AAEF,IAAMC,IAAI,GAAGP,eAAM,CAACC,GAAG,yGACR,UAACC,CAAC;EAAA,OAAKA,CAAC,CAACE,KAAK,CAACI,KAAK,CAACC,KAAK;AAAA,GACrCC,sBAAc,CACjB;AAEM,IAAMC,OAAO,GAAGX,eAAM,CAACC,GAAG,0GAGhC;AAAC;AAEF,IAAMW,KAAK,GAAG,IAAAZ,eAAM,EAACO,IAAI,CAAC,8FAEzB;AAED,IAAMM,QAAQ,GAAG,IAAAb,eAAM,EAACO,IAAI,CAAC,0FAClB,UAACL,CAAC;EAAA,OAAK,IAAAC,YAAG,EAACD,CAAC,CAACE,KAAK,CAACU,qBAAqB,CAAC;AAAA,EACnD;AAED,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CAAIb,CAAC;EAAA,OACvBA,CAAC,CAACc,QAAQ,QACVC,WAAG,0HAEC,IAAAC,wBAAgB,EAAC,WAAW,CAAC,CAAChB,CAAC,CAAC,CACnC;AAAA;AAEH,IAAMiB,YAAY,GAAG,SAAfA,YAAY,CAAIjB,CAAC;EAAA,OACrBA,CAAC,CAACkB,MAAM,QACRH,WAAG,2GAEF;AAAA;AAMH,IAAMI,OAAO,GAAG,IAAArB,eAAM,EACpB,KAAK,EACL,IAAAsB,uBAAgB,EAAC,UAAU,EAAE,QAAQ,CAAC,CACvC,0SAWK,UAACpB,CAAC;EAAA,OAAK,IAAAC,YAAG,+BAAKD,CAAC,CAACE,KAAK,CAACmB,OAAO,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAE,CAAC,GAAW;AAAA,GACxD,UAACtB,CAAC;EAAA,OAAK,IAAAC,YAAG,EAACD,CAAC,CAACE,KAAK,CAACmB,OAAO,CAAC;AAAA,GACzB,UAACrB,CAAC;EAAA,OAAKA,CAAC,CAACE,KAAK,CAACqB,0BAA0B;AAAA,GAG7CV,cAAc,EACdI,YAAY,EACZ,IAAAb,+BAAuB,EAAC,OAAO,CAAC,CACnC;AAEM,IAAMoB,aAAa,GAAG1B,eAAM,CAACC,GAAG,uKAKtC;AAAC;AAKK,IAAM0B,IAAI,GAAG,IAAA3B,eAAM,EAAC,KAAK,EAAE,IAAAsB,uBAAgB,EAAC,SAAS,CAAC,CAAC,mUAa3C,UAACpB,CAAC;EAAA,OAAKA,CAAC,CAACE,KAAK,CAACwB,YAAY;AAAA,GACxB,UAAC1B,CAAC;EAAA,OAAKA,CAAC,CAAC2B,OAAO;AAAA,EAErC;AAAC;AAEF,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CACvBC,IAAmB,EACnBC,OAAsB,EACJ;EAClB,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;EACtB,iBAAUA,IAAI,SAAGC,OAAO,cAAOA,OAAO,IAAK,EAAE;AAC/C,CAAC;AAED,IAAMC,SAAS,GAAG,SAAZA,SAAS;EAAA,kCAAOC,IAAI;IAAJA,IAAI;EAAA;EAAA,OACxBA,IAAI,CAACC,MAAM,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,KAAK,IAAI;EAAA,EAAC,CAACC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;AAAA;AAEzD,IAAMC,eAA+C,GAAG,SAAlDA,eAA+C,OAG/C;EAAA,IAFJC,UAAU,QAAVA,UAAU;IACVC,cAAc,QAAdA,cAAc;EAEd,IAAMC,OAAO,GAAG,IAAAC,kBAAW,EAAC5C,uBAAuB,EAAEyC,UAAU,CAAC;EAChE,sBAAoB,IAAAI,4BAAc,EAAC,CAAC,SAAS,CAAC,CAAC;IAAvCC,CAAC,mBAADA,CAAC;IAAEC,IAAI,mBAAJA,IAAI;EACf,IAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC;IAAA,OAAM,IAAAC,oBAAa,GAAE;EAAA,GAAE,EAAE,CAAC;EACtD,gBAA6B,IAAAC,eAAQ,GAAE;IAA/B7B,MAAM,aAANA,MAAM;IAAE8B,QAAQ,aAARA,QAAQ;EAExB,IAAMC,OAAO,GAAG,IAAAJ,cAAO,EACrB;IAAA,OAAMjB,mBAAmB,CAACW,OAAO,CAACW,WAAW,EAAEX,OAAO,CAACY,cAAc,CAAC;EAAA,GACtE,CAACZ,OAAO,CAACW,WAAW,EAAEX,OAAO,CAACY,cAAc,CAAC,CAC9C;EAED,IAAMC,EAAE,GAAG,IAAAP,cAAO,EAChB;IAAA,OAAMjB,mBAAmB,CAACW,OAAO,CAACc,MAAM,EAAEd,OAAO,CAACe,SAAS,CAAC;EAAA,GAC5D,CAACf,OAAO,CAACc,MAAM,EAAEd,OAAO,CAACe,SAAS,CAAC,CACpC;EAED,IAAMC,gBAAgB,GAAG,IAAAV,cAAO,EAAC,YAAM;IACrC,IAAMW,GAAG,GAAG,CAACjB,OAAO,CAACkB,WAAW,EAAElB,OAAO,CAACmB,WAAW,CAAC;IACtD;IACA;IACA,IAAInB,OAAO,CAACoB,kBAAkB,KAAKpB,OAAO,CAACkB,WAAW,EAAE;MACtDD,GAAG,CAACI,OAAO,CAACrB,OAAO,CAACoB,kBAAkB,CAAC;IACzC;IACA,OAAOH,GAAG,CAACvB,MAAM,CAAC,UAACC,IAAI;MAAA,OAAKA,IAAI,KAAK,IAAI;IAAA,EAAC,CAACC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI;EAC9D,CAAC,EAAE,CAACI,OAAO,CAACkB,WAAW,EAAElB,OAAO,CAACoB,kBAAkB,EAAEpB,OAAO,CAACmB,WAAW,CAAC,CAAC;EAE1E,IAAMG,KAAK,GAAG,IAAAhB,cAAO,EAAC,YAAM;IAC1B,IAAIiB,UAAU,GAAG,CAACvB,OAAO,CAACuB,UAAU,IAAI,SAAS,EAAEC,WAAW,EAAE;IAChE,IAAId,OAAO,EAAEa,UAAU,GAAG,SAAS;IACnC,iBACEpB,CAAC,CAAC,6BAA6B,EAAE;MAAEsB,aAAa,EAAE;IAAK,CAAC,CAAC,CAACF,UAAU,CAAC,SACpEvB,OAAO,CAAC0B,UAAU,cAAO1B,OAAO,CAAC0B,UAAU,IAAK,EAAE;EACvD,CAAC,EAAE,CAAChB,OAAO,EAAEV,OAAO,CAAC0B,UAAU,EAAE1B,OAAO,CAACuB,UAAU,EAAEpB,CAAC,CAAC,CAAC;EAExD,IAAMwB,UAAU,GAAG,IAAArB,cAAO,EACxB;IAAA,OACEN,OAAO,CAAC4B,KAAK,GAAGpC,SAAS,CAACwB,gBAAgB,EAAEH,EAAE,CAAC,GAAGrB,SAAS,CAACkB,OAAO,EAAEG,EAAE,CAAC;EAAA,GAC1E,CAACH,OAAO,EAAEM,gBAAgB,EAAEH,EAAE,EAAEb,OAAO,CAAC4B,KAAK,CAAC,CAC/C;EAED,IAAMC,EAAE,GAAG,IAAAvB,cAAO,EAAC,YAAM;IACvB,IAAI,CAACN,OAAO,CAAC6B,EAAE,EAAE,OAAO,IAAI;IAC5B,IAAMC,QAAQ,GAAGtC,SAAS,CAACQ,OAAO,CAAC+B,IAAI,EAAE/B,OAAO,CAACgC,OAAO,CAAC;IACzD,iBAAUhC,OAAO,CAAC6B,EAAE,SAAGC,QAAQ,eAAQA,QAAQ,SAAM,EAAE;EACzD,CAAC,EAAE,CAAC9B,OAAO,CAAC+B,IAAI,EAAE/B,OAAO,CAACgC,OAAO,EAAEhC,OAAO,CAAC6B,EAAE,CAAC,CAAC;EAE/C,IAAMI,QAAQ,GAAG,IAAA3B,cAAO,EAAC,YAAM;IAC7B,IAAM4B,GAAG,GAAG,IAAAC,oBAAW,EAACnC,OAAO,CAACoC,UAAU,CAAC;IAC3C,IAAI,CAACF,GAAG,EAAE;MACR,iBAAU/B,CAAC,CAAC,6BAA6B,CAAC,cAAI,IAAAkC,mBAAU,EACtDrC,OAAO,CAACoC,UAAU,EAClBjC,CAAC,EACDC,IAAI,CAACkC,QAAQ,CACd;IACH;IACA,iBAAUnC,CAAC,CAAC,2BAA2B,CAAC,cAAI+B,GAAG,CAAC,CAAC,CAAC,cAAI,IAAAK,oBAAW,EAAC;MAChED,QAAQ,EAAElC,IAAI,CAACkC,QAAQ;MACvBE,KAAK,EAAErC,CAAC,4BAAqB+B,GAAG,CAAC,CAAC,CAAC,GAAI;QAAET,aAAa,EAAE;MAAK,CAAC,CAAC;MAC/DgB,MAAM,EAAEP,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,cAAI/B,CAAC,CAAC,sBAAsB,CAAC;EACjC,CAAC,EAAE,CAACC,IAAI,CAACkC,QAAQ,EAAEtC,OAAO,CAACoC,UAAU,EAAEjC,CAAC,CAAC,CAAC;EAE1C,eAAmC,IAAAG,cAAO,EAAC,YAAM;MAC/C,IAAII,OAAO,EAAE,OAAO,cAAC,6BAAC,oBAAW,OAAG,EAAE,mBAAmB,CAAC;MAC1D,IAAIV,OAAO,CAAC4B,KAAK,EAAE;QACjB,IAAI5B,OAAO,CAACc,MAAM,KAAK,KAAK,IAAId,OAAO,CAACc,MAAM,KAAK,WAAW,EAAE;UAC9D,OAAO,cAAC,6BAAC,kBAAS,OAAG,EAAE,iBAAiB,CAAC;QAC3C;QACA,IAAId,OAAO,CAACc,MAAM,KAAK,SAAS,EAC9B,OAAO,cAAC,6BAAC,oBAAW,OAAG,EAAE,oBAAoB,CAAC;MAClD;MACA,OAAO,cAAC,6BAAC,0BAAiB,OAAG,EAAE,kBAAkB,CAAC;IACpD,CAAC,EAAE,CAACJ,OAAO,EAAEV,OAAO,CAAC4B,KAAK,EAAE5B,OAAO,CAACc,MAAM,CAAC,CAAC;IAAA;IAVrC4B,aAAa;IAAEC,SAAS;EAY/B,mBACE,IAAAC,kBAAW,sjBAQT;IAAA;IATGC,oBAAoB;IAAEC,qBAAqB;EAWlD,IAAMC,cAAc,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACvCH,oBAAoB,CAAC;MACnBI,SAAS,EAAE;QACTC,KAAK,EAAE;UACLC,EAAE,EAAEnD,OAAO,CAACmD;QACd;MACF,CAAC;MACDC,OAAO,EAAE,iBAACC,KAAK,EAAK;QAClB,IAAMC,MAAM,GAAGD,KAAK,CAACE,GAAG,CAAC,aAAa,CAAC;QACvC,IAAI,CAACD,MAAM,EAAE;QAEb,IAAME,cAAc,GAAGF,MAAM,CAACG,gBAAgB,CAAC,UAAU,CAAC;QAC1D,IAAI,CAACD,cAAc,EAAE;QAErBF,MAAM,CAACI,gBAAgB,CACrBF,cAAc,CAAC9D,MAAM,CAAC,UAACC,IAAI;UAAA,OAAKA,IAAI,CAACgE,SAAS,EAAE,KAAK3D,OAAO,CAACmD,EAAE;QAAA,EAAC,EAChE,UAAU,CACX;MACH,CAAC;MACDS,OAAO,EAAE,iBAACC,KAAK,EAAK;QAClBC,aAAO,CAACD,KAAK,CAACA,KAAK,CAACC,OAAO,CAAC;MAC9B,CAAC;MACDC,WAAW,EAAE,uBAAM;QACjBD,aAAO,CAACE,OAAO,CAAC7D,CAAC,CAAC,4BAA4B,CAAC,CAAC;MAClD;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC0C,oBAAoB,EAAE7C,OAAO,CAACmD,EAAE,EAAEhD,CAAC,CAAC,CAAC;EAEzC,oBACE,6BAAC,SAAS,EAAKM,QAAQ,eACrB,6BAAC,aAAa,qBACZ,6BAAC,IAAI;IAAC,OAAO,EAAEkC;EAAU,GAAED,aAAa,CAAQ,CAClC,eAEhB,6BAAC,OAAO,qBACN,6BAAC,KAAK,QAAEpB,KAAK,CAAS,EACrBK,UAAU,iBAAI,6BAAC,IAAI,QAAEA,UAAU,CAAQ,EACvCE,EAAE,iBAAI,6BAAC,IAAI,QAAEA,EAAE,CAAQ,EACvB,CAAC9B,cAAc,iBAAI,6BAAC,QAAQ,QAAEkC,QAAQ,CAAY,CAC3C,eAEV,6BAAC,OAAO;IAAC,QAAQ,EAAE5B,WAAY;IAAC,MAAM,EAAE1B;EAAO,gBAC7C,6BAAC,YAAM;IACL,IAAI,EAAC,OAAO;IACZ,IAAI,EAAC,OAAO;IACZ,IAAI,EAAC,OAAO;IACZ,OAAO,EAAEmE,qBAAsB;IAC/B,OAAO,EAAEC;EAAe,gBAExB,6BAAC,cAAO,OAAG,CACJ,CACD,CACA;AAEhB,CAAC;AAAC,eAEalD,eAAe;AAAA"}
@@ -4,43 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _reactI18next = require("react-i18next");
11
-
12
9
  var _core = require("@os-design/core");
13
-
14
10
  var _styled = _interopRequireDefault(require("@emotion/styled"));
15
-
16
11
  var _SessionListItem = require("./SessionListItem");
17
-
18
12
  var _SessionList = require("./SessionList");
19
-
20
13
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25
-
26
16
  var IconSkeleton = (0, _styled.default)(_core.Skeleton)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 1.82em;\n height: 1.82em;\n"])));
27
17
  var ContainerSkeleton = (0, _styled.default)(_SessionListItem.Container)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: 0.8em 0;\n"])));
28
18
  var TitleSkeleton = (0, _styled.default)(_core.Skeleton)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n height: ", "em;\n"])), function (p) {
29
19
  return p.theme.sizes.small;
30
20
  });
31
21
  var InfoSkeleton = (0, _styled.default)(TitleSkeleton)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-top: 0.3em;\n"])));
32
-
33
22
  var SessionListSkeleton = function SessionListSkeleton() {
34
- var _useTranslation = (0, _reactI18next.useTranslation)('profile'),
35
- t = _useTranslation.t;
36
-
23
+ var _useTranslation = (0, _reactI18next.useTranslation)(['profile']),
24
+ t = _useTranslation.t;
37
25
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_SessionList.Title, null, t('profile:sessions.current')), /*#__PURE__*/_react.default.createElement(_SessionList.List, null, /*#__PURE__*/_react.default.createElement(ContainerSkeleton, null, /*#__PURE__*/_react.default.createElement(_SessionListItem.IconContainer, null, /*#__PURE__*/_react.default.createElement(IconSkeleton, null)), /*#__PURE__*/_react.default.createElement(_SessionListItem.Content, null, /*#__PURE__*/_react.default.createElement(TitleSkeleton, {
38
26
  width: "50%"
39
27
  }), /*#__PURE__*/_react.default.createElement(InfoSkeleton, null), /*#__PURE__*/_react.default.createElement(InfoSkeleton, {
40
28
  width: "90%"
41
29
  })))));
42
30
  };
43
-
44
31
  var _default = SessionListSkeleton;
45
32
  exports.default = _default;
46
33
  //# sourceMappingURL=SessionListSkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionListSkeleton.js","names":["IconSkeleton","styled","Skeleton","ContainerSkeleton","Container","TitleSkeleton","p","theme","sizes","small","InfoSkeleton","SessionListSkeleton","useTranslation","t"],"sources":["../../../../src/lib/components/session/SessionListSkeleton.tsx"],"sourcesContent":["import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Skeleton } from '@os-design/core';\nimport styled from '@emotion/styled';\nimport { Container, Content, IconContainer } from './SessionListItem';\nimport { Title, List } from './SessionList';\n\nconst IconSkeleton = styled(Skeleton)`\n width: 1.82em;\n height: 1.82em;\n`;\n\nconst ContainerSkeleton = styled(Container)`\n padding: 0.8em 0;\n`;\n\nconst TitleSkeleton = styled(Skeleton)`\n height: ${(p) => p.theme.sizes.small}em;\n`;\n\nconst InfoSkeleton = styled(TitleSkeleton)`\n margin-top: 0.3em;\n`;\n\nconst SessionListSkeleton: React.FC = () => {\n const { t } = useTranslation('profile');\n\n return (\n <>\n <Title>{t('profile:sessions.current')}</Title>\n <List>\n <ContainerSkeleton>\n <IconContainer>\n <IconSkeleton />\n </IconContainer>\n\n <Content>\n <TitleSkeleton width='50%' />\n <InfoSkeleton />\n <InfoSkeleton width='90%' />\n </Content>\n </ContainerSkeleton>\n </List>\n </>\n );\n};\n\nexport default SessionListSkeleton;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,YAAY,GAAG,IAAAC,eAAA,EAAOC,cAAP,CAAH,4GAAlB;AAKA,IAAMC,iBAAiB,GAAG,IAAAF,eAAA,EAAOG,0BAAP,CAAH,8FAAvB;AAIA,IAAMC,aAAa,GAAG,IAAAJ,eAAA,EAAOC,cAAP,CAAH,6FACP,UAACI,CAAD;EAAA,OAAOA,CAAC,CAACC,KAAF,CAAQC,KAAR,CAAcC,KAArB;AAAA,CADO,CAAnB;AAIA,IAAMC,YAAY,GAAG,IAAAT,eAAA,EAAOI,aAAP,CAAH,+FAAlB;;AAIA,IAAMM,mBAA6B,GAAG,SAAhCA,mBAAgC,GAAM;EAC1C,sBAAc,IAAAC,4BAAA,EAAe,SAAf,CAAd;EAAA,IAAQC,CAAR,mBAAQA,CAAR;;EAEA,oBACE,yEACE,6BAAC,kBAAD,QAAQA,CAAC,CAAC,0BAAD,CAAT,CADF,eAEE,6BAAC,iBAAD,qBACE,6BAAC,iBAAD,qBACE,6BAAC,8BAAD,qBACE,6BAAC,YAAD,OADF,CADF,eAKE,6BAAC,wBAAD,qBACE,6BAAC,aAAD;IAAe,KAAK,EAAC;EAArB,EADF,eAEE,6BAAC,YAAD,OAFF,eAGE,6BAAC,YAAD;IAAc,KAAK,EAAC;EAApB,EAHF,CALF,CADF,CAFF,CADF;AAkBD,CArBD;;eAuBeF,mB"}
1
+ {"version":3,"file":"SessionListSkeleton.js","names":["IconSkeleton","styled","Skeleton","ContainerSkeleton","Container","TitleSkeleton","p","theme","sizes","small","InfoSkeleton","SessionListSkeleton","useTranslation","t"],"sources":["../../../../src/lib/components/session/SessionListSkeleton.tsx"],"sourcesContent":["import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Skeleton } from '@os-design/core';\nimport styled from '@emotion/styled';\nimport { Container, Content, IconContainer } from './SessionListItem';\nimport { Title, List } from './SessionList';\n\nconst IconSkeleton = styled(Skeleton)`\n width: 1.82em;\n height: 1.82em;\n`;\n\nconst ContainerSkeleton = styled(Container)`\n padding: 0.8em 0;\n`;\n\nconst TitleSkeleton = styled(Skeleton)`\n height: ${(p) => p.theme.sizes.small}em;\n`;\n\nconst InfoSkeleton = styled(TitleSkeleton)`\n margin-top: 0.3em;\n`;\n\nconst SessionListSkeleton: React.FC = () => {\n const { t } = useTranslation(['profile']);\n\n return (\n <>\n <Title>{t('profile:sessions.current')}</Title>\n <List>\n <ContainerSkeleton>\n <IconContainer>\n <IconSkeleton />\n </IconContainer>\n\n <Content>\n <TitleSkeleton width='50%' />\n <InfoSkeleton />\n <InfoSkeleton width='90%' />\n </Content>\n </ContainerSkeleton>\n </List>\n </>\n );\n};\n\nexport default SessionListSkeleton;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAA4C;AAAA;AAAA;AAE5C,IAAMA,YAAY,GAAG,IAAAC,eAAM,EAACC,cAAQ,CAAC,4GAGpC;AAED,IAAMC,iBAAiB,GAAG,IAAAF,eAAM,EAACG,0BAAS,CAAC,8FAE1C;AAED,IAAMC,aAAa,GAAG,IAAAJ,eAAM,EAACC,cAAQ,CAAC,6FAC1B,UAACI,CAAC;EAAA,OAAKA,CAAC,CAACC,KAAK,CAACC,KAAK,CAACC,KAAK;AAAA,EACrC;AAED,IAAMC,YAAY,GAAG,IAAAT,eAAM,EAACI,aAAa,CAAC,+FAEzC;AAED,IAAMM,mBAA6B,GAAG,SAAhCA,mBAA6B,GAAS;EAC1C,sBAAc,IAAAC,4BAAc,EAAC,CAAC,SAAS,CAAC,CAAC;IAAjCC,CAAC,mBAADA,CAAC;EAET,oBACE,yEACE,6BAAC,kBAAK,QAAEA,CAAC,CAAC,0BAA0B,CAAC,CAAS,eAC9C,6BAAC,iBAAI,qBACH,6BAAC,iBAAiB,qBAChB,6BAAC,8BAAa,qBACZ,6BAAC,YAAY,OAAG,CACF,eAEhB,6BAAC,wBAAO,qBACN,6BAAC,aAAa;IAAC,KAAK,EAAC;EAAK,EAAG,eAC7B,6BAAC,YAAY,OAAG,eAChB,6BAAC,YAAY;IAAC,KAAK,EAAC;EAAK,EAAG,CACpB,CACQ,CACf,CACN;AAEP,CAAC;AAAC,eAEaF,mBAAmB;AAAA"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  /**
9
8
  * @generated SignedSource<<3d3e12b4f2082ce4b7758021424fdae3>>
10
9
  * @lightSyntaxTransform
@@ -12,9 +11,9 @@ exports.default = void 0;
12
11
  */
13
12
 
14
13
  /* tslint:disable */
15
-
16
14
  /* eslint-disable */
17
15
  // @ts-nocheck
16
+
18
17
  var node = {
19
18
  "fragment": {
20
19
  "argumentDefinitions": [],
@@ -1 +1 @@
1
- {"version":3,"file":"SessionDrawerContentQuery.graphql.js","names":["node","hash"],"sources":["../../../../../src/lib/components/session/__generated__/SessionDrawerContentQuery.graphql.ts"],"sourcesContent":["/**\n * @generated SignedSource<<3d3e12b4f2082ce4b7758021424fdae3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SessionDrawerContentQuery$variables = {};\nexport type SessionDrawerContentQuery$data = {\n readonly \" $fragmentSpreads\": FragmentRefs<\"SessionList_sessions\">;\n};\nexport type SessionDrawerContentQuery = {\n response: SessionDrawerContentQuery$data;\n variables: SessionDrawerContentQuery$variables;\n};\n\nconst node: ConcreteRequest = {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"SessionList_sessions\"\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SessionPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"sessions\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"current\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastSeenAt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isApp\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceManufacturer\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceBrand\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceModel\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ip\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"country\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"cc7ef83584759c724bbad21b528477c2\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"SessionDrawerContentQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query SessionDrawerContentQuery {\\n ...SessionList_sessions\\n}\\n\\nfragment SessionListItem_session on SessionPayload {\\n id\\n isApp\\n browserName\\n browserVersion\\n osName\\n osVersion\\n deviceType\\n deviceName\\n deviceManufacturer\\n deviceBrand\\n deviceModel\\n ip\\n country\\n city\\n lastSeenAt\\n}\\n\\nfragment SessionList_sessions on Query {\\n sessions {\\n id\\n current\\n lastSeenAt\\n ...SessionListItem_session\\n }\\n}\\n\"\n }\n};\n\n(node as any).hash = \"1643ac6b9bd324d389dab9011e55b1ba\";\n\nexport default node;\n"],"mappings":"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"}
1
+ {"version":3,"file":"SessionDrawerContentQuery.graphql.js","names":["node","hash"],"sources":["../../../../../src/lib/components/session/__generated__/SessionDrawerContentQuery.graphql.ts"],"sourcesContent":["/**\n * @generated SignedSource<<3d3e12b4f2082ce4b7758021424fdae3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SessionDrawerContentQuery$variables = {};\nexport type SessionDrawerContentQuery$data = {\n readonly \" $fragmentSpreads\": FragmentRefs<\"SessionList_sessions\">;\n};\nexport type SessionDrawerContentQuery = {\n response: SessionDrawerContentQuery$data;\n variables: SessionDrawerContentQuery$variables;\n};\n\nconst node: ConcreteRequest = {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"SessionList_sessions\"\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SessionPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"sessions\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"current\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastSeenAt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isApp\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceManufacturer\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceBrand\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceModel\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ip\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"country\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"cc7ef83584759c724bbad21b528477c2\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"SessionDrawerContentQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query SessionDrawerContentQuery {\\n ...SessionList_sessions\\n}\\n\\nfragment SessionListItem_session on SessionPayload {\\n id\\n isApp\\n browserName\\n browserVersion\\n osName\\n osVersion\\n deviceType\\n deviceName\\n deviceManufacturer\\n deviceBrand\\n deviceModel\\n ip\\n country\\n city\\n lastSeenAt\\n}\\n\\nfragment SessionList_sessions on Query {\\n sessions {\\n id\\n current\\n lastSeenAt\\n ...SessionListItem_session\\n }\\n}\\n\"\n }\n};\n\n(node as any).hash = \"1643ac6b9bd324d389dab9011e55b1ba\";\n\nexport default node;\n"],"mappings":"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"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  /**
9
8
  * @generated SignedSource<<6494414e61957261dfdc6fec7a9a1df7>>
10
9
  * @lightSyntaxTransform
@@ -12,9 +11,9 @@ exports.default = void 0;
12
11
  */
13
12
 
14
13
  /* tslint:disable */
15
-
16
14
  /* eslint-disable */
17
15
  // @ts-nocheck
16
+
18
17
  var node = function () {
19
18
  var v0 = [{
20
19
  "alias": null,
@@ -38,9 +37,7 @@ var node = function () {
38
37
  "kind": "Fragment",
39
38
  "metadata": null,
40
39
  "name": "SessionListDestroyAllOtherSessionsMutation",
41
- "selections": v0
42
- /*: any*/
43
- ,
40
+ "selections": v0 /*: any*/,
44
41
  "type": "Mutation",
45
42
  "abstractKey": null
46
43
  },
@@ -49,10 +46,9 @@ var node = function () {
49
46
  "argumentDefinitions": [],
50
47
  "kind": "Operation",
51
48
  "name": "SessionListDestroyAllOtherSessionsMutation",
52
- "selections": v0
53
- /*: any*/
54
-
49
+ "selections": v0 /*: any*/
55
50
  },
51
+
56
52
  "params": {
57
53
  "cacheID": "c6f556336ccb31f27b1c2f13c2ea9c06",
58
54
  "id": null,
@@ -63,7 +59,6 @@ var node = function () {
63
59
  }
64
60
  };
65
61
  }();
66
-
67
62
  node.hash = "016b6b5e7ae228f7df552d97fa43bd40";
68
63
  var _default = node;
69
64
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionListDestroyAllOtherSessionsMutation.graphql.js","names":["node","v0","hash"],"sources":["../../../../../src/lib/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.ts"],"sourcesContent":["/**\n * @generated SignedSource<<6494414e61957261dfdc6fec7a9a1df7>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type SessionListDestroyAllOtherSessionsMutation$variables = {};\nexport type SessionListDestroyAllOtherSessionsMutation$data = {\n readonly destroyAllOtherSessions: {\n readonly ok: boolean;\n };\n};\nexport type SessionListDestroyAllOtherSessionsMutation = {\n response: SessionListDestroyAllOtherSessionsMutation$data;\n variables: SessionListDestroyAllOtherSessionsMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"StatusPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"destroyAllOtherSessions\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ok\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionListDestroyAllOtherSessionsMutation\",\n \"selections\": (v0/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"SessionListDestroyAllOtherSessionsMutation\",\n \"selections\": (v0/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"c6f556336ccb31f27b1c2f13c2ea9c06\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"SessionListDestroyAllOtherSessionsMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation SessionListDestroyAllOtherSessionsMutation {\\n destroyAllOtherSessions {\\n ok\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"016b6b5e7ae228f7df552d97fa43bd40\";\n\nexport default node;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;;AACA;AACA;AAcA,IAAMA,IAAqB,GAAI,YAAU;EACzC,IAAIC,EAAE,GAAG,CACP;IACE,SAAS,IADX;IAEE,QAAQ,IAFV;IAGE,gBAAgB,eAHlB;IAIE,QAAQ,aAJV;IAKE,QAAQ,yBALV;IAME,UAAU,KANZ;IAOE,cAAc,CACZ;MACE,SAAS,IADX;MAEE,QAAQ,IAFV;MAGE,QAAQ,aAHV;MAIE,QAAQ,IAJV;MAKE,cAAc;IALhB,CADY,CAPhB;IAgBE,cAAc;EAhBhB,CADO,CAAT;EAoBA,OAAO;IACL,YAAY;MACV,uBAAuB,EADb;MAEV,QAAQ,UAFE;MAGV,YAAY,IAHF;MAIV,QAAQ,4CAJE;MAKV,cAAeA;MAAE;MALP;MAMV,QAAQ,UANE;MAOV,eAAe;IAPL,CADP;IAUL,QAAQ,SAVH;IAWL,aAAa;MACX,uBAAuB,EADZ;MAEX,QAAQ,WAFG;MAGX,QAAQ,4CAHG;MAIX,cAAeA;MAAE;;IAJN,CAXR;IAiBL,UAAU;MACR,WAAW,kCADH;MAER,MAAM,IAFE;MAGR,YAAY,EAHJ;MAIR,QAAQ,4CAJA;MAKR,iBAAiB,UALT;MAMR,QAAQ;IANA;EAjBL,CAAP;AA0BC,CA/C6B,EAA9B;;AAiDCD,IAAD,CAAcE,IAAd,GAAqB,kCAArB;eAEeF,I"}
1
+ {"version":3,"file":"SessionListDestroyAllOtherSessionsMutation.graphql.js","names":["node","v0","hash"],"sources":["../../../../../src/lib/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.ts"],"sourcesContent":["/**\n * @generated SignedSource<<6494414e61957261dfdc6fec7a9a1df7>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type SessionListDestroyAllOtherSessionsMutation$variables = {};\nexport type SessionListDestroyAllOtherSessionsMutation$data = {\n readonly destroyAllOtherSessions: {\n readonly ok: boolean;\n };\n};\nexport type SessionListDestroyAllOtherSessionsMutation = {\n response: SessionListDestroyAllOtherSessionsMutation$data;\n variables: SessionListDestroyAllOtherSessionsMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"StatusPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"destroyAllOtherSessions\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ok\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionListDestroyAllOtherSessionsMutation\",\n \"selections\": (v0/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"SessionListDestroyAllOtherSessionsMutation\",\n \"selections\": (v0/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"c6f556336ccb31f27b1c2f13c2ea9c06\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"SessionListDestroyAllOtherSessionsMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation SessionListDestroyAllOtherSessionsMutation {\\n destroyAllOtherSessions {\\n ok\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"016b6b5e7ae228f7df552d97fa43bd40\";\n\nexport default node;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAcA,IAAMA,IAAqB,GAAI,YAAU;EACzC,IAAIC,EAAE,GAAG,CACP;IACE,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,CACZ;MACE,OAAO,EAAE,IAAI;MACb,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,aAAa;MACrB,MAAM,EAAE,IAAI;MACZ,YAAY,EAAE;IAChB,CAAC,CACF;IACD,YAAY,EAAE;EAChB,CAAC,CACF;EACD,OAAO;IACL,UAAU,EAAE;MACV,qBAAqB,EAAE,EAAE;MACzB,MAAM,EAAE,UAAU;MAClB,UAAU,EAAE,IAAI;MAChB,MAAM,EAAE,4CAA4C;MACpD,YAAY,EAAGA,EAAE,UAAU;MAC3B,MAAM,EAAE,UAAU;MAClB,aAAa,EAAE;IACjB,CAAC;IACD,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE;MACX,qBAAqB,EAAE,EAAE;MACzB,MAAM,EAAE,WAAW;MACnB,MAAM,EAAE,4CAA4C;MACpD,YAAY,EAAGA,EAAE;IACnB,CAAC;;IACD,QAAQ,EAAE;MACR,SAAS,EAAE,kCAAkC;MAC7C,IAAI,EAAE,IAAI;MACV,UAAU,EAAE,CAAC,CAAC;MACd,MAAM,EAAE,4CAA4C;MACpD,eAAe,EAAE,UAAU;MAC3B,MAAM,EAAE;IACV;EACF,CAAC;AACD,CAAC,EAAG;AAEHD,IAAI,CAASE,IAAI,GAAG,kCAAkC;AAAC,eAEzCF,IAAI;AAAA"}