@nylas/web-elements 1.0.2-canary.2 → 1.1.0-canary.3

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 (1005) hide show
  1. package/dist/cjs/add-circle-icon.cjs.entry.js +2 -2
  2. package/dist/cjs/{add-circle-icon_18.cjs.entry.js → add-circle-icon_22.cjs.entry.js} +425 -97
  3. package/dist/cjs/add-circle-icon_22.cjs.entry.js.map +1 -0
  4. package/dist/cjs/archive-icon.cjs.entry.js +2 -2
  5. package/dist/cjs/archive-icon_7.cjs.entry.js +8 -8
  6. package/dist/cjs/arrow-icon.cjs.entry.js +2 -2
  7. package/dist/cjs/bold-icon.cjs.entry.js +2 -2
  8. package/dist/cjs/bold-icon_3.cjs.entry.js +4 -4
  9. package/dist/cjs/button-component.cjs.entry.js +30 -0
  10. package/dist/cjs/button-component.cjs.entry.js.map +1 -0
  11. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +2 -2
  12. package/dist/cjs/calendar-check-icon.cjs.entry.js +2 -2
  13. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +3 -3
  14. package/dist/cjs/calendar-icon.cjs.entry.js +2 -2
  15. package/dist/cjs/calendar-info-icon.cjs.entry.js +2 -2
  16. package/dist/cjs/calendar-patterns-icon.cjs.entry.js +2 -2
  17. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +2 -2
  18. package/dist/cjs/chevron-icon.cjs.entry.js +2 -2
  19. package/dist/cjs/chevron-icon_3.cjs.entry.js +23 -6
  20. package/dist/cjs/chevron-icon_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/close-icon.cjs.entry.js +2 -2
  22. package/dist/cjs/{constants-9e39ba68.js → constants-0fba94a4.js} +2 -1
  23. package/dist/cjs/{constants-9e39ba68.js.map → constants-0fba94a4.js.map} +1 -1
  24. package/dist/cjs/{constants-c48567b9.js → constants-6baf1f1d.js} +2 -1
  25. package/dist/cjs/{constants-c48567b9.js.map → constants-6baf1f1d.js.map} +1 -1
  26. package/dist/cjs/document-refresh-icon.cjs.entry.js +2 -2
  27. package/dist/cjs/flow-icon.cjs.entry.js +2 -2
  28. package/dist/cjs/folder-icon.cjs.entry.js +2 -2
  29. package/dist/cjs/forward-icon.cjs.entry.js +2 -2
  30. package/dist/cjs/forward-icon_6.cjs.entry.js +9 -9
  31. package/dist/cjs/globe-icon.cjs.entry.js +2 -2
  32. package/dist/cjs/google-logo-icon.cjs.entry.js +23 -0
  33. package/dist/cjs/google-logo-icon.cjs.entry.js.map +1 -0
  34. package/dist/cjs/google-logo-icon_3.cjs.entry.js +302 -0
  35. package/dist/cjs/google-logo-icon_3.cjs.entry.js.map +1 -0
  36. package/dist/cjs/inbox-icon.cjs.entry.js +2 -2
  37. package/dist/cjs/{index-ecd19640.js → index-5ba61c57.js} +2 -2
  38. package/dist/cjs/{index-ecd19640.js.map → index-5ba61c57.js.map} +1 -1
  39. package/dist/cjs/{index-37045c7b.js → index-7af03e3f.js} +482 -21
  40. package/dist/cjs/index-7af03e3f.js.map +1 -0
  41. package/dist/cjs/{index-ec8e2a4d.js → index-c14ea8f5.js} +34 -6
  42. package/dist/cjs/index-c14ea8f5.js.map +1 -0
  43. package/dist/cjs/{index-f969795f.js → index-e31dc92c.js} +2 -2
  44. package/dist/cjs/{index-f969795f.js.map → index-e31dc92c.js.map} +1 -1
  45. package/dist/cjs/index.cjs.js +4 -2
  46. package/dist/cjs/index.cjs.js.map +1 -1
  47. package/dist/cjs/{index.es-9122f5a3.js → index.es-447c5aca.js} +7 -2
  48. package/dist/cjs/index.es-447c5aca.js.map +1 -0
  49. package/dist/cjs/{index.es-3c12ec8c.js → index.es-68425511.js} +7 -2
  50. package/dist/cjs/index.es-68425511.js.map +1 -0
  51. package/dist/cjs/info-icon.cjs.entry.js +2 -2
  52. package/dist/cjs/info-icon_2.cjs.entry.js +3 -3
  53. package/dist/cjs/italic-icon.cjs.entry.js +2 -2
  54. package/dist/cjs/loader.cjs.js +2 -2
  55. package/dist/cjs/loading-icon.cjs.entry.js +2 -2
  56. package/dist/cjs/location-icon.cjs.entry.js +2 -2
  57. package/dist/cjs/location-off-icon.cjs.entry.js +2 -2
  58. package/dist/cjs/{mailbox-store-37622628.js → mailbox-store-556bc7b6.js} +81 -3
  59. package/dist/cjs/mailbox-store-556bc7b6.js.map +1 -0
  60. package/dist/cjs/{mailbox-store-5cd5e485.js → mailbox-store-aacd75ff.js} +81 -3
  61. package/dist/cjs/mailbox-store-aacd75ff.js.map +1 -0
  62. package/dist/cjs/microsoft-logo-icon.cjs.entry.js +23 -0
  63. package/dist/cjs/microsoft-logo-icon.cjs.entry.js.map +1 -0
  64. package/dist/cjs/multi-select-dropdown.cjs.entry.js +3 -3
  65. package/dist/cjs/nylas-additional-participants.cjs.entry.js +6 -6
  66. package/dist/cjs/nylas-additional-participants.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nylas-api-request-8ec3a89c.js +39 -0
  68. package/dist/cjs/nylas-api-request-8ec3a89c.js.map +1 -0
  69. package/dist/cjs/nylas-api-request-ab24150d.js +37 -0
  70. package/dist/cjs/nylas-api-request-ab24150d.js.map +1 -0
  71. package/dist/cjs/nylas-availability-picker.cjs.entry.js +9 -9
  72. package/dist/cjs/nylas-availability-picker.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nylas-booked-event-card.cjs.entry.js +4 -4
  74. package/dist/cjs/nylas-booked-event-card.cjs.entry.js.map +1 -1
  75. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +14 -14
  76. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js.map +1 -1
  77. package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js +4 -4
  78. package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js.map +1 -1
  79. package/dist/cjs/nylas-booking-form.cjs.entry.js +3 -3
  80. package/dist/cjs/nylas-booking-form.cjs.entry.js.map +1 -1
  81. package/dist/cjs/nylas-buffer-time.cjs.entry.js +5 -5
  82. package/dist/cjs/nylas-buffer-time.cjs.entry.js.map +1 -1
  83. package/dist/cjs/nylas-calendar-picker.cjs.entry.js +4 -4
  84. package/dist/cjs/nylas-calendar-picker.cjs.entry.js.map +1 -1
  85. package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +4 -4
  86. package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js.map +1 -1
  87. package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +3 -3
  88. package/dist/cjs/nylas-composer.cjs.entry.js +2 -2
  89. package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +3 -3
  90. package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js.map +1 -1
  91. package/dist/cjs/nylas-date-picker.cjs.entry.js +3 -3
  92. package/dist/cjs/nylas-date-picker.cjs.entry.js.map +1 -1
  93. package/dist/cjs/nylas-editor-tabs.cjs.entry.js +100 -48
  94. package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
  95. package/dist/cjs/nylas-event-description.cjs.entry.js +3 -3
  96. package/dist/cjs/nylas-event-description.cjs.entry.js.map +1 -1
  97. package/dist/cjs/nylas-event-duration.cjs.entry.js +4 -4
  98. package/dist/cjs/nylas-event-duration.cjs.entry.js.map +1 -1
  99. package/dist/cjs/nylas-event-info.cjs.entry.js +4 -4
  100. package/dist/cjs/nylas-event-info.cjs.entry.js.map +1 -1
  101. package/dist/cjs/nylas-event-limits.cjs.entry.js +68 -0
  102. package/dist/cjs/nylas-event-limits.cjs.entry.js.map +1 -0
  103. package/dist/cjs/nylas-event-title.cjs.entry.js +4 -4
  104. package/dist/cjs/nylas-event-title.cjs.entry.js.map +1 -1
  105. package/dist/cjs/nylas-form-card.cjs.entry.js +4 -4
  106. package/dist/cjs/nylas-form-card.cjs.entry.js.map +1 -1
  107. package/dist/cjs/nylas-if-state.cjs.entry.js +2 -2
  108. package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +122 -0
  109. package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js.map +1 -0
  110. package/dist/cjs/nylas-list-folders.cjs.entry.js +3 -3
  111. package/dist/cjs/nylas-list-threads.cjs.entry.js +3 -3
  112. package/dist/cjs/nylas-locale-switch.cjs.entry.js +4 -4
  113. package/dist/cjs/nylas-locale-switch.cjs.entry.js.map +1 -1
  114. package/dist/cjs/nylas-location-component.cjs.entry.js +5 -5
  115. package/dist/cjs/nylas-location-component.cjs.entry.js.map +1 -1
  116. package/dist/cjs/nylas-login.cjs.entry.js +3 -3
  117. package/dist/cjs/nylas-logo.cjs.entry.js +2 -2
  118. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js +2 -2
  119. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +3 -3
  120. package/dist/cjs/nylas-mailbox.cjs.entry.js +12 -13
  121. package/dist/cjs/nylas-mailbox.cjs.entry.js.map +1 -1
  122. package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +145 -0
  123. package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js.map +1 -0
  124. package/dist/cjs/nylas-notification.cjs.entry.js +2 -2
  125. package/dist/cjs/nylas-provider.cjs.entry.js +9 -21
  126. package/dist/cjs/nylas-provider.cjs.entry.js.map +1 -1
  127. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +7257 -74
  128. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
  129. package/dist/cjs/nylas-scheduling.cjs.entry.js +17 -13
  130. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  131. package/dist/cjs/nylas-selected-event-card.cjs.entry.js +4 -4
  132. package/dist/cjs/nylas-selected-event-card.cjs.entry.js.map +1 -1
  133. package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +4 -4
  134. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +4 -4
  135. package/dist/cjs/nylas-threads-search.cjs.entry.js +3 -3
  136. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +4 -4
  137. package/dist/cjs/nylas-time-window-picker.cjs.entry.js.map +1 -1
  138. package/dist/cjs/nylas-timeslot-picker.cjs.entry.js +3 -3
  139. package/dist/cjs/nylas-timeslot-picker.cjs.entry.js.map +1 -1
  140. package/dist/cjs/nylas-view-email.cjs.entry.js +2 -2
  141. package/dist/cjs/nylas-view-thread.cjs.entry.js +3 -3
  142. package/dist/cjs/nylas-web-elements.cjs.js +2 -2
  143. package/dist/cjs/people-icon.cjs.entry.js +2 -2
  144. package/dist/cjs/play-icon.cjs.entry.js +2 -2
  145. package/dist/cjs/play-icon_2.cjs.entry.js +3 -3
  146. package/dist/cjs/refresh-icon.cjs.entry.js +2 -2
  147. package/dist/cjs/{register-component-cc1cf810.js → register-component-d729f3f7.js} +2 -2
  148. package/dist/cjs/{register-component-cc1cf810.js.map → register-component-d729f3f7.js.map} +1 -1
  149. package/dist/cjs/{register-component-dfbd5404.js → register-component-f1ebc65d.js} +2 -2
  150. package/dist/cjs/{register-component-dfbd5404.js.map → register-component-f1ebc65d.js.map} +1 -1
  151. package/dist/cjs/reply-all-icon.cjs.entry.js +2 -2
  152. package/dist/cjs/reply-icon.cjs.entry.js +2 -2
  153. package/dist/cjs/scheduler-config-store-31b83ad3.js +19 -0
  154. package/dist/cjs/scheduler-config-store-31b83ad3.js.map +1 -0
  155. package/dist/cjs/scheduler-config-store-9c2cc421.js +19 -0
  156. package/dist/cjs/scheduler-config-store-9c2cc421.js.map +1 -0
  157. package/dist/cjs/{scheduler-store-65f0fbe5.js → scheduler-store-4cb46b3c.js} +3 -2
  158. package/dist/cjs/scheduler-store-4cb46b3c.js.map +1 -0
  159. package/dist/cjs/{scheduler-store-41b6d179.js → scheduler-store-7320f5d0.js} +3 -2
  160. package/dist/cjs/scheduler-store-7320f5d0.js.map +1 -0
  161. package/dist/cjs/search-icon.cjs.entry.js +2 -2
  162. package/dist/cjs/select-dropdown.cjs.entry.js +21 -4
  163. package/dist/cjs/select-dropdown.cjs.entry.js.map +1 -1
  164. package/dist/cjs/sent-icon.cjs.entry.js +2 -2
  165. package/dist/cjs/spam-icon.cjs.entry.js +2 -2
  166. package/dist/cjs/star-icon.cjs.entry.js +2 -2
  167. package/dist/cjs/stop-icon.cjs.entry.js +2 -2
  168. package/dist/cjs/time-period-selector.cjs.entry.js +104 -0
  169. package/dist/cjs/time-period-selector.cjs.entry.js.map +1 -0
  170. package/dist/cjs/tooltip-component.cjs.entry.js +2 -2
  171. package/dist/cjs/translate-icon.cjs.entry.js +2 -2
  172. package/dist/cjs/trash-icon.cjs.entry.js +2 -2
  173. package/dist/cjs/underline-icon.cjs.entry.js +2 -2
  174. package/dist/cjs/warning-icon.cjs.entry.js +2 -2
  175. package/dist/collection/collection-manifest.json +7 -0
  176. package/dist/collection/common/constants.js +1 -0
  177. package/dist/collection/common/constants.js.map +1 -1
  178. package/dist/collection/common/icons/add-circle.js +1 -1
  179. package/dist/collection/common/icons/archive.js +1 -1
  180. package/dist/collection/common/icons/arrow.js +1 -1
  181. package/dist/collection/common/icons/bold.js +1 -1
  182. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  183. package/dist/collection/common/icons/calendar-check.js +1 -1
  184. package/dist/collection/common/icons/calendar-info.js +1 -1
  185. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  186. package/dist/collection/common/icons/calendar.js +1 -1
  187. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  188. package/dist/collection/common/icons/chevron.js +1 -1
  189. package/dist/collection/common/icons/close.js +1 -1
  190. package/dist/collection/common/icons/document-refresh.js +1 -1
  191. package/dist/collection/common/icons/flow.js +1 -1
  192. package/dist/collection/common/icons/folder.js +1 -1
  193. package/dist/collection/common/icons/forward.js +1 -1
  194. package/dist/collection/common/icons/globe.js +1 -1
  195. package/dist/collection/common/icons/google-logo.js +63 -0
  196. package/dist/collection/common/icons/google-logo.js.map +1 -0
  197. package/dist/collection/common/icons/inbox.js +1 -1
  198. package/dist/collection/common/icons/info.js +1 -1
  199. package/dist/collection/common/icons/italic.js +1 -1
  200. package/dist/collection/common/icons/loading.js +1 -1
  201. package/dist/collection/common/icons/location-off.js +1 -1
  202. package/dist/collection/common/icons/location.js +1 -1
  203. package/dist/collection/common/icons/microsoft-logo.js +63 -0
  204. package/dist/collection/common/icons/microsoft-logo.js.map +1 -0
  205. package/dist/collection/common/icons/nylas-logo.js +1 -1
  206. package/dist/collection/common/icons/people.js +1 -1
  207. package/dist/collection/common/icons/play.js +1 -1
  208. package/dist/collection/common/icons/refresh.js +1 -1
  209. package/dist/collection/common/icons/reply-all.js +1 -1
  210. package/dist/collection/common/icons/reply.js +1 -1
  211. package/dist/collection/common/icons/search.js +1 -1
  212. package/dist/collection/common/icons/sent.js +1 -1
  213. package/dist/collection/common/icons/spam.js +1 -1
  214. package/dist/collection/common/icons/star.js +1 -1
  215. package/dist/collection/common/icons/stop.js +1 -1
  216. package/dist/collection/common/icons/translate.js +1 -1
  217. package/dist/collection/common/icons/trash.js +1 -1
  218. package/dist/collection/common/icons/underline.js +1 -1
  219. package/dist/collection/common/icons/warning.js +1 -1
  220. package/dist/collection/common/nylas-api-request.js +34 -0
  221. package/dist/collection/common/nylas-api-request.js.map +1 -0
  222. package/dist/collection/components/design-system/button-component/button-component.css +73 -0
  223. package/dist/collection/components/design-system/button-component/button-component.js +193 -0
  224. package/dist/collection/components/design-system/button-component/button-component.js.map +1 -0
  225. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  226. package/dist/collection/components/design-system/select-dropdown/select-dropdown.css +6 -4
  227. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +42 -2
  228. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js.map +1 -1
  229. package/dist/collection/components/design-system/time-period-selector/time-period-selector.css +22 -0
  230. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +200 -0
  231. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js.map +1 -0
  232. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  233. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
  234. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
  235. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
  236. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
  237. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +2 -2
  238. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
  239. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
  240. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
  241. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
  242. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
  243. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  244. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  245. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +4 -3
  246. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.css +4 -0
  247. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.css +1 -0
  248. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
  249. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
  250. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.css +20 -10
  251. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.css +6 -1
  252. package/dist/collection/components/scheduler/nylas-locale-switch/test/nylas-locale-switch.spec.js +3 -3
  253. package/dist/collection/components/scheduler/nylas-locale-switch/test/nylas-locale-switch.spec.js.map +1 -1
  254. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  255. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduling.css +7 -8
  256. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduling.js +27 -6
  257. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduling.js.map +1 -1
  258. package/dist/collection/components/scheduler/nylas-scheduler/scheduler-view.js +2 -1
  259. package/dist/collection/components/scheduler/nylas-scheduler/scheduler-view.js.map +1 -1
  260. package/dist/collection/components/scheduler/nylas-scheduler/test/nylas-scheduling.spec.js +9 -0
  261. package/dist/collection/components/scheduler/nylas-scheduler/test/nylas-scheduling.spec.js.map +1 -1
  262. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.css +12 -2
  263. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +1 -1
  264. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.css +5 -16
  265. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +3 -3
  266. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  267. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.css +49 -3
  268. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +5 -5
  269. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  270. package/dist/collection/components/scheduler-editor/nylas-availability-picker/test/nylas-availability-picker.spec.js +1 -1
  271. package/dist/collection/components/scheduler-editor/nylas-availability-picker/test/nylas-availability-picker.spec.js.map +1 -1
  272. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.css +6 -0
  273. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +1 -1
  274. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
  275. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js +3 -3
  276. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js.map +1 -1
  277. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.css +6 -0
  278. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +1 -1
  279. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
  280. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  281. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js.map +1 -1
  282. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.css +2 -2
  283. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +90 -52
  284. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  285. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +22 -0
  286. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -0
  287. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +1 -1
  288. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
  289. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +2 -2
  290. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js.map +1 -1
  291. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.css +2 -2
  292. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  293. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.css +60 -0
  294. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +59 -0
  295. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js.map +1 -0
  296. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +1 -1
  297. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
  298. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.css +2 -2
  299. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  300. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.css +46 -0
  301. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +191 -0
  302. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -0
  303. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/test/nylas-limit-future-bookings.spec.js +41 -0
  304. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/test/nylas-limit-future-bookings.spec.js.map +1 -0
  305. package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js +3 -3
  306. package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js.map +1 -1
  307. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.css +46 -0
  308. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +214 -0
  309. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -0
  310. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/test/nylas-min-cancellation-notice.spec.js +41 -0
  311. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/test/nylas-min-cancellation-notice.spec.js.map +1 -0
  312. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.css +73 -1
  313. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +177 -66
  314. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
  315. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.css +10 -2
  316. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +2 -2
  317. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js.map +1 -1
  318. package/dist/collection/connector/connector-interface.js.map +1 -1
  319. package/dist/collection/connector/nylas-connector/index.js +0 -12
  320. package/dist/collection/connector/nylas-connector/index.js.map +1 -1
  321. package/dist/collection/connector/nylas-scheduler-config-connector/index.js +3 -24
  322. package/dist/collection/connector/nylas-scheduler-config-connector/index.js.map +1 -1
  323. package/dist/collection/connector/shared/api/scheduler-config.js +79 -10
  324. package/dist/collection/connector/shared/api/scheduler-config.js.map +1 -1
  325. package/dist/collection/index.js +1 -0
  326. package/dist/collection/index.js.map +1 -1
  327. package/dist/collection/stores/auth-session-store.js +18 -0
  328. package/dist/collection/stores/auth-session-store.js.map +1 -0
  329. package/dist/collection/stores/scheduler-config-store.js +2 -0
  330. package/dist/collection/stores/scheduler-config-store.js.map +1 -1
  331. package/dist/collection/stores/scheduler-store.js +1 -0
  332. package/dist/collection/stores/scheduler-store.js.map +1 -1
  333. package/dist/components/add-circle.js +1 -1
  334. package/dist/components/archive.js +1 -1
  335. package/dist/components/arrow.js +1 -1
  336. package/dist/components/bold.js +1 -1
  337. package/dist/components/button-component.d.ts +11 -0
  338. package/dist/components/button-component.js +8 -0
  339. package/dist/components/button-component.js.map +1 -0
  340. package/dist/components/button-component2.js +50 -0
  341. package/dist/components/button-component2.js.map +1 -0
  342. package/dist/components/calendar-cancel.js +1 -1
  343. package/dist/components/calendar-check.js +1 -1
  344. package/dist/components/calendar-info.js +1 -1
  345. package/dist/components/calendar-patterns.js +1 -1
  346. package/dist/components/calendar.js +1 -1
  347. package/dist/components/checkmark-circle.js +1 -1
  348. package/dist/components/chevron.js +1 -1
  349. package/dist/components/close.js +1 -1
  350. package/dist/components/constants.js +1 -0
  351. package/dist/components/constants.js.map +1 -1
  352. package/dist/components/document-refresh-icon.js +1 -1
  353. package/dist/components/flow.js +1 -1
  354. package/dist/components/folder.js +1 -1
  355. package/dist/components/forward.js +1 -1
  356. package/dist/components/globe.js +1 -1
  357. package/dist/components/google-logo-icon.d.ts +11 -0
  358. package/dist/components/google-logo-icon.js +8 -0
  359. package/dist/components/google-logo-icon.js.map +1 -0
  360. package/dist/components/google-logo.js +37 -0
  361. package/dist/components/google-logo.js.map +1 -0
  362. package/dist/components/inbox.js +1 -1
  363. package/dist/components/index.es.js +6 -2
  364. package/dist/components/index.es.js.map +1 -1
  365. package/dist/components/index.js +1 -0
  366. package/dist/components/index.js.map +1 -1
  367. package/dist/components/info.js +1 -1
  368. package/dist/components/italic.js +1 -1
  369. package/dist/components/loading.js +1 -1
  370. package/dist/components/location-off.js +1 -1
  371. package/dist/components/location.js +1 -1
  372. package/dist/components/mailbox-store.js +78 -2
  373. package/dist/components/mailbox-store.js.map +1 -1
  374. package/dist/components/microsoft-logo-icon.d.ts +11 -0
  375. package/dist/components/microsoft-logo-icon.js +8 -0
  376. package/dist/components/microsoft-logo-icon.js.map +1 -0
  377. package/dist/components/microsoft-logo.js +37 -0
  378. package/dist/components/microsoft-logo.js.map +1 -0
  379. package/dist/components/multi-select-dropdown2.js +2 -2
  380. package/dist/components/nylas-additional-participants.js +4 -4
  381. package/dist/components/nylas-additional-participants.js.map +1 -1
  382. package/dist/components/nylas-api-request.js +37 -0
  383. package/dist/components/nylas-api-request.js.map +1 -0
  384. package/dist/components/nylas-availability-picker2.js +6 -6
  385. package/dist/components/nylas-availability-picker2.js.map +1 -1
  386. package/dist/components/nylas-booked-event-card2.js +1 -1
  387. package/dist/components/nylas-booked-event-card2.js.map +1 -1
  388. package/dist/components/nylas-booking-calendar-picker2.js +2 -2
  389. package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
  390. package/dist/components/nylas-booking-form2.js +1 -1
  391. package/dist/components/nylas-booking-form2.js.map +1 -1
  392. package/dist/components/nylas-buffer-time2.js +3 -3
  393. package/dist/components/nylas-buffer-time2.js.map +1 -1
  394. package/dist/components/nylas-calendar-picker2.js +2 -2
  395. package/dist/components/nylas-calendar-picker2.js.map +1 -1
  396. package/dist/components/nylas-cancel-booking-form2.js +2 -2
  397. package/dist/components/nylas-cancel-booking-form2.js.map +1 -1
  398. package/dist/components/nylas-cancelled-event-card2.js +1 -1
  399. package/dist/components/nylas-composer2.js +1 -1
  400. package/dist/components/nylas-custom-booking-flow2.js +1 -1
  401. package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
  402. package/dist/components/nylas-date-picker2.js +1 -1
  403. package/dist/components/nylas-date-picker2.js.map +1 -1
  404. package/dist/components/nylas-editor-tabs2.js +184 -101
  405. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  406. package/dist/components/nylas-event-description2.js +1 -1
  407. package/dist/components/nylas-event-description2.js.map +1 -1
  408. package/dist/components/nylas-event-duration2.js +2 -2
  409. package/dist/components/nylas-event-duration2.js.map +1 -1
  410. package/dist/components/nylas-event-info2.js +2 -2
  411. package/dist/components/nylas-event-info2.js.map +1 -1
  412. package/dist/components/nylas-event-limits.d.ts +11 -0
  413. package/dist/components/nylas-event-limits.js +8 -0
  414. package/dist/components/nylas-event-limits.js.map +1 -0
  415. package/dist/components/nylas-event-limits2.js +79 -0
  416. package/dist/components/nylas-event-limits2.js.map +1 -0
  417. package/dist/components/nylas-event-title2.js +1 -1
  418. package/dist/components/nylas-event-title2.js.map +1 -1
  419. package/dist/components/nylas-form-card2.js +2 -2
  420. package/dist/components/nylas-form-card2.js.map +1 -1
  421. package/dist/components/nylas-limit-future-bookings.d.ts +11 -0
  422. package/dist/components/nylas-limit-future-bookings.js +8 -0
  423. package/dist/components/nylas-limit-future-bookings.js.map +1 -0
  424. package/dist/components/nylas-limit-future-bookings2.js +171 -0
  425. package/dist/components/nylas-limit-future-bookings2.js.map +1 -0
  426. package/dist/components/nylas-list-folders.js +1 -1
  427. package/dist/components/nylas-list-threads.js +1 -1
  428. package/dist/components/nylas-locale-switch2.js +1 -1
  429. package/dist/components/nylas-locale-switch2.js.map +1 -1
  430. package/dist/components/nylas-location-component2.js +3 -3
  431. package/dist/components/nylas-location-component2.js.map +1 -1
  432. package/dist/components/nylas-login.js +1 -1
  433. package/dist/components/nylas-logo2.js +1 -1
  434. package/dist/components/nylas-mailbox-toolbar-button.js +1 -1
  435. package/dist/components/nylas-mailbox.js +2 -3
  436. package/dist/components/nylas-mailbox.js.map +1 -1
  437. package/dist/components/nylas-min-cancellation-notice.d.ts +11 -0
  438. package/dist/components/nylas-min-cancellation-notice.js +8 -0
  439. package/dist/components/nylas-min-cancellation-notice.js.map +1 -0
  440. package/dist/components/nylas-min-cancellation-notice2.js +194 -0
  441. package/dist/components/nylas-min-cancellation-notice2.js.map +1 -0
  442. package/dist/components/nylas-notification2.js +1 -1
  443. package/dist/components/nylas-provider.js +3 -15
  444. package/dist/components/nylas-provider.js.map +1 -1
  445. package/dist/components/nylas-scheduler-editor.js +7362 -132
  446. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  447. package/dist/components/nylas-scheduling.js +14 -9
  448. package/dist/components/nylas-scheduling.js.map +1 -1
  449. package/dist/components/nylas-selected-event-card2.js +1 -1
  450. package/dist/components/nylas-selected-event-card2.js.map +1 -1
  451. package/dist/components/nylas-summarize-message-button2.js +2 -2
  452. package/dist/components/nylas-threads-refresh.js +2 -2
  453. package/dist/components/nylas-threads-search.js +1 -1
  454. package/dist/components/nylas-time-window-picker2.js +3 -3
  455. package/dist/components/nylas-time-window-picker2.js.map +1 -1
  456. package/dist/components/nylas-timeslot-picker2.js +1 -1
  457. package/dist/components/nylas-timeslot-picker2.js.map +1 -1
  458. package/dist/components/nylas-view-email2.js +1 -1
  459. package/dist/components/nylas-view-thread.js +1 -1
  460. package/dist/components/people-icon.js +1 -1
  461. package/dist/components/play.js +1 -1
  462. package/dist/components/refresh.js +1 -1
  463. package/dist/components/reply-all.js +1 -1
  464. package/dist/components/reply.js +1 -1
  465. package/dist/components/scheduler-config-store.js +3 -30
  466. package/dist/components/scheduler-config-store.js.map +1 -1
  467. package/dist/components/scheduler-store.js +1 -0
  468. package/dist/components/scheduler-store.js.map +1 -1
  469. package/dist/components/search.js +1 -1
  470. package/dist/components/select-dropdown2.js +25 -4
  471. package/dist/components/select-dropdown2.js.map +1 -1
  472. package/dist/components/sent.js +1 -1
  473. package/dist/components/spam.js +1 -1
  474. package/dist/components/star.js +1 -1
  475. package/dist/components/stop.js +1 -1
  476. package/dist/components/time-period-selector.d.ts +11 -0
  477. package/dist/components/time-period-selector.js +8 -0
  478. package/dist/components/time-period-selector.js.map +1 -0
  479. package/dist/components/time-period-selector2.js +144 -0
  480. package/dist/components/time-period-selector2.js.map +1 -0
  481. package/dist/components/toolitp-component.js +1 -1
  482. package/dist/components/translate.js +1 -1
  483. package/dist/components/trash.js +1 -1
  484. package/dist/components/underline.js +1 -1
  485. package/dist/components/warning.js +1 -1
  486. package/dist/esm/add-circle-icon.entry.js +2 -2
  487. package/dist/esm/{add-circle-icon_18.entry.js → add-circle-icon_22.entry.js} +423 -99
  488. package/dist/esm/add-circle-icon_22.entry.js.map +1 -0
  489. package/dist/esm/archive-icon.entry.js +2 -2
  490. package/dist/esm/archive-icon_7.entry.js +8 -8
  491. package/dist/esm/arrow-icon.entry.js +2 -2
  492. package/dist/esm/bold-icon.entry.js +2 -2
  493. package/dist/esm/bold-icon_3.entry.js +4 -4
  494. package/dist/esm/button-component.entry.js +26 -0
  495. package/dist/esm/button-component.entry.js.map +1 -0
  496. package/dist/esm/calendar-cancel-icon.entry.js +2 -2
  497. package/dist/esm/calendar-check-icon.entry.js +2 -2
  498. package/dist/esm/calendar-check-icon_2.entry.js +3 -3
  499. package/dist/esm/calendar-icon.entry.js +2 -2
  500. package/dist/esm/calendar-info-icon.entry.js +2 -2
  501. package/dist/esm/calendar-patterns-icon.entry.js +2 -2
  502. package/dist/esm/checkmark-circle-icon.entry.js +2 -2
  503. package/dist/esm/chevron-icon.entry.js +2 -2
  504. package/dist/esm/chevron-icon_3.entry.js +23 -6
  505. package/dist/esm/chevron-icon_3.entry.js.map +1 -1
  506. package/dist/esm/close-icon.entry.js +2 -2
  507. package/dist/{nylas-web-elements/constants-56fee505.js → esm/constants-335dffcf.js} +2 -1
  508. package/dist/{nylas-web-elements/constants-56fee505.js.map → esm/constants-335dffcf.js.map} +1 -1
  509. package/dist/esm/{constants-b6bf6671.js → constants-6ee60d6d.js} +2 -1
  510. package/dist/esm/{constants-b6bf6671.js.map → constants-6ee60d6d.js.map} +1 -1
  511. package/dist/esm/document-refresh-icon.entry.js +2 -2
  512. package/dist/esm/flow-icon.entry.js +2 -2
  513. package/dist/esm/folder-icon.entry.js +2 -2
  514. package/dist/esm/forward-icon.entry.js +2 -2
  515. package/dist/esm/forward-icon_6.entry.js +10 -10
  516. package/dist/esm/globe-icon.entry.js +2 -2
  517. package/dist/esm/google-logo-icon.entry.js +19 -0
  518. package/dist/esm/google-logo-icon.entry.js.map +1 -0
  519. package/dist/esm/google-logo-icon_3.entry.js +296 -0
  520. package/dist/esm/google-logo-icon_3.entry.js.map +1 -0
  521. package/dist/esm/inbox-icon.entry.js +2 -2
  522. package/dist/{nylas-web-elements/index-7b27868b.js → esm/index-11d12497.js} +2 -2
  523. package/dist/esm/{index-7b27868b.js.map → index-11d12497.js.map} +1 -1
  524. package/dist/esm/{index-10914bc1.js → index-628f294a.js} +2 -2
  525. package/dist/esm/{index-10914bc1.js.map → index-628f294a.js.map} +1 -1
  526. package/dist/esm/{index-0583f8a8.js → index-7cb0dd3d.js} +482 -21
  527. package/dist/esm/index-7cb0dd3d.js.map +1 -0
  528. package/dist/esm/{index-bda1cba1.js → index-8362ce5c.js} +34 -6
  529. package/dist/esm/index-8362ce5c.js.map +1 -0
  530. package/dist/esm/{index.es-0a5de5bf.js → index.es-2578c6a5.js} +8 -4
  531. package/dist/esm/index.es-2578c6a5.js.map +1 -0
  532. package/dist/{nylas-web-elements/index.es-a9f78dad.js → esm/index.es-bd511719.js} +7 -3
  533. package/dist/esm/index.es-bd511719.js.map +1 -0
  534. package/dist/esm/index.js +3 -2
  535. package/dist/esm/index.js.map +1 -1
  536. package/dist/esm/info-icon.entry.js +2 -2
  537. package/dist/esm/info-icon_2.entry.js +3 -3
  538. package/dist/esm/italic-icon.entry.js +2 -2
  539. package/dist/esm/loader.js +3 -3
  540. package/dist/esm/loading-icon.entry.js +2 -2
  541. package/dist/esm/location-icon.entry.js +2 -2
  542. package/dist/esm/location-off-icon.entry.js +2 -2
  543. package/dist/{nylas-web-elements/mailbox-store-8a1c2d32.js → esm/mailbox-store-150cc456.js} +80 -4
  544. package/dist/esm/mailbox-store-150cc456.js.map +1 -0
  545. package/dist/esm/{mailbox-store-e721b17c.js → mailbox-store-bb21512c.js} +81 -5
  546. package/dist/esm/mailbox-store-bb21512c.js.map +1 -0
  547. package/dist/esm/microsoft-logo-icon.entry.js +19 -0
  548. package/dist/esm/microsoft-logo-icon.entry.js.map +1 -0
  549. package/dist/esm/multi-select-dropdown.entry.js +3 -3
  550. package/dist/esm/nylas-additional-participants.entry.js +6 -6
  551. package/dist/esm/nylas-additional-participants.entry.js.map +1 -1
  552. package/dist/esm/nylas-api-request-55446aba.js +37 -0
  553. package/dist/esm/nylas-api-request-55446aba.js.map +1 -0
  554. package/dist/esm/nylas-api-request-c97a0153.js +35 -0
  555. package/dist/esm/nylas-api-request-c97a0153.js.map +1 -0
  556. package/dist/esm/nylas-availability-picker.entry.js +9 -9
  557. package/dist/esm/nylas-availability-picker.entry.js.map +1 -1
  558. package/dist/esm/nylas-booked-event-card.entry.js +4 -4
  559. package/dist/esm/nylas-booked-event-card.entry.js.map +1 -1
  560. package/dist/esm/nylas-booked-event-card_10.entry.js +15 -15
  561. package/dist/esm/nylas-booked-event-card_10.entry.js.map +1 -1
  562. package/dist/esm/nylas-booking-calendar-picker.entry.js +4 -4
  563. package/dist/esm/nylas-booking-calendar-picker.entry.js.map +1 -1
  564. package/dist/esm/nylas-booking-form.entry.js +3 -3
  565. package/dist/esm/nylas-booking-form.entry.js.map +1 -1
  566. package/dist/esm/nylas-buffer-time.entry.js +5 -5
  567. package/dist/esm/nylas-buffer-time.entry.js.map +1 -1
  568. package/dist/esm/nylas-calendar-picker.entry.js +4 -4
  569. package/dist/esm/nylas-calendar-picker.entry.js.map +1 -1
  570. package/dist/esm/nylas-cancel-booking-form.entry.js +4 -4
  571. package/dist/esm/nylas-cancel-booking-form.entry.js.map +1 -1
  572. package/dist/esm/nylas-cancelled-event-card.entry.js +3 -3
  573. package/dist/esm/nylas-composer.entry.js +2 -2
  574. package/dist/esm/nylas-custom-booking-flow.entry.js +3 -3
  575. package/dist/esm/nylas-custom-booking-flow.entry.js.map +1 -1
  576. package/dist/esm/nylas-date-picker.entry.js +3 -3
  577. package/dist/esm/nylas-date-picker.entry.js.map +1 -1
  578. package/dist/esm/nylas-editor-tabs.entry.js +100 -48
  579. package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
  580. package/dist/esm/nylas-event-description.entry.js +3 -3
  581. package/dist/esm/nylas-event-description.entry.js.map +1 -1
  582. package/dist/esm/nylas-event-duration.entry.js +4 -4
  583. package/dist/esm/nylas-event-duration.entry.js.map +1 -1
  584. package/dist/esm/nylas-event-info.entry.js +4 -4
  585. package/dist/esm/nylas-event-info.entry.js.map +1 -1
  586. package/dist/esm/nylas-event-limits.entry.js +64 -0
  587. package/dist/esm/nylas-event-limits.entry.js.map +1 -0
  588. package/dist/esm/nylas-event-title.entry.js +4 -4
  589. package/dist/esm/nylas-event-title.entry.js.map +1 -1
  590. package/dist/esm/nylas-form-card.entry.js +4 -4
  591. package/dist/esm/nylas-form-card.entry.js.map +1 -1
  592. package/dist/esm/nylas-if-state.entry.js +2 -2
  593. package/dist/esm/nylas-limit-future-bookings.entry.js +118 -0
  594. package/dist/esm/nylas-limit-future-bookings.entry.js.map +1 -0
  595. package/dist/esm/nylas-list-folders.entry.js +3 -3
  596. package/dist/esm/nylas-list-threads.entry.js +3 -3
  597. package/dist/esm/nylas-locale-switch.entry.js +4 -4
  598. package/dist/esm/nylas-locale-switch.entry.js.map +1 -1
  599. package/dist/esm/nylas-location-component.entry.js +5 -5
  600. package/dist/esm/nylas-location-component.entry.js.map +1 -1
  601. package/dist/esm/nylas-login.entry.js +3 -3
  602. package/dist/esm/nylas-logo.entry.js +2 -2
  603. package/dist/esm/nylas-mailbox-pagination.entry.js +2 -2
  604. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +3 -3
  605. package/dist/esm/nylas-mailbox.entry.js +5 -6
  606. package/dist/esm/nylas-mailbox.entry.js.map +1 -1
  607. package/dist/esm/nylas-min-cancellation-notice.entry.js +141 -0
  608. package/dist/esm/nylas-min-cancellation-notice.entry.js.map +1 -0
  609. package/dist/esm/nylas-notification.entry.js +2 -2
  610. package/dist/esm/nylas-provider.entry.js +7 -19
  611. package/dist/esm/nylas-provider.entry.js.map +1 -1
  612. package/dist/esm/nylas-scheduler-editor.entry.js +7257 -74
  613. package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
  614. package/dist/esm/nylas-scheduling.entry.js +17 -13
  615. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  616. package/dist/esm/nylas-selected-event-card.entry.js +4 -4
  617. package/dist/esm/nylas-selected-event-card.entry.js.map +1 -1
  618. package/dist/esm/nylas-summarize-message-button.entry.js +4 -4
  619. package/dist/esm/nylas-threads-refresh.entry.js +4 -4
  620. package/dist/esm/nylas-threads-search.entry.js +3 -3
  621. package/dist/esm/nylas-time-window-picker.entry.js +4 -4
  622. package/dist/esm/nylas-time-window-picker.entry.js.map +1 -1
  623. package/dist/esm/nylas-timeslot-picker.entry.js +3 -3
  624. package/dist/esm/nylas-timeslot-picker.entry.js.map +1 -1
  625. package/dist/esm/nylas-view-email.entry.js +2 -2
  626. package/dist/esm/nylas-view-thread.entry.js +3 -3
  627. package/dist/esm/nylas-web-elements.js +3 -3
  628. package/dist/esm/people-icon.entry.js +2 -2
  629. package/dist/esm/play-icon.entry.js +2 -2
  630. package/dist/esm/play-icon_2.entry.js +3 -3
  631. package/dist/esm/refresh-icon.entry.js +2 -2
  632. package/dist/{nylas-web-elements/register-component-93f9bcf5.js → esm/register-component-0645dce0.js} +2 -2
  633. package/dist/esm/{register-component-93f9bcf5.js.map → register-component-0645dce0.js.map} +1 -1
  634. package/dist/esm/{register-component-d056a880.js → register-component-dc659dc3.js} +3 -3
  635. package/dist/esm/{register-component-d056a880.js.map → register-component-dc659dc3.js.map} +1 -1
  636. package/dist/esm/reply-all-icon.entry.js +2 -2
  637. package/dist/esm/reply-icon.entry.js +2 -2
  638. package/dist/esm/scheduler-config-store-51ee4f42.js +17 -0
  639. package/dist/esm/scheduler-config-store-51ee4f42.js.map +1 -0
  640. package/dist/esm/scheduler-config-store-bc59545b.js +17 -0
  641. package/dist/esm/scheduler-config-store-bc59545b.js.map +1 -0
  642. package/dist/esm/{scheduler-store-f2e72da4.js → scheduler-store-4d0a4f8a.js} +3 -2
  643. package/dist/esm/scheduler-store-4d0a4f8a.js.map +1 -0
  644. package/dist/esm/{scheduler-store-0fbe642c.js → scheduler-store-72116723.js} +4 -3
  645. package/dist/esm/scheduler-store-72116723.js.map +1 -0
  646. package/dist/esm/search-icon.entry.js +2 -2
  647. package/dist/esm/select-dropdown.entry.js +21 -4
  648. package/dist/esm/select-dropdown.entry.js.map +1 -1
  649. package/dist/esm/sent-icon.entry.js +2 -2
  650. package/dist/esm/spam-icon.entry.js +2 -2
  651. package/dist/esm/star-icon.entry.js +2 -2
  652. package/dist/esm/stop-icon.entry.js +2 -2
  653. package/dist/esm/time-period-selector.entry.js +100 -0
  654. package/dist/esm/time-period-selector.entry.js.map +1 -0
  655. package/dist/esm/tooltip-component.entry.js +2 -2
  656. package/dist/esm/translate-icon.entry.js +2 -2
  657. package/dist/esm/trash-icon.entry.js +2 -2
  658. package/dist/esm/underline-icon.entry.js +2 -2
  659. package/dist/esm/{utils-0cd66d04.js → utils-c00bdc3c.js} +2 -2
  660. package/dist/esm/{utils-0cd66d04.js.map → utils-c00bdc3c.js.map} +1 -1
  661. package/dist/esm/warning-icon.entry.js +2 -2
  662. package/dist/nylas-web-elements/add-circle-icon.entry.js +2 -2
  663. package/dist/nylas-web-elements/archive-icon.entry.js +2 -2
  664. package/dist/nylas-web-elements/arrow-icon.entry.js +2 -2
  665. package/dist/nylas-web-elements/bold-icon.entry.js +2 -2
  666. package/dist/nylas-web-elements/button-component.entry.js +26 -0
  667. package/dist/nylas-web-elements/button-component.entry.js.map +1 -0
  668. package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +2 -2
  669. package/dist/nylas-web-elements/calendar-check-icon.entry.js +2 -2
  670. package/dist/nylas-web-elements/calendar-icon.entry.js +2 -2
  671. package/dist/nylas-web-elements/calendar-info-icon.entry.js +2 -2
  672. package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +2 -2
  673. package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +2 -2
  674. package/dist/nylas-web-elements/chevron-icon.entry.js +2 -2
  675. package/dist/nylas-web-elements/close-icon.entry.js +2 -2
  676. package/dist/{esm/constants-56fee505.js → nylas-web-elements/constants-335dffcf.js} +2 -1
  677. package/dist/{esm/constants-56fee505.js.map → nylas-web-elements/constants-335dffcf.js.map} +1 -1
  678. package/dist/nylas-web-elements/document-refresh-icon.entry.js +2 -2
  679. package/dist/nylas-web-elements/flow-icon.entry.js +2 -2
  680. package/dist/nylas-web-elements/folder-icon.entry.js +2 -2
  681. package/dist/nylas-web-elements/forward-icon.entry.js +2 -2
  682. package/dist/nylas-web-elements/globe-icon.entry.js +2 -2
  683. package/dist/nylas-web-elements/google-logo-icon.entry.js +19 -0
  684. package/dist/nylas-web-elements/google-logo-icon.entry.js.map +1 -0
  685. package/dist/nylas-web-elements/inbox-icon.entry.js +2 -2
  686. package/dist/{esm/index-7b27868b.js → nylas-web-elements/index-11d12497.js} +2 -2
  687. package/dist/nylas-web-elements/{index-7b27868b.js.map → index-11d12497.js.map} +1 -1
  688. package/dist/nylas-web-elements/{index-bda1cba1.js → index-8362ce5c.js} +2 -2
  689. package/dist/nylas-web-elements/index-8362ce5c.js.map +1 -0
  690. package/dist/{esm/index.es-a9f78dad.js → nylas-web-elements/index.es-bd511719.js} +7 -3
  691. package/dist/nylas-web-elements/index.es-bd511719.js.map +1 -0
  692. package/dist/nylas-web-elements/index.esm.js +3 -2
  693. package/dist/nylas-web-elements/index.esm.js.map +1 -1
  694. package/dist/nylas-web-elements/info-icon.entry.js +2 -2
  695. package/dist/nylas-web-elements/italic-icon.entry.js +2 -2
  696. package/dist/nylas-web-elements/loading-icon.entry.js +2 -2
  697. package/dist/nylas-web-elements/location-icon.entry.js +2 -2
  698. package/dist/nylas-web-elements/location-off-icon.entry.js +2 -2
  699. package/dist/{esm/mailbox-store-8a1c2d32.js → nylas-web-elements/mailbox-store-150cc456.js} +80 -4
  700. package/dist/nylas-web-elements/mailbox-store-150cc456.js.map +1 -0
  701. package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +19 -0
  702. package/dist/nylas-web-elements/microsoft-logo-icon.entry.js.map +1 -0
  703. package/dist/nylas-web-elements/multi-select-dropdown.entry.js +3 -3
  704. package/dist/nylas-web-elements/nylas-additional-participants.entry.js +6 -6
  705. package/dist/nylas-web-elements/nylas-additional-participants.entry.js.map +1 -1
  706. package/dist/nylas-web-elements/nylas-api-request-55446aba.js +37 -0
  707. package/dist/nylas-web-elements/nylas-api-request-55446aba.js.map +1 -0
  708. package/dist/nylas-web-elements/nylas-availability-picker.entry.js +9 -9
  709. package/dist/nylas-web-elements/nylas-availability-picker.entry.js.map +1 -1
  710. package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +4 -4
  711. package/dist/nylas-web-elements/nylas-booked-event-card.entry.js.map +1 -1
  712. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +4 -4
  713. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js.map +1 -1
  714. package/dist/nylas-web-elements/nylas-booking-form.entry.js +3 -3
  715. package/dist/nylas-web-elements/nylas-booking-form.entry.js.map +1 -1
  716. package/dist/nylas-web-elements/nylas-buffer-time.entry.js +5 -5
  717. package/dist/nylas-web-elements/nylas-buffer-time.entry.js.map +1 -1
  718. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +4 -4
  719. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js.map +1 -1
  720. package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +4 -4
  721. package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js.map +1 -1
  722. package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +3 -3
  723. package/dist/nylas-web-elements/nylas-composer.entry.js +2 -2
  724. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +3 -3
  725. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js.map +1 -1
  726. package/dist/nylas-web-elements/nylas-date-picker.entry.js +3 -3
  727. package/dist/nylas-web-elements/nylas-date-picker.entry.js.map +1 -1
  728. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +100 -48
  729. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
  730. package/dist/nylas-web-elements/nylas-event-description.entry.js +3 -3
  731. package/dist/nylas-web-elements/nylas-event-description.entry.js.map +1 -1
  732. package/dist/nylas-web-elements/nylas-event-duration.entry.js +4 -4
  733. package/dist/nylas-web-elements/nylas-event-duration.entry.js.map +1 -1
  734. package/dist/nylas-web-elements/nylas-event-info.entry.js +4 -4
  735. package/dist/nylas-web-elements/nylas-event-info.entry.js.map +1 -1
  736. package/dist/nylas-web-elements/nylas-event-limits.entry.js +64 -0
  737. package/dist/nylas-web-elements/nylas-event-limits.entry.js.map +1 -0
  738. package/dist/nylas-web-elements/nylas-event-title.entry.js +4 -4
  739. package/dist/nylas-web-elements/nylas-event-title.entry.js.map +1 -1
  740. package/dist/nylas-web-elements/nylas-form-card.entry.js +4 -4
  741. package/dist/nylas-web-elements/nylas-form-card.entry.js.map +1 -1
  742. package/dist/nylas-web-elements/nylas-if-state.entry.js +2 -2
  743. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +118 -0
  744. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js.map +1 -0
  745. package/dist/nylas-web-elements/nylas-list-folders.entry.js +3 -3
  746. package/dist/nylas-web-elements/nylas-list-threads.entry.js +3 -3
  747. package/dist/nylas-web-elements/nylas-locale-switch.entry.js +4 -4
  748. package/dist/nylas-web-elements/nylas-locale-switch.entry.js.map +1 -1
  749. package/dist/nylas-web-elements/nylas-location-component.entry.js +5 -5
  750. package/dist/nylas-web-elements/nylas-location-component.entry.js.map +1 -1
  751. package/dist/nylas-web-elements/nylas-login.entry.js +3 -3
  752. package/dist/nylas-web-elements/nylas-logo.entry.js +2 -2
  753. package/dist/nylas-web-elements/nylas-mailbox-pagination.entry.js +2 -2
  754. package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +3 -3
  755. package/dist/nylas-web-elements/nylas-mailbox.entry.js +5 -6
  756. package/dist/nylas-web-elements/nylas-mailbox.entry.js.map +1 -1
  757. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +141 -0
  758. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js.map +1 -0
  759. package/dist/nylas-web-elements/nylas-notification.entry.js +2 -2
  760. package/dist/nylas-web-elements/nylas-provider.entry.js +7 -19
  761. package/dist/nylas-web-elements/nylas-provider.entry.js.map +1 -1
  762. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +7257 -74
  763. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
  764. package/dist/nylas-web-elements/nylas-scheduling.entry.js +17 -13
  765. package/dist/nylas-web-elements/nylas-scheduling.entry.js.map +1 -1
  766. package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +4 -4
  767. package/dist/nylas-web-elements/nylas-selected-event-card.entry.js.map +1 -1
  768. package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +4 -4
  769. package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +4 -4
  770. package/dist/nylas-web-elements/nylas-threads-search.entry.js +3 -3
  771. package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +4 -4
  772. package/dist/nylas-web-elements/nylas-time-window-picker.entry.js.map +1 -1
  773. package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +3 -3
  774. package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js.map +1 -1
  775. package/dist/nylas-web-elements/nylas-view-email.entry.js +2 -2
  776. package/dist/nylas-web-elements/nylas-view-thread.entry.js +3 -3
  777. package/dist/nylas-web-elements/nylas-web-elements.esm.js +3 -3
  778. package/dist/nylas-web-elements/p-006ab406.entry.js +2 -0
  779. package/dist/nylas-web-elements/p-006ab406.entry.js.map +1 -0
  780. package/dist/nylas-web-elements/p-01bf65c2.entry.js +2 -0
  781. package/dist/nylas-web-elements/{p-bf2887bd.js → p-1819b3d7.js} +2 -2
  782. package/dist/nylas-web-elements/{p-bf2887bd.js.map → p-1819b3d7.js.map} +1 -1
  783. package/dist/nylas-web-elements/{p-26b75895.entry.js → p-2523c292.entry.js} +2 -2
  784. package/dist/nylas-web-elements/p-2c5d5953.entry.js +2 -0
  785. package/dist/nylas-web-elements/p-2c5d5953.entry.js.map +1 -0
  786. package/dist/nylas-web-elements/p-3631e6e5.entry.js +2 -0
  787. package/dist/nylas-web-elements/p-3631e6e5.entry.js.map +1 -0
  788. package/dist/nylas-web-elements/p-374527e6.entry.js +2 -0
  789. package/dist/nylas-web-elements/p-374527e6.entry.js.map +1 -0
  790. package/dist/nylas-web-elements/{p-0195d832.entry.js → p-395f49eb.entry.js} +2 -2
  791. package/dist/nylas-web-elements/p-39b280e2.entry.js +2 -0
  792. package/dist/nylas-web-elements/p-39b280e2.entry.js.map +1 -0
  793. package/dist/nylas-web-elements/p-3da66838.entry.js +2 -0
  794. package/dist/nylas-web-elements/p-3da66838.entry.js.map +1 -0
  795. package/dist/nylas-web-elements/{p-9955e9b6.js → p-408dda49.js} +2 -2
  796. package/dist/nylas-web-elements/{p-31f12f3f.entry.js → p-409d4410.entry.js} +2 -2
  797. package/dist/nylas-web-elements/{p-3105fc0a.entry.js → p-40ed7eab.entry.js} +2 -2
  798. package/dist/nylas-web-elements/{p-412215d1.entry.js → p-41c1654e.entry.js} +2 -2
  799. package/dist/nylas-web-elements/{p-a959a080.entry.js → p-42a4c2fd.entry.js} +2 -2
  800. package/dist/nylas-web-elements/{p-68f47a72.entry.js → p-4d9fceeb.entry.js} +2 -2
  801. package/dist/nylas-web-elements/p-59b6ae90.entry.js +2 -0
  802. package/dist/nylas-web-elements/p-59b6ae90.entry.js.map +1 -0
  803. package/dist/nylas-web-elements/p-5a3809a7.entry.js +2 -0
  804. package/dist/nylas-web-elements/p-5a3809a7.entry.js.map +1 -0
  805. package/dist/nylas-web-elements/{p-c0fac9fc.entry.js → p-64364434.entry.js} +2 -2
  806. package/dist/nylas-web-elements/p-65fdfb60.js +2 -0
  807. package/dist/nylas-web-elements/p-65fdfb60.js.map +1 -0
  808. package/dist/nylas-web-elements/p-68c2fadf.js +3 -0
  809. package/dist/nylas-web-elements/{p-e4b9d6af.js.map → p-68c2fadf.js.map} +1 -1
  810. package/dist/nylas-web-elements/{p-67f20520.entry.js → p-7b1bb792.entry.js} +3 -3
  811. package/dist/nylas-web-elements/{p-facc84f3.js → p-901f9612.js} +2 -2
  812. package/dist/nylas-web-elements/{p-e324add5.entry.js → p-9dac153b.entry.js} +2 -2
  813. package/dist/nylas-web-elements/p-9f168ff0.js +2 -0
  814. package/dist/nylas-web-elements/{p-ce89d941.js.map → p-9f168ff0.js.map} +1 -1
  815. package/dist/nylas-web-elements/p-a0c2ce03.entry.js +2 -0
  816. package/dist/nylas-web-elements/{p-f8e59935.entry.js → p-a1e27dc5.entry.js} +2 -2
  817. package/dist/nylas-web-elements/p-a3d5a1dd.entry.js +2 -0
  818. package/dist/nylas-web-elements/p-ad9c3cab.entry.js +2 -0
  819. package/dist/nylas-web-elements/p-ad9c3cab.entry.js.map +1 -0
  820. package/dist/nylas-web-elements/{p-5d875283.entry.js → p-ae01e1cb.entry.js} +2 -2
  821. package/dist/nylas-web-elements/p-af22da60.entry.js +17 -0
  822. package/dist/nylas-web-elements/p-af22da60.entry.js.map +1 -0
  823. package/dist/nylas-web-elements/{p-b54b575a.entry.js → p-b2208193.entry.js} +2 -2
  824. package/dist/nylas-web-elements/{p-02435888.entry.js → p-ba3d383f.entry.js} +2 -2
  825. package/dist/nylas-web-elements/{p-f826c690.entry.js → p-baa620b4.entry.js} +2 -2
  826. package/dist/nylas-web-elements/p-bfdc148c.entry.js +2 -0
  827. package/dist/nylas-web-elements/{p-65b275df.js → p-cabb2e68.js} +2 -2
  828. package/dist/nylas-web-elements/p-cadc9052.js +2 -0
  829. package/dist/nylas-web-elements/p-cadc9052.js.map +1 -0
  830. package/dist/nylas-web-elements/p-d224c7af.entry.js +2 -0
  831. package/dist/nylas-web-elements/p-d224c7af.entry.js.map +1 -0
  832. package/dist/nylas-web-elements/p-d67d1c72.js +2 -0
  833. package/dist/nylas-web-elements/p-d67d1c72.js.map +1 -0
  834. package/dist/nylas-web-elements/p-d85eecf4.entry.js +2 -0
  835. package/dist/nylas-web-elements/p-d85eecf4.entry.js.map +1 -0
  836. package/dist/nylas-web-elements/p-d92a0405.entry.js +2 -0
  837. package/dist/nylas-web-elements/p-dc1cee56.entry.js +2 -0
  838. package/dist/nylas-web-elements/p-dc1cee56.entry.js.map +1 -0
  839. package/dist/nylas-web-elements/p-de63bc35.entry.js +2 -0
  840. package/dist/nylas-web-elements/{p-22c0a883.entry.js → p-deafc6bc.entry.js} +2 -2
  841. package/dist/nylas-web-elements/{p-64be0bab.js → p-df5e9aaf.js} +2 -2
  842. package/dist/nylas-web-elements/p-df5e9aaf.js.map +1 -0
  843. package/dist/nylas-web-elements/p-f48d0571.entry.js +2 -0
  844. package/dist/nylas-web-elements/p-fbbca7a6.entry.js +2 -0
  845. package/dist/nylas-web-elements/people-icon.entry.js +2 -2
  846. package/dist/nylas-web-elements/play-icon.entry.js +2 -2
  847. package/dist/nylas-web-elements/refresh-icon.entry.js +2 -2
  848. package/dist/{esm/register-component-93f9bcf5.js → nylas-web-elements/register-component-0645dce0.js} +2 -2
  849. package/dist/nylas-web-elements/{register-component-93f9bcf5.js.map → register-component-0645dce0.js.map} +1 -1
  850. package/dist/nylas-web-elements/reply-all-icon.entry.js +2 -2
  851. package/dist/nylas-web-elements/reply-icon.entry.js +2 -2
  852. package/dist/nylas-web-elements/scheduler-config-store-bc59545b.js +17 -0
  853. package/dist/nylas-web-elements/scheduler-config-store-bc59545b.js.map +1 -0
  854. package/dist/nylas-web-elements/{scheduler-store-f2e72da4.js → scheduler-store-4d0a4f8a.js} +3 -2
  855. package/dist/nylas-web-elements/scheduler-store-4d0a4f8a.js.map +1 -0
  856. package/dist/nylas-web-elements/search-icon.entry.js +2 -2
  857. package/dist/nylas-web-elements/select-dropdown.entry.js +21 -4
  858. package/dist/nylas-web-elements/select-dropdown.entry.js.map +1 -1
  859. package/dist/nylas-web-elements/sent-icon.entry.js +2 -2
  860. package/dist/nylas-web-elements/spam-icon.entry.js +2 -2
  861. package/dist/nylas-web-elements/star-icon.entry.js +2 -2
  862. package/dist/nylas-web-elements/stop-icon.entry.js +2 -2
  863. package/dist/nylas-web-elements/time-period-selector.entry.js +100 -0
  864. package/dist/nylas-web-elements/time-period-selector.entry.js.map +1 -0
  865. package/dist/nylas-web-elements/tooltip-component.entry.js +2 -2
  866. package/dist/nylas-web-elements/translate-icon.entry.js +2 -2
  867. package/dist/nylas-web-elements/trash-icon.entry.js +2 -2
  868. package/dist/nylas-web-elements/underline-icon.entry.js +2 -2
  869. package/dist/nylas-web-elements/warning-icon.entry.js +2 -2
  870. package/dist/types/common/icons/google-logo.d.ts +5 -0
  871. package/dist/types/common/icons/microsoft-logo.d.ts +5 -0
  872. package/dist/types/common/nylas-api-request.d.ts +35 -0
  873. package/dist/types/components/design-system/button-component/button-component.d.ts +13 -0
  874. package/dist/types/components/design-system/select-dropdown/select-dropdown.d.ts +3 -0
  875. package/dist/types/components/design-system/time-period-selector/time-period-selector.d.ts +31 -0
  876. package/dist/types/components/scheduler/nylas-scheduler/nylas-scheduling.d.ts +1 -0
  877. package/dist/types/components/scheduler/nylas-scheduler/scheduler-view.d.ts +1 -0
  878. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +21 -28
  879. package/dist/types/components/scheduler-editor/nylas-editor-tabs/tab-contents.d.ts +7 -0
  880. package/dist/types/components/scheduler-editor/nylas-event-limits/nylas-event-limits.d.ts +8 -0
  881. package/dist/types/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.d.ts +28 -0
  882. package/dist/types/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.d.ts +25 -0
  883. package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +12 -10
  884. package/dist/types/components.d.ts +314 -19
  885. package/dist/types/connector/connector-interface.d.ts +1 -1
  886. package/dist/types/connector/nylas-connector/index.d.ts +1 -4
  887. package/dist/types/connector/nylas-scheduler-config-connector/index.d.ts +5 -32
  888. package/dist/types/connector/shared/api/scheduler-config.d.ts +12 -11
  889. package/dist/types/index.d.ts +2 -0
  890. package/dist/types/stores/auth-session-store.d.ts +9 -0
  891. package/dist/types/stores/scheduler-config-store.d.ts +5 -2
  892. package/dist/types/stores/scheduler-store.d.ts +1 -0
  893. package/package.json +10 -7
  894. package/dist/cjs/add-circle-icon_18.cjs.entry.js.map +0 -1
  895. package/dist/cjs/auth-store-78906da5.js +0 -85
  896. package/dist/cjs/auth-store-78906da5.js.map +0 -1
  897. package/dist/cjs/auth-store-be4bbe89.js +0 -85
  898. package/dist/cjs/auth-store-be4bbe89.js.map +0 -1
  899. package/dist/cjs/index-37045c7b.js.map +0 -1
  900. package/dist/cjs/index-ec8e2a4d.js.map +0 -1
  901. package/dist/cjs/index.es-3c12ec8c.js.map +0 -1
  902. package/dist/cjs/index.es-9122f5a3.js.map +0 -1
  903. package/dist/cjs/mailbox-store-37622628.js.map +0 -1
  904. package/dist/cjs/mailbox-store-5cd5e485.js.map +0 -1
  905. package/dist/cjs/nylas-if-state_3.cjs.entry.js +0 -411
  906. package/dist/cjs/nylas-if-state_3.cjs.entry.js.map +0 -1
  907. package/dist/cjs/scheduler-config-store-03b22a70.js +0 -47
  908. package/dist/cjs/scheduler-config-store-03b22a70.js.map +0 -1
  909. package/dist/cjs/scheduler-config-store-9577e499.js +0 -47
  910. package/dist/cjs/scheduler-config-store-9577e499.js.map +0 -1
  911. package/dist/cjs/scheduler-store-41b6d179.js.map +0 -1
  912. package/dist/cjs/scheduler-store-65f0fbe5.js.map +0 -1
  913. package/dist/components/auth-store.js +0 -82
  914. package/dist/components/auth-store.js.map +0 -1
  915. package/dist/esm/add-circle-icon_18.entry.js.map +0 -1
  916. package/dist/esm/auth-store-69ac49c7.js +0 -82
  917. package/dist/esm/auth-store-69ac49c7.js.map +0 -1
  918. package/dist/esm/auth-store-f46d9222.js +0 -82
  919. package/dist/esm/auth-store-f46d9222.js.map +0 -1
  920. package/dist/esm/index-0583f8a8.js.map +0 -1
  921. package/dist/esm/index-bda1cba1.js.map +0 -1
  922. package/dist/esm/index.es-0a5de5bf.js.map +0 -1
  923. package/dist/esm/index.es-a9f78dad.js.map +0 -1
  924. package/dist/esm/mailbox-store-8a1c2d32.js.map +0 -1
  925. package/dist/esm/mailbox-store-e721b17c.js.map +0 -1
  926. package/dist/esm/nylas-if-state_3.entry.js +0 -405
  927. package/dist/esm/nylas-if-state_3.entry.js.map +0 -1
  928. package/dist/esm/scheduler-config-store-4d035001.js +0 -44
  929. package/dist/esm/scheduler-config-store-4d035001.js.map +0 -1
  930. package/dist/esm/scheduler-config-store-8f162729.js +0 -44
  931. package/dist/esm/scheduler-config-store-8f162729.js.map +0 -1
  932. package/dist/esm/scheduler-store-0fbe642c.js.map +0 -1
  933. package/dist/esm/scheduler-store-f2e72da4.js.map +0 -1
  934. package/dist/nylas-web-elements/auth-store-f46d9222.js +0 -82
  935. package/dist/nylas-web-elements/auth-store-f46d9222.js.map +0 -1
  936. package/dist/nylas-web-elements/index-bda1cba1.js.map +0 -1
  937. package/dist/nylas-web-elements/index.es-a9f78dad.js.map +0 -1
  938. package/dist/nylas-web-elements/mailbox-store-8a1c2d32.js.map +0 -1
  939. package/dist/nylas-web-elements/p-18c6ddfa.entry.js +0 -2
  940. package/dist/nylas-web-elements/p-1af51c6b.js +0 -2
  941. package/dist/nylas-web-elements/p-1af51c6b.js.map +0 -1
  942. package/dist/nylas-web-elements/p-1c3b651f.entry.js +0 -2
  943. package/dist/nylas-web-elements/p-1c3b651f.entry.js.map +0 -1
  944. package/dist/nylas-web-elements/p-558faafb.entry.js +0 -2
  945. package/dist/nylas-web-elements/p-558faafb.entry.js.map +0 -1
  946. package/dist/nylas-web-elements/p-5642190a.entry.js +0 -2
  947. package/dist/nylas-web-elements/p-5642190a.entry.js.map +0 -1
  948. package/dist/nylas-web-elements/p-577ecdd4.entry.js +0 -2
  949. package/dist/nylas-web-elements/p-577ecdd4.entry.js.map +0 -1
  950. package/dist/nylas-web-elements/p-578f4029.js +0 -2
  951. package/dist/nylas-web-elements/p-578f4029.js.map +0 -1
  952. package/dist/nylas-web-elements/p-5c72d9a4.js +0 -2
  953. package/dist/nylas-web-elements/p-5c72d9a4.js.map +0 -1
  954. package/dist/nylas-web-elements/p-5fd0eb1d.entry.js +0 -2
  955. package/dist/nylas-web-elements/p-64be0bab.js.map +0 -1
  956. package/dist/nylas-web-elements/p-6aa84fd8.entry.js +0 -2
  957. package/dist/nylas-web-elements/p-6c84f99e.entry.js +0 -2
  958. package/dist/nylas-web-elements/p-6c84f99e.entry.js.map +0 -1
  959. package/dist/nylas-web-elements/p-80079122.entry.js +0 -2
  960. package/dist/nylas-web-elements/p-a30e3755.entry.js +0 -2
  961. package/dist/nylas-web-elements/p-afdac062.entry.js +0 -2
  962. package/dist/nylas-web-elements/p-afdac062.entry.js.map +0 -1
  963. package/dist/nylas-web-elements/p-be3b6e3a.entry.js +0 -2
  964. package/dist/nylas-web-elements/p-be3b6e3a.entry.js.map +0 -1
  965. package/dist/nylas-web-elements/p-cc6721a7.entry.js +0 -2
  966. package/dist/nylas-web-elements/p-ce89d941.js +0 -2
  967. package/dist/nylas-web-elements/p-e4b9d6af.js +0 -3
  968. package/dist/nylas-web-elements/p-e4ec4651.entry.js +0 -2
  969. package/dist/nylas-web-elements/p-e4ec4651.entry.js.map +0 -1
  970. package/dist/nylas-web-elements/p-f442a2f9.entry.js +0 -2
  971. package/dist/nylas-web-elements/p-f78abda8.entry.js +0 -2
  972. package/dist/nylas-web-elements/p-f78abda8.entry.js.map +0 -1
  973. package/dist/nylas-web-elements/p-f8056365.entry.js +0 -2
  974. package/dist/nylas-web-elements/p-fbe6262b.entry.js +0 -2
  975. package/dist/nylas-web-elements/p-fbe6262b.entry.js.map +0 -1
  976. package/dist/nylas-web-elements/scheduler-config-store-8f162729.js +0 -44
  977. package/dist/nylas-web-elements/scheduler-config-store-8f162729.js.map +0 -1
  978. package/dist/nylas-web-elements/scheduler-store-f2e72da4.js.map +0 -1
  979. /package/dist/nylas-web-elements/{p-5fd0eb1d.entry.js.map → p-01bf65c2.entry.js.map} +0 -0
  980. /package/dist/nylas-web-elements/{p-26b75895.entry.js.map → p-2523c292.entry.js.map} +0 -0
  981. /package/dist/nylas-web-elements/{p-0195d832.entry.js.map → p-395f49eb.entry.js.map} +0 -0
  982. /package/dist/nylas-web-elements/{p-9955e9b6.js.map → p-408dda49.js.map} +0 -0
  983. /package/dist/nylas-web-elements/{p-31f12f3f.entry.js.map → p-409d4410.entry.js.map} +0 -0
  984. /package/dist/nylas-web-elements/{p-3105fc0a.entry.js.map → p-40ed7eab.entry.js.map} +0 -0
  985. /package/dist/nylas-web-elements/{p-412215d1.entry.js.map → p-41c1654e.entry.js.map} +0 -0
  986. /package/dist/nylas-web-elements/{p-a959a080.entry.js.map → p-42a4c2fd.entry.js.map} +0 -0
  987. /package/dist/nylas-web-elements/{p-68f47a72.entry.js.map → p-4d9fceeb.entry.js.map} +0 -0
  988. /package/dist/nylas-web-elements/{p-c0fac9fc.entry.js.map → p-64364434.entry.js.map} +0 -0
  989. /package/dist/nylas-web-elements/{p-67f20520.entry.js.map → p-7b1bb792.entry.js.map} +0 -0
  990. /package/dist/nylas-web-elements/{p-facc84f3.js.map → p-901f9612.js.map} +0 -0
  991. /package/dist/nylas-web-elements/{p-e324add5.entry.js.map → p-9dac153b.entry.js.map} +0 -0
  992. /package/dist/nylas-web-elements/{p-6aa84fd8.entry.js.map → p-a0c2ce03.entry.js.map} +0 -0
  993. /package/dist/nylas-web-elements/{p-f8e59935.entry.js.map → p-a1e27dc5.entry.js.map} +0 -0
  994. /package/dist/nylas-web-elements/{p-18c6ddfa.entry.js.map → p-a3d5a1dd.entry.js.map} +0 -0
  995. /package/dist/nylas-web-elements/{p-5d875283.entry.js.map → p-ae01e1cb.entry.js.map} +0 -0
  996. /package/dist/nylas-web-elements/{p-b54b575a.entry.js.map → p-b2208193.entry.js.map} +0 -0
  997. /package/dist/nylas-web-elements/{p-02435888.entry.js.map → p-ba3d383f.entry.js.map} +0 -0
  998. /package/dist/nylas-web-elements/{p-f826c690.entry.js.map → p-baa620b4.entry.js.map} +0 -0
  999. /package/dist/nylas-web-elements/{p-f8056365.entry.js.map → p-bfdc148c.entry.js.map} +0 -0
  1000. /package/dist/nylas-web-elements/{p-65b275df.js.map → p-cabb2e68.js.map} +0 -0
  1001. /package/dist/nylas-web-elements/{p-cc6721a7.entry.js.map → p-d92a0405.entry.js.map} +0 -0
  1002. /package/dist/nylas-web-elements/{p-a30e3755.entry.js.map → p-de63bc35.entry.js.map} +0 -0
  1003. /package/dist/nylas-web-elements/{p-22c0a883.entry.js.map → p-deafc6bc.entry.js.map} +0 -0
  1004. /package/dist/nylas-web-elements/{p-f442a2f9.entry.js.map → p-f48d0571.entry.js.map} +0 -0
  1005. /package/dist/nylas-web-elements/{p-80079122.entry.js.map → p-fbbca7a6.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["ErrorCategory","ComponentErrorType","APIErrorType","Errors","constructor","this","component","_title","category","Component","title","endtime_not_in_future","message","no_booking_info","no_timeslot_selected","no_booking_id","invalid_start_time","invalid_end_time","invalid_timezone","api","Api","invalid_session","general_error","internal_error","invalid_request_error","timeslot_not_available","NylaSchedulerAPIConnector","schedulerAPIURL","schedulerStore","sessionId","configId","errors","getHeaders","Authorization","makeAPIRequest","path","method","body","headers","schedulerURL","URL","pathname","response","fetch","decodeURIComponent","toString","data","json","error","type","selectDate","date","set","selectTime","time","selectTimezone","timezone","toggleAdditionalData","value","setParticipantName","name","bookingInfo","state","primaryParticipant","setParticipantEmail","email","setReschedule","bookingID","today","Date","startTime","getFullYear","getMonth","getTime","endTime","result","getAvailability","firstAvailableDate","get","find","timeslot","start_time","_selectedDate","setCancel","bookTimeslot","selectedTimeslot","guests","additional_fields","additionalFields","configIdParam","url","JSON","stringify","guest","end_time","errorType","params","URLSearchParams","now","nowTime","startOfMonth","Math","floor","endOfMonth","append","encodeURIComponent","queryString","undefined","availability","time_slots","map","availabilityTimeslotsFiltered","filter","cancelBooking","bookingId","action","booking_id","rescheduleBooking","apiErrors","componentErrors","selectedTimezone","time_zone","CreateNylasSchedulerStore","defaultState","defaultNylasStoreState","selectedDate","selectedLanguage","navigator","language","Intl","DateTimeFormat","resolvedOptions","timeZone","showBookingForm","selectableDates","eventInfo","cancelledEventInfo","isLoading","debug","store","createStore","onChange","reset","key"],"sources":["src/connector/nylas-scheduler-connector/errors/index.ts","src/connector/shared/api/scheduler.ts","src/stores/scheduler-store.ts"],"sourcesContent":["export enum ErrorCategory {\n Component = 'component',\n Api = 'api',\n Auth = 'auth',\n}\n\nexport interface ErrorDetails {\n title: string;\n message: string;\n category: ErrorCategory;\n}\n\nexport enum ComponentErrorType {\n endtime_not_in_future = 'endtime_not_in_future',\n no_booking_info = 'no_booking_info',\n no_timeslot_selected = 'no_timeslot_selected',\n no_booking_id = 'no_booking_id',\n invalid_start_time = 'invalid_start_time',\n invalid_end_time = 'invalid_end_time',\n invalid_timezone = 'invalid_timezone',\n}\n\nexport enum APIErrorType {\n invalid_session = 'invalid_session',\n general_error = 'general_error',\n internal_error = 'internal_error',\n invalid_request_error = 'invalid_request_error',\n timeslot_not_available = 'timeslot_not_available',\n}\n\nexport class Errors {\n component = (_title: string): Record<ComponentErrorType, (message?: string) => ErrorDetails> => {\n const category = ErrorCategory.Component;\n const title = `${_title} error`;\n return {\n endtime_not_in_future: (message: string = '\"endtime\" can not be in the future') => {\n return {\n title,\n message,\n category,\n };\n },\n no_booking_info: (message: string = 'No booking info provided') => {\n return {\n title,\n message,\n category,\n };\n },\n no_timeslot_selected: (message: string = 'No timeslot selected') => {\n return {\n title,\n message,\n category,\n };\n },\n no_booking_id: (message: string = 'No booking id provided') => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_start_time: (message: string = 'Invalid start time') => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_end_time: (message: string = 'Invalid end time') => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_timezone: (message: string = 'Invalid timezone') => {\n return {\n title,\n message,\n category,\n };\n },\n };\n };\n\n api = (_title: string): Record<APIErrorType, (message: string) => ErrorDetails> => {\n const category = ErrorCategory.Api;\n const title = `${_title} error`;\n\n return {\n invalid_session: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n general_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n internal_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_request_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n timeslot_not_available: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n };\n };\n}\n","import { AvailabilityResponse, NylasEvent } from '@/common/types';\nimport { NylasSchedulerStoreType } from '../../../components';\nimport type { NylasErrorResponse, NylasResponse, NylasSchedulerBookingData, NylasSchedulerResponse, Timeslot } from '@nylas/core';\nimport { APIErrorType, Errors } from '@/connector/nylas-scheduler-connector/errors';\n\ntype NylasSchedulerAPIConnectorOptions = {\n schedulerAPIURL: string;\n schedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n};\n\n/**\n * NylaSchedulerConnector\n * This class is used to make API requests to the scheduler.\n */\nexport class NylaSchedulerAPIConnector {\n private schedulerStore: NylasSchedulerStoreType;\n private schedulerAPIURL: string;\n private sessionId: string | undefined;\n private configId: string | undefined;\n private errors = new Errors();\n\n constructor({ schedulerAPIURL, schedulerStore, sessionId, configId }: NylasSchedulerAPIConnectorOptions) {\n this.schedulerStore = schedulerStore;\n this.schedulerAPIURL = schedulerAPIURL;\n this.sessionId = sessionId;\n this.configId = configId;\n }\n\n private getHeaders() {\n return !this.configId\n ? {\n Authorization: `Bearer ${this.sessionId}`,\n }\n : {};\n }\n\n /**\n * Makes an API request to the scheduler.\n * @param path The path to the API endpoint.\n * @param method The HTTP method.\n * @param body The request body (if any).\n * @returns {Promise<T>}\n */\n public async makeAPIRequest<T>(path: string, method: string, body: string | undefined, headers = {}): Promise<NylasResponse<T>> {\n try {\n const schedulerURL = new URL(this.schedulerAPIURL);\n schedulerURL.pathname = path;\n const response = await fetch(decodeURIComponent(schedulerURL.toString()), {\n method,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n body,\n });\n // The server returns a json object for errors: eg.\n // {\n // \"request_id\": \"<request_id>\",\n // \"error\": {\n // \"type\": \"not_found_error\",\n // \"message\": \"Session not found\"\n // }\n // }\n const data = await response.json();\n return data as NylasResponse<T>;\n } catch (error: any) {\n // NOTE: current server implementation doesn't return a JSON object for errors on some endpoints\n // handle this case by returning the error response as a string to be handled downstream\n return {\n error: {\n message: error.message,\n title: 'API request failed',\n type: 'api',\n },\n } as NylasErrorResponse;\n }\n }\n\n /**\n * Selects a date in the scheduler.\n */\n public selectDate(date: Date) {\n this.schedulerStore.set('selectedDate', date);\n this.schedulerStore.set('selectedTimeslot', null);\n }\n\n /**\n * Selects a time in the scheduler.\n */\n public selectTime(time: Timeslot) {\n this.schedulerStore.set('selectedTimeslot', time);\n }\n\n /**\n * Sets the timezone in the scheduler.\n */\n public selectTimezone(timezone: string) {\n this.schedulerStore.set('selectedTimezone', timezone);\n }\n\n /**\n * Toggles showBookingForm\n * @param value boolean\n */\n public toggleAdditionalData(value: boolean) {\n this.schedulerStore.set('showBookingForm', value);\n }\n\n /**\n * Set/update the name of the participant booking the event.\n */\n public setParticipantName(name: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n name,\n },\n });\n }\n\n /**\n * Set/update the email of the participant booking the event.\n */\n public setParticipantEmail(email: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n email,\n },\n });\n }\n\n /**\n * Set reschedule booking id\n */\n public async setReschedule(bookingID: string) {\n const today = new Date();\n // Set reschedule booking id\n this.schedulerStore.set('rescheduleBookingId', bookingID);\n // Reset store state\n this.schedulerStore.set('selectedTimeslot', null);\n this.schedulerStore.set('eventInfo', null);\n this.schedulerStore.set('showBookingForm', false);\n // Refetch availability\n const startTime = new Date(today.getFullYear(), today.getMonth(), 1).getTime() / 1000;\n const endTime = new Date(today.getFullYear(), today.getMonth() + 1, 1).getTime() / 1000;\n const result = await this.getAvailability(startTime, endTime);\n // Set selected date to first available date\n const firstAvailableDate = this.schedulerStore.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n let _selectedDate = today;\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n this.schedulerStore.set('selectedDate', _selectedDate);\n return result;\n }\n\n /**\n * Set cancel booking id\n */\n public async setCancel(bookingID: string) {\n this.schedulerStore.set('cancelBookingId', bookingID);\n }\n\n /**\n * Book the selected timeslot.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async bookTimeslot(data?: NylasSchedulerBookingData & { timeslot?: Timeslot }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { selectedTimeslot, bookingInfo } = this.schedulerStore.state;\n if (!data && !bookingInfo) {\n return { error: this.errors.component('Booking').no_booking_info() };\n }\n\n const timeslot = data?.timeslot || selectedTimeslot;\n if (!timeslot) {\n return { error: this.errors.component('Create Booking').no_timeslot_selected() };\n }\n\n const primaryParticipant = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? { ...data?.additionalFields, guests } : { ...bookingInfo?.additionalFields, guests };\n\n const headers = this.getHeaders();\n const configIdParam = this.configId ? `?configuration_id=${this.configId}` : '';\n const url = `/v3/scheduling/bookings${configIdParam}`;\n\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n additional_fields,\n guest: { ...primaryParticipant },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api('Create Booking')) {\n error = this.errors.api('Create Booking')[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n return { error };\n }\n\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response?.data);\n }\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Gets the availability for a page.\n * @param startTime The start time.\n * @param endTime The end time.\n * @returns {Promise<AvailabilityResponse>}\n */\n public async getAvailability(startTime: number = 0, endTime: number = 0): Promise<NylasSchedulerResponse<AvailabilityResponse>> {\n this.schedulerStore.set('isLoading', true);\n const params = new URLSearchParams();\n const now = new Date();\n const nowTime = now.getTime();\n\n if (endTime && endTime < nowTime / 1000) {\n this.schedulerStore.set('isLoading', false);\n const error = this.errors.component('Get Availability').endtime_not_in_future();\n return { error };\n }\n\n // Calculate the start of the current month if startTime is not provided\n if (!startTime) {\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n startTime = Math.floor(startOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n // Calculate the end of the current month if endTime is not provided\n if (!endTime) {\n const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0); // Setting day to 0 gets the last day of the previous month, so in this case, the last day of the current month\n endTime = Math.floor(endOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n params.append('start_time', encodeURIComponent(startTime.toString()));\n params.append('end_time', encodeURIComponent(endTime.toString()));\n if (this.configId) {\n params.append('configuration_id', encodeURIComponent(this.configId));\n }\n const queryString = params.toString();\n const url = `/v3/scheduling/availability${queryString ? `?${queryString}` : ''}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<AvailabilityResponse>(decodeURIComponent(url), 'GET', undefined, headers);\n\n if ('error' in response) {\n this.schedulerStore.set('availability', []);\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api('Get Availability')) {\n error = this.errors.api('Get Availability')[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n return { error };\n }\n\n if ('data' in response) {\n const availability =\n response.data?.time_slots?.map(timeslot => {\n return {\n ...timeslot,\n start_time: new Date(timeslot.start_time * 1000),\n end_time: new Date(timeslot.end_time * 1000),\n };\n }) || [];\n\n // Filter out timeslots that are in the past\n const availabilityTimeslotsFiltered = availability.filter(timeslot => timeslot.start_time.getTime() > nowTime);\n this.schedulerStore.set('availability', availabilityTimeslotsFiltered);\n }\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Cancels a booking.\n * @param bookingId The booking ID.\n */\n public async cancelBooking(bookingId: string): Promise<NylasSchedulerResponse<Partial<NylasEvent>>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component('Cancel Booking').no_booking_id() };\n }\n const configIdParam = this.configId ? `?configuration_id=${this.configId}` : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<Partial<NylasEvent>>(\n decodeURIComponent(url),\n 'DELETE',\n JSON.stringify({\n action: 'cancel',\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api('Cancel Booking')) {\n error = this.errors.api('Cancel Booking')[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n return { error };\n }\n\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Reschedules a booking.\n * @param bookingId The booking ID.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async rescheduleBooking(bookingId: string, data: NylasSchedulerBookingData): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component('Reschedule Booking').no_booking_id() };\n }\n const apiErrors = this.errors.api('Reschedule Booking');\n const componentErrors = this.errors.component('Reschedule Booking');\n const { bookingInfo, selectedTimeslot, selectedTimezone } = this.schedulerStore.state;\n // Validate data\n const { startTime, endTime, timezone } = data;\n const start_time = startTime || selectedTimeslot?.start_time;\n\n if (!start_time) {\n return { error: componentErrors.invalid_start_time('Please pass \"startTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n const end_time = endTime || selectedTimeslot?.end_time;\n if (!end_time) {\n return { error: componentErrors.invalid_end_time('Please pass \"endTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n const time_zone = timezone || selectedTimezone;\n if (!time_zone) {\n return { error: componentErrors.invalid_timezone('Please pass \"timezone\" in data or set \"selectedTimezone\" in the defaultSchedulerState.') };\n }\n\n const primaryParticipant = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? { ...data?.additionalFields, guests } : { ...bookingInfo?.additionalFields, guests };\n\n const configIdParam = this.configId ? `?configuration_id=${this.configId}` : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PATCH',\n JSON.stringify({\n start_time: start_time.getTime() / 1000,\n end_time: end_time.getTime() / 1000,\n time_zone,\n additional_fields,\n guest: { ...primaryParticipant },\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in apiErrors) {\n error = apiErrors[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n }\n\n if ('data' in response) this.schedulerStore.set('eventInfo', response?.data);\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n}\n","import { DataState, NylasEvent } from '@/common/types';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerBookingData, Timeslot } from '@nylas/core';\nimport { createStore } from '@stencil/store';\n\nexport type AvailabilityTimeslot = {\n emails: string[];\n start_time: Date;\n end_time: Date;\n};\n\nexport type LoadingState = {\n api: 'availability' | 'createBooking' | 'cancelBooking' | 'rescheduleBooking';\n};\n\nexport interface NylasSchedulerStoreState {\n selectedDate: Date | null;\n selectedLanguage: string;\n selectedTimezone: string;\n selectedTimeslot: Timeslot | null;\n showBookingForm: boolean;\n selectableDates: Date[] | null;\n availability: AvailabilityTimeslot[];\n state: DataState;\n eventInfo: NylasEvent | null;\n cancelledEventInfo: Partial<NylasEvent> | null;\n bookingInfo?: NylasSchedulerBookingData;\n rescheduleBookingId?: string;\n cancelBookingId?: string;\n isLoading: boolean;\n}\n\nexport type NylasSchedulerStoreType = ReturnType<typeof CreateNylasSchedulerStore>;\n\nexport function CreateNylasSchedulerStore(defaultState: Partial<NylasSchedulerStoreState> = {}) {\n const defaultNylasStoreState: NylasSchedulerStoreState = {\n selectedDate: null,\n selectedLanguage: navigator.language,\n selectedTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n selectedTimeslot: null,\n showBookingForm: false,\n selectableDates: null,\n availability: [],\n state: 'ready',\n eventInfo: null,\n cancelledEventInfo: null,\n isLoading: false,\n ...defaultState,\n };\n debug(`[defaultNylasStoreState]: `, defaultNylasStoreState);\n const store = createStore<NylasSchedulerStoreState>(defaultNylasStoreState);\n\n store.onChange('availability', availability => {\n debug(`[availability]: `, availability);\n const selectableDates = availability.map(timeslot => timeslot.start_time);\n debug(`[selectableDates]: `, selectableDates);\n store.set('selectableDates', selectableDates);\n });\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"],"mappings":"4EAAYA,GAAZ,SAAYA,GACVA,EAAA,yBACAA,EAAA,aACAA,EAAA,cACD,EAJD,CAAYA,MAAa,KAYzB,IAAYC,GAAZ,SAAYA,GACVA,EAAA,iDACAA,EAAA,qCACAA,EAAA,+CACAA,EAAA,iCACAA,EAAA,2CACAA,EAAA,uCACAA,EAAA,sCACD,EARD,CAAYA,MAAkB,KAU9B,IAAYC,GAAZ,SAAYA,GACVA,EAAA,qCACAA,EAAA,iCACAA,EAAA,mCACAA,EAAA,iDACAA,EAAA,kDACD,EAND,CAAYA,MAAY,K,MAQXC,EAAb,WAAAC,GACEC,KAAAC,UAAaC,IACX,MAAMC,EAAWR,EAAcS,UAC/B,MAAMC,EAAQ,GAAGH,UACjB,MAAO,CACLI,sBAAuB,CAACC,EAAkB,wCACjC,CACLF,QACAE,UACAJ,aAGJK,gBAAiB,CAACD,EAAkB,8BAC3B,CACLF,QACAE,UACAJ,aAGJM,qBAAsB,CAACF,EAAkB,0BAChC,CACLF,QACAE,UACAJ,aAGJO,cAAe,CAACH,EAAkB,4BACzB,CACLF,QACAE,UACAJ,aAGJQ,mBAAoB,CAACJ,EAAkB,wBAC9B,CACLF,QACAE,UACAJ,aAGJS,iBAAkB,CAACL,EAAkB,sBAC5B,CACLF,QACAE,UACAJ,aAGJU,iBAAkB,CAACN,EAAkB,sBAC5B,CACLF,QACAE,UACAJ,aAGL,EAGHH,KAAAc,IAAOZ,IACL,MAAMC,EAAWR,EAAcoB,IAC/B,MAAMV,EAAQ,GAAGH,UAEjB,MAAO,CACLc,gBAAkBT,IACT,CACLF,QACAE,UACAJ,aAGJc,cAAgBV,IACP,CACLF,QACAE,UACAJ,aAGJe,eAAiBX,IACR,CACLF,QACAE,UACAJ,aAGJgB,sBAAwBZ,IACf,CACLF,QACAE,UACAJ,aAGJiB,uBAAyBb,IAChB,CACLF,QACAE,UACAJ,aAGL,C,QC/GQkB,EAOX,WAAAtB,EAAYuB,gBAAEA,EAAeC,eAAEA,EAAcC,UAAEA,EAASC,SAAEA,IAFlDzB,KAAA0B,OAAS,IAAI5B,EAGnBE,KAAKuB,eAAiBA,EACtBvB,KAAKsB,gBAAkBA,EACvBtB,KAAKwB,UAAYA,EACjBxB,KAAKyB,SAAWA,C,CAGV,UAAAE,GACN,OAAQ3B,KAAKyB,SACT,CACEG,cAAe,UAAU5B,KAAKwB,aAEhC,E,CAUC,oBAAMK,CAAkBC,EAAcC,EAAgBC,EAA0BC,EAAU,IAC/F,IACE,MAAMC,EAAe,IAAIC,IAAInC,KAAKsB,iBAClCY,EAAaE,SAAWN,EACxB,MAAMO,QAAiBC,MAAMC,mBAAmBL,EAAaM,YAAa,CACxET,SACAE,QAAS,CACP,eAAgB,sBACbA,GAELD,SAUF,MAAMS,QAAaJ,EAASK,OAC5B,OAAOD,C,CACP,MAAOE,GAGP,MAAO,CACLA,MAAO,CACLpC,QAASoC,EAAMpC,QACfF,MAAO,qBACPuC,KAAM,O,EASP,UAAAC,CAAWC,GAChB9C,KAAKuB,eAAewB,IAAI,eAAgBD,GACxC9C,KAAKuB,eAAewB,IAAI,mBAAoB,K,CAMvC,UAAAC,CAAWC,GAChBjD,KAAKuB,eAAewB,IAAI,mBAAoBE,E,CAMvC,cAAAC,CAAeC,GACpBnD,KAAKuB,eAAewB,IAAI,mBAAoBI,E,CAOvC,oBAAAC,CAAqBC,GAC1BrD,KAAKuB,eAAewB,IAAI,kBAAmBM,E,CAMtC,kBAAAC,CAAmBC,GACxB,MAAMC,YAAEA,GAAgBxD,KAAKuB,eAAekC,MAC5CzD,KAAKuB,eAAewB,IAAI,cAAe,IAClCS,EACHE,mBAAoB,IACdF,GAAaE,mBACjBH,S,CAQC,mBAAAI,CAAoBC,GACzB,MAAMJ,YAAEA,GAAgBxD,KAAKuB,eAAekC,MAC5CzD,KAAKuB,eAAewB,IAAI,cAAe,IAClCS,EACHE,mBAAoB,IACdF,GAAaE,mBACjBE,U,CAQC,mBAAMC,CAAcC,GACzB,MAAMC,EAAQ,IAAIC,KAElBhE,KAAKuB,eAAewB,IAAI,sBAAuBe,GAE/C9D,KAAKuB,eAAewB,IAAI,mBAAoB,MAC5C/C,KAAKuB,eAAewB,IAAI,YAAa,MACrC/C,KAAKuB,eAAewB,IAAI,kBAAmB,OAE3C,MAAMkB,EAAY,IAAID,KAAKD,EAAMG,cAAeH,EAAMI,WAAY,GAAGC,UAAY,IACjF,MAAMC,EAAU,IAAIL,KAAKD,EAAMG,cAAeH,EAAMI,WAAa,EAAG,GAAGC,UAAY,IACnF,MAAME,QAAetE,KAAKuE,gBAAgBN,EAAWI,GAErD,MAAMG,EAAqBxE,KAAKuB,eAAekD,IAAI,gBAAgBC,MAAMC,GAAkB,IAAIX,KAAKW,EAASC,YAAc,IAAIZ,OAC/H,IAAIa,EAAgBd,EACpB,GAAIS,EAAoB,CACtBK,EAAgBL,EAAmBI,U,CAErC5E,KAAKuB,eAAewB,IAAI,eAAgB8B,GACxC,OAAOP,C,CAMF,eAAMQ,CAAUhB,GACrB9D,KAAKuB,eAAewB,IAAI,kBAAmBe,E,CAQtC,kBAAMiB,CAAatC,GACxBzC,KAAKuB,eAAewB,IAAI,YAAa,MACrC,MAAMiC,iBAAEA,EAAgBxB,YAAEA,GAAgBxD,KAAKuB,eAAekC,MAC9D,IAAKhB,IAASe,EAAa,CACzB,MAAO,CAAEb,MAAO3C,KAAK0B,OAAOzB,UAAU,WAAWO,kB,CAGnD,MAAMmE,EAAWlC,GAAMkC,UAAYK,EACnC,IAAKL,EAAU,CACb,MAAO,CAAEhC,MAAO3C,KAAK0B,OAAOzB,UAAU,kBAAkBQ,uB,CAG1D,MAAMiD,EAAqBjB,EAAOA,GAAMiB,mBAAqBF,GAAaE,mBAC1E,MAAMuB,EAASxC,EAAOA,GAAMwC,QAAU,GAAKzB,GAAayB,QAAU,GAClE,MAAMC,EAAoBzC,EAAO,IAAKA,GAAM0C,iBAAkBF,UAAW,IAAKzB,GAAa2B,iBAAkBF,UAE7G,MAAMhD,EAAUjC,KAAK2B,aACrB,MAAMyD,EAAgBpF,KAAKyB,SAAW,qBAAqBzB,KAAKyB,WAAa,GAC7E,MAAM4D,EAAM,0BAA0BD,IAEtC,MAAM/C,QAAiBrC,KAAK6B,eAC1BU,mBAAmB8C,GACnB,OACAC,KAAKC,UAAU,CACbL,oBACAM,MAAO,IAAK9B,GACZkB,WAAYD,EAASC,WAAWR,UAAY,IAC5CqB,SAAUd,EAASc,SAASrB,UAAY,MAE1CnC,GAGF,GAAI,UAAWI,EAAU,CACvBrC,KAAKuB,eAAewB,IAAI,YAAa,OACrC,MAAM2C,EAAYrD,EAASM,OAAOC,KAClC,IAAID,EAAQN,EAASM,MACrB,GAAI+C,GAAaA,KAAa1F,KAAK0B,OAAOZ,IAAI,kBAAmB,CAC/D6B,EAAQ3C,KAAK0B,OAAOZ,IAAI,kBAAkB4E,GAA2B/C,GAAOpC,SAAWoC,GAAOtC,OAAS,uB,CAEzG,MAAO,CAAEsC,Q,CAGX,GAAI,SAAUN,EAAU,CACtBrC,KAAKuB,eAAewB,IAAI,YAAaV,GAAUI,K,CAGjDzC,KAAKuB,eAAewB,IAAI,YAAa,OACrC,OAAOV,C,CASF,qBAAMkC,CAAgBN,EAAoB,EAAGI,EAAkB,GACpErE,KAAKuB,eAAewB,IAAI,YAAa,MACrC,MAAM4C,EAAS,IAAIC,gBACnB,MAAMC,EAAM,IAAI7B,KAChB,MAAM8B,EAAUD,EAAIzB,UAEpB,GAAIC,GAAWA,EAAUyB,EAAU,IAAM,CACvC9F,KAAKuB,eAAewB,IAAI,YAAa,OACrC,MAAMJ,EAAQ3C,KAAK0B,OAAOzB,UAAU,oBAAoBK,wBACxD,MAAO,CAAEqC,Q,CAIX,IAAKsB,EAAW,CACd,MAAM8B,EAAe,IAAI/B,KAAK6B,EAAI3B,cAAe2B,EAAI1B,WAAY,GACjEF,EAAY+B,KAAKC,MAAMF,EAAa3B,UAAY,I,CAIlD,IAAKC,EAAS,CACZ,MAAM6B,EAAa,IAAIlC,KAAK6B,EAAI3B,cAAe2B,EAAI1B,WAAa,EAAG,GACnEE,EAAU2B,KAAKC,MAAMC,EAAW9B,UAAY,I,CAG9CuB,EAAOQ,OAAO,aAAcC,mBAAmBnC,EAAUzB,aACzDmD,EAAOQ,OAAO,WAAYC,mBAAmB/B,EAAQ7B,aACrD,GAAIxC,KAAKyB,SAAU,CACjBkE,EAAOQ,OAAO,mBAAoBC,mBAAmBpG,KAAKyB,U,CAE5D,MAAM4E,EAAcV,EAAOnD,WAC3B,MAAM6C,EAAM,8BAA8BgB,EAAc,IAAIA,IAAgB,KAC5E,MAAMpE,EAAUjC,KAAK2B,aACrB,MAAMU,QAAiBrC,KAAK6B,eAAqCU,mBAAmB8C,GAAM,MAAOiB,UAAWrE,GAE5G,GAAI,UAAWI,EAAU,CACvBrC,KAAKuB,eAAewB,IAAI,eAAgB,IACxC/C,KAAKuB,eAAewB,IAAI,YAAa,OACrC,MAAM2C,EAAYrD,EAASM,OAAOC,KAClC,IAAID,EAAQN,EAASM,MACrB,GAAI+C,GAAaA,KAAa1F,KAAK0B,OAAOZ,IAAI,oBAAqB,CACjE6B,EAAQ3C,KAAK0B,OAAOZ,IAAI,oBAAoB4E,GAA2B/C,GAAOpC,SAAWoC,GAAOtC,OAAS,uB,CAE3G,MAAO,CAAEsC,Q,CAGX,GAAI,SAAUN,EAAU,CACtB,MAAMkE,EACJlE,EAASI,MAAM+D,YAAYC,KAAI9B,IACtB,IACFA,EACHC,WAAY,IAAIZ,KAAKW,EAASC,WAAa,KAC3Ca,SAAU,IAAIzB,KAAKW,EAASc,SAAW,UAErC,GAGR,MAAMiB,EAAgCH,EAAaI,QAAOhC,GAAYA,EAASC,WAAWR,UAAY0B,IACtG9F,KAAKuB,eAAewB,IAAI,eAAgB2D,E,CAG1C1G,KAAKuB,eAAewB,IAAI,YAAa,OACrC,OAAOV,C,CAOF,mBAAMuE,CAAcC,GACzB7G,KAAKuB,eAAewB,IAAI,YAAa,MACrC,IAAK8D,EAAW,CACd,MAAO,CAAElE,MAAO3C,KAAK0B,OAAOzB,UAAU,kBAAkBS,gB,CAE1D,MAAM0E,EAAgBpF,KAAKyB,SAAW,qBAAqBzB,KAAKyB,WAAa,GAC7E,MAAM4D,EAAM,2BAA2BwB,IAAYzB,IACnD,MAAMnD,EAAUjC,KAAK2B,aACrB,MAAMU,QAAiBrC,KAAK6B,eAC1BU,mBAAmB8C,GACnB,SACAC,KAAKC,UAAU,CACbuB,OAAQ,WAEV7E,GAGF,GAAI,UAAWI,EAAU,CACvBrC,KAAKuB,eAAewB,IAAI,YAAa,OACrC,MAAM2C,EAAYrD,EAASM,OAAOC,KAClC,IAAID,EAAQN,EAASM,MACrB,GAAI+C,GAAaA,KAAa1F,KAAK0B,OAAOZ,IAAI,kBAAmB,CAC/D6B,EAAQ3C,KAAK0B,OAAOZ,IAAI,kBAAkB4E,GAA2B/C,GAAOpC,SAAWoC,GAAOtC,OAAS,uB,CAEzG,MAAO,CAAEsC,Q,CAGX3C,KAAKuB,eAAewB,IAAI,qBAAsB,CAC5CgE,WAAYF,IAGd7G,KAAKuB,eAAewB,IAAI,YAAa,OACrC,OAAOV,C,CASF,uBAAM2E,CAAkBH,EAAmBpE,GAChDzC,KAAKuB,eAAewB,IAAI,YAAa,MACrC,IAAK8D,EAAW,CACd,MAAO,CAAElE,MAAO3C,KAAK0B,OAAOzB,UAAU,sBAAsBS,gB,CAE9D,MAAMuG,EAAYjH,KAAK0B,OAAOZ,IAAI,sBAClC,MAAMoG,EAAkBlH,KAAK0B,OAAOzB,UAAU,sBAC9C,MAAMuD,YAAEA,EAAWwB,iBAAEA,EAAgBmC,iBAAEA,GAAqBnH,KAAKuB,eAAekC,MAEhF,MAAMQ,UAAEA,EAASI,QAAEA,EAAOlB,SAAEA,GAAaV,EACzC,MAAMmC,EAAaX,GAAae,GAAkBJ,WAElD,IAAKA,EAAY,CACf,MAAO,CAAEjC,MAAOuE,EAAgBvG,mBAAmB,2F,CAErD,MAAM8E,EAAWpB,GAAWW,GAAkBS,SAC9C,IAAKA,EAAU,CACb,MAAO,CAAE9C,MAAOuE,EAAgBtG,iBAAiB,yF,CAEnD,MAAMwG,EAAYjE,GAAYgE,EAC9B,IAAKC,EAAW,CACd,MAAO,CAAEzE,MAAOuE,EAAgBrG,iBAAiB,0F,CAGnD,MAAM6C,EAAqBjB,EAAOA,GAAMiB,mBAAqBF,GAAaE,mBAC1E,MAAMuB,EAASxC,EAAOA,GAAMwC,QAAU,GAAKzB,GAAayB,QAAU,GAClE,MAAMC,EAAoBzC,EAAO,IAAKA,GAAM0C,iBAAkBF,UAAW,IAAKzB,GAAa2B,iBAAkBF,UAE7G,MAAMG,EAAgBpF,KAAKyB,SAAW,qBAAqBzB,KAAKyB,WAAa,GAC7E,MAAM4D,EAAM,2BAA2BwB,IAAYzB,IACnD,MAAMnD,EAAUjC,KAAK2B,aACrB,MAAMU,QAAiBrC,KAAK6B,eAC1BU,mBAAmB8C,GACnB,QACAC,KAAKC,UAAU,CACbX,WAAYA,EAAWR,UAAY,IACnCqB,SAAUA,EAASrB,UAAY,IAC/BgD,YACAlC,oBACAM,MAAO,IAAK9B,KAEdzB,GAGF,GAAI,UAAWI,EAAU,CACvBrC,KAAKuB,eAAewB,IAAI,YAAa,OACrC,MAAM2C,EAAYrD,EAASM,OAAOC,KAClC,IAAID,EAAQN,EAASM,MACrB,GAAI+C,GAAaA,KAAauB,EAAW,CACvCtE,EAAQsE,EAAUvB,GAA2B/C,GAAOpC,SAAWoC,GAAOtC,OAAS,uB,EAInF,GAAI,SAAUgC,EAAUrC,KAAKuB,eAAewB,IAAI,YAAaV,GAAUI,MAEvEzC,KAAKuB,eAAewB,IAAI,YAAa,OACrC,OAAOV,C,WC1WKgF,EAA0BC,EAAkD,IAC1F,MAAMC,EAAmD,CACvDC,aAAc,KACdC,iBAAkBC,UAAUC,SAC5BR,iBAAkBS,KAAKC,iBAAiBC,kBAAkBC,SAC1D/C,iBAAkB,KAClBgD,gBAAiB,MACjBC,gBAAiB,KACjB1B,aAAc,GACd9C,MAAO,QACPyE,UAAW,KACXC,mBAAoB,KACpBC,UAAW,SACRd,GAELe,EAAM,6BAA8Bd,GACpC,MAAMe,EAAQC,EAAsChB,GAEpDe,EAAME,SAAS,gBAAgBjC,IAC7B8B,EAAM,mBAAoB9B,GAC1B,MAAM0B,EAAkB1B,EAAaE,KAAI9B,GAAYA,EAASC,aAC9DyD,EAAM,sBAAuBJ,GAC7BK,EAAMvF,IAAI,kBAAmBkF,EAAgB,IAQ/CK,EAAMG,MAAQ,KACZ,IAAK,MAAMC,KAAOnB,EAAwB,CACxC,MAAMlE,EAAQkE,EAAuBmB,GACrCJ,EAAMvF,IAAI2F,EAAYrF,E,GAI1B,OAAOiF,CACT,Q"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-e4b9d6af.js";const e=".sc-archive-icon-h{display:flex}";const a=e;const o=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"5aa6b838481a9741f602d5b1b2a9fd963a00067e",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"0028df292407861bc39c00157b6b4f0bfe31dda5",d:"M3 6H5H21",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"0e53fcc6b2a704f65ab8b7088f2bd3f24483d2cd",d:"M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"8dbf8176c6c6a10188984e36dd985bd1a5be4b2f",d:"M10 11V17",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"218c043fbf70ae2fd0db434f573e0339ad2303f8",d:"M14 11V17",stroke:"auto","stroke-width":"1.5"}))}};o.style=a;const d=".sc-folder-icon-h{display:flex}";const c=d;const i=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"3426a025a15f6473ec8935df115dc65f6c21cc18",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"8e567fdf1ad34121d1830b57d6f93993cf50ac6f",d:"M3 8.2C3 7.07989 3 6.51984 3.21799 6.09202C3.40973 5.71569 3.71569 5.40973 4.09202 5.21799C4.51984 5 5.0799 5 6.2 5H9.67452C10.1637 5 10.4083 5 10.6385 5.05526C10.8425 5.10425 11.0376 5.18506 11.2166 5.29472C11.4184 5.4184 11.5914 5.59135 11.9373 5.93726L12.0627 6.06274C12.4086 6.40865 12.5816 6.5816 12.7834 6.70528C12.9624 6.81494 13.1575 6.89575 13.3615 6.94474C13.5917 7 13.8363 7 14.3255 7H17.8C18.9201 7 19.4802 7 19.908 7.21799C20.2843 7.40973 20.5903 7.71569 20.782 8.09202C21 8.51984 21 9.0799 21 10.2V15.8C21 16.9201 21 17.4802 20.782 17.908C20.5903 18.2843 20.2843 18.5903 19.908 18.782C19.4802 19 18.9201 19 17.8 19H6.2C5.07989 19 4.51984 19 4.09202 18.782C3.71569 18.5903 3.40973 18.2843 3.21799 17.908C3 17.4802 3 16.9201 3 15.8V8.2Z",stroke:"auto","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};i.style=c;const h=".sc-inbox-icon-h{display:flex}";const r=h;const f=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"83c9315299965234c022458479daae837a723b1d",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"1634e316331c3536405de4fd6c2c012468eeb266",d:"M20 3H4C2.89543 3 2 3.89543 2 5V19C2 20.1046 2.89543 21 4 21H20C21.1046 21 22 20.1046 22 19V5C22 3.89543 21.1046 3 20 3Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"aff1e5cb4b2ba8080bacc02a674be458f885fd2a",d:"M2 5L12 12.5L22 5",stroke:"auto","stroke-width":"1.5"}))}};f.style=r;const n=".sc-sent-icon-h{display:flex}";const b=n;const C=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"d1927da1cf60cceeda687ea6a8b7268c1c116fa0",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"d069f3681a8b2abadc71bf0484d3967e69bb8a2d",d:"M21.5 12L3.5 3.5L3.5 20.5L21.5 12Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"a979d34b1cc401b338cb004988726fcf90f22b9c",d:"M3.5 3.5L12 10.5",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"32543d78842f30aa770af247dab7ec693aa0d1a0",d:"M3.5 20.5L12 13.5",stroke:"auto","stroke-width":"1.5"}))}};C.style=b;const k=".sc-spam-icon-h{display:flex}";const w=k;const l=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"c51debfbd7d706d9b8a671b2149c962c3976d981",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"312111850ba37e25ed97e76cffab2cc91aa430f3",d:"M20 3H4C2.89543 3 2 3.89543 2 5V19C2 20.1046 2.89543 21 4 21H20C21.1046 21 22 20.1046 22 19V5C22 3.89543 21.1046 3 20 3Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"b5e01a4d41a61e2bbd8f312c623ac3f6495890e2",d:"M2 5L12 12.5L22 5",stroke:"auto","stroke-width":"1.5"}))}};l.style=w;const u=".sc-star-icon-h{display:flex}";const p=u;const y=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"b3d6fe85b2bf66e05b3fc671e968f7915e408025",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"f2edd897654d1fa4afbd52d53bc2809b802a348c",d:"M9.15316 5.40838C10.4198 3.13613 11.0531 2 12 2C12.9469 2 13.5802 3.13612 14.8468 5.40837L15.1745 5.99623C15.5345 6.64193 15.7144 6.96479 15.9951 7.17781C16.2757 7.39083 16.6251 7.4699 17.3241 7.62805L17.9605 7.77203C20.4201 8.32856 21.65 8.60682 21.9426 9.54773C22.2352 10.4886 21.3968 11.4691 19.7199 13.4299L19.2861 13.9372C18.8096 14.4944 18.5713 14.773 18.4641 15.1177C18.357 15.4624 18.393 15.8341 18.465 16.5776L18.5306 17.2544C18.7841 19.8706 18.9109 21.1787 18.1449 21.7602C17.3788 22.3417 16.2273 21.8115 13.9243 20.7512L13.3285 20.4768C12.6741 20.1755 12.3469 20.0248 12 20.0248C11.6531 20.0248 11.3259 20.1755 10.6715 20.4768L10.0757 20.7512C7.77268 21.8115 6.62118 22.3417 5.85515 21.7602C5.08912 21.1787 5.21588 19.8706 5.4694 17.2544L5.53498 16.5776C5.60703 15.8341 5.64305 15.4624 5.53586 15.1177C5.42868 14.773 5.19043 14.4944 4.71392 13.9372L4.2801 13.4299C2.60325 11.4691 1.76482 10.4886 2.05742 9.54773C2.35002 8.60682 3.57986 8.32856 6.03954 7.77203L6.67589 7.62805C7.37485 7.4699 7.72433 7.39083 8.00494 7.17781C8.28555 6.96479 8.46553 6.64194 8.82547 5.99623L9.15316 5.40838Z",stroke:"auto","stroke-width":"1.5"}))}};y.style=p;const g=".sc-trash-icon-h{display:flex}";const x=g;const v=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"a951eaf6b03ebc612562376c90fe4c2086dafedf",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"2704d484c5bbf5e501783d88e8f813c016303087",d:"M3 6H5H21",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"e54aecc61550e20046613fff5b278da87b02f304",d:"M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"bed39a5793a1bb4b9d880413d91283dadf34bfbe",d:"M10 11V17",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"7e12808ff2d329da6684584f43a398beda2bc6f1",d:"M14 11V17",stroke:"auto","stroke-width":"1.5"}))}};v.style=x;export{o as archive_icon,i as folder_icon,f as inbox_icon,C as sent_icon,l as spam_icon,y as star_icon,v as trash_icon};
