@nylas/web-elements 2.5.15 → 2.5.17

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 (305) hide show
  1. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +2982 -2982
  2. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +5 -3
  3. package/dist/cjs/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.cjs.js.map +1 -1
  4. package/dist/cjs/google-logo-icon_6.cjs.entry.js +21 -13
  5. package/dist/cjs/google-logo-icon_6.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  7. package/dist/cjs/nylas-scheduling.cjs.entry.js +4 -1
  8. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  9. package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
  10. package/dist/cjs/{version-1ZdVKLpt.js → version-Dvnf44vW.js} +3 -3
  11. package/dist/cjs/{version-1ZdVKLpt.js.map → version-Dvnf44vW.js.map} +1 -1
  12. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +10 -6
  13. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  14. package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js +10 -6
  15. package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js.map +1 -1
  16. package/dist/collection/connector/shared/api/scheduler.js +3 -0
  17. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  18. package/dist/collection/version.js +1 -1
  19. package/dist/collection/version.js.map +1 -1
  20. package/dist/components/index.js +1 -1
  21. package/dist/components/input-component.js +1 -1
  22. package/dist/components/input-image-url.js +1 -1
  23. package/dist/components/multi-select-dropdown.js +1 -1
  24. package/dist/components/nylas-additional-participants.js +1 -1
  25. package/dist/components/nylas-availability-picker.js +1 -1
  26. package/dist/components/nylas-booked-event-card.js +1 -1
  27. package/dist/components/nylas-booking-calendar-picker.js +1 -1
  28. package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
  29. package/dist/components/nylas-booking-confirmation-type.js +1 -1
  30. package/dist/components/nylas-booking-form-config.js +1 -1
  31. package/dist/components/nylas-booking-form.js +1 -1
  32. package/dist/components/nylas-buffer-time.js +1 -1
  33. package/dist/components/nylas-calendar-picker.js +1 -1
  34. package/dist/components/nylas-cancel-booking-form.js +1 -1
  35. package/dist/components/nylas-cancellation-policy.js +1 -1
  36. package/dist/components/nylas-cancelled-event-card.js +1 -1
  37. package/dist/components/nylas-confirmation-email.js +1 -1
  38. package/dist/components/nylas-confirmed-event-card.js +1 -1
  39. package/dist/components/nylas-connected-calendars.js +1 -1
  40. package/dist/components/nylas-custom-booking-flow.js +1 -1
  41. package/dist/components/nylas-custom-event-slug.js +1 -1
  42. package/dist/components/nylas-customize-booking-settings.js +1 -1
  43. package/dist/components/nylas-date-component.js +1 -1
  44. package/dist/components/nylas-date-picker.js +1 -1
  45. package/dist/components/nylas-disable-emails.js +1 -1
  46. package/dist/components/nylas-editor-tabs-group.js +1 -1
  47. package/dist/components/nylas-editor-tabs.js +1 -1
  48. package/dist/components/nylas-event-calendar.js +1 -1
  49. package/dist/components/nylas-event-capacity.js +1 -1
  50. package/dist/components/nylas-event-description.js +1 -1
  51. package/dist/components/nylas-event-duration.js +1 -1
  52. package/dist/components/nylas-event-info.js +1 -1
  53. package/dist/components/nylas-event-limits.js +1 -1
  54. package/dist/components/nylas-event-location.js +1 -1
  55. package/dist/components/nylas-event-timeslot.js +1 -1
  56. package/dist/components/nylas-event-title.js +1 -1
  57. package/dist/components/nylas-feedback-form.js +1 -1
  58. package/dist/components/nylas-form-card.js +1 -1
  59. package/dist/components/nylas-limit-future-bookings.js +1 -1
  60. package/dist/components/nylas-list-configurations.js +1 -1
  61. package/dist/components/nylas-locale-switch.js +1 -1
  62. package/dist/components/nylas-min-booking-notice.js +1 -1
  63. package/dist/components/nylas-min-cancellation-notice.js +1 -1
  64. package/dist/components/nylas-notetaker-config.js +1 -1
  65. package/dist/components/nylas-notification.js +1 -1
  66. package/dist/components/nylas-only-specific-time-availability.js +1 -1
  67. package/dist/components/nylas-organizer-confirmation-card.js +1 -1
  68. package/dist/components/nylas-page-name.js +1 -1
  69. package/dist/components/nylas-page-styling.js +1 -1
  70. package/dist/components/nylas-participant-booking-calendars.js +1 -1
  71. package/dist/components/nylas-participants-custom-availability.js +1 -1
  72. package/dist/components/nylas-reminder-emails.js +1 -1
  73. package/dist/components/nylas-reminder-time.js +1 -1
  74. package/dist/components/nylas-scheduler-editor.js +56 -56
  75. package/dist/components/nylas-scheduling-method.js +1 -1
  76. package/dist/components/nylas-scheduling.js +22 -19
  77. package/dist/components/nylas-scheduling.js.map +1 -1
  78. package/dist/components/nylas-select-event-type.js +1 -1
  79. package/dist/components/nylas-selected-event-card.js +1 -1
  80. package/dist/components/nylas-specific-time-availability-picker.js +1 -1
  81. package/dist/components/nylas-time-window-picker.js +1 -1
  82. package/dist/components/nylas-timeslot-interval.js +1 -1
  83. package/dist/components/nylas-timeslot-picker.js +1 -1
  84. package/dist/components/{p-Di0G82W0.js → p-2UDpTS-K.js} +60 -56
  85. package/dist/components/p-2UDpTS-K.js.map +1 -0
  86. package/dist/components/{p-BNzrPoR6.js → p-37a4h3J_.js} +5 -5
  87. package/dist/components/{p-BNzrPoR6.js.map → p-37a4h3J_.js.map} +1 -1
  88. package/dist/components/{p-CiJgH0CI.js → p-3FTb1-in.js} +17 -17
  89. package/dist/components/{p-CiJgH0CI.js.map → p-3FTb1-in.js.map} +1 -1
  90. package/dist/components/{p-Dlku8PCX.js → p-96zW11tR.js} +4 -4
  91. package/dist/components/{p-Dlku8PCX.js.map → p-96zW11tR.js.map} +1 -1
  92. package/dist/components/{p-CSECxNkF.js → p-B2cPNmM_.js} +6 -6
  93. package/dist/components/{p-CSECxNkF.js.map → p-B2cPNmM_.js.map} +1 -1
  94. package/dist/components/{p-DqgGszYv.js → p-B3cnALr8.js} +8 -8
  95. package/dist/components/{p-DqgGszYv.js.map → p-B3cnALr8.js.map} +1 -1
  96. package/dist/components/{p-FBEildbE.js → p-BBxu-pwN.js} +8 -8
  97. package/dist/components/{p-FBEildbE.js.map → p-BBxu-pwN.js.map} +1 -1
  98. package/dist/components/{p-Cx6l-C7e.js → p-BGbMXlLy.js} +4 -4
  99. package/dist/components/{p-Cx6l-C7e.js.map → p-BGbMXlLy.js.map} +1 -1
  100. package/dist/components/{p-DfNywLNk.js → p-BJ5a9k3B.js} +4 -4
  101. package/dist/components/{p-DfNywLNk.js.map → p-BJ5a9k3B.js.map} +1 -1
  102. package/dist/components/{p-rODq8j3H.js → p-BMmtU0fv.js} +5 -5
  103. package/dist/components/{p-rODq8j3H.js.map → p-BMmtU0fv.js.map} +1 -1
  104. package/dist/components/{p-uQf7jw6y.js → p-BTwTmU9e.js} +7 -7
  105. package/dist/components/{p-uQf7jw6y.js.map → p-BTwTmU9e.js.map} +1 -1
  106. package/dist/components/{p-B5zQj3-Z.js → p-BWbQSVNH.js} +4 -4
  107. package/dist/components/{p-B5zQj3-Z.js.map → p-BWbQSVNH.js.map} +1 -1
  108. package/dist/components/{p-D_CPIneS.js → p-BYzkNeMW.js} +3 -3
  109. package/dist/components/{p-D_CPIneS.js.map → p-BYzkNeMW.js.map} +1 -1
  110. package/dist/components/{p-B9G8DJJr.js → p-BqD6DKLT.js} +4 -4
  111. package/dist/components/{p-B9G8DJJr.js.map → p-BqD6DKLT.js.map} +1 -1
  112. package/dist/components/{p-Ch03cZa9.js → p-Bsd63RFi.js} +3 -3
  113. package/dist/components/{p-Ch03cZa9.js.map → p-Bsd63RFi.js.map} +1 -1
  114. package/dist/components/{p-BTo3RJwU.js → p-BuJdnN6-.js} +5 -5
  115. package/dist/components/{p-BTo3RJwU.js.map → p-BuJdnN6-.js.map} +1 -1
  116. package/dist/components/{p-Bj4ZUpbc.js → p-Bvnci8k8.js} +4 -4
  117. package/dist/components/{p-Bj4ZUpbc.js.map → p-Bvnci8k8.js.map} +1 -1
  118. package/dist/components/{p-DclMe63w.js → p-BxrC0Rsf.js} +3 -3
  119. package/dist/components/{p-DclMe63w.js.map → p-BxrC0Rsf.js.map} +1 -1
  120. package/dist/components/{p-W0q3GPje.js → p-BzLxndYA.js} +3 -3
  121. package/dist/components/{p-W0q3GPje.js.map → p-BzLxndYA.js.map} +1 -1
  122. package/dist/components/{p-CfNiz60j.js → p-CL8ugNmu.js} +5 -5
  123. package/dist/components/{p-CfNiz60j.js.map → p-CL8ugNmu.js.map} +1 -1
  124. package/dist/components/{p-BCUF1qcs.js → p-CMNiSC4o.js} +3 -3
  125. package/dist/components/{p-BCUF1qcs.js.map → p-CMNiSC4o.js.map} +1 -1
  126. package/dist/components/{p-CM9l-8zy.js → p-CRIlyxX5.js} +5 -5
  127. package/dist/components/{p-CM9l-8zy.js.map → p-CRIlyxX5.js.map} +1 -1
  128. package/dist/components/{p-xnXT49TS.js → p-CUe11ohy.js} +4 -4
  129. package/dist/components/{p-xnXT49TS.js.map → p-CUe11ohy.js.map} +1 -1
  130. package/dist/components/{p-CpP2uaEo.js → p-CUlV7ZGv.js} +3 -3
  131. package/dist/components/{p-CpP2uaEo.js.map → p-CUlV7ZGv.js.map} +1 -1
  132. package/dist/components/{p-BWCjcWGP.js → p-CXkCnHr5.js} +4 -4
  133. package/dist/components/{p-BWCjcWGP.js.map → p-CXkCnHr5.js.map} +1 -1
  134. package/dist/components/{p-Bi06RVaz.js → p-CdAJ8ry_.js} +3 -3
  135. package/dist/components/{p-Bi06RVaz.js.map → p-CdAJ8ry_.js.map} +1 -1
  136. package/dist/components/{p-DW9sxBeM.js → p-CdBb4zI5.js} +6 -6
  137. package/dist/components/{p-DW9sxBeM.js.map → p-CdBb4zI5.js.map} +1 -1
  138. package/dist/components/{p-OAhdn1vx.js → p-CdPtFwy6.js} +3 -3
  139. package/dist/components/{p-OAhdn1vx.js.map → p-CdPtFwy6.js.map} +1 -1
  140. package/dist/components/{p-umrdj-23.js → p-CeKOSPvz.js} +5 -5
  141. package/dist/components/{p-umrdj-23.js.map → p-CeKOSPvz.js.map} +1 -1
  142. package/dist/components/{p-CNvWFjFr.js → p-Ch_HOS-9.js} +4 -4
  143. package/dist/components/{p-CNvWFjFr.js.map → p-Ch_HOS-9.js.map} +1 -1
  144. package/dist/components/{p-sH4nuWqV.js → p-Ci-pKDnr.js} +4 -4
  145. package/dist/components/{p-sH4nuWqV.js.map → p-Ci-pKDnr.js.map} +1 -1
  146. package/dist/components/{p-Co08mMKn.js → p-CpGRDWt9.js} +4 -4
  147. package/dist/components/{p-Co08mMKn.js.map → p-CpGRDWt9.js.map} +1 -1
  148. package/dist/components/{p-p9sl0FFV.js → p-Ctot3asB.js} +50 -46
  149. package/dist/components/p-Ctot3asB.js.map +1 -0
  150. package/dist/components/{p-DjFQHhGY.js → p-CuaQW941.js} +4 -4
  151. package/dist/components/{p-DjFQHhGY.js.map → p-CuaQW941.js.map} +1 -1
  152. package/dist/components/{p-Dwxouxgj.js → p-CzSowwcD.js} +4 -4
  153. package/dist/components/{p-Dwxouxgj.js.map → p-CzSowwcD.js.map} +1 -1
  154. package/dist/components/{p-i8gpwgDT.js → p-D0137Jos.js} +4 -4
  155. package/dist/components/{p-i8gpwgDT.js.map → p-D0137Jos.js.map} +1 -1
  156. package/dist/components/{p-4jS2598L.js → p-D04Mu9fK.js} +3 -3
  157. package/dist/components/{p-4jS2598L.js.map → p-D04Mu9fK.js.map} +1 -1
  158. package/dist/components/{p-BlxYpYrq.js → p-D0qMgeBc.js} +4 -4
  159. package/dist/components/{p-BlxYpYrq.js.map → p-D0qMgeBc.js.map} +1 -1
  160. package/dist/components/{p-DswqiER3.js → p-D42UGkjM.js} +3 -3
  161. package/dist/components/{p-DswqiER3.js.map → p-D42UGkjM.js.map} +1 -1
  162. package/dist/components/{p-TOG3UyB_.js → p-D4gKLnje.js} +7 -7
  163. package/dist/components/{p-TOG3UyB_.js.map → p-D4gKLnje.js.map} +1 -1
  164. package/dist/components/{p-DjQuy9Lc.js → p-D5Swz0J4.js} +5 -5
  165. package/dist/components/{p-DjQuy9Lc.js.map → p-D5Swz0J4.js.map} +1 -1
  166. package/dist/components/{p-D6yyOiee.js → p-D9mHh12b.js} +5 -5
  167. package/dist/components/{p-D6yyOiee.js.map → p-D9mHh12b.js.map} +1 -1
  168. package/dist/components/{p-B2_cvJns.js → p-DDd7Mjvz.js} +5 -5
  169. package/dist/components/{p-B2_cvJns.js.map → p-DDd7Mjvz.js.map} +1 -1
  170. package/dist/components/{p-C1Z2qktB.js → p-DGDbXfHm.js} +7 -7
  171. package/dist/components/{p-C1Z2qktB.js.map → p-DGDbXfHm.js.map} +1 -1
  172. package/dist/components/{p-CjMpnxmP.js → p-DMwaGWVu.js} +3 -3
  173. package/dist/components/{p-CjMpnxmP.js.map → p-DMwaGWVu.js.map} +1 -1
  174. package/dist/components/{p-C2EKszp0.js → p-DOryfnIf.js} +3 -3
  175. package/dist/components/{p-C2EKszp0.js.map → p-DOryfnIf.js.map} +1 -1
  176. package/dist/components/{p-D8f8zHZu.js → p-DPL6BIu2.js} +5 -5
  177. package/dist/components/{p-D8f8zHZu.js.map → p-DPL6BIu2.js.map} +1 -1
  178. package/dist/components/{p-B2iddmWd.js → p-DPPqmJvY.js} +5 -5
  179. package/dist/components/{p-B2iddmWd.js.map → p-DPPqmJvY.js.map} +1 -1
  180. package/dist/components/{p-D7Xfdt74.js → p-DUVwWh7e.js} +4 -4
  181. package/dist/components/{p-D7Xfdt74.js.map → p-DUVwWh7e.js.map} +1 -1
  182. package/dist/components/{p-f0IvxSr9.js → p-DZwGCUUK.js} +6 -6
  183. package/dist/components/{p-f0IvxSr9.js.map → p-DZwGCUUK.js.map} +1 -1
  184. package/dist/components/{p-tIcs9Qo5.js → p-D_daFt1t.js} +5 -5
  185. package/dist/components/{p-tIcs9Qo5.js.map → p-D_daFt1t.js.map} +1 -1
  186. package/dist/components/{p-DGUo_p68.js → p-DcXycU5_.js} +4 -4
  187. package/dist/components/{p-DGUo_p68.js.map → p-DcXycU5_.js.map} +1 -1
  188. package/dist/components/{p-w9ANRXbn.js → p-DfxhC7Fd.js} +5 -5
  189. package/dist/components/{p-w9ANRXbn.js.map → p-DfxhC7Fd.js.map} +1 -1
  190. package/dist/components/{p-eej_Ksq1.js → p-DjJOgfxK.js} +5 -5
  191. package/dist/components/{p-eej_Ksq1.js.map → p-DjJOgfxK.js.map} +1 -1
  192. package/dist/components/{p-ixTtdC_2.js → p-LOCJMijY.js} +5 -5
  193. package/dist/components/{p-ixTtdC_2.js.map → p-LOCJMijY.js.map} +1 -1
  194. package/dist/components/{p-DGwr7E6J.js → p-NA5f_7b7.js} +4 -4
  195. package/dist/components/{p-DGwr7E6J.js.map → p-NA5f_7b7.js.map} +1 -1
  196. package/dist/components/{p-Cf-rjo7-.js → p-O9btdnkK.js} +6 -6
  197. package/dist/components/{p-Cf-rjo7-.js.map → p-O9btdnkK.js.map} +1 -1
  198. package/dist/components/{p-tx39yUB3.js → p-RPocf_FZ.js} +8 -8
  199. package/dist/components/{p-tx39yUB3.js.map → p-RPocf_FZ.js.map} +1 -1
  200. package/dist/components/{p-EKeBVTKB.js → p-UTn_XnKO.js} +5 -5
  201. package/dist/components/{p-EKeBVTKB.js.map → p-UTn_XnKO.js.map} +1 -1
  202. package/dist/components/{p-CeWOPOaM.js → p-eV80kRKP.js} +4 -4
  203. package/dist/components/{p-CeWOPOaM.js.map → p-eV80kRKP.js.map} +1 -1
  204. package/dist/components/{p-CbB5JFln.js → p-fwU4mtR0.js} +4 -4
  205. package/dist/components/{p-CbB5JFln.js.map → p-fwU4mtR0.js.map} +1 -1
  206. package/dist/components/{p-DrmjHhDH.js → p-g9YD1HRv.js} +5 -5
  207. package/dist/components/{p-DrmjHhDH.js.map → p-g9YD1HRv.js.map} +1 -1
  208. package/dist/components/{p-DvPuyp-I.js → p-nhhVpJed.js} +7 -7
  209. package/dist/components/{p-DvPuyp-I.js.map → p-nhhVpJed.js.map} +1 -1
  210. package/dist/components/{p-oVDOs1AN.js → p-oRjUujH5.js} +4 -4
  211. package/dist/components/{p-oVDOs1AN.js.map → p-oRjUujH5.js.map} +1 -1
  212. package/dist/components/{p-hmiyEk6L.js → p-qo42Sy8T.js} +5 -5
  213. package/dist/components/{p-hmiyEk6L.js.map → p-qo42Sy8T.js.map} +1 -1
  214. package/dist/components/{p-D_8c_n1h.js → p-uxA_4Zq1.js} +4 -4
  215. package/dist/components/{p-D_8c_n1h.js.map → p-uxA_4Zq1.js.map} +1 -1
  216. package/dist/components/{p-DWMCGYZt.js → p-wJgbEd5m.js} +5 -5
  217. package/dist/components/{p-DWMCGYZt.js.map → p-wJgbEd5m.js.map} +1 -1
  218. package/dist/components/textarea-component.js +1 -1
  219. package/dist/components/time-period-selector.js +1 -1
  220. package/dist/esm/{abstract-provider-DfvNw5fP.js → abstract-provider-C4xP8KoA.js} +3 -3
  221. package/dist/esm/{abstract-provider-DfvNw5fP.js.map → abstract-provider-C4xP8KoA.js.map} +1 -1
  222. package/dist/esm/calendar-agenda-fill-icon_39.entry.js +2 -2
  223. package/dist/esm/checkbox-group_4.entry.js +3 -3
  224. package/dist/esm/checkmark-icon_14.entry.js +2 -2
  225. package/dist/esm/{customParseFormat-BUZsRKas.js → customParseFormat-oEkUiMUN.js} +3 -3
  226. package/dist/esm/{customParseFormat-BUZsRKas.js.map → customParseFormat-oEkUiMUN.js.map} +1 -1
  227. package/dist/esm/globe-icon_3.entry.js +2 -2
  228. package/dist/esm/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.js.map +1 -1
  229. package/dist/esm/google-logo-icon_6.entry.js +23 -15
  230. package/dist/esm/google-logo-icon_6.entry.js.map +1 -1
  231. package/dist/esm/index.js +2 -2
  232. package/dist/esm/input-component.entry.js +1 -1
  233. package/dist/esm/input-dropdown_2.entry.js +1 -1
  234. package/dist/esm/input-image-url_2.entry.js +2 -2
  235. package/dist/esm/multi-select-dropdown.entry.js +1 -1
  236. package/dist/esm/{nylas-api-request-B3Fj4B-L.js → nylas-api-request-CWLncKIc.js} +3 -3
  237. package/dist/esm/{nylas-api-request-B3Fj4B-L.js.map → nylas-api-request-CWLncKIc.js.map} +1 -1
  238. package/dist/esm/nylas-booked-event-card_11.entry.js +2 -2
  239. package/dist/esm/nylas-form-card.entry.js +2 -2
  240. package/dist/esm/nylas-notification_2.entry.js +1 -1
  241. package/dist/esm/nylas-scheduler-editor.entry.js +4 -4
  242. package/dist/esm/nylas-scheduling.entry.js +6 -3
  243. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  244. package/dist/esm/{register-component-B9YP9nha.js → register-component-4Wk1RjFK.js} +3 -3
  245. package/dist/esm/{register-component-B9YP9nha.js.map → register-component-4Wk1RjFK.js.map} +1 -1
  246. package/dist/esm/textarea-component.entry.js +1 -1
  247. package/dist/esm/{utils-OpKyWV8q.js → utils-DfIu4gMZ.js} +3 -3
  248. package/dist/esm/{utils-OpKyWV8q.js.map → utils-DfIu4gMZ.js.map} +1 -1
  249. package/dist/esm/{version-CEtdwas_.js → version-B5EM2UED.js} +3 -3
  250. package/dist/esm/{version-CEtdwas_.js.map → version-B5EM2UED.js.map} +1 -1
  251. package/dist/nylas-web-elements/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.esm.js.map +1 -1
  252. package/dist/nylas-web-elements/index.esm.js +1 -1
  253. package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
  254. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  255. package/dist/nylas-web-elements/{p-2f3a33e1.entry.js → p-0745cbcc.entry.js} +2 -2
  256. package/dist/nylas-web-elements/{p-28182324.entry.js → p-0ae1a52e.entry.js} +3 -3
  257. package/dist/nylas-web-elements/{p-ad920702.entry.js → p-0c276fdb.entry.js} +2 -2
  258. package/dist/nylas-web-elements/{p-72e72392.entry.js → p-1618c8ac.entry.js} +2 -2
  259. package/dist/nylas-web-elements/{p-97034347.entry.js → p-2491c840.entry.js} +2 -2
  260. package/dist/nylas-web-elements/p-3a8194c2.entry.js +2 -0
  261. package/dist/nylas-web-elements/p-3a8194c2.entry.js.map +1 -0
  262. package/dist/nylas-web-elements/{p-330c2159.entry.js → p-81af9950.entry.js} +2 -2
  263. package/dist/nylas-web-elements/{p-4d9bdaa0.entry.js → p-95c4f538.entry.js} +2 -2
  264. package/dist/nylas-web-elements/p-9c8a524c.entry.js +2 -0
  265. package/dist/nylas-web-elements/p-9c8a524c.entry.js.map +1 -0
  266. package/dist/nylas-web-elements/{p-CEtdwas_.js → p-B5EM2UED.js} +2 -2
  267. package/dist/nylas-web-elements/{p-CEtdwas_.js.map → p-B5EM2UED.js.map} +1 -1
  268. package/dist/nylas-web-elements/{p-S0IPwRIR.js → p-DNbD_8zD.js} +2 -2
  269. package/dist/nylas-web-elements/{p-S0IPwRIR.js.map → p-DNbD_8zD.js.map} +1 -1
  270. package/dist/nylas-web-elements/{p-OpKyWV8q.js → p-DfIu4gMZ.js} +2 -2
  271. package/dist/nylas-web-elements/{p-OpKyWV8q.js.map → p-DfIu4gMZ.js.map} +1 -1
  272. package/dist/nylas-web-elements/{p-C-mOw2iU.js → p-Dgl7p7tZ.js} +2 -2
  273. package/dist/nylas-web-elements/{p-C-mOw2iU.js.map → p-Dgl7p7tZ.js.map} +1 -1
  274. package/dist/nylas-web-elements/p-VQ6-FdEA.js +2 -0
  275. package/dist/nylas-web-elements/{p-D8VJgipo.js.map → p-VQ6-FdEA.js.map} +1 -1
  276. package/dist/nylas-web-elements/{p-db79a1ca.entry.js → p-a5bb5b9d.entry.js} +2 -2
  277. package/dist/nylas-web-elements/{p-3f66ac98.entry.js → p-c7f4c268.entry.js} +2 -2
  278. package/dist/nylas-web-elements/{p-f235211e.entry.js → p-d48d8562.entry.js} +2 -2
  279. package/dist/nylas-web-elements/{p-9a5ddc21.entry.js → p-eb5b77ab.entry.js} +2 -2
  280. package/dist/nylas-web-elements/{p-38806f4d.entry.js → p-f45da541.entry.js} +2 -2
  281. package/dist/nylas-web-elements/{p-f5cf565f.entry.js → p-fed4cb19.entry.js} +2 -2
  282. package/dist/nylas-web-elements/{p-FlNKXp4j.js → p-gXPNb-6F.js} +2 -2
  283. package/dist/nylas-web-elements/{p-FlNKXp4j.js.map → p-gXPNb-6F.js.map} +1 -1
  284. package/dist/types/version.d.ts +1 -1
  285. package/package.json +1 -1
  286. package/dist/components/p-Di0G82W0.js.map +0 -1
  287. package/dist/components/p-p9sl0FFV.js.map +0 -1
  288. package/dist/nylas-web-elements/p-74747365.entry.js +0 -2
  289. package/dist/nylas-web-elements/p-74747365.entry.js.map +0 -1
  290. package/dist/nylas-web-elements/p-9a42cebd.entry.js +0 -2
  291. package/dist/nylas-web-elements/p-9a42cebd.entry.js.map +0 -1
  292. package/dist/nylas-web-elements/p-D8VJgipo.js +0 -2
  293. /package/dist/nylas-web-elements/{p-2f3a33e1.entry.js.map → p-0745cbcc.entry.js.map} +0 -0
  294. /package/dist/nylas-web-elements/{p-28182324.entry.js.map → p-0ae1a52e.entry.js.map} +0 -0
  295. /package/dist/nylas-web-elements/{p-ad920702.entry.js.map → p-0c276fdb.entry.js.map} +0 -0
  296. /package/dist/nylas-web-elements/{p-72e72392.entry.js.map → p-1618c8ac.entry.js.map} +0 -0
  297. /package/dist/nylas-web-elements/{p-97034347.entry.js.map → p-2491c840.entry.js.map} +0 -0
  298. /package/dist/nylas-web-elements/{p-330c2159.entry.js.map → p-81af9950.entry.js.map} +0 -0
  299. /package/dist/nylas-web-elements/{p-4d9bdaa0.entry.js.map → p-95c4f538.entry.js.map} +0 -0
  300. /package/dist/nylas-web-elements/{p-db79a1ca.entry.js.map → p-a5bb5b9d.entry.js.map} +0 -0
  301. /package/dist/nylas-web-elements/{p-3f66ac98.entry.js.map → p-c7f4c268.entry.js.map} +0 -0
  302. /package/dist/nylas-web-elements/{p-f235211e.entry.js.map → p-d48d8562.entry.js.map} +0 -0
  303. /package/dist/nylas-web-elements/{p-9a5ddc21.entry.js.map → p-eb5b77ab.entry.js.map} +0 -0
  304. /package/dist/nylas-web-elements/{p-38806f4d.entry.js.map → p-f45da541.entry.js.map} +0 -0
  305. /package/dist/nylas-web-elements/{p-f5cf565f.entry.js.map → p-fed4cb19.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{b as t}from"./p-OpKyWV8q.js";class e{constructor(t){this.defaultAuthArgs=[];this.session=t}setActiveGrantId(t){this.activeGrantId=t}async request({method:e,path:s,body:n,headers:i}){try{const r=await this.session.fetch(`grants/me/${s}`,{method:e,headers:i?new Headers(i):undefined,body:n,...this.session.isMultiAccount()&&this.activeGrantId?{grant_id:this.activeGrantId}:{}});if(typeof r==="undefined"){throw new Error("Response is undefined")}return t(r)}catch(e){const s=String(e);let n=s;if(s.includes("Access token not found")||s.includes("invalid_grant")||s.includes("token expired")||s.includes("unauthorized")){n="Your session has expired. Please log in again to continue.";setTimeout((()=>{localStorage.removeItem("grant");localStorage.removeItem("user");window.location.reload()}),3e3)}return t(null,{message:n})}}async currentUser(){const t=this.session.isMultiAccount()?this.activeGrantId:undefined;const e=await this.session.getProfile(t);if(await this.session.isLoggedIn()){const t=await this.session.fetch(`grants/me`,{method:"GET",...this.session.isMultiAccount()&&this.activeGrantId?{grant_id:this.activeGrantId}:{}});const s=t.data;if(!e||!s){return null}const n=s.email;return{id:e.sub,email:n,name:e.name,provider:e.provider}}return null}async authenticationUrl(t){const e=t?.provider||"google";const s=this.defaultAuthArgs.find((t=>t.provider===e));let n=s||{};if(t){n={...n,...t}}return this.session.auth(n)}setDefaultAuthArgs(t){this.defaultAuthArgs=t}}export{e as N};
2
- //# sourceMappingURL=p-C-mOw2iU.js.map
1
+ import{b as t}from"./p-DfIu4gMZ.js";class e{constructor(t){this.defaultAuthArgs=[];this.session=t}setActiveGrantId(t){this.activeGrantId=t}async request({method:e,path:s,body:n,headers:i}){try{const r=await this.session.fetch(`grants/me/${s}`,{method:e,headers:i?new Headers(i):undefined,body:n,...this.session.isMultiAccount()&&this.activeGrantId?{grant_id:this.activeGrantId}:{}});if(typeof r==="undefined"){throw new Error("Response is undefined")}return t(r)}catch(e){const s=String(e);let n=s;if(s.includes("Access token not found")||s.includes("invalid_grant")||s.includes("token expired")||s.includes("unauthorized")){n="Your session has expired. Please log in again to continue.";setTimeout((()=>{localStorage.removeItem("grant");localStorage.removeItem("user");window.location.reload()}),3e3)}return t(null,{message:n})}}async currentUser(){const t=this.session.isMultiAccount()?this.activeGrantId:undefined;const e=await this.session.getProfile(t);if(await this.session.isLoggedIn()){const t=await this.session.fetch(`grants/me`,{method:"GET",...this.session.isMultiAccount()&&this.activeGrantId?{grant_id:this.activeGrantId}:{}});const s=t.data;if(!e||!s){return null}const n=s.email;return{id:e.sub,email:n,name:e.name,provider:e.provider}}return null}async authenticationUrl(t){const e=t?.provider||"google";const s=this.defaultAuthArgs.find((t=>t.provider===e));let n=s||{};if(t){n={...n,...t}}return this.session.auth(n)}setDefaultAuthArgs(t){this.defaultAuthArgs=t}}export{e as N};
2
+ //# sourceMappingURL=p-Dgl7p7tZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"p-C-mOw2iU.js","sources":["src/common/nylas-api-request.ts"],"sourcesContent":["import { dataResponse } from '@/utils/utils';\nimport type { NylasSessions } from '@nylas/identity';\nimport { DataResponseReturnType } from './types';\n\n/**\n * Arguments for making a request to the Nylas API.\n */\nexport type NylasRequestArgs = {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n body?: any;\n headers?: Record<string, string>;\n};\n\n/**\n * A model representing a user in the Nylas Identity system.\n */\nexport type User = {\n id: string;\n email: string;\n name?: string;\n provider?: string;\n};\n\n/**\n * Arguments for authenticating a user with the Nylas Identity system.\n */\nexport type AuthArgs = {\n /**\n * The provider of the user's email address.\n */\n provider?: string;\n /**\n * A list of permission scopes for the provider.\n */\n scope?: Array<string>;\n /**\n * The login hint associated with the user.\n */\n loginHint?: string;\n /**\n * Whether to include grant scopes in the auth exchange.\n */\n includeGrantScopes?: boolean;\n prompt?: string;\n metadata?: string;\n state?: string;\n};\n\n/**\n * Interface for making requests to the Nylas API.\n *\n * This is an abstract class that is meant to be implemented by customers to provide their own\n * implementation of making requests to the Nylas API. This allows customers to use their own\n * authentication mechanism, or to use a different HTTP client library.\n */\nexport abstract class NylasApiRequest {\n /**\n * This method should make an authenticated request to the Nylas API.\n * Note: It should not throw an error if the request fails, but should return an object with the error\n * information as part of the tuple returned.\n * @param args NylasRequestArgs\n */\n abstract request<T = any>(args: NylasRequestArgs): Promise<DataResponseReturnType<T>>;\n\n /**\n * This method should return the current user's information.\n */\n\n abstract currentUser(): Promise<User | null>;\n\n /**\n * This method should set the default authentication arguments to use when authenticating the user.\n */\n abstract setDefaultAuthArgs(authArgs: AuthArgs[]): void;\n\n /**\n * This method should return the URL to redirect the user to for authentication.\n */\n abstract authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined>;\n}\n\n/**\n * A wrapper around the Nylas Identity session that implements the NylasApiRequest interface.\n * This class is used by the Nylas Web Elements to make requests to the Nylas API if no custom\n * implementation of NylasApiRequest is provided.\n */\nexport class NylasIdentityRequestWrapper implements NylasApiRequest {\n /**\n * The Nylas Identity session instance.\n */\n private session: NylasSessions;\n\n /**\n * The grant_id to use for requests, if there is multi-account support\n * enabled in the Nylas Identity settings.\n */\n private activeGrantId?: string;\n\n /**\n * The default authentication arguments to use when authenticating the user.\n */\n private defaultAuthArgs: AuthArgs[] = [];\n\n /**\n * Constructor for the NylasIdentityRequestWrapper class.\n * @param session The Nylas Identity session instance.\n */\n constructor(session: NylasSessions) {\n this.session = session;\n }\n\n /**\n * This method sets the grant_id to use for requests.\n * This is used when there is multi-account support enabled in the Nylas Identity settings.\n *\n * @param grantId\n */\n setActiveGrantId(grantId: string) {\n this.activeGrantId = grantId;\n }\n\n /**\n * This method makes a request to the Nylas API, using the Nylas Identity's fetch method.\n *\n * The `grants/me/` prefix is added because all requests made from the browser to the Nylas API\n * must be made on behalf of the currently logged in user with a valid access token.\n *\n * @param NylasRequestArgs\n * @returns Promise<[T | null, NylasErrorResponse['error'] | null]>\n */\n async request<T>({ method, path, body, headers }: NylasRequestArgs): Promise<DataResponseReturnType<T>> {\n try {\n const response = await this.session.fetch(`grants/me/${path}`, {\n method,\n headers: headers ? new Headers(headers) : undefined,\n body,\n ...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),\n });\n\n // Sometimes the Nylas identity session fetch method returns undefined.\n // Possibly due to CORS issues. In this case, we throw an error.\n if (typeof response === 'undefined') {\n throw new Error('Response is undefined');\n }\n\n return dataResponse(response as T);\n } catch (error: any) {\n const errorStr = String(error);\n let errorMessage = errorStr;\n if (errorStr.includes('Access token not found') || errorStr.includes('invalid_grant') || errorStr.includes('token expired') || errorStr.includes('unauthorized')) {\n errorMessage = 'Your session has expired. Please log in again to continue.';\n setTimeout(() => {\n localStorage.removeItem('grant');\n localStorage.removeItem('user');\n window.location.reload();\n }, 3000);\n }\n return dataResponse(null as T, {\n message: errorMessage,\n });\n }\n }\n\n /**\n * This method returns the current (logged in) user's information.\n * If the user is not logged in, it returns null.\n * @returns Promise<User | null>\n */\n async currentUser(): Promise<User | null> {\n const grantId = this.session.isMultiAccount() ? this.activeGrantId : undefined;\n const idToken = await this.session.getProfile(grantId);\n // If the user is not logged in, we can't get the grant (no access token)\n if (await this.session.isLoggedIn()) {\n const grantResponse = await this.session.fetch(`grants/me`, {\n method: 'GET',\n ...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),\n });\n const grant = grantResponse.data;\n\n if (!idToken || !grant) {\n return null;\n }\n\n const grantEmail = grant.email;\n return {\n id: idToken.sub,\n email: grantEmail,\n name: idToken.name,\n provider: idToken.provider,\n };\n }\n\n return null;\n }\n\n /**\n * This method returns the URL to redirect the user to for authentication.\n * @param authConfig authArgs\n * @returns Promise<string | undefined>\n */\n async authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined> {\n const provider = authArgs?.provider || 'google';\n const defaultArgs = this.defaultAuthArgs.find(args => args.provider === provider);\n let args = defaultArgs || {};\n\n if (authArgs) {\n args = { ...args, ...authArgs };\n }\n return this.session.auth(args);\n }\n\n /**\n * This method sets the default authentication arguments to use when authenticating the user.\n * @param authArgs authArgs\n */\n setDefaultAuthArgs(authArgs: AuthArgs[]) {\n this.defaultAuthArgs = authArgs;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-Dgl7p7tZ.js","sources":["src/common/nylas-api-request.ts"],"sourcesContent":["import { dataResponse } from '@/utils/utils';\nimport type { NylasSessions } from '@nylas/identity';\nimport { DataResponseReturnType } from './types';\n\n/**\n * Arguments for making a request to the Nylas API.\n */\nexport type NylasRequestArgs = {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n body?: any;\n headers?: Record<string, string>;\n};\n\n/**\n * A model representing a user in the Nylas Identity system.\n */\nexport type User = {\n id: string;\n email: string;\n name?: string;\n provider?: string;\n};\n\n/**\n * Arguments for authenticating a user with the Nylas Identity system.\n */\nexport type AuthArgs = {\n /**\n * The provider of the user's email address.\n */\n provider?: string;\n /**\n * A list of permission scopes for the provider.\n */\n scope?: Array<string>;\n /**\n * The login hint associated with the user.\n */\n loginHint?: string;\n /**\n * Whether to include grant scopes in the auth exchange.\n */\n includeGrantScopes?: boolean;\n prompt?: string;\n metadata?: string;\n state?: string;\n};\n\n/**\n * Interface for making requests to the Nylas API.\n *\n * This is an abstract class that is meant to be implemented by customers to provide their own\n * implementation of making requests to the Nylas API. This allows customers to use their own\n * authentication mechanism, or to use a different HTTP client library.\n */\nexport abstract class NylasApiRequest {\n /**\n * This method should make an authenticated request to the Nylas API.\n * Note: It should not throw an error if the request fails, but should return an object with the error\n * information as part of the tuple returned.\n * @param args NylasRequestArgs\n */\n abstract request<T = any>(args: NylasRequestArgs): Promise<DataResponseReturnType<T>>;\n\n /**\n * This method should return the current user's information.\n */\n\n abstract currentUser(): Promise<User | null>;\n\n /**\n * This method should set the default authentication arguments to use when authenticating the user.\n */\n abstract setDefaultAuthArgs(authArgs: AuthArgs[]): void;\n\n /**\n * This method should return the URL to redirect the user to for authentication.\n */\n abstract authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined>;\n}\n\n/**\n * A wrapper around the Nylas Identity session that implements the NylasApiRequest interface.\n * This class is used by the Nylas Web Elements to make requests to the Nylas API if no custom\n * implementation of NylasApiRequest is provided.\n */\nexport class NylasIdentityRequestWrapper implements NylasApiRequest {\n /**\n * The Nylas Identity session instance.\n */\n private session: NylasSessions;\n\n /**\n * The grant_id to use for requests, if there is multi-account support\n * enabled in the Nylas Identity settings.\n */\n private activeGrantId?: string;\n\n /**\n * The default authentication arguments to use when authenticating the user.\n */\n private defaultAuthArgs: AuthArgs[] = [];\n\n /**\n * Constructor for the NylasIdentityRequestWrapper class.\n * @param session The Nylas Identity session instance.\n */\n constructor(session: NylasSessions) {\n this.session = session;\n }\n\n /**\n * This method sets the grant_id to use for requests.\n * This is used when there is multi-account support enabled in the Nylas Identity settings.\n *\n * @param grantId\n */\n setActiveGrantId(grantId: string) {\n this.activeGrantId = grantId;\n }\n\n /**\n * This method makes a request to the Nylas API, using the Nylas Identity's fetch method.\n *\n * The `grants/me/` prefix is added because all requests made from the browser to the Nylas API\n * must be made on behalf of the currently logged in user with a valid access token.\n *\n * @param NylasRequestArgs\n * @returns Promise<[T | null, NylasErrorResponse['error'] | null]>\n */\n async request<T>({ method, path, body, headers }: NylasRequestArgs): Promise<DataResponseReturnType<T>> {\n try {\n const response = await this.session.fetch(`grants/me/${path}`, {\n method,\n headers: headers ? new Headers(headers) : undefined,\n body,\n ...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),\n });\n\n // Sometimes the Nylas identity session fetch method returns undefined.\n // Possibly due to CORS issues. In this case, we throw an error.\n if (typeof response === 'undefined') {\n throw new Error('Response is undefined');\n }\n\n return dataResponse(response as T);\n } catch (error: any) {\n const errorStr = String(error);\n let errorMessage = errorStr;\n if (errorStr.includes('Access token not found') || errorStr.includes('invalid_grant') || errorStr.includes('token expired') || errorStr.includes('unauthorized')) {\n errorMessage = 'Your session has expired. Please log in again to continue.';\n setTimeout(() => {\n localStorage.removeItem('grant');\n localStorage.removeItem('user');\n window.location.reload();\n }, 3000);\n }\n return dataResponse(null as T, {\n message: errorMessage,\n });\n }\n }\n\n /**\n * This method returns the current (logged in) user's information.\n * If the user is not logged in, it returns null.\n * @returns Promise<User | null>\n */\n async currentUser(): Promise<User | null> {\n const grantId = this.session.isMultiAccount() ? this.activeGrantId : undefined;\n const idToken = await this.session.getProfile(grantId);\n // If the user is not logged in, we can't get the grant (no access token)\n if (await this.session.isLoggedIn()) {\n const grantResponse = await this.session.fetch(`grants/me`, {\n method: 'GET',\n ...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),\n });\n const grant = grantResponse.data;\n\n if (!idToken || !grant) {\n return null;\n }\n\n const grantEmail = grant.email;\n return {\n id: idToken.sub,\n email: grantEmail,\n name: idToken.name,\n provider: idToken.provider,\n };\n }\n\n return null;\n }\n\n /**\n * This method returns the URL to redirect the user to for authentication.\n * @param authConfig authArgs\n * @returns Promise<string | undefined>\n */\n async authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined> {\n const provider = authArgs?.provider || 'google';\n const defaultArgs = this.defaultAuthArgs.find(args => args.provider === provider);\n let args = defaultArgs || {};\n\n if (authArgs) {\n args = { ...args, ...authArgs };\n }\n return this.session.auth(args);\n }\n\n /**\n * This method sets the default authentication arguments to use when authenticating the user.\n * @param authArgs authArgs\n */\n setDefaultAuthArgs(authArgs: AuthArgs[]) {\n this.defaultAuthArgs = authArgs;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{a as e,e as t}from"./p-DfIu4gMZ.js";import{a as r}from"./p-0EQQA0nE.js";function n(e,t,r="registerComponent"){return new CustomEvent(r,{bubbles:true,composed:true,detail:t})}function o(e,t,r="unregisterComponent"){return new CustomEvent(r,{bubbles:true,composed:true,detail:t})}function u(u){return(s,c)=>{const i=u.name;e(`[${i}] Registering component ${i} being called on ${c}`);const a=s.componentWillLoad;if(!a){t(`[${i}] componentWillLoad lifecycle method in ${i} missing. Required for RegisterComponent decorator.`);return}const l=s.connectedCallback;if(!l){t(`[${i}] connectedCallback lifecycle method in ${i} missing. Required for RegisterComponent decorator.`);return}const p=s.disconnectedCallback;if(!p){t(`[${i}] disconnectedCallback lifecycle method in ${i} missing. Required for RegisterComponent decorator.`);return}if(u.storeToProps&&u.stateToProps){const e=Array.from(u.storeToProps.values());const r=Array.from(u.stateToProps.values());const n=e.filter((e=>r.includes(e)));if(n.length>0){t(`[${i}] Overlapping prop keys detected in ${i} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${n.join(", ")}`);return}}const m=new Map;if(u.eventToProps){Object.keys(u.eventToProps).forEach((e=>{m.set(e,u.eventToProps?.[e])}))}s.connectedCallback=function(){e(`[~${i}] connectedCallback called`);const t=l?.call(this);const n=r(this);if(n.dataset.nylasId){Object.defineProperty(n,"registerNylasComponent",{get(){return true},enumerable:true});Object.defineProperty(n,"stateToProps",{get(){return u.stateToProps},enumerable:true});Object.defineProperty(n,"getStoresToProp",{get(){return u.getStoresToProp},enumerable:true});Object.defineProperty(n,"storeToProps",{get(){return u.storeToProps},enumerable:true});Object.defineProperty(n,"eventToProps",{get(){return m},enumerable:true});Object.defineProperty(n,"authToProp",{get(){return u.authToProp},enumerable:true});Object.defineProperty(n,"connectorToProp",{get(){return u.connectorToProp},enumerable:true});Object.defineProperty(n,"localPropsToProp",{get(){return u.localPropsToProp},enumerable:true});return t}Object.defineProperty(n,"registerNylasComponent",{get(){return true},enumerable:true});Object.defineProperty(n,"stateToProps",{get(){return u.stateToProps},enumerable:true});Object.defineProperty(n,"getStoresToProp",{get(){return u.getStoresToProp},enumerable:true});Object.defineProperty(n,"storeToProps",{get(){return u.storeToProps},enumerable:true});Object.defineProperty(n,"eventToProps",{get(){return m},enumerable:true});Object.defineProperty(n,"authToProp",{get(){return u.authToProp},enumerable:true});Object.defineProperty(n,"connectorToProp",{get(){return u.connectorToProp},enumerable:true});Object.defineProperty(n,"localPropsToProp",{get(){return u.localPropsToProp},enumerable:true});return t};if(u.fireRegisterEvent){s.componentWillLoad=function(){const t=a?.call(this);const o=r(this);const c={element:o,...u,eventToProps:m};const l=n(s,c,u.registrationEventName);if(o.dispatchEvent(l)){e(`[${i}] Component ${i} successfully fired registration event`)}return t};s.disconnectedCallback=function(){const t=p?.call(this);const n=r(this);const c={element:n,...u,eventToProps:m};const a=o(s,c,u.unregistrationEventName);try{if(n.dispatchEvent(a)){e(`[${i}] Component ${i} successfully fired unregistration event`)}}catch(t){e(`[${i}] Error dispatching unregistration event:`,t)}if(n.dataset.nylasId){delete n.dataset.nylasId;e(`[${i}] Cleared nylasId on disconnect for component ${i}`)}return t}}}}export{u as R};
2
+ //# sourceMappingURL=p-VQ6-FdEA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"p-D8VJgipo.js","sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise<void>; registerCallback?(): Promise<void> };\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n localPropsToProp?: Map<string, keyof H>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean | ((host: H) => boolean);\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n registerCallback?: () => Promise<void>;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const originalComponentWillLoad = target.componentWillLoad;\n if (!originalComponentWillLoad) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalConnectCallback = target.connectedCallback;\n if (!originalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalDisconnectCallback = target.disconnectedCallback;\n if (!originalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = originalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, ensure properties are still set up\n // This handles the case where component was disconnected and reconnected\n // Properties may have been cleared during disconnect\n if (host.dataset.nylasId) {\n // Still set up properties in case they were cleared during disconnect\n // This ensures reconnected components have proper setup\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = originalComponentWillLoad?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = originalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n\n // Dispatch event before clearing nylasId to ensure it bubbles to provider\n // disconnectedCallback is called before element is fully detached, so event should bubble\n try {\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n } catch (error) {\n debug(`[${componentName}] Error dispatching unregistration event:`, error);\n }\n\n // Clear nylasId on disconnect so reconnection triggers fresh registration\n // This ensures reconnected components get proper property setup\n if (host.dataset.nylasId) {\n delete host.dataset.nylasId;\n debug(`[${componentName}] Cleared nylasId on disconnect for component ${componentName}`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-VQ6-FdEA.js","sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise<void>; registerCallback?(): Promise<void> };\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n localPropsToProp?: Map<string, keyof H>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean | ((host: H) => boolean);\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n registerCallback?: () => Promise<void>;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const originalComponentWillLoad = target.componentWillLoad;\n if (!originalComponentWillLoad) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalConnectCallback = target.connectedCallback;\n if (!originalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalDisconnectCallback = target.disconnectedCallback;\n if (!originalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = originalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, ensure properties are still set up\n // This handles the case where component was disconnected and reconnected\n // Properties may have been cleared during disconnect\n if (host.dataset.nylasId) {\n // Still set up properties in case they were cleared during disconnect\n // This ensures reconnected components have proper setup\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = originalComponentWillLoad?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = originalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n\n // Dispatch event before clearing nylasId to ensure it bubbles to provider\n // disconnectedCallback is called before element is fully detached, so event should bubble\n try {\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n } catch (error) {\n debug(`[${componentName}] Error dispatching unregistration event:`, error);\n }\n\n // Clear nylasId on disconnect so reconnection triggers fresh registration\n // This ensures reconnected components get proper property setup\n if (host.dataset.nylasId) {\n delete host.dataset.nylasId;\n debug(`[${componentName}] Cleared nylasId on disconnect for component ${componentName}`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as e,h as s,c as a,a as i,H as t}from"./p-0EQQA0nE.js";import{A as r,d as l,L as o,i as n,a2 as c,a3 as h,N as f,a4 as d,a5 as y,O as b}from"./p-OpKyWV8q.js";import{c as p}from"./p-S0IPwRIR.js";const u=".sc-globe-icon-h{display:flex}";const m=class{constructor(s){e(this,s);this.width="16";this.height="16"}render(){return s("svg",{key:"cb0e3380c9fec6c904edcec530eda0df7d82b5fe",xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height,viewBox:"0 0 16 16",fill:"none"},s("path",{key:"ba93585bd0da85eecebc7c2a3a8c7f705571b219",d:"M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14ZM8 3C8.37372 3 8.87543 3.35608 9.31258 4.31781C9.4073 4.52619 9.49448 4.75446 9.57265 5H6.42735C6.50552 4.75446 6.5927 4.52619 6.68742 4.31781C7.12457 3.35608 7.62628 3 8 3ZM5.77705 3.90401C5.62614 4.23601 5.49428 4.6038 5.38411 5H3.99963C4.52341 4.30269 5.22525 3.74677 6.03766 3.39978C5.94287 3.56117 5.85596 3.7304 5.77705 3.90401ZM5.16299 6C5.05694 6.6275 5 7.30146 5 8C5 8.69854 5.05694 9.3725 5.16299 10H3.41604C3.14845 9.38754 3 8.7111 3 8C3 7.2889 3.14845 6.61246 3.41604 6H5.16299ZM5.38411 11C5.49428 11.3962 5.62614 11.764 5.77705 12.096C5.85596 12.2696 5.94287 12.4388 6.03766 12.6002C5.22525 12.2532 4.52341 11.6973 3.99963 11H5.38411ZM6.42735 11H9.57265C9.49448 11.2455 9.4073 11.4738 9.31258 11.6822C8.87543 12.6439 8.37372 13 8 13C7.62628 13 7.12457 12.6439 6.68742 11.6822C6.5927 11.4738 6.50552 11.2455 6.42735 11ZM9.82134 10H6.17866C6.06438 9.3892 6 8.71396 6 8C6 7.28604 6.06438 6.6108 6.17866 6H9.82134C9.93562 6.6108 10 7.28604 10 8C10 8.71396 9.93562 9.3892 9.82134 10ZM10.6159 11H12.0004C11.4766 11.6973 10.7747 12.2532 9.96234 12.6002C10.0571 12.4388 10.144 12.2696 10.2229 12.096C10.3739 11.764 10.5057 11.3962 10.6159 11ZM12.584 10H10.837C10.9431 9.3725 11 8.69854 11 8C11 7.30146 10.9431 6.6275 10.837 6H12.584C12.8516 6.61246 13 7.2889 13 8C13 8.7111 12.8516 9.38754 12.584 10ZM9.96234 3.39978C10.7747 3.74677 11.4766 4.30269 12.0004 5H10.6159C10.5057 4.6038 10.3739 4.23601 10.2229 3.90401C10.144 3.7304 10.0571 3.56117 9.96234 3.39978Z",fill:"currentColor"}))}};m.style=u;const g=':host{display:block;height:auto;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--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-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff;width:100%}label{display:flex;color:var(--nylas-base-800, #293056);font-size:14px;font-style:normal;font-weight:400;line-height:150%;word-break:break-word;overflow-wrap:break-word;flex-direction:column;gap:4px;font-family:var(--nylas-font-family);font-size:16px;color:var(--nylas-base-800)}label.error{color:var(--nylas-error)}label span.required{color:var(--nylas-error);padding:0 0.25rem}label p{margin:0}label .error{color:var(--nylas-error);border-color:var(--nylas-error)}.input_wrapper{display:flex;align-items:center;gap:1rem}input[type=date]{display:flex;height:48px;padding-left:16px;align-items:center;gap:8px;align-self:stretch;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-300);background:var(--nylas-base-0);width:-webkit-fill-available;color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:400;line-height:150%;width:100%;width:-moz-available;width:-webkit-fill-available;font-family:var(--nylas-font-family);padding:0 8px;cursor:pointer}input[type=date]:focus{outline-color:var(--nylas-primary)}input[type=date].error{border-radius:var(--nylas-border-radius-2x);font-weight:600;border-color:var(--nylas-error);border-width:2px}input[type=date].error::placeholder{font-weight:400}input[type=date]::placeholder{color:var(--nylas-base-300)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(37%) sepia(51%) saturate(6324%) hue-rotate(215deg) brightness(94%) contrast(95%);cursor:pointer}input:read-only{background-color:var(--nylas-base-100);cursor:not-allowed}';const k={date:"YYYY-MM-DD"};const x=class{constructor(s){e(this,s);this.nylasFormInputChanged=a(this,"nylasFormInputChanged",7);this.nylasFormInputFocused=a(this,"nylasFormInputFocused",7);this.nylasFormInputBlurred=a(this,"nylasFormInputBlurred",7);this.name="input";this.label="";this.placeholder=k["date"];this.required=false;this.readOnly=false;this.autoFocus=false;this.maxLength=255;this.patternError="";this.requiredError="";this.errorMessage="";this.hasError=false;this.error="";this.isDateValid=true}handleDefaultValueChange(e){this.value=r(e);if(this.value){this.validatePattern(this.value,true)}}themeConfigChangedHandler(e,s){if(e===s)return;this.applyThemeConfig(e)}applyThemeConfig(e){if(e){for(const[s,a]of Object.entries(e)){this.el.style.setProperty(`${s}`,a)}}}connectedCallback(){queueMicrotask((()=>{if(this.themeConfig){this.applyThemeConfig(this.themeConfig);this.el.setAttribute("data-themed","")}}))}componentDidLoad(){this.value=r(this.defaultValue||"");if(this.value){this.validatePattern(this.value,true)}}handleBookingFormSubmitted(e){this.validatePattern(this.value);if(this.error){e.preventDefault()}}async handleFormSubmitted(e){this.validatePattern(this.value);if(this.error){e.preventDefault()}}handleInput(e){this.error="";const s=e.target;this.value=r(s.value);this.isDateValid=s.validity.valid;this.nylasFormInputChanged.emit({value:this.value,name:this.name,label:this.label,error:this.error,type:"date"})}handleBlur(){this.nylasFormInputBlurred.emit({value:this.value,name:this.name})}handleFocus(){this.nylasFormInputFocused.emit({value:this.value,name:this.name})}validatePattern(e,s=false){this.error="";if(!s&&(this.required&&!this.isDateValid||this.minDate&&new Date(this.minDate)>new Date(e))){this.error=this.errorMessage||"Please enter a valid date";this.nylasFormInputChanged.emit({value:this.value,name:this.name,label:this.label,error:this.error,type:"date"});return}if(this.required&&!e){this.error=this.requiredError||"This field is required.";return}if(!this.pattern||!e&&!this.required)return;if(this.pattern.test(e)){this.error=""}else{this.error=this.patternError||"Invalid format."}}render(){return s("label",{key:"2b85ec5e76a7d585403b355b2e143ced48e98b81",part:"ic__label",class:{error:!!this.error||this.hasError}},this.label&&s("p",{key:"3a7dce7c85961bb6695beef195d10f03eb8d8d33"},s("span",{key:"0e4ddb991c5b5e9684f36eaac79c1961a33bf346",class:"label"},this.label),this.required&&s("span",{key:"9c4ff17b839a72f9a8b6d0228773f820be85f918",class:"required"},"*")),s("div",{key:"ee9732ec821f68192191b368e3cd62a3f0f9d3cd",part:"ic__input_wrapper",class:"input_wrapper"},s("input",{key:"56ec6ac542c470e23395b8f098932fdc4a0e2d6f",type:"date",min:this.minDate,value:this.value,name:this.name,part:"ic__date",title:this.readOnly?"read-only field":undefined,readOnly:this.readOnly,autoFocus:this.autoFocus,maxLength:this.maxLength,placeholder:this.placeholder,class:{error:!!this.error||this.hasError},onInput:e=>this.handleInput(e),onFocus:()=>this.handleFocus(),onBlur:()=>this.handleBlur()}),s("slot",{key:"b3158bc42f1586392ebc9304df23973e5bef5a7a",name:"additional-input"})),this.error&&s("span",{key:"abc73483451f6b009b6e830cdbc0a737728252c7",class:"error help-text"},this.error))}get el(){return i(this)}static get watchers(){return{defaultValue:["handleDefaultValueChange"],themeConfig:["themeConfigChangedHandler"]}}};x.style=g;const w=':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--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-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.time-picker{display:inline-block;width:150px;font-family:var(--nylas-font-family);position:relative}@media screen and (max-width: 768px){.time-picker{width:auto}}.time-picker input{width:150px;height:48px;text-align:center;font-size:16px;font-family:inherit;color:var(--nylas-base-900);cursor:pointer;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.time-picker input{width:88px}}@media screen and (max-width: 504px){.time-picker input{width:68px;font-size:15px}}.time-picker input.focus{background:var(--nylas-base-0)}.time-picker input:hover,.time-picker input:active{border:1px solid var(--nylas-primary)}.time-picker input:active{outline:2px solid var(--nylas-primary)}.time-picker input span.open{transform:rotate(90deg)}.time-picker input span.closed{transform:rotate(270deg)}.time-picker input.error{border:1px solid var(--nylas-error)}.time-picker p.error{color:var(--nylas-error);font-size:0.875rem;margin:0}.times{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);width:100%;max-height:336px;overflow:auto;border:1px solid #ddd;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)}.times ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.times ul li{padding:16px, 12px, 16px, 12px;color:var(--nylas-base-900);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:center;cursor:pointer}.times ul li.focused{background-color:var(--nylas-base-100)}.times ul li:hover,.times ul li:focus{background-color:var(--nylas-base-100)}.times ul li label{display:flex;align-items:center;gap:0.5rem}.times ul li label input{margin:0}';l.extend(p);const v=class{constructor(s){e(this,s);this.timeChange=a(this,"timeChange",7);this.timeWindowFormError=a(this,"timeWindowFormError",7);this.minimumStartTime=null;this.placeholder="hh:mmam/pm";this.hasError=false;this.language=o.en;this.err="";this.showTimes=false;this.ariaActivedescendant="";this.times=this.generateTimes();this.shouldAutoScroll=false}handleOutsideClick(e){const s=e.composedPath();const a=s.includes(this.el);if(!a&&this.showTimes){this.showTimes=false}}timeChangedHandler(){this.validateTimeAgainstMinimum()}minimumStartTimeChangedHandler(){this.validateTimeAgainstMinimum()}themeConfigChangedHandler(e,s){this.applyThemeConfig(e)}applyThemeConfig(e){if(e){for(const[s,a]of Object.entries(e)){this.el.style.setProperty(`${s}`,a)}}}validateTimeAgainstMinimum(){if(this.minimumStartTime){const e=l(this.minimumStartTime,"hh:mma");const s=l(this.time,"hh:mma");this.times=this.generateTimes();const a=n.t("nylasTimeWindowPicker.errors.invalid");if(s.isBefore(e)){this.err=a;this.timeWindowFormError.emit({key:this.el.id,message:a})}else{this.err="";this.timeWindowFormError.emit({key:this.el.id,message:""})}}else{this.err="";this.timeWindowFormError.emit({key:this.el.id,message:""})}}connectedCallback(){queueMicrotask((()=>{if(this.themeConfig){this.applyThemeConfig(this.themeConfig);this.el.setAttribute("data-themed","")}}))}componentWillLoad(){}componentDidLoad(){this.validateTimeAgainstMinimum()}componentDidRender(){if(this.showTimes&&this.shouldAutoScroll){const e=c(this.time);const s=this.times.findIndex((s=>s.value===e));if(s>-1){this.shouldAutoScroll=false;this.scrollToViewWithinParent(s)}return}}handleTimeChange(e,s){const a=s.split(":");if(a[0]==="00"&&a[1].slice(-2)=="pm"){const e=n.t("nylasTimeWindowPicker.errors.invalid");this.err=e;this.timeWindowFormError.emit({key:this.el.id,message:e})}if(!h(s)){const e=n.t("nylasTimeWindowPicker.errors.invalid");this.err=e;this.timeWindowFormError.emit({key:this.el.id,message:e})}else{this.err="";this.timeWindowFormError.emit({key:this.el.id,message:""})}if(this.err){return}this.timeChange.emit({key:this.el.id,value:s})}handleTimeAutocomplete(e){const s=e.target?.value;const a=this.language!==o.en?f(s):s;const i=n.t("nylasTimeWindowPicker.errors.invalid");if(!h(a)){this.err=i;this.timeWindowFormError.emit({key:this.el.id,message:i});return}if(a===""){const e=d().format("hh:mma");this.timeChange.emit({key:this.el.id,value:e});return}if(!y(a)){const e=c(a);this.timeChange.emit({key:this.el.id,value:e});return}this.timeChange.emit({key:this.el.id,value:a})}handleOnInput(e){const s=e.target?.value;if(!h(s)){return}if(s===""){const e=d().format("hh:mma");const s=this.times.findIndex((s=>s.value===e));if(s>-1){this.scrollToViewWithinParent(s)}return}if(!y(s)){const e=c(s);const a=this.times.findIndex((s=>s.value===e));if(a>-1){this.scrollToViewWithinParent(a)}return}}generateTimes(){const e=[];let s=l().set("hour",0).set("minute",0).set("second",0);if(this.minimumStartTime){s=l(this.minimumStartTime,"hh:mma")}const a=s.endOf("day").diff(s,"minutes");const i=Math.round(a/15);for(let a=0;a<i+1;a++){const t=s.add(a*15,"minute");if(a==i&&t.format("hh:mma").includes("am")){break}e.push({id:a,value:t.format("hh:mma")})}return e}handleComboboxKeyDown(e){if(e.key==="ArrowDown"){e.preventDefault();if(!this.showTimes){this.showTimes=true;this.shouldAutoScroll=true;return}if(this.ariaActivedescendant===""){this.ariaActivedescendant=this.times[0].id.toString();this.focusOption(0)}else{const e=this.times.findIndex((e=>e.id.toString()===this.ariaActivedescendant));const s=e+1<this.times.length?e+1:0;this.ariaActivedescendant=this.times[s].id.toString();this.focusOption(s)}}else if(e.key==="ArrowUp"){e.preventDefault();if(this.ariaActivedescendant===""){this.ariaActivedescendant=this.times[this.times.length-1].id.toString();this.focusOption(this.times.length-1)}else{const e=this.times.findIndex((e=>e.id.toString()===this.ariaActivedescendant));const s=e-1>=0?e-1:this.times.length-1;this.ariaActivedescendant=this.times[s].id.toString();this.focusOption(s)}}else if(e.key==="Escape"){this.showTimes=false;this.timeInput.focus()}}handleListboxKeydown(e){const s=this.times;const a=s.findIndex((e=>e.id.toString()===this.ariaActivedescendant));if(e.key==="ArrowDown"||e.key==="Tab"&&!e.shiftKey){e.preventDefault();const i=a+1<s.length?a+1:0;this.ariaActivedescendant=s[i].id.toString();this.focusOption(i)}else if(e.key==="ArrowUp"||e.key==="Tab"&&e.shiftKey){e.preventDefault();const i=a-1>=0?a-1:s.length-1;this.ariaActivedescendant=s[i].id.toString();this.focusOption(i)}else if(e.key==="Enter"){e.preventDefault();if(this.ariaActivedescendant){const i=s[a];this.handleTimeChange(e,i.value);this.showTimes=false;this.ariaActivedescendant="";this.timeInput.focus()}}else if(e.key==="Escape"){this.showTimes=false;this.timeInput.focus()}}scrollToViewWithinParent(e){const s=this.times[e];const a=this.el.shadowRoot?.getElementById(s.id.toString());const i=this.timeMenu;this.ariaActivedescendant=s.id.toString();const t=a.getBoundingClientRect();const r=i.getBoundingClientRect();if(t.top<r.top){i.scrollTop-=r.top-t.top}else if(t.bottom>r.bottom){i.scrollTop+=t.bottom-r.bottom}if(t.left<r.left){i.scrollLeft-=r.left-t.left}else if(t.right>r.right){i.scrollLeft+=t.right-r.right}}focusOption(e){const s=this.times[e];if(!s)return;const a=s.id.toString();const i=this.el.shadowRoot?.getElementById(a);if(i){i.focus();i.scrollIntoView({behavior:"smooth",block:"nearest"})}}render(){const e=this.language===o.en?false:true;return s(t,{key:"b5c0c24d84d44312d2223be037872dc9d03db3f8"},s("div",{key:"3c77e7501bb38ebe22f1a27d53577b05e2f1fb22",class:"time-picker",part:"time-picker"},s("input",{key:"8e636c248c38900aa4ad9c2bd8cc89c0a9c84424",type:"text",name:this.name,id:this.name,part:"time-input",class:{"time-input":true,error:!!this.err||this.hasError},ref:e=>this.timeInput=e,value:e?b(this.time):this.time,onClick:()=>{this.showTimes=!this.showTimes;this.shouldAutoScroll=true},"aria-haspopup":"listbox","aria-label":this.name,"aria-expanded":this.showTimes?"true":"false",placeholder:this.placeholder,onKeyDown:e=>this.handleComboboxKeyDown(e),onInput:e=>this.handleOnInput(e),onBlur:e=>this.handleTimeAutocomplete(e)}),this.err&&s("div",{key:"3e6b9ae63890b47148426919552172e39db0eaf4",class:"invalid-time-icon"}),this.showTimes&&s("div",{key:"8b32c32b03cca0b27e70435887a3c8150cf5c8b7",class:"times",part:"times",ref:e=>this.timeMenu=e},s("ul",{key:"f7a5d65fcb9b675f76448bcf4cf1540eb822f225",tabindex:"-1",role:"listbox","aria-label":this.name,"aria-activedescendant":this.ariaActivedescendant,onKeyDown:e=>this.handleListboxKeydown(e)},this.times.map((a=>s("li",{tabindex:"0",key:a.id,id:a.id.toString(),class:{focused:this.ariaActivedescendant===a.id.toString()},onClick:e=>{this.handleTimeChange(e,a.value);this.showTimes=false;this.timeInput.focus()},role:"option"},`${e?b(a.value):a.value}`))))),!this.showTimes&&this.err&&s("p",{key:"c194ce42271aa6b72a547b7c0f387fcc6c95daae",class:"error",id:"email-error"},this.err)))}get el(){return i(this)}static get watchers(){return{time:["timeChangedHandler"],minimumStartTime:["minimumStartTimeChangedHandler"],themeConfig:["themeConfigChangedHandler"]}}};v.style=w;export{m as globe_icon,x as nylas_date_component,v as nylas_time_window_picker};
2
- //# sourceMappingURL=p-db79a1ca.entry.js.map
1
+ import{r as e,h as s,c as a,a as i,H as t}from"./p-0EQQA0nE.js";import{A as r,d as l,L as o,i as n,a2 as c,a3 as h,N as f,a4 as d,a5 as y,O as b}from"./p-DfIu4gMZ.js";import{c as p}from"./p-DNbD_8zD.js";const u=".sc-globe-icon-h{display:flex}";const m=class{constructor(s){e(this,s);this.width="16";this.height="16"}render(){return s("svg",{key:"cb0e3380c9fec6c904edcec530eda0df7d82b5fe",xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height,viewBox:"0 0 16 16",fill:"none"},s("path",{key:"ba93585bd0da85eecebc7c2a3a8c7f705571b219",d:"M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14ZM8 3C8.37372 3 8.87543 3.35608 9.31258 4.31781C9.4073 4.52619 9.49448 4.75446 9.57265 5H6.42735C6.50552 4.75446 6.5927 4.52619 6.68742 4.31781C7.12457 3.35608 7.62628 3 8 3ZM5.77705 3.90401C5.62614 4.23601 5.49428 4.6038 5.38411 5H3.99963C4.52341 4.30269 5.22525 3.74677 6.03766 3.39978C5.94287 3.56117 5.85596 3.7304 5.77705 3.90401ZM5.16299 6C5.05694 6.6275 5 7.30146 5 8C5 8.69854 5.05694 9.3725 5.16299 10H3.41604C3.14845 9.38754 3 8.7111 3 8C3 7.2889 3.14845 6.61246 3.41604 6H5.16299ZM5.38411 11C5.49428 11.3962 5.62614 11.764 5.77705 12.096C5.85596 12.2696 5.94287 12.4388 6.03766 12.6002C5.22525 12.2532 4.52341 11.6973 3.99963 11H5.38411ZM6.42735 11H9.57265C9.49448 11.2455 9.4073 11.4738 9.31258 11.6822C8.87543 12.6439 8.37372 13 8 13C7.62628 13 7.12457 12.6439 6.68742 11.6822C6.5927 11.4738 6.50552 11.2455 6.42735 11ZM9.82134 10H6.17866C6.06438 9.3892 6 8.71396 6 8C6 7.28604 6.06438 6.6108 6.17866 6H9.82134C9.93562 6.6108 10 7.28604 10 8C10 8.71396 9.93562 9.3892 9.82134 10ZM10.6159 11H12.0004C11.4766 11.6973 10.7747 12.2532 9.96234 12.6002C10.0571 12.4388 10.144 12.2696 10.2229 12.096C10.3739 11.764 10.5057 11.3962 10.6159 11ZM12.584 10H10.837C10.9431 9.3725 11 8.69854 11 8C11 7.30146 10.9431 6.6275 10.837 6H12.584C12.8516 6.61246 13 7.2889 13 8C13 8.7111 12.8516 9.38754 12.584 10ZM9.96234 3.39978C10.7747 3.74677 11.4766 4.30269 12.0004 5H10.6159C10.5057 4.6038 10.3739 4.23601 10.2229 3.90401C10.144 3.7304 10.0571 3.56117 9.96234 3.39978Z",fill:"currentColor"}))}};m.style=u;const g=':host{display:block;height:auto;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--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-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff;width:100%}label{display:flex;color:var(--nylas-base-800, #293056);font-size:14px;font-style:normal;font-weight:400;line-height:150%;word-break:break-word;overflow-wrap:break-word;flex-direction:column;gap:4px;font-family:var(--nylas-font-family);font-size:16px;color:var(--nylas-base-800)}label.error{color:var(--nylas-error)}label span.required{color:var(--nylas-error);padding:0 0.25rem}label p{margin:0}label .error{color:var(--nylas-error);border-color:var(--nylas-error)}.input_wrapper{display:flex;align-items:center;gap:1rem}input[type=date]{display:flex;height:48px;padding-left:16px;align-items:center;gap:8px;align-self:stretch;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-300);background:var(--nylas-base-0);width:-webkit-fill-available;color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:400;line-height:150%;width:100%;width:-moz-available;width:-webkit-fill-available;font-family:var(--nylas-font-family);padding:0 8px;cursor:pointer}input[type=date]:focus{outline-color:var(--nylas-primary)}input[type=date].error{border-radius:var(--nylas-border-radius-2x);font-weight:600;border-color:var(--nylas-error);border-width:2px}input[type=date].error::placeholder{font-weight:400}input[type=date]::placeholder{color:var(--nylas-base-300)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(37%) sepia(51%) saturate(6324%) hue-rotate(215deg) brightness(94%) contrast(95%);cursor:pointer}input:read-only{background-color:var(--nylas-base-100);cursor:not-allowed}';const k={date:"YYYY-MM-DD"};const x=class{constructor(s){e(this,s);this.nylasFormInputChanged=a(this,"nylasFormInputChanged",7);this.nylasFormInputFocused=a(this,"nylasFormInputFocused",7);this.nylasFormInputBlurred=a(this,"nylasFormInputBlurred",7);this.name="input";this.label="";this.placeholder=k["date"];this.required=false;this.readOnly=false;this.autoFocus=false;this.maxLength=255;this.patternError="";this.requiredError="";this.errorMessage="";this.hasError=false;this.error="";this.isDateValid=true}handleDefaultValueChange(e){this.value=r(e);if(this.value){this.validatePattern(this.value,true)}}themeConfigChangedHandler(e,s){if(e===s)return;this.applyThemeConfig(e)}applyThemeConfig(e){if(e){for(const[s,a]of Object.entries(e)){this.el.style.setProperty(`${s}`,a)}}}connectedCallback(){queueMicrotask((()=>{if(this.themeConfig){this.applyThemeConfig(this.themeConfig);this.el.setAttribute("data-themed","")}}))}componentDidLoad(){this.value=r(this.defaultValue||"");if(this.value){this.validatePattern(this.value,true)}}handleBookingFormSubmitted(e){this.validatePattern(this.value);if(this.error){e.preventDefault()}}async handleFormSubmitted(e){this.validatePattern(this.value);if(this.error){e.preventDefault()}}handleInput(e){this.error="";const s=e.target;this.value=r(s.value);this.isDateValid=s.validity.valid;this.nylasFormInputChanged.emit({value:this.value,name:this.name,label:this.label,error:this.error,type:"date"})}handleBlur(){this.nylasFormInputBlurred.emit({value:this.value,name:this.name})}handleFocus(){this.nylasFormInputFocused.emit({value:this.value,name:this.name})}validatePattern(e,s=false){this.error="";if(!s&&(this.required&&!this.isDateValid||this.minDate&&new Date(this.minDate)>new Date(e))){this.error=this.errorMessage||"Please enter a valid date";this.nylasFormInputChanged.emit({value:this.value,name:this.name,label:this.label,error:this.error,type:"date"});return}if(this.required&&!e){this.error=this.requiredError||"This field is required.";return}if(!this.pattern||!e&&!this.required)return;if(this.pattern.test(e)){this.error=""}else{this.error=this.patternError||"Invalid format."}}render(){return s("label",{key:"2b85ec5e76a7d585403b355b2e143ced48e98b81",part:"ic__label",class:{error:!!this.error||this.hasError}},this.label&&s("p",{key:"3a7dce7c85961bb6695beef195d10f03eb8d8d33"},s("span",{key:"0e4ddb991c5b5e9684f36eaac79c1961a33bf346",class:"label"},this.label),this.required&&s("span",{key:"9c4ff17b839a72f9a8b6d0228773f820be85f918",class:"required"},"*")),s("div",{key:"ee9732ec821f68192191b368e3cd62a3f0f9d3cd",part:"ic__input_wrapper",class:"input_wrapper"},s("input",{key:"56ec6ac542c470e23395b8f098932fdc4a0e2d6f",type:"date",min:this.minDate,value:this.value,name:this.name,part:"ic__date",title:this.readOnly?"read-only field":undefined,readOnly:this.readOnly,autoFocus:this.autoFocus,maxLength:this.maxLength,placeholder:this.placeholder,class:{error:!!this.error||this.hasError},onInput:e=>this.handleInput(e),onFocus:()=>this.handleFocus(),onBlur:()=>this.handleBlur()}),s("slot",{key:"b3158bc42f1586392ebc9304df23973e5bef5a7a",name:"additional-input"})),this.error&&s("span",{key:"abc73483451f6b009b6e830cdbc0a737728252c7",class:"error help-text"},this.error))}get el(){return i(this)}static get watchers(){return{defaultValue:["handleDefaultValueChange"],themeConfig:["themeConfigChangedHandler"]}}};x.style=g;const w=':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--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-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.time-picker{display:inline-block;width:150px;font-family:var(--nylas-font-family);position:relative}@media screen and (max-width: 768px){.time-picker{width:auto}}.time-picker input{width:150px;height:48px;text-align:center;font-size:16px;font-family:inherit;color:var(--nylas-base-900);cursor:pointer;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.time-picker input{width:88px}}@media screen and (max-width: 504px){.time-picker input{width:68px;font-size:15px}}.time-picker input.focus{background:var(--nylas-base-0)}.time-picker input:hover,.time-picker input:active{border:1px solid var(--nylas-primary)}.time-picker input:active{outline:2px solid var(--nylas-primary)}.time-picker input span.open{transform:rotate(90deg)}.time-picker input span.closed{transform:rotate(270deg)}.time-picker input.error{border:1px solid var(--nylas-error)}.time-picker p.error{color:var(--nylas-error);font-size:0.875rem;margin:0}.times{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);width:100%;max-height:336px;overflow:auto;border:1px solid #ddd;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)}.times ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.times ul li{padding:16px, 12px, 16px, 12px;color:var(--nylas-base-900);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:center;cursor:pointer}.times ul li.focused{background-color:var(--nylas-base-100)}.times ul li:hover,.times ul li:focus{background-color:var(--nylas-base-100)}.times ul li label{display:flex;align-items:center;gap:0.5rem}.times ul li label input{margin:0}';l.extend(p);const v=class{constructor(s){e(this,s);this.timeChange=a(this,"timeChange",7);this.timeWindowFormError=a(this,"timeWindowFormError",7);this.minimumStartTime=null;this.placeholder="hh:mmam/pm";this.hasError=false;this.language=o.en;this.err="";this.showTimes=false;this.ariaActivedescendant="";this.times=this.generateTimes();this.shouldAutoScroll=false}handleOutsideClick(e){const s=e.composedPath();const a=s.includes(this.el);if(!a&&this.showTimes){this.showTimes=false}}timeChangedHandler(){this.validateTimeAgainstMinimum()}minimumStartTimeChangedHandler(){this.validateTimeAgainstMinimum()}themeConfigChangedHandler(e,s){this.applyThemeConfig(e)}applyThemeConfig(e){if(e){for(const[s,a]of Object.entries(e)){this.el.style.setProperty(`${s}`,a)}}}validateTimeAgainstMinimum(){if(this.minimumStartTime){const e=l(this.minimumStartTime,"hh:mma");const s=l(this.time,"hh:mma");this.times=this.generateTimes();const a=n.t("nylasTimeWindowPicker.errors.invalid");if(s.isBefore(e)){this.err=a;this.timeWindowFormError.emit({key:this.el.id,message:a})}else{this.err="";this.timeWindowFormError.emit({key:this.el.id,message:""})}}else{this.err="";this.timeWindowFormError.emit({key:this.el.id,message:""})}}connectedCallback(){queueMicrotask((()=>{if(this.themeConfig){this.applyThemeConfig(this.themeConfig);this.el.setAttribute("data-themed","")}}))}componentWillLoad(){}componentDidLoad(){this.validateTimeAgainstMinimum()}componentDidRender(){if(this.showTimes&&this.shouldAutoScroll){const e=c(this.time);const s=this.times.findIndex((s=>s.value===e));if(s>-1){this.shouldAutoScroll=false;this.scrollToViewWithinParent(s)}return}}handleTimeChange(e,s){const a=s.split(":");if(a[0]==="00"&&a[1].slice(-2)=="pm"){const e=n.t("nylasTimeWindowPicker.errors.invalid");this.err=e;this.timeWindowFormError.emit({key:this.el.id,message:e})}if(!h(s)){const e=n.t("nylasTimeWindowPicker.errors.invalid");this.err=e;this.timeWindowFormError.emit({key:this.el.id,message:e})}else{this.err="";this.timeWindowFormError.emit({key:this.el.id,message:""})}if(this.err){return}this.timeChange.emit({key:this.el.id,value:s})}handleTimeAutocomplete(e){const s=e.target?.value;const a=this.language!==o.en?f(s):s;const i=n.t("nylasTimeWindowPicker.errors.invalid");if(!h(a)){this.err=i;this.timeWindowFormError.emit({key:this.el.id,message:i});return}if(a===""){const e=d().format("hh:mma");this.timeChange.emit({key:this.el.id,value:e});return}if(!y(a)){const e=c(a);this.timeChange.emit({key:this.el.id,value:e});return}this.timeChange.emit({key:this.el.id,value:a})}handleOnInput(e){const s=e.target?.value;if(!h(s)){return}if(s===""){const e=d().format("hh:mma");const s=this.times.findIndex((s=>s.value===e));if(s>-1){this.scrollToViewWithinParent(s)}return}if(!y(s)){const e=c(s);const a=this.times.findIndex((s=>s.value===e));if(a>-1){this.scrollToViewWithinParent(a)}return}}generateTimes(){const e=[];let s=l().set("hour",0).set("minute",0).set("second",0);if(this.minimumStartTime){s=l(this.minimumStartTime,"hh:mma")}const a=s.endOf("day").diff(s,"minutes");const i=Math.round(a/15);for(let a=0;a<i+1;a++){const t=s.add(a*15,"minute");if(a==i&&t.format("hh:mma").includes("am")){break}e.push({id:a,value:t.format("hh:mma")})}return e}handleComboboxKeyDown(e){if(e.key==="ArrowDown"){e.preventDefault();if(!this.showTimes){this.showTimes=true;this.shouldAutoScroll=true;return}if(this.ariaActivedescendant===""){this.ariaActivedescendant=this.times[0].id.toString();this.focusOption(0)}else{const e=this.times.findIndex((e=>e.id.toString()===this.ariaActivedescendant));const s=e+1<this.times.length?e+1:0;this.ariaActivedescendant=this.times[s].id.toString();this.focusOption(s)}}else if(e.key==="ArrowUp"){e.preventDefault();if(this.ariaActivedescendant===""){this.ariaActivedescendant=this.times[this.times.length-1].id.toString();this.focusOption(this.times.length-1)}else{const e=this.times.findIndex((e=>e.id.toString()===this.ariaActivedescendant));const s=e-1>=0?e-1:this.times.length-1;this.ariaActivedescendant=this.times[s].id.toString();this.focusOption(s)}}else if(e.key==="Escape"){this.showTimes=false;this.timeInput.focus()}}handleListboxKeydown(e){const s=this.times;const a=s.findIndex((e=>e.id.toString()===this.ariaActivedescendant));if(e.key==="ArrowDown"||e.key==="Tab"&&!e.shiftKey){e.preventDefault();const i=a+1<s.length?a+1:0;this.ariaActivedescendant=s[i].id.toString();this.focusOption(i)}else if(e.key==="ArrowUp"||e.key==="Tab"&&e.shiftKey){e.preventDefault();const i=a-1>=0?a-1:s.length-1;this.ariaActivedescendant=s[i].id.toString();this.focusOption(i)}else if(e.key==="Enter"){e.preventDefault();if(this.ariaActivedescendant){const i=s[a];this.handleTimeChange(e,i.value);this.showTimes=false;this.ariaActivedescendant="";this.timeInput.focus()}}else if(e.key==="Escape"){this.showTimes=false;this.timeInput.focus()}}scrollToViewWithinParent(e){const s=this.times[e];const a=this.el.shadowRoot?.getElementById(s.id.toString());const i=this.timeMenu;this.ariaActivedescendant=s.id.toString();const t=a.getBoundingClientRect();const r=i.getBoundingClientRect();if(t.top<r.top){i.scrollTop-=r.top-t.top}else if(t.bottom>r.bottom){i.scrollTop+=t.bottom-r.bottom}if(t.left<r.left){i.scrollLeft-=r.left-t.left}else if(t.right>r.right){i.scrollLeft+=t.right-r.right}}focusOption(e){const s=this.times[e];if(!s)return;const a=s.id.toString();const i=this.el.shadowRoot?.getElementById(a);if(i){i.focus();i.scrollIntoView({behavior:"smooth",block:"nearest"})}}render(){const e=this.language===o.en?false:true;return s(t,{key:"b5c0c24d84d44312d2223be037872dc9d03db3f8"},s("div",{key:"3c77e7501bb38ebe22f1a27d53577b05e2f1fb22",class:"time-picker",part:"time-picker"},s("input",{key:"8e636c248c38900aa4ad9c2bd8cc89c0a9c84424",type:"text",name:this.name,id:this.name,part:"time-input",class:{"time-input":true,error:!!this.err||this.hasError},ref:e=>this.timeInput=e,value:e?b(this.time):this.time,onClick:()=>{this.showTimes=!this.showTimes;this.shouldAutoScroll=true},"aria-haspopup":"listbox","aria-label":this.name,"aria-expanded":this.showTimes?"true":"false",placeholder:this.placeholder,onKeyDown:e=>this.handleComboboxKeyDown(e),onInput:e=>this.handleOnInput(e),onBlur:e=>this.handleTimeAutocomplete(e)}),this.err&&s("div",{key:"3e6b9ae63890b47148426919552172e39db0eaf4",class:"invalid-time-icon"}),this.showTimes&&s("div",{key:"8b32c32b03cca0b27e70435887a3c8150cf5c8b7",class:"times",part:"times",ref:e=>this.timeMenu=e},s("ul",{key:"f7a5d65fcb9b675f76448bcf4cf1540eb822f225",tabindex:"-1",role:"listbox","aria-label":this.name,"aria-activedescendant":this.ariaActivedescendant,onKeyDown:e=>this.handleListboxKeydown(e)},this.times.map((a=>s("li",{tabindex:"0",key:a.id,id:a.id.toString(),class:{focused:this.ariaActivedescendant===a.id.toString()},onClick:e=>{this.handleTimeChange(e,a.value);this.showTimes=false;this.timeInput.focus()},role:"option"},`${e?b(a.value):a.value}`))))),!this.showTimes&&this.err&&s("p",{key:"c194ce42271aa6b72a547b7c0f387fcc6c95daae",class:"error",id:"email-error"},this.err)))}get el(){return i(this)}static get watchers(){return{time:["timeChangedHandler"],minimumStartTime:["minimumStartTimeChangedHandler"],themeConfig:["themeConfigChangedHandler"]}}};v.style=w;export{m as globe_icon,x as nylas_date_component,v as nylas_time_window_picker};
2
+ //# sourceMappingURL=p-a5bb5b9d.entry.js.map