@nylas/web-elements 1.0.0-prealpha1

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 (879) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/_commonjsHelpers-0a7b82d9.js +23 -0
  3. package/dist/cjs/_commonjsHelpers-0a7b82d9.js.map +1 -0
  4. package/dist/cjs/app-globals-d58ac016.js +11 -0
  5. package/dist/cjs/app-globals-d58ac016.js.map +1 -0
  6. package/dist/cjs/archive-icon_7.cjs.entry.js +120 -0
  7. package/dist/cjs/archive-icon_7.cjs.entry.js.map +1 -0
  8. package/dist/cjs/arrow-icon.cjs.entry.js +24 -0
  9. package/dist/cjs/arrow-icon.cjs.entry.js.map +1 -0
  10. package/dist/cjs/bold-icon_3.cjs.entry.js +56 -0
  11. package/dist/cjs/bold-icon_3.cjs.entry.js.map +1 -0
  12. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +24 -0
  13. package/dist/cjs/calendar-cancel-icon.cjs.entry.js.map +1 -0
  14. package/dist/cjs/calendar-check-icon_3.cjs.entry.js +56 -0
  15. package/dist/cjs/calendar-check-icon_3.cjs.entry.js.map +1 -0
  16. package/dist/cjs/calendar-icon.cjs.entry.js +24 -0
  17. package/dist/cjs/calendar-icon.cjs.entry.js.map +1 -0
  18. package/dist/cjs/chevron-icon.cjs.entry.js +24 -0
  19. package/dist/cjs/chevron-icon.cjs.entry.js.map +1 -0
  20. package/dist/cjs/close-icon_2.cjs.entry.js +40 -0
  21. package/dist/cjs/close-icon_2.cjs.entry.js.map +1 -0
  22. package/dist/cjs/document-refresh-icon.cjs.entry.js +24 -0
  23. package/dist/cjs/document-refresh-icon.cjs.entry.js.map +1 -0
  24. package/dist/cjs/duration-18b22d1b.js +84 -0
  25. package/dist/cjs/duration-18b22d1b.js.map +1 -0
  26. package/dist/cjs/elements-b06c817b.js +21585 -0
  27. package/dist/cjs/elements-b06c817b.js.map +1 -0
  28. package/dist/cjs/flow-d922fbd4.js +891 -0
  29. package/dist/cjs/flow-d922fbd4.js.map +1 -0
  30. package/dist/cjs/focus-visible-857fc8f9.js +327 -0
  31. package/dist/cjs/focus-visible-857fc8f9.js.map +1 -0
  32. package/dist/cjs/forward-icon_6.cjs.entry.js +2216 -0
  33. package/dist/cjs/forward-icon_6.cjs.entry.js.map +1 -0
  34. package/dist/cjs/globe-icon.cjs.entry.js +24 -0
  35. package/dist/cjs/globe-icon.cjs.entry.js.map +1 -0
  36. package/dist/cjs/index-34e64e2d.js +2173 -0
  37. package/dist/cjs/index-34e64e2d.js.map +1 -0
  38. package/dist/cjs/index-e869130c.js +198 -0
  39. package/dist/cjs/index-e869130c.js.map +1 -0
  40. package/dist/cjs/index.cjs.js +12 -0
  41. package/dist/cjs/index.cjs.js.map +1 -0
  42. package/dist/cjs/index.es-e78884f5.js +3217 -0
  43. package/dist/cjs/index.es-e78884f5.js.map +1 -0
  44. package/dist/cjs/loader.cjs.js +17 -0
  45. package/dist/cjs/loader.cjs.js.map +1 -0
  46. package/dist/cjs/loading-icon.cjs.entry.js +24 -0
  47. package/dist/cjs/loading-icon.cjs.entry.js.map +1 -0
  48. package/dist/cjs/mailbox-store-0b1636fa.js +529 -0
  49. package/dist/cjs/mailbox-store-0b1636fa.js.map +1 -0
  50. package/dist/cjs/nylas-booked-event-card_9.cjs.entry.js +8127 -0
  51. package/dist/cjs/nylas-booked-event-card_9.cjs.entry.js.map +1 -0
  52. package/dist/cjs/nylas-if-state_3.cjs.entry.js +409 -0
  53. package/dist/cjs/nylas-if-state_3.cjs.entry.js.map +1 -0
  54. package/dist/cjs/nylas-list-folders.cjs.entry.js +120 -0
  55. package/dist/cjs/nylas-list-folders.cjs.entry.js.map +1 -0
  56. package/dist/cjs/nylas-list-threads.cjs.entry.js +89 -0
  57. package/dist/cjs/nylas-list-threads.cjs.entry.js.map +1 -0
  58. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js +140 -0
  59. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js.map +1 -0
  60. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +100 -0
  61. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js.map +1 -0
  62. package/dist/cjs/nylas-open-hours-picker.cjs.entry.js +333 -0
  63. package/dist/cjs/nylas-open-hours-picker.cjs.entry.js.map +1 -0
  64. package/dist/cjs/nylas-provider.cjs.entry.js +184 -0
  65. package/dist/cjs/nylas-provider.cjs.entry.js.map +1 -0
  66. package/dist/cjs/nylas-scheduler.cjs.entry.js +242 -0
  67. package/dist/cjs/nylas-scheduler.cjs.entry.js.map +1 -0
  68. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +118 -0
  69. package/dist/cjs/nylas-threads-refresh.cjs.entry.js.map +1 -0
  70. package/dist/cjs/nylas-threads-search.cjs.entry.js +84 -0
  71. package/dist/cjs/nylas-threads-search.cjs.entry.js.map +1 -0
  72. package/dist/cjs/nylas-view-thread.cjs.entry.js +234 -0
  73. package/dist/cjs/nylas-view-thread.cjs.entry.js.map +1 -0
  74. package/dist/cjs/nylas-web-elements.cjs.js +27 -0
  75. package/dist/cjs/nylas-web-elements.cjs.js.map +1 -0
  76. package/dist/cjs/play-icon_2.cjs.entry.js +40 -0
  77. package/dist/cjs/play-icon_2.cjs.entry.js.map +1 -0
  78. package/dist/cjs/property-d934a711.js +47 -0
  79. package/dist/cjs/property-d934a711.js.map +1 -0
  80. package/dist/cjs/refresh-icon.cjs.entry.js +24 -0
  81. package/dist/cjs/refresh-icon.cjs.entry.js.map +1 -0
  82. package/dist/cjs/register-component-f76b61a6.js +140 -0
  83. package/dist/cjs/register-component-f76b61a6.js.map +1 -0
  84. package/dist/cjs/scheduler-store-e9822441.js +254 -0
  85. package/dist/cjs/scheduler-store-e9822441.js.map +1 -0
  86. package/dist/cjs/translate-icon.cjs.entry.js +24 -0
  87. package/dist/cjs/translate-icon.cjs.entry.js.map +1 -0
  88. package/dist/cjs/utils-f91d4c73.js +161 -0
  89. package/dist/cjs/utils-f91d4c73.js.map +1 -0
  90. package/dist/collection/assets/icons/chevron.svg +3 -0
  91. package/dist/collection/collection-manifest.json +66 -0
  92. package/dist/collection/common/abstract-provider.js +231 -0
  93. package/dist/collection/common/abstract-provider.js.map +1 -0
  94. package/dist/collection/common/component-types.js +2 -0
  95. package/dist/collection/common/component-types.js.map +1 -0
  96. package/dist/collection/common/constants.js +12 -0
  97. package/dist/collection/common/constants.js.map +1 -0
  98. package/dist/collection/common/global.js +4 -0
  99. package/dist/collection/common/global.js.map +1 -0
  100. package/dist/collection/common/icons/archive.js +63 -0
  101. package/dist/collection/common/icons/archive.js.map +1 -0
  102. package/dist/collection/common/icons/arrow.js +63 -0
  103. package/dist/collection/common/icons/arrow.js.map +1 -0
  104. package/dist/collection/common/icons/bold.js +63 -0
  105. package/dist/collection/common/icons/bold.js.map +1 -0
  106. package/dist/collection/common/icons/calendar-cancel.js +63 -0
  107. package/dist/collection/common/icons/calendar-cancel.js.map +1 -0
  108. package/dist/collection/common/icons/calendar-check.js +63 -0
  109. package/dist/collection/common/icons/calendar-check.js.map +1 -0
  110. package/dist/collection/common/icons/calendar.js +63 -0
  111. package/dist/collection/common/icons/calendar.js.map +1 -0
  112. package/dist/collection/common/icons/checkmark-circle.js +63 -0
  113. package/dist/collection/common/icons/checkmark-circle.js.map +1 -0
  114. package/dist/collection/common/icons/chevron.js +63 -0
  115. package/dist/collection/common/icons/chevron.js.map +1 -0
  116. package/dist/collection/common/icons/close.js +63 -0
  117. package/dist/collection/common/icons/close.js.map +1 -0
  118. package/dist/collection/common/icons/document-refresh.js +63 -0
  119. package/dist/collection/common/icons/document-refresh.js.map +1 -0
  120. package/dist/collection/common/icons/folder.js +63 -0
  121. package/dist/collection/common/icons/folder.js.map +1 -0
  122. package/dist/collection/common/icons/forward.js +63 -0
  123. package/dist/collection/common/icons/forward.js.map +1 -0
  124. package/dist/collection/common/icons/globe.js +63 -0
  125. package/dist/collection/common/icons/globe.js.map +1 -0
  126. package/dist/collection/common/icons/icon.css +3 -0
  127. package/dist/collection/common/icons/inbox.js +63 -0
  128. package/dist/collection/common/icons/inbox.js.map +1 -0
  129. package/dist/collection/common/icons/italic.js +63 -0
  130. package/dist/collection/common/icons/italic.js.map +1 -0
  131. package/dist/collection/common/icons/loading.css +33 -0
  132. package/dist/collection/common/icons/loading.js +63 -0
  133. package/dist/collection/common/icons/loading.js.map +1 -0
  134. package/dist/collection/common/icons/nylas-logo.js +63 -0
  135. package/dist/collection/common/icons/nylas-logo.js.map +1 -0
  136. package/dist/collection/common/icons/people.js +63 -0
  137. package/dist/collection/common/icons/people.js.map +1 -0
  138. package/dist/collection/common/icons/play.js +63 -0
  139. package/dist/collection/common/icons/play.js.map +1 -0
  140. package/dist/collection/common/icons/refresh.js +63 -0
  141. package/dist/collection/common/icons/refresh.js.map +1 -0
  142. package/dist/collection/common/icons/reply-all.js +63 -0
  143. package/dist/collection/common/icons/reply-all.js.map +1 -0
  144. package/dist/collection/common/icons/reply.js +63 -0
  145. package/dist/collection/common/icons/reply.js.map +1 -0
  146. package/dist/collection/common/icons/sent.js +63 -0
  147. package/dist/collection/common/icons/sent.js.map +1 -0
  148. package/dist/collection/common/icons/spam.js +63 -0
  149. package/dist/collection/common/icons/spam.js.map +1 -0
  150. package/dist/collection/common/icons/star.js +63 -0
  151. package/dist/collection/common/icons/star.js.map +1 -0
  152. package/dist/collection/common/icons/stop.js +63 -0
  153. package/dist/collection/common/icons/stop.js.map +1 -0
  154. package/dist/collection/common/icons/translate.js +63 -0
  155. package/dist/collection/common/icons/translate.js.map +1 -0
  156. package/dist/collection/common/icons/trash.js +63 -0
  157. package/dist/collection/common/icons/trash.js.map +1 -0
  158. package/dist/collection/common/icons/underline.js +63 -0
  159. package/dist/collection/common/icons/underline.js.map +1 -0
  160. package/dist/collection/common/icons/warning.js +63 -0
  161. package/dist/collection/common/icons/warning.js.map +1 -0
  162. package/dist/collection/common/mocks/threads.js +57 -0
  163. package/dist/collection/common/mocks/threads.js.map +1 -0
  164. package/dist/collection/common/nylas-theme/index.js +4 -0
  165. package/dist/collection/common/nylas-theme/index.js.map +1 -0
  166. package/dist/collection/common/register-component.js +134 -0
  167. package/dist/collection/common/register-component.js.map +1 -0
  168. package/dist/collection/common/types.js +2 -0
  169. package/dist/collection/common/types.js.map +1 -0
  170. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.css +89 -0
  171. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +241 -0
  172. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js.map +1 -0
  173. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.e2e.js +10 -0
  174. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.e2e.js.map +1 -0
  175. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.js +12 -0
  176. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.js.map +1 -0
  177. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.css +37 -0
  178. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +193 -0
  179. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js.map +1 -0
  180. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.e2e.js +10 -0
  181. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.e2e.js.map +1 -0
  182. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.spec.js +12 -0
  183. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.spec.js.map +1 -0
  184. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.css +156 -0
  185. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +218 -0
  186. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js.map +1 -0
  187. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.e2e.js +22 -0
  188. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.e2e.js.map +1 -0
  189. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.spec.js +25 -0
  190. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.spec.js.map +1 -0
  191. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.css +3 -0
  192. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +474 -0
  193. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js.map +1 -0
  194. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.e2e.js +16 -0
  195. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.e2e.js.map +1 -0
  196. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.spec.js +32 -0
  197. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.spec.js.map +1 -0
  198. package/dist/collection/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.css +55 -0
  199. package/dist/collection/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.js +371 -0
  200. package/dist/collection/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.js.map +1 -0
  201. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.e2e.js +10 -0
  202. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.e2e.js.map +1 -0
  203. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.spec.js +12 -0
  204. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.spec.js.map +1 -0
  205. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.css +18 -0
  206. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +182 -0
  207. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js.map +1 -0
  208. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.css +61 -0
  209. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +329 -0
  210. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js.map +1 -0
  211. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.e2e.js +10 -0
  212. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.e2e.js.map +1 -0
  213. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.spec.js +12 -0
  214. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.spec.js.map +1 -0
  215. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.css +53 -0
  216. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +172 -0
  217. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js.map +1 -0
  218. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.e2e.js +10 -0
  219. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.e2e.js.map +1 -0
  220. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.spec.js +12 -0
  221. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.spec.js.map +1 -0
  222. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.css +8 -0
  223. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +130 -0
  224. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js.map +1 -0
  225. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.e2e.js +10 -0
  226. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.e2e.js.map +1 -0
  227. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.spec.js +12 -0
  228. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.spec.js.map +1 -0
  229. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.css +43 -0
  230. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +282 -0
  231. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js.map +1 -0
  232. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.css +243 -0
  233. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +342 -0
  234. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js.map +1 -0
  235. package/dist/collection/components/mailbox/nylas-view-thread/view-thread-message.js +25 -0
  236. package/dist/collection/components/mailbox/nylas-view-thread/view-thread-message.js.map +1 -0
  237. package/dist/collection/components/nylas-if-state/nylas-if-state.css +84 -0
  238. package/dist/collection/components/nylas-if-state/nylas-if-state.js +241 -0
  239. package/dist/collection/components/nylas-if-state/nylas-if-state.js.map +1 -0
  240. package/dist/collection/components/nylas-if-state/test/nylas-if-state.e2e.js +10 -0
  241. package/dist/collection/components/nylas-if-state/test/nylas-if-state.e2e.js.map +1 -0
  242. package/dist/collection/components/nylas-if-state/test/nylas-if-state.spec.js +12 -0
  243. package/dist/collection/components/nylas-if-state/test/nylas-if-state.spec.js.map +1 -0
  244. package/dist/collection/components/nylas-login/nylas-login.css +94 -0
  245. package/dist/collection/components/nylas-login/nylas-login.js +289 -0
  246. package/dist/collection/components/nylas-login/nylas-login.js.map +1 -0
  247. package/dist/collection/components/nylas-login/test/nylas-login.e2e.js +10 -0
  248. package/dist/collection/components/nylas-login/test/nylas-login.e2e.js.map +1 -0
  249. package/dist/collection/components/nylas-login/test/nylas-login.spec.js +12 -0
  250. package/dist/collection/components/nylas-login/test/nylas-login.spec.js.map +1 -0
  251. package/dist/collection/components/nylas-provider/nylas-provider.css +3 -0
  252. package/dist/collection/components/nylas-provider/nylas-provider.js +423 -0
  253. package/dist/collection/components/nylas-provider/nylas-provider.js.map +1 -0
  254. package/dist/collection/components/nylas-provider/test/nylas-provider.e2e.js +10 -0
  255. package/dist/collection/components/nylas-provider/test/nylas-provider.e2e.js.map +1 -0
  256. package/dist/collection/components/nylas-provider/test/nylas-provider.spec.js +32 -0
  257. package/dist/collection/components/nylas-provider/test/nylas-provider.spec.js.map +1 -0
  258. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +155 -0
  259. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js +178 -0
  260. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -0
  261. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.css +129 -0
  262. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +323 -0
  263. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -0
  264. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.css +78 -0
  265. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +107 -0
  266. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js.map +1 -0
  267. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.css +150 -0
  268. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +213 -0
  269. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -0
  270. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.css +72 -0
  271. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js +147 -0
  272. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js.map +1 -0
  273. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.css +63 -0
  274. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +132 -0
  275. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js.map +1 -0
  276. package/dist/collection/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.css +105 -0
  277. package/dist/collection/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.js +460 -0
  278. package/dist/collection/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.js.map +1 -0
  279. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.e2e.js +10 -0
  280. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.e2e.js.map +1 -0
  281. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.spec.js +12 -0
  282. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.spec.js.map +1 -0
  283. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduler.css +182 -0
  284. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduler.js +533 -0
  285. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduler.js.map +1 -0
  286. package/dist/collection/components/scheduler/nylas-scheduler/scheduler-view.js +6 -0
  287. package/dist/collection/components/scheduler/nylas-scheduler/scheduler-view.js.map +1 -0
  288. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.css +63 -0
  289. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +150 -0
  290. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js.map +1 -0
  291. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +115 -0
  292. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +311 -0
  293. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -0
  294. package/dist/collection/connector/connector-interface.js +2 -0
  295. package/dist/collection/connector/connector-interface.js.map +1 -0
  296. package/dist/collection/connector/nylas-connector/index.js +78 -0
  297. package/dist/collection/connector/nylas-connector/index.js.map +1 -0
  298. package/dist/collection/connector/nylas-mailbox-connector/index.js +62 -0
  299. package/dist/collection/connector/nylas-mailbox-connector/index.js.map +1 -0
  300. package/dist/collection/connector/nylas-scheduler-connector/index.js +43 -0
  301. package/dist/collection/connector/nylas-scheduler-connector/index.js.map +1 -0
  302. package/dist/collection/connector/shared/api/auth.js +60 -0
  303. package/dist/collection/connector/shared/api/auth.js.map +1 -0
  304. package/dist/collection/connector/shared/api/folders.js +33 -0
  305. package/dist/collection/connector/shared/api/folders.js.map +1 -0
  306. package/dist/collection/connector/shared/api/messages.js +95 -0
  307. package/dist/collection/connector/shared/api/messages.js.map +1 -0
  308. package/dist/collection/connector/shared/api/scheduler.js +203 -0
  309. package/dist/collection/connector/shared/api/scheduler.js.map +1 -0
  310. package/dist/collection/connector/shared/api/threads.js +165 -0
  311. package/dist/collection/connector/shared/api/threads.js.map +1 -0
  312. package/dist/collection/index.js +4 -0
  313. package/dist/collection/index.js.map +1 -0
  314. package/dist/collection/routers/hash-router.js +109 -0
  315. package/dist/collection/routers/hash-router.js.map +1 -0
  316. package/dist/collection/routers/router-interface.js +2 -0
  317. package/dist/collection/routers/router-interface.js.map +1 -0
  318. package/dist/collection/stores/auth-store.js +18 -0
  319. package/dist/collection/stores/auth-store.js.map +1 -0
  320. package/dist/collection/stores/mailbox-store.js +42 -0
  321. package/dist/collection/stores/mailbox-store.js.map +1 -0
  322. package/dist/collection/stores/scheduler-store.js +44 -0
  323. package/dist/collection/stores/scheduler-store.js.map +1 -0
  324. package/dist/collection/utils/color-utils.js +161 -0
  325. package/dist/collection/utils/color-utils.js.map +1 -0
  326. package/dist/collection/utils/utils.js +157 -0
  327. package/dist/collection/utils/utils.js.map +1 -0
  328. package/dist/collection/utils/utils.spec.js +16 -0
  329. package/dist/collection/utils/utils.spec.js.map +1 -0
  330. package/dist/components/_commonjsHelpers.js +20 -0
  331. package/dist/components/_commonjsHelpers.js.map +1 -0
  332. package/dist/components/archive-icon.d.ts +11 -0
  333. package/dist/components/archive-icon.js +8 -0
  334. package/dist/components/archive-icon.js.map +1 -0
  335. package/dist/components/archive.js +37 -0
  336. package/dist/components/archive.js.map +1 -0
  337. package/dist/components/arrow-icon.d.ts +11 -0
  338. package/dist/components/arrow-icon.js +8 -0
  339. package/dist/components/arrow-icon.js.map +1 -0
  340. package/dist/components/arrow.js +37 -0
  341. package/dist/components/arrow.js.map +1 -0
  342. package/dist/components/assets/chevron.svg +3 -0
  343. package/dist/components/bold-icon.d.ts +11 -0
  344. package/dist/components/bold-icon.js +8 -0
  345. package/dist/components/bold-icon.js.map +1 -0
  346. package/dist/components/bold.js +37 -0
  347. package/dist/components/bold.js.map +1 -0
  348. package/dist/components/calendar-cancel-icon.d.ts +11 -0
  349. package/dist/components/calendar-cancel-icon.js +8 -0
  350. package/dist/components/calendar-cancel-icon.js.map +1 -0
  351. package/dist/components/calendar-cancel.js +37 -0
  352. package/dist/components/calendar-cancel.js.map +1 -0
  353. package/dist/components/calendar-check-icon.d.ts +11 -0
  354. package/dist/components/calendar-check-icon.js +8 -0
  355. package/dist/components/calendar-check-icon.js.map +1 -0
  356. package/dist/components/calendar-check.js +37 -0
  357. package/dist/components/calendar-check.js.map +1 -0
  358. package/dist/components/calendar-icon.d.ts +11 -0
  359. package/dist/components/calendar-icon.js +8 -0
  360. package/dist/components/calendar-icon.js.map +1 -0
  361. package/dist/components/calendar.js +37 -0
  362. package/dist/components/calendar.js.map +1 -0
  363. package/dist/components/checkmark-circle-icon.d.ts +11 -0
  364. package/dist/components/checkmark-circle-icon.js +8 -0
  365. package/dist/components/checkmark-circle-icon.js.map +1 -0
  366. package/dist/components/checkmark-circle.js +37 -0
  367. package/dist/components/checkmark-circle.js.map +1 -0
  368. package/dist/components/chevron-icon.d.ts +11 -0
  369. package/dist/components/chevron-icon.js +8 -0
  370. package/dist/components/chevron-icon.js.map +1 -0
  371. package/dist/components/chevron.js +37 -0
  372. package/dist/components/chevron.js.map +1 -0
  373. package/dist/components/close-icon.d.ts +11 -0
  374. package/dist/components/close-icon.js +8 -0
  375. package/dist/components/close-icon.js.map +1 -0
  376. package/dist/components/close.js +37 -0
  377. package/dist/components/close.js.map +1 -0
  378. package/dist/components/constants.js +7296 -0
  379. package/dist/components/constants.js.map +1 -0
  380. package/dist/components/define-element.js +40 -0
  381. package/dist/components/define-element.js.map +1 -0
  382. package/dist/components/document-refresh-icon.d.ts +11 -0
  383. package/dist/components/document-refresh-icon.js +40 -0
  384. package/dist/components/document-refresh-icon.js.map +1 -0
  385. package/dist/components/duration.js +78 -0
  386. package/dist/components/duration.js.map +1 -0
  387. package/dist/components/elements.js +21583 -0
  388. package/dist/components/elements.js.map +1 -0
  389. package/dist/components/flow.js +888 -0
  390. package/dist/components/flow.js.map +1 -0
  391. package/dist/components/focus-visible.js +325 -0
  392. package/dist/components/focus-visible.js.map +1 -0
  393. package/dist/components/folder-icon.d.ts +11 -0
  394. package/dist/components/folder-icon.js +8 -0
  395. package/dist/components/folder-icon.js.map +1 -0
  396. package/dist/components/folder.js +37 -0
  397. package/dist/components/folder.js.map +1 -0
  398. package/dist/components/forward-icon.d.ts +11 -0
  399. package/dist/components/forward-icon.js +8 -0
  400. package/dist/components/forward-icon.js.map +1 -0
  401. package/dist/components/forward.js +37 -0
  402. package/dist/components/forward.js.map +1 -0
  403. package/dist/components/globe-icon.d.ts +11 -0
  404. package/dist/components/globe-icon.js +8 -0
  405. package/dist/components/globe-icon.js.map +1 -0
  406. package/dist/components/globe.js +37 -0
  407. package/dist/components/globe.js.map +1 -0
  408. package/dist/components/inbox-icon.d.ts +11 -0
  409. package/dist/components/inbox-icon.js +8 -0
  410. package/dist/components/inbox-icon.js.map +1 -0
  411. package/dist/components/inbox.js +37 -0
  412. package/dist/components/inbox.js.map +1 -0
  413. package/dist/components/index.d.ts +33 -0
  414. package/dist/components/index.es.js +3211 -0
  415. package/dist/components/index.es.js.map +1 -0
  416. package/dist/components/index.js +16 -0
  417. package/dist/components/index.js.map +1 -0
  418. package/dist/components/index2.js +196 -0
  419. package/dist/components/index2.js.map +1 -0
  420. package/dist/components/italic-icon.d.ts +11 -0
  421. package/dist/components/italic-icon.js +8 -0
  422. package/dist/components/italic-icon.js.map +1 -0
  423. package/dist/components/italic.js +37 -0
  424. package/dist/components/italic.js.map +1 -0
  425. package/dist/components/loading-icon.d.ts +11 -0
  426. package/dist/components/loading-icon.js +8 -0
  427. package/dist/components/loading-icon.js.map +1 -0
  428. package/dist/components/loading.js +38 -0
  429. package/dist/components/loading.js.map +1 -0
  430. package/dist/components/mailbox-store.js +521 -0
  431. package/dist/components/mailbox-store.js.map +1 -0
  432. package/dist/components/nylas-booked-event-card.d.ts +11 -0
  433. package/dist/components/nylas-booked-event-card.js +8 -0
  434. package/dist/components/nylas-booked-event-card.js.map +1 -0
  435. package/dist/components/nylas-booked-event-card2.js +121 -0
  436. package/dist/components/nylas-booked-event-card2.js.map +1 -0
  437. package/dist/components/nylas-booking-form.d.ts +11 -0
  438. package/dist/components/nylas-booking-form.js +8 -0
  439. package/dist/components/nylas-booking-form.js.map +1 -0
  440. package/dist/components/nylas-booking-form2.js +224 -0
  441. package/dist/components/nylas-booking-form2.js.map +1 -0
  442. package/dist/components/nylas-cancelled-event-card.d.ts +11 -0
  443. package/dist/components/nylas-cancelled-event-card.js +8 -0
  444. package/dist/components/nylas-cancelled-event-card.js.map +1 -0
  445. package/dist/components/nylas-cancelled-event-card2.js +85 -0
  446. package/dist/components/nylas-cancelled-event-card2.js.map +1 -0
  447. package/dist/components/nylas-composer.d.ts +11 -0
  448. package/dist/components/nylas-composer.js +8 -0
  449. package/dist/components/nylas-composer.js.map +1 -0
  450. package/dist/components/nylas-composer2.js +186 -0
  451. package/dist/components/nylas-composer2.js.map +1 -0
  452. package/dist/components/nylas-date-picker.d.ts +11 -0
  453. package/dist/components/nylas-date-picker.js +8 -0
  454. package/dist/components/nylas-date-picker.js.map +1 -0
  455. package/dist/components/nylas-date-picker2.js +150 -0
  456. package/dist/components/nylas-date-picker2.js.map +1 -0
  457. package/dist/components/nylas-if-state.d.ts +11 -0
  458. package/dist/components/nylas-if-state.js +153 -0
  459. package/dist/components/nylas-if-state.js.map +1 -0
  460. package/dist/components/nylas-list-folders.d.ts +11 -0
  461. package/dist/components/nylas-list-folders.js +183 -0
  462. package/dist/components/nylas-list-folders.js.map +1 -0
  463. package/dist/components/nylas-list-threads.d.ts +11 -0
  464. package/dist/components/nylas-list-threads.js +109 -0
  465. package/dist/components/nylas-list-threads.js.map +1 -0
  466. package/dist/components/nylas-locale-switch.d.ts +11 -0
  467. package/dist/components/nylas-locale-switch.js +8 -0
  468. package/dist/components/nylas-locale-switch.js.map +1 -0
  469. package/dist/components/nylas-locale-switch2.js +103 -0
  470. package/dist/components/nylas-locale-switch2.js.map +1 -0
  471. package/dist/components/nylas-login.d.ts +11 -0
  472. package/dist/components/nylas-login.js +127 -0
  473. package/dist/components/nylas-login.js.map +1 -0
  474. package/dist/components/nylas-logo.d.ts +11 -0
  475. package/dist/components/nylas-logo.js +8 -0
  476. package/dist/components/nylas-logo.js.map +1 -0
  477. package/dist/components/nylas-logo2.js +37 -0
  478. package/dist/components/nylas-logo2.js.map +1 -0
  479. package/dist/components/nylas-mailbox-pagination.d.ts +11 -0
  480. package/dist/components/nylas-mailbox-pagination.js +175 -0
  481. package/dist/components/nylas-mailbox-pagination.js.map +1 -0
  482. package/dist/components/nylas-mailbox-toolbar-button.d.ts +11 -0
  483. package/dist/components/nylas-mailbox-toolbar-button.js +119 -0
  484. package/dist/components/nylas-mailbox-toolbar-button.js.map +1 -0
  485. package/dist/components/nylas-mailbox.d.ts +11 -0
  486. package/dist/components/nylas-mailbox.js +219 -0
  487. package/dist/components/nylas-mailbox.js.map +1 -0
  488. package/dist/components/nylas-notification.d.ts +11 -0
  489. package/dist/components/nylas-notification.js +8 -0
  490. package/dist/components/nylas-notification.js.map +1 -0
  491. package/dist/components/nylas-notification2.js +90 -0
  492. package/dist/components/nylas-notification2.js.map +1 -0
  493. package/dist/components/nylas-open-hours-picker.d.ts +11 -0
  494. package/dist/components/nylas-open-hours-picker.js +365 -0
  495. package/dist/components/nylas-open-hours-picker.js.map +1 -0
  496. package/dist/components/nylas-provider.d.ts +11 -0
  497. package/dist/components/nylas-provider.js +206 -0
  498. package/dist/components/nylas-provider.js.map +1 -0
  499. package/dist/components/nylas-scheduler.d.ts +11 -0
  500. package/dist/components/nylas-scheduler.js +392 -0
  501. package/dist/components/nylas-scheduler.js.map +1 -0
  502. package/dist/components/nylas-selected-event-card.d.ts +11 -0
  503. package/dist/components/nylas-selected-event-card.js +8 -0
  504. package/dist/components/nylas-selected-event-card.js.map +1 -0
  505. package/dist/components/nylas-selected-event-card2.js +110 -0
  506. package/dist/components/nylas-selected-event-card2.js.map +1 -0
  507. package/dist/components/nylas-summarize-message-button.d.ts +11 -0
  508. package/dist/components/nylas-summarize-message-button.js +8 -0
  509. package/dist/components/nylas-summarize-message-button.js.map +1 -0
  510. package/dist/components/nylas-summarize-message-button2.js +233 -0
  511. package/dist/components/nylas-summarize-message-button2.js.map +1 -0
  512. package/dist/components/nylas-threads-refresh.d.ts +11 -0
  513. package/dist/components/nylas-threads-refresh.js +149 -0
  514. package/dist/components/nylas-threads-refresh.js.map +1 -0
  515. package/dist/components/nylas-threads-search.d.ts +11 -0
  516. package/dist/components/nylas-threads-search.js +103 -0
  517. package/dist/components/nylas-threads-search.js.map +1 -0
  518. package/dist/components/nylas-timeslot-picker.d.ts +11 -0
  519. package/dist/components/nylas-timeslot-picker.js +8 -0
  520. package/dist/components/nylas-timeslot-picker.js.map +1 -0
  521. package/dist/components/nylas-timeslot-picker2.js +174 -0
  522. package/dist/components/nylas-timeslot-picker2.js.map +1 -0
  523. package/dist/components/nylas-view-email.d.ts +11 -0
  524. package/dist/components/nylas-view-email.js +8 -0
  525. package/dist/components/nylas-view-email.js.map +1 -0
  526. package/dist/components/nylas-view-email2.js +1859 -0
  527. package/dist/components/nylas-view-email2.js.map +1 -0
  528. package/dist/components/nylas-view-thread.d.ts +11 -0
  529. package/dist/components/nylas-view-thread.js +338 -0
  530. package/dist/components/nylas-view-thread.js.map +1 -0
  531. package/dist/components/people-icon.d.ts +11 -0
  532. package/dist/components/people-icon.js +8 -0
  533. package/dist/components/people-icon.js.map +1 -0
  534. package/dist/components/people.js +37 -0
  535. package/dist/components/people.js.map +1 -0
  536. package/dist/components/play-icon.d.ts +11 -0
  537. package/dist/components/play-icon.js +8 -0
  538. package/dist/components/play-icon.js.map +1 -0
  539. package/dist/components/play.js +37 -0
  540. package/dist/components/play.js.map +1 -0
  541. package/dist/components/property.js +36 -0
  542. package/dist/components/property.js.map +1 -0
  543. package/dist/components/refresh-icon.d.ts +11 -0
  544. package/dist/components/refresh-icon.js +8 -0
  545. package/dist/components/refresh-icon.js.map +1 -0
  546. package/dist/components/refresh.js +37 -0
  547. package/dist/components/refresh.js.map +1 -0
  548. package/dist/components/register-component.js +138 -0
  549. package/dist/components/register-component.js.map +1 -0
  550. package/dist/components/reply-all-icon.d.ts +11 -0
  551. package/dist/components/reply-all-icon.js +8 -0
  552. package/dist/components/reply-all-icon.js.map +1 -0
  553. package/dist/components/reply-all.js +37 -0
  554. package/dist/components/reply-all.js.map +1 -0
  555. package/dist/components/reply-icon.d.ts +11 -0
  556. package/dist/components/reply-icon.js +8 -0
  557. package/dist/components/reply-icon.js.map +1 -0
  558. package/dist/components/reply.js +37 -0
  559. package/dist/components/reply.js.map +1 -0
  560. package/dist/components/scheduler-store.js +251 -0
  561. package/dist/components/scheduler-store.js.map +1 -0
  562. package/dist/components/sent-icon.d.ts +11 -0
  563. package/dist/components/sent-icon.js +8 -0
  564. package/dist/components/sent-icon.js.map +1 -0
  565. package/dist/components/sent.js +37 -0
  566. package/dist/components/sent.js.map +1 -0
  567. package/dist/components/sp-icon-chevron-left.js +23 -0
  568. package/dist/components/sp-icon-chevron-left.js.map +1 -0
  569. package/dist/components/spam-icon.d.ts +11 -0
  570. package/dist/components/spam-icon.js +8 -0
  571. package/dist/components/spam-icon.js.map +1 -0
  572. package/dist/components/spam.js +37 -0
  573. package/dist/components/spam.js.map +1 -0
  574. package/dist/components/star-icon.d.ts +11 -0
  575. package/dist/components/star-icon.js +8 -0
  576. package/dist/components/star-icon.js.map +1 -0
  577. package/dist/components/star.js +37 -0
  578. package/dist/components/star.js.map +1 -0
  579. package/dist/components/stop-icon.d.ts +11 -0
  580. package/dist/components/stop-icon.js +8 -0
  581. package/dist/components/stop-icon.js.map +1 -0
  582. package/dist/components/stop.js +37 -0
  583. package/dist/components/stop.js.map +1 -0
  584. package/dist/components/translate-icon.d.ts +11 -0
  585. package/dist/components/translate-icon.js +8 -0
  586. package/dist/components/translate-icon.js.map +1 -0
  587. package/dist/components/translate.js +37 -0
  588. package/dist/components/translate.js.map +1 -0
  589. package/dist/components/trash-icon.d.ts +11 -0
  590. package/dist/components/trash-icon.js +8 -0
  591. package/dist/components/trash-icon.js.map +1 -0
  592. package/dist/components/trash.js +37 -0
  593. package/dist/components/trash.js.map +1 -0
  594. package/dist/components/underline-icon.d.ts +11 -0
  595. package/dist/components/underline-icon.js +8 -0
  596. package/dist/components/underline-icon.js.map +1 -0
  597. package/dist/components/underline.js +37 -0
  598. package/dist/components/underline.js.map +1 -0
  599. package/dist/components/utils.js +140 -0
  600. package/dist/components/utils.js.map +1 -0
  601. package/dist/components/warning-icon.d.ts +11 -0
  602. package/dist/components/warning-icon.js +8 -0
  603. package/dist/components/warning-icon.js.map +1 -0
  604. package/dist/components/warning.js +37 -0
  605. package/dist/components/warning.js.map +1 -0
  606. package/dist/esm/_commonjsHelpers-57e89916.js +20 -0
  607. package/dist/esm/_commonjsHelpers-57e89916.js.map +1 -0
  608. package/dist/esm/app-globals-47969cee.js +9 -0
  609. package/dist/esm/app-globals-47969cee.js.map +1 -0
  610. package/dist/esm/archive-icon_7.entry.js +110 -0
  611. package/dist/esm/archive-icon_7.entry.js.map +1 -0
  612. package/dist/esm/arrow-icon.entry.js +20 -0
  613. package/dist/esm/arrow-icon.entry.js.map +1 -0
  614. package/dist/esm/bold-icon_3.entry.js +50 -0
  615. package/dist/esm/bold-icon_3.entry.js.map +1 -0
  616. package/dist/esm/calendar-cancel-icon.entry.js +20 -0
  617. package/dist/esm/calendar-cancel-icon.entry.js.map +1 -0
  618. package/dist/esm/calendar-check-icon_3.entry.js +50 -0
  619. package/dist/esm/calendar-check-icon_3.entry.js.map +1 -0
  620. package/dist/esm/calendar-icon.entry.js +20 -0
  621. package/dist/esm/calendar-icon.entry.js.map +1 -0
  622. package/dist/esm/chevron-icon.entry.js +20 -0
  623. package/dist/esm/chevron-icon.entry.js.map +1 -0
  624. package/dist/esm/close-icon_2.entry.js +35 -0
  625. package/dist/esm/close-icon_2.entry.js.map +1 -0
  626. package/dist/esm/document-refresh-icon.entry.js +20 -0
  627. package/dist/esm/document-refresh-icon.entry.js.map +1 -0
  628. package/dist/esm/duration-bddc4a13.js +78 -0
  629. package/dist/esm/duration-bddc4a13.js.map +1 -0
  630. package/dist/esm/elements-60ebdb01.js +21583 -0
  631. package/dist/esm/elements-60ebdb01.js.map +1 -0
  632. package/dist/esm/flow-40ff9cea.js +888 -0
  633. package/dist/esm/flow-40ff9cea.js.map +1 -0
  634. package/dist/esm/focus-visible-e8093c16.js +325 -0
  635. package/dist/esm/focus-visible-e8093c16.js.map +1 -0
  636. package/dist/esm/forward-icon_6.entry.js +2207 -0
  637. package/dist/esm/forward-icon_6.entry.js.map +1 -0
  638. package/dist/esm/globe-icon.entry.js +20 -0
  639. package/dist/esm/globe-icon.entry.js.map +1 -0
  640. package/dist/esm/index-2b85580a.js +196 -0
  641. package/dist/esm/index-2b85580a.js.map +1 -0
  642. package/dist/esm/index-b2270b4a.js +2141 -0
  643. package/dist/esm/index-b2270b4a.js.map +1 -0
  644. package/dist/esm/index.es-6f3582a1.js +3211 -0
  645. package/dist/esm/index.es-6f3582a1.js.map +1 -0
  646. package/dist/esm/index.js +8 -0
  647. package/dist/esm/index.js.map +1 -0
  648. package/dist/esm/loader.js +13 -0
  649. package/dist/esm/loader.js.map +1 -0
  650. package/dist/esm/loading-icon.entry.js +20 -0
  651. package/dist/esm/loading-icon.entry.js.map +1 -0
  652. package/dist/esm/mailbox-store-0019772c.js +521 -0
  653. package/dist/esm/mailbox-store-0019772c.js.map +1 -0
  654. package/dist/esm/nylas-booked-event-card_9.entry.js +8115 -0
  655. package/dist/esm/nylas-booked-event-card_9.entry.js.map +1 -0
  656. package/dist/esm/nylas-if-state_3.entry.js +403 -0
  657. package/dist/esm/nylas-if-state_3.entry.js.map +1 -0
  658. package/dist/esm/nylas-list-folders.entry.js +116 -0
  659. package/dist/esm/nylas-list-folders.entry.js.map +1 -0
  660. package/dist/esm/nylas-list-threads.entry.js +85 -0
  661. package/dist/esm/nylas-list-threads.entry.js.map +1 -0
  662. package/dist/esm/nylas-mailbox-pagination.entry.js +136 -0
  663. package/dist/esm/nylas-mailbox-pagination.entry.js.map +1 -0
  664. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +96 -0
  665. package/dist/esm/nylas-mailbox-toolbar-button.entry.js.map +1 -0
  666. package/dist/esm/nylas-open-hours-picker.entry.js +329 -0
  667. package/dist/esm/nylas-open-hours-picker.entry.js.map +1 -0
  668. package/dist/esm/nylas-provider.entry.js +180 -0
  669. package/dist/esm/nylas-provider.entry.js.map +1 -0
  670. package/dist/esm/nylas-scheduler.entry.js +238 -0
  671. package/dist/esm/nylas-scheduler.entry.js.map +1 -0
  672. package/dist/esm/nylas-threads-refresh.entry.js +114 -0
  673. package/dist/esm/nylas-threads-refresh.entry.js.map +1 -0
  674. package/dist/esm/nylas-threads-search.entry.js +80 -0
  675. package/dist/esm/nylas-threads-search.entry.js.map +1 -0
  676. package/dist/esm/nylas-view-thread.entry.js +230 -0
  677. package/dist/esm/nylas-view-thread.entry.js.map +1 -0
  678. package/dist/esm/nylas-web-elements.js +22 -0
  679. package/dist/esm/nylas-web-elements.js.map +1 -0
  680. package/dist/esm/play-icon_2.entry.js +35 -0
  681. package/dist/esm/play-icon_2.entry.js.map +1 -0
  682. package/dist/esm/polyfills/core-js.js +11 -0
  683. package/dist/esm/polyfills/dom.js +79 -0
  684. package/dist/esm/polyfills/es5-html-element.js +1 -0
  685. package/dist/esm/polyfills/index.js +34 -0
  686. package/dist/esm/polyfills/system.js +6 -0
  687. package/dist/esm/property-0065dde7.js +36 -0
  688. package/dist/esm/property-0065dde7.js.map +1 -0
  689. package/dist/esm/refresh-icon.entry.js +20 -0
  690. package/dist/esm/refresh-icon.entry.js.map +1 -0
  691. package/dist/esm/register-component-55376f31.js +138 -0
  692. package/dist/esm/register-component-55376f31.js.map +1 -0
  693. package/dist/esm/scheduler-store-5a39585a.js +251 -0
  694. package/dist/esm/scheduler-store-5a39585a.js.map +1 -0
  695. package/dist/esm/translate-icon.entry.js +20 -0
  696. package/dist/esm/translate-icon.entry.js.map +1 -0
  697. package/dist/esm/utils-5074a070.js +140 -0
  698. package/dist/esm/utils-5074a070.js.map +1 -0
  699. package/dist/index.cjs.js +1 -0
  700. package/dist/index.js +1 -0
  701. package/dist/nylas-web-elements/index.esm.js +2 -0
  702. package/dist/nylas-web-elements/index.esm.js.map +1 -0
  703. package/dist/nylas-web-elements/nylas-web-elements.css +239 -0
  704. package/dist/nylas-web-elements/nylas-web-elements.esm.js +2 -0
  705. package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -0
  706. package/dist/nylas-web-elements/p-06974d68.js +2 -0
  707. package/dist/nylas-web-elements/p-06974d68.js.map +1 -0
  708. package/dist/nylas-web-elements/p-113fe52e.entry.js +2 -0
  709. package/dist/nylas-web-elements/p-113fe52e.entry.js.map +1 -0
  710. package/dist/nylas-web-elements/p-16fb3c85.entry.js +2 -0
  711. package/dist/nylas-web-elements/p-16fb3c85.entry.js.map +1 -0
  712. package/dist/nylas-web-elements/p-24c42c37.entry.js +2 -0
  713. package/dist/nylas-web-elements/p-24c42c37.entry.js.map +1 -0
  714. package/dist/nylas-web-elements/p-2881b62f.js +16519 -0
  715. package/dist/nylas-web-elements/p-2881b62f.js.map +1 -0
  716. package/dist/nylas-web-elements/p-33da6cf1.entry.js +2 -0
  717. package/dist/nylas-web-elements/p-33da6cf1.entry.js.map +1 -0
  718. package/dist/nylas-web-elements/p-37f99b96.entry.js +2 -0
  719. package/dist/nylas-web-elements/p-37f99b96.entry.js.map +1 -0
  720. package/dist/nylas-web-elements/p-3bc3426e.entry.js +2 -0
  721. package/dist/nylas-web-elements/p-3bc3426e.entry.js.map +1 -0
  722. package/dist/nylas-web-elements/p-3c8822f1.entry.js +2 -0
  723. package/dist/nylas-web-elements/p-3c8822f1.entry.js.map +1 -0
  724. package/dist/nylas-web-elements/p-5770704d.js +2 -0
  725. package/dist/nylas-web-elements/p-5770704d.js.map +1 -0
  726. package/dist/nylas-web-elements/p-5862975b.js +2 -0
  727. package/dist/nylas-web-elements/p-5862975b.js.map +1 -0
  728. package/dist/nylas-web-elements/p-647cf7be.entry.js +2 -0
  729. package/dist/nylas-web-elements/p-647cf7be.entry.js.map +1 -0
  730. package/dist/nylas-web-elements/p-663edeb8.entry.js +2 -0
  731. package/dist/nylas-web-elements/p-663edeb8.entry.js.map +1 -0
  732. package/dist/nylas-web-elements/p-67c9158e.entry.js +2 -0
  733. package/dist/nylas-web-elements/p-67c9158e.entry.js.map +1 -0
  734. package/dist/nylas-web-elements/p-6ba7a037.js +2 -0
  735. package/dist/nylas-web-elements/p-6ba7a037.js.map +1 -0
  736. package/dist/nylas-web-elements/p-6da0b8f0.entry.js +2 -0
  737. package/dist/nylas-web-elements/p-6da0b8f0.entry.js.map +1 -0
  738. package/dist/nylas-web-elements/p-6df00ba0.js +27 -0
  739. package/dist/nylas-web-elements/p-6df00ba0.js.map +1 -0
  740. package/dist/nylas-web-elements/p-74141ef6.entry.js +2 -0
  741. package/dist/nylas-web-elements/p-74141ef6.entry.js.map +1 -0
  742. package/dist/nylas-web-elements/p-85d41197.entry.js +2 -0
  743. package/dist/nylas-web-elements/p-85d41197.entry.js.map +1 -0
  744. package/dist/nylas-web-elements/p-97518578.entry.js +2 -0
  745. package/dist/nylas-web-elements/p-97518578.entry.js.map +1 -0
  746. package/dist/nylas-web-elements/p-98ec4a7a.js +2 -0
  747. package/dist/nylas-web-elements/p-98ec4a7a.js.map +1 -0
  748. package/dist/nylas-web-elements/p-998d25d5.entry.js +2 -0
  749. package/dist/nylas-web-elements/p-998d25d5.entry.js.map +1 -0
  750. package/dist/nylas-web-elements/p-a7bfd3af.entry.js +77 -0
  751. package/dist/nylas-web-elements/p-a7bfd3af.entry.js.map +1 -0
  752. package/dist/nylas-web-elements/p-a95208c7.js +2 -0
  753. package/dist/nylas-web-elements/p-a95208c7.js.map +1 -0
  754. package/dist/nylas-web-elements/p-adacdaeb.entry.js +2 -0
  755. package/dist/nylas-web-elements/p-adacdaeb.entry.js.map +1 -0
  756. package/dist/nylas-web-elements/p-b7d4b7b5.entry.js +2 -0
  757. package/dist/nylas-web-elements/p-b7d4b7b5.entry.js.map +1 -0
  758. package/dist/nylas-web-elements/p-b85dfeac.entry.js +2 -0
  759. package/dist/nylas-web-elements/p-b85dfeac.entry.js.map +1 -0
  760. package/dist/nylas-web-elements/p-b96b37f1.entry.js +2 -0
  761. package/dist/nylas-web-elements/p-b96b37f1.entry.js.map +1 -0
  762. package/dist/nylas-web-elements/p-c2e69618.entry.js +2 -0
  763. package/dist/nylas-web-elements/p-c2e69618.entry.js.map +1 -0
  764. package/dist/nylas-web-elements/p-c440f148.entry.js +2 -0
  765. package/dist/nylas-web-elements/p-c440f148.entry.js.map +1 -0
  766. package/dist/nylas-web-elements/p-c66e27d0.js +3 -0
  767. package/dist/nylas-web-elements/p-c66e27d0.js.map +1 -0
  768. package/dist/nylas-web-elements/p-c685e944.entry.js +3 -0
  769. package/dist/nylas-web-elements/p-c685e944.entry.js.map +1 -0
  770. package/dist/nylas-web-elements/p-cb65c223.js +2 -0
  771. package/dist/nylas-web-elements/p-cb65c223.js.map +1 -0
  772. package/dist/nylas-web-elements/p-cc21d351.js +17 -0
  773. package/dist/nylas-web-elements/p-cc21d351.js.map +1 -0
  774. package/dist/nylas-web-elements/p-d4b1e3e4.entry.js +2 -0
  775. package/dist/nylas-web-elements/p-d4b1e3e4.entry.js.map +1 -0
  776. package/dist/nylas-web-elements/p-db24cc70.entry.js +2 -0
  777. package/dist/nylas-web-elements/p-db24cc70.entry.js.map +1 -0
  778. package/dist/nylas-web-elements/p-de1bcc4a.js +2 -0
  779. package/dist/nylas-web-elements/p-de1bcc4a.js.map +1 -0
  780. package/dist/nylas-web-elements/p-df9f71ea.js +2 -0
  781. package/dist/nylas-web-elements/p-df9f71ea.js.map +1 -0
  782. package/dist/nylas-web-elements/p-eeb0a591.js +2 -0
  783. package/dist/nylas-web-elements/p-eeb0a591.js.map +1 -0
  784. package/dist/nylas-web-elements/p-f029c1b7.entry.js +2 -0
  785. package/dist/nylas-web-elements/p-f029c1b7.entry.js.map +1 -0
  786. package/dist/nylas-web-elements/p-f9a4758a.entry.js +2 -0
  787. package/dist/nylas-web-elements/p-f9a4758a.entry.js.map +1 -0
  788. package/dist/types/common/abstract-provider.d.ts +52 -0
  789. package/dist/types/common/component-types.d.ts +22 -0
  790. package/dist/types/common/constants.d.ts +6 -0
  791. package/dist/types/common/global.d.ts +1 -0
  792. package/dist/types/common/icons/archive.d.ts +5 -0
  793. package/dist/types/common/icons/arrow.d.ts +5 -0
  794. package/dist/types/common/icons/bold.d.ts +5 -0
  795. package/dist/types/common/icons/calendar-cancel.d.ts +5 -0
  796. package/dist/types/common/icons/calendar-check.d.ts +5 -0
  797. package/dist/types/common/icons/calendar.d.ts +5 -0
  798. package/dist/types/common/icons/checkmark-circle.d.ts +5 -0
  799. package/dist/types/common/icons/chevron.d.ts +5 -0
  800. package/dist/types/common/icons/close.d.ts +5 -0
  801. package/dist/types/common/icons/document-refresh.d.ts +5 -0
  802. package/dist/types/common/icons/folder.d.ts +5 -0
  803. package/dist/types/common/icons/forward.d.ts +5 -0
  804. package/dist/types/common/icons/globe.d.ts +5 -0
  805. package/dist/types/common/icons/inbox.d.ts +5 -0
  806. package/dist/types/common/icons/italic.d.ts +5 -0
  807. package/dist/types/common/icons/loading.d.ts +5 -0
  808. package/dist/types/common/icons/nylas-logo.d.ts +5 -0
  809. package/dist/types/common/icons/people.d.ts +5 -0
  810. package/dist/types/common/icons/play.d.ts +5 -0
  811. package/dist/types/common/icons/refresh.d.ts +5 -0
  812. package/dist/types/common/icons/reply-all.d.ts +5 -0
  813. package/dist/types/common/icons/reply.d.ts +5 -0
  814. package/dist/types/common/icons/sent.d.ts +5 -0
  815. package/dist/types/common/icons/spam.d.ts +5 -0
  816. package/dist/types/common/icons/star.d.ts +5 -0
  817. package/dist/types/common/icons/stop.d.ts +5 -0
  818. package/dist/types/common/icons/translate.d.ts +5 -0
  819. package/dist/types/common/icons/trash.d.ts +5 -0
  820. package/dist/types/common/icons/underline.d.ts +5 -0
  821. package/dist/types/common/icons/warning.d.ts +5 -0
  822. package/dist/types/common/mocks/threads.d.ts +3 -0
  823. package/dist/types/common/nylas-theme/index.d.ts +27 -0
  824. package/dist/types/common/register-component.d.ts +29 -0
  825. package/dist/types/common/types.d.ts +108 -0
  826. package/dist/types/components/mailbox/nylas-composer/nylas-composer.d.ts +22 -0
  827. package/dist/types/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.d.ts +1 -0
  828. package/dist/types/components/mailbox/nylas-list-folders/nylas-list-folders.d.ts +19 -0
  829. package/dist/types/components/mailbox/nylas-list-threads/nylas-list-threads.d.ts +19 -0
  830. package/dist/types/components/mailbox/nylas-mailbox/nylas-mailbox.d.ts +35 -0
  831. package/dist/types/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.d.ts +30 -0
  832. package/dist/types/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.d.ts +26 -0
  833. package/dist/types/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.d.ts +25 -0
  834. package/dist/types/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.d.ts +23 -0
  835. package/dist/types/components/mailbox/nylas-threads-search/nylas-threads-search.d.ts +13 -0
  836. package/dist/types/components/mailbox/nylas-view-email/nylas-view-email.d.ts +25 -0
  837. package/dist/types/components/mailbox/nylas-view-thread/nylas-view-thread.d.ts +30 -0
  838. package/dist/types/components/mailbox/nylas-view-thread/view-thread-message.d.ts +12 -0
  839. package/dist/types/components/nylas-if-state/nylas-if-state.d.ts +22 -0
  840. package/dist/types/components/nylas-login/nylas-login.d.ts +26 -0
  841. package/dist/types/components/nylas-provider/nylas-provider.d.ts +35 -0
  842. package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +22 -0
  843. package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +33 -0
  844. package/dist/types/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.d.ts +13 -0
  845. package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +19 -0
  846. package/dist/types/components/scheduler/nylas-locale-switch/nylas-locale-switch.d.ts +13 -0
  847. package/dist/types/components/scheduler/nylas-notification/nylas-notification.d.ts +13 -0
  848. package/dist/types/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.d.ts +40 -0
  849. package/dist/types/components/scheduler/nylas-scheduler/nylas-scheduler.d.ts +41 -0
  850. package/dist/types/components/scheduler/nylas-scheduler/scheduler-view.d.ts +6 -0
  851. package/dist/types/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.d.ts +15 -0
  852. package/dist/types/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.d.ts +28 -0
  853. package/dist/types/components.d.ts +2123 -0
  854. package/dist/types/connector/connector-interface.d.ts +35 -0
  855. package/dist/types/connector/nylas-connector/index.d.ts +59 -0
  856. package/dist/types/connector/nylas-mailbox-connector/index.d.ts +52 -0
  857. package/dist/types/connector/nylas-scheduler-connector/index.d.ts +24 -0
  858. package/dist/types/connector/shared/api/auth.d.ts +13 -0
  859. package/dist/types/connector/shared/api/folders.d.ts +10 -0
  860. package/dist/types/connector/shared/api/messages.d.ts +13 -0
  861. package/dist/types/connector/shared/api/scheduler.d.ts +29 -0
  862. package/dist/types/connector/shared/api/threads.d.ts +20 -0
  863. package/dist/types/index.d.ts +4 -0
  864. package/dist/types/routers/hash-router.d.ts +21 -0
  865. package/dist/types/routers/router-interface.d.ts +16 -0
  866. package/dist/types/stencil-public-runtime.d.ts +1681 -0
  867. package/dist/types/stores/auth-store.d.ts +9 -0
  868. package/dist/types/stores/mailbox-store.d.ts +19 -0
  869. package/dist/types/stores/scheduler-store.d.ts +32 -0
  870. package/dist/types/utils/color-utils.d.ts +9 -0
  871. package/dist/types/utils/utils.d.ts +28 -0
  872. package/loader/cdn.js +3 -0
  873. package/loader/index.cjs.js +3 -0
  874. package/loader/index.d.ts +21 -0
  875. package/loader/index.es2017.js +3 -0
  876. package/loader/index.js +4 -0
  877. package/loader/package.json +11 -0
  878. package/package.json +69 -0
  879. package/readme.md +42 -0