2
- //# sourceMappingURL=p-6aa84fd8.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as s,h as e,c as t,a as i}from"./p-e4b9d6af.js";const o=".sc-chevron-icon-h{display:flex}";const a=o;const n=class{constructor(e){s(this,e);this.width="24";this.height="24"}render(){return e("svg",{key:"4237d5be45ec5b20c76f6132347abbbff3db30d3",xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none"},e("path",{key:"3d68979af03e88ecb6725fefbd1a4d9af22aa727",fill:"currentColor",d:"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0Z"}))}};n.style=a;const r=".sc-search-icon-h{display:flex}";const d=r;const l=class{constructor(e){s(this,e);this.width="15";this.height="15"}render(){return e("svg",{key:"55b014fefee568d32972a083bc2aad02b5150fa8",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"6578bcc2101babbf7785c1a23b2e354d903d4784",fill:"currentColor",d:"M5.5 0C8.53757 0 11 2.46243 11 5.5C11 6.83879 10.5217 8.06586 9.72656 9.01962L13.8536 13.1464C14.0488 13.3417 14.0488 13.6583 13.8536 13.8536C13.68 14.0271 13.4106 14.0464 13.2157 13.9114L13.1464 13.8536L9.01962 9.72656C8.06586 10.5217 6.83879 11 5.5 11C2.46243 11 0 8.53757 0 5.5C0 2.46243 2.46243 0 5.5 0ZM5.5 1C3.01472 1 1 3.01472 1 5.5C1 7.98528 3.01472 10 5.5 10C7.98528 10 10 7.98528 10 5.5C10 3.01472 7.98528 1 5.5 1Z"}))}};l.style=d;const c=':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif}@media screen and (max-width: 768px){:host{position:unset}}.dropdown{display:inline-block}.dropbtn{color:black;padding:0.5rem;font-size:1rem;cursor:pointer;display:flex;gap:0.5rem;background:transparent;border:none;border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:transparent}.dropbtn:hover,.dropbtn:active{outline:1px solid var(--nylas-primary)}.dropbtn:active{outline:2px solid var(--nylas-primary)}.dropbtn span.chevron{display:flex;align-self:center}.dropbtn span.open{transform:rotate(90deg)}.dropbtn span.closed{transform:rotate(270deg)}.dropbtn span.selected-option{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:144px;font-size:14px;line-height:20px}@media screen and (max-width: 768px){.dropbtn span.selected-option{max-width:124px}}.dropdown-content{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);max-width:306px;width:max-content;max-height:336px;overflow:auto;z-index:1;border-radius:4px;position:absolute;box-shadow:0px 4px 6px -2px rgba(0, 0, 0, 0.0509803922);box-shadow:0px 10px 15px -3px rgba(0, 0, 0, 0.1019607843)}@media screen and (max-width: 768px){.dropdown-content{right:0;width:325px;max-width:unset}}.search-box{border-bottom:1px solid var(--nylas-base-200);padding:10px;position:sticky;top:0;background:var(--nylas-base-0)}.search-box .icon{position:absolute;top:1.25rem;left:1.25rem;color:var(--nylas-base-300)}.dropdown-content ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.dropdown-content ul li{padding:16px, 12px, 16px, 12px;color:black;padding:12px 16px;text-decoration:none;display:block;font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;text-align:left;cursor:pointer}.dropdown-content ul li:hover,.dropdown-content ul li:focus{background-color:var(--nylas-base-100)}.dropdown-content .selected{background-color:#e7e7e7}input[type=text]{width:-webkit-fill-available;padding:inherit;border:1px solid #ccc;border-radius:4px;position:sticky;background:no-repeat scroll 7px 7px;padding-left:30px;background-size:16px 16px}';const h=c;const p=class{constructor(e){s(this,e);this.selectedOptionChanged=t(this,"selectedOptionChanged",7);this.name=undefined;this.options=[];this.defaultSelectedOption=undefined;this.withSearch=true;this.selectedOption=this.defaultSelectedOption||null;this.isOpen=false;this.searchValue="";this.filteredOptions=[...this.options];this.ariaActivedescendant=""}componentWillLoad(){this.filteredOptions=this.options;if(!this.selectedOption&&!!this.defaultSelectedOption){this.selectedOption=this.defaultSelectedOption}if(!this.selectedOption&&this.options.length>0){this.selectedOption=this.options[0]}}toggleDropdown(){this.isOpen=!this.isOpen}filterOptions(s){const e=s.target.value;this.searchValue=e;this.filteredOptions=this.options.filter((s=>s.label.toLowerCase().includes(e.toLowerCase())))}selectOption(s){this.selectedOption=s;this.toggleDropdown();this.selectedOptionChanged.emit({value:s.value,name:this.name})}handleSelectButtonKeyDown(s){switch(s.key){case"ArrowDown":case"Enter":s.preventDefault();if(!this.isOpen){this.toggleDropdown()}this.inputRef?.focus();break;case"Escape":this.isOpen=false;break}}handleListboxKeydown(s){const e=this.filteredOptions;const t=e.findIndex((s=>s.value===this.ariaActivedescendant));if(s.key==="ArrowDown"||s.key==="Tab"&&!s.shiftKey){s.preventDefault();if(t===e.length-1){this.ariaActivedescendant="";this.inputRef?.focus();return}const i=t+1<e.length?t+1:0;this.ariaActivedescendant=e[i].value;this.focusOption(i)}else if(s.key==="ArrowUp"||s.key==="Tab"&&s.shiftKey){s.preventDefault();if(t===0){this.ariaActivedescendant="";this.inputRef?.focus();return}const i=t-1>=0?t-1:e.length-1;this.ariaActivedescendant=e[i].value;this.focusOption(i)}else if(s.key==="Enter"){s.preventDefault();if(this.ariaActivedescendant){this.selectOption(e[t])}}else if(s.key==="Escape"){this.isOpen=false}}focusOption(s){const e=this.filteredOptions[s];if(!e)return;const t=e.value;const i=this.el.shadowRoot?.getElementById(t);if(i){i.focus();i.scrollIntoView({behavior:"smooth",block:"nearest"})}}handleComboboxKeyDown(s){if(s.key==="ArrowDown"||s.key=="Tab"&&!s.shiftKey){s.preventDefault();this.ariaActivedescendant=this.filteredOptions[0].value;this.focusOption(0)}else if(s.key==="ArrowUp"||s.key==="Tab"&&s.shiftKey){s.preventDefault();this.ariaActivedescendant=this.filteredOptions[this.filteredOptions.length-1].value;this.focusOption(this.filteredOptions.length-1)}else if(s.key==="Escape"){this.isOpen=false}}handleOutsideClick(s){const e=s.composedPath();const t=e.includes(this.el);if(!t&&this.isOpen){this.isOpen=false}}render(){return e("div",{key:"09bd57ac9208a30dea43c5c75c066fa9b1122ba7",class:"dropdown",part:"sd_dropdown"},e("button",{key:"b367b5a70f4144fde52cfde9586fe51bbc8637fb",part:"sd_dropdown-button",class:{dropbtn:true,open:this.isOpen},onClick:()=>this.toggleDropdown(),"aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false","aria-label":this.name,onKeyDown:s=>this.handleSelectButtonKeyDown(s)},e("slot",{key:"2c6f049954b4a027fba5ca996c34af18e5180454",name:"select-icon","aria-hidden":"true"}),e("span",{key:"b18e79aeb247f7d9d2947559dd10c46e4c3e06a5",class:"selected-option",part:"sd_dropdown-button-selected-label"},this.selectedOption?.label),e("span",{key:"9ab323a74ee21923b9c2a66ad1a8c778bbd7605d",class:{open:this.isOpen,closed:!this.isOpen,chevron:true},"aria-hidden":"true"},e("chevron-icon",{key:"39cc545fcdff45bc7e77b020586a2902e8c92a37",width:"16",height:"16"}))),this.isOpen?e("div",{class:"dropdown-content",part:"sd_dropdown-content"},this.withSearch&&e("div",{class:{"search-box":true,open:this.isOpen}},e("search-icon",{width:"15",height:"15",class:"icon"}),e("input",{type:"text",role:"combobox",placeholder:"Search",value:this.searchValue,ref:s=>this.inputRef=s,onInput:s=>this.filterOptions(s),onKeyDown:s=>this.handleComboboxKeyDown(s)})),e("ul",{tabindex:"-1",role:"listbox","aria-label":this.name,"aria-activedescendant":this.ariaActivedescendant,onKeyDown:s=>this.handleListboxKeydown(s)},this.filteredOptions.map((s=>e("li",{tabindex:"0",key:s.value,id:s.value,onClick:()=>this.selectOption(s),role:"option"},s.labelHTML?s.labelHTML:s.label))))):null)}get el(){return i(this)}};p.style=h;export{n as chevron_icon,l as search_icon,p as select_dropdown};
2
- //# sourceMappingURL=p-6c84f99e.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["iconCss","ChevronIconStyle0","ChevronIcon","render","h","key","xmlns","width","this","height","viewBox","fill","d","SearchIconStyle0","SearchIcon","selectDropdownCss","SelectDropdownStyle0","SelectDropdown","defaultSelectedOption","options","componentWillLoad","filteredOptions","selectedOption","length","toggleDropdown","isOpen","filterOptions","event","value","target","searchValue","filter","option","label","toLowerCase","includes","selectOption","selectedOptionChanged","emit","name","handleSelectButtonKeyDown","preventDefault","inputRef","focus","handleListboxKeydown","e","items","currentIndex","findIndex","item","ariaActivedescendant","shiftKey","nextIndex","focusOption","prevIndex","index","elementId","element","el","shadowRoot","getElementById","scrollIntoView","behavior","block","handleComboboxKeyDown","handleOutsideClick","path","composedPath","isClickInside","class","part","dropbtn","open","onClick","onKeyDown","closed","chevron","withSearch","type","role","placeholder","ref","onInput","tabindex","map","id","labelHTML"],"sources":["src/common/icons/icon.css?tag=chevron-icon&encapsulation=scoped","src/common/icons/chevron.tsx","src/common/icons/icon.css?tag=search-icon&encapsulation=scoped","src/common/icons/search.tsx","src/components/design-system/select-dropdown/select-dropdown.scss?tag=select-dropdown&encapsulation=shadow","src/components/design-system/select-dropdown/select-dropdown.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'chevron-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class ChevronIcon {\n @Prop() width: string = '24';\n @Prop() height: string = '24';\n\n render() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={this.width} height={this.height} viewBox=\"0 0 24 24\" fill=\"none\">\n <path fill=\"currentColor\" d=\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0Z\" />\n </svg>\n );\n }\n}\n",":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'search-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class SearchIcon {\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\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill=\"currentColor\"\n d=\"M5.5 0C8.53757 0 11 2.46243 11 5.5C11 6.83879 10.5217 8.06586 9.72656 9.01962L13.8536 13.1464C14.0488 13.3417 14.0488 13.6583 13.8536 13.8536C13.68 14.0271 13.4106 14.0464 13.2157 13.9114L13.1464 13.8536L9.01962 9.72656C8.06586 10.5217 6.83879 11 5.5 11C2.46243 11 0 8.53757 0 5.5C0 2.46243 2.46243 0 5.5 0ZM5.5 1C3.01472 1 1 3.01472 1 5.5C1 7.98528 3.01472 10 5.5 10C7.98528 10 10 7.98528 10 5.5C10 3.01472 7.98528 1 5.5 1Z\"\n />\n </svg>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n position: relative;\n @media #{$mobile} {\n position: unset;\n }\n @include default-css-variables;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropbtn {\n color: black;\n padding: 0.5rem;\n font-size: 1rem;\n cursor: pointer;\n display: flex;\n gap: 0.5rem;\n background: transparent;\n border: none;\n border-radius: var(--nylas-border-radius-2x);\n &.focus {\n background: transparent;\n }\n &:hover,\n &:active {\n outline: 1px solid var(--nylas-primary);\n }\n &:active {\n outline: 2px solid var(--nylas-primary);\n }\n span {\n &.chevron {\n display: flex;\n align-self: center;\n }\n &.open {\n transform: rotate(90deg);\n }\n &.closed {\n transform: rotate(270deg);\n }\n &.selected-option {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 144px;\n font-size: 14px;\n line-height: 20px;\n @media #{$mobile} {\n max-width: 124px;\n }\n }\n }\n}\n\n.dropdown-content {\n display: block;\n margin-top: 0.5rem;\n background-color: var(--nylas-base-0);\n max-width: 306px;\n width: max-content;\n max-height: 336px;\n overflow: auto;\n z-index: 1;\n border-radius: 4px;\n position: absolute;\n @media #{$mobile} {\n right: 0;\n width: 325px;\n max-width: unset;\n }\n box-shadow: 0px 4px 6px -2px #0000000d;\n box-shadow: 0px 10px 15px -3px #0000001a;\n}\n\n.search-box {\n border-bottom: 1px solid var(--nylas-base-200);\n padding: 10px;\n position: sticky;\n top: 0;\n background: var(--nylas-base-0);\n .icon {\n position: absolute;\n top: 1.25rem;\n left: 1.25rem;\n color: var(--nylas-base-300);\n }\n}\n\n.dropdown-content ul {\n padding: 0;\n list-style-type: none;\n color: var(--nylas-base-900);\n max-height: 336px;\n li {\n padding: 16px, 12px, 16px, 12px;\n color: black;\n padding: 12px 16px;\n text-decoration: none;\n display: block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0px;\n text-align: left;\n cursor: pointer;\n &:hover,\n &:focus {\n background-color: var(--nylas-base-100);\n }\n }\n}\n\n.dropdown-content .selected {\n background-color: #e7e7e7;\n}\n\ninput[type='text'] {\n width: -webkit-fill-available;\n padding: inherit;\n border: 1px solid #ccc;\n border-radius: 4px;\n position: sticky;\n background: no-repeat scroll 7px 7px;\n padding-left: 30px;\n background-size: 16px 16px;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\n\ninterface DropdownOption {\n labelHTML?: HTMLElement;\n label: string;\n value: string;\n}\n\n@Component({\n tag: 'select-dropdown',\n styleUrl: 'select-dropdown.scss',\n shadow: true,\n})\nexport class SelectDropdown {\n @Element() el!: HTMLElement;\n\n private inputRef?: HTMLInputElement;\n\n // Props\n /**\n * The name of the dropdown\n */\n @Prop() name!: string;\n /**\n * The options to display in the dropdown\n */\n @Prop() options: DropdownOption[] = [];\n /**\n * The default selected option\n */\n @Prop() defaultSelectedOption?: DropdownOption;\n /**\n * Should show search input\n */\n @Prop() withSearch: boolean = true;\n // States\n /**\n * The selected option\n */\n @State() selectedOption: DropdownOption | null = this.defaultSelectedOption || null;\n /**\n * The open state of the dropdown\n */\n @State() isOpen: boolean = false;\n /**\n * The search value for the dropdown\n */\n @State() searchValue: string = '';\n /**\n * The filtered options based on the search value\n */\n @State() filteredOptions: DropdownOption[] = [...this.options];\n /**\n * The aria-activedescendant attribute for the listbox element to indicate the currently active\n * option in the list box to screen readers. The value of aria-activedescendant is the ID of\n * the active option.\n */\n @State() ariaActivedescendant: string = '';\n\n // Events\n /**\n * This event is fired when the selected option is changed\n */\n @Event({ bubbles: true, composed: true }) selectedOptionChanged!: EventEmitter<{\n value: DropdownOption['value'];\n name: string;\n }>;\n\n // Lifecycle methods\n componentWillLoad() {\n this.filteredOptions = this.options;\n // Set the selected option to the first option if no option is selected\n if (!this.selectedOption && !!this.defaultSelectedOption) {\n this.selectedOption = this.defaultSelectedOption;\n }\n if (!this.selectedOption && this.options.length > 0) {\n this.selectedOption = this.options[0];\n }\n }\n\n // Methods\n toggleDropdown(): void {\n this.isOpen = !this.isOpen;\n }\n\n filterOptions(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.searchValue = value;\n this.filteredOptions = this.options.filter(option => option.label.toLowerCase().includes(value.toLowerCase()));\n }\n\n selectOption(option: DropdownOption): void {\n this.selectedOption = option;\n this.toggleDropdown();\n this.selectedOptionChanged.emit({\n value: option.value,\n name: this.name,\n });\n }\n\n handleSelectButtonKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n case 'Enter':\n event.preventDefault();\n if (!this.isOpen) {\n this.toggleDropdown();\n }\n this.inputRef?.focus();\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n handleListboxKeydown(e) {\n const items = this.filteredOptions; // Assuming this is the array of your current filtered options\n const currentIndex = items.findIndex(item => item.value === this.ariaActivedescendant);\n if (e.key === 'ArrowDown' || (e.key === 'Tab' && !e.shiftKey)) {\n e.preventDefault();\n if (currentIndex === items.length - 1) {\n this.ariaActivedescendant = '';\n this.inputRef?.focus();\n return;\n }\n const nextIndex = currentIndex + 1 < items.length ? currentIndex + 1 : 0;\n this.ariaActivedescendant = items[nextIndex].value;\n this.focusOption(nextIndex);\n } else if (e.key === 'ArrowUp' || (e.key === 'Tab' && e.shiftKey)) {\n e.preventDefault();\n if (currentIndex === 0) {\n this.ariaActivedescendant = '';\n this.inputRef?.focus();\n return;\n }\n const prevIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : items.length - 1;\n this.ariaActivedescendant = items[prevIndex].value;\n this.focusOption(prevIndex);\n } else if (e.key === 'Enter') {\n e.preventDefault();\n if (this.ariaActivedescendant) {\n this.selectOption(items[currentIndex]);\n }\n } else if (e.key === 'Escape') {\n this.isOpen = false;\n }\n }\n\n focusOption(index) {\n const option = this.filteredOptions[index];\n if (!option) return; // Guard clause in case index is out of bounds\n\n const elementId = option.value;\n const element = this.el.shadowRoot?.getElementById(elementId) as HTMLLIElement;\n\n if (element) {\n element.focus(); // Set focus on the element\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n\n handleComboboxKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown' || (event.key == 'Tab' && !event.shiftKey)) {\n event.preventDefault();\n this.ariaActivedescendant = this.filteredOptions[0].value;\n this.focusOption(0);\n } else if (event.key === 'ArrowUp' || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n this.ariaActivedescendant = this.filteredOptions[this.filteredOptions.length - 1].value;\n this.focusOption(this.filteredOptions.length - 1);\n } else if (event.key === 'Escape') {\n this.isOpen = false;\n }\n }\n\n // Event listeners\n @Listen('click', { target: 'document', capture: true })\n handleOutsideClick(event: MouseEvent) {\n // Get the path of the event\n const path = event.composedPath();\n\n // Check if the path includes the host element\n const isClickInside = path.includes(this.el);\n\n if (!isClickInside && this.isOpen) {\n this.isOpen = false;\n }\n }\n\n render() {\n return (\n <div class=\"dropdown\" part=\"sd_dropdown\">\n <button\n part=\"sd_dropdown-button\"\n class={{ dropbtn: true, open: this.isOpen }}\n onClick={() => this.toggleDropdown()}\n aria-haspopup=\"listbox\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-label={this.name}\n onKeyDown={e => this.handleSelectButtonKeyDown(e)}\n >\n <slot name=\"select-icon\" aria-hidden=\"true\"></slot>\n <span class=\"selected-option\" part=\"sd_dropdown-button-selected-label\">\n {this.selectedOption?.label}\n </span>\n <span\n class={{\n open: this.isOpen,\n closed: !this.isOpen,\n chevron: true,\n }}\n aria-hidden=\"true\"\n >\n <chevron-icon width=\"16\" height=\"16\" />\n </span>\n </button>\n {this.isOpen ? (\n <div class=\"dropdown-content\" part=\"sd_dropdown-content\">\n {this.withSearch && (\n <div class={{ 'search-box': true, 'open': this.isOpen }}>\n <search-icon width=\"15\" height=\"15\" class={'icon'} />\n <input\n type=\"text\"\n role=\"combobox\"\n placeholder=\"Search\"\n value={this.searchValue}\n ref={el => (this.inputRef = el)}\n onInput={event => this.filterOptions(event)}\n onKeyDown={e => this.handleComboboxKeyDown(e)}\n />\n </div>\n )}\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name} aria-activedescendant={this.ariaActivedescendant} onKeyDown={e => this.handleListboxKeydown(e)}>\n {this.filteredOptions.map(option => (\n <li tabindex=\"0\" key={option.value} id={option.value} onClick={() => this.selectOption(option)} role=\"option\">\n {option.labelHTML ? option.labelHTML : option.label}\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-e4b9d6af.js";const o=".sc-bold-icon-h{display:flex}";const e=o;const i=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"31974bb21eb101d41aaebdd8199a3a5f7ce55a63",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"78c695ad810b93f8d3b70119cd594d936803b9f4",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=e;const n=".sc-italic-icon-h{display:flex}";const r=n;const d=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"334d24d49658759a36fe114a466dd47443fa1f2a",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"40cdd3b993db4465d1df49a83884275ddc4b0ff0",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m10 20 4-16m2 0h-4m0 16H8"}))}};d.style=r;const c=".sc-underline-icon-h{display:flex}";const h=c;const a=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"b6e5d44916c83a06905cf0ffb118ce725932bf58",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"fd093da3fd9a2a06265062df2ba61ac4779c7df7",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"}))}};a.style=h;export{i as bold_icon,d as italic_icon,a as underline_icon};
2
- //# sourceMappingURL=p-80079122.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-e4b9d6af.js";const e=".sc-play-icon-h{display:flex}";const o=e;const i=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"b98c1644be51eeb0eaaf3adbdae2dff1f384c342",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"74ec4ca9b3177a5e06e5255f7a14f58b95866360",d:"M21 12L3 21V3L21 12Z",stroke:"auto","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}))}};i.style=o;const r=".sc-stop-icon-h{display:flex}";const a=r;const c=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"8c22503dbd156abdd1749ce70a906054f470d078",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"eaea1d0090ec37b0b649456df67dde1170e9c741",d:"M4 4H20V20H4V4Z",stroke:"auto","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}))}};c.style=a;export{i as play_icon,c as stop_icon};
2
- //# sourceMappingURL=p-a30e3755.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as a,h as t,H as n}from"./p-e4b9d6af.js";import{R as s}from"./p-9955e9b6.js";import{d as i}from"./p-facc84f3.js";import"./p-cb65c223.js";const o=':host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;width:inherit}.scheduler-editor{display:flex;flex-direction:column}.scheduler-editor .form-contents{display:grid;grid-template-columns:minmax(224px, 25%) 1fr}@media screen and (max-width: 768px){.scheduler-editor .form-contents{display:table-column-group}}.scheduler-editor .form-contents .tabs{display:flex;flex-direction:column;border-right:1px solid var(--nylas-base-200);background-color:var(--nylas-base-25)}.scheduler-editor .form-contents .tabs .tab{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;color:var(--nylas-base-900);background:var(--nylas-base-0);border:none;height:56px;font-family:var(--nylas-font-family);font-size:16px;font-weight:500;line-height:24px;cursor:pointer}.scheduler-editor .form-contents .tabs .tab:not(:first-of-type){margin-top:0.25rem}.scheduler-editor .form-contents .tabs .tab.active{font-weight:600;background:var(--nylas-base-0);color:var(--nylas-primary);border-left:4px solid var(--nylas-primary);box-shadow:0px 1px 2px 0px rgba(0, 0, 0, 0.0588235294);box-shadow:0px 1px 3px 0px rgba(0, 0, 0, 0.1019607843)}.scheduler-editor .form-contents .tab-content{max-width:692px}.scheduler-editor .form-contents .tab-content nylas-event-info div[slot=inputs]{display:flex;flex-direction:column;gap:1rem}.footer{display:flex;justify-content:flex-end;align-items:center;gap:1rem;height:80px;padding:0 1rem;border-top:1px solid var(--nylas-base-200)}.footer .unsaved-changes{color:var(--nylas-base-600)}.footer .saved-changes{color:var(--nylas-success)}.footer button{background:var(--nylas-primary);color:var(--nylas-base-0);height:48px;border:none;border-radius:var(--nylas-border-radius-2x);font-size:1rem;line-height:24px;padding:0 1rem;cursor:pointer;width:148px}.footer button:hover{background:var(--nylas-base-600)}.footer button:active{background:var(--nylas-base-800)}.footer button:disabled{background:var(--nylas-base-300);cursor:not-allowed}.footer button span{display:flex;align-items:center;justify-content:center;gap:0.5rem}';const r=o;var c=undefined&&undefined.__decorate||function(e,a,t,n){var s=arguments.length,i=s<3?a:n===null?n=Object.getOwnPropertyDescriptor(a,t):n,o;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,a,t,n);else for(var r=e.length-1;r>=0;r--)if(o=e[r])i=(s<3?o(i):s>3?o(a,t,i):o(a,t))||i;return s>3&&i&&Object.defineProperty(a,t,i),i};var l=undefined&&undefined.__metadata||function(e,a){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,a)};const d=class{constructor(t){e(this,t);this.schedulerConfigChanged=a(this,"schedulerConfigChanged",7);this.formSubmissionHandler=async e=>{e.preventDefault();this.isLoading=true;this.hasUnsavedChanges=false;this.updateFormState();const{title:a,description:t,duration:n,availability:s,calendarIds:i,bookingCalendar:o,location:r,bookingType:c,buffer:l}=this.formState;const d=this.config?.participants?.find((e=>e.is_organizer));const b={availability:{duration_minutes:parseInt(n),availability_rules:{availability_method:this.config?.availability?.availability_rules?.availability_method??"collective",buffer:l}},participants:[{name:d?.name??"",email:d?.email??"",is_organizer:true,availability:{calendar_ids:i.length?i:["primary"],open_hours:s??[]},booking:{calendar_id:o??"primary"}}],event_booking:{title:a?.toString()??"",description:t?.toString()??"",location:r?.toString()??"",booking_type:c?.toString()??"booking"}};const f=e=>{this.isLoading=false;this.changesSaved=true;setTimeout((()=>{this.changesSaved=false}),5e3)};this.schedulerConfigChanged.emit({...b,resetLoadingState:f})};this.calendars=undefined;this.config=undefined;this.activeTab="eventInfo";this.isLoading=false;this.hasUnsavedChanges=false;this.changesSaved=false;this.formState=this.getFormStateFromConfig()}configChangedHandler(e){i("nylas-editor-tabs","configChangedHandler",e);this.formState=this.getFormStateFromConfig()}connectedCallback(){i("nylas-editor-tabs","connectedCallback")}componentWillLoad(){i("nylas-editor-tabs","componentWillLoad")}componentDidLoad(){i("nylas-editor-tabs","componentDidLoad")}disconnectedCallback(){i("nylas-editor-tabs","disconnectedCallback")}handleValueChanged(e){i("nylas-editor-tabs","handleValueChanged",e);this.formState={...this.formState,[e.detail.name]:e.detail.value};this.hasUnsavedChanges=true}getFormStateFromConfig(){const e=this.config?.participants?.find((e=>e.is_organizer));return{title:this.config?.event_booking?.title??"",description:this.config?.event_booking?.description??"",duration:this.config?.availability?.duration_minutes?.toString()??"10",availability:e?.availability?.open_hours??undefined,calendarIds:e?.availability?.calendar_ids??[],participants:this.config?.participants??[],bookingCalendar:e?.booking?.calendar_id??e?.email??"",location:this.config?.event_booking?.location??"",bookingType:this.config?.event_booking?.booking_type??"booking",buffer:this.config?.availability?.availability_rules?.buffer??{before:0,after:0}}}updateFormState(){const e=new FormData(this.formRef);e.forEach(((e,a)=>{switch(a){case"title":this.formState.title=e.toString();break;case"description":this.formState.description=e.toString();break;case"duration":this.formState.duration=e.toString();break;case"availability":this.formState.availability=JSON.parse(e.toString());break;case"participants":this.formState.participants=JSON.parse(e.toString());break;case"calendars":this.formState.calendarIds=e.toString().split(",");break;case"booking-calendar":this.formState.bookingCalendar=e.toString();break;case"location":this.formState.location=e.toString();break;case"booking-type":this.formState.bookingType=e.toString();break;case"buffer-time":this.formState.buffer=JSON.parse(e.toString());break}}));this.formState={...this.formState}}setActiveTab(e,a){e.preventDefault();this.updateFormState();this.activeTab=a}renderTabContent(e){switch(this.activeTab){case"eventInfo":const a=e.title;const n=e.description;const s=parseInt(e.duration);const i=e.location;return t("div",null,t("nylas-event-info",null,t("div",{slot:"inputs"},t("nylas-event-title",{name:"title",eventTitle:a}),t("nylas-event-duration",{name:"duration",eventDurationMinutes:s}),t("nylas-location-component",{name:"location",eventLocation:i}),t("nylas-event-description",{name:"description",eventDescription:n}))));case"availability":const o=e.availability;const r=o?.[0]?.timezone??Intl.DateTimeFormat().resolvedOptions().timeZone;const c=e.participants?.find((e=>e.is_organizer));const l=c?.email??"primary";const d=e.calendarIds.length>0?e.calendarIds:[l];const b=e.bookingCalendar=="primary"?l:e.bookingCalendar;return t("div",null,t("nylas-booking-calendar-picker",{name:"booking-calendar",calendars:this.calendars??[],defaultBookingCalendar:b}),t("nylas-calendar-picker",{name:"calendars",calendars:this.calendars??[],defaultSelectedCalendars:d,organizerEmail:l}),t("nylas-availability-picker",{name:"availability",openHours:o,defaultTimezone:r}));case"bookingOptions":return t("div",null,t("nylas-buffer-time",{name:"buffer-time",buffer:e.buffer}),t("nylas-custom-booking-flow",{name:"booking-type",bookingType:e.bookingType}))}}render(){return t(n,{key:"19e6c127b0c0f18c9be2418964677ff58328ed41"},t("form",{key:"bd613b593967617376d5da7999efe4afeacfa02c",onSubmit:this.formSubmissionHandler,class:"scheduler-editor",ref:e=>this.formRef=e},t("div",{key:"8fa38579a290e364608b9cdb98f7d56882d36554",class:"form-contents"},t("div",{key:"f1df27ef2066f4c5c2f3bdbb461d50b5d4907735",class:"tabs"},t("button",{key:"08712b407a4d7010390b2c21b8be5ec574dbbb25",class:{tab:true,active:this.activeTab=="eventInfo"},onClick:e=>this.setActiveTab(e,"eventInfo")},t("calendar-info-icon",{key:"2b7bb89183aff870d09a6a6d7d4163e0d134da1d",width:"16",height:"16"}),"Event Info"),t("button",{key:"91039f8205c1dc42eb7bc9ecad4f712919a41456",class:{tab:true,active:this.activeTab=="availability"},onClick:e=>this.setActiveTab(e,"availability")},t("calendar-patterns-icon",{key:"d6d54b4a2c281db5a2a0e5cf2d41788ca81411a0",width:"16",height:"16"}),"Availability"),t("button",{key:"5744f63795f0c791bb4eeacfb07355b9dc47bad1",class:{tab:true,active:this.activeTab=="bookingOptions"},onClick:e=>this.setActiveTab(e,"bookingOptions")},t("flow-icon",{key:"ed3f6bbbf5e2a867a1c8803bc1e19ab344c492c4",width:"16",height:"16"}),"Booking Options")),t("div",{key:"4e703aa0c814b7e4f322cc3df7546d52dc9da866",class:"tab-content"},this.renderTabContent(this.formState))),t("div",{key:"17b58229c11d08bae176a06f1f46247b32e14115",class:"footer"},t("p",{key:"0cdfe2e1990a2ff0ab8ba9a2b965fdcaef02994e",class:{"unsaved-changes":this.hasUnsavedChanges&&!this.changesSaved,"saved-changes":this.changesSaved}},this.hasUnsavedChanges&&!this.changesSaved?"Unsaved changes":this.changesSaved?"Changes saved!":""),t("button",{key:"8d22df55b55d23caced2939821fa027653a26c2b",type:"submit",disabled:this.isLoading},this.isLoading?t("span",null,"Saving",t("loading-icon",null)," "):"Save changes"))))}static get watchers(){return{config:["configChangedHandler"]}}};c([s({name:"nylas-editor-tabs",stateToProps:new Map([["schedulerConfig.calendars","calendars"],["schedulerConfig.config","config"]]),eventToProps:{schedulerConfigChanged:async(e,a)=>{const{resetLoadingState:t}=e.detail;if(t){t(e)}}},fireRegisterEvent:true}),l("design:type",Function),l("design:paramtypes",[]),l("design:returntype",void 0)],d.prototype,"render",null);d.style=r;export{d as nylas_editor_tabs};
2
- //# sourceMappingURL=p-afdac062.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nylasEditorTabsCss","NylasEditorTabsStyle0","NylasEditorTabs","this","formSubmissionHandler","async","event","preventDefault","isLoading","hasUnsavedChanges","updateFormState","title","description","duration","availability","calendarIds","bookingCalendar","location","bookingType","buffer","formState","organizer","config","participants","find","p","is_organizer","configObject","duration_minutes","parseInt","availability_rules","availability_method","name","email","calendar_ids","length","open_hours","booking","calendar_id","event_booking","toString","booking_type","resetLoadingState","_e","changesSaved","setTimeout","schedulerConfigChanged","emit","getFormStateFromConfig","configChangedHandler","newConfig","debug","connectedCallback","componentWillLoad","componentDidLoad","disconnectedCallback","handleValueChanged","detail","value","organizerParticipant","undefined","before","after","formData","FormData","formRef","forEach","key","JSON","parse","split","setActiveTab","e","tabName","activeTab","renderTabContent","eventTitle","eventDescription","eventDuration","h","slot","eventDurationMinutes","eventLocation","openHours","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","organizerEmail","selectedCalendars","calendars","defaultBookingCalendar","defaultSelectedCalendars","defaultTimezone","render","Host","onSubmit","class","ref","el","tab","active","onClick","width","height","type","disabled","__decorate","RegisterComponent","stateToProps","Map","eventToProps","_nylasSchedulerConfigConnector","fireRegisterEvent"],"sources":["src/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.scss?tag=nylas-editor-tabs&encapsulation=shadow","src/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n@import '../../../common/mixins/buttons.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.scheduler-editor {\n display: flex;\n flex-direction: column;\n .form-contents {\n display: grid;\n grid-template-columns: minmax(224px, 25%) 1fr;\n @media #{$mobile} {\n display: table-column-group;\n }\n .tabs {\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--nylas-base-200);\n background-color: var(--nylas-base-25);\n .tab {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 1rem;\n color: var(--nylas-base-900);\n background: var(--nylas-base-0);\n border: none;\n height: 56px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n font-weight: 500;\n line-height: 24px;\n cursor: pointer;\n &:not(:first-of-type) {\n margin-top: 0.25rem;\n }\n &.active {\n font-weight: 600;\n background: var(--nylas-base-0);\n color: var(--nylas-primary);\n border-left: 4px solid var(--nylas-primary);\n box-shadow: 0px 1px 2px 0px #0000000f;\n box-shadow: 0px 1px 3px 0px #0000001a;\n }\n }\n }\n .tab-content {\n max-width: 692px;\n nylas-event-info {\n div[slot='inputs'] {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n }\n }\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 1rem;\n height: 80px;\n padding: 0 1rem;\n border-top: 1px solid var(--nylas-base-200);\n .unsaved-changes {\n color: var(--nylas-base-600);\n }\n .saved-changes {\n color: var(--nylas-success);\n }\n button {\n @include primary-button;\n width: 148px;\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { Component, Event, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { debug } from '@/utils/utils';\nimport { Calendar, Config as SchedulerConfig } from '@nylas/core';\nimport { EventEmitter } from '@stencil/core';\n\ntype SchedulerEventDetail = Partial<SchedulerConfig> & {\n resetLoadingState?: (e: CustomEvent) => void;\n};\n\n/**\n * The `nylas-editor-tabs` component is a UI component that displays the editor tabs for the scheduler editor.\n */\n@Component({\n tag: 'nylas-editor-tabs',\n styleUrl: 'nylas-editor-tabs.scss',\n shadow: true,\n})\nexport class NylasEditorTabs {\n private formRef!: HTMLFormElement;\n @Prop() calendars?: Calendar[];\n @Prop() config?: SchedulerConfig;\n @State() activeTab: string = 'eventInfo';\n @State() isLoading: boolean = false;\n @State() hasUnsavedChanges: boolean = false;\n @State() changesSaved: boolean = false;\n @State() formState: {\n title: string;\n description: string;\n duration: string;\n availability?: any;\n calendarIds: string[];\n participants?: any[];\n bookingCalendar?: string;\n location?: string;\n bookingType?: string;\n buffer?: { before: number; after: number };\n } = this.getFormStateFromConfig();\n\n @Event() schedulerConfigChanged!: EventEmitter<SchedulerEventDetail>;\n\n @Watch('config')\n configChangedHandler(newConfig: SchedulerConfig) {\n debug('nylas-editor-tabs', 'configChangedHandler', newConfig);\n this.formState = this.getFormStateFromConfig();\n }\n\n connectedCallback() {\n debug('nylas-editor-tabs', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-editor-tabs', 'componentWillLoad');\n }\n\n componentDidLoad() {\n debug('nylas-editor-tabs', 'componentDidLoad');\n }\n\n disconnectedCallback() {\n debug('nylas-editor-tabs', 'disconnectedCallback');\n }\n\n @Listen('valueChanged')\n handleValueChanged(event: CustomEvent) {\n debug('nylas-editor-tabs', 'handleValueChanged', event);\n this.formState = { ...this.formState, [event.detail.name]: event.detail.value };\n this.hasUnsavedChanges = true;\n }\n\n getFormStateFromConfig() {\n const organizerParticipant = this.config?.participants?.find(p => p.is_organizer);\n return {\n title: this.config?.event_booking?.title ?? '',\n description: this.config?.event_booking?.description ?? '',\n duration: this.config?.availability?.duration_minutes?.toString() ?? '10',\n availability: organizerParticipant?.availability?.open_hours ?? undefined,\n calendarIds: organizerParticipant?.availability?.calendar_ids ?? [],\n participants: this.config?.participants ?? [],\n bookingCalendar: organizerParticipant?.booking?.calendar_id ?? organizerParticipant?.email ?? '',\n location: this.config?.event_booking?.location ?? '',\n bookingType: this.config?.event_booking?.booking_type ?? 'booking',\n buffer: this.config?.availability?.availability_rules?.buffer ?? { before: 0, after: 0 },\n };\n }\n\n updateFormState() {\n const formData = new FormData(this.formRef);\n formData.forEach((value, key) => {\n switch (key) {\n case 'title':\n this.formState.title = value.toString();\n break;\n case 'description':\n this.formState.description = value.toString();\n break;\n case 'duration':\n this.formState.duration = value.toString();\n break;\n case 'availability':\n this.formState.availability = JSON.parse(value.toString());\n break;\n case 'participants':\n this.formState.participants = JSON.parse(value.toString());\n break;\n case 'calendars':\n this.formState.calendarIds = value.toString().split(',');\n break;\n case 'booking-calendar':\n this.formState.bookingCalendar = value.toString();\n break;\n case 'location':\n this.formState.location = value.toString();\n break;\n case 'booking-type':\n this.formState.bookingType = value.toString();\n break;\n case 'buffer-time':\n this.formState.buffer = JSON.parse(value.toString());\n break;\n }\n });\n this.formState = { ...this.formState };\n }\n\n setActiveTab(e: Event, tabName: string) {\n e.preventDefault();\n this.updateFormState();\n this.activeTab = tabName;\n }\n\n formSubmissionHandler = async (event: Event) => {\n event.preventDefault();\n this.isLoading = true;\n this.hasUnsavedChanges = false;\n this.updateFormState();\n const { title, description, duration, availability, calendarIds, bookingCalendar, location, bookingType, buffer } = this.formState;\n\n const organizer = this.config?.participants?.find(p => p.is_organizer);\n const configObject = {\n availability: {\n duration_minutes: parseInt(duration),\n availability_rules: {\n availability_method: this.config?.availability?.availability_rules?.availability_method ?? 'collective',\n buffer,\n },\n },\n participants: [\n {\n name: organizer?.name ?? '',\n email: organizer?.email ?? '',\n is_organizer: true,\n availability: {\n calendar_ids: calendarIds.length ? calendarIds : ['primary'],\n open_hours: availability ?? [],\n },\n booking: {\n calendar_id: bookingCalendar ?? 'primary',\n },\n },\n ],\n event_booking: {\n title: title?.toString() ?? '',\n description: description?.toString() ?? '',\n location: location?.toString() ?? '',\n booking_type: bookingType?.toString() ?? 'booking',\n },\n };\n const resetLoadingState = (_e: CustomEvent) => {\n this.isLoading = false;\n this.changesSaved = true;\n setTimeout(() => {\n this.changesSaved = false;\n }, 5000);\n };\n this.schedulerConfigChanged.emit({ ...configObject, resetLoadingState });\n };\n\n renderTabContent(formState) {\n switch (this.activeTab) {\n case 'eventInfo':\n const eventTitle = formState.title;\n const eventDescription = formState.description;\n const eventDuration = parseInt(formState.duration);\n const location = formState.location;\n // const eventParticipants = formState.participants;\n\n return (\n <div>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title name=\"title\" eventTitle={eventTitle} />\n <nylas-event-duration name=\"duration\" eventDurationMinutes={eventDuration} />\n <nylas-location-component name=\"location\" eventLocation={location} />\n <nylas-event-description name=\"description\" eventDescription={eventDescription} />\n </div>\n </nylas-event-info>\n {/* <nylas-additional-participants name=\"participants\" eventParticipants={eventParticipants} /> */}\n </div>\n );\n case 'availability':\n const openHours = formState.availability;\n const timezone = openHours?.[0]?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone;\n const organizer = formState.participants?.find(p => p.is_organizer);\n const organizerEmail = organizer?.email ?? 'primary';\n const selectedCalendars = formState.calendarIds.length > 0 ? formState.calendarIds : [organizerEmail];\n const bookingCalendar = formState.bookingCalendar == 'primary' ? organizerEmail : formState.bookingCalendar;\n return (\n <div>\n <nylas-booking-calendar-picker name=\"booking-calendar\" calendars={this.calendars ?? []} defaultBookingCalendar={bookingCalendar} />\n <nylas-calendar-picker name=\"calendars\" calendars={this.calendars ?? []} defaultSelectedCalendars={selectedCalendars} organizerEmail={organizerEmail} />\n <nylas-availability-picker name=\"availability\" openHours={openHours} defaultTimezone={timezone} />\n </div>\n );\n case 'bookingOptions':\n return (\n <div>\n <nylas-buffer-time name=\"buffer-time\" buffer={formState.buffer} />\n <nylas-custom-booking-flow name=\"booking-type\" bookingType={formState.bookingType} />\n </div>\n );\n }\n }\n\n @RegisterComponent<NylasEditorTabs, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-editor-tabs',\n stateToProps: new Map([\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.config', 'config'],\n ]),\n eventToProps: {\n schedulerConfigChanged: async (event: CustomEvent<SchedulerEventDetail>, _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector) => {\n const { resetLoadingState } = event.detail;\n if (resetLoadingState) {\n resetLoadingState(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <form onSubmit={this.formSubmissionHandler} class=\"scheduler-editor\" ref={el => (this.formRef = el as HTMLFormElement)}>\n <div class=\"form-contents\">\n <div class=\"tabs\">\n <button class={{ tab: true, active: this.activeTab == 'eventInfo' }} onClick={e => this.setActiveTab(e, 'eventInfo')}>\n <calendar-info-icon width=\"16\" height=\"16\" />\n Event Info\n </button>\n <button class={{ tab: true, active: this.activeTab == 'availability' }} onClick={e => this.setActiveTab(e, 'availability')}>\n <calendar-patterns-icon width=\"16\" height=\"16\" />\n Availability\n </button>\n <button class={{ tab: true, active: this.activeTab == 'bookingOptions' }} onClick={e => this.setActiveTab(e, 'bookingOptions')}>\n <flow-icon width=\"16\" height=\"16\" />\n Booking Options\n </button>\n </div>\n <div class=\"tab-content\">{this.renderTabContent(this.formState)}</div>\n </div>\n <div class=\"footer\">\n <p\n class={{\n 'unsaved-changes': this.hasUnsavedChanges && !this.changesSaved,\n 'saved-changes': this.changesSaved,\n }}\n >\n {this.hasUnsavedChanges && !this.changesSaved ? 'Unsaved changes' : this.changesSaved ? 'Changes saved!' : ''}\n </p>\n <button type=\"submit\" disabled={this.isLoading}>\n {this.isLoading ? (\n <span>\n Saving\n <loading-icon />{' '}\n </span>\n ) : (\n 'Save changes'\n )}\n </button>\n </div>\n </form>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,H as i,c as s,a as n}from"./p-e4b9d6af.js";import{R as o}from"./p-9955e9b6.js";import{d as a}from"./p-facc84f3.js";import{N as r,e as l}from"./p-1af51c6b.js";import{N as h,C as c}from"./p-5c72d9a4.js";import{N as d,a as f,b as u,C as p,H as m}from"./p-ce89d941.js";import"./p-cb65c223.js";import"./p-65b275df.js";const y=":host{display:block}div{height:inherit}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fade-in{animation:fadeIn 1.5s}.fade-out{animation:fadeOut 1.5s}@keyframes slideIn{0%{transform:translateY(100%)}100%{transform:translateY(0)}}@keyframes slideOut{0%{transform:translateY(0)}100%{transform:translateY(100%)}}.slide-in{animation:slideIn 1.5s}.slide-out{animation:slideOut 1.5s}@keyframes swipeIn{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@keyframes swipeOut{0%{transform:translateX(0)}100%{transform:translateX(100%)}}.swipe-in{animation:swipeIn 1.5s}.swipe-out{animation:swipeOut 1.5s}";const g=y;var b=undefined&&undefined.__decorate||function(t,e,i,s){var n=arguments.length,o=n<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,i):s,a;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(t,e,i,s);else for(var r=t.length-1;r>=0;r--)if(a=t[r])o=(n<3?a(o):n>3?a(e,i,o):a(e,i))||o;return n>3&&o&&Object.defineProperty(e,i,o),o};var w=undefined&&undefined.__metadata||function(t,e){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(t,e)};const v=class{constructor(e){t(this,e);this.state=undefined;this.isStateSet=undefined;this.isBoolean=undefined;this.getStore=undefined;this.transition="none";this.show=false;this.classes={};this.initTransition=this.initTransition.bind(this)}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){a(`[nylas-if-state] Component will load`);this.watchStore(true)}async componentDidLoad(){a(`[nylas-if-state] Component did load`)}shouldRender(){const[t,e]=this.state?this.state.split("."):["",""];const i=this.getStore;if(typeof i==="undefined"){a(`[nylas-if-state] Store name: ${t} | State name: ${e}`,{getStore:i});return false}const s=i(t);if(typeof s==="undefined"){a(`[nylas-if-state] Store name: ${t} | State name: ${e}`,{store:s});return false}const n=s.state[e];if(typeof this.isStateSet==="boolean"){return this.isStateSet===false&&(typeof n==="undefined"||n===null||n.length===0)||this.isStateSet===true&&typeof n!=="undefined"&&n!==null}if(typeof this.isBoolean==="boolean"){return this.isBoolean===true&&typeof n!=="undefined"&&n===true||this.isBoolean===false&&typeof n!=="undefined"&&n===false}return false}onGetStoreChange(){this.watchStore(true)}watchStore(t=false){const[e,i]=this.state?this.state.split("."):["",""];const s=this.getStore;if(typeof s==="undefined"){a(`[nylas-if-state] Store name: ${e} | State name: ${i}`,{getStore:s});return null}const n=s(e);if(typeof n==="undefined"){a(`[nylas-if-state] Store name: ${e} | State name: ${i}`,{store:n});return null}if(t===true){this.initTransition()}n.onChange(i,this.initTransition)}initTransition(){const t=this.shouldRender();switch(this.transition){case"fade":case"slide":case"swipe":this.classes={[`${this.transition}-in`]:t,[`${this.transition}-out`]:!t};setTimeout((()=>{this.show=t}),150);break;default:this.show=this.shouldRender();break}}render(){return e(i,{key:"91d17bc89a09742106ef3bd9365c5ce48cf14e86"},e("div",{key:"9d0070be4bf5d9a5f405fc4a0733e6d832fa669a",class:this.classes},this.show&&e("slot",null)))}static get watchers(){return{getStore:["onGetStoreChange"]}}};b([o({name:"nylas-if-state",getStoresToProp:"getStore",fireRegisterEvent:true}),w("design:type",Function),w("design:paramtypes",[]),w("design:returntype",void 0)],v.prototype,"render",null);v.style=g;const x=":host{font-family:'Arial', sans-serif;background:var(--nylas-color-primary-50);color:var(--nylas-color-primary-800);margin:0;display:contents}input{box-sizing:border-box}.login-container{display:flex;justify-content:center;align-items:center;height:100%}.login-box{width:300px;padding:20px;box-shadow:0 4px 8px rgba(0, 0, 0, 0.1);border-radius:var(--nylas-border-radius-2x);background:var(--nylas-color-primary-50);text-align:center}.login-box h1{margin-top:0;margin-bottom:0.5em}.login-box p{margin-bottom:1em}.login-methods button{display:block;width:100%;padding:10px 10px 10px 50px;margin-bottom:10px;border:none;border-radius:var(--nylas-border-radius);border:1px solid var(--nylas-color-primary-300);background:var(--nylas-color-primary-100);color:var(--nylas-color-primary-600);cursor:pointer;transition:background 0.3s ease;position:relative;text-align:left}.login-methods button svg{position:absolute;left:16px;top:50%;transform:translateY(-50%)}.login-methods button:hover{background:var(--nylas-color-primary-200);}.login-form label{display:block;margin-bottom:5px;text-align:left}.login-form input{width:100%;padding:10px;margin-bottom:10px;border:1px solid var(--nylas-color-primary-200);border-radius:var(--nylas-border-radius);background:var(--nylas-color-primary-100);color:var(--nylas-color-primary-800);}.login-form button{width:100%;padding:10px;border:none;border-radius:var(--nylas-border-radius);background:var(--nylas-color-primary-500);color:var(--nylas-color-primary-50);cursor:pointer;transition:background 0.3s ease}.login-form button:hover{background:var(--nylas-color-primary-600);}";const k=x;var C=undefined&&undefined.__decorate||function(t,e,i,s){var n=arguments.length,o=n<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,i):s,a;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(t,e,i,s);else for(var r=t.length-1;r>=0;r--)if(a=t[r])o=(n<3?a(o):n>3?a(e,i,o):a(e,i))||o;return n>3&&o&&Object.defineProperty(e,i,o),o};var S=undefined&&undefined.__metadata||function(t,e){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(t,e)};const R=class{constructor(e){t(this,e);this.buttonClick=s(this,"buttonClick",7);this._handleLoginRedirect=async()=>{const t=await(this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes));const e=this.buttonClick.emit({url:t});if(e.defaultPrevented){return}if(t){window.location.href=t}};this._onGoogleButtonClick=async t=>{t.preventDefault();const e=await(this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes,undefined,"google"));if(e){window.location.href=e}};this._onMicrosoftButtonClick=async t=>{t.preventDefault();const e=await(this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes,undefined,"microsoft"));if(e){window.location.href=e}};this._onFormSubmit=async t=>{t.preventDefault();const e=await(this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes,this.email));if(e){window.location.href=e}};this.isAuthenticated=false;this.nylasConnector=undefined;this.scopes=undefined;this.loginMethod="redirect";this.companyName="Nylas";this.logoUrl="https://www.nylas.com/wp-content/uploads/main-logo.svg";this.logoWidth="min-content";this.providers="google,microsoft";this.buttonText="Login";this.email=""}connectedCallback(){}disconnectedCallback(){}componentWillLoad(){}async componentDidLoad(){const t=await(this.nylasConnector?.auth.manageHostedAuthCodeExchange(window.location.href));if(t){window.history.replaceState({},document.title,window.location.pathname)}}render(){const t=this.providers?.split(",")||[];return e(i,{key:"2dc6992f3244d7af9e06b5a1ea8c2c83bed2dbb4"},this.loginMethod==="redirect"&&e("div",{class:"redirect-container"},!this.isAuthenticated&&e("sp-button",{part:"button",onClick:this._handleLoginRedirect},this.buttonText)),this.loginMethod==="emebded"&&e("main",{class:"login-container"},e("section",{class:"login-box"},e("header",null,e("img",{src:this.logoUrl,alt:`${this.companyName} logo`,width:"100%",style:{minWidth:this.logoWidth}}),e("h1",null,"Welcome")),e("p",null,"Log in to your account to continue to ",this.companyName),e("div",{class:"login-methods"},t.includes("google")&&e("button",{class:"login-google",onClick:this._onGoogleButtonClick},e("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 256 262"},e("path",{fill:"#4285F4",d:"M255.6 131.6c0-8.2-.8-16.2-2.2-23.9H130v45.3h70.3c-3 16.1-12.4 29.7-26.3 38.9v32.4h42.6c25-23 39.4-56.7 39.4-97.7z"}),e("path",{fill:"#34A853",d:"M130 262c35.3 0 64.9-11.7 86.5-31.7l-42.6-32.4c-11.7 7.9-26.7 12.6-43.9 12.6-33.7 0-62.3-22.7-72.5-53.4H14.5v33.3A130.3 130.3 0 00130 262z"}),e("path",{fill:"#FBBC05",d:"M57.5 158.1a72.7 72.7 0 010-54.2V70.6H14.5a130.4 130.4 0 000 120.8l43-33.3z"}),e("path",{fill:"#EA4335",d:"M130 51.6c19 0 36 6.5 49.4 19.2l37-36C195 13.1 165.2 0 130 0A130.3 130.3 0 0014.5 70.6l43 33.3c10.2-30.7 38.8-53.3 72.5-53.3z"})),"Continue with Google"),t.includes("microsoft")&&e("button",{class:"login-microsoft",onClick:this._onMicrosoftButtonClick},e("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 448 512"},e("path",{fill:"#F3F3F3",d:"M0 32v192h192V32H0zm256 0v192h192V32H256zm192 256v192h-192V288h192zM0 224v192h192V224H0z"})),"Continue with Microsoft")),e("form",{class:"login-form",method:"POST",onSubmit:this._onFormSubmit},e("label",{htmlFor:"email"},"Email"),e("input",{type:"email",id:"email",name:"email",required:true,value:this.email}),e("button",{type:"submit"},"Next")))))}};C([o({name:"nylas-login",connectorToProp:"nylasConnector",stateToProps:new Map([["auth.isAuthenticated","isAuthenticated"]]),fireRegisterEvent:true}),S("design:type",Function),S("design:paramtypes",[]),S("design:returntype",void 0)],R.prototype,"render",null);R.style=k;class j{constructor(t,e,i,s){this.router=t;this.nylasAuth=e;this.nylasAuthStore=i;this.nylasMailboxStore=s}init(){a("NylasMailboxConnector init")}get mailboxStore(){return this.nylasMailboxStore}get authStore(){return this.nylasAuthStore}get auth(){if(this._authConnector){return this._authConnector}this._authConnector=new h(this.nylasAuth,this.nylasAuthStore);return this._authConnector}get threads(){if(this._threadConnector){return this._threadConnector}this._threadConnector=new d(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore,this.router);return this._threadConnector}get messages(){if(this._messageConnector){return this._messageConnector}this._messageConnector=new f(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore);return this._messageConnector}get folders(){if(this._foldersConnector){return this._foldersConnector}this._foldersConnector=new u(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore);return this._foldersConnector}getAuth(){return this.nylasAuth}resetStores(){this.nylasMailboxStore.reset();this.nylasAuthStore.reset()}async logout(){await this.nylasAuth.logout();this.resetStores()}}const A=":host{display:contents}";const M=A;const O=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{const t=this.loggedOut.emit(this.host);if(!t.defaultPrevented){await(this.nylasMailboxConnector?.logout())}}};this.automaticComponentRegistration=true;this.eventOverrides={};this.authConfig=undefined;this.defaultAuthStoreState=undefined;this.defaultMailboxStoreState=undefined}connectedCallback(){a("[nylas-mailbox] connectedCallback")}async componentWillLoad(){this.stores={auth:c(this.defaultAuthStoreState),mailbox:p(this.defaultMailboxStoreState)};this.baseProvider=new r(this.host,this.stores,this.automaticComponentRegistration,this.eventOverrides);this.router=new m;this.nylasAuth=l({apiUri:"https://api.us.nylas.com",elementsApiUri:"https://elements.us.nylas.com",storageType:"indexeddb",clientId:"YOUR_CLIENT_ID",defaultScopes:[],redirectURI:"/",...this.authConfig});const t=this.baseProvider?.getStore("auth");if(!t){throw new Error("Auth store is not defined")}const e=this.baseProvider?.getStore("mailbox");if(!e){throw new Error("Mailbox store is not defined")}this.nylasMailboxConnector=new j(this.router,this.nylasAuth,t,e);const i=this.init.emit(this.host);if(!i.defaultPrevented){await(this.nylasMailboxConnector?.auth.validateSession())}this.router?.addRouteChangeListener(`/thread/:threadId`,(async(t,e,i)=>{const s=i.threadId;const n=await(this.nylasMailboxConnector?.threads.getThread(s));if(n){this.nylasMailboxConnector?.mailboxStore.set("selectedThread",n)}}));this.router?.addRouteChangeListener(`/`,(async(e,i,s)=>{if(!t.state.isAuthenticated){return}this.nylasMailboxConnector?.threads.unSelectThread();this.nylasMailboxConnector?.folders.getFolders();const n=window.location.hash.split("?")[1];if(n){const t=new URLSearchParams(n);const e=t.get("query");if(e){await(this.nylasMailboxConnector?.threads.getThreads({search_query_native:e,page_token:undefined}))}}else{this.nylasMailboxConnector?.threads.getThreads()}}));this.router?.init();this.handleAuthChange(t.state.isAuthenticated);this.baseProvider?.componentWillLoad(this.nylasMailboxConnector)}async componentDidLoad(){const t=this.baseProvider?.getStore("auth");if(!t){throw new Error("Auth store is not defined")}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 getMailboxStore(){return this.baseProvider?.getStore("mailbox")}async getAuthStore(){return this.baseProvider?.getStore("auth")}async getNylasAuth(){return this.nylasAuth}async getNylasMailboxConnector(){return this.nylasMailboxConnector}render(){return e(i,{key:"662c4d3f763c5cf9db31c4d2ba26bcdf47ead164"},e("slot",{key:"5c2b75a569779dd2af6388648a4304721e82ba76"}))}get host(){return n(this)}};O.style=M;export{v as nylas_if_state,R as nylas_login,O as nylas_mailbox};
2
- //# sourceMappingURL=p-be3b6e3a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nylasIfStateCss","NylasIfStateStyle0","NylasIfState","constructor","hostRef","this","initTransition","bind","connectedCallback","disconnectedCallback","componentWillLoad","debug","watchStore","componentDidLoad","shouldRender","storeName","stateName","state","split","getStore","store","isStateSet","length","isBoolean","onGetStoreChange","immediate","onChange","show","transition","classes","setTimeout","render","h","Host","key","class","__decorate","RegisterComponent","name","getStoresToProp","fireRegisterEvent","nylasLoginCss","NylasLoginStyle0","NylasLogin","_handleLoginRedirect","async","url","nylasConnector","auth","getHostedAuthRedirectURL","scopes","event","buttonClick","emit","defaultPrevented","window","location","href","_onGoogleButtonClick","preventDefault","undefined","_onMicrosoftButtonClick","_onFormSubmit","email","exchangedToken","manageHostedAuthCodeExchange","history","replaceState","document","title","pathname","splitProviders","providers","loginMethod","isAuthenticated","part","onClick","buttonText","src","logoUrl","alt","companyName","width","style","minWidth","logoWidth","includes","xmlns","role","height","preserveAspectRatio","viewBox","fill","d","method","onSubmit","htmlFor","type","id","required","value","connectorToProp","stateToProps","Map","NylasMailboxConnector","router","nylasAuth","nylasAuthStore","nylasStore","nylasMailboxStore","init","mailboxStore","authStore","_authConnector","NylasAuthConnector","threads","_threadConnector","NylasThreadsConnector","messages","_messageConnector","NylasMessagesConnector","folders","_foldersConnector","NylasFoldersConnector","getAuth","resetStores","reset","logout","nylasMailboxCss","NylasMailboxStyle0","NylasMailbox","handleAuthChange","loggedIn","host","loggedOutEvent","loggedOut","nylasMailboxConnector","stores","CreateNylasAuthStore","defaultAuthStoreState","mailbox","CreateNylasMailboxStore","defaultMailboxStoreState","baseProvider","NylasBaseProvider","automaticComponentRegistration","eventOverrides","HashRouter","NylasAuth","apiUri","elementsApiUri","storageType","clientId","defaultScopes","redirectURI","authConfig","Error","initEvent","validateSession","addRouteChangeListener","_route","_path","routeParams","threadId","thread","getThread","set","_routeParams","unSelectThread","getFolders","queryParams","hash","params","URLSearchParams","searchQuery","get","getThreads","search_query_native","page_token","componentDisconnected","registerComponentHandler","registerComponent","detail","unregisterComponentHandler","unregisterComponent","getMailboxStore","getAuthStore","getNylasAuth","getNylasMailboxConnector"],"sources":["src/components/nylas-if-state/nylas-if-state.css?tag=nylas-if-state&encapsulation=shadow","src/components/nylas-if-state/nylas-if-state.tsx","src/components/nylas-login/nylas-login.css?tag=nylas-login&encapsulation=shadow","src/components/nylas-login/nylas-login.tsx","src/connector/nylas-mailbox-connector/index.ts","src/components/mailbox/nylas-mailbox/nylas-mailbox.css?tag=nylas-mailbox&encapsulation=shadow","src/components/mailbox/nylas-mailbox/nylas-mailbox.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\ndiv {\n height: inherit;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.fade-in {\n animation: fadeIn 1.5s;\n}\n\n.fade-out {\n animation: fadeOut 1.5s;\n}\n\n@keyframes slideIn {\n 0% {\n transform: translateY(100%);\n }\n 100% {\n transform: translateY(0);\n }\n}\n\n@keyframes slideOut {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(100%);\n }\n}\n\n.slide-in {\n animation: slideIn 1.5s;\n}\n\n.slide-out {\n animation: slideOut 1.5s;\n}\n\n@keyframes swipeIn {\n 0% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(0);\n }\n}\n\n@keyframes swipeOut {\n 0% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n}\n\n.swipe-in {\n animation: swipeIn 1.5s;\n}\n\n.swipe-out {\n animation: swipeOut 1.5s;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { debug } from '@/utils/utils';\nimport { Component, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { ObservableMap } from '@stencil/store';\n\nexport type Stores = Record<string, ObservableMap<any>>;\n\nexport type Transitions = 'none' | 'fade' | 'slide' | 'swipe';\n\n@Component({\n tag: 'nylas-if-state',\n styleUrl: 'nylas-if-state.css',\n shadow: true,\n})\nexport class NylasIfState {\n /**\n * The name of the state to watch.\n */\n @Prop() readonly state?: string;\n /**\n * If true, then the component will render if the state is set (empty or not set).\n * This prop is used with the `state` prop.\n */\n @Prop() readonly isStateSet?: boolean;\n /**\n * If true, then the component will render if the state is true.\n * This prop is used with the `state` prop.\n */\n @Prop() readonly isBoolean?: boolean;\n @Prop() readonly getStore?: <K extends keyof Stores>(name: K) => Stores[K];\n @Prop() readonly transition: Transitions = 'none';\n\n @State() show: boolean = false;\n @State() classes: Record<string, boolean> = {};\n\n constructor() {\n this.initTransition = this.initTransition.bind(this);\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-if-state] Component will load`);\n this.watchStore(true);\n }\n\n async componentDidLoad() {\n debug(`[nylas-if-state] Component did load`);\n }\n\n private shouldRender() {\n // If a period exists in the state name, then we need to split the state name into the store name and the state name.\n // For example, if the state name is `nylas.scheduler.selectableDates`, then the store name is `nylas` and the state name is `scheduler.selectableDates`.\n const [storeName, stateName] = this.state ? this.state.split('.') : ['', ''];\n const getStore = this.getStore;\n if (typeof getStore === 'undefined') {\n debug(`[nylas-if-state] Store name: ${storeName} | State name: ${stateName}`, { getStore });\n return false;\n }\n\n const store = getStore(storeName as keyof Stores);\n if (typeof store === 'undefined') {\n debug(`[nylas-if-state] Store name: ${storeName} | State name: ${stateName}`, { store });\n return false;\n }\n\n const state = store.state[stateName as string];\n\n if (typeof this.isStateSet === 'boolean') {\n return (\n (this.isStateSet === false && (typeof state === 'undefined' || state === null || state.length === 0)) ||\n (this.isStateSet === true && typeof state !== 'undefined' && state !== null)\n );\n }\n\n if (typeof this.isBoolean === 'boolean') {\n return (this.isBoolean === true && typeof state !== 'undefined' && state === true) || (this.isBoolean === false && typeof state !== 'undefined' && state === false);\n }\n\n return false;\n }\n\n @Watch('getStore')\n onGetStoreChange() {\n this.watchStore(true);\n }\n\n private watchStore(immediate: boolean = false) {\n // If a period exists in the state name, then we need to split the state name into the store name and the state name.\n // For example, if the state name is `nylas.scheduler.selectableDates`, then the store name is `nylas` and the state name is `scheduler.selectableDates`.\n const [storeName, stateName] = this.state ? this.state.split('.') : ['', ''];\n const getStore = this.getStore;\n if (typeof getStore === 'undefined') {\n debug(`[nylas-if-state] Store name: ${storeName} | State name: ${stateName}`, { getStore });\n return null;\n }\n\n const store = getStore(storeName as keyof Stores);\n if (typeof store === 'undefined') {\n debug(`[nylas-if-state] Store name: ${storeName} | State name: ${stateName}`, { store });\n return null;\n }\n\n if (immediate === true) {\n this.initTransition();\n }\n\n store.onChange(stateName as string, this.initTransition);\n }\n\n private initTransition() {\n const show = this.shouldRender();\n switch (this.transition) {\n case 'fade':\n case 'slide':\n case 'swipe':\n this.classes = {\n [`${this.transition}-in`]: show,\n [`${this.transition}-out`]: !show,\n };\n setTimeout(() => {\n this.show = show;\n }, 150);\n break;\n default:\n this.show = this.shouldRender();\n break;\n }\n }\n\n @RegisterComponent({\n name: 'nylas-if-state',\n getStoresToProp: 'getStore',\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class={this.classes}>{this.show && <slot></slot>}</div>\n </Host>\n );\n }\n}\n",":host {\n font-family: 'Arial', sans-serif;\n background: var(--nylas-color-primary-50); /* Closest to #f0f0f0 */\n color: var(--nylas-color-primary-800); /* Closest to #333 */\n margin: 0;\n display: contents;\n}\n\ninput {\n box-sizing: border-box;\n}\n\n.login-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n\n.login-box {\n width: 300px;\n padding: 20px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border-radius: var(--nylas-border-radius-2x);\n background: var(--nylas-color-primary-50); /* Assuming white background */\n text-align: center;\n}\n\n.login-box h1 {\n margin-top: 0;\n margin-bottom: 0.5em;\n}\n\n.login-box p {\n margin-bottom: 1em;\n}\n\n.login-methods button {\n display: block;\n width: 100%;\n padding: 10px 10px 10px 50px;\n margin-bottom: 10px;\n border: none;\n border-radius: var(--nylas-border-radius);\n border: 1px solid var(--nylas-color-primary-300); /* Closest to #b1b1b1 */\n background: var(--nylas-color-primary-100); /* Closest to #f1f1f1 */\n color: var(--nylas-color-primary-600); /* Closest to #5f6368 */\n cursor: pointer;\n transition: background 0.3s ease;\n position: relative;\n text-align: left;\n}\n\n.login-methods button svg {\n position: absolute;\n left: 16px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.login-methods button:hover {\n background: var(--nylas-color-primary-200); /* Closest to #e2e2e2 */\n}\n\n.login-form label {\n display: block;\n margin-bottom: 5px;\n text-align: left;\n}\n\n.login-form input {\n width: 100%;\n padding: 10px;\n margin-bottom: 10px;\n border: 1px solid var(--nylas-color-primary-200); /* Closest to #ddd */\n border-radius: var(--nylas-border-radius);\n background: var(--nylas-color-primary-100); /* Closest to #f1f1f1 */\n color: var(--nylas-color-primary-800); /* Closest to #333 */\n}\n\n.login-form button {\n width: 100%;\n padding: 10px;\n border: none;\n border-radius: var(--nylas-border-radius);\n background: var(--nylas-color-primary-500); /* Closest to #007bff */\n color: var(--nylas-color-primary-50); /* Assuming white text */\n cursor: pointer;\n transition: background 0.3s ease;\n}\n\n.login-form button:hover {\n background: var(--nylas-color-primary-600); /* Closest to #0056b3 */\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasAuthConnectorInterface } from '@/connector/connector-interface';\nimport { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { ObservableMap } from '@stencil/store';\nimport { NylasAuthStoreState } from '../../components';\n\n@Component({\n tag: 'nylas-login',\n styleUrl: 'nylas-login.css',\n shadow: true,\n})\nexport class NylasLogin {\n @Prop() readonly isAuthenticated: boolean = false;\n @Prop() readonly nylasConnector?: NylasAuthConnectorInterface;\n @Prop() readonly scopes?: string[];\n @Prop() readonly loginMethod: 'redirect' | 'emebded' = 'redirect';\n @Prop() readonly companyName: string = 'Nylas';\n @Prop() readonly logoUrl: string = 'https://www.nylas.com/wp-content/uploads/main-logo.svg';\n @Prop() readonly logoWidth?: string = 'min-content';\n @Prop() readonly providers?: string = 'google,microsoft';\n @Prop() readonly buttonText: string = 'Login';\n\n @Event() buttonClick!: EventEmitter<{ url?: string }>;\n\n @State() email: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n async componentDidLoad() {\n const exchangedToken = await this.nylasConnector?.auth.manageHostedAuthCodeExchange(window.location.href);\n if (exchangedToken) {\n // Remove the code query param from the user's browser url\n window.history.replaceState({}, document.title, window.location.pathname);\n }\n }\n\n private _handleLoginRedirect = async () => {\n const url = await this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes);\n\n const event = this.buttonClick.emit({ url });\n if (event.defaultPrevented) {\n return;\n }\n\n if (url) {\n window.location.href = url;\n }\n };\n\n private _onGoogleButtonClick = async (event: Event) => {\n // Prevent the form from submitting\n event.preventDefault();\n\n const url = await this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes, undefined, 'google');\n if (url) {\n window.location.href = url;\n }\n };\n\n private _onMicrosoftButtonClick = async (event: Event) => {\n // Prevent the form from submitting\n event.preventDefault();\n\n const url = await this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes, undefined, 'microsoft');\n if (url) {\n window.location.href = url;\n }\n };\n\n private _onFormSubmit = async (event: Event) => {\n // Prevent the form from submitting\n event.preventDefault();\n\n const url = await this.nylasConnector?.auth.getHostedAuthRedirectURL(this.scopes, this.email);\n if (url) {\n window.location.href = url;\n }\n };\n\n @RegisterComponent<\n NylasLogin,\n NylasAuthConnectorInterface,\n {\n auth: ObservableMap<NylasAuthStoreState>;\n }\n >({\n name: 'nylas-login',\n connectorToProp: 'nylasConnector',\n stateToProps: new Map([['auth.isAuthenticated', 'isAuthenticated']]),\n fireRegisterEvent: true,\n })\n render() {\n const splitProviders = this.providers?.split(',') || [];\n return (\n <Host>\n {this.loginMethod === 'redirect' && (\n <div class=\"redirect-container\">\n {!this.isAuthenticated && (\n <sp-button part=\"button\" onClick={this._handleLoginRedirect}>\n {this.buttonText}\n </sp-button>\n )}\n </div>\n )}\n {this.loginMethod === 'emebded' && (\n <main class=\"login-container\">\n <section class=\"login-box\">\n <header>\n <img\n src={this.logoUrl}\n alt={`${this.companyName} logo`}\n width={'100%'}\n style={{\n minWidth: this.logoWidth,\n }}\n />\n <h1>Welcome</h1>\n </header>\n <p>Log in to your account to continue to {this.companyName}</p>\n <div class=\"login-methods\">\n {splitProviders.includes('google') && (\n <button class=\"login-google\" onClick={this._onGoogleButtonClick}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" role=\"img\" width=\"18\" height=\"18\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 256 262\">\n <path fill=\"#4285F4\" d=\"M255.6 131.6c0-8.2-.8-16.2-2.2-23.9H130v45.3h70.3c-3 16.1-12.4 29.7-26.3 38.9v32.4h42.6c25-23 39.4-56.7 39.4-97.7z\" />\n <path\n fill=\"#34A853\"\n d=\"M130 262c35.3 0 64.9-11.7 86.5-31.7l-42.6-32.4c-11.7 7.9-26.7 12.6-43.9 12.6-33.7 0-62.3-22.7-72.5-53.4H14.5v33.3A130.3 130.3 0 00130 262z\"\n />\n <path fill=\"#FBBC05\" d=\"M57.5 158.1a72.7 72.7 0 010-54.2V70.6H14.5a130.4 130.4 0 000 120.8l43-33.3z\" />\n <path fill=\"#EA4335\" d=\"M130 51.6c19 0 36 6.5 49.4 19.2l37-36C195 13.1 165.2 0 130 0A130.3 130.3 0 0014.5 70.6l43 33.3c10.2-30.7 38.8-53.3 72.5-53.3z\" />\n </svg>\n Continue with Google\n </button>\n )}\n {splitProviders.includes('microsoft') && (\n <button class=\"login-microsoft\" onClick={this._onMicrosoftButtonClick}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" role=\"img\" width=\"18\" height=\"18\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 448 512\">\n <path fill=\"#F3F3F3\" d=\"M0 32v192h192V32H0zm256 0v192h192V32H256zm192 256v192h-192V288h192zM0 224v192h192V224H0z\" />\n </svg>\n Continue with Microsoft\n </button>\n )}\n {/* <button class=\"login-all\">View all providers</button> */}\n </div>\n <form class=\"login-form\" method=\"POST\" onSubmit={this._onFormSubmit}>\n <label htmlFor=\"email\">Email</label>\n <input type=\"email\" id=\"email\" name=\"email\" required value={this.email} />\n <button type=\"submit\">Next</button>\n </form>\n </section>\n </main>\n )}\n </Host>\n );\n }\n}\n","import { RouterInterface } from '@/routers/router-interface';\nimport { NylasAuthStoreType } from '@/stores/auth-store';\nimport { NylasMailboxStoreType } from '@/stores/mailbox-store';\nimport { debug } from '@/utils/utils';\nimport type { NylasAuthType } from '@nylas/core';\nimport { NylasMailboxConnectorInterface } from '../connector-interface';\nimport { NylasAuthConnector } from '../shared/api/auth';\nimport { NylasMessagesConnector } from '../shared/api/messages';\nimport { NylasThreadsConnector } from '../shared/api/threads';\nimport { NylasFoldersConnector } from '../shared/api/folders';\n\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasMailboxConnector implements NylasMailboxConnectorInterface {\n public nylasAuth: NylasAuthType;\n public nylasMailboxStore: NylasMailboxStoreType;\n public nylasAuthStore: NylasAuthStoreType;\n public router: RouterInterface;\n\n private _authConnector: NylasAuthConnector | undefined;\n private _threadConnector: NylasThreadsConnector | undefined;\n private _messageConnector: NylasMessagesConnector | undefined;\n private _foldersConnector: NylasFoldersConnector | undefined;\n\n constructor(router: RouterInterface, nylasAuth: NylasAuthType, nylasAuthStore: NylasAuthStoreType, nylasStore: NylasMailboxStoreType) {\n this.router = router;\n this.nylasAuth = nylasAuth;\n this.nylasAuthStore = nylasAuthStore;\n this.nylasMailboxStore = nylasStore;\n }\n\n public init() {\n debug('NylasMailboxConnector init');\n }\n\n public get mailboxStore() {\n return this.nylasMailboxStore;\n }\n\n public get authStore() {\n return this.nylasAuthStore;\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 getAuth() {\n return this.nylasAuth;\n }\n\n public resetStores() {\n this.nylasMailboxStore.reset();\n this.nylasAuthStore.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 NylasMailboxConnectorPublicMethods = PublicMethods<NylasMailboxConnector>;\n",":host {\n display: contents;\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { EventOverride } from '@/common/component-types';\nimport { NylasMailboxConnector } from '@/connector/nylas-mailbox-connector';\nimport { HashRouter } from '@/routers/hash-router';\nimport { RouterInterface } from '@/routers/router-interface';\nimport { CreateNylasAuthStore, NylasAuthStoreState, NylasAuthStoreType } from '@/stores/auth-store';\nimport { CreateNylasMailboxStore, NylasMailboxStoreState, NylasMailboxStoreType } from '@/stores/mailbox-store';\nimport { AuthConfig, NylasAuth, NylasAuthType } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, h } from '@stencil/core';\nimport { debug } from '@/utils/utils';\n\n/**\n * The Nylas Mailbox component.\n * This component is used as a provider for all other Nylas Mailbox components.\n * It is responsible for managing the NylasAuth and NylasMailboxConnector instances.\n * It also manages the state of the NylasAuth and NylasMailboxStore instances.\n * @example\n * <nylas-mailbox\n * auth-config={{\n * clientId: 'YOUR_CLIENT_ID',\n * }}\n * default-auth-store-state={{\n * threadQueryParams: {\n * limit: 10,\n * }}\n * >\n * <nylas-mailbox-thread-list></nylas-mailbox-thread-list>\n * </nylas-mailbox>\n */\n@Component({\n tag: 'nylas-mailbox',\n styleUrl: 'nylas-mailbox.css',\n shadow: true,\n})\nexport class NylasMailbox {\n /**\n * Stores to be used by the provider.\n */\n private stores?: {\n auth: NylasAuthStoreType;\n mailbox: NylasMailboxStoreType;\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 * A router instance.\n */\n private router?: RouterInterface;\n\n /**\n * The Nylas Mailbox Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasMailboxConnector?: NylasMailboxConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasMailboxElement;\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 */\n @Prop() readonly automaticComponentRegistration: boolean = true;\n\n /**\n * This provides a way to override the default event handlers.\n */\n @Prop() eventOverrides: EventOverride<Exclude<typeof this.nylasMailboxConnector, undefined>> = {};\n\n /**\n * The Nylas Auth configuration.\n * Used to manage all things authentication with Nylas.\n */\n @Prop({ attribute: 'auth-config' }) readonly authConfig?: AuthConfig;\n\n /**\n * The default auth store state.\n * Used to set the initial state of the auth store.\n */\n @Prop({ attribute: 'default-auth-store-state' }) readonly defaultAuthStoreState?: NylasAuthStoreState;\n\n /**\n * The default mailbox store state.\n * Used to set the initial state of the mailbox store.\n */\n @Prop({ attribute: 'default-mailbox-store-state' }) readonly defaultMailboxStoreState?: NylasMailboxStoreState;\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 }) readonly init!: EventEmitter<HTMLNylasMailboxElement>;\n\n /**\n * This event is fired when the the NyalsAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) readonly loggedIn!: EventEmitter<HTMLNylasMailboxElement>;\n\n /**\n * This event is fired when the the NyalsAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) readonly loggedOut!: EventEmitter<HTMLNylasMailboxElement>;\n\n connectedCallback() {\n debug('[nylas-mailbox] connectedCallback');\n }\n\n async componentWillLoad() {\n this.stores = {\n auth: CreateNylasAuthStore(this.defaultAuthStoreState),\n mailbox: CreateNylasMailboxStore(this.defaultMailboxStoreState),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n /**\n * Create the router instance.\n * This will be used to manage the routing of the provider.\n */\n this.router = new HashRouter();\n\n /**\n * Create the NylasAuth instance.\n * This will be 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 authStore = this.baseProvider?.getStore('auth');\n if (!authStore) {\n throw new Error('Auth store is not defined');\n }\n\n const mailboxStore = this.baseProvider?.getStore('mailbox');\n if (!mailboxStore) {\n throw new Error('Mailbox store is not defined');\n }\n\n this.nylasMailboxConnector = new NylasMailboxConnector(this.router, this.nylasAuth, authStore, mailboxStore);\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.nylasMailboxConnector?.auth.validateSession();\n }\n\n // Handle our router\n this.router?.addRouteChangeListener(`/thread/:threadId`, async (_route, _path, routeParams) => {\n const threadId = routeParams.threadId;\n const thread = await this.nylasMailboxConnector?.threads.getThread(threadId);\n if (thread) {\n this.nylasMailboxConnector?.mailboxStore.set('selectedThread', thread);\n }\n });\n this.router?.addRouteChangeListener(`/`, async (_route, _path, _routeParams) => {\n if (!authStore.state.isAuthenticated) {\n return;\n }\n // Reset the selected thread\n this.nylasMailboxConnector?.threads.unSelectThread();\n this.nylasMailboxConnector?.folders.getFolders();\n\n // If we have a query param, search for threads\n const queryParams = window.location.hash.split('?')[1];\n if (queryParams) {\n const params = new URLSearchParams(queryParams);\n const searchQuery = params.get('query');\n if (searchQuery) {\n await this.nylasMailboxConnector?.threads.getThreads({\n search_query_native: searchQuery,\n page_token: undefined,\n });\n }\n } else {\n this.nylasMailboxConnector?.threads.getThreads();\n }\n });\n\n /**\n * Initialize the router.\n * This will be used to manage the routing of the provider.\n */\n this.router?.init();\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(authStore.state.isAuthenticated);\n this.baseProvider?.componentWillLoad(this.nylasMailboxConnector);\n }\n\n async componentDidLoad() {\n const authStore = this.baseProvider?.getStore('auth');\n if (!authStore) {\n throw new Error('Auth store is not defined');\n }\n\n authStore.onChange('isAuthenticated', this.handleAuthChange);\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 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 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 NylasMailboxConnector instance\n * @returns The NylasMailboxConnector instance\n */\n @Method()\n async getNylasMailboxConnector() {\n return this.nylasMailboxConnector;\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 const loggedOutEvent = this.loggedOut.emit(this.host);\n if (!loggedOutEvent.defaultPrevented) {\n await this.nylasMailboxConnector?.logout();\n }\n }\n };\n\n render() {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as e,h as o}from"./p-e4b9d6af.js";const r=".sc-arrow-icon-h{display:flex}";const t=r;const s=class{constructor(o){e(this,o);this.width="15";this.height="15"}render(){return o("svg",{key:"60eb6fe3830bcf83b515575fddac295ee46b8445",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o("path",{key:"bc01c86926c840e985ae2dbd7edf1714b5015bc2",d:"M5 12H19M12 5L19 12L12 19",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};s.style=t;export{s as arrow_icon};
2
- //# sourceMappingURL=p-cc6721a7.entry.js.map
@@ -1,2 +0,0 @@
1
- import{X as t,Z as e}from"./p-1af51c6b.js";import{d as s}from"./p-facc84f3.js";import{c as r}from"./p-65b275df.js";class a{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 s=this.nylasMailboxStore.state.messgeQueryParams;const r=new URLSearchParams;for(const t in s){const e=s[t]?.toString();if(e){r.append(t,e)}}const a=`/v3/grants/me/messages?${r.toString()}`;const i=await this.nylasAuth.nylasAPIRequest(a);if(t(i)){throw new e(i.error)}const n=i.data;this.nylasMailboxStore.state.messages=n;this.nylasMailboxStore.state.state="ready";return n}async getThreadMessages(s){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=${s}&fields=include_headers`);if(t(r)){throw new e(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(s){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:s}},true,this.nylasAuth.config.elementsApiUri);if(t(r)){throw new e(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(s,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 i=s||this.nylasMailboxStore.state.threadsQueryParams;const n=new URLSearchParams;for(const t in i){const e=i[t]?.toString();if(typeof e!=="undefined"&&e!==null){n.append(t,e)}}if(i.search_query_native){this.router.navigate(`/?query=${i.search_query_native}`,true)}else if(this.nylasMailboxStore.state.threadsQueryParams.search_query_native&&!i.search_query_native){this.router.navigate("/",true)}if(!i.page_token){this.nylasMailboxStore.state.previousThreadPageTokens=[]}this.nylasMailboxStore.state.threadsQueryParams=i;const o=`/v3/grants/me/threads?${n.toString()}`;const h=await this.nylasAuth.nylasAPIRequest(o);if(t(h)){throw new e(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(s){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((t=>t.id===s));if(r){return r}this.nylasMailboxStore.state.state="loading";const a=`/v3/grants/me/threads/${s}`;const i=await this.nylasAuth.nylasAPIRequest(a);if(t(i)){throw new e(i.error)}const n=i.data;this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map((t=>{if(t.id===n.id){return n}return t}));this.nylasMailboxStore.state.state="ready";return n}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(t){this.router.navigate(`/thread/${t.id}`,true);this.nylasMailboxStore.state.selectedThread=t;if(t.unread){this.markThreadAsRead(t).catch((t=>{s("Error marking thread as read",t)}))}}async markThreadAsRead(t){return this.updateThread(t,{unread:false})}async updateThread(s,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/${s.id}`;const i=await this.nylasAuth.nylasAPIRequest(a,"PUT",r);if(t(i)){throw new e(i.error)}const n=i.data;this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map((t=>{if(t.id===n.id){return n}return t}));this.nylasMailboxStore.state.selectedThread=n;return n}}class n{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 s=`/v3/grants/me/folders`;const r=await this.nylasAuth.nylasAPIRequest(s);if(t(r)){throw new e(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 o extends Event{constructor(t,e){super(t,e);this.oldURL=e.oldURL;this.newURL=e.newURL}}class h{constructor(){this.routeChangeListeners=[];s("HashRouter constructor")}destroy(){s("HashRouter destroy");window.removeEventListener("hashchange",this.onRouteChange.bind(this))}init(){s("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 o("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}}addRouteChangeListener(t,e){s("HashRouter addRouteChangeListener");this.routeChangeListeners.push([t,e])}navigate(t,e){s("HashRouter navigate");if(e){return window.history.pushState(null,"",`#${t}`)}window.location.hash=t}setRoute(t){s("HashRouter setRoute");window.location.hash=t}matchRoute(t,e){const r=t.split("/");const a=e.split("/");s(`HashRouter matchRoute route=${t} path=${e}`,{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(t){s("HashRouter getRouteParams");const e={};const r=t.split("/");const a=window.location.hash.split("/");r.forEach(((t,s)=>{if(t.startsWith(":")){const r=t.substring(1);e[r]=a[s]}}));return e}getRouteWithParams(t,e){s("HashRouter getRouteWithParams");let r=t;Object.keys(e).forEach((t=>{r=r.replace(`:${t}`,e[t])}));return r}getRoute(){s("HashRouter getRoute");return window.location.hash}onRouteChange(t){this.routeChangeListeners.forEach((async([e,r])=>{const a=t.newURL.indexOf("#")===-1?"":t.newURL.substring(t.newURL.indexOf("#")+1);s(`HashRouter onRouteChange route=${e} path=${a}`,{event:t});if(!this.matchRoute(e,a)){s(`HashRouter onRouteChange route=${e} path=${a} does not match`);return}const i=this.getRouteParams(e);await r(e,a,i)}))}getBasePath(){s("HashRouter getBasePath");return""}}function c(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{c as C,h as H,i as N,a,n as b};
2
- //# sourceMappingURL=p-ce89d941.js.map
@@ -1,3 +0,0 @@
1
- const t="nylas-web-elements";let e;let n;let s=false;let o=null;let l=false;const c=(t,e="")=>{{return()=>{}}};const i=(t,e)=>{{return()=>{}}};const f="{visibility:hidden}.hydrated{visibility:inherit}";const r="slot-fb{display:contents}slot-fb[hidden]{display:none}";const u=["formAssociatedCallback","formResetCallback","formDisabledCallback","formStateRestoreCallback"];const a={};const d="http://www.w3.org/2000/svg";const p="http://www.w3.org/1999/xhtml";const v=t=>t!=null;const y=t=>{t=typeof t;return t==="object"||t==="function"};function h(t){var e,n,s;return(s=(n=(e=t.head)===null||e===void 0?void 0:e.querySelector('meta[name="csp-nonce"]'))===null||n===void 0?void 0:n.getAttribute("content"))!==null&&s!==void 0?s:undefined}const m=(t,e,...n)=>{let s=null;let o=null;let l=false;let c=false;const i=[];const f=e=>{for(let n=0;n<e.length;n++){s=e[n];if(Array.isArray(s)){f(s)}else if(s!=null&&typeof s!=="boolean"){if(l=typeof t!=="function"&&!y(s)){s=String(s)}if(l&&c){i[i.length-1].t+=s}else{i.push(l?b(null,s):s)}c=l}}};f(n);if(e){if(e.key){o=e.key}{const t=e.className||e.class;if(t){e.class=typeof t!=="object"?t:Object.keys(t).filter((e=>t[e])).join(" ")}}}if(typeof t==="function"){return t(e===null?{}:e,i,g)}const r=b(t,null);r.o=e;if(i.length>0){r.l=i}{r.i=o}return r};const b=(t,e)=>{const n={u:0,p:t,t:e,v:null,l:null};{n.o=null}{n.i=null}return n};const w={};const $=t=>t&&t.p===w;const g={forEach:(t,e)=>t.map(S).forEach(e),map:(t,e)=>t.map(S).map(e).map(j)};const S=t=>({vattrs:t.o,vchildren:t.l,vkey:t.i,vname:t.h,vtag:t.p,vtext:t.t});const j=t=>{if(typeof t.vtag==="function"){const e=Object.assign({},t.vattrs);if(t.vkey){e.key=t.vkey}if(t.vname){e.name=t.vname}return m(t.vtag,e,...t.vchildren||[])}const e=b(t.vtag,t.vtext);e.o=t.vattrs;e.l=t.vchildren;e.i=t.vkey;e.h=t.vname;return e};const k=(t,e)=>{if(t!=null&&!y(t)){if(e&4){return t==="false"?false:t===""||!!t}if(e&2){return parseFloat(t)}if(e&1){return String(t)}return t}return t};const O=t=>St(t).$hostElement$;const C=(t,e,n)=>{const s=O(t);return{emit:t=>M(s,e,{bubbles:!!(n&4),composed:!!(n&2),cancelable:!!(n&1),detail:t})}};const M=(t,e,n)=>{const s=Et.ce(e,n);t.dispatchEvent(s);return s};const R=new WeakMap;const x=(t,e,n)=>{let s=xt.get(t);if(Dt&&n){s=s||new CSSStyleSheet;if(typeof s==="string"){s=e}else{s.replaceSync(e)}}else{s=e}xt.set(t,s)};const P=(t,e,n)=>{var s;const o=E(e);const l=xt.get(o);t=t.nodeType===11?t:Ut;if(l){if(typeof l==="string"){t=t.head||t;let n=R.get(t);let c;if(!n){R.set(t,n=new Set)}if(!n.has(o)){{c=Ut.createElement("style");c.innerHTML=l;const e=(s=Et.m)!==null&&s!==void 0?s:h(Ut);if(e!=null){c.setAttribute("nonce",e)}t.insertBefore(c,t.querySelector("link"))}if(e.u&4){c.innerHTML+=r}if(n){n.add(o)}}}else if(!t.adoptedStyleSheets.includes(l)){t.adoptedStyleSheets=[...t.adoptedStyleSheets,l]}}return o};const U=t=>{const e=t.$;const n=t.$hostElement$;const s=e.u;const o=c("attachStyles",e.S);const l=P(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);if(s&10){n["s-sc"]=l;n.classList.add(l+"-h");if(s&2){n.classList.add(l+"-s")}}o()};const E=(t,e)=>"sc-"+t.S;const W=(t,e,n,s,o,l)=>{if(n!==s){let c=Ot(t,e);let i=e.toLowerCase();if(e==="class"){const e=t.classList;const o=D(n);const l=D(s);e.remove(...o.filter((t=>t&&!l.includes(t))));e.add(...l.filter((t=>t&&!o.includes(t))))}else if(e==="style"){{for(const e in n){if(!s||s[e]==null){if(e.includes("-")){t.style.removeProperty(e)}else{t.style[e]=""}}}}for(const e in s){if(!n||s[e]!==n[e]){if(e.includes("-")){t.style.setProperty(e,s[e])}else{t.style[e]=s[e]}}}}else if(e==="key");else if(e==="ref"){if(s){s(t)}}else if(!c&&e[0]==="o"&&e[1]==="n"){if(e[2]==="-"){e=e.slice(3)}else if(Ot(Pt,i)){e=i.slice(2)}else{e=i[2]+e.slice(3)}if(n||s){const o=e.endsWith(L);e=e.replace(F,"");if(n){Et.rel(t,e,n,o)}if(s){Et.ael(t,e,s,o)}}}else{const i=y(s);if((c||i&&s!==null)&&!o){try{if(!t.tagName.includes("-")){const o=s==null?"":s;if(e==="list"){c=false}else if(n==null||t[e]!=o){t[e]=o}}else{t[e]=s}}catch(t){}}if(s==null||s===false){if(s!==false||t.getAttribute(e)===""){{t.removeAttribute(e)}}}else if((!c||l&4||o)&&!i){s=s===true?"":s;{t.setAttribute(e,s)}}}}};const A=/\s/;const D=t=>!t?[]:t.split(A);const L="Capture";const F=new RegExp(L+"$");const N=(t,e,n,s)=>{const o=e.v.nodeType===11&&e.v.host?e.v.host:e.v;const l=t&&t.o||a;const c=e.o||a;{for(s in l){if(!(s in c)){W(o,s,l[s],undefined,n,e.u)}}}for(s in c){W(o,s,l[s],c[s],n,e.u)}};const T=(t,o,l,c)=>{const i=o.l[l];let f=0;let r;let u;if(i.t!==null){r=i.v=Ut.createTextNode(i.t)}else{if(!s){s=i.p==="svg"}r=i.v=Ut.createElementNS(s?d:p,i.p);if(s&&i.p==="foreignObject"){s=false}{N(null,i,s)}if(v(e)&&r["s-si"]!==e){r.classList.add(r["s-si"]=e)}if(i.l){for(f=0;f<i.l.length;++f){u=T(t,i,f);if(u){r.appendChild(u)}}}{if(i.p==="svg"){s=false}else if(r.tagName==="foreignObject"){s=true}}}r["s-hn"]=n;return r};const H=(t,e,s,o,l,c)=>{let i=t;let f;if(i.shadowRoot&&i.tagName===n){i=i.shadowRoot}for(;l<=c;++l){if(o[l]){f=T(null,s,l);if(f){o[l].v=f;i.insertBefore(f,e)}}}};const q=(t,e,n)=>{for(let s=e;s<=n;++s){const e=t[s];if(e){const t=e.v;z(e);if(t){t.remove()}}}};const I=(t,e,n,s,o=false)=>{let l=0;let c=0;let i=0;let f=0;let r=e.length-1;let u=e[0];let a=e[r];let d=s.length-1;let p=s[0];let v=s[d];let y;let h;while(l<=r&&c<=d){if(u==null){u=e[++l]}else if(a==null){a=e[--r]}else if(p==null){p=s[++c]}else if(v==null){v=s[--d]}else if(V(u,p,o)){_(u,p,o);u=e[++l];p=s[++c]}else if(V(a,v,o)){_(a,v,o);a=e[--r];v=s[--d]}else if(V(u,v,o)){_(u,v,o);t.insertBefore(u.v,a.v.nextSibling);u=e[++l];v=s[--d]}else if(V(a,p,o)){_(a,p,o);t.insertBefore(a.v,u.v);a=e[--r];p=s[++c]}else{i=-1;{for(f=l;f<=r;++f){if(e[f]&&e[f].i!==null&&e[f].i===p.i){i=f;break}}}if(i>=0){h=e[i];if(h.p!==p.p){y=T(e&&e[c],n,i)}else{_(h,p,o);e[i]=undefined;y=h.v}p=s[++c]}else{y=T(e&&e[c],n,c);p=s[++c]}if(y){{u.v.parentNode.insertBefore(y,u.v)}}}}if(l>r){H(t,s[d+1]==null?null:s[d+1].v,n,s,c,d)}else if(c>d){q(e,l,r)}};const V=(t,e,n=false)=>{if(t.p===e.p){if(!n){return t.i===e.i}return true}return false};const _=(t,e,n=false)=>{const o=e.v=t.v;const l=t.l;const c=e.l;const i=e.p;const f=e.t;if(f===null){{s=i==="svg"?true:i==="foreignObject"?false:s}{if(i==="slot");else{N(t,e,s)}}if(l!==null&&c!==null){I(o,l,e,c,n)}else if(c!==null){if(t.t!==null){o.textContent=""}H(o,null,e,c,0,c.length-1)}else if(l!==null){q(l,0,l.length-1)}if(s&&i==="svg"){s=false}}else if(t.t!==f){o.data=f}};const z=t=>{{t.o&&t.o.ref&&t.o.ref(null);t.l&&t.l.map(z)}};const B=(t,s,o=false)=>{const l=t.$hostElement$;const c=t.j||b(null,null);const i=$(s)?s:m(null,null,s);n=l.tagName;if(o&&i.o){for(const t of Object.keys(i.o)){if(l.hasAttribute(t)&&!["key","ref","style","class"].includes(t)){i.o[t]=l[t]}}}i.p=null;i.u|=4;t.j=i;i.v=c.v=l.shadowRoot||l;{e=l["s-sc"]}_(c,i,o)};const G=(t,e)=>{if(e&&!t.k&&e["s-p"]){e["s-p"].push(new Promise((e=>t.k=e)))}};const J=(t,e)=>{{t.u|=16}if(t.u&4){t.u|=512;return}G(t,t.O);const n=()=>K(t,e);return It(n)};const K=(t,e)=>{const n=c("scheduleUpdate",t.$.S);const s=t.C;let o;if(e){{t.u|=256;if(t.M){t.M.map((([t,e])=>ot(s,t,e)));t.M=undefined}}{o=ot(s,"componentWillLoad")}}else{{o=ot(s,"componentWillUpdate")}}{o=Q(o,(()=>ot(s,"componentWillRender")))}n();return Q(o,(()=>Y(t,s,e)))};const Q=(t,e)=>X(t)?t.then(e):e();const X=t=>t instanceof Promise||t&&t.then&&typeof t.then==="function";const Y=async(t,e,n)=>{var s;const o=t.$hostElement$;const l=c("update",t.$.S);const i=o["s-rc"];if(n){U(t)}const f=c("render",t.$.S);{Z(t,e,o,n)}if(i){i.map((t=>t()));o["s-rc"]=undefined}f();l();{const e=(s=o["s-p"])!==null&&s!==void 0?s:[];const n=()=>et(t);if(e.length===0){n()}else{Promise.all(e).then(n);t.u|=4;e.length=0}}};const Z=(t,e,n,s)=>{try{o=e;e=e.render();{t.u&=~16}{t.u|=2}{{{B(t,e,s)}}}}catch(e){Ct(e,t.$hostElement$)}o=null;return null};const tt=()=>o;const et=t=>{const e=t.$.S;const n=t.$hostElement$;const s=c("postUpdate",e);const o=t.C;const l=t.O;{ot(o,"componentDidRender")}if(!(t.u&64)){t.u|=64;{lt(n)}{ot(o,"componentDidLoad")}s();{t.R(n);if(!l){st()}}}else{{ot(o,"componentDidUpdate")}s()}{t.P(n)}{if(t.k){t.k();t.k=undefined}if(t.u&512){qt((()=>J(t,false)))}t.u&=~(4|512)}};const nt=t=>{{const e=St(t);const n=e.$hostElement$.isConnected;if(n&&(e.u&(2|16))===2){J(e,false)}return n}};const st=e=>{{lt(Ut.documentElement)}qt((()=>M(Pt,"appload",{detail:{namespace:t}})))};const ot=(t,e,n)=>{if(t&&t[e]){try{return t[e](n)}catch(t){Ct(t)}}return undefined};const lt=t=>t.classList.add("hydrated");const ct=(t,e)=>St(t).U.get(e);const it=(t,e,n,s)=>{const o=St(t);const l=o.$hostElement$;const c=o.U.get(e);const i=o.u;const f=o.C;n=k(n,s.W[e][0]);const r=Number.isNaN(c)&&Number.isNaN(n);const u=n!==c&&!r;if((!(i&8)||c===undefined)&&u){o.U.set(e,n);if(f){if(s.A&&i&128){const t=s.A[e];if(t){t.map((t=>{try{f[t](n,c,e)}catch(t){Ct(t,l)}}))}}if((i&(2|16))===2){J(o,false)}}}};const ft=(t,e,n)=>{var s;const o=t.prototype;if(e.u&64&&n&1){u.forEach((t=>Object.defineProperty(o,t,{value(...e){const n=St(this);const s=n.C;if(!s){n.D.then((n=>{const s=n[t];typeof s==="function"&&s.call(n,...e)}))}else{const n=s[t];typeof n==="function"&&n.call(s,...e)}}})))}if(e.W){if(t.watchers){e.A=t.watchers}const l=Object.entries(e.W);l.map((([t,[s]])=>{if(s&31||n&2&&s&32){Object.defineProperty(o,t,{get(){return ct(this,t)},set(n){it(this,t,n,e)},configurable:true,enumerable:true})}else if(n&1&&s&64){Object.defineProperty(o,t,{value(...e){var n;const s=St(this);return(n=s===null||s===void 0?void 0:s.L)===null||n===void 0?void 0:n.then((()=>{var n;return(n=s.C)===null||n===void 0?void 0:n[t](...e)}))}})}}));if(n&1){const n=new Map;o.attributeChangedCallback=function(t,s,l){Et.jmp((()=>{var c;const i=n.get(t);if(this.hasOwnProperty(i)){l=this[i];delete this[i]}else if(o.hasOwnProperty(i)&&typeof this[i]==="number"&&this[i]==l){return}else if(i==null){const n=St(this);const o=n===null||n===void 0?void 0:n.u;if(o&&!(o&8)&&o&128&&l!==s){const o=n.C;const i=(c=e.A)===null||c===void 0?void 0:c[t];i===null||i===void 0?void 0:i.forEach((e=>{if(o[e]!=null){o[e].call(o,l,s,t)}}))}return}this[i]=l===null&&typeof this[i]==="boolean"?false:l}))};t.observedAttributes=Array.from(new Set([...Object.keys((s=e.A)!==null&&s!==void 0?s:{}),...l.filter((([t,e])=>e[0]&15)).map((([t,e])=>{const s=e[1]||t;n.set(s,t);return s}))]))}}return t};const rt=async(t,e,n,s)=>{let o;if((e.u&32)===0){e.u|=32;{o=Rt(n);if(o.then){const t=i();o=await o;t()}if(!o.isProxied){{n.A=o.watchers}ft(o,n,2);o.isProxied=true}const t=c("createInstance",n.S);{e.u|=8}try{new o(e)}catch(t){Ct(t)}{e.u&=~8}{e.u|=128}t();ut(e.C)}if(o.style){let t=o.style;const e=E(n);if(!xt.has(e)){const s=c("registerStyles",n.S);x(e,t,!!(n.u&1));s()}}}const l=e.O;const f=()=>J(e,true);if(l&&l["s-rc"]){l["s-rc"].push(f)}else{f()}};const ut=t=>{{ot(t,"connectedCallback")}};const at=t=>{if((Et.u&1)===0){const e=St(t);const n=e.$;const s=c("connectedCallback",n.S);if(!(e.u&1)){e.u|=1;{let n=t;while(n=n.parentNode||n.host){if(n["s-p"]){G(e,e.O=n);break}}}if(n.W){Object.entries(n.W).map((([e,[n]])=>{if(n&31&&t.hasOwnProperty(e)){const n=t[e];delete t[e];t[e]=n}}))}{rt(t,e,n)}}else{ht(t,e,n.F);if(e===null||e===void 0?void 0:e.C){ut(e.C)}else if(e===null||e===void 0?void 0:e.D){e.D.then((()=>ut(e.C)))}}s()}};const dt=t=>{{ot(t,"disconnectedCallback")}};const pt=async t=>{if((Et.u&1)===0){const e=St(t);{if(e.N){e.N.map((t=>t()));e.N=undefined}}if(e===null||e===void 0?void 0:e.C){dt(e.C)}else if(e===null||e===void 0?void 0:e.D){e.D.then((()=>dt(e.C)))}}};const vt=(t,e={})=>{var n;const s=c();const o=[];const l=e.exclude||[];const i=Pt.customElements;const u=Ut.head;const a=u.querySelector("meta[charset]");const d=Ut.createElement("style");const p=[];let v;let y=true;Object.assign(Et,e);Et.T=new URL(e.resourcesUrl||"./",Ut.baseURI).href;let m=false;t.map((t=>{t[1].map((e=>{var n;const s={u:e[0],S:e[1],W:e[2],F:e[3]};if(s.u&4){m=true}{s.W=e[2]}{s.F=e[3]}{s.A=(n=e[4])!==null&&n!==void 0?n:{}}const c=s.S;const f=class extends HTMLElement{constructor(t){super(t);t=this;kt(t,s);if(s.u&1){{{t.attachShadow({mode:"open"})}}}}connectedCallback(){if(v){clearTimeout(v);v=null}if(y){p.push(this)}else{Et.jmp((()=>at(this)))}}disconnectedCallback(){Et.jmp((()=>pt(this)))}componentOnReady(){return St(this).D}};if(s.u&64){f.formAssociated=true}s.H=t[0];if(!l.includes(c)&&!i.get(c)){o.push(c);i.define(c,ft(f,s,1))}}))}));if(m){d.innerHTML+=r}{d.innerHTML+=o+f}if(d.innerHTML.length){d.setAttribute("data-styles","");const t=(n=Et.m)!==null&&n!==void 0?n:h(Ut);if(t!=null){d.setAttribute("nonce",t)}u.insertBefore(d,a?a.nextSibling:u.firstChild)}y=false;if(p.length){p.map((t=>t.connectedCallback()))}else{{Et.jmp((()=>v=setTimeout(st,30)))}}s()};const yt=(t,e)=>e;const ht=(t,e,n,s)=>{if(n){n.map((([n,s,o])=>{const l=bt(t,n);const c=mt(e,o);const i=wt(n);Et.ael(l,s,c,i);(e.N=e.N||[]).push((()=>Et.rel(l,s,c,i)))}))}};const mt=(t,e)=>n=>{try{{if(t.u&256){t.C[e](n)}else{(t.M=t.M||[]).push([e,n])}}}catch(t){Ct(t)}};const bt=(t,e)=>{if(e&4)return Ut;if(e&8)return Pt;if(e&16)return Ut.body;return t};const wt=t=>Wt?{passive:(t&1)!==0,capture:(t&2)!==0}:(t&2)!==0;const $t=t=>Et.m=t;const gt=new WeakMap;const St=t=>gt.get(t);const jt=(t,e)=>gt.set(e.C=t,e);const kt=(t,e)=>{const n={u:0,$hostElement$:t,$:e,U:new Map};{n.L=new Promise((t=>n.P=t))}{n.D=new Promise((t=>n.R=t));t["s-p"]=[];t["s-rc"]=[]}ht(t,n,e.F);return gt.set(t,n)};const Ot=(t,e)=>e in t;const Ct=(t,e)=>(0,console.error)(t,e);const Mt=new Map;const Rt=(t,e,n)=>{const s=t.S.replace(/-/g,"_");const o=t.H;const l=Mt.get(o);if(l){return l[s]}
2
- /*!__STENCIL_STATIC_IMPORT_SWITCH__*/return import(`./${o}.entry.js${""}`).then((t=>{{Mt.set(o,t)}return t[s]}),Ct)};const xt=new Map;const Pt=typeof window!=="undefined"?window:{};const Ut=Pt.document||{head:{}};const Et={u:0,T:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,s)=>t.addEventListener(e,n,s),rel:(t,e,n,s)=>t.removeEventListener(e,n,s),ce:(t,e)=>new CustomEvent(t,e)};const Wt=(()=>{let t=false;try{Ut.addEventListener("e",null,Object.defineProperty({},"passive",{get(){t=true}}))}catch(t){}return t})();const At=t=>Promise.resolve(t);const Dt=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replaceSync==="function"}catch(t){}return false})();const Lt=[];const Ft=[];const Nt=(t,e)=>n=>{t.push(n);if(!l){l=true;if(e&&Et.u&4){qt(Ht)}else{Et.raf(Ht)}}};const Tt=t=>{for(let e=0;e<t.length;e++){try{t[e](performance.now())}catch(t){Ct(t)}}t.length=0};const Ht=()=>{Tt(Lt);{Tt(Ft);if(l=Lt.length>0){Et.raf(Ht)}}};const qt=t=>At().then(t);const It=Nt(Ft,true);export{yt as F,w as H,O as a,vt as b,C as c,nt as f,tt as g,m as h,At as p,jt as r,$t as s};
3
- //# sourceMappingURL=p-e4b9d6af.js.map
@@ -1,2 +0,0 @@
1
- import{r as a,h as i,H as n,a as t}from"./p-e4b9d6af.js";import{R as e}from"./p-9955e9b6.js";import{d as s}from"./p-facc84f3.js";import"./p-cb65c223.js";const l=':host{display:block;margin:1rem;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif}.nylas-additional-participants__title{color:var(--nylas-base-nylas-base-900-aaa, #101323);font-size:16px;font-style:normal;font-weight:600;line-height:20px;margin:0;text-align:left}.nylas-additional-participants__subtitle{color:var(--nylas-base-nylas-base-600-aaa, #3e4784);font-size:14px;font-style:normal;font-weight:400;line-height:20px;margin:0.25rem 0px 0px;text-align:left}.nylas-additional-participants__content{padding:1rem;display:flex;flex-direction:column;gap:1rem}.nylas-additional-participants__block{display:flex;justify-content:space-between;gap:0.5rem}.nylas-additional-participants__input_group{padding-top:8px;display:flex;flex-direction:column;gap:4px}.nylas-additional-participants__input_group label{display:flex;align-items:center;color:var(--nylas-base-nylas-base-800);font-size:14px;font-style:normal;font-weight:400;line-height:150%}.nylas-additional-participants__input_wrapper{display:flex;border-width:1;border-radius:8px;border:1px solid var(--Nylas-base-Nylas-base-300, #b3b8d8)}.nylas-additional-participants__input_wrapper button{padding:12px;border:none;background:none;cursor:pointer}.nylas-additional-participants__input_wrapper button:hover,.nylas-additional-participants__input_wrapper button:active{color:var(--nylas-primary)}.nylas-additional-participants__input_wrapper_organizer{background:var(--Nylas-base-Nylas-base-50, #f8f9fc)}.nylas-additional-participants__input{flex:1;padding:12px 16px;border-right:1px solid var(--Nylas-base-Nylas-base-300, #b3b8d8)}.nylas-additional-participants__input input{border:none;outline:none;background:none;width:100%}.nylas-additional-participants__input_wrapper_invalid{border:1px solid var(--nylas-error, #cc4841);color:var(--Nylas-base-Nylas-base-400, #717bbc)}.nylas-additional-participants__add{padding:12px;display:flex;align-items:center;border:none;background:none;cursor:pointer}.nylas-additional-participants__add span{padding:0 8px;font-size:16px;font-style:normal;font-weight:500}.nylas-additional-participants__add:hover,.nylas-additional-participants__add:active{color:var(--nylas-primary)}';const r=l;var d=undefined&&undefined.__decorate||function(a,i,n,t){var e=arguments.length,s=e<3?i:t===null?t=Object.getOwnPropertyDescriptor(i,n):t,l;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")s=Reflect.decorate(a,i,n,t);else for(var r=a.length-1;r>=0;r--)if(l=a[r])s=(e<3?l(s):e>3?l(i,n,s):l(i,n))||s;return e>3&&s&&Object.defineProperty(i,n,s),s};var p=undefined&&undefined.__metadata||function(a,i){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(a,i)};const o=class{constructor(i){a(this,i);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.name="participants";this.eventParticipants=undefined;this.participants=this.eventParticipants??[];this.participantsValid=true}elementNameChangedHandler(a){s("nylas-additional-participants","elementNameChangedHandler",a);this.host.setAttribute("name",a)}connectedCallback(){s("nylas-additional-participants","connectedCallback")}componentWillLoad(){s("nylas-additional-participants","componentWillLoad");this.host.setAttribute("name",this.name)}componentDidLoad(){s("nylas-additional-participants","componentDidLoad");this.internals.setFormValue(JSON.stringify(this.participants),"participants")}disconnectedCallback(){s("nylas-additional-participants","disconnectedCallback")}onParticipantChange(a,i){s("nylas-additional-participants","onParticipantChange");this.participants[i].email=a.target.value;this.internals.setFormValue(JSON.stringify(this.participants),"participants")}addParticipant(){s("nylas-additional-participants","addParticipant");this.participants=[...this.participants,{email:"",is_organizer:false,availability:{calendar_ids:["primary"]}}];this.internals.setFormValue(JSON.stringify(this.participants),"participants")}removeParticipant(a){s("nylas-additional-participants","addParticipant");this.participants=this.participants.filter((i=>i.email!==a));this.internals.setFormValue(JSON.stringify(this.participants),"participants")}validate(a,i){s("nylas-additional-participants","validate");const n=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;const t=n.test(String(a).toLowerCase());this.participants[i].is_valid=t;this.internals.setFormValue(JSON.stringify(this.participants),"participants")}render(){return i(n,{key:"f7e9e11d09521eaaca5a7c0f617bb89d2d63b1c4"},i("nylas-form-card",{key:"58e42cf68f3e5dc8d76a5c29be28332506c4ac02"},i("h3",{key:"df04fd60229abedc20d18611012b3b4d119ec17a",slot:"header-title",class:"nylas-additional-participants__title"},"Additional participants"),i("p",{key:"794d5d650ee886a3d985f87b3ea46527dcae8e6a",slot:"header-subtitle",class:"nylas-additional-participants__subtitle"},"Add anyone else who would be joining for this event."),i("div",{key:"acf2f231f0c18f8389c7618e7b301d94aa819c2e",slot:"content",class:"nylas-additional-participants__content"},i("div",{key:"ed87166cfc0f33f515c780412a71a6b7dccbd61b"},this.participants.map(((a,n)=>i("div",{class:"nylas-additional-participants__input_group"},i("label",null,a.is_organizer?"Organizer":`Participant ${n}`),i("div",{class:`nylas-additional-participants__input_wrapper ${a.is_organizer&&"nylas-additional-participants__input_wrapper_organizer"} ${a.is_valid===false&&"nylas-additional-participants__input_wrapper_invalid"}`},i("div",{class:"nylas-additional-participants__input"},i("input",{type:"text",value:a.email,onInput:a=>{this.onParticipantChange(a,n)},readOnly:a.is_organizer,onBlur:()=>this.validate(a.email,n)})),!a.is_organizer&&i("button",{onClick:()=>this.removeParticipant(a.email)},i("close-icon",null))))))))))}static get formAssociated(){return true}get host(){return t(this)}static get watchers(){return{name:["elementNameChangedHandler"]}}};d([e({name:"nylas-additional-participants",eventToProps:{},fireRegisterEvent:true}),p("design:type",Function),p("design:paramtypes",[]),p("design:returntype",void 0)],o.prototype,"render",null);o.style=r;export{o as nylas_additional_participants};
2
- //# sourceMappingURL=p-e4ec4651.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nylasAdditionalParticipantsCss","NylasAdditionalParticipantsStyle0","NylasAdditionalParticipants","this","eventParticipants","elementNameChangedHandler","newValue","debug","host","setAttribute","connectedCallback","componentWillLoad","name","componentDidLoad","internals","setFormValue","JSON","stringify","participants","disconnectedCallback","onParticipantChange","event","index","email","target","value","addParticipant","is_organizer","availability","calendar_ids","removeParticipant","filter","p","validate","regex","valid","test","String","toLowerCase","is_valid","render","h","Host","key","slot","class","map","participant","type","onInput","e","readOnly","onBlur","onClick","__decorate","RegisterComponent","eventToProps","fireRegisterEvent"],"sources":["src/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.scss?tag=nylas-additional-participants&encapsulation=shadow","src/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n margin: 1rem;\n @include default-css-variables;\n}\n\n.nylas-additional-participants__title {\n color: var(--nylas-base-nylas-base-900-aaa, #101323);\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px; /* 125% */\n margin: 0;\n text-align: left;\n}\n.nylas-additional-participants__subtitle {\n color: var(--nylas-base-nylas-base-600-aaa, #3e4784);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px; /* 142.857% */\n margin: 0.25rem 0px 0px;\n text-align: left;\n}\n.nylas-additional-participants__content {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.nylas-additional-participants__block {\n display: flex;\n justify-content: space-between;\n gap: 0.5rem;\n}\n\n.nylas-additional-participants__input_group {\n padding-top: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n label {\n display: flex;\n align-items: center;\n color: var(--nylas-base-nylas-base-800);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%;\n }\n}\n.nylas-additional-participants__input_wrapper {\n display: flex;\n border-width: 1;\n border-radius: 8px;\n border: 1px solid var(--Nylas-base-Nylas-base-300, #b3b8d8);\n button {\n padding: 12px;\n border: none;\n background: none;\n cursor: pointer;\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n}\n.nylas-additional-participants__input_wrapper_organizer {\n background: var(--Nylas-base-Nylas-base-50, #f8f9fc);\n}\n\n.nylas-additional-participants__input {\n flex: 1;\n padding: 12px 16px;\n border-right: 1px solid var(--Nylas-base-Nylas-base-300, #b3b8d8);\n input {\n border: none;\n outline: none;\n background: none;\n width: 100%;\n }\n}\n.nylas-additional-participants__input_wrapper_invalid {\n border: 1px solid var(--nylas-error, #cc4841);\n color: var(--Nylas-base-Nylas-base-400, #717bbc);\n}\n\n.nylas-additional-participants__add {\n padding: 12px;\n display: flex;\n align-items: center;\n border: none;\n background: none;\n cursor: pointer;\n span {\n padding: 0 8px;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n }\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { AttachInternals, Component, Host, Prop, State, Watch, h, Element } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\n\ntype Participant = {\n name?: string;\n email: string;\n is_valid?: boolean;\n is_organizer: boolean;\n availability?: Availability;\n booking?: Booking;\n};\ntype Availability = {\n calendar_ids: string[];\n};\ntype Booking = {\n calendar_id: string;\n};\n\n/**\n * The `nylas-additional-participants` component is a form input for adding additional participants to an event.\n */\n@Component({\n tag: 'nylas-additional-participants',\n styleUrl: 'nylas-additional-participants.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAdditionalParticipants {\n @Element() host!: HTMLNylasAdditionalParticipantsElement;\n @Prop() name: string = 'participants';\n @Prop() eventParticipants?: Participant[];\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-additional-participants', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @State() participants: Participant[] = this.eventParticipants ?? [];\n @State() participantsValid: boolean = true;\n connectedCallback() {\n debug('nylas-additional-participants', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-additional-participants', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-additional-participants', 'componentDidLoad');\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n\n disconnectedCallback() {\n debug('nylas-additional-participants', 'disconnectedCallback');\n }\n onParticipantChange(event, index) {\n debug('nylas-additional-participants', 'onParticipantChange');\n this.participants[index].email = event.target.value;\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n addParticipant() {\n debug('nylas-additional-participants', 'addParticipant');\n this.participants = [...this.participants, { email: '', is_organizer: false, availability: { calendar_ids: ['primary'] } }];\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n removeParticipant(email: string) {\n debug('nylas-additional-participants', 'addParticipant');\n this.participants = this.participants.filter(p => p.email !== email);\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n validate(email, index) {\n debug('nylas-additional-participants', 'validate');\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const valid = regex.test(String(email).toLowerCase());\n this.participants[index].is_valid = valid;\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n\n @RegisterComponent<NylasAdditionalParticipants, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-additional-participants',\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-form-card>\n <h3 slot=\"header-title\" class=\"nylas-additional-participants__title\">\n Additional participants\n </h3>\n <p slot=\"header-subtitle\" class=\"nylas-additional-participants__subtitle\">\n Add anyone else who would be joining for this event.\n </p>\n <div slot=\"content\" class=\"nylas-additional-participants__content\">\n <div>\n {this.participants.map((participant, index) => {\n return (\n <div class={'nylas-additional-participants__input_group'}>\n <label>{participant.is_organizer ? 'Organizer' : `Participant ${index}`}</label>\n <div\n class={`nylas-additional-participants__input_wrapper ${participant.is_organizer && 'nylas-additional-participants__input_wrapper_organizer'} ${participant.is_valid === false && 'nylas-additional-participants__input_wrapper_invalid'}`}\n >\n <div class=\"nylas-additional-participants__input\">\n <input\n type=\"text\"\n value={participant.email}\n onInput={e => {\n this.onParticipantChange(e, index);\n }}\n readOnly={participant.is_organizer}\n onBlur={() => this.validate(participant.email, index)}\n />\n </div>\n {!participant.is_organizer && (\n <button onClick={() => this.removeParticipant(participant.email)}>\n <close-icon />\n </button>\n )}\n </div>\n </div>\n );\n })}\n </div>\n {/* <button class=\"nylas-additional-participants__add\" onClick={() => this.addParticipant()}>\n <add-circle-icon /> <span>Add a participant</span>\n </button> */}\n </div>\n </nylas-form-card>\n </Host>\n );\n }\n}\n"],"mappings":"yJAAA,MAAMA,EAAiC,+pFACvC,MAAAC,EAAeD,E,ugBC6BFE,EAA2B,M,mMAEf,e,mDAegBC,KAAKC,mBAAqB,G,uBAC3B,I,CANtC,yBAAAC,CAA0BC,GACxBC,EAAM,gCAAiC,4BAA6BD,GACpEH,KAAKK,KAAKC,aAAa,OAAQH,E,CAKjC,iBAAAI,GACEH,EAAM,gCAAiC,oB,CAGzC,iBAAAI,GACEJ,EAAM,gCAAiC,qBACvCJ,KAAKK,KAAKC,aAAa,OAAQN,KAAKS,K,CAGtC,gBAAAC,GACEN,EAAM,gCAAiC,oBACvCJ,KAAKW,UAAUC,aAAaC,KAAKC,UAAUd,KAAKe,cAAe,e,CAGjE,oBAAAC,GACEZ,EAAM,gCAAiC,uB,CAEzC,mBAAAa,CAAoBC,EAAOC,GACzBf,EAAM,gCAAiC,uBACvCJ,KAAKe,aAAaI,GAAOC,MAAQF,EAAMG,OAAOC,MAC9CtB,KAAKW,UAAUC,aAAaC,KAAKC,UAAUd,KAAKe,cAAe,e,CAEjE,cAAAQ,GACEnB,EAAM,gCAAiC,kBACvCJ,KAAKe,aAAe,IAAIf,KAAKe,aAAc,CAAEK,MAAO,GAAII,aAAc,MAAOC,aAAc,CAAEC,aAAc,CAAC,cAC5G1B,KAAKW,UAAUC,aAAaC,KAAKC,UAAUd,KAAKe,cAAe,e,CAEjE,iBAAAY,CAAkBP,GAChBhB,EAAM,gCAAiC,kBACvCJ,KAAKe,aAAef,KAAKe,aAAaa,QAAOC,GAAKA,EAAET,QAAUA,IAC9DpB,KAAKW,UAAUC,aAAaC,KAAKC,UAAUd,KAAKe,cAAe,e,CAEjE,QAAAe,CAASV,EAAOD,GACdf,EAAM,gCAAiC,YACvC,MAAM2B,EAAQ,yJACd,MAAMC,EAAQD,EAAME,KAAKC,OAAOd,GAAOe,eACvCnC,KAAKe,aAAaI,GAAOiB,SAAWJ,EACpChC,KAAKW,UAAUC,aAAaC,KAAKC,UAAUd,KAAKe,cAAe,e,CAQjE,MAAAsB,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,mBAAAE,IAAA,4CACEF,EAAA,MAAAE,IAAA,2CAAIC,KAAK,eAAeC,MAAM,wCAAsC,2BAGpEJ,EAAA,KAAAE,IAAA,2CAAGC,KAAK,kBAAkBC,MAAM,2CAAyC,wDAGzEJ,EAAA,OAAAE,IAAA,2CAAKC,KAAK,UAAUC,MAAM,0CACxBJ,EAAA,OAAAE,IAAA,4CACGxC,KAAKe,aAAa4B,KAAI,CAACC,EAAazB,IAEjCmB,EAAA,OAAKI,MAAO,8CACVJ,EAAA,aAAQM,EAAYpB,aAAe,YAAc,eAAeL,KAChEmB,EAAA,OACEI,MAAO,gDAAgDE,EAAYpB,cAAgB,4DAA4DoB,EAAYR,WAAa,OAAS,0DAEjLE,EAAA,OAAKI,MAAM,wCACTJ,EAAA,SACEO,KAAK,OACLvB,MAAOsB,EAAYxB,MACnB0B,QAASC,IACP/C,KAAKiB,oBAAoB8B,EAAG5B,EAAM,EAEpC6B,SAAUJ,EAAYpB,aACtByB,OAAQ,IAAMjD,KAAK8B,SAASc,EAAYxB,MAAOD,OAGjDyB,EAAYpB,cACZc,EAAA,UAAQY,QAAS,IAAMlD,KAAK2B,kBAAkBiB,EAAYxB,QACxDkB,EAAA,2B,sIAhCxBa,EAAA,CALCC,EAAkI,CACjI3C,KAAM,gCACN4C,aAAc,GACdC,kBAAmB,O"}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as n,H as s}from"./p-e4b9d6af.js";import{R as a}from"./p-9955e9b6.js";import{d as r}from"./p-facc84f3.js";import"./p-cb65c223.js";const c=":host{display:block}sp-search{width:100%;border:0}";const o=c;var i=undefined&&undefined.__decorate||function(e,t,n,s){var a=arguments.length,r=a<3?t:s===null?s=Object.getOwnPropertyDescriptor(t,n):s,c;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(e,t,n,s);else for(var o=e.length-1;o>=0;o--)if(c=e[o])r=(a<3?c(r):a>3?c(t,n,r):c(t,n))||r;return a>3&&r&&Object.defineProperty(t,n,r),r};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(){r(`[nylas-threads-search] Component will load`)}async componentDidLoad(){r(`[nylas-threads-search] Component did load`)}onQueryChange(){this.internalQuery=this.query}render(){return n(s,{key:"a01f03e26d8aa4b60e5e72ada49134edd7b95879"},n("sp-theme",{key:"2e4a2b409756725bfef6aece91cb12f75d286d7d",scale:"medium",color:"dark"},n("sp-search",{key:"a71de13c8634f5127d85bfbc555ef363a08e8f25",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-f442a2f9.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as s,h as e,H as i,a as h}from"./p-e4b9d6af.js";import{N as r,e as n}from"./p-1af51c6b.js";import{d as o}from"./p-facc84f3.js";import{N as a,C as c}from"./p-5c72d9a4.js";import{N as u,a as l,b as d,C as f,H as p}from"./p-ce89d941.js";import{N as g,C as m}from"./p-64be0bab.js";import{N as y,C as b}from"./p-578f4029.js";import"./p-cb65c223.js";import"./p-65b275df.js";class w{constructor(t,s,e,i,h,r,n="https://api.us.nylas.com"){this.router=t;this.schedulerAPIURL=n;this.nylasAuth=s;this.nylasAuthStore=e;this.nylasMailboxStore=i;this.nylasSchedulerStore=h;this.nylasSchedulerConfigStore=r}init(){o("NylasConnector init")}get authStore(){return this.nylasAuthStore}get mailboxStore(){return this.nylasMailboxStore}get schedulerStore(){return this.nylasSchedulerStore}get schedulerConfigStore(){return this.nylasSchedulerConfigStore}get auth(){if(this._authConnector){return this._authConnector}this._authConnector=new a(this.nylasAuth,this.nylasAuthStore);return this._authConnector}get threads(){if(this._threadConnector){return this._threadConnector}this._threadConnector=new u(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore,this.router);return this._threadConnector}get messages(){if(this._messageConnector){return this._messageConnector}this._messageConnector=new l(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore);return this._messageConnector}get folders(){if(this._foldersConnector){return this._foldersConnector}this._foldersConnector=new d(this.nylasAuth,this.nylasAuthStore,this.nylasMailboxStore);return this._foldersConnector}get scheduler(){if(this._schedulerAPIConnector){return this._schedulerAPIConnector}this._schedulerAPIConnector=new g({schedulerAPIURL:this.schedulerAPIURL,schedulerStore:this.schedulerStore});return this._schedulerAPIConnector}get schedulerConfig(){if(this._schedulerConfigConnector){return this._schedulerConfigConnector}this._schedulerConfigConnector=new y({nylasAuth:this.nylasAuth,nylasAuthStore:this.nylasAuthStore,nylasSchedulerConfigStore:this.nylasSchedulerConfigStore});return this._schedulerConfigConnector}getAuth(){return this.nylasAuth}resetStores(){this.nylasAuthStore.reset();this.nylasMailboxStore.reset()}async logout(){await this.nylasAuth.logout();this.resetStores()}}const C=":host{display:contents}";const S=C;const N=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(){o("[nylas-provider] connectedCallback")}async componentWillLoad(){o("[nylas-provider] componentWillLoad");this.stores={auth:c(),mailbox:f(),scheduler:m(),schedulerConfig:b()};this.baseProvider=new r(this.host,this.stores,this.automaticComponentRegistration,this.eventOverrides);const t=new p;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")}const h=this.baseProvider?.getStore("schedulerConfig");if(!h){throw new Error("The scheduler config store is not set")}this.nylasConnector=new w(t,this.nylasAuth,e,s,i,h);const a=this.init.emit(this.host);if(!a.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")}async getNylasSchedulerConfigStore(){return this.baseProvider?.getStore("schedulerConfig")}render(){return e(i,{key:"c70dbacf5502b79a6306f27b969dd9a9f841f5a0"},e("slot",{key:"031e85b2e755d2e4b7f925982a47e32daa5f8200"}))}get host(){return h(this)}};N.style=S;export{N as nylas_provider};
2
- //# sourceMappingURL=p-f78abda8.entry.js.map