@@ -0,0 +1,2 @@
1
+ import{r as t,h as e}from"./p-c66e27d0.js";const s=".sc-bold-icon-h{display:flex}";const o=s;const i=class{constructor(e){t(this,e);this.width="15";this.height="15"}render(){return e("svg",{key:"1931fa6c8725638d5fe21d917e092afd7bae42b5",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"3148a80405c4af94308a582d9511d02bb1130c95",d:"M6 4V20M9.5 4H15.5C17.7091 4 19.5 5.79086 19.5 8C19.5 10.2091 17.7091 12 15.5 12H9.5H16.5C18.7091 12 20.5 13.7909 20.5 16C20.5 18.2091 18.7091 20 16.5 20H9.5M9.5 4V20M9.5 4H4M9.5 20H4",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};i.style=o;const n=".sc-italic-icon-h{display:flex}";const r=n;const c=class{constructor(e){t(this,e);this.width="15";this.height="15"}render(){return e("svg",{key:"6fcdf71575902d3e0e80c6f6b0ea8d01594bf0cc",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"20089d3a6f084d8ba3ec9ee419dfd5b2516963cb",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m10 20 4-16m2 0h-4m0 16H8"}))}};c.style=r;const d=".sc-underline-icon-h{display:flex}";const h=d;const l=class{constructor(e){t(this,e);this.width="15";this.height="15"}render(){return e("svg",{key:"815f8a312406afb56b66ed016b955711b1fa125d",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"8dc4ce7ea64d15912c3bf783a9d1444d34127f2f",d:"M19 4V10C19 13.866 15.866 17 12 17C8.13401 17 5 13.866 5 10V4M8.5 4V10C8.5 13.2218 10.6766 15.9352 13.6395 16.7501M4 21H20M3 4L10.5 4M17 4L21 4",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};l.style=h;export{i as bold_icon,c as italic_icon,l as underline_icon};
2
+ //# sourceMappingURL=p-33da6cf1.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["iconCss","BoldIconStyle0","BoldIcon","render","h","key","width","this","height","viewBox","fill","xmlns","d","stroke","ItalicIconStyle0","ItalicIcon","UnderlineIconStyle0","UnderlineIcon"],"sources":["src/common/icons/icon.css?tag=bold-icon&encapsulation=scoped","src/common/icons/bold.tsx","src/common/icons/icon.css?tag=italic-icon&encapsulation=scoped","src/common/icons/italic.tsx","src/common/icons/icon.css?tag=underline-icon&encapsulation=scoped","src/common/icons/underline.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'bold-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class BoldIcon {\n @Prop() width: string = '15';\n @Prop() height: string = '15';\n\n render() {\n // Bold icon svg\n return (\n <svg width={this.width} height={this.height} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6 4V20M9.5 4H15.5C17.7091 4 19.5 5.79086 19.5 8C19.5 10.2091 17.7091 12 15.5 12H9.5H16.5C18.7091 12 20.5 13.7909 20.5 16C20.5 18.2091 18.7091 20 16.5 20H9.5M9.5 4V20M9.5 4H4M9.5 20H4\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n }\n}\n",":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'italic-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class ItalicIcon {\n @Prop() width: string = '15';\n @Prop() height: string = '15';\n\n render() {\n return (\n // Italic icon svg\n <svg width={this.width} height={this.height} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m10 20 4-16m2 0h-4m0 16H8\" />\n </svg>\n );\n }\n}\n",":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'underline-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class UnderlineIcon {\n @Prop() width: string = '15';\n @Prop() height: string = '15';\n\n render() {\n return (\n // Underline icon svg\n <svg width={this.width} height={this.height} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19 4V10C19 13.866 15.866 17 12 17C8.13401 17 5 13.866 5 10V4M8.5 4V10C8.5 13.2218 10.6766 15.9352 13.6395 16.7501M4 21H20M3 4L10.5 4M17 4L21 4\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAU,gCAChB,MAAAC,EAAeD,E,MCMFE,EAAQ,M,oCACK,K,YACC,I,CAEzB,MAAAC,GAEE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOC,KAAKD,MAAOE,OAAQD,KAAKC,OAAQC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACjFP,EAAA,QAAAC,IAAA,2CACEO,EAAE,0LACFC,OAAO,eAAc,eACR,IAAG,iBACD,QAAO,kBACN,U,aCpB1B,MAAMb,EAAU,kCAChB,MAAAc,EAAed,E,MCMFe,EAAU,M,oCACG,K,YACC,I,CAEzB,MAAAZ,GACE,OAEEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOC,KAAKD,MAAOE,OAAQD,KAAKC,OAAQC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACjFP,EAAA,QAAAC,IAAA,2CAAMQ,OAAO,eAAc,iBAAgB,QAAO,kBAAiB,QAAO,eAAc,IAAID,EAAE,8B,aCftG,MAAMZ,EAAU,qCAChB,MAAAgB,EAAehB,E,MCMFiB,EAAa,M,oCACA,K,YACC,I,CAEzB,MAAAd,GACE,OAEEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOC,KAAKD,MAAOE,OAAQD,KAAKC,OAAQC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACjFP,EAAA,QAAAC,IAAA,2CACEO,EAAE,kJACFC,OAAO,eAAc,eACR,IAAG,iBACD,QAAO,kBACN,U"}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as s,h as e,H as i,a as h}from"./p-c66e27d0.js";import{N as r,e as n}from"./p-a95208c7.js";import{d as a}from"./p-98ec4a7a.js";import{N as o,a as c,b as u,c as l,C as d,d as p,H as f}from"./p-6ba7a037.js";import{N as m,C as g}from"./p-de1bcc4a.js";import"./p-eeb0a591.js";class y{constructor(t,s,e,i,h,r="https://scheduler.nylas.com"){this.router=t;this.schedulerAPIURL=r;this.nylasAuth=s;this.nylasAuthStore=e;this.nylasMailboxStore=i;this.nylasSchedulerStore=h}init(){a("NylasConnector init")}get authStore(){return this.nylasAuthStore}get mailboxStore(){return this.nylasMailboxStore}get schedulerStore(){return this.nylasSchedulerStore}get auth(){if(this._authConnector){return this._authConnector}this._authConnector=new o(this.nylasAuth,this.nylasAuthStore);return this._authConnector}get threads(){if(this._threadConnector){return this._threadConnector}this._threadConnector=new c(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore,this.router);return this._threadConnector}get messages(){if(this._messageConnector){return this._messageConnector}this._messageConnector=new u(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore);return this._messageConnector}get folders(){if(this._foldersConnector){return this._foldersConnector}this._foldersConnector=new l(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore);return this._foldersConnector}get scheduler(){if(this._schedulerAPIConnector){return this._schedulerAPIConnector}this._schedulerAPIConnector=new m({schedulerAPIURL:this.schedulerAPIURL,schedulerStore:this.schedulerStore});return this._schedulerAPIConnector}getAuth(){return this.nylasAuth}resetStores(){this.nylasAuthStore.reset();this.nylasMailboxStore.reset()}async logout(){await this.nylasAuth.logout();this.resetStores()}}const b=":host{display:contents}";const w=b;const S=class{constructor(e){t(this,e);this.init=s(this,"init",7);this.loggedIn=s(this,"loggedIn",7);this.loggedOut=s(this,"loggedOut",7);this.handleAuthChange=async t=>{if(t){this.loggedIn.emit(this.host)}else{this.loggedOut.emit(this.host)}};this.authConfig=undefined;this.eventOverrides={};this.automaticComponentRegistration=true}connectedCallback(){a("[nylas-provider] connectedCallback")}async componentWillLoad(){a("[nylas-provider] componentWillLoad");this.stores={auth:d(),mailbox:p(),scheduler:g()};this.baseProvider=new r(this.host,this.stores,this.automaticComponentRegistration,this.eventOverrides);const t=new f;this.nylasAuth=n({apiUri:"https://api.us.nylas.com",elementsApiUri:"https://elements.us.nylas.com",storageType:"indexeddb",clientId:"YOUR_CLIENT_ID",defaultScopes:[],redirectURI:"/",...this.authConfig});const s=this.baseProvider?.getStore("mailbox");if(!s){throw new Error("The mailbox store is not set")}const e=this.baseProvider?.getStore("auth");if(!e){throw new Error("The auth store is not set")}const i=this.baseProvider?.getStore("scheduler");if(!i){throw new Error("The scheduler store is not set")}this.nylasConnector=new y(t,this.nylasAuth,e,s,i);const h=this.init.emit(this.host);if(!h.defaultPrevented){await(this.nylasConnector?.auth.validateSession())}this.handleAuthChange(e.state.isAuthenticated);this.baseProvider?.componentWillLoad(this.nylasConnector)}componentDidLoad(){const t=this.baseProvider?.getStore("auth");t?.onChange("isAuthenticated",this.handleAuthChange);this.baseProvider?.componentDidLoad()}componentDisconnected(){this.baseProvider?.componentDisconnected()}async registerComponentHandler(t){this.baseProvider?.registerComponent(t.detail)}async unregisterComponentHandler(t){this.baseProvider?.unregisterComponent(t.detail)}async getNylasAuth(){return this.nylasAuth}async getNylasConnector(){return this.nylasConnector}async getMailboxStore(){return this.baseProvider?.getStore("mailbox")}async getAuthStore(){return this.baseProvider?.getStore("auth")}async getNylasSchedulerStore(){return this.baseProvider?.getStore("scheduler")}render(){return e(i,{key:"ff2cfa488faf8587aae9b577b59f536921dc125a"},e("slot",{key:"a5faaff431a3140912330969ea744fbc1519c121"}))}get host(){return h(this)}};S.style=w;export{S as nylas_provider};
2
+ //# sourceMappingURL=p-37f99b96.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NylasConnector","constructor","router","nylasAuth","nylasAuthStore","nylasMailboxStore","nylasSchedulerStore","schedulerAPIURL","this","init","debug","authStore","mailboxStore","schedulerStore","auth","_authConnector","NylasAuthConnector","threads","_threadConnector","NylasThreadsConnector","messages","_messageConnector","NylasMessagesConnector","folders","_foldersConnector","NylasFoldersConnector","scheduler","_schedulerAPIConnector","NylaSchedulerAPIConnector","getAuth","resetStores","reset","logout","nylasProviderCss","NylasProviderStyle0","NylasProvider","handleAuthChange","async","isAuthenticated","loggedIn","emit","host","loggedOut","connectedCallback","componentWillLoad","stores","CreateNylasAuthStore","mailbox","CreateNylasMailboxStore","CreateNylasSchedulerStore","baseProvider","NylasBaseProvider","automaticComponentRegistration","eventOverrides","HashRouter","NylasAuth","apiUri","elementsApiUri","storageType","clientId","defaultScopes","redirectURI","authConfig","getStore","Error","nylasConnector","initEvent","defaultPrevented","validateSession","state","componentDidLoad","onChange","componentDisconnected","registerComponentHandler","event","registerComponent","detail","unregisterComponentHandler","unregisterComponent","getNylasAuth","getNylasConnector","getMailboxStore","getAuthStore","getNylasSchedulerStore","render","h","Host","key"],"sources":["src/connector/nylas-connector/index.ts","src/components/nylas-provider/nylas-provider.css?tag=nylas-provider&encapsulation=shadow","src/components/nylas-provider/nylas-provider.tsx"],"sourcesContent":["import { RouterInterface } from '@/routers/router-interface';\nimport { NylasAuthStoreType } from '@/stores/auth-store';\nimport { NylasMailboxStoreType } from '@/stores/mailbox-store';\nimport { NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport type { NylasAuthType } from '@nylas/core';\nimport { NylasConnectorInterface } from '../connector-interface';\nimport { NylasAuthConnector } from '../shared/api/auth';\nimport { NylasFoldersConnector } from '../shared/api/folders';\nimport { NylasMessagesConnector } from '../shared/api/messages';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\nimport { NylasThreadsConnector } from '../shared/api/threads';\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasConnector implements NylasConnectorInterface {\n public router: RouterInterface;\n public nylasAuth: NylasAuthType;\n public nylasAuthStore: NylasAuthStoreType;\n public nylasMailboxStore: NylasMailboxStoreType;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public schedulerAPIURL: string;\n\n private _authConnector: NylasAuthConnector | undefined;\n private _threadConnector: NylasThreadsConnector | undefined;\n private _messageConnector: NylasMessagesConnector | undefined;\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n private _foldersConnector: NylasFoldersConnector | undefined;\n\n constructor(\n router: RouterInterface,\n nylasAuth: NylasAuthType,\n nylasAuthStore: NylasAuthStoreType,\n nylasMailboxStore: NylasMailboxStoreType,\n nylasSchedulerStore: NylasSchedulerStoreType,\n schedulerAPIURL: string = 'https://scheduler.nylas.com',\n ) {\n this.router = router;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasAuth = nylasAuth;\n this.nylasAuthStore = nylasAuthStore;\n this.nylasMailboxStore = nylasMailboxStore;\n this.nylasSchedulerStore = nylasSchedulerStore;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get authStore() {\n return this.nylasAuthStore;\n }\n\n public get mailboxStore() {\n return this.nylasMailboxStore;\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get auth() {\n if (this._authConnector) {\n return this._authConnector;\n }\n this._authConnector = new NylasAuthConnector(this.nylasAuth, this.nylasAuthStore);\n return this._authConnector;\n }\n\n public get threads() {\n if (this._threadConnector) {\n return this._threadConnector;\n }\n this._threadConnector = new NylasThreadsConnector(this.nylasAuth, this.nylasAuthStore, this.nylasMailboxStore, this.router);\n return this._threadConnector;\n }\n\n public get messages() {\n if (this._messageConnector) {\n return this._messageConnector;\n }\n this._messageConnector = new NylasMessagesConnector(this.nylasAuth, this.nylasAuthStore, this.nylasMailboxStore);\n return this._messageConnector;\n }\n\n public get folders() {\n if (this._foldersConnector) {\n return this._foldersConnector;\n }\n this._foldersConnector = new NylasFoldersConnector(this.nylasAuth, this.nylasAuthStore, this.nylasMailboxStore);\n return this._foldersConnector;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n });\n return this._schedulerAPIConnector;\n }\n\n public getAuth() {\n return this.nylasAuth;\n }\n\n public resetStores() {\n this.nylasAuthStore.reset();\n this.nylasMailboxStore.reset();\n }\n\n public async logout() {\n await this.nylasAuth.logout();\n this.resetStores();\n }\n}\n\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasConnectorPublicMethods = PublicMethods<NylasConnector>;\n",":host {\n display: contents;\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport { NylasConnector } from '@/connector/nylas-connector';\nimport { HashRouter } from '@/routers/hash-router';\nimport { CreateNylasAuthStore, NylasAuthStoreType } from '@/stores/auth-store';\nimport { CreateNylasMailboxStore, NylasMailboxStoreType } from '@/stores/mailbox-store';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport type { NylasAuthType } from '@nylas/core';\nimport { AuthConfg, NylasAuth } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, h } from '@stencil/core';\nimport type { EventOverride } from '@/common/component-types';\nimport { debug } from '@/utils/utils';\n\n/**\n * The Nylas Provider component.\n * This component is used to manage the Nylas Provider.\n * It is used to manage the Nylas Auth instance, the Nylas Connector instance,\n * and the Nylas Store instance.\n */\n@Component({\n tag: 'nylas-provider',\n styleUrl: 'nylas-provider.css',\n shadow: true,\n})\nexport class NylasProvider {\n /**\n * Stores to be used by the provider.\n */\n private stores?: {\n auth: NylasAuthStoreType;\n mailbox: NylasMailboxStoreType;\n scheduler: NylasSchedulerStoreType;\n };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Auth instance.\n * Used to manage all things authentication with Nylas.\n */\n private nylasAuth?: NylasAuthType;\n\n /**\n * The Nylas Mailbox Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasConnector?: NylasConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasProviderElement;\n\n /**\n * The Nylas Auth configuration.\n * Used to manage all things authentication with Nylas.\n */\n @Prop({ attribute: 'auth-config' }) readonly authConfig?: AuthConfg;\n\n /**\n * This provides a way to override the default event handlers.\n */\n @Prop() eventOverrides: EventOverride<Exclude<typeof this.nylasConnector, undefined>> = {};\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @Prop() automaticComponentRegistration: boolean = true;\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasProviderElement>;\n\n /**\n * This event is fired when the the NyalsAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) loggedIn!: EventEmitter<HTMLNylasProviderElement>;\n\n /**\n * This event is fired when the the NyalsAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) loggedOut!: EventEmitter<HTMLNylasProviderElement>;\n\n connectedCallback() {\n debug('[nylas-provider] connectedCallback');\n }\n\n async componentWillLoad() {\n debug('[nylas-provider] componentWillLoad');\n\n this.stores = {\n auth: CreateNylasAuthStore(),\n mailbox: CreateNylasMailboxStore(),\n scheduler: CreateNylasSchedulerStore(),\n };\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n const router = new HashRouter();\n\n /**\n * Create the NylasAuth instance.\n * This is used to manage all things authentication with Nylas.\n */\n this.nylasAuth = NylasAuth({\n apiUri: 'https://api.us.nylas.com',\n elementsApiUri: 'https://elements.us.nylas.com',\n storageType: 'indexeddb',\n clientId: 'YOUR_CLIENT_ID',\n defaultScopes: [],\n redirectURI: '/',\n ...this.authConfig,\n });\n\n const nylasMailboxStore = this.baseProvider?.getStore('mailbox');\n if (!nylasMailboxStore) {\n throw new Error('The mailbox store is not set');\n }\n\n const nylasAuthStore = this.baseProvider?.getStore('auth');\n if (!nylasAuthStore) {\n throw new Error('The auth store is not set');\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n if (!nylasSchedulerStore) {\n throw new Error('The scheduler store is not set');\n }\n\n this.nylasConnector = new NylasConnector(router, this.nylasAuth, nylasAuthStore, nylasMailboxStore, nylasSchedulerStore);\n\n const initEvent = this.init.emit(this.host);\n if (!initEvent.defaultPrevented) {\n /**\n * By default, on init, we will validate the session.\n * This will check if the user is logged in and if the session is still valid.\n * If the session is not valid, the user will be logged out.\n */\n await this.nylasConnector?.auth.validateSession();\n }\n\n /**\n * Listen for changes in the NylasAuth isAuthenticated state.\n * This is used to fire the loggedIn and loggedOut events.\n */\n this.handleAuthChange(nylasAuthStore.state.isAuthenticated);\n\n this.baseProvider?.componentWillLoad(this.nylasConnector);\n }\n\n componentDidLoad() {\n const nylasAuthStore = this.baseProvider?.getStore('auth');\n nylasAuthStore?.onChange('isAuthenticated', this.handleAuthChange);\n\n this.baseProvider?.componentDidLoad();\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This method is used to handle changes in the NylasAuth isAuthenticated state\n * @param isAuthenticated isAuthenticated state\n * @returns void\n */\n private handleAuthChange = async (isAuthenticated: boolean) => {\n if (isAuthenticated) {\n this.loggedIn.emit(this.host);\n } else {\n this.loggedOut.emit(this.host);\n }\n };\n\n /**\n * This method is used to retrieve the NylasAuth instance\n * @returns The NylasAuth instance\n */\n @Method()\n async getNylasAuth(): Promise<NylasAuthType | undefined> {\n return this.nylasAuth;\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasConnector() {\n return this.nylasConnector;\n }\n\n /**\n * This method is used to retrieve the mailboxStore instance\n * @returns The mailboxStore instance\n */\n @Method()\n async getMailboxStore(): Promise<NylasMailboxStoreType | undefined> {\n return this.baseProvider?.getStore('mailbox');\n }\n\n /**\n * This method is used to retrieve the authStore instance\n * @returns The authStore instance\n */\n @Method()\n async getAuthStore(): Promise<NylasAuthStoreType | undefined> {\n return this.baseProvider?.getStore('auth');\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{h as e,F as a,r as s,c as t,H as r,a as o}from"./p-c66e27d0.js";import{R as i}from"./p-5862975b.js";import{i as n,b as l,j as d,d as c,t as h}from"./p-98ec4a7a.js";function m(e,a,s,t,r){if(!t){return}if(!s){return}if(s.children.length>0){return}c(`[nylas-view-thread] Rendering email`,{message:e,attachments:a,viewEmailElement:t});const o=t.cloneNode(true);o.message=e.data;o.parent=r;s.appendChild(o)}const p=({viewEmailElement:s,message:t,attachments:r,onMessageClick:o,onShowContactDataClick:i,parent:c})=>e(a,null,e("div",{key:t.id,class:"message"},e("div",{class:"sub-header","data-id":t.data.id,onClick:o},e("div",{class:"avatar"},t.data.from&&t.data.from[0]?.name&&t.data.from[0]?.name[0]?.toUpperCase()),e("div",{class:"from"},e("span",{class:"name"},t.data.from&&t.data.from[0]?.name)," ",e("span",{class:"email"},t.data.from&&t.data.from[0]?.email)),e("div",{class:"date"},new Date(t.data.date*1e3).toLocaleTimeString(undefined,{timeStyle:"short"})," ","(",n(new Date(t.data.date*1e3)),")"),e("sp-button-group",{class:"buttons"},e("nylas-summarize-message-button",{message:t.data})),t.collapse&&e("div",{class:"snippet"},t.data.snippet),!t.collapse&&t.data.to&&e("div",{class:"to"},e("span",null,"to")," ",l(t.data.to)," ",e("button",{type:"button",value:t.data.id,onClick:i,class:{expand:true,"expand--showContactData":t.showContactData}},e("chevron-icon",null)))),t.showContactData&&e("div",{class:"address-info"},e("div",{class:"label"},"From"),e("div",{class:"value"},d(t.data?.from?t?.data?.from[0]:{name:"",email:""})),t.data.to&&e(a,null,e("div",{class:"label"},"To"),e("div",{class:"value"},t.data.to.map((a=>e("div",null,d(a)))))),typeof t.data.cc!=="undefined"&&t.data.cc.length>0&&e(a,null,e("div",{class:"label"},"CC"),e("div",{class:"value"},t.data.cc.map((a=>e("div",null,d(a))))))),!t.collapse&&s&&e("div",{key:t.id,ref:e=>m(t,r,e,s,c)}),!t.collapse&&!s&&e("nylas-view-email",{key:t.id,message:t.data,parent:c})),e("hr",null));const u=':host{display:block;font-size:inherit}.avatar{z-index:1;border-radius:100%;background-color:var(--nylas-color-primary-200);height:40px;width:40px;align-items:center;display:flex;justify-content:center;border:1px solid var(--nylas-color-primary-200)}.view-thread{display:grid;grid-auto-flow:row;width:100%}.view-thread .header{display:grid;grid-gap:1rem;align-items:center;margin-bottom:1rem}.view-thread .header .subject{font-size:1.25rem;font-weight:600;line-height:1.5rem}.view-thread .header .folders{display:grid;grid-auto-flow:column;grid-auto-columns:min-content;overflow-x:auto;gap:1rem}.view-thread .header .folders .folder{padding:0 0.5rem;font-size:0.9rem;color:var(--nylas-color-primary-900);background-color:var(--nylas-color-primary-300)}.view-thread .messages{display:grid;gap:1rem}.view-thread .messages hr{margin:0;width:100%;border:1px solid var(--nylas-color-primary-200)}.view-thread .messages hr:last-of-type{display:none}.view-thread .messages .message{display:grid;grid-auto-flow:row;gap:1rem}.view-thread .messages .message:last-of-type .sub-header{cursor:default}.view-thread .messages .message .sub-header{display:grid;grid-template:"avatar from date buttons" "avatar to to buttons";grid-column-gap:1rem;grid-template-columns:auto 1fr auto auto;cursor:pointer}.view-thread .messages .message .sub-header>*{pointer-events:none}.view-thread .messages .message .sub-header .avatar{grid-area:avatar}.view-thread .messages .message .sub-header .from{grid-area:from}.view-thread .messages .message .sub-header .from span.email{display:none;color:var(--nylas-color-primary-400);font-weight:600}.view-thread .messages .message .sub-header .buttons{grid-area:buttons;align-self:center}.view-thread .messages .message .sub-header .buttons *{pointer-events:all}.view-thread .messages .message .sub-header .date{grid-area:date;align-self:center;color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .snippet{width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--nylas-color-primary-600)}.view-thread .messages .message .sub-header .to{grid-area:to;color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .to>span{color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .to button{border:0;background-color:transparent;cursor:pointer;pointer-events:all;padding:0;margin:0}.view-thread .messages .message .sub-header .to button>*{pointer-events:none}.view-thread .messages .message .sub-header .to button chevron-icon{display:inline-table;fill:var(--nylas-color-primary-400);width:15px;height:15px;vertical-align:middle}.view-thread .messages .message .sub-header .to button chevron-icon svg{width:15px;height:15px;transform:rotate(90deg)}.view-thread .messages .message .sub-header .to button.expand--showContactData chevron-icon svg{transform:rotate(270deg)}.view-thread .messages .message .address-info{display:grid;column-gap:1rem;row-gap:0.5rem;grid-template-columns:auto 1fr;grid-template-rows:1fr;padding:1rem 2rem;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-color-primary-200);align-items:flex-start;color:var(--nylas-color-primary-600)}.view-thread .messages .message .address-info .label{color:var(--nylas-color-primary-400);font-weight:600}.show-more{position:relative;display:flex;width:100%}.show-more .sr-only{display:none}.show-more button{position:relative;display:inline-flex;width:100%;padding:0;border:0;background-color:transparent;cursor:pointer;text-align:left;overflow:hidden}.show-more button span{border:1px solid var(--nylas-color-primary-400)}.show-more button:hover span{background-color:var(--nylas-color-primary-700)}.show-more button::after{border-top:1px solid rgba(100, 121, 143, 0.122);border-bottom:1px solid rgba(100, 121, 143, 0.122);content:"";height:4px;width:100%;position:absolute;top:50%}.loading{position:absolute;width:100%;height:100%;background-color:var(--loading__background-color);top:0;bottom:0;left:0;z-index:1;display:grid;justify-content:center;align-items:center;font-weight:600;overflow:hidden}.reply-buttons{display:grid;grid-auto-flow:column;grid-auto-columns:min-content;gap:1rem;margin-top:1rem}.reply-buttons sp-button{border-radius:var(--nylas-border-radius);background-color:var(--nylas-color-primary-400);color:var(--nylas-color-primary-900);fill:var(--nylas-color-primary-900)}.reply-buttons sp-button:hover{background-color:var(--nylas-color-primary-500)}.reply-buttons sp-button:disabled{background-color:var(--nylas-color-primary-200);color:var(--nylas-color-primary-600);cursor:not-allowed}.reply-buttons sp-button chevron-icon{display:inline-block}@media only screen and (min-width: 768px){.view-thread .messages .message .sub-header .from span.email{display:inline}}';const g=u;var v=undefined&&undefined.__decorate||function(e,a,s,t){var r=arguments.length,o=r<3?a:t===null?t=Object.getOwnPropertyDescriptor(a,s):t,i;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(e,a,s,t);else for(var n=e.length-1;n>=0;n--)if(i=e[n])o=(r<3?i(o):r>3?i(a,s,o):i(a,s))||o;return r>3&&o&&Object.defineProperty(a,s,o),o};var y=undefined&&undefined.__metadata||function(e,a){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,a)};const f=class{constructor(e){s(this,e);this.threadSelected=t(this,"threadSelected",7);this.showContactDataClicked=t(this,"showContactDataClicked",7);this.messageClicked=t(this,"messageClicked",7);this.nylasViewEmailElement=null;this.nylasComposerElement=null;this.onShowContactDataClick=e=>{e.stopPropagation();const a=e.target;const s=a.value;const t=this.internalMessages.find((e=>e.data.id===s));if(!t){c(`[nylas-view-thread] Could not find message ${s}`);return}const r=this.showContactDataClicked.emit(t.data);if(!r.defaultPrevented){t.showContactData=!t.showContactData;this.internalMessages=[...this.internalMessages]}c(`[nylas-view-thread] show contact data clicked ${s} ${t.showContactData?"collapsed":"expanded"}`)};this.onMessageClick=e=>{const a=e.target;const s=a.dataset.id;const t=this.internalMessages.find((e=>e.data.id===s));if(!t){c(`[nylas-view-thread] Could not find message ${s}`);return}const r=this.messageClicked.emit(t.data);if(!r.defaultPrevented){if(t.id!==this.internalMessages[this.internalMessages.length-1]?.id){t.collapse=!t.collapse;if(t.collapse){t.showContactData=false}}this.internalMessages=[...this.internalMessages]}c(`[nylas-view-thread] message clicked ${s} ${t.collapse?"collapsed":"expanded"}`)};this.onShowAllEmailsClick=()=>{this.showAllEmails=!this.showAllEmails};this.showComposerClick=()=>{this.showComposer=!this.showComposer};this.draft=undefined;this.thread=undefined;this.messages=[];this.attachments=[];this.state="loading";this.internalMessages=[];this.showAllEmails=false;this.showComposer=false}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){c(`[nylas-view-thread] Component will load`);this.updateInternalMessages(this.messages);const e=this.host.querySelector("template.nylas-view-email");if(!e){c(`[nylas-view-thread] Could not find template`);return}const a=document.importNode(e.content,true);this.nylasViewEmailElement=a.querySelector("nylas-view-email");const s=this.host.querySelector("template.nylas-composer");if(!s){c(`[nylas-view-thread] Could not find composer template`);return}const t=document.importNode(s.content,true);this.nylasComposerElement=t.querySelector("nylas-composer")}async componentDidLoad(){c(`[nylas-view-thread] Component did load`)}async threadChanged(e){c(`[nylas-view-thread] Thread changed`,{thread:e});this.internalMessages=[];const a=this.threadSelected.emit(e);if(!a.defaultPrevented){c(`[nylas-view-thread] Default event not prevented, initializing`)}}updateInternalMessages(e){c(`[nylas-view-thread] Updating internal messages`,{messages:e});const a=e.sort(((e,a)=>e.date>a.date?1:-1)).map(((a,s)=>({id:a.id,data:a,collapse:s===e.length-1?false:true,showContactData:false})));this.internalMessages=a}render(){const s=this.internalMessages.length>2?this.internalMessages[0]:null;const t=this.internalMessages.slice(this.internalMessages.length-2,this.internalMessages.length);const o=this.internalMessages.slice(1,this.internalMessages.length-2);const i=this.internalMessages[this.internalMessages.length-1];return e(r,{key:"99b11b1bd476708c89e6284a7d8fda1da9d886ff"},e("sp-theme",{key:"23bc8c7387f08654aa38a187ee0da13e860ad207",scale:"medium",color:"dark"},e("div",{key:"fd78702832a02c3469dfea1b91aea94282cc566d",class:"view-thread"},e("div",{key:"2405c194d2a7f80802cc25794129496453781445",class:"header"},e("div",{key:"f69ceef2127c53c38acb2be2033fd1e5b5502aad",class:"subject"},this.thread?.subject),e("div",{key:"2aceb0fa163a30aaa3e6a8f95b52b6ba0583d904",class:"folders"},this.thread?.folders?.map((a=>e("sp-tag",{size:"s"},h(a.replace("CATEGORY_","").replace("_"," "))))))),e("div",{key:"33a0f1c33dfd2072681c356a5144eaba7ef9522b",class:"messages"},s&&e(p,{message:s,attachments:this.attachments.filter((e=>e.messageId===s.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement}),o.length>0&&this.messages.length>1&&!this.showAllEmails&&t.length>0&&e(a,null,e("div",{class:"show-more"},e("button",{type:"button",onClick:this.onShowAllEmailsClick},e("span",{class:"avatar"},o.length)," ",e("span",{class:"sr-only"},"Show ",o.length," more emails"))),e("hr",null)),o.length>0&&this.showAllEmails&&this.messages.length>2&&o.map((a=>e(p,{message:a,attachments:this.attachments.filter((e=>e.messageId===s?.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement}))),t.length>0&&t.map((a=>e(p,{message:a,attachments:this.attachments.filter((e=>e.messageId===s?.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement})))),!(this.showComposer&&i)&&e("div",{class:"reply-buttons"},e("sp-button",{variant:"cta",type:"button",onClick:this.showComposerClick},e("span",{slot:"icon"},e("reply-icon",null)),e("span",null,"Reply")),e("sp-button",{variant:"cta",type:"button"},e("span",{slot:"icon"},e("reply-all-icon",null)),e("span",null,"Reply All")),e("sp-button",{variant:"cta",type:"button"},e("span",{slot:"icon"},e("forward-icon",null)),e("span",null,"Forward"))),this.showComposer&&i&&e("div",{class:"composer"},e("nylas-composer",{message:i.data,onClose:this.showComposerClick,onSend:e=>{c(`[nylas-view-thread] Send event`,{message:e.detail.message,replyBody:e.detail.replyBody})}})))))}get host(){return o(this)}static get watchers(){return{thread:["threadChanged"],messages:["updateInternalMessages"]}}};v([i({name:"nylas-view-thread",stateToProps:new Map([["mailbox.selectedThread","thread"],["mailbox.messages","messages"],["mailbox.state","state"]]),eventToProps:{threadSelected:async(e,a)=>{c(`[nylas-view-thread] Nylas init event. Fetching thread messages.`,{event:e});const s=e.detail;if(s&&s.id){await a.messages.getThreadMessages(s.id)}}},fireRegisterEvent:true}),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],f.prototype,"render",null);f.style=g;export{f as nylas_view_thread};
2
+ //# sourceMappingURL=p-3bc3426e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["renderViewEmail","message","attachments","container","viewEmailElement","parent","children","length","debug","viewEmailElementClone","cloneNode","data","appendChild","ViewThreadMessage","onMessageClick","onShowContactDataClick","h","Fragment","key","id","class","onClick","from","name","toUpperCase","email","Date","date","toLocaleTimeString","undefined","timeStyle","formatTimeAgo","collapse","snippet","to","formatParticipants","type","value","expand","showContactData","formatRecipient","map","cc","ref","el","nylasViewThreadCss","NylasViewThreadStyle0","NylasViewThread","this","nylasViewEmailElement","nylasComposerElement","originalEvent","stopPropagation","target","messageId","internalMessages","find","event","showContactDataClicked","emit","defaultPrevented","dataset","messageClicked","onShowAllEmailsClick","showAllEmails","showComposerClick","showComposer","connectedCallback","disconnectedCallback","componentWillLoad","updateInternalMessages","messages","template","host","querySelector","viewEmailTemplateClone","document","importNode","content","composerTemplate","composerTemplateClone","componentDidLoad","threadChanged","thread","threadSelected","sort","a","b","index","render","fistMessage","lastTwoMessages","slice","remainingMessages","lastMessage","Host","scale","color","subject","folders","folder","size","toTitleCase","replace","filter","attachment","composerElement","variant","slot","onClose","onSend","e","detail","replyBody","__decorate","RegisterComponent","stateToProps","Map","eventToProps","async","nylasConnector","getThreadMessages","fireRegisterEvent"],"sources":["src/components/mailbox/nylas-view-thread/view-thread-message.tsx","src/components/mailbox/nylas-view-thread/nylas-view-thread.scss?tag=nylas-view-thread&encapsulation=shadow","src/components/mailbox/nylas-view-thread/nylas-view-thread.tsx"],"sourcesContent":["import { InternalAttachment, InternalMessage } from '@/common/types';\nimport { debug, formatParticipants, formatRecipient, formatTimeAgo } from '@/utils/utils';\nimport { Fragment, FunctionalComponent, h } from '@stencil/core';\n\nexport type ViewThreadMessageProps = {\n message: InternalMessage;\n attachments: InternalAttachment[];\n viewEmailElement?: HTMLNylasViewEmailElement | null;\n composerElement?: HTMLNylasComposerElement | null;\n onShowContactDataClick: (event: MouseEvent) => void;\n onMessageClick: (event: MouseEvent) => void;\n parent?: HTMLElement;\n};\n\n/**\n * Render view email element\n * @param container Container element to render view email element\n * @param message Message to render\n * @param viewEmailElement View email element to render\n * @param parent Parent element used for mobile view resizing\n */\nfunction renderViewEmail(message: InternalMessage, attachments: InternalAttachment[], container?: HTMLElement, viewEmailElement?: HTMLNylasViewEmailElement, parent?: HTMLElement) {\n // Skip if message is not defined\n if (!viewEmailElement) {\n return;\n }\n\n // Skip if container is not defined\n if (!container) {\n return;\n }\n\n // Skip if container already has a child\n if (container.children.length > 0) {\n return;\n }\n\n debug(`[nylas-view-thread] Rendering email`, { message, attachments, viewEmailElement });\n\n // Clone viewEmailElement so that we are not reusing the same element from another\n // message in the thread\n const viewEmailElementClone = viewEmailElement.cloneNode(true) as HTMLNylasViewEmailElement;\n viewEmailElementClone.message = message.data;\n viewEmailElementClone.parent = parent;\n\n // Append viewEmailElement to container\n container.appendChild(viewEmailElementClone);\n}\n\nexport const ViewThreadMessage: FunctionalComponent<ViewThreadMessageProps> = ({ viewEmailElement, message, attachments, onMessageClick, onShowContactDataClick, parent }) => (\n <Fragment>\n <div key={message.id} class={'message'}>\n <div class={'sub-header'} data-id={message.data.id} onClick={onMessageClick}>\n <div class={'avatar'}>{message.data.from && message.data.from[0]?.name && message.data.from[0]?.name[0]?.toUpperCase()}</div>\n <div class={'from'}>\n <span class={'name'}>{message.data.from && message.data.from[0]?.name}</span> <span class=\"email\">{message.data.from && message.data.from[0]?.email}</span>\n </div>\n <div class={'date'}>\n {new Date(message.data.date * 1000).toLocaleTimeString(undefined, {\n timeStyle: 'short',\n })}{' '}\n ({formatTimeAgo(new Date(message.data.date * 1000))})\n </div>\n <sp-button-group class=\"buttons\">\n <nylas-summarize-message-button message={message.data} />\n </sp-button-group>\n {message.collapse && <div class={'snippet'}>{message.data.snippet}</div>}\n\n {!message.collapse && message.data.to && (\n <div class={'to'}>\n <span>to</span> {formatParticipants(message.data.to)}{' '}\n <button\n type=\"button\"\n value={message.data.id}\n onClick={onShowContactDataClick}\n class={{\n 'expand': true,\n 'expand--showContactData': message.showContactData,\n }}\n >\n <chevron-icon />\n </button>\n </div>\n )}\n </div>\n {message.showContactData && (\n <div class={'address-info'}>\n <div class={'label'}>From</div>\n <div class={'value'}>{formatRecipient(message.data?.from ? message?.data?.from[0] : { name: '', email: '' })}</div>\n\n {message.data.to && (\n <Fragment>\n <div class={'label'}>To</div>\n <div class={'value'}>\n {message.data.to.map(to => (\n <div>{formatRecipient(to)}</div>\n ))}\n </div>\n </Fragment>\n )}\n\n {typeof message.data.cc !== 'undefined' && message.data.cc.length > 0 && (\n <Fragment>\n <div class={'label'}>CC</div>\n <div class={'value'}>\n {message.data.cc.map(cc => (\n <div>{formatRecipient(cc)}</div>\n ))}\n </div>\n </Fragment>\n )}\n </div>\n )}\n {!message.collapse && viewEmailElement && <div key={message.id} ref={el => renderViewEmail(message, attachments, el, viewEmailElement, parent)} />}\n {/* If no view element was provided, default to our own instance */}\n {!message.collapse && !viewEmailElement && <nylas-view-email key={message.id} message={message.data} parent={parent} />}\n </div>\n <hr />\n </Fragment>\n);\n",":host {\n display: block;\n font-size: inherit;\n}\n\n.avatar {\n z-index: 1;\n border-radius: 100%;\n background-color: var(--nylas-color-primary-200);\n height: 40px;\n width: 40px;\n align-items: center;\n display: flex;\n justify-content: center;\n border: 1px solid var(--nylas-color-primary-200);\n}\n\n.view-thread {\n display: grid;\n grid-auto-flow: row;\n width: 100%;\n\n .header {\n display: grid;\n grid-gap: 1rem;\n /* grid-auto-flow: row;\n grid-auto-columns: fit-content(50%); */\n align-items: center;\n margin-bottom: 1rem;\n\n .subject {\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.5rem;\n }\n\n .folders {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: min-content;\n overflow-x: auto;\n gap: 1rem;\n\n .folder {\n padding: 0 0.5rem;\n font-size: 0.9rem;\n color: var(--nylas-color-primary-900);\n background-color: var(--nylas-color-primary-300);\n }\n }\n }\n\n .messages {\n display: grid;\n gap: 1rem;\n\n hr {\n margin: 0;\n width: 100%;\n border: 1px solid var(--nylas-color-primary-200);\n\n &:last-of-type {\n display: none;\n }\n }\n\n .message {\n display: grid;\n grid-auto-flow: row;\n gap: 1rem;\n\n &:last-of-type .sub-header {\n cursor: default;\n }\n\n .sub-header {\n display: grid;\n grid-template:\n 'avatar from date buttons'\n 'avatar to to buttons';\n grid-column-gap: 1rem;\n grid-template-columns: auto 1fr auto auto;\n cursor: pointer;\n\n > * {\n pointer-events: none;\n }\n\n .avatar {\n grid-area: avatar;\n }\n\n .from {\n grid-area: from;\n span.email {\n display: none;\n color: var(--nylas-color-primary-400);\n font-weight: 600;\n }\n }\n\n .buttons {\n grid-area: buttons;\n align-self: center;\n\n * {\n pointer-events: all;\n }\n }\n\n .date {\n grid-area: date;\n align-self: center;\n color: var(--nylas-color-primary-400);\n }\n\n .snippet {\n width: 90%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--nylas-color-primary-600);\n }\n\n .to {\n grid-area: to;\n color: var(--nylas-color-primary-400);\n\n > span {\n color: var(--nylas-color-primary-400);\n }\n\n button {\n border: 0;\n background-color: transparent;\n cursor: pointer;\n pointer-events: all;\n padding: 0;\n margin: 0;\n\n > * {\n pointer-events: none;\n }\n\n chevron-icon {\n display: inline-table;\n fill: var(--nylas-color-primary-400);\n width: 15px;\n height: 15px;\n vertical-align: middle;\n svg {\n width: 15px;\n height: 15px;\n transform: rotate(90deg);\n }\n }\n\n &.expand--showContactData chevron-icon {\n svg {\n transform: rotate(270deg);\n }\n }\n }\n }\n }\n\n .address-info {\n display: grid;\n column-gap: 1rem;\n row-gap: 0.5rem;\n grid-template-columns: auto 1fr;\n grid-template-rows: 1fr;\n padding: 1rem 2rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-color-primary-200);\n align-items: flex-start;\n color: var(--nylas-color-primary-600);\n\n .label {\n color: var(--nylas-color-primary-400);\n font-weight: 600;\n }\n }\n }\n }\n}\n\n.show-more {\n position: relative;\n display: flex;\n width: 100%;\n\n .sr-only {\n display: none;\n }\n\n button {\n position: relative;\n display: inline-flex;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n\n span {\n border: 1px solid var(--nylas-color-primary-400);\n }\n\n &:hover span {\n background-color: var(--nylas-color-primary-700);\n }\n\n &::after {\n border-top: 1px solid rgba(100, 121, 143, 0.122);\n border-bottom: 1px solid rgba(100, 121, 143, 0.122);\n content: '';\n height: 4px;\n width: 100%;\n position: absolute;\n top: 50%;\n }\n }\n}\n\n.loading {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: var(--loading__background-color);\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n display: grid;\n justify-content: center;\n align-items: center;\n font-weight: 600;\n overflow: hidden;\n}\n\n.reply-buttons {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: min-content;\n gap: 1rem;\n margin-top: 1rem;\n\n sp-button {\n border-radius: var(--nylas-border-radius);\n background-color: var(--nylas-color-primary-400);\n color: var(--nylas-color-primary-900);\n fill: var(--nylas-color-primary-900);\n\n &:hover {\n background-color: var(--nylas-color-primary-500);\n }\n\n &:disabled {\n background-color: var(--nylas-color-primary-200);\n color: var(--nylas-color-primary-600);\n cursor: not-allowed;\n }\n\n & chevron-icon {\n display: inline-block;\n }\n }\n}\n\n/* Extra small devices (phones, 600px and down) */\n@media only screen and (max-width: 600px) {\n}\n\n/* Small devices (portrait tablets and large phones, 600px and up) */\n@media only screen and (min-width: 600px) {\n}\n\n/* Medium devices (landscape tablets, 768px and up) */\n@media only screen and (min-width: 768px) {\n .view-thread {\n .messages {\n .message {\n .sub-header {\n .from {\n span.email {\n display: inline;\n }\n }\n }\n }\n }\n }\n}\n\n/* Large devices (laptops/desktops, 992px and up) */\n@media only screen and (min-width: 992px) {\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { DataState, InternalAttachment, InternalMessage } from '@/common/types';\nimport { debug, toTitleCase } from '@/utils/utils';\nimport { Message, Thread } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Fragment, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../../components';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\nimport { ViewThreadMessage } from './view-thread-message';\n\n@Component({\n tag: 'nylas-view-thread',\n styleUrl: 'nylas-view-thread.scss',\n shadow: true,\n})\nexport class NylasViewThread {\n /**\n * The host element\n */\n @Element() readonly host!: HTMLDivElement;\n\n /**\n * The draft message to display\n */\n @Prop() readonly draft?: Message;\n\n /**\n * Thread to display\n */\n @Prop() readonly thread?: Thread;\n\n /**\n * Messages within the thread to display\n */\n @Prop() readonly messages: Message[] = [];\n\n /**\n * Attachments for each message within the thread\n */\n @Prop() readonly attachments: InternalAttachment[] = [];\n\n /**\n * Event emitted when a thread is selected\n */\n @Event({ cancelable: true }) readonly threadSelected!: EventEmitter<Thread>;\n\n /**\n * Event emitted when a message contact data is clicked\n */\n @Event() showContactDataClicked!: EventEmitter<Message>;\n\n /**\n * Event emitted when a message is clicked\n */\n @Event() messageClicked!: EventEmitter<Message>;\n\n /**\n * THe data state of the mailbox (loading, ready, error)\n */\n @State() readonly state: DataState = 'loading';\n\n /**\n * Internal messages contains additional data for each message\n * required for rendering\n */\n @State() internalMessages: InternalMessage[] = [];\n\n /**\n * A toggle state to all emails\n */\n @State() showAllEmails: boolean = false;\n\n /**\n * A toggle state to show the composer\n */\n @State() showComposer: boolean = false;\n\n /**\n * The view email element to render.\n * This is the HTML element that is passed to this component\n * and which is used to render the email body for each message.\n */\n private nylasViewEmailElement: HTMLNylasViewEmailElement | null = null;\n\n /**\n * The composer element to render.\n * This is the HTML element that is passed to this component\n * and which is used to render the composer for each message.\n */\n private nylasComposerElement: HTMLNylasComposerElement | null = null;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-view-thread] Component will load`);\n this.updateInternalMessages(this.messages);\n\n // Get the template with the class \"nylas-view-email\" and clone it\n const template = this.host.querySelector<HTMLTemplateElement>('template.nylas-view-email');\n if (!template) {\n debug(`[nylas-view-thread] Could not find template`);\n return;\n }\n\n const viewEmailTemplateClone = document.importNode(template.content, true);\n this.nylasViewEmailElement = viewEmailTemplateClone.querySelector<HTMLNylasViewEmailElement>('nylas-view-email');\n\n // Get the template with the class \"nylas-composer\" and clone it\n const composerTemplate = this.host.querySelector<HTMLTemplateElement>('template.nylas-composer');\n if (!composerTemplate) {\n debug(`[nylas-view-thread] Could not find composer template`);\n return;\n }\n\n const composerTemplateClone = document.importNode(composerTemplate.content, true);\n this.nylasComposerElement = composerTemplateClone.querySelector<HTMLNylasComposerElement>('nylas-composer');\n }\n\n async componentDidLoad() {\n debug(`[nylas-view-thread] Component did load`);\n }\n\n @Watch('thread')\n async threadChanged(thread: Thread | undefined) {\n debug(`[nylas-view-thread] Thread changed`, { thread: thread });\n\n // Reset internal messages\n this.internalMessages = [];\n\n const event = this.threadSelected.emit(thread);\n if (!event.defaultPrevented) {\n debug(`[nylas-view-thread] Default event not prevented, initializing`);\n }\n }\n\n @Watch('messages')\n public updateInternalMessages(messages: Message[]) {\n debug(`[nylas-view-thread] Updating internal messages`, { messages });\n\n const internalMessages = messages\n .sort((a, b) => {\n return a.date > b.date ? 1 : -1;\n })\n .map((message, index) => ({\n id: message.id,\n data: message,\n collapse: index === messages.length - 1 ? false : true,\n showContactData: false,\n }));\n\n this.internalMessages = internalMessages;\n }\n\n private onShowContactDataClick = (originalEvent: MouseEvent) => {\n originalEvent.stopPropagation();\n const target = originalEvent.target as HTMLButtonElement;\n const messageId = target.value;\n\n const message = this.internalMessages.find(message => message.data.id === messageId);\n if (!message) {\n debug(`[nylas-view-thread] Could not find message ${messageId}`);\n return;\n }\n const event = this.showContactDataClicked.emit(message.data);\n if (!event.defaultPrevented) {\n message.showContactData = !message.showContactData;\n this.internalMessages = [...this.internalMessages];\n }\n\n debug(`[nylas-view-thread] show contact data clicked ${messageId} ${message.showContactData ? 'collapsed' : 'expanded'}`);\n };\n\n private onMessageClick = (originalEvent: MouseEvent) => {\n const target = originalEvent.target as HTMLDivElement;\n const messageId = target.dataset.id;\n const message = this.internalMessages.find(message => message.data.id === messageId);\n if (!message) {\n debug(`[nylas-view-thread] Could not find message ${messageId}`);\n return;\n }\n const event = this.messageClicked.emit(message.data);\n if (!event.defaultPrevented) {\n if (message.id !== this.internalMessages[this.internalMessages.length - 1]?.id) {\n message.collapse = !message.collapse;\n if (message.collapse) {\n message.showContactData = false;\n }\n }\n\n this.internalMessages = [...this.internalMessages];\n }\n debug(`[nylas-view-thread] message clicked ${messageId} ${message.collapse ? 'collapsed' : 'expanded'}`);\n };\n\n private onShowAllEmailsClick = () => {\n this.showAllEmails = !this.showAllEmails;\n };\n\n private showComposerClick = () => {\n this.showComposer = !this.showComposer;\n };\n\n @RegisterComponent<NylasViewThread, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-view-thread',\n stateToProps: new Map([\n ['mailbox.selectedThread', 'thread'],\n ['mailbox.messages', 'messages'],\n ['mailbox.state', 'state'],\n ]),\n eventToProps: {\n threadSelected: async (event: CustomEvent<Thread>, nylasConnector: NylasMailboxConnector) => {\n debug(`[nylas-view-thread] Nylas init event. Fetching thread messages.`, { event });\n const thread = event.detail;\n if (thread && thread.id) {\n await nylasConnector.messages.getThreadMessages(thread.id);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const fistMessage = this.internalMessages.length > 2 ? this.internalMessages[0] : null;\n const lastTwoMessages = this.internalMessages.slice(this.internalMessages.length - 2, this.internalMessages.length);\n const remainingMessages = this.internalMessages.slice(1, this.internalMessages.length - 2);\n const lastMessage = this.internalMessages[this.internalMessages.length - 1];\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <div class=\"view-thread\">\n <div class=\"header\">\n <div class={'subject'}>{this.thread?.subject}</div>\n <div class={'folders'}>{this.thread?.folders?.map(folder => <sp-tag size=\"s\">{toTitleCase(folder.replace('CATEGORY_', '').replace('_', ' '))}</sp-tag>)}</div>\n </div>\n <div class=\"messages\">\n {fistMessage && (\n <ViewThreadMessage\n message={fistMessage}\n attachments={this.attachments.filter(attachment => attachment.messageId === fistMessage.id)}\n onMessageClick={this.onMessageClick}\n onShowContactDataClick={this.onShowContactDataClick}\n parent={this.host}\n viewEmailElement={this.nylasViewEmailElement}\n composerElement={this.nylasComposerElement}\n />\n )}\n {remainingMessages.length > 0 && this.messages.length > 1 && !this.showAllEmails && lastTwoMessages.length > 0 && (\n <Fragment>\n <div class={'show-more'}>\n <button type=\"button\" onClick={this.onShowAllEmailsClick}>\n <span class={'avatar'}>{remainingMessages.length}</span> <span class={'sr-only'}>Show {remainingMessages.length} more emails</span>\n </button>\n </div>\n <hr />\n </Fragment>\n )}\n {remainingMessages.length > 0 &&\n this.showAllEmails &&\n this.messages.length > 2 &&\n remainingMessages.map(email => (\n <ViewThreadMessage\n message={email}\n attachments={this.attachments.filter(attachment => attachment.messageId === fistMessage?.id)}\n onMessageClick={this.onMessageClick}\n onShowContactDataClick={this.onShowContactDataClick}\n parent={this.host}\n viewEmailElement={this.nylasViewEmailElement}\n composerElement={this.nylasComposerElement}\n />\n ))}\n {lastTwoMessages.length > 0 &&\n lastTwoMessages.map(email => (\n <ViewThreadMessage\n message={email}\n attachments={this.attachments.filter(attachment => attachment.messageId === fistMessage?.id)}\n onMessageClick={this.onMessageClick}\n onShowContactDataClick={this.onShowContactDataClick}\n parent={this.host}\n viewEmailElement={this.nylasViewEmailElement}\n composerElement={this.nylasComposerElement}\n />\n ))}\n </div>\n {!(this.showComposer && lastMessage) && (\n <div class=\"reply-buttons\">\n <sp-button variant=\"cta\" type=\"button\" onClick={this.showComposerClick}>\n <span slot=\"icon\">\n <reply-icon></reply-icon>\n </span>\n <span>Reply</span>\n </sp-button>\n <sp-button variant=\"cta\" type=\"button\">\n <span slot=\"icon\">\n <reply-all-icon></reply-all-icon>\n </span>\n <span>Reply All</span>\n </sp-button>\n <sp-button variant=\"cta\" type=\"button\">\n <span slot=\"icon\">\n <forward-icon></forward-icon>\n </span>\n <span>Forward</span>\n </sp-button>\n </div>\n )}\n {this.showComposer && lastMessage && (\n <div class=\"composer\">\n <nylas-composer\n message={lastMessage.data}\n onClose={this.showComposerClick}\n onSend={e => {\n debug(`[nylas-view-thread] Send event`, { message: e.detail.message, replyBody: e.detail.replyBody });\n }}\n ></nylas-composer>\n </div>\n )}\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as a,h as e}from"./p-c66e27d0.js";const t=".wave{display:flex;align-items:center;justify-content:center}.dot{width:4px;height:4px;background-color:var(--dot-color, white);border-radius:50%;margin:0 2px;animation:wave 1.5s infinite ease-in-out}.dot:nth-child(2){animation-delay:0.2s}.dot:nth-child(3){animation-delay:0.4s}@keyframes wave{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}";const s=t;const d=class{constructor(e){a(this,e);this.width="15";this.height="15"}render(){return e("div",{key:"236ae2f76a43a73bf12500c37a1315a798ee6682",class:"wave"},e("div",{key:"53991ce94d24ad556b00eaf5a1110ce5ff442333",class:"dot"}),e("div",{key:"d0a4ba7f5c52e2942370b630a58dc7843d717ba3",class:"dot"}),e("div",{key:"a14c7426974e5d6eae289967b301dce3e6d2db39",class:"dot"}))}};d.style=s;export{d as loading_icon};
2
+ //# sourceMappingURL=p-3c8822f1.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["loadingCss","LoadingIconStyle0","LoadingIcon","render","h","key","class"],"sources":["src/common/icons/loading.css?tag=loading-icon&encapsulation=shadow","src/common/icons/loading.tsx"],"sourcesContent":[".wave {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dot {\n width: 4px;\n height: 4px;\n background-color: var(--dot-color, white);\n border-radius: 50%;\n margin: 0 2px;\n animation: wave 1.5s infinite ease-in-out;\n}\n\n.dot:nth-child(2) {\n animation-delay: 0.2s;\n}\n\n.dot:nth-child(3) {\n animation-delay: 0.4s;\n}\n\n@keyframes wave {\n 0%,\n 60%,\n 100% {\n transform: translateY(0);\n }\n 30% {\n transform: translateY(-4px);\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'loading-icon',\n styleUrl: 'loading.css',\n shadow: true,\n})\nexport class LoadingIcon {\n @Prop() width: string = '15';\n @Prop() height: string = '15';\n\n render() {\n return (\n // Loading icon svg\n <div class=\"wave\">\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n );\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAa,6WACnB,MAAAC,EAAeD,E,MCMFE,EAAW,M,oCACE,K,YACC,I,CAEzB,MAAAC,GACE,OAEEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,QACTF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,QACXF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,QACXF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,Q"}
@@ -0,0 +1,2 @@
1
+ const e=new Date,t=new Date;function n(a,i,r,l){function s(e){return a(e=arguments.length===0?new Date:new Date(+e)),e}s.floor=e=>(a(e=new Date(+e)),e);s.ceil=e=>(a(e=new Date(e-1)),i(e,1),a(e),e);s.round=e=>{const t=s(e),n=s.ceil(e);return e-t<n-e?t:n};s.offset=(e,t)=>(i(e=new Date(+e),t==null?1:Math.floor(t)),e);s.range=(e,t,n)=>{const r=[];e=s.ceil(e);n=n==null?1:Math.floor(n);if(!(e<t)||!(n>0))return r;let l;do{r.push(l=new Date(+e)),i(e,n),a(e)}while(l<e&&e<t);return r};s.filter=e=>n((t=>{if(t>=t)while(a(t),!e(t))t.setTime(t-1)}),((t,n)=>{if(t>=t){if(n<0)while(++n<=0){while(i(t,-1),!e(t)){}}else while(--n>=0){while(i(t,+1),!e(t)){}}}}));if(r){s.count=(n,i)=>{e.setTime(+n),t.setTime(+i);a(e),a(t);return Math.floor(r(e,t))};s.every=e=>{e=Math.floor(e);return!isFinite(e)||!(e>0)?null:!(e>1)?s:s.filter(l?t=>l(t)%e===0:t=>s.count(0,t)%e===0)}}return s}const a=1e3;const i=a*60;const r=i*60;const l=r*24;export{a,r as b,l as c,i as d,n as t};
2
+ //# sourceMappingURL=p-5770704d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["t0","Date","t1","timeInterval","floori","offseti","count","field","interval","date","arguments","length","floor","ceil","round","d0","d1","offset","step","Math","range","start","stop","previous","push","filter","test","setTime","end","every","isFinite","d","durationSecond","durationMinute","durationHour","durationDay"],"sources":["../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js"],"sourcesContent":["const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n"],"mappings":"AAAA,MAAMA,EAAK,IAAIC,KAAMC,EAAK,IAAID,KAEvB,SAASE,EAAaC,EAAQC,EAASC,EAAOC,GAEnD,SAASC,EAASC,GAChB,OAAOL,EAAOK,EAAOC,UAAUC,SAAW,EAAI,IAAIV,KAAO,IAAIA,MAAMQ,IAAQA,CAC/E,CAEED,EAASI,MAASH,IACTL,EAAOK,EAAO,IAAIR,MAAMQ,IAAQA,GAGzCD,EAASK,KAAQJ,IACRL,EAAOK,EAAO,IAAIR,KAAKQ,EAAO,IAAKJ,EAAQI,EAAM,GAAIL,EAAOK,GAAOA,GAG5ED,EAASM,MAASL,IAChB,MAAMM,EAAKP,EAASC,GAAOO,EAAKR,EAASK,KAAKJ,GAC9C,OAAOA,EAAOM,EAAKC,EAAKP,EAAOM,EAAKC,CAAE,EAGxCR,EAASS,OAAS,CAACR,EAAMS,KAChBb,EAAQI,EAAO,IAAIR,MAAMQ,GAAOS,GAAQ,KAAO,EAAIC,KAAKP,MAAMM,IAAQT,GAG/ED,EAASY,MAAQ,CAACC,EAAOC,EAAMJ,KAC7B,MAAME,EAAQ,GACdC,EAAQb,EAASK,KAAKQ,GACtBH,EAAOA,GAAQ,KAAO,EAAIC,KAAKP,MAAMM,GACrC,KAAMG,EAAQC,MAAWJ,EAAO,GAAI,OAAOE,EAC3C,IAAIG,EACJ,GAAGH,EAAMI,KAAKD,EAAW,IAAItB,MAAMoB,IAAShB,EAAQgB,EAAOH,GAAOd,EAAOiB,SAClEE,EAAWF,GAASA,EAAQC,GACnC,OAAOF,CAAK,EAGdZ,EAASiB,OAAUC,GACVvB,GAAcM,IACnB,GAAIA,GAAQA,EAAM,MAAOL,EAAOK,IAAQiB,EAAKjB,GAAOA,EAAKkB,QAAQlB,EAAO,EAAE,IACzE,CAACA,EAAMS,KACR,GAAIT,GAAQA,EAAM,CAChB,GAAIS,EAAO,EAAG,QAASA,GAAQ,EAAG,CAChC,MAAOb,EAAQI,GAAO,IAAKiB,EAAKjB,GAAO,EACjD,MAAe,QAASS,GAAQ,EAAG,CACzB,MAAOb,EAAQI,GAAO,IAAKiB,EAAKjB,GAAO,EACjD,CACA,KAIE,GAAIH,EAAO,CACTE,EAASF,MAAQ,CAACe,EAAOO,KACvB5B,EAAG2B,SAASN,GAAQnB,EAAGyB,SAASC,GAChCxB,EAAOJ,GAAKI,EAAOF,GACnB,OAAOiB,KAAKP,MAAMN,EAAMN,EAAIE,GAAI,EAGlCM,EAASqB,MAASX,IAChBA,EAAOC,KAAKP,MAAMM,GAClB,OAAQY,SAASZ,MAAWA,EAAO,GAAK,OAChCA,EAAO,GAAKV,EACdA,EAASiB,OAAOlB,EACXwB,GAAMxB,EAAMwB,GAAKb,IAAS,EAC1Ba,GAAMvB,EAASF,MAAM,EAAGyB,GAAKb,IAAS,EAAE,CAEzD,CAEE,OAAOV,CACT,CCpEY,MAACwB,EAAiB,IAClB,MAACC,EAAiBD,EAAiB,GACnC,MAACE,EAAeD,EAAiB,GACjC,MAACE,EAAcD,EAAe,U"}
@@ -0,0 +1,2 @@
1
+ import{d as e,e as t}from"./p-98ec4a7a.js";import{a as n}from"./p-c66e27d0.js";function r(e,t,n="registerComponent"){return new CustomEvent(n,{bubbles:true,composed:true,detail:t})}function o(e,t,n="unregisterComponent"){return new CustomEvent(n,{bubbles:true,composed:true,detail:t})}function s(s){return(c,i)=>{const u=s.name;e(`[${u}] Registering component ${u} being called on ${i}`);const a=c.componentWillLoad;if(!a){t(`[${u}] componentWillLoad lifecycle method in ${u} missing. Required for RegisterComponent decorator.`);return}const l=c.connectedCallback;if(!l){t(`[${u}] connectedCallback lifecycle method in ${u} missing. Required for RegisterComponent decorator.`);return}const m=c.disconnectedCallback;if(!m){t(`[${u}] disconnectedCallback lifecycle method in ${u} missing. Required for RegisterComponent decorator.`);return}if(s.storeToProps&&s.stateToProps){const e=Array.from(s.storeToProps.values());const n=Array.from(s.stateToProps.values());const r=e.filter((e=>n.includes(e)));if(r.length>0){t(`[${u}] Overlapping prop keys detected in ${u} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${r.join(", ")}`);return}}const p=new Map;if(s.eventToProps){Object.keys(s.eventToProps).forEach((e=>{p.set(e,s.eventToProps?.[e])}))}c.connectedCallback=function(){e(`[~${u}] connectedCallback called`);const t=l?.call(this);const r=n(this);if(r.dataset.nylasId){return t}Object.defineProperty(r,"registerNylasComponent",{get(){return true},enumerable:true});Object.defineProperty(r,"stateToProps",{get(){return s.stateToProps},enumerable:true});Object.defineProperty(r,"getStoresToProp",{get(){return s.getStoresToProp},enumerable:true});Object.defineProperty(r,"storeToProps",{get(){return s.storeToProps},enumerable:true});Object.defineProperty(r,"eventToProps",{get(){return p},enumerable:true});Object.defineProperty(r,"authToProp",{get(){return s.authToProp},enumerable:true});Object.defineProperty(r,"connectorToProp",{get(){return s.connectorToProp},enumerable:true});return t};if(s.fireRegisterEvent){c.componentWillLoad=function(){const t=a?.call(this);const o=n(this);const i={element:o,...s,eventToProps:p};const l=r(c,i,s.registrationEventName);if(o.dispatchEvent(l)){e(`[${u}] Component ${u} successfully fired registration event`)}return t};c.disconnectedCallback=function(){const t=m?.call(this);const r=n(this);const i={element:r,...s,eventToProps:p};const a=o(c,i,s.unregistrationEventName);if(r.dispatchEvent(a)){e(`[${u}] Component ${u} successfully fired unregistration event`)}return t}}}}export{s as R};
2
+ //# sourceMappingURL=p-5862975b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createComponentEvent","instance","registeredComponent","eventName","CustomEvent","bubbles","composed","detail","unregisterComponentEvent","RegisterComponent","config","target","propKey","componentName","name","debug","origionalCallback","componentWillLoad","error","origionalConnectCallback","connectedCallback","origionalDisconnectCallback","disconnectedCallback","storeToProps","stateToProps","storeToPropsKeys","Array","from","values","stateToPropsKeys","intersection","filter","key","includes","length","join","eventToPropsMap","Map","eventToProps","Object","keys","forEach","set","origionalResult","call","this","host","getElement","dataset","nylasId","defineProperty","get","enumerable","getStoresToProp","authToProp","connectorToProp","fireRegisterEvent","element","event","registrationEventName","dispatchEvent","unregistrationEventName"],"sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLElement;\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean;\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const origionalCallback = target.componentWillLoad;\n if (!origionalCallback) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const origionalConnectCallback = target.connectedCallback;\n if (!origionalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const origionalDisconnectCallback = target.disconnectedCallback;\n if (!origionalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = origionalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, then we don't need to do anything\n if (host.dataset.nylasId) {\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = origionalCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = origionalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as r,h as t,F as n,H as s}from"./p-c66e27d0.js";import{R as o}from"./p-5862975b.js";import{d as l,a as i,t as a}from"./p-98ec4a7a.js";const d=":host{display:block}.folders{display:flex;flex-direction:column;align-items:self-start}.folders .folder{border:1px solid var(--nylas-color-primary-100);padding:0.5rem 0.75rem;margin-bottom:0.5rem;justify-content:left;width:100%;min-width:200px;border-radius:var(--nylas-border-radius);background-color:var(--nylas-color-primary-50)}.folders .folder:last-child{margin-bottom:0}.folders .folder.selected{background-color:var(--nylas-color-primary-100)}.folders .folder .icon{margin-right:0.5rem;stroke:var(--nylas-color-primary-900);fill:none}hr{width:100%;margin:1rem 0;border:0;border-top:1px solid var(--nylas-color-primary-100)}";const c=d;var f=undefined&&undefined.__decorate||function(e,r,t,n){var s=arguments.length,o=s<3?r:n===null?n=Object.getOwnPropertyDescriptor(r,t):n,l;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(e,r,t,n);else for(var i=e.length-1;i>=0;i--)if(l=e[i])o=(s<3?l(o):s>3?l(r,t,o):l(r,t))||o;return s>3&&o&&Object.defineProperty(r,t,o),o};var u=undefined&&undefined.__metadata||function(e,r){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,r)};const p=class{constructor(t){e(this,t);this.folderSelected=r(this,"folderSelected",7);this.folderSelectedHandler=e=>{this.folderSelected?.emit(e)};this.folders=undefined;this.selectedFolder=undefined;this.defaultFolders=undefined;this.otherFolders=undefined}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){l(`[nylas-list-folders] Component will load`)}async componentDidLoad(){l(`[nylas-list-folders] Component did load`)}watchFolders(e){l(`[nylas-list-folders] watchFolders`,{newFolders:e});const r=["inbox","drafts","sent","starred","spam","archive","trash"];this.defaultFolders=r.filter((r=>e.find((e=>e.name?.toLowerCase()===r.toLowerCase())))).map((r=>e.find((e=>e.name?.toLowerCase()===r.toLowerCase())))).filter((e=>typeof e!=="undefined")).sort(((e,t)=>r.indexOf(e?.name??"")-r.indexOf(t?.name??"")));this.otherFolders=e.filter((e=>!r.find((r=>e.name?.toLowerCase()===r.toLowerCase())))).sort(((e,r)=>(e.name??"").localeCompare(r.name??"")))}formatFolderName(e){return a(e.name?.replace("CATEGORY_","")??"Unknown")}getFolderIcon(e){switch(e.name?.toLowerCase()){case"inbox":return t("inbox-icon",null);case"drafts":return t("drafts-icon",null);case"sent":return t("sent-icon",null);case"starred":return t("star-icon",null);case"spam":return t("spam-icon",null);case"archive":return t("archive-icon",null);case"trash":return t("trash-icon",null);default:return t("folder-icon",null)}}render(){return t(s,{key:"68480d02623588939b4223197e10c567d0ee8bf7"},t("div",{key:"840ceb51b17a2681b8c1b5717a26513afbb0db02",class:"folders"},this.defaultFolders?.map((e=>t("sp-button",{onClick:()=>this.folderSelectedHandler(e),class:{folder:true,selected:i(e.name??"inbox").toLowerCase()===this.selectedFolder?.toLowerCase()}},t("div",{slot:"icon",class:"icon"},this.getFolderIcon(e)),this.formatFolderName(e))))),this.otherFolders&&t(n,null,t("hr",null),t("div",{class:"folders"},this.otherFolders?.map((e=>t("sp-button",{onClick:()=>this.folderSelectedHandler(e),class:{folder:true,selected:i(e.name??"inbox").toLowerCase()===this.selectedFolder?.toLowerCase()}},t("div",{slot:"icon",class:"icon"},this.getFolderIcon(e)),this.formatFolderName(e)))))))}static get watchers(){return{folders:["watchFolders"]}}};f([o({name:"nylas-pagination",stateToProps:new Map([["mailbox.folders","folders"],["mailbox.selectedFolder","selectedFolder"]]),eventToProps:{folderSelected:async(e,r)=>{l(`[nylas-list-folders] folderSelected event`,{_event:e});await r.threads.getThreads({page_token:undefined,in:i(e.detail.id??"inbox")})}},fireRegisterEvent:true}),u("design:type",Function),u("design:paramtypes",[]),u("design:returntype",void 0)],p.prototype,"render",null);p.style=c;export{p as nylas_list_folders};
2
+ //# sourceMappingURL=p-647cf7be.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nylasListFoldersCss","NylasListFoldersStyle0","NylasListFolders","constructor","hostRef","this","folderSelectedHandler","folder","folderSelected","emit","connectedCallback","disconnectedCallback","componentWillLoad","debug","componentDidLoad","watchFolders","newFolders","defaultFolders","filter","folderName","find","name","toLowerCase","map","sort","a","b","indexOf","otherFolders","localeCompare","formatFolderName","toTitleCase","replace","getFolderIcon","h","render","Host","key","class","onClick","selected","selectedFolder","slot","Fragment","__decorate","RegisterComponent","stateToProps","Map","eventToProps","async","_event","nylasConnector","threads","getThreads","page_token","undefined","in","detail","id","fireRegisterEvent"],"sources":["src/components/mailbox/nylas-list-folders/nylas-list-folders.scss?tag=nylas-list-folders&encapsulation=shadow","src/components/mailbox/nylas-list-folders/nylas-list-folders.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.folders {\n display: flex;\n flex-direction: column;\n align-items: self-start;\n\n .folder {\n border: 1px solid var(--nylas-color-primary-100);\n padding: 0.5rem 0.75rem;\n margin-bottom: 0.5rem;\n justify-content: left;\n width: 100%;\n\n min-width: 200px;\n border-radius: var(--nylas-border-radius);\n background-color: var(--nylas-color-primary-50);\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.selected {\n background-color: var(--nylas-color-primary-100);\n }\n\n .icon {\n margin-right: 0.5rem;\n stroke: var(--nylas-color-primary-900);\n fill: none;\n }\n }\n}\n\nhr {\n width: 100%;\n margin: 1rem 0;\n border: 0;\n border-top: 1px solid var(--nylas-color-primary-100);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { debug, formatFolderName, toTitleCase } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Fragment, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../..';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\nimport { Folder } from '@nylas/core';\n\n@Component({\n tag: 'nylas-list-folders',\n styleUrl: 'nylas-list-folders.scss',\n shadow: true,\n})\nexport class NylasListFolders {\n @Prop() readonly folders?: Folder[];\n @Prop() readonly selectedFolder?: string;\n\n @Event() readonly folderSelected!: EventEmitter<Folder>;\n\n @State() defaultFolders?: Folder[];\n @State() otherFolders?: Folder[];\n\n constructor() {}\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-list-folders] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-list-folders] Component did load`);\n }\n\n @Watch('folders')\n watchFolders(newFolders: Folder[]) {\n debug(`[nylas-list-folders] watchFolders`, { newFolders });\n // Expected default folders\n const defaultFolders = ['inbox', 'drafts', 'sent', 'starred', 'spam', 'archive', 'trash'];\n\n // Only include default folders that are in the list of folders, and sort them by the default order\n this.defaultFolders = defaultFolders\n .filter(folderName => newFolders.find(folder => folder.name?.toLowerCase() === folderName.toLowerCase()))\n .map(folderName => newFolders.find(folder => folder.name?.toLowerCase() === folderName.toLowerCase()))\n .filter(folder => typeof folder !== 'undefined')\n .sort((a, b) => defaultFolders.indexOf(a?.name ?? '') - defaultFolders.indexOf(b?.name ?? '')) as Folder[];\n\n // Only include folders that are not default folders, and sort them by name\n this.otherFolders = newFolders\n .filter(folder => !defaultFolders.find(folderName => folder.name?.toLowerCase() === folderName.toLowerCase()))\n .sort((a, b) => (a.name ?? '').localeCompare(b.name ?? '')) as Folder[];\n }\n\n private folderSelectedHandler = (folder: Folder) => {\n this.folderSelected?.emit(folder);\n };\n\n private formatFolderName(folder: Folder) {\n return toTitleCase(folder.name?.replace('CATEGORY_', '') ?? 'Unknown');\n }\n\n private getFolderIcon(folder: Folder) {\n switch (folder.name?.toLowerCase()) {\n case 'inbox':\n return <inbox-icon></inbox-icon>;\n case 'drafts':\n return <drafts-icon></drafts-icon>;\n case 'sent':\n return <sent-icon></sent-icon>;\n case 'starred':\n return <star-icon></star-icon>;\n case 'spam':\n return <spam-icon></spam-icon>;\n case 'archive':\n return <archive-icon></archive-icon>;\n case 'trash':\n return <trash-icon></trash-icon>;\n default:\n return <folder-icon></folder-icon>;\n }\n }\n\n @RegisterComponent<NylasListFolders, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-pagination',\n stateToProps: new Map([\n ['mailbox.folders', 'folders'],\n ['mailbox.selectedFolder', 'selectedFolder'],\n ]),\n eventToProps: {\n folderSelected: async (_event, nylasConnector) => {\n debug(`[nylas-list-folders] folderSelected event`, { _event });\n await nylasConnector.threads.getThreads({\n page_token: undefined,\n in: formatFolderName(_event.detail.id ?? 'inbox'),\n });\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class=\"folders\">\n {this.defaultFolders?.map(folder => (\n <sp-button\n onClick={() => this.folderSelectedHandler(folder)}\n class={{\n folder: true,\n selected: formatFolderName(folder.name ?? 'inbox').toLowerCase() === this.selectedFolder?.toLowerCase(),\n }}\n >\n <div slot=\"icon\" class=\"icon\">\n {this.getFolderIcon(folder)}\n </div>\n {this.formatFolderName(folder)}\n </sp-button>\n ))}\n </div>\n {this.otherFolders && (\n <Fragment>\n <hr />\n <div class=\"folders\">\n {this.otherFolders?.map(folder => (\n <sp-button\n onClick={() => this.folderSelectedHandler(folder)}\n class={{\n folder: true,\n selected: formatFolderName(folder.name ?? 'inbox').toLowerCase() === this.selectedFolder?.toLowerCase(),\n }}\n >\n <div slot=\"icon\" class=\"icon\">\n {this.getFolderIcon(folder)}\n </div>\n {this.formatFolderName(folder)}\n </sp-button>\n ))}\n </div>\n </Fragment>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"sJAAA,MAAMA,EAAsB,ynBAC5B,MAAAC,EAAeD,E,ugBCWFE,EAAgB,MAS3B,WAAAC,CAAAC,G,yDAiCQC,KAAAC,sBAAyBC,IAC/BF,KAAKG,gBAAgBC,KAAKF,EAAO,E,+GAhCnC,iBAAAG,GAAiB,CAEjB,oBAAAC,GAAoB,CAEpB,uBAAMC,GACJC,EAAM,2C,CAGR,sBAAMC,GACJD,EAAM,0C,CAIR,YAAAE,CAAaC,GACXH,EAAM,oCAAqC,CAAEG,eAE7C,MAAMC,EAAiB,CAAC,QAAS,SAAU,OAAQ,UAAW,OAAQ,UAAW,SAGjFZ,KAAKY,eAAiBA,EACnBC,QAAOC,GAAcH,EAAWI,MAAKb,GAAUA,EAAOc,MAAMC,gBAAkBH,EAAWG,kBACzFC,KAAIJ,GAAcH,EAAWI,MAAKb,GAAUA,EAAOc,MAAMC,gBAAkBH,EAAWG,kBACtFJ,QAAOX,UAAiBA,IAAW,cACnCiB,MAAK,CAACC,EAAGC,IAAMT,EAAeU,QAAQF,GAAGJ,MAAQ,IAAMJ,EAAeU,QAAQD,GAAGL,MAAQ,MAG5FhB,KAAKuB,aAAeZ,EACjBE,QAAOX,IAAWU,EAAeG,MAAKD,GAAcZ,EAAOc,MAAMC,gBAAkBH,EAAWG,kBAC9FE,MAAK,CAACC,EAAGC,KAAOD,EAAEJ,MAAQ,IAAIQ,cAAcH,EAAEL,MAAQ,K,CAOnD,gBAAAS,CAAiBvB,GACvB,OAAOwB,EAAYxB,EAAOc,MAAMW,QAAQ,YAAa,KAAO,U,CAGtD,aAAAC,CAAc1B,GACpB,OAAQA,EAAOc,MAAMC,eACnB,IAAK,QACH,OAAOY,EAAA,mBACT,IAAK,SACH,OAAOA,EAAA,oBACT,IAAK,OACH,OAAOA,EAAA,kBACT,IAAK,UACH,OAAOA,EAAA,kBACT,IAAK,OACH,OAAOA,EAAA,kBACT,IAAK,UACH,OAAOA,EAAA,qBACT,IAAK,QACH,OAAOA,EAAA,mBACT,QACE,OAAOA,EAAA,oB,CAqBb,MAAAC,GACE,OACED,EAACE,EAAI,CAAAC,IAAA,4CACHH,EAAA,OAAAG,IAAA,2CAAKC,MAAM,WACRjC,KAAKY,gBAAgBM,KAAIhB,GACxB2B,EAAA,aACEK,QAAS,IAAMlC,KAAKC,sBAAsBC,GAC1C+B,MAAO,CACL/B,OAAQ,KACRiC,SAAUV,EAAiBvB,EAAOc,MAAQ,SAASC,gBAAkBjB,KAAKoC,gBAAgBnB,gBAG5FY,EAAA,OAAKQ,KAAK,OAAOJ,MAAM,QACpBjC,KAAK4B,cAAc1B,IAErBF,KAAKyB,iBAAiBvB,OAI5BF,KAAKuB,cACJM,EAACS,EAAQ,KACPT,EAAA,WACAA,EAAA,OAAKI,MAAM,WACRjC,KAAKuB,cAAcL,KAAIhB,GACtB2B,EAAA,aACEK,QAAS,IAAMlC,KAAKC,sBAAsBC,GAC1C+B,MAAO,CACL/B,OAAQ,KACRiC,SAAUV,EAAiBvB,EAAOc,MAAQ,SAASC,gBAAkBjB,KAAKoC,gBAAgBnB,gBAG5FY,EAAA,OAAKQ,KAAK,OAAOJ,MAAM,QACpBjC,KAAK4B,cAAc1B,IAErBF,KAAKyB,iBAAiBvB,Q,0DAlCvCqC,EAAA,CAjBCC,EAAuG,CACtGxB,KAAM,mBACNyB,aAAc,IAAIC,IAAI,CACpB,CAAC,kBAAmB,WACpB,CAAC,yBAA0B,oBAE7BC,aAAc,CACZxC,eAAgByC,MAAOC,EAAQC,KAC7BtC,EAAM,4CAA6C,CAAEqC,iBAC/CC,EAAeC,QAAQC,WAAW,CACtCC,WAAYC,UACZC,GAAI1B,EAAiBoB,EAAOO,OAAOC,IAAM,UACzC,GAGNC,kBAAmB,O"}
@@ -0,0 +1,2 @@
1
+ import{r as C,h as c}from"./p-c66e27d0.js";const e=".sc-calendar-icon-h{display:flex}";const s=e;const t=class{constructor(c){C(this,c);this.width="15";this.height="15"}render(){return c("svg",{key:"2fcffc36b41cea0eda612166f11b59ecccbf2282",width:this.width,height:this.height,fill:"none",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},c("path",{key:"bacfd0edd50b866fcfa865c51d72f1a63fe36dd8",fill:"currentColor",d:"M14.3073 0.692383C15.9641 0.692383 17.3073 2.03553 17.3073 3.69238V14.3078C17.3073 15.9646 15.9641 17.3078 14.3073 17.3078H3.6919C2.03504 17.3078 0.691895 15.9646 0.691895 14.3078V3.69238C0.691895 2.03553 2.03504 0.692383 3.6919 0.692383H14.3073ZM15.9227 5.76931H2.07651V14.3078C2.07651 15.1999 2.79974 15.9232 3.6919 15.9232H14.3073C15.1994 15.9232 15.9227 15.1999 15.9227 14.3078V5.76931ZM5.07651 11.3078C5.71376 11.3078 6.23036 11.8244 6.23036 12.4616C6.23036 13.0989 5.71376 13.6155 5.07651 13.6155C4.43926 13.6155 3.92266 13.0989 3.92266 12.4616C3.92266 11.8244 4.43926 11.3078 5.07651 11.3078ZM8.99959 11.3078C9.63684 11.3078 10.1534 11.8244 10.1534 12.4616C10.1534 13.0989 9.63684 13.6155 8.99959 13.6155C8.36234 13.6155 7.84574 13.0989 7.84574 12.4616C7.84574 11.8244 8.36234 11.3078 8.99959 11.3078ZM5.07651 7.61546C5.71376 7.61546 6.23036 8.13206 6.23036 8.76931C6.23036 9.40656 5.71376 9.92315 5.07651 9.92315C4.43926 9.92315 3.92266 9.40656 3.92266 8.76931C3.92266 8.13206 4.43926 7.61546 5.07651 7.61546ZM8.99959 7.61546C9.63684 7.61546 10.1534 8.13206 10.1534 8.76931C10.1534 9.40656 9.63684 9.92315 8.99959 9.92315C8.36234 9.92315 7.84574 9.40656 7.84574 8.76931C7.84574 8.13206 8.36234 7.61546 8.99959 7.61546ZM12.9227 7.61546C13.5599 7.61546 14.0765 8.13206 14.0765 8.76931C14.0765 9.40656 13.5599 9.92315 12.9227 9.92315C12.2854 9.92315 11.7688 9.40656 11.7688 8.76931C11.7688 8.13206 12.2854 7.61546 12.9227 7.61546ZM14.3073 2.077H3.6919C2.79974 2.077 2.07651 2.80023 2.07651 3.69238V4.38469H15.9227V3.69238C15.9227 2.80023 15.1994 2.077 14.3073 2.077Z"}))}};t.style=s;export{t as calendar_icon};
2
+ //# sourceMappingURL=p-663edeb8.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["iconCss","CalendarIconStyle0","CalendarIcon","render","h","key","width","this","height","fill","viewBox","xmlns","d"],"sources":["src/common/icons/icon.css?tag=calendar-icon&encapsulation=scoped","src/common/icons/calendar.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'calendar-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class CalendarIcon {\n @Prop() width: string = '15';\n @Prop() height: string = '15';\n\n render() {\n return (\n <svg width={this.width} height={this.height} fill=\"none\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill=\"currentColor\"\n d=\"M14.3073 0.692383C15.9641 0.692383 17.3073 2.03553 17.3073 3.69238V14.3078C17.3073 15.9646 15.9641 17.3078 14.3073 17.3078H3.6919C2.03504 17.3078 0.691895 15.9646 0.691895 14.3078V3.69238C0.691895 2.03553 2.03504 0.692383 3.6919 0.692383H14.3073ZM15.9227 5.76931H2.07651V14.3078C2.07651 15.1999 2.79974 15.9232 3.6919 15.9232H14.3073C15.1994 15.9232 15.9227 15.1999 15.9227 14.3078V5.76931ZM5.07651 11.3078C5.71376 11.3078 6.23036 11.8244 6.23036 12.4616C6.23036 13.0989 5.71376 13.6155 5.07651 13.6155C4.43926 13.6155 3.92266 13.0989 3.92266 12.4616C3.92266 11.8244 4.43926 11.3078 5.07651 11.3078ZM8.99959 11.3078C9.63684 11.3078 10.1534 11.8244 10.1534 12.4616C10.1534 13.0989 9.63684 13.6155 8.99959 13.6155C8.36234 13.6155 7.84574 13.0989 7.84574 12.4616C7.84574 11.8244 8.36234 11.3078 8.99959 11.3078ZM5.07651 7.61546C5.71376 7.61546 6.23036 8.13206 6.23036 8.76931C6.23036 9.40656 5.71376 9.92315 5.07651 9.92315C4.43926 9.92315 3.92266 9.40656 3.92266 8.76931C3.92266 8.13206 4.43926 7.61546 5.07651 7.61546ZM8.99959 7.61546C9.63684 7.61546 10.1534 8.13206 10.1534 8.76931C10.1534 9.40656 9.63684 9.92315 8.99959 9.92315C8.36234 9.92315 7.84574 9.40656 7.84574 8.76931C7.84574 8.13206 8.36234 7.61546 8.99959 7.61546ZM12.9227 7.61546C13.5599 7.61546 14.0765 8.13206 14.0765 8.76931C14.0765 9.40656 13.5599 9.92315 12.9227 9.92315C12.2854 9.92315 11.7688 9.40656 11.7688 8.76931C11.7688 8.13206 12.2854 7.61546 12.9227 7.61546ZM14.3073 2.077H3.6919C2.79974 2.077 2.07651 2.80023 2.07651 3.69238V4.38469H15.9227V3.69238C15.9227 2.80023 15.1994 2.077 14.3073 2.077Z\"\n />\n </svg>\n );\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAU,oCAChB,MAAAC,EAAeD,E,MCMFE,EAAY,M,oCACC,K,YACC,I,CAEzB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOC,KAAKD,MAAOE,OAAQD,KAAKC,OAAQC,KAAK,OAAOC,QAAQ,YAAYC,MAAM,8BACjFP,EAAA,QAAAC,IAAA,2CACEI,KAAK,eACLG,EAAE,wiD"}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as t,h as n,H as s}from"./p-c66e27d0.js";import{R as a}from"./p-5862975b.js";import{d as c}from"./p-98ec4a7a.js";const r=":host{display:block}sp-search{width:100%;border:0}";const o=r;var i=undefined&&undefined.__decorate||function(e,t,n,s){var a=arguments.length,c=a<3?t:s===null?s=Object.getOwnPropertyDescriptor(t,n):s,r;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")c=Reflect.decorate(e,t,n,s);else for(var o=e.length-1;o>=0;o--)if(r=e[o])c=(a<3?r(c):a>3?r(t,n,c):r(t,n))||c;return a>3&&c&&Object.defineProperty(t,n,c),c};var d=undefined&&undefined.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};const f=class{constructor(n){e(this,n);this.search=t(this,"search",7);this.onSearch=async e=>{e.preventDefault();e.stopPropagation();const t=e.target;const n=t.value;if(n===this.internalQuery){return}this.internalQuery=n;this.search.emit(this.internalQuery)};this.query="";this.internalQuery=""}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){c(`[nylas-threads-search] Component will load`)}async componentDidLoad(){c(`[nylas-threads-search] Component did load`)}onQueryChange(){this.internalQuery=this.query}render(){return n(s,{key:"8cec946ccaeb5fe2bf8f1282eaf5bb1e471fdc1d"},n("sp-theme",{key:"5795406abf802029c3722835aced9fd8bc562ef1",scale:"medium",color:"dark"},n("sp-search",{key:"e8c140f3a65a05106156af09a7bdf1c35f709ed1",quiet:true,onSubmit:this.onSearch,onBlur:this.onSearch,value:this.internalQuery})))}static get watchers(){return{query:["onQueryChange"]}}};i([a({name:"nylas-pagination",stateToProps:new Map([["mailbox.searchQuery","query"]]),eventToProps:{search:async(e,t)=>{await t.threads.getThreads({search_query_native:e.detail||undefined,page_token:undefined})}},fireRegisterEvent:true}),d("design:type",Function),d("design:paramtypes",[]),d("design:returntype",void 0)],f.prototype,"render",null);f.style=o;export{f as nylas_threads_search};
2
+ //# sourceMappingURL=p-67c9158e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nylasThreadsSearchCss","NylasThreadsSearchStyle0","NylasThreadsSearch","this","onSearch","async","event","preventDefault","stopPropagation","target","value","internalQuery","search","emit","connectedCallback","disconnectedCallback","componentWillLoad","debug","componentDidLoad","onQueryChange","query","render","h","Host","key","scale","color","quiet","onSubmit","onBlur","__decorate","RegisterComponent","name","stateToProps","Map","eventToProps","_event","nylasConnector","threads","getThreads","search_query_native","detail","undefined","page_token","fireRegisterEvent"],"sources":["src/components/mailbox/nylas-threads-search/nylas-threads-search.scss?tag=nylas-threads-search&encapsulation=shadow","src/components/mailbox/nylas-threads-search/nylas-threads-search.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\nsp-search {\n width: 100%;\n border: 0;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { debug } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../..';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\n\n@Component({\n tag: 'nylas-threads-search',\n styleUrl: 'nylas-threads-search.scss',\n shadow: true,\n})\nexport class NylasThreadsSearch {\n /**\n * The query to search for threads\n */\n @Prop() readonly query: string = '';\n\n /**\n * Event emitted when the query changes\n */\n @Event() readonly search!: EventEmitter<string>;\n\n /**\n * A copy of the query that is used internally, we can mutate this.\n */\n @State() internalQuery: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-threads-search] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-threads-search] Component did load`);\n }\n\n @Watch('query')\n onQueryChange() {\n this.internalQuery = this.query;\n }\n\n /**\n * On search event\n * @param event On blur event\n * @returns void\n */\n private onSearch = async (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n const target = event.target as HTMLInputElement;\n const value = target.value;\n\n if (value === this.internalQuery) {\n return;\n }\n\n this.internalQuery = value;\n this.search.emit(this.internalQuery);\n };\n\n @RegisterComponent<NylasThreadsSearch, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-pagination',\n stateToProps: new Map([['mailbox.searchQuery', 'query']]),\n eventToProps: {\n search: async (_event: CustomEvent<string>, nylasConnector: NylasMailboxConnector) => {\n await nylasConnector.threads.getThreads({\n search_query_native: _event.detail || undefined,\n page_token: undefined,\n });\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <sp-search quiet onSubmit={this.onSearch} onBlur={this.onSearch} value={this.internalQuery}></sp-search>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"mappings":"iIAAA,MAAMA,EAAwB,qDAC9B,MAAAC,EAAeD,E,ugBCUFE,EAAkB,M,wDAsCrBC,KAAAC,SAAWC,MAAOC,IACxBA,EAAMC,iBACND,EAAME,kBAEN,MAAMC,EAASH,EAAMG,OACrB,MAAMC,EAAQD,EAAOC,MAErB,GAAIA,IAAUP,KAAKQ,cAAe,CAChC,M,CAGFR,KAAKQ,cAAgBD,EACrBP,KAAKS,OAAOC,KAAKV,KAAKQ,cAAc,E,WA9CL,G,mBAUA,E,CAEjC,iBAAAG,GAAiB,CAEjB,oBAAAC,GAAoB,CAEpB,uBAAMC,GACJC,EAAM,6C,CAGR,sBAAMC,GACJD,EAAM,4C,CAIR,aAAAE,GACEhB,KAAKQ,cAAgBR,KAAKiB,K,CAoC5B,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,YAAAE,IAAA,2CAAUC,MAAM,SAASC,MAAM,QAC7BJ,EAAA,aAAAE,IAAA,2CAAWG,MAAK,KAACC,SAAUzB,KAAKC,SAAUyB,OAAQ1B,KAAKC,SAAUM,MAAOP,KAAKQ,iB,yDAJrFmB,EAAA,CAbCC,EAAyG,CACxGC,KAAM,mBACNC,aAAc,IAAIC,IAAI,CAAC,CAAC,sBAAuB,WAC/CC,aAAc,CACZvB,OAAQP,MAAO+B,EAA6BC,WACpCA,EAAeC,QAAQC,WAAW,CACtCC,oBAAqBJ,EAAOK,QAAUC,UACtCC,WAAYD,WACZ,GAGNE,kBAAmB,O"}
@@ -0,0 +1,2 @@
1
+ import{d as t}from"./p-98ec4a7a.js";import{X as e,Z as s}from"./p-a95208c7.js";import{c as r}from"./p-eeb0a591.js";class a{constructor(t,e){this.nylasAuth=t;this.nylasAuthStore=e}async validateSession(){const e=await this.isAccessTokenValid();if(!e){this.logout()}else{let e=await this.nylasAuth.getTokenInfo();if(e){const s=5*60*1e3;const r=Math.floor(Date.now()/1e3);if(e.expires_in&&e.expires_in-r<s){t("[NylasAuthConnectorMixin] Refreshing access token");e=await this.nylasAuth.refreshAccessToken();if(!e){t("[NylasAuthConnectorMixin] Token is expired and could not be refreshed. Logging out.");this.logout();return}}this.nylasAuthStore.state.tokenInfo=e}}this.nylasAuthStore.state.isAuthenticated=e}async isAuthenticated(){return this.nylasAuth.isAuthenticated()}async getTokenInfo(){return this.nylasAuth.getTokenInfo()}async isAccessTokenValid(){return this.nylasAuth.isAccessTokenValid()}async logout(){await this.nylasAuth.logout()}async getHostedAuthRedirectURL(t,e,s){return this.nylasAuth.getHostedAuthRedirectURL(t,e,s)}async manageHostedAuthCodeExchange(t){const e=new URL(t);const s=e.searchParams.get("code");if(s){const t=await this.nylasAuth.exchangeAuthCodeForTokenInfo(s);if(t){this.nylasAuthStore.state.tokenInfo=t;this.nylasAuthStore.state.isAuthenticated=true;return t}}return null}}class n{constructor(t,e,s){this.nylasAuth=t;this.nylasAuthStore=e;this.nylasMailboxStore=s}async getMessages(){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing message:read-only scope")}this.nylasMailboxStore.state.state="loading";const t=this.nylasMailboxStore.state.messgeQueryParams;const r=new URLSearchParams;for(const e in t){const s=t[e]?.toString();if(s){r.append(e,s)}}const a=`/v3/grants/me/messages?${r.toString()}`;const n=await this.nylasAuth.nylasAPIRequest(a);if(e(n)){throw new s(n.error)}const i=n.data;this.nylasMailboxStore.state.messages=i;this.nylasMailboxStore.state.state="ready";return i}async getThreadMessages(t){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing message:read-only scope")}const r=await this.nylasAuth.nylasAPIRequest(`/v3/grants/me/messages?thread_id=${t}&fields=include_headers`);if(e(r)){throw new s(r.error)}const a=r.data;this.nylasMailboxStore.state.messages=a;return a}downloadMessageAttachments(t){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing message:read-only scope")}const e=[];const s=t.attachments||[];for(const r of s){const s=this.nylasAuth.nylasDownloadFileRequest(`/v3/grants/me/attachments/${r.id}?message_id=${t.id}`);e.push(s)}return e}async summarizeText(t){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing message:read-only scope")}const r=await this.nylasAuth.nylasAPIRequest(`/v3/grants/me/mailbox/summarize`,"POST",{message:{body:t}},true,this.nylasAuth.config.elementsApiUri);if(e(r)){throw new s(r.error)}return r.data.summary}async textToSpeech(t,e){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing message:read-only scope")}return this.nylasAuth.nylasAPIRequest(`/v3/grants/me/mailbox/tts`,"POST",{text:t},false,this.nylasAuth.config.elementsApiUri,{...e?{signal:e?.signal}:{}})}}class i{constructor(t,e,s,r){this.nylasAuth=t;this.nylasAuthStore=e;this.nylasMailboxStore=s;this.router=r}async getThreads(t,r="overwrite",a=true){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing thread:read-only scope")}if(a){this.nylasMailboxStore.state.state="loading"}const n=t||this.nylasMailboxStore.state.threadsQueryParams;const i=new URLSearchParams;for(const t in n){const e=n[t]?.toString();if(typeof e!=="undefined"&&e!==null){i.append(t,e)}}if(n.search_query_native){this.router.navigate(`/?query=${n.search_query_native}`,true)}else if(this.nylasMailboxStore.state.threadsQueryParams.search_query_native&&!n.search_query_native){this.router.navigate("/",true)}if(!n.page_token){this.nylasMailboxStore.state.previousThreadPageTokens=[]}this.nylasMailboxStore.state.threadsQueryParams=n;const o=`/v3/grants/me/threads?${i.toString()}`;const h=await this.nylasAuth.nylasAPIRequest(o);if(e(h)){throw new s(h.error)}const c=h.data;switch(r){case"prepend":this.nylasMailboxStore.state.threads=[...c,...this.nylasMailboxStore.state.threads];break;case"append":this.nylasMailboxStore.state.threads=[...this.nylasMailboxStore.state.threads,...c];break;case"overwrite":default:this.nylasMailboxStore.state.threads=c;break}if(h.next_cursor){this.nylasMailboxStore.state.nextThreadPageToken=h.next_cursor}else{this.nylasMailboxStore.state.nextThreadPageToken=null}if(a){this.nylasMailboxStore.state.state="ready"}return c}async getThread(t){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing thread:read-only scope")}const r=this.nylasMailboxStore.state.threads.find((e=>e.id===t));if(r){return r}this.nylasMailboxStore.state.state="loading";const a=`/v3/grants/me/threads/${t}`;const n=await this.nylasAuth.nylasAPIRequest(a);if(e(n)){throw new s(n.error)}const i=n.data;this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map((t=>{if(t.id===i.id){return i}return t}));this.nylasMailboxStore.state.state="ready";return i}async nextThreadPage(t="overwrite",e=true){if(!this.nylasMailboxStore.state.nextThreadPageToken){throw new Error("No next page token")}this.nylasMailboxStore.state.previousThreadPageTokens=Array.from(new Set([...this.nylasMailboxStore.state.previousThreadPageTokens,this.nylasMailboxStore.state.threadsQueryParams.page_token??null]));const s=this.nylasMailboxStore.state.nextThreadPageToken;return this.getThreads({...this.nylasMailboxStore.state.threadsQueryParams,page_token:s},t,e)}async previousThreadPage(t="overwrite",e=true){if(!this.nylasMailboxStore.state.previousThreadPageTokens.length){throw new Error("No previous page token")}const s=[...this.nylasMailboxStore.state.previousThreadPageTokens];const r=s.pop();this.nylasMailboxStore.state.previousThreadPageTokens=s;return this.getThreads({...this.nylasMailboxStore.state.threadsQueryParams,page_token:r??undefined},t,e)}updateThreadQueryParams(t){this.nylasMailboxStore.state.threadsQueryParams={...this.nylasMailboxStore.state.threadsQueryParams,...t}}back(){this.router.navigate("/",true);this.nylasMailboxStore.state.selectedThread=null}unSelectThread(){this.nylasMailboxStore.state.selectedThread=null}async selectThread(e){this.router.navigate(`/thread/${e.id}`,true);this.nylasMailboxStore.state.selectedThread=e;if(e.unread){this.markThreadAsRead(e).catch((e=>{t("Error marking thread as read",e)}))}}async markThreadAsRead(t){return this.updateThread(t,{unread:false})}async updateThread(t,r){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email","modify")){throw new Error("Missing thread:modify scope")}const a=`/v3/grants/me/threads/${t.id}`;const n=await this.nylasAuth.nylasAPIRequest(a,"PUT",r);if(e(n)){throw new s(n.error)}const i=n.data;this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map((t=>{if(t.id===i.id){return i}return t}));this.nylasMailboxStore.state.selectedThread=i;return i}}class o{constructor(t,e,s){this.nylasAuth=t;this.nylasAuthStore=e;this.nylasMailboxStore=s}async getFolders(){if(!this.nylasAuthStore.state.isAuthenticated){throw new Error("Not authenticated")}if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"])){throw new Error("Missing thread:read-only scope")}this.nylasMailboxStore.state.state="loading";const t=`/v3/grants/me/folders`;const r=await this.nylasAuth.nylasAPIRequest(t);if(e(r)){throw new s(r.error)}const a=r.data;this.nylasMailboxStore.state.folders=a;this.nylasMailboxStore.state.state="ready";return a}async selectFolder(t){this.nylasMailboxStore.state.threadsQueryParams={in:t.id,...this.nylasMailboxStore.state.threadsQueryParams||{}}}}class h extends Event{constructor(t,e){super(t,e);this.oldURL=e.oldURL;this.newURL=e.newURL}}class c{constructor(){this.routeChangeListeners=[];t("HashRouter constructor")}destroy(){t("HashRouter destroy");window.removeEventListener("hashchange",this.onRouteChange.bind(this))}init(){t("HashRouter init");window.addEventListener("hashchange",this.onRouteChange.bind(this));if(typeof HashChangeEvent!=="undefined"){const t=new HashChangeEvent("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}else{const t=new h("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}}addRouteChangeListener(e,s){t("HashRouter addRouteChangeListener");this.routeChangeListeners.push([e,s])}navigate(e,s){t("HashRouter navigate");if(s){return window.history.pushState(null,"",`#${e}`)}window.location.hash=e}setRoute(e){t("HashRouter setRoute");window.location.hash=e}matchRoute(e,s){const r=e.split("/");const a=s.split("/");t(`HashRouter matchRoute route=${e} path=${s}`,{routeParts:r,pathParts:a});if(r[1]===""&&a[0]===""){return true}if(r.length!==a.length){return false}for(let t=0;t<r.length;t++){const e=r[t];const s=a[t];if(e.startsWith(":")){continue}if(e!==s){return false}}return true}getRouteParams(e){t("HashRouter getRouteParams");const s={};const r=e.split("/");const a=window.location.hash.split("/");r.forEach(((t,e)=>{if(t.startsWith(":")){const r=t.substring(1);s[r]=a[e]}}));return s}getRouteWithParams(e,s){t("HashRouter getRouteWithParams");let r=e;Object.keys(s).forEach((t=>{r=r.replace(`:${t}`,s[t])}));return r}getRoute(){t("HashRouter getRoute");return window.location.hash}onRouteChange(e){this.routeChangeListeners.forEach((async([s,r])=>{const a=e.newURL.indexOf("#")===-1?"":e.newURL.substring(e.newURL.indexOf("#")+1);t(`HashRouter onRouteChange route=${s} path=${a}`,{event:e});if(!this.matchRoute(s,a)){t(`HashRouter onRouteChange route=${s} path=${a} does not match`);return}const n=this.getRouteParams(s);await r(s,a,n)}))}getBasePath(){t("HashRouter getBasePath");return""}}function d(t={}){const e={isAuthenticated:false,tokenInfo:null,state:"ready",...t};const s=r(e);s.reset=()=>{for(const t in e){const r=e[t];s.set(t,r)}};return s}function u(t={}){const e={state:"ready",messages:[],threads:[],folders:[],selectedThread:null,nextThreadPageToken:null,previousThreadPageTokens:[],searchQuery:"",hasNextThreadPage:false,hasPreviousThreadPage:false,selectedFolder:"inbox",threadsQueryParams:{in:"inbox"},messgeQueryParams:{fields:"include_headers"},...t};const s=r({...e});s.onChange("nextThreadPageToken",(t=>{s.set("hasNextThreadPage",t!==null)}));s.onChange("previousThreadPageTokens",(t=>{s.set("hasPreviousThreadPage",t.length>0)}));s.onChange("threadsQueryParams",(t=>{s.set("selectedFolder",t.in||"inbox");s.set("searchQuery",t.search_query_native||"")}));s.reset=()=>{for(const t in e){const r=e[t];s.set(t,r)}};return s}export{d as C,c as H,a as N,i as a,n as b,o as c,u as d};
2
+ //# sourceMappingURL=p-6ba7a037.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NylasAuthConnector","constructor","nylasAuth","nylasAuthStore","this","validateSession","isAuthenticated","isAccessTokenValid","logout","tokenInfo","getTokenInfo","expireTimeCheck","currentTimeInSeconds","Math","floor","Date","now","expires_in","debug","refreshAccessToken","state","getHostedAuthRedirectURL","scopes","email","provider","manageHostedAuthCodeExchange","currentUrl","url","URL","code","searchParams","get","exchangeAuthCodeForTokenInfo","NylasMessagesConnector","nylasMailboxStore","getMessages","Error","hasScopeByType","queryParams","messgeQueryParams","params","URLSearchParams","key","value","toString","append","path","response","nylasAPIRequest","isNylasErrorResponse","NylasAPIError","error","messages","data","getThreadMessages","threadId","downloadMessageAttachments","message","blobPromises","attachments","attachment","blob","nylasDownloadFileRequest","id","push","summarizeText","text","body","config","elementsApiUri","summary","textToSpeech","abortController","signal","NylasThreadsConnector","router","getThreads","overrideQueryParams","updateMethod","updateState","threadsQueryParams","search_query_native","navigate","page_token","previousThreadPageTokens","threads","next_cursor","nextThreadPageToken","getThread","storeThread","find","t","thread","map","nextThreadPage","updateLoadingState","Array","from","Set","nextPageToken","previousThreadPage","aupdateMethod","length","pageToken","pop","undefined","updateThreadQueryParams","back","selectedThread","unSelectThread","selectThread","unread","markThreadAsRead","catch","updateThread","updatedThread","NylasFoldersConnector","getFolders","folders","selectFolder","folder","in","PolyFillHashChangeEvent","Event","type","eventInitDict","super","oldURL","newURL","HashRouter","routeChangeListeners","destroy","window","removeEventListener","onRouteChange","bind","init","addEventListener","HashChangeEvent","event","location","href","addRouteChangeListener","route","listener","shallow","history","pushState","hash","setRoute","matchRoute","routeParts","split","pathParts","i","routePart","pathPart","startsWith","getRouteParams","routeParams","routeConfigParts","forEach","index","substring","getRouteWithParams","routeWithParams","Object","keys","replace","getRoute","async","indexOf","getBasePath","CreateNylasAuthStore","defaultState","defaultNylasStoreState","store","createStore","reset","set","CreateNylasMailboxStore","searchQuery","hasNextThreadPage","hasPreviousThreadPage","selectedFolder","fields","onChange"],"sources":["src/connector/shared/api/auth.ts","src/connector/shared/api/messages.ts","src/connector/shared/api/threads.ts","src/connector/shared/api/folders.ts","src/routers/hash-router.ts","src/stores/auth-store.ts","src/stores/mailbox-store.ts"],"sourcesContent":["import { debug } from '@/utils/utils';\nimport { NylasAuthStoreType, NylasAuthType, TokenInfo } from '../../..';\n\nexport class NylasAuthConnector {\n private nylasAuth: NylasAuthType;\n private nylasAuthStore: NylasAuthStoreType;\n\n constructor(nylasAuth: NylasAuthType, nylasAuthStore: NylasAuthStoreType) {\n this.nylasAuth = nylasAuth;\n this.nylasAuthStore = nylasAuthStore;\n }\n\n /**\n * Validates the current session and updates the store with the token info\n * if the user is authenticated.\n * If the user is not authenticated, the store is reset.\n * @returns {Promise<void>}\n */\n public async validateSession(): Promise<void> {\n const isAuthenticated = await this.isAccessTokenValid();\n if (!isAuthenticated) {\n // Reset the store if the access token is not valid\n this.logout();\n } else {\n // If the user is authenticated, update the store with the token info\n let tokenInfo = await this.nylasAuth.getTokenInfo();\n if (tokenInfo) {\n // If token is expired or about to expire (in 5 minutes), refresh it\n const expireTimeCheck = 5 * 60 * 1000; // 5 minutes\n const currentTimeInSeconds = Math.floor(Date.now() / 1000);\n\n if (tokenInfo.expires_in && tokenInfo.expires_in - currentTimeInSeconds < expireTimeCheck) {\n debug('[NylasAuthConnectorMixin] Refreshing access token');\n tokenInfo = await this.nylasAuth.refreshAccessToken();\n if (!tokenInfo) {\n debug('[NylasAuthConnectorMixin] Token is expired and could not be refreshed. Logging out.');\n this.logout();\n return;\n }\n }\n\n this.nylasAuthStore.state.tokenInfo = tokenInfo;\n }\n }\n this.nylasAuthStore.state.isAuthenticated = isAuthenticated;\n }\n\n /**\n * Returns true if the user is authenticated.\n * @returns {Promise<boolean>}\n */\n public async isAuthenticated(): Promise<boolean> {\n return this.nylasAuth.isAuthenticated();\n }\n\n /**\n * Returns the token info if the user is authenticated.\n * @returns {Promise<TokenInfo>}\n */\n public async getTokenInfo(): Promise<TokenInfo | null> {\n return this.nylasAuth.getTokenInfo();\n }\n\n /**\n * Returns true if the access token is valid.\n * @returns {Promise<boolean>}\n */\n public async isAccessTokenValid(): Promise<boolean> {\n return this.nylasAuth.isAccessTokenValid();\n }\n\n /**\n * Removes the token info from the store and logs the user out.\n * @returns {Promise<void>}\n */\n public async logout(): Promise<void> {\n await this.nylasAuth.logout();\n }\n\n /**\n * Returns the URL to redirect the user to for authentication.\n * @param scopes An array of scopes to request from the user.\n * @param email The email address of the user to authenticate.\n * @param provider The provider to use for authentication.\n * @returns {Promise<string>}\n */\n public async getHostedAuthRedirectURL(scopes?: string[], email?: string, provider?: string): Promise<string> {\n return this.nylasAuth.getHostedAuthRedirectURL(scopes, email, provider);\n }\n\n /**\n * Exchanges the auth code for a token info and updates the store.\n * @param currentUrl The current URL of the page.\n * @returns {Promise<TokenInfo | null>}\n */\n public async manageHostedAuthCodeExchange(currentUrl: string): Promise<TokenInfo | null> {\n const url = new URL(currentUrl);\n const code = url.searchParams.get('code');\n\n if (code) {\n const tokenInfo = await this.nylasAuth.exchangeAuthCodeForTokenInfo(code);\n if (tokenInfo) {\n this.nylasAuthStore.state.tokenInfo = tokenInfo;\n this.nylasAuthStore.state.isAuthenticated = true;\n return tokenInfo;\n }\n }\n\n return null;\n }\n}\n","import { Message, NylasAPIError, NylasAuthType, NylasResponse, isNylasErrorResponse } from '@nylas/core';\nimport { NylasAuthStoreType, NylasMailboxStoreType } from '../../../components';\n\nexport class NylasMessagesConnector {\n private nylasAuth: NylasAuthType;\n private nylasAuthStore: NylasAuthStoreType;\n private nylasMailboxStore: NylasMailboxStoreType;\n\n constructor(nylasAuth: NylasAuthType, nylasAuthStore: NylasAuthStoreType, nylasMailboxStore: NylasMailboxStoreType) {\n this.nylasAuth = nylasAuth;\n this.nylasAuthStore = nylasAuthStore;\n this.nylasMailboxStore = nylasMailboxStore;\n }\n\n /**\n * Returns the list of messages.\n * @returns {Promise<Message[]>}\n */\n public async getMessages(): Promise<Message[]> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing message:read-only scope');\n }\n\n // Set the state to loading.\n this.nylasMailboxStore.state.state = 'loading';\n\n // Get the message query parameters from the store.\n const queryParams = this.nylasMailboxStore.state.messgeQueryParams;\n\n // Build the URLSearchParams object.\n const params = new URLSearchParams();\n for (const key in queryParams) {\n const value = queryParams[key as keyof typeof queryParams]?.toString();\n if (value) {\n params.append(key, value);\n }\n }\n\n // Build the URL with the query parameters\n const path = `/v3/grants/me/messages?${params.toString()}`;\n\n // Make the API request.\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<Message[]>>(path);\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n // Set the messages in the store.\n const messages = response.data;\n this.nylasMailboxStore.state.messages = messages;\n\n // Set the state to ready.\n this.nylasMailboxStore.state.state = 'ready';\n\n return messages;\n }\n\n /**\n * Returns the list of messages for a given thread.\n * @param {string} threadId The thread ID.\n * @returns {Promise<Message[]>}\n * @throws {NylasAPIError}\n */\n public async getThreadMessages(threadId: string): Promise<Message[]> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing message:read-only scope');\n }\n\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<Message[]>>(`/v3/grants/me/messages?thread_id=${threadId}&fields=include_headers`);\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n const messages = response.data;\n this.nylasMailboxStore.state.messages = messages;\n\n return messages;\n }\n\n /**\n * Downloads the attachments for a given message.\n * @param message The message to download attachments for.\n * @returns {Promise<Blob>[]} An array of promises that will resolve to a Blob.\n */\n public downloadMessageAttachments(message: Message): Promise<Blob>[] {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing message:read-only scope');\n }\n\n // We'll go through each attachment and download it.\n const blobPromises: Promise<Blob>[] = [];\n const attachments = message.attachments || [];\n for (const attachment of attachments) {\n const blob = this.nylasAuth.nylasDownloadFileRequest(`/v3/grants/me/attachments/${attachment.id}?message_id=${message.id}`);\n blobPromises.push(blob);\n }\n\n return blobPromises;\n }\n\n /**\n * Returns a summarized version of the given text.\n * @param text The non-HTML text to summarize.\n * @returns {Promise<string>} The summarized text.\n */\n public async summarizeText(text: string): Promise<string> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing message:read-only scope');\n }\n\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<{ summary: string }>>(\n `/v3/grants/me/mailbox/summarize`,\n 'POST',\n {\n message: {\n body: text,\n },\n },\n true,\n this.nylasAuth.config.elementsApiUri,\n );\n\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n return response.data.summary;\n }\n\n /**\n * Returns a summarized version of the given message.\n * @param message The message to summarize.\n * @returns {Promise<ReadableStream<Uint8Array> | null>} Returns a Fetch API response.\n */\n public async textToSpeech(text: string, abortController?: AbortController): Promise<ReadableStream<Uint8Array> | null> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing message:read-only scope');\n }\n\n return this.nylasAuth.nylasAPIRequest(\n `/v3/grants/me/mailbox/tts`,\n 'POST',\n {\n text,\n },\n false,\n this.nylasAuth.config.elementsApiUri,\n {\n ...(abortController ? { signal: abortController?.signal } : {}),\n },\n );\n }\n}\n","import { debug } from '@/utils/utils';\nimport { NylasAPIError, NylasAuthType, NylasResponse, Thread, ThreadQueryParameters, isNylasErrorResponse } from '@nylas/core';\nimport { NylasAuthStoreType, NylasMailboxStoreType } from '../../../components';\nimport { RouterInterface } from '@/routers/router-interface';\n\nexport class NylasThreadsConnector {\n private nylasAuth: NylasAuthType;\n private nylasAuthStore: NylasAuthStoreType;\n private nylasMailboxStore: NylasMailboxStoreType;\n private router: RouterInterface;\n\n constructor(nylasAuth: NylasAuthType, nylasAuthStore: NylasAuthStoreType, nylasMailboxStore: NylasMailboxStoreType, router: RouterInterface) {\n this.nylasAuth = nylasAuth;\n this.nylasAuthStore = nylasAuthStore;\n this.nylasMailboxStore = nylasMailboxStore;\n this.router = router;\n }\n\n /**\n * Returns the list of threads.\n * @todo Re-think how we handle pagination (previous/next page tokens) - there is a separation of logic here that might be confusing.\n * @param {Partial<ThreadQueryParameters> | undefined} overrideQueryParams The query parameters to override from the store.\n * @param {'prepend' | 'append' | 'overwrite'} updateMethod How to update the store with the threads (default: overwrite).\n * @param {boolean} updateState Whether to update the state or not (default: true).\n * @returns {Promise<Thread[]>}\n */\n public async getThreads(\n overrideQueryParams?: Partial<ThreadQueryParameters>,\n updateMethod: 'prepend' | 'append' | 'overwrite' = 'overwrite',\n updateState: boolean = true,\n ): Promise<Thread[]> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing thread:read-only scope');\n }\n\n // Set the state to loading.\n if (updateState) {\n this.nylasMailboxStore.state.state = 'loading';\n }\n\n // Build the URL with the query parameters\n const queryParams = overrideQueryParams || this.nylasMailboxStore.state.threadsQueryParams;\n const params = new URLSearchParams();\n for (const key in queryParams) {\n const value = queryParams[key as keyof typeof queryParams]?.toString();\n if (typeof value !== 'undefined' && value !== null) {\n params.append(key, value);\n }\n }\n\n // TODO: Re-think how to update the router, this seems wrong\n if (queryParams.search_query_native) {\n this.router.navigate(`/?query=${queryParams.search_query_native}`, true);\n } else if (this.nylasMailboxStore.state.threadsQueryParams.search_query_native && !queryParams.search_query_native) {\n this.router.navigate('/', true);\n }\n\n // If page_token is not set, reset the previous page tokens.\n if (!queryParams.page_token) {\n this.nylasMailboxStore.state.previousThreadPageTokens = [];\n }\n\n this.nylasMailboxStore.state.threadsQueryParams = queryParams;\n\n // Make the API request.\n const path = `/v3/grants/me/threads?${params.toString()}`;\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<Thread[]>>(path);\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n // Set the threads in the store.\n const threads = response.data;\n switch (updateMethod) {\n case 'prepend':\n this.nylasMailboxStore.state.threads = [...threads, ...this.nylasMailboxStore.state.threads];\n break;\n case 'append':\n this.nylasMailboxStore.state.threads = [...this.nylasMailboxStore.state.threads, ...threads];\n break;\n case 'overwrite':\n default:\n this.nylasMailboxStore.state.threads = threads;\n break;\n }\n\n // If we have a next cursor, set it in the store.\n if (response.next_cursor) {\n this.nylasMailboxStore.state.nextThreadPageToken = response.next_cursor;\n } else {\n this.nylasMailboxStore.state.nextThreadPageToken = null;\n }\n\n // Set the state to ready.\n if (updateState) {\n this.nylasMailboxStore.state.state = 'ready';\n }\n\n return threads;\n }\n\n public async getThread(threadId: string): Promise<Thread> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing thread:read-only scope');\n }\n\n // Check if we have the thread in the store already.\n const storeThread = this.nylasMailboxStore.state.threads.find(t => t.id === threadId);\n if (storeThread) {\n return storeThread;\n }\n\n // Set the state to loading.\n this.nylasMailboxStore.state.state = 'loading';\n\n // Make the API request.\n const path = `/v3/grants/me/threads/${threadId}`;\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<Thread>>(path);\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n // Set the threads in the store.\n const thread = response.data;\n this.nylasMailboxStore.state.threads = this.nylasMailboxStore.state.threads.map(t => {\n if (t.id === thread.id) {\n return thread;\n }\n return t;\n });\n\n // Set the state to ready.\n this.nylasMailboxStore.state.state = 'ready';\n\n return thread;\n }\n\n /**\n * Returns the next page of threads.\n * @param {'prepend' | 'append' | 'overwrite'} updateMethod How to update the store with the threads (default: overwrite).\n * @param {boolean} updateLoadingState Whether to update the loading state or not.\n * @returns {Promise<Thread[]>} The previous page of threads.\n */\n public async nextThreadPage(updateMethod: 'prepend' | 'append' | 'overwrite' = 'overwrite', updateLoadingState: boolean = true): Promise<Thread[]> {\n if (!this.nylasMailboxStore.state.nextThreadPageToken) {\n throw new Error('No next page token');\n }\n\n // If we have a next page token, add it to the previous page tokens.\n this.nylasMailboxStore.state.previousThreadPageTokens = Array.from(\n new Set([...this.nylasMailboxStore.state.previousThreadPageTokens, this.nylasMailboxStore.state.threadsQueryParams.page_token ?? null]),\n );\n\n // Get the last next page token.\n const nextPageToken = this.nylasMailboxStore.state.nextThreadPageToken;\n\n return this.getThreads(\n {\n ...this.nylasMailboxStore.state.threadsQueryParams,\n page_token: nextPageToken,\n },\n updateMethod,\n updateLoadingState,\n );\n }\n\n /**\n * Returns the previous page of threads.\n * @param {'prepend' | 'append' | 'overwrite'} updateMethod How to update the store with the threads (default: overwrite).\n * @param {boolean} updateLoadingState Whether to update the loading state or not.\n * @returns {Promise<Thread[]>} The previous page of threads.\n */\n public async previousThreadPage(aupdateMethod: 'prepend' | 'append' | 'overwrite' = 'overwrite', updateLoadingState: boolean = true): Promise<Thread[]> {\n if (!this.nylasMailboxStore.state.previousThreadPageTokens.length) {\n throw new Error('No previous page token');\n }\n\n // Remove the the last two next page tokens.\n const previousThreadPageTokens = [...this.nylasMailboxStore.state.previousThreadPageTokens];\n const pageToken = previousThreadPageTokens.pop();\n\n // Update the store.\n this.nylasMailboxStore.state.previousThreadPageTokens = previousThreadPageTokens;\n\n return this.getThreads(\n {\n ...this.nylasMailboxStore.state.threadsQueryParams,\n page_token: pageToken ?? undefined,\n },\n aupdateMethod,\n updateLoadingState,\n );\n }\n\n /**\n * Updates the thread query parameters in the store.\n * @param params Partial<ThreadQueryParameters>\n * @returns {void}\n */\n public updateThreadQueryParams(params: Partial<ThreadQueryParameters>): void {\n this.nylasMailboxStore.state.threadsQueryParams = {\n ...this.nylasMailboxStore.state.threadsQueryParams,\n ...params,\n };\n }\n\n /**\n * Back to the mailbox.\n */\n public back(): void {\n this.router.navigate('/', true);\n this.nylasMailboxStore.state.selectedThread = null;\n }\n\n /**\n * Unselects a thread.\n */\n public unSelectThread(): void {\n this.nylasMailboxStore.state.selectedThread = null;\n }\n\n /**\n * Selects a thread.\n * @param {Thread} thread The thread to select.\n * @returns {Promise<void>}\n */\n public async selectThread(thread: Thread): Promise<void> {\n this.router.navigate(`/thread/${thread.id}`, true);\n this.nylasMailboxStore.state.selectedThread = thread;\n\n // Mark the thread as read (async) if it is unread.\n if (thread.unread) {\n this.markThreadAsRead(thread).catch(error => {\n debug('Error marking thread as read', error);\n });\n }\n }\n\n /**\n * Marks a thread as read.\n * @param thread\n * @returns {Promise<Thread>}\n */\n public async markThreadAsRead(thread: Thread): Promise<Thread> {\n return this.updateThread(thread, { unread: false });\n }\n\n /**\n * Updates a thread.\n * @param thread The thread to update.\n * @returns {Promise<Thread>}\n */\n public async updateThread(thread: Thread, updateThread: Partial<Thread>): Promise<Thread> {\n // Make sure we have an authenticated user.\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a modify scope at least.\n if (!this.nylasAuth.hasScopeByType('email', 'modify')) {\n throw new Error('Missing thread:modify scope');\n }\n\n // Make the API request.\n const path = `/v3/grants/me/threads/${thread.id}`;\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<Thread>>(path, 'PUT', updateThread);\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n // Update the thread in the store.\n const updatedThread = response.data;\n this.nylasMailboxStore.state.threads = this.nylasMailboxStore.state.threads.map(t => {\n if (t.id === updatedThread.id) {\n return updatedThread;\n }\n return t;\n });\n this.nylasMailboxStore.state.selectedThread = updatedThread;\n\n return updatedThread;\n }\n}\n","import { Folder, NylasAPIError, NylasAuthType, NylasResponse, isNylasErrorResponse } from '@nylas/core';\nimport { NylasAuthStoreType, NylasMailboxStoreType } from '../../../components';\n\nexport class NylasFoldersConnector {\n private nylasAuth: NylasAuthType;\n private nylasAuthStore: NylasAuthStoreType;\n private nylasMailboxStore: NylasMailboxStoreType;\n\n constructor(nylasAuth: NylasAuthType, nylasAuthStore: NylasAuthStoreType, nylasMailboxStore: NylasMailboxStoreType) {\n this.nylasAuth = nylasAuth;\n this.nylasAuthStore = nylasAuthStore;\n this.nylasMailboxStore = nylasMailboxStore;\n }\n\n /**\n * Returns the list of folders.\n */\n public async getFolders(): Promise<Folder[]> {\n if (!this.nylasAuthStore.state.isAuthenticated) {\n throw new Error('Not authenticated');\n }\n\n // Now make sure we have a read-only or modify scopes\n if (!this.nylasAuth.hasScopeByType('email', ['read-only', 'modify'])) {\n throw new Error('Missing thread:read-only scope');\n }\n\n // Set the state to loading.\n this.nylasMailboxStore.state.state = 'loading';\n\n // Make the API request.\n const path = `/v3/grants/me/folders`;\n const response = await this.nylasAuth.nylasAPIRequest<NylasResponse<Folder[]>>(path);\n if (isNylasErrorResponse(response)) {\n throw new NylasAPIError(response.error);\n }\n\n // Set the threads in the store.\n const folders = response.data;\n this.nylasMailboxStore.state.folders = folders;\n\n // Set the state to ready.\n this.nylasMailboxStore.state.state = 'ready';\n\n return folders;\n }\n\n public async selectFolder(folder: Folder) {\n this.nylasMailboxStore.state.threadsQueryParams = {\n in: folder.id,\n ...(this.nylasMailboxStore.state.threadsQueryParams || {}),\n };\n }\n}\n","import { debug } from '@/utils/utils';\nimport { RouteListener, RouteParams, RoutePath, RouterInterface } from './router-interface';\n\nexport class PolyFillHashChangeEvent extends Event {\n oldURL?: string;\n newURL?: string;\n\n constructor(type: string, eventInitDict: HashChangeEventInit) {\n super(type, eventInitDict);\n this.oldURL = eventInitDict.oldURL;\n this.newURL = eventInitDict.newURL;\n }\n}\n\nexport class HashRouter implements RouterInterface {\n private routeChangeListeners: [route: RoutePath, RouteListener<any>][] = [];\n\n constructor() {\n debug('HashRouter constructor');\n }\n\n // Destroy the router\n public destroy(): void {\n debug('HashRouter destroy');\n window.removeEventListener('hashchange', this.onRouteChange.bind(this));\n }\n\n // Initialize the router\n public init(): void {\n debug('HashRouter init');\n window.addEventListener('hashchange', this.onRouteChange.bind(this));\n\n // Trigger the initial route change\n if (typeof HashChangeEvent !== 'undefined') {\n const event: HashChangeEvent = new HashChangeEvent('hashchange', { oldURL: '', newURL: window.location.href });\n this.onRouteChange(event);\n } else {\n const event: Event = new PolyFillHashChangeEvent('hashchange', { oldURL: '', newURL: window.location.href });\n this.onRouteChange(event as HashChangeEvent);\n }\n }\n\n public addRouteChangeListener<Path extends RoutePath>(route: Path, listener: RouteListener<Path>): void {\n debug('HashRouter addRouteChangeListener');\n this.routeChangeListeners.push([route, listener]);\n }\n\n public navigate(route: string, shallow: boolean): void {\n debug('HashRouter navigate');\n\n // If we're navigating shallow, don't add a new history entry\n if (shallow) {\n return window.history.pushState(null, '', `#${route}`);\n }\n\n window.location.hash = route;\n }\n\n public setRoute(route: string): void {\n debug('HashRouter setRoute');\n window.location.hash = route;\n }\n\n // Matches a route and executes the callback\n public matchRoute(route: string, path: string): boolean {\n const routeParts = route.split('/');\n const pathParts = path.split('/');\n\n // If the route is `/` an the hash is empty, match the route\n debug(`HashRouter matchRoute route=${route} path=${path}`, { routeParts, pathParts });\n if (routeParts[1] === '' && pathParts[0] === '') {\n return true;\n }\n\n if (routeParts.length !== pathParts.length) {\n return false;\n }\n\n for (let i = 0; i < routeParts.length; i++) {\n const routePart = routeParts[i];\n const pathPart = pathParts[i];\n if (routePart.startsWith(':')) {\n continue;\n }\n if (routePart !== pathPart) {\n return false;\n }\n }\n\n return true;\n }\n\n // Parse the route and return the route params\n public getRouteParams<Path extends RoutePath>(route: Path): RouteParams<Path> {\n debug('HashRouter getRouteParams');\n const routeParams: RouteParams<Path> = {} as RouteParams<Path>;\n const routeParts = route.split('/');\n const routeConfigParts = window.location.hash.split('/');\n routeParts.forEach((routePart, index) => {\n if (routePart.startsWith(':')) {\n const key = routePart.substring(1) as keyof RouteParams<Path>;\n routeParams[key] = routeConfigParts[index] as RouteParams<Path>[keyof RouteParams<Path>]; // Cast the value to string\n }\n });\n return routeParams;\n }\n\n public getRouteWithParams(route: string, routeParams: Record<string, any>): string {\n debug('HashRouter getRouteWithParams');\n let routeWithParams = route;\n Object.keys(routeParams).forEach(key => {\n routeWithParams = routeWithParams.replace(`:${key}`, routeParams[key]);\n });\n return routeWithParams;\n }\n\n public getRoute(): string {\n debug('HashRouter getRoute');\n return window.location.hash;\n }\n\n public onRouteChange(event: HashChangeEvent): void {\n this.routeChangeListeners.forEach(async ([route, listener]) => {\n const path = event.newURL.indexOf('#') === -1 ? '' : event.newURL.substring(event.newURL.indexOf('#') + 1);\n debug(`HashRouter onRouteChange route=${route} path=${path}`, { event });\n if (!this.matchRoute(route, path)) {\n debug(`HashRouter onRouteChange route=${route} path=${path} does not match`);\n return;\n }\n const routeParams = this.getRouteParams(route) as RouteParams<RoutePath>;\n await listener(route, path, routeParams);\n });\n }\n\n public getBasePath(): string {\n debug('HashRouter getBasePath');\n return '';\n }\n}\n","import { TokenInfo } from '@nylas/core/dist/auth';\nimport { createStore } from '@stencil/store';\nimport { DataState } from '..';\n\nexport interface NylasAuthStoreState {\n isAuthenticated: boolean;\n tokenInfo: TokenInfo | null;\n state: DataState;\n}\n\nexport type NylasAuthStoreType = ReturnType<typeof CreateNylasAuthStore>;\n\nexport function CreateNylasAuthStore(defaultState: Partial<NylasAuthStoreState> = {}) {\n const defaultNylasStoreState: NylasAuthStoreState = {\n isAuthenticated: false,\n tokenInfo: null,\n state: 'ready',\n ...defaultState,\n };\n const store = createStore<NylasAuthStoreState>(defaultNylasStoreState);\n\n /**\n * Reset the Nylas store to its default state.\n * There is something wrong with the stencil/store reset method,\n * so we have to do it via this hack.\n */\n store.reset = () => {\n for (const key in defaultNylasStoreState) {\n const value = defaultNylasStoreState[key as keyof typeof defaultNylasStoreState];\n store.set(key as any, value);\n }\n };\n\n return store;\n}\n","import type { Folder, Message, MessageQueryParameters, Thread, ThreadQueryParameters } from '@nylas/core';\nimport { createStore } from '@stencil/store';\nimport { DataState } from '../components';\n\nexport interface NylasMailboxStoreState {\n state: DataState;\n messages: Message[];\n threads: Thread[];\n folders: Folder[];\n selectedThread: Thread | null;\n selectedFolder: string;\n searchQuery: string;\n\n nextThreadPageToken: string | null;\n previousThreadPageTokens: (string | null)[];\n hasNextThreadPage: boolean;\n hasPreviousThreadPage: boolean;\n threadsQueryParams: Partial<ThreadQueryParameters>;\n messgeQueryParams: Partial<MessageQueryParameters>;\n}\n\nexport type NylasMailboxStoreType = ReturnType<typeof CreateNylasMailboxStore>;\n\nexport function CreateNylasMailboxStore(defaultState: Partial<NylasMailboxStoreState> = {}) {\n const defaultNylasStoreState: NylasMailboxStoreState = {\n state: 'ready',\n\n messages: [],\n threads: [],\n folders: [],\n selectedThread: null,\n nextThreadPageToken: null,\n previousThreadPageTokens: [],\n searchQuery: '',\n\n hasNextThreadPage: false,\n hasPreviousThreadPage: false,\n\n selectedFolder: 'inbox',\n\n threadsQueryParams: {\n in: 'inbox',\n },\n messgeQueryParams: {\n fields: 'include_headers',\n },\n ...defaultState,\n };\n\n const store = createStore<NylasMailboxStoreState>({ ...defaultNylasStoreState });\n\n // Set our hasNextThreadPage if nextThreadPageToken is not null.\n store.onChange('nextThreadPageToken', nextThreadPageToken => {\n store.set('hasNextThreadPage', nextThreadPageToken !== null);\n });\n // Set our hasPreviousThreadPage if previousThreadPageTokens is not empty.\n store.onChange('previousThreadPageTokens', previousThreadPageTokens => {\n store.set('hasPreviousThreadPage', previousThreadPageTokens.length > 0);\n });\n\n // When threadsQueryParams changes...\n store.onChange('threadsQueryParams', threadsQueryParams => {\n // set our selectedFolder to the in param.\n store.set('selectedFolder', threadsQueryParams.in || 'inbox');\n // set our searchQuery to the search_query_native param.\n store.set('searchQuery', threadsQueryParams.search_query_native || '');\n });\n\n store.reset = () => {\n for (const key in defaultNylasStoreState) {\n const value = defaultNylasStoreState[key as keyof typeof defaultNylasStoreState];\n store.set(key as any, value);\n }\n };\n\n return store;\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as a,h as c}from"./p-c66e27d0.js";const e=".sc-calendar-cancel-icon-h{display:flex}";const s=e;const t=class{constructor(c){a(this,c);this.width="20";this.height="20"}render(){return c("svg",{key:"5751349539d19b3c7a46c16efeb772565d96b261",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},c("path",{key:"2aee2cc50a4d615eba3c40af4da9529d9dc37daf",d:"M14.5 9a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Zm-2.476 3.024a.5.5 0 0 0 0 .707l1.769 1.77-1.767 1.766a.5.5 0 1 0 .707.708l1.767-1.767 1.77 1.769a.5.5 0 1 0 .707-.707L15.208 14.5l1.771-1.77a.5.5 0 0 0-.707-.707l-1.771 1.77-1.77-1.77a.5.5 0 0 0-.707 0ZM14.75 0A3.25 3.25 0 0 1 18 3.25l.001 5.773a6.47 6.47 0 0 0-1.5-.71L16.5 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.064a6.47 6.47 0 0 0 .709 1.501L3.25 18A3.25 3.25 0 0 1 0 14.75V3.25A3.25 3.25 0 0 1 3.25 0h11.5Zm0 1.5H3.25A1.75 1.75 0 0 0 1.5 3.25V4h15v-.75a1.75 1.75 0 0 0-1.75-1.75Z",fill:"currentColor"}))}};t.style=s;export{t as calendar_cancel_icon};
2
+ //# sourceMappingURL=p-6da0b8f0.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["iconCss","CalendarCancelIconStyle0","CalendarCancelIcon","render","h","key","width","this","height","fill","xmlns","d"],"sources":["src/common/icons/icon.css?tag=calendar-cancel-icon&encapsulation=scoped","src/common/icons/calendar-cancel.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'calendar-cancel-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class CalendarCancelIcon {\n @Prop() width: string = '20';\n @Prop() height: string = '20';\n\n render() {\n return (\n <svg width={this.width} height={this.height} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.5 9a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Zm-2.476 3.024a.5.5 0 0 0 0 .707l1.769 1.77-1.767 1.766a.5.5 0 1 0 .707.708l1.767-1.767 1.77 1.769a.5.5 0 1 0 .707-.707L15.208 14.5l1.771-1.77a.5.5 0 0 0-.707-.707l-1.771 1.77-1.77-1.77a.5.5 0 0 0-.707 0ZM14.75 0A3.25 3.25 0 0 1 18 3.25l.001 5.773a6.47 6.47 0 0 0-1.5-.71L16.5 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.064a6.47 6.47 0 0 0 .709 1.501L3.25 18A3.25 3.25 0 0 1 0 14.75V3.25A3.25 3.25 0 0 1 3.25 0h11.5Zm0 1.5H3.25A1.75 1.75 0 0 0 1.5 3.25V4h15v-.75a1.75 1.75 0 0 0-1.75-1.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAU,2CAChB,MAAAC,EAAeD,E,MCMFE,EAAkB,M,oCACL,K,YACC,I,CAEzB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOC,KAAKD,MAAOE,OAAQD,KAAKC,OAAQC,KAAK,OAAOC,MAAM,8BAC7DN,EAAA,QAAAC,IAAA,2CACEM,EAAE,uhBACFF,KAAK,iB"}