@nylas/web-elements 0.0.0-canary-20241008193213 → 0.0.0-canary-20241015194719

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 (813) hide show
  1. package/dist/cdn/add-circle/add-circle.es.js +1 -1
  2. package/dist/cdn/add-circle-icon/add-circle-icon.es.js +1 -1
  3. package/dist/cdn/archive-icon/archive-icon.es.js +127 -127
  4. package/dist/cdn/arrow-icon/arrow-icon.es.js +248 -248
  5. package/dist/cdn/bold-icon/bold-icon.es.js +1 -1
  6. package/dist/cdn/button-component/button-component.es.js +2 -2
  7. package/dist/cdn/calendar/calendar.es.js +77 -77
  8. package/dist/cdn/calendar-agenda/calendar-agenda.es.js +1 -1
  9. package/dist/cdn/calendar-agenda-fill/calendar-agenda-fill.es.js +1 -1
  10. package/dist/cdn/calendar-agenda-fill-icon/calendar-agenda-fill-icon.es.js +1 -1
  11. package/dist/cdn/calendar-agenda-icon/calendar-agenda-icon.es.js +1 -1
  12. package/dist/cdn/calendar-cancel/calendar-cancel.es.js +1 -1
  13. package/dist/cdn/calendar-cancel-icon/calendar-cancel-icon.es.js +1 -1
  14. package/dist/cdn/calendar-check/calendar-check.es.js +139 -139
  15. package/dist/cdn/calendar-check-icon/calendar-check-icon.es.js +14 -14
  16. package/dist/cdn/calendar-icon/calendar-icon.es.js +24 -24
  17. package/dist/cdn/calendar-info/calendar-info.es.js +1 -1
  18. package/dist/cdn/calendar-info-icon/calendar-info-icon.es.js +1 -1
  19. package/dist/cdn/calendar-patterns/calendar-patterns.es.js +1 -1
  20. package/dist/cdn/calendar-patterns-icon/calendar-patterns-icon.es.js +1 -1
  21. package/dist/cdn/checkbox-component/checkbox-component.es.js +1 -1
  22. package/dist/cdn/checkmark/checkmark.es.js +86 -86
  23. package/dist/cdn/checkmark-circle/checkmark-circle.es.js +99 -99
  24. package/dist/cdn/checkmark-circle-icon/checkmark-circle-icon.es.js +14 -14
  25. package/dist/cdn/checkmark-icon/checkmark-icon.es.js +1 -1
  26. package/dist/cdn/chevron/chevron.es.js +16 -16
  27. package/dist/cdn/chevron-icon/chevron-icon.es.js +14 -14
  28. package/dist/cdn/clock/clock.es.js +16 -16
  29. package/dist/cdn/clock-icon/clock-icon.es.js +14 -14
  30. package/dist/cdn/close/close.es.js +1 -1
  31. package/dist/cdn/close-icon/close-icon.es.js +54 -54
  32. package/dist/cdn/constants/constants.es.js +3 -3
  33. package/dist/cdn/copy/copy.es.js +239 -239
  34. package/dist/cdn/copy-icon/copy-icon.es.js +271 -271
  35. package/dist/cdn/delete/delete.es.js +1 -1
  36. package/dist/cdn/delete-icon/delete-icon.es.js +1 -1
  37. package/dist/cdn/document-refresh-icon/document-refresh-icon.es.js +1 -1
  38. package/dist/cdn/dragable/dragable.es.js +54 -54
  39. package/dist/cdn/dragable-icon/dragable-icon.es.js +1 -1
  40. package/dist/cdn/edit/edit.es.js +1 -1
  41. package/dist/cdn/edit-icon/edit-icon.es.js +1 -1
  42. package/dist/cdn/envelope/envelope.es.js +25 -25
  43. package/dist/cdn/envelope-fill/envelope-fill.es.js +16 -16
  44. package/dist/cdn/envelope-fill-icon/envelope-fill-icon.es.js +97 -97
  45. package/dist/cdn/envelope-icon/envelope-icon.es.js +24 -24
  46. package/dist/cdn/eye/eye.es.js +1 -1
  47. package/dist/cdn/eye-icon/eye-icon.es.js +1 -1
  48. package/dist/cdn/feedback-icon/feedback-icon.es.js +86 -86
  49. package/dist/cdn/flow/flow.es.js +1 -1
  50. package/dist/cdn/flow-icon/flow-icon.es.js +1 -1
  51. package/dist/cdn/folder-icon/folder-icon.es.js +14 -14
  52. package/dist/cdn/forward-icon/forward-icon.es.js +240 -240
  53. package/dist/cdn/globe/globe.es.js +1 -1
  54. package/dist/cdn/globe-icon/globe-icon.es.js +1 -1
  55. package/dist/cdn/google-logo/google-logo.es.js +1 -1
  56. package/dist/cdn/google-logo-icon/google-logo-icon.es.js +1 -1
  57. package/dist/cdn/google-meet/google-meet.es.js +15 -15
  58. package/dist/cdn/google-meet-icon/google-meet-icon.es.js +1 -1
  59. package/dist/cdn/inbox-icon/inbox-icon.es.js +1 -1
  60. package/dist/cdn/info/info.es.js +239 -239
  61. package/dist/cdn/info-icon/info-icon.es.js +240 -240
  62. package/dist/cdn/input-color-picker/input-color-picker.es.js +3 -3
  63. package/dist/cdn/input-component/input-component.es.js +1 -1
  64. package/dist/cdn/input-dropdown/input-dropdown.es.js +1 -1
  65. package/dist/cdn/input-image-url/input-image-url.es.js +2 -2
  66. package/dist/cdn/italic-icon/italic-icon.es.js +86 -86
  67. package/dist/cdn/loading/loading.es.js +270 -270
  68. package/dist/cdn/loading-icon/loading-icon.es.js +271 -271
  69. package/dist/cdn/location/location.es.js +100 -100
  70. package/dist/cdn/location-icon/location-icon.es.js +19 -19
  71. package/dist/cdn/location-off/location-off.es.js +86 -86
  72. package/dist/cdn/location-off-icon/location-off-icon.es.js +1 -1
  73. package/dist/cdn/microsof-teams/microsof-teams.es.js +96 -96
  74. package/dist/cdn/microsoft-logo/microsoft-logo.es.js +1 -1
  75. package/dist/cdn/microsoft-logo-icon/microsoft-logo-icon.es.js +1 -1
  76. package/dist/cdn/microsoft-teams-icon/microsoft-teams-icon.es.js +97 -97
  77. package/dist/cdn/multi-select-dropdown/multi-select-dropdown.es.js +3 -3
  78. package/dist/cdn/nylas-additional-participants/nylas-additional-participants.es.js +12 -12
  79. package/dist/cdn/nylas-availability-picker/nylas-availability-picker.es.js +15 -15
  80. package/dist/cdn/nylas-booked-event-card/nylas-booked-event-card.es.js +10 -10
  81. package/dist/cdn/nylas-booking-calendar-picker/nylas-booking-calendar-picker.es.js +5 -5
  82. package/dist/cdn/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.es.js +7 -7
  83. package/dist/cdn/nylas-booking-confirmation-type/nylas-booking-confirmation-type.es.js +733 -734
  84. package/dist/cdn/nylas-booking-form/nylas-booking-form.es.js +154 -151
  85. package/dist/cdn/nylas-booking-form-config/nylas-booking-form-config.es.js +9 -9
  86. package/dist/cdn/nylas-buffer-time/nylas-buffer-time.es.js +5 -5
  87. package/dist/cdn/nylas-calendar-picker/nylas-calendar-picker.es.js +7 -7
  88. package/dist/cdn/nylas-cancel-booking-form/nylas-cancel-booking-form.es.js +10 -10
  89. package/dist/cdn/nylas-cancellation-policy/nylas-cancellation-policy.es.js +3 -3
  90. package/dist/cdn/nylas-cancelled-event-card/nylas-cancelled-event-card.es.js +7 -7
  91. package/dist/cdn/nylas-confirmation-email/nylas-confirmation-email.es.js +15 -15
  92. package/dist/cdn/nylas-confirmed-event-card/nylas-confirmed-event-card.es.js +723 -723
  93. package/dist/cdn/nylas-connected-calendars/nylas-connected-calendars.es.js +179 -179
  94. package/dist/cdn/nylas-custom-booking-flow/nylas-custom-booking-flow.es.js +2 -2
  95. package/dist/cdn/nylas-custom-event-slug/nylas-custom-event-slug.es.js +7 -7
  96. package/dist/cdn/nylas-customize-booking-settings/nylas-customize-booking-settings.es.js +147 -147
  97. package/dist/cdn/nylas-date-picker/nylas-date-picker.es.js +7 -7
  98. package/dist/cdn/nylas-editor-tabs/nylas-editor-tabs.es.js +6323 -5910
  99. package/dist/cdn/nylas-event-description/nylas-event-description.es.js +3 -3
  100. package/dist/cdn/nylas-event-duration/nylas-event-duration.es.js +5 -5
  101. package/dist/cdn/nylas-event-info/nylas-event-info.es.js +2 -2
  102. package/dist/cdn/nylas-event-limits/nylas-event-limits.es.js +2 -2
  103. package/dist/cdn/nylas-event-location/nylas-event-location.es.js +2558 -2533
  104. package/dist/cdn/nylas-event-title/nylas-event-title.es.js +10 -5
  105. package/dist/cdn/nylas-feedback-form/nylas-feedback-form.es.js +8 -8
  106. package/dist/cdn/nylas-form-card/nylas-form-card.es.js +1 -1
  107. package/dist/cdn/nylas-if-state/nylas-if-state.es.js +1 -1
  108. package/dist/cdn/nylas-limit-future-bookings/nylas-limit-future-bookings.es.js +8 -8
  109. package/dist/cdn/nylas-list-configurations/nylas-list-configurations.es.js +21 -17
  110. package/dist/cdn/nylas-locale-switch/nylas-locale-switch.es.js +1168 -1168
  111. package/dist/cdn/nylas-login/nylas-login.es.js +1 -1
  112. package/dist/cdn/nylas-logo/nylas-logo.es.js +125 -125
  113. package/dist/cdn/nylas-min-booking-notice/nylas-min-booking-notice.es.js +10 -10
  114. package/dist/cdn/nylas-min-cancellation-notice/nylas-min-cancellation-notice.es.js +10 -10
  115. package/dist/cdn/nylas-notification/nylas-notification.es.js +3 -3
  116. package/dist/cdn/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.es.js +6 -6
  117. package/dist/cdn/nylas-page-name/nylas-page-name.es.js +7 -7
  118. package/dist/cdn/nylas-page-styling/nylas-page-styling.es.js +4 -4
  119. package/dist/cdn/nylas-participant-booking-calendars/nylas-participant-booking-calendars.es.js +8 -8
  120. package/dist/cdn/nylas-participants-custom-availability/nylas-participants-custom-availability.es.js +176 -176
  121. package/dist/cdn/nylas-provider/nylas-provider.es.js +652 -644
  122. package/dist/cdn/nylas-reminder-emails/nylas-reminder-emails.es.js +17 -17
  123. package/dist/cdn/nylas-reminder-time/nylas-reminder-time.es.js +5 -5
  124. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +1364 -937
  125. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +1077 -1053
  126. package/dist/cdn/nylas-scheduling-method/nylas-scheduling-method.es.js +10 -12
  127. package/dist/cdn/nylas-selected-event-card/nylas-selected-event-card.es.js +4 -4
  128. package/dist/cdn/nylas-time-window-picker/nylas-time-window-picker.es.js +1 -1
  129. package/dist/cdn/nylas-timeslot-interval/nylas-timeslot-interval.es.js +147 -149
  130. package/dist/cdn/nylas-timeslot-picker/nylas-timeslot-picker.es.js +6 -6
  131. package/dist/cdn/paintbrush/paintbrush.es.js +239 -239
  132. package/dist/cdn/paintbrush-fill/paintbrush-fill.es.js +1 -1
  133. package/dist/cdn/paintbrush-fill-icon/paintbrush-fill-icon.es.js +1 -1
  134. package/dist/cdn/paintbrush-icon/paintbrush-icon.es.js +240 -240
  135. package/dist/cdn/people/people.es.js +1 -1
  136. package/dist/cdn/people-icon/people-icon.es.js +1 -1
  137. package/dist/cdn/person/person.es.js +1 -1
  138. package/dist/cdn/person-clipboard/person-clipboard.es.js +1 -1
  139. package/dist/cdn/person-clipboard-icon/person-clipboard-icon.es.js +1 -1
  140. package/dist/cdn/person-icon/person-icon.es.js +1 -1
  141. package/dist/cdn/play-icon/play-icon.es.js +248 -248
  142. package/dist/cdn/plus/plus.es.js +16 -16
  143. package/dist/cdn/plus-icon/plus-icon.es.js +14 -14
  144. package/dist/cdn/radio-button-group/radio-button-group.es.js +1 -1
  145. package/dist/cdn/refresh-icon/refresh-icon.es.js +14 -14
  146. package/dist/cdn/reply-all-icon/reply-all-icon.es.js +14 -14
  147. package/dist/cdn/reply-icon/reply-icon.es.js +14 -14
  148. package/dist/cdn/scheduler-store/scheduler-store.es.js +654 -646
  149. package/dist/cdn/search/search.es.js +1 -1
  150. package/dist/cdn/search-icon/search-icon.es.js +86 -86
  151. package/dist/cdn/select-dropdown/select-dropdown.es.js +3 -3
  152. package/dist/cdn/sent-icon/sent-icon.es.js +1 -1
  153. package/dist/cdn/spam-icon/spam-icon.es.js +86 -86
  154. package/dist/cdn/star-icon/star-icon.es.js +1 -1
  155. package/dist/cdn/stop-icon/stop-icon.es.js +1 -1
  156. package/dist/cdn/textarea-component/textarea-component.es.js +3 -3
  157. package/dist/cdn/time-period-selector/time-period-selector.es.js +230 -230
  158. package/dist/cdn/toggle-switch/toggle-switch.es.js +1 -1
  159. package/dist/cdn/toolitp-component/toolitp-component.es.js +23 -23
  160. package/dist/cdn/tooltip-component/tooltip-component.es.js +26 -26
  161. package/dist/cdn/translate/translate.es.js +246 -246
  162. package/dist/cdn/translate-icon/translate-icon.es.js +247 -247
  163. package/dist/cdn/trash/trash.es.js +1 -1
  164. package/dist/cdn/trash-fill-icon/trash-fill-icon.es.js +14 -14
  165. package/dist/cdn/trash-icon/trash-icon.es.js +1 -1
  166. package/dist/cdn/underline-icon/underline-icon.es.js +1 -1
  167. package/dist/cdn/warning/warning.es.js +247 -247
  168. package/dist/cdn/warning-icon/warning-icon.es.js +248 -248
  169. package/dist/cdn/zoom/zoom.es.js +1 -1
  170. package/dist/cdn/zoom-icon/zoom-icon.es.js +1 -1
  171. package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
  172. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  173. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  174. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  175. package/dist/cjs/button-component_2.cjs.entry.js +2 -2
  176. package/dist/cjs/{calendar-agenda-fill-icon_51.cjs.entry.js → calendar-agenda-fill-icon_54.cjs.entry.js} +703 -304
  177. package/dist/cjs/calendar-agenda-fill-icon_54.cjs.entry.js.map +1 -0
  178. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  179. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
  180. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  181. package/dist/cjs/checkbox-component_2.cjs.entry.js +2 -2
  182. package/dist/cjs/chevron-icon_3.cjs.entry.js +3 -3
  183. package/dist/cjs/clock-icon_4.cjs.entry.js +4 -4
  184. package/dist/cjs/copy-icon.cjs.entry.js +1 -1
  185. package/dist/cjs/delete-icon.cjs.entry.js +1 -1
  186. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  187. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  188. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  189. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  190. package/dist/cjs/google-logo-icon_4.cjs.entry.js +34 -23
  191. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
  192. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  193. package/dist/cjs/index-7af03e3f.js +2 -10
  194. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  195. package/dist/cjs/input-color-picker.cjs.entry.js +2 -2
  196. package/dist/cjs/input-component.cjs.entry.js +1 -1
  197. package/dist/cjs/input-dropdown.cjs.entry.js +1 -1
  198. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  199. package/dist/cjs/loader.cjs.js +1 -1
  200. package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
  201. package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js +33 -32
  202. package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js.map +1 -1
  203. package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
  204. package/dist/cjs/nylas-if-state.cjs.entry.js +1 -1
  205. package/dist/cjs/nylas-login.cjs.entry.js +1 -1
  206. package/dist/cjs/nylas-provider.cjs.entry.js +2 -2
  207. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  208. package/dist/cjs/nylas-scheduling.cjs.entry.js +22 -9
  209. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  210. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
  211. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  212. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  213. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  214. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  215. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  216. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  217. package/dist/cjs/{scheduler-store-4489a68b.js → scheduler-store-e3ddffc1.js} +13 -4
  218. package/dist/cjs/scheduler-store-e3ddffc1.js.map +1 -0
  219. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  220. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  221. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  222. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  223. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  224. package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
  225. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  226. package/dist/cjs/trash-fill-icon.cjs.entry.js +1 -1
  227. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  228. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  229. package/dist/collection/common/icons/add-circle.js +1 -1
  230. package/dist/collection/common/icons/archive.js +1 -1
  231. package/dist/collection/common/icons/arrow.js +1 -1
  232. package/dist/collection/common/icons/bold.js +1 -1
  233. package/dist/collection/common/icons/calendar-agenda-fill.js +1 -1
  234. package/dist/collection/common/icons/calendar-agenda.js +1 -1
  235. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  236. package/dist/collection/common/icons/calendar-check.js +1 -1
  237. package/dist/collection/common/icons/calendar-info.js +1 -1
  238. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  239. package/dist/collection/common/icons/calendar.js +1 -1
  240. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  241. package/dist/collection/common/icons/checkmark.js +1 -1
  242. package/dist/collection/common/icons/chevron.js +1 -1
  243. package/dist/collection/common/icons/clock.js +1 -1
  244. package/dist/collection/common/icons/close.js +1 -1
  245. package/dist/collection/common/icons/copy.js +1 -1
  246. package/dist/collection/common/icons/delete.js +1 -1
  247. package/dist/collection/common/icons/document-refresh.js +1 -1
  248. package/dist/collection/common/icons/dragable.js +1 -1
  249. package/dist/collection/common/icons/edit.js +1 -1
  250. package/dist/collection/common/icons/envelope-fill.js +1 -1
  251. package/dist/collection/common/icons/envelope.js +1 -1
  252. package/dist/collection/common/icons/eye.js +1 -1
  253. package/dist/collection/common/icons/feedback-icon.js +1 -1
  254. package/dist/collection/common/icons/flow.js +1 -1
  255. package/dist/collection/common/icons/folder.js +1 -1
  256. package/dist/collection/common/icons/forward.js +1 -1
  257. package/dist/collection/common/icons/globe.js +1 -1
  258. package/dist/collection/common/icons/google-logo.js +1 -1
  259. package/dist/collection/common/icons/google-meet.js +1 -1
  260. package/dist/collection/common/icons/inbox.js +1 -1
  261. package/dist/collection/common/icons/info.js +1 -1
  262. package/dist/collection/common/icons/italic.js +1 -1
  263. package/dist/collection/common/icons/loading.js +1 -1
  264. package/dist/collection/common/icons/location-off.js +1 -1
  265. package/dist/collection/common/icons/location.js +1 -1
  266. package/dist/collection/common/icons/microsof-teams.js +1 -1
  267. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  268. package/dist/collection/common/icons/nylas-logo.js +1 -1
  269. package/dist/collection/common/icons/paintbrush-fill.js +1 -1
  270. package/dist/collection/common/icons/paintbrush.js +1 -1
  271. package/dist/collection/common/icons/people.js +1 -1
  272. package/dist/collection/common/icons/person-clipboard.js +1 -1
  273. package/dist/collection/common/icons/person.js +1 -1
  274. package/dist/collection/common/icons/play.js +1 -1
  275. package/dist/collection/common/icons/plus.js +1 -1
  276. package/dist/collection/common/icons/refresh.js +1 -1
  277. package/dist/collection/common/icons/reply-all.js +1 -1
  278. package/dist/collection/common/icons/reply.js +1 -1
  279. package/dist/collection/common/icons/search.js +1 -1
  280. package/dist/collection/common/icons/sent.js +1 -1
  281. package/dist/collection/common/icons/spam.js +1 -1
  282. package/dist/collection/common/icons/star.js +1 -1
  283. package/dist/collection/common/icons/stop.js +1 -1
  284. package/dist/collection/common/icons/translate.js +1 -1
  285. package/dist/collection/common/icons/trash-fill.js +1 -1
  286. package/dist/collection/common/icons/trash.js +1 -1
  287. package/dist/collection/common/icons/underline.js +1 -1
  288. package/dist/collection/common/icons/warning.js +1 -1
  289. package/dist/collection/common/icons/zoom.js +1 -1
  290. package/dist/collection/common/types.js.map +1 -1
  291. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  292. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  293. package/dist/collection/components/design-system/input-color-picker/input-color-picker.js +2 -2
  294. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  295. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +1 -1
  296. package/dist/collection/components/design-system/input-image-url/input-image-url.js +1 -1
  297. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +1 -1
  298. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  299. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +1 -1
  300. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  301. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  302. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  303. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  304. package/dist/collection/components/nylas-if-state/nylas-if-state.js +1 -1
  305. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  306. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  307. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +23 -0
  308. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js +66 -51
  309. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
  310. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.css +23 -0
  311. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +35 -24
  312. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
  313. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.css +23 -0
  314. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +38 -29
  315. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js.map +1 -1
  316. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.css +23 -0
  317. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +26 -23
  318. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js.map +1 -1
  319. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js +26 -23
  320. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js.map +1 -1
  321. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.css +23 -0
  322. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +26 -20
  323. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
  324. package/dist/collection/components/scheduler/nylas-feedback-form/nylas-feedback-form.js +2 -2
  325. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.css +23 -0
  326. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  327. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js +29 -23
  328. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js.map +1 -1
  329. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +24 -10
  330. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
  331. package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js +143 -0
  332. package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js.map +1 -1
  333. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.css +23 -0
  334. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +3 -3
  335. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js.map +1 -1
  336. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +23 -0
  337. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +48 -42
  338. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -1
  339. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +56 -41
  340. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  341. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +44 -28
  342. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  343. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +25 -10
  344. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
  345. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js +21 -9
  346. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js.map +1 -1
  347. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js +19 -10
  348. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js.map +1 -1
  349. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +6 -3
  350. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js.map +1 -1
  351. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js +10 -4
  352. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js.map +1 -1
  353. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +45 -33
  354. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
  355. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.css +2 -1
  356. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +16 -7
  357. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js.map +1 -1
  358. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +8 -4
  359. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js.map +1 -1
  360. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +26 -10
  361. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js.map +1 -1
  362. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  363. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js.map +1 -1
  364. package/dist/collection/components/scheduler-editor/nylas-custom-event-slug/nylas-custom-event-slug.js +1 -0
  365. package/dist/collection/components/scheduler-editor/nylas-custom-event-slug/nylas-custom-event-slug.js.map +1 -1
  366. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +17 -11
  367. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js.map +1 -1
  368. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +62 -28
  369. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  370. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +1 -1
  371. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
  372. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/test/nylas-editor-tabs.spec.js +171 -1
  373. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/test/nylas-editor-tabs.spec.js.map +1 -1
  374. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +16 -7
  375. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
  376. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +16 -7
  377. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js.map +1 -1
  378. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  379. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  380. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +74 -29
  381. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js.map +1 -1
  382. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +25 -11
  383. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
  384. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  385. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +16 -7
  386. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -1
  387. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +2 -2
  388. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
  389. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +32 -23
  390. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js.map +1 -1
  391. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +32 -23
  392. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -1
  393. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js +43 -28
  394. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js.map +1 -1
  395. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +38 -26
  396. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js.map +1 -1
  397. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +31 -12
  398. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js.map +1 -1
  399. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +18 -8
  400. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -1
  401. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/test/nylas-participants-custom-availability.spec.js +47 -0
  402. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/test/nylas-participants-custom-availability.spec.js.map +1 -0
  403. package/dist/collection/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.js +3 -3
  404. package/dist/collection/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.js +1 -1
  405. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +1 -1
  406. package/dist/collection/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.js +34 -27
  407. package/dist/collection/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.js.map +1 -1
  408. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  409. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +18 -53
  410. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js.map +1 -1
  411. package/dist/collection/connector/shared/api/scheduler.js +12 -3
  412. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  413. package/dist/collection/types/index.js +7 -6
  414. package/dist/collection/types/index.js.map +1 -1
  415. package/dist/collection/utils/test-utils.js +9 -0
  416. package/dist/collection/utils/test-utils.js.map +1 -1
  417. package/dist/components/add-circle.js +1 -1
  418. package/dist/components/archive-icon.js +1 -1
  419. package/dist/components/arrow-icon.js +1 -1
  420. package/dist/components/bold-icon.js +1 -1
  421. package/dist/components/button-component2.js +1 -1
  422. package/dist/components/calendar-agenda-fill.js +1 -1
  423. package/dist/components/calendar-agenda.js +1 -1
  424. package/dist/components/calendar-cancel.js +1 -1
  425. package/dist/components/calendar-check.js +1 -1
  426. package/dist/components/calendar-info.js +1 -1
  427. package/dist/components/calendar-patterns.js +1 -1
  428. package/dist/components/calendar.js +1 -1
  429. package/dist/components/checkbox-component2.js +1 -1
  430. package/dist/components/checkmark-circle.js +1 -1
  431. package/dist/components/checkmark.js +1 -1
  432. package/dist/components/chevron.js +1 -1
  433. package/dist/components/clock.js +1 -1
  434. package/dist/components/close.js +1 -1
  435. package/dist/components/constants.js +1 -1
  436. package/dist/components/copy.js +1 -1
  437. package/dist/components/delete.js +1 -1
  438. package/dist/components/document-refresh-icon.js +1 -1
  439. package/dist/components/dragable.js +1 -1
  440. package/dist/components/edit.js +1 -1
  441. package/dist/components/envelope-fill.js +1 -1
  442. package/dist/components/envelope.js +1 -1
  443. package/dist/components/eye.js +1 -1
  444. package/dist/components/feedback-icon2.js +1 -1
  445. package/dist/components/flow.js +1 -1
  446. package/dist/components/folder-icon.js +1 -1
  447. package/dist/components/forward-icon.js +1 -1
  448. package/dist/components/globe.js +1 -1
  449. package/dist/components/google-logo.js +1 -1
  450. package/dist/components/google-meet.js +1 -1
  451. package/dist/components/inbox-icon.js +1 -1
  452. package/dist/components/info.js +1 -1
  453. package/dist/components/input-color-picker.js +2 -2
  454. package/dist/components/input-component2.js +1 -1
  455. package/dist/components/input-dropdown2.js +1 -1
  456. package/dist/components/input-image-url2.js +1 -1
  457. package/dist/components/italic-icon.js +1 -1
  458. package/dist/components/loading.js +1 -1
  459. package/dist/components/location-off.js +1 -1
  460. package/dist/components/location.js +1 -1
  461. package/dist/components/microsof-teams.js +1 -1
  462. package/dist/components/microsoft-logo.js +1 -1
  463. package/dist/components/multi-select-dropdown2.js +1 -1
  464. package/dist/components/nylas-additional-participants2.js +6 -6
  465. package/dist/components/nylas-additional-participants2.js.map +1 -1
  466. package/dist/components/nylas-availability-picker2.js +5 -4
  467. package/dist/components/nylas-availability-picker2.js.map +1 -1
  468. package/dist/components/nylas-booked-event-card2.js +8 -8
  469. package/dist/components/nylas-booked-event-card2.js.map +1 -1
  470. package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
  471. package/dist/components/nylas-booking-confirmation-redirect2.js +1 -1
  472. package/dist/components/nylas-booking-confirmation-redirect2.js.map +1 -1
  473. package/dist/components/nylas-booking-confirmation-type2.js +2 -2
  474. package/dist/components/nylas-booking-confirmation-type2.js.map +1 -1
  475. package/dist/components/nylas-booking-form-config2.js +1 -1
  476. package/dist/components/nylas-booking-form-config2.js.map +1 -1
  477. package/dist/components/nylas-booking-form2.js +6 -5
  478. package/dist/components/nylas-booking-form2.js.map +1 -1
  479. package/dist/components/nylas-buffer-time2.js.map +1 -1
  480. package/dist/components/nylas-calendar-picker2.js +4 -4
  481. package/dist/components/nylas-calendar-picker2.js.map +1 -1
  482. package/dist/components/nylas-cancel-booking-form2.js +4 -4
  483. package/dist/components/nylas-cancel-booking-form2.js.map +1 -1
  484. package/dist/components/nylas-cancellation-policy2.js +1 -1
  485. package/dist/components/nylas-cancellation-policy2.js.map +1 -1
  486. package/dist/components/nylas-cancelled-event-card2.js +4 -4
  487. package/dist/components/nylas-cancelled-event-card2.js.map +1 -1
  488. package/dist/components/nylas-confirmation-email2.js +3 -2
  489. package/dist/components/nylas-confirmation-email2.js.map +1 -1
  490. package/dist/components/nylas-confirmed-event-card2.js +3 -3
  491. package/dist/components/nylas-confirmed-event-card2.js.map +1 -1
  492. package/dist/components/nylas-connected-calendars2.js +6 -2
  493. package/dist/components/nylas-connected-calendars2.js.map +1 -1
  494. package/dist/components/nylas-custom-booking-flow2.js +1 -1
  495. package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
  496. package/dist/components/nylas-custom-event-slug2.js +1 -0
  497. package/dist/components/nylas-custom-event-slug2.js.map +1 -1
  498. package/dist/components/nylas-customize-booking-settings2.js +4 -4
  499. package/dist/components/nylas-customize-booking-settings2.js.map +1 -1
  500. package/dist/components/nylas-date-picker2.js +4 -4
  501. package/dist/components/nylas-date-picker2.js.map +1 -1
  502. package/dist/components/nylas-editor-tabs2.js +196 -167
  503. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  504. package/dist/components/nylas-event-description2.js +1 -1
  505. package/dist/components/nylas-event-description2.js.map +1 -1
  506. package/dist/components/nylas-event-duration2.js +1 -1
  507. package/dist/components/nylas-event-duration2.js.map +1 -1
  508. package/dist/components/nylas-event-info2.js +1 -1
  509. package/dist/components/nylas-event-limits2.js +1 -1
  510. package/dist/components/nylas-event-location2.js +39 -15
  511. package/dist/components/nylas-event-location2.js.map +1 -1
  512. package/dist/components/nylas-event-title2.js +10 -5
  513. package/dist/components/nylas-event-title2.js.map +1 -1
  514. package/dist/components/nylas-feedback-form2.js +2 -2
  515. package/dist/components/nylas-form-card2.js +1 -1
  516. package/dist/components/nylas-if-state.js +1 -1
  517. package/dist/components/nylas-limit-future-bookings2.js +1 -1
  518. package/dist/components/nylas-limit-future-bookings2.js.map +1 -1
  519. package/dist/components/nylas-list-configurations2.js +2 -2
  520. package/dist/components/nylas-list-configurations2.js.map +1 -1
  521. package/dist/components/nylas-locale-switch2.js +2 -2
  522. package/dist/components/nylas-locale-switch2.js.map +1 -1
  523. package/dist/components/nylas-login.js +1 -1
  524. package/dist/components/nylas-logo2.js +1 -1
  525. package/dist/components/nylas-min-booking-notice2.js +3 -3
  526. package/dist/components/nylas-min-booking-notice2.js.map +1 -1
  527. package/dist/components/nylas-min-cancellation-notice2.js +3 -3
  528. package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
  529. package/dist/components/nylas-notification2.js +1 -1
  530. package/dist/components/nylas-organizer-confirmation-card2.js +3 -3
  531. package/dist/components/nylas-organizer-confirmation-card2.js.map +1 -1
  532. package/dist/components/nylas-page-name2.js +3 -3
  533. package/dist/components/nylas-page-name2.js.map +1 -1
  534. package/dist/components/nylas-page-styling2.js +3 -3
  535. package/dist/components/nylas-page-styling2.js.map +1 -1
  536. package/dist/components/nylas-participant-booking-calendars2.js +6 -2
  537. package/dist/components/nylas-participant-booking-calendars2.js.map +1 -1
  538. package/dist/components/nylas-participants-custom-availability2.js +3 -2
  539. package/dist/components/nylas-participants-custom-availability2.js.map +1 -1
  540. package/dist/components/nylas-provider.js +1 -1
  541. package/dist/components/nylas-reminder-emails.js +1 -302
  542. package/dist/components/nylas-reminder-emails.js.map +1 -1
  543. package/dist/{esm/nylas-reminder-emails.entry.js → components/nylas-reminder-emails2.js} +123 -21
  544. package/dist/components/nylas-reminder-emails2.js.map +1 -0
  545. package/dist/components/nylas-reminder-time2.js +2 -2
  546. package/dist/components/nylas-scheduler-editor.js +179 -161
  547. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  548. package/dist/components/nylas-scheduling-method2.js +4 -6
  549. package/dist/components/nylas-scheduling-method2.js.map +1 -1
  550. package/dist/components/nylas-scheduling.js +22 -8
  551. package/dist/components/nylas-scheduling.js.map +1 -1
  552. package/dist/components/nylas-selected-event-card2.js +3 -3
  553. package/dist/components/nylas-selected-event-card2.js.map +1 -1
  554. package/dist/components/nylas-time-window-picker2.js +1 -1
  555. package/dist/components/nylas-timeslot-interval2.js +4 -8
  556. package/dist/components/nylas-timeslot-interval2.js.map +1 -1
  557. package/dist/components/nylas-timeslot-picker2.js +5 -5
  558. package/dist/components/nylas-timeslot-picker2.js.map +1 -1
  559. package/dist/components/paintbrush-fill.js +1 -1
  560. package/dist/components/paintbrush.js +1 -1
  561. package/dist/components/people.js +1 -1
  562. package/dist/components/person-clipboard.js +1 -1
  563. package/dist/components/person.js +1 -1
  564. package/dist/components/play-icon.js +1 -1
  565. package/dist/components/plus.js +1 -1
  566. package/dist/components/radio-button-group2.js +1 -1
  567. package/dist/components/refresh-icon.js +1 -1
  568. package/dist/components/reply-all-icon.js +1 -1
  569. package/dist/components/reply-icon.js +1 -1
  570. package/dist/components/scheduler-store.js +12 -3
  571. package/dist/components/scheduler-store.js.map +1 -1
  572. package/dist/components/search.js +1 -1
  573. package/dist/components/select-dropdown2.js +1 -1
  574. package/dist/components/sent-icon.js +1 -1
  575. package/dist/components/spam-icon.js +1 -1
  576. package/dist/components/star-icon.js +1 -1
  577. package/dist/components/stop-icon.js +1 -1
  578. package/dist/components/textarea-component2.js +1 -1
  579. package/dist/components/time-period-selector2.js +1 -1
  580. package/dist/components/toggle-switch2.js +1 -1
  581. package/dist/components/toolitp-component.js +1 -1
  582. package/dist/components/translate.js +1 -1
  583. package/dist/components/trash-fill-icon.js +1 -1
  584. package/dist/components/trash.js +1 -1
  585. package/dist/components/underline-icon.js +1 -1
  586. package/dist/components/warning.js +1 -1
  587. package/dist/components/zoom.js +1 -1
  588. package/dist/esm/add-circle-icon_2.entry.js +2 -2
  589. package/dist/esm/archive-icon.entry.js +1 -1
  590. package/dist/esm/arrow-icon.entry.js +1 -1
  591. package/dist/esm/bold-icon.entry.js +1 -1
  592. package/dist/esm/button-component_2.entry.js +2 -2
  593. package/dist/esm/{calendar-agenda-fill-icon_51.entry.js → calendar-agenda-fill-icon_54.entry.js} +702 -306
  594. package/dist/esm/calendar-agenda-fill-icon_54.entry.js.map +1 -0
  595. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  596. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  597. package/dist/esm/calendar-icon.entry.js +1 -1
  598. package/dist/esm/checkbox-component_2.entry.js +2 -2
  599. package/dist/esm/chevron-icon_3.entry.js +3 -3
  600. package/dist/esm/clock-icon_4.entry.js +4 -4
  601. package/dist/esm/{constants-94520f89.js → constants-c549b12b.js} +2 -2
  602. package/dist/esm/{constants-94520f89.js.map → constants-c549b12b.js.map} +1 -1
  603. package/dist/esm/copy-icon.entry.js +1 -1
  604. package/dist/esm/delete-icon.entry.js +1 -1
  605. package/dist/esm/document-refresh-icon.entry.js +1 -1
  606. package/dist/esm/folder-icon.entry.js +1 -1
  607. package/dist/esm/forward-icon.entry.js +1 -1
  608. package/dist/esm/globe-icon.entry.js +1 -1
  609. package/dist/esm/google-logo-icon_4.entry.js +35 -24
  610. package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
  611. package/dist/esm/inbox-icon.entry.js +1 -1
  612. package/dist/esm/index-7cb0dd3d.js +2 -10
  613. package/dist/esm/info-icon_2.entry.js +2 -2
  614. package/dist/esm/input-color-picker.entry.js +2 -2
  615. package/dist/esm/input-component.entry.js +1 -1
  616. package/dist/esm/input-dropdown.entry.js +1 -1
  617. package/dist/esm/italic-icon.entry.js +1 -1
  618. package/dist/esm/loader.js +1 -1
  619. package/dist/esm/multi-select-dropdown.entry.js +1 -1
  620. package/dist/esm/nylas-booked-event-card_12.entry.js +34 -33
  621. package/dist/esm/nylas-booked-event-card_12.entry.js.map +1 -1
  622. package/dist/esm/nylas-form-card.entry.js +1 -1
  623. package/dist/esm/nylas-if-state.entry.js +1 -1
  624. package/dist/esm/nylas-login.entry.js +1 -1
  625. package/dist/esm/nylas-provider.entry.js +2 -2
  626. package/dist/esm/nylas-scheduler-editor.entry.js +1 -1
  627. package/dist/esm/nylas-scheduling.entry.js +23 -10
  628. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  629. package/dist/esm/nylas-time-window-picker.entry.js +1 -1
  630. package/dist/esm/nylas-web-elements.js +1 -1
  631. package/dist/esm/person-icon.entry.js +1 -1
  632. package/dist/esm/play-icon.entry.js +1 -1
  633. package/dist/esm/refresh-icon.entry.js +1 -1
  634. package/dist/esm/reply-all-icon.entry.js +1 -1
  635. package/dist/esm/reply-icon.entry.js +1 -1
  636. package/dist/esm/{scheduler-store-24e5fb65.js → scheduler-store-d4784b24.js} +13 -4
  637. package/dist/esm/scheduler-store-d4784b24.js.map +1 -0
  638. package/dist/esm/sent-icon.entry.js +1 -1
  639. package/dist/esm/spam-icon.entry.js +1 -1
  640. package/dist/esm/star-icon.entry.js +1 -1
  641. package/dist/esm/stop-icon.entry.js +1 -1
  642. package/dist/esm/textarea-component.entry.js +1 -1
  643. package/dist/esm/time-period-selector.entry.js +1 -1
  644. package/dist/esm/translate-icon.entry.js +1 -1
  645. package/dist/esm/trash-fill-icon.entry.js +1 -1
  646. package/dist/esm/underline-icon.entry.js +1 -1
  647. package/dist/esm/warning-icon.entry.js +1 -1
  648. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  649. package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
  650. package/dist/nylas-web-elements/{p-14493c1f.entry.js → p-04d397d3.entry.js} +2 -2
  651. package/dist/nylas-web-elements/{p-b6e4de5b.js → p-08a590fe.js} +2 -2
  652. package/dist/nylas-web-elements/{p-7943a9f3.entry.js → p-108bd821.entry.js} +2 -2
  653. package/dist/nylas-web-elements/p-12d690b8.js +2 -0
  654. package/dist/nylas-web-elements/p-12d690b8.js.map +1 -0
  655. package/dist/nylas-web-elements/{p-d902a356.entry.js → p-1546bd61.entry.js} +2 -2
  656. package/dist/nylas-web-elements/{p-651232a3.entry.js → p-1c25b695.entry.js} +2 -2
  657. package/dist/nylas-web-elements/{p-caad44c4.entry.js → p-2c1432a2.entry.js} +2 -2
  658. package/dist/nylas-web-elements/{p-21fb688e.entry.js → p-2f91359b.entry.js} +2 -2
  659. package/dist/nylas-web-elements/{p-27074ad6.entry.js → p-3268077f.entry.js} +2 -2
  660. package/dist/nylas-web-elements/p-32bc7f60.entry.js +2 -0
  661. package/dist/nylas-web-elements/p-33800554.entry.js +2 -0
  662. package/dist/nylas-web-elements/p-3971e86b.entry.js +2 -0
  663. package/dist/nylas-web-elements/p-483f2fb4.entry.js +2 -0
  664. package/dist/nylas-web-elements/{p-8a082b24.entry.js → p-4e57a9ee.entry.js} +2 -2
  665. package/dist/nylas-web-elements/p-4fb91c8b.entry.js +2 -0
  666. package/dist/nylas-web-elements/{p-effd77ed.entry.js → p-525bd709.entry.js} +2 -2
  667. package/dist/nylas-web-elements/{p-7d5b3918.entry.js → p-56834b7a.entry.js} +2 -2
  668. package/dist/nylas-web-elements/{p-faeec15a.entry.js → p-5ed596d7.entry.js} +2 -2
  669. package/dist/nylas-web-elements/{p-6fa4597b.entry.js → p-6089d6fa.entry.js} +2 -2
  670. package/dist/nylas-web-elements/{p-39af67b7.entry.js → p-61ea19c2.entry.js} +2 -2
  671. package/dist/nylas-web-elements/p-698d229c.entry.js +2 -0
  672. package/dist/nylas-web-elements/p-698d229c.entry.js.map +1 -0
  673. package/dist/nylas-web-elements/p-713505c9.entry.js +2 -0
  674. package/dist/nylas-web-elements/{p-bd85bf92.entry.js → p-7140bca8.entry.js} +2 -2
  675. package/dist/nylas-web-elements/{p-3f2f3b85.entry.js → p-762ae706.entry.js} +2 -2
  676. package/dist/nylas-web-elements/p-7919d41d.entry.js +2 -0
  677. package/dist/nylas-web-elements/p-7bed0959.entry.js +2 -0
  678. package/dist/nylas-web-elements/p-7bed0959.entry.js.map +1 -0
  679. package/dist/nylas-web-elements/{p-27b52475.entry.js → p-7c20444b.entry.js} +2 -2
  680. package/dist/nylas-web-elements/{p-d55f619c.entry.js → p-988eee6f.entry.js} +2 -2
  681. package/dist/nylas-web-elements/{p-0519e48e.entry.js → p-9d8ffc7b.entry.js} +2 -2
  682. package/dist/nylas-web-elements/{p-fbddb6fe.entry.js → p-9f009793.entry.js} +2 -2
  683. package/dist/nylas-web-elements/{p-1e2ffdc6.entry.js → p-aa4b24ce.entry.js} +2 -2
  684. package/dist/nylas-web-elements/{p-5973b208.entry.js → p-ac8386d1.entry.js} +2 -2
  685. package/dist/nylas-web-elements/{p-062f6da2.entry.js → p-acfe4f6e.entry.js} +2 -2
  686. package/dist/nylas-web-elements/p-af2ab331.entry.js +2 -0
  687. package/dist/nylas-web-elements/{p-100c9ff7.entry.js → p-b110d5c1.entry.js} +2 -2
  688. package/dist/nylas-web-elements/p-b9a8d404.entry.js +8 -0
  689. package/dist/nylas-web-elements/p-b9a8d404.entry.js.map +1 -0
  690. package/dist/nylas-web-elements/{p-e012eac3.entry.js → p-be938025.entry.js} +2 -2
  691. package/dist/nylas-web-elements/{p-36792b8a.entry.js → p-cad17478.entry.js} +2 -2
  692. package/dist/nylas-web-elements/p-ce2c8e67.entry.js +2 -0
  693. package/dist/nylas-web-elements/{p-68320c97.entry.js → p-d1abdef7.entry.js} +2 -2
  694. package/dist/nylas-web-elements/{p-8013d0a2.entry.js → p-dcdb47dd.entry.js} +2 -2
  695. package/dist/nylas-web-elements/{p-cc8f94f7.entry.js → p-e1cd1887.entry.js} +2 -2
  696. package/dist/nylas-web-elements/{p-00d89615.entry.js → p-eb2d8167.entry.js} +2 -2
  697. package/dist/nylas-web-elements/{p-9b62edf6.entry.js → p-ec302526.entry.js} +2 -2
  698. package/dist/nylas-web-elements/{p-bbcf8659.entry.js → p-ec528a20.entry.js} +2 -2
  699. package/dist/nylas-web-elements/{p-0e0c00cc.entry.js → p-eee29c7e.entry.js} +2 -2
  700. package/dist/nylas-web-elements/{p-f62df769.entry.js → p-f2ae34c9.entry.js} +2 -2
  701. package/dist/nylas-web-elements/{p-fecf68ef.entry.js → p-f4334e3a.entry.js} +2 -2
  702. package/dist/nylas-web-elements/p-fc6ae4ec.entry.js +2 -0
  703. package/dist/nylas-web-elements/p-fc6ae4ec.entry.js.map +1 -0
  704. package/dist/nylas-web-elements/p-fe34d0ee.entry.js +2 -0
  705. package/dist/nylas-web-elements/p-febf4adf.entry.js +2 -0
  706. package/dist/types/common/types.d.ts +3 -0
  707. package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +2 -2
  708. package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +3 -4
  709. package/dist/types/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.d.ts +1 -1
  710. package/dist/types/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.d.ts +1 -1
  711. package/dist/types/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.d.ts +1 -1
  712. package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +1 -1
  713. package/dist/types/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.d.ts +1 -1
  714. package/dist/types/components/scheduler/nylas-scheduling/nylas-scheduling.d.ts +5 -3
  715. package/dist/types/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.d.ts +2 -2
  716. package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +2 -2
  717. package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +1 -1
  718. package/dist/types/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.d.ts +2 -2
  719. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +2 -1
  720. package/dist/types/components/scheduler-editor/nylas-event-location/nylas-event-location.d.ts +2 -0
  721. package/dist/types/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.d.ts +1 -1
  722. package/dist/types/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.d.ts +1 -1
  723. package/dist/types/components/scheduler-editor/nylas-page-name/nylas-page-name.d.ts +1 -1
  724. package/dist/types/components/scheduler-editor/nylas-page-styling/nylas-page-styling.d.ts +1 -1
  725. package/dist/types/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.d.ts +1 -0
  726. package/dist/types/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.d.ts +1 -1
  727. package/dist/types/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.d.ts +0 -2
  728. package/dist/types/components.d.ts +252 -289
  729. package/dist/types/connector/shared/api/scheduler.d.ts +4 -4
  730. package/dist/types/types/index.d.ts +164 -32
  731. package/package.json +7 -5
  732. package/dist/cjs/calendar-agenda-fill-icon_51.cjs.entry.js.map +0 -1
  733. package/dist/cjs/nylas-reminder-emails.cjs.entry.js +0 -208
  734. package/dist/cjs/nylas-reminder-emails.cjs.entry.js.map +0 -1
  735. package/dist/cjs/nylas-reminder-time_2.cjs.entry.js +0 -175
  736. package/dist/cjs/nylas-reminder-time_2.cjs.entry.js.map +0 -1
  737. package/dist/cjs/scheduler-store-4489a68b.js.map +0 -1
  738. package/dist/esm/calendar-agenda-fill-icon_51.entry.js.map +0 -1
  739. package/dist/esm/nylas-reminder-emails.entry.js.map +0 -1
  740. package/dist/esm/nylas-reminder-time_2.entry.js +0 -170
  741. package/dist/esm/nylas-reminder-time_2.entry.js.map +0 -1
  742. package/dist/esm/scheduler-store-24e5fb65.js.map +0 -1
  743. package/dist/nylas-web-elements/p-06e44cfc.entry.js +0 -2
  744. package/dist/nylas-web-elements/p-06e44cfc.entry.js.map +0 -1
  745. package/dist/nylas-web-elements/p-2653e311.entry.js +0 -2
  746. package/dist/nylas-web-elements/p-3ff76491.entry.js +0 -2
  747. package/dist/nylas-web-elements/p-3ff76491.entry.js.map +0 -1
  748. package/dist/nylas-web-elements/p-51a66bf5.entry.js +0 -2
  749. package/dist/nylas-web-elements/p-5b237299.entry.js +0 -2
  750. package/dist/nylas-web-elements/p-63341f71.entry.js +0 -2
  751. package/dist/nylas-web-elements/p-6c833d5e.entry.js +0 -2
  752. package/dist/nylas-web-elements/p-6c833d5e.entry.js.map +0 -1
  753. package/dist/nylas-web-elements/p-742d7c3c.entry.js +0 -2
  754. package/dist/nylas-web-elements/p-76fc639b.entry.js +0 -2
  755. package/dist/nylas-web-elements/p-781e954b.entry.js +0 -2
  756. package/dist/nylas-web-elements/p-7f56a139.entry.js +0 -2
  757. package/dist/nylas-web-elements/p-7f56a139.entry.js.map +0 -1
  758. package/dist/nylas-web-elements/p-86194780.entry.js +0 -2
  759. package/dist/nylas-web-elements/p-86194780.entry.js.map +0 -1
  760. package/dist/nylas-web-elements/p-96bcc255.entry.js +0 -2
  761. package/dist/nylas-web-elements/p-aeab587c.entry.js +0 -2
  762. package/dist/nylas-web-elements/p-c417fd2f.entry.js +0 -2
  763. package/dist/nylas-web-elements/p-ef3561ae.js +0 -2
  764. package/dist/nylas-web-elements/p-ef3561ae.js.map +0 -1
  765. package/dist/nylas-web-elements/p-fbe814b2.entry.js +0 -8
  766. package/dist/nylas-web-elements/p-fbe814b2.entry.js.map +0 -1
  767. package/dist/nylas-web-elements/p-fdc60ce2.entry.js +0 -2
  768. /package/dist/nylas-web-elements/{p-14493c1f.entry.js.map → p-04d397d3.entry.js.map} +0 -0
  769. /package/dist/nylas-web-elements/{p-b6e4de5b.js.map → p-08a590fe.js.map} +0 -0
  770. /package/dist/nylas-web-elements/{p-7943a9f3.entry.js.map → p-108bd821.entry.js.map} +0 -0
  771. /package/dist/nylas-web-elements/{p-d902a356.entry.js.map → p-1546bd61.entry.js.map} +0 -0
  772. /package/dist/nylas-web-elements/{p-651232a3.entry.js.map → p-1c25b695.entry.js.map} +0 -0
  773. /package/dist/nylas-web-elements/{p-caad44c4.entry.js.map → p-2c1432a2.entry.js.map} +0 -0
  774. /package/dist/nylas-web-elements/{p-21fb688e.entry.js.map → p-2f91359b.entry.js.map} +0 -0
  775. /package/dist/nylas-web-elements/{p-27074ad6.entry.js.map → p-3268077f.entry.js.map} +0 -0
  776. /package/dist/nylas-web-elements/{p-aeab587c.entry.js.map → p-32bc7f60.entry.js.map} +0 -0
  777. /package/dist/nylas-web-elements/{p-76fc639b.entry.js.map → p-33800554.entry.js.map} +0 -0
  778. /package/dist/nylas-web-elements/{p-781e954b.entry.js.map → p-3971e86b.entry.js.map} +0 -0
  779. /package/dist/nylas-web-elements/{p-63341f71.entry.js.map → p-483f2fb4.entry.js.map} +0 -0
  780. /package/dist/nylas-web-elements/{p-8a082b24.entry.js.map → p-4e57a9ee.entry.js.map} +0 -0
  781. /package/dist/nylas-web-elements/{p-5b237299.entry.js.map → p-4fb91c8b.entry.js.map} +0 -0
  782. /package/dist/nylas-web-elements/{p-effd77ed.entry.js.map → p-525bd709.entry.js.map} +0 -0
  783. /package/dist/nylas-web-elements/{p-7d5b3918.entry.js.map → p-56834b7a.entry.js.map} +0 -0
  784. /package/dist/nylas-web-elements/{p-faeec15a.entry.js.map → p-5ed596d7.entry.js.map} +0 -0
  785. /package/dist/nylas-web-elements/{p-6fa4597b.entry.js.map → p-6089d6fa.entry.js.map} +0 -0
  786. /package/dist/nylas-web-elements/{p-39af67b7.entry.js.map → p-61ea19c2.entry.js.map} +0 -0
  787. /package/dist/nylas-web-elements/{p-fdc60ce2.entry.js.map → p-713505c9.entry.js.map} +0 -0
  788. /package/dist/nylas-web-elements/{p-bd85bf92.entry.js.map → p-7140bca8.entry.js.map} +0 -0
  789. /package/dist/nylas-web-elements/{p-3f2f3b85.entry.js.map → p-762ae706.entry.js.map} +0 -0
  790. /package/dist/nylas-web-elements/{p-c417fd2f.entry.js.map → p-7919d41d.entry.js.map} +0 -0
  791. /package/dist/nylas-web-elements/{p-27b52475.entry.js.map → p-7c20444b.entry.js.map} +0 -0
  792. /package/dist/nylas-web-elements/{p-d55f619c.entry.js.map → p-988eee6f.entry.js.map} +0 -0
  793. /package/dist/nylas-web-elements/{p-0519e48e.entry.js.map → p-9d8ffc7b.entry.js.map} +0 -0
  794. /package/dist/nylas-web-elements/{p-fbddb6fe.entry.js.map → p-9f009793.entry.js.map} +0 -0
  795. /package/dist/nylas-web-elements/{p-1e2ffdc6.entry.js.map → p-aa4b24ce.entry.js.map} +0 -0
  796. /package/dist/nylas-web-elements/{p-5973b208.entry.js.map → p-ac8386d1.entry.js.map} +0 -0
  797. /package/dist/nylas-web-elements/{p-062f6da2.entry.js.map → p-acfe4f6e.entry.js.map} +0 -0
  798. /package/dist/nylas-web-elements/{p-742d7c3c.entry.js.map → p-af2ab331.entry.js.map} +0 -0
  799. /package/dist/nylas-web-elements/{p-100c9ff7.entry.js.map → p-b110d5c1.entry.js.map} +0 -0
  800. /package/dist/nylas-web-elements/{p-e012eac3.entry.js.map → p-be938025.entry.js.map} +0 -0
  801. /package/dist/nylas-web-elements/{p-36792b8a.entry.js.map → p-cad17478.entry.js.map} +0 -0
  802. /package/dist/nylas-web-elements/{p-2653e311.entry.js.map → p-ce2c8e67.entry.js.map} +0 -0
  803. /package/dist/nylas-web-elements/{p-68320c97.entry.js.map → p-d1abdef7.entry.js.map} +0 -0
  804. /package/dist/nylas-web-elements/{p-8013d0a2.entry.js.map → p-dcdb47dd.entry.js.map} +0 -0
  805. /package/dist/nylas-web-elements/{p-cc8f94f7.entry.js.map → p-e1cd1887.entry.js.map} +0 -0
  806. /package/dist/nylas-web-elements/{p-00d89615.entry.js.map → p-eb2d8167.entry.js.map} +0 -0
  807. /package/dist/nylas-web-elements/{p-9b62edf6.entry.js.map → p-ec302526.entry.js.map} +0 -0
  808. /package/dist/nylas-web-elements/{p-bbcf8659.entry.js.map → p-ec528a20.entry.js.map} +0 -0
  809. /package/dist/nylas-web-elements/{p-0e0c00cc.entry.js.map → p-eee29c7e.entry.js.map} +0 -0
  810. /package/dist/nylas-web-elements/{p-f62df769.entry.js.map → p-f2ae34c9.entry.js.map} +0 -0
  811. /package/dist/nylas-web-elements/{p-fecf68ef.entry.js.map → p-f4334e3a.entry.js.map} +0 -0
  812. /package/dist/nylas-web-elements/{p-96bcc255.entry.js.map → p-fe34d0ee.entry.js.map} +0 -0
  813. /package/dist/nylas-web-elements/{p-51a66bf5.entry.js.map → p-febf4adf.entry.js.map} +0 -0
@@ -49,7 +49,7 @@ const NylasFormCard = class {
49
49
  utils.checkForMissingSlots(slots, this.host);
50
50
  }
51
51
  render() {
52
- return (index.h(index.Host, { key: '9c490244ceaa1c08fae75cad5f796e2b45ea2538' }, index.h("div", { key: '696b86c8697f4062afcd8a5862c97bf3bf5492e0', class: "nylas-form-card", part: "nfc" }, index.h("div", { key: 'af1f2eb827a74586fe44b476f1d59f9f8785e980', class: "nylas-form-card__header", part: "nfc__header" }, index.h("slot", { key: '968b720f04d9e64df5708fd1c4d94a9998aa72fc', name: "header-title" }), index.h("slot", { key: '4df6bddacc17d303f3be42584be48e50bf7fb0f0', name: "header-subtitle" })), index.h("div", { key: '890fbc0f1628e40a2b92201bb3e4ebc116ed2f9e', class: "nylas-form-card__content" }, index.h("slot", { key: '861b981bb7a420151fc375cc68dcdcd58ffbb8c2', name: "content" })))));
52
+ return (index.h(index.Host, { key: 'e79321333887319f48356c64cb2e04539edf1d79' }, index.h("div", { key: '9a33c42c38012c5277ecc0d60523211671866378', class: "nylas-form-card", part: "nfc" }, index.h("div", { key: '905eed6cd8c79bda19fb3c5ab49802ae697a0ab9', class: "nylas-form-card__header", part: "nfc__header" }, index.h("slot", { key: 'db749b7eb575845c2b8d8e4a12ea0c3ffea4842a', name: "header-title" }), index.h("slot", { key: '5b9ac54446f1b1b49a9f0f2e2b45e3785acb9686', name: "header-subtitle" })), index.h("div", { key: '6893e68e48f990c6dfc3d3c3052dfba988b21807', class: "nylas-form-card__content" }, index.h("slot", { key: 'fac98a2a1a6b162bc3f4aed735b584c4d5e509a3', name: "content" })))));
53
53
  }
54
54
  static get formAssociated() { return true; }
55
55
  get host() { return index.getElement(this); }
@@ -106,7 +106,7 @@ const NylasIfState = class {
106
106
  }
107
107
  }
108
108
  render() {
109
- return (index.h(index.Host, { key: '8c7133e9d01ecb6d14db3a6f30321ecbb7047dcb' }, index.h("div", { key: '81ba387d18d24761a8f89da678161aaf5755c3f2', class: this.classes }, this.show && index.h("slot", null))));
109
+ return (index.h(index.Host, { key: '4ab162229644e4d5d9d571af164b417c3e503e2c' }, index.h("div", { key: 'f5b4dd56ac193ba63be4a7040bdb61d7a2e1da04', class: this.classes }, this.show && index.h("slot", null))));
110
110
  }
111
111
  static get watchers() { return {
112
112
  "getStore": ["onGetStoreChange"]
@@ -80,7 +80,7 @@ const NylasLogin = class {
80
80
  }
81
81
  render() {
82
82
  const splitProviders = this.providers?.split(',') || [];
83
- return (index.h(index.Host, { key: 'c19348287c1ee1aac3efb379ff4c6e1f7b79601b' }, this.loginMethod === 'redirect' && (index.h("div", { class: "redirect-container" }, !this.isAuthenticated && (index.h("button", { part: "button", onClick: this._handleLoginRedirect }, this.buttonText)))), this.loginMethod === 'emebded' && (index.h("main", { class: "login-container" }, index.h("section", { class: "login-box" }, index.h("header", null, index.h("img", { src: this.logoUrl, alt: `${this.companyName} logo`, width: '100%', style: {
83
+ return (index.h(index.Host, { key: '0e8ae3287facdc3e67109cd57cb80a761897de76' }, this.loginMethod === 'redirect' && (index.h("div", { class: "redirect-container" }, !this.isAuthenticated && (index.h("button", { part: "button", onClick: this._handleLoginRedirect }, this.buttonText)))), this.loginMethod === 'emebded' && (index.h("main", { class: "login-container" }, index.h("section", { class: "login-box" }, index.h("header", null, index.h("img", { src: this.logoUrl, alt: `${this.companyName} logo`, width: '100%', style: {
84
84
  minWidth: this.logoWidth,
85
85
  } }), index.h("h1", null, "Welcome")), index.h("p", null, "Log in to your account to continue to ", this.companyName), index.h("div", { class: "login-methods" }, splitProviders.includes('google') && (index.h("button", { class: "login-google", onClick: this._onGoogleButtonClick }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "img", width: "18", height: "18", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 256 262" }, index.h("path", { fill: "#4285F4", d: "M255.6 131.6c0-8.2-.8-16.2-2.2-23.9H130v45.3h70.3c-3 16.1-12.4 29.7-26.3 38.9v32.4h42.6c25-23 39.4-56.7 39.4-97.7z" }), index.h("path", { fill: "#34A853", d: "M130 262c35.3 0 64.9-11.7 86.5-31.7l-42.6-32.4c-11.7 7.9-26.7 12.6-43.9 12.6-33.7 0-62.3-22.7-72.5-53.4H14.5v33.3A130.3 130.3 0 00130 262z" }), index.h("path", { fill: "#FBBC05", d: "M57.5 158.1a72.7 72.7 0 010-54.2V70.6H14.5a130.4 130.4 0 000 120.8l43-33.3z" }), index.h("path", { fill: "#EA4335", d: "M130 51.6c19 0 36 6.5 49.4 19.2l37-36C195 13.1 165.2 0 130 0A130.3 130.3 0 0014.5 70.6l43 33.3c10.2-30.7 38.8-53.3 72.5-53.3z" })), "Continue with Google")), splitProviders.includes('microsoft') && (index.h("button", { class: "login-microsoft", onClick: this._onMicrosoftButtonClick }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "img", width: "18", height: "18", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 448 512" }, index.h("path", { fill: "#F3F3F3", d: "M0 32v192h192V32H0zm256 0v192h192V32H256zm192 256v192h-192V288h192zM0 224v192h192V224H0z" })), "Continue with Microsoft"))), index.h("form", { class: "login-form", method: "POST", onSubmit: this._onFormSubmit }, index.h("label", { htmlFor: "email" }, "Email"), index.h("input", { type: "email", id: "email", name: "email", required: true, value: this.email }), index.h("button", { type: "submit" }, "Next")))))));
86
86
  }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index$1 = require('./index-7af03e3f.js');
6
6
  const index_es = require('./index.es-a130be65.js');
7
7
  const utils = require('./utils-5ebd7cf8.js');
8
- const schedulerStore = require('./scheduler-store-4489a68b.js');
8
+ const schedulerStore = require('./scheduler-store-e3ddffc1.js');
9
9
  const index = require('./index-e31dc92c.js');
10
10
  const schedulerConfigStore = require('./scheduler-config-store-a842304d.js');
11
11
 
@@ -335,7 +335,7 @@ const NylasProvider = class {
335
335
  return this.baseProvider?.getStore('schedulerConfig');
336
336
  }
337
337
  render() {
338
- return (index$1.h(index$1.Host, { key: 'e4c9c9acb330cbbc466495c3153d54318b28d943' }, index$1.h("slot", { key: '7a5b931d0ca83c251074eba2aeb4f243f131ae05' })));
338
+ return (index$1.h(index$1.Host, { key: 'a07ace4fe61c7f7ee20b723d1858f7ebac56ff95' }, index$1.h("slot", { key: '7c10f2b5cf18450c28617b3f35215b720f1d8bd2' })));
339
339
  }
340
340
  get host() { return index$1.getElement(this); }
341
341
  };
@@ -2270,7 +2270,7 @@ const NylasSchedulerEditor = class {
2270
2270
  render() {
2271
2271
  const hasSlot = this.host.querySelector('[slot="custom-page-style-inputs"]');
2272
2272
  const selectedConfigId = this.stores?.schedulerConfig?.state.selectedConfiguration?.id;
2273
- return (index.h(index.Host, { key: '4f81f67d0f40d00a72d97347f6bf2a58bad4001b' }, index.h("div", { key: '45531d5bd73fd0e413cdd3eacbd49e1a9e968c5a', class: "scheduler-editor-header", part: "nse__header" }, index.h("h1", { key: '37ea6d7172926bdebe03349852b6afb5576ddcf5', class: "scheduler-editor-title", part: "nse__title" }, index.h("calendar-icon", { key: '1ce122cb39e521914ef057a4074425412718a531', width: "18", height: "18" }), "Scheduler Editor"), index.h("button", { key: 'ac2dd9469c0fcc5be8b0d728e19271ee53c36d6c', class: "scheduler-editor-close", title: "logout", onClick: e => this.handleSchedulerConfigCloseClicked(e), part: "nse__close-button" }, index.h("close-icon", { key: 'b42b8607026201d0849d7b600a1586940fd560f7', width: "18", height: "18" }))), index.h("div", { key: '9e40a5b67e04e60e5bcd7f6f317ee02a9140bf94', class: "scheduler-editor-content", part: "nse__content" }, this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (index.h("div", { class: "list-configurations" }, index.h("nylas-list-configurations", { exportparts: "nlc__create-new-cta" }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && (index.h("nylas-editor-tabs", { mode: "composable" }, index.h(ExpressFlow, { currentUser: this.stores?.schedulerConfig?.state.currentUser, calendars: this.stores?.schedulerConfig?.state?.calendars, selectedConfiguration: this.stores?.schedulerConfig?.state?.selectedConfiguration }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && (index.h("nylas-editor-tabs", { key: selectedConfigId, mode: this.mode }, this.mode === 'composable' && index.h("slot", null), this.mode === 'app' && hasSlot && (index.h("div", { style: { display: 'none' }, slot: "custom-page-style-inputs", key: selectedConfigId }, index.h("slot", { name: "custom-page-style-inputs" }))))), !this.stores?.schedulerConfig?.state.currentUser && (index.h("slot", { name: "login-required" }, index.h(LoginRequired, { authenticationUrl: this.authenticationUrl }))))));
2273
+ return (index.h(index.Host, { key: '35b140eeb034c18708cd362f6129e2a7cde71a7b' }, index.h("div", { key: '15eecb29f74a8401c6c80793d38678bee330f31e', class: "scheduler-editor-header", part: "nse__header" }, index.h("h1", { key: 'dabea2da65cc14b20698653f9662a8c456254b34', class: "scheduler-editor-title", part: "nse__title" }, index.h("calendar-icon", { key: 'eb26707b8c8d880655900353e50113504ba531cd', width: "18", height: "18" }), "Scheduler Editor"), index.h("button", { key: 'c841ccb7aa945f292c69d342426ecd0e3a5a1413', class: "scheduler-editor-close", title: "logout", onClick: e => this.handleSchedulerConfigCloseClicked(e), part: "nse__close-button" }, index.h("close-icon", { key: '79b157544d31b2cd401c0c1e8ed019e36c09f9dd', width: "18", height: "18" }))), index.h("div", { key: '02c2e2992587342832f6d8999c09b637bece7dc8', class: "scheduler-editor-content", part: "nse__content" }, this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (index.h("div", { class: "list-configurations" }, index.h("nylas-list-configurations", { exportparts: "nlc__create-new-cta" }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && (index.h("nylas-editor-tabs", { mode: "composable" }, index.h(ExpressFlow, { currentUser: this.stores?.schedulerConfig?.state.currentUser, calendars: this.stores?.schedulerConfig?.state?.calendars, selectedConfiguration: this.stores?.schedulerConfig?.state?.selectedConfiguration }))), this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && (index.h("nylas-editor-tabs", { key: selectedConfigId, mode: this.mode }, this.mode === 'composable' && index.h("slot", null), this.mode === 'app' && hasSlot && (index.h("div", { style: { display: 'none' }, slot: "custom-page-style-inputs", key: selectedConfigId }, index.h("slot", { name: "custom-page-style-inputs" }))))), !this.stores?.schedulerConfig?.state.currentUser && (index.h("slot", { name: "login-required" }, index.h(LoginRequired, { authenticationUrl: this.authenticationUrl }))))));
2274
2274
  }
2275
2275
  get host() { return index.getElement(this); }
2276
2276
  static get watchers() { return {
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-7af03e3f.js');
6
6
  const index_es = require('./index.es-a130be65.js');
7
7
  const utils = require('./utils-5ebd7cf8.js');
8
- const schedulerStore = require('./scheduler-store-4489a68b.js');
8
+ const schedulerStore = require('./scheduler-store-e3ddffc1.js');
9
9
  const constants = require('./constants-b28483d0.js');
10
10
  const feedbackSync = require('./feedbackSync-8e2ea099.js');
11
11
  require('./index-e31dc92c.js');
@@ -117,6 +117,7 @@ const NylasScheduling = class {
117
117
  this.refConfigId = undefined;
118
118
  this.language = navigator.language;
119
119
  this.showFeedbackModal = false;
120
+ this.bookingInfoConfirmed = null;
120
121
  }
121
122
  connectedCallback() {
122
123
  utils.debug(`[nylas-scheduler] connectedCallback`);
@@ -354,8 +355,8 @@ const NylasScheduling = class {
354
355
  const endTime = timeslot?.end_time ? new Date(timeslot?.end_time).getTime() / 1000 : '';
355
356
  return {
356
357
  additional_guests: bookingInfo.guests,
357
- guest: bookingInfo.primaryParticipant,
358
- additional_fields: bookingInfo.additionalFields,
358
+ guest: { ...bookingInfo.primaryParticipant },
359
+ additional_fields: { ...bookingInfo.additionalFields },
359
360
  start_time: startTime,
360
361
  end_time: endTime,
361
362
  email_language: language,
@@ -363,11 +364,12 @@ const NylasScheduling = class {
363
364
  };
364
365
  }
365
366
  async bookButtonClickedHandler(event) {
367
+ if (event.defaultPrevented) {
368
+ return;
369
+ }
366
370
  const bookingData = event.detail;
367
371
  const mappedBookingData = this.mapToBookingData(bookingData);
368
- const storeBookingInfo = this.nylasSchedulerConnector?.schedulerStore?.get('bookingInfo');
369
- const bookingInfo = { ...storeBookingInfo, ...bookingData };
370
- this.stores?.scheduler.set('bookingInfo', bookingInfo);
372
+ this.bookingInfoConfirmed = bookingData;
371
373
  const storeRescheduleId = this.nylasSchedulerConnector?.schedulerStore?.get('rescheduleBookingId');
372
374
  const rescheduleBookingId = storeRescheduleId;
373
375
  if (rescheduleBookingId) {
@@ -512,6 +514,9 @@ const NylasScheduling = class {
512
514
  onFeedbackClick() {
513
515
  this.showFeedbackModal = true;
514
516
  }
517
+ redirectToCustomUrl(url) {
518
+ window.location.assign(url);
519
+ }
515
520
  render() {
516
521
  const showDefaultScheduler = this.mode === 'app';
517
522
  const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');
@@ -544,8 +549,16 @@ const NylasScheduling = class {
544
549
  return (index.h(index.Host, null, index.h(SchedulerView, { nylasBranding: nylasBranding, isLoading: this.isLoading, showNotification: this.showNotification }, index.h("div", { class: "cancelled-event-page", part: "confirmed-event-page" }, index.h("nylas-confirmed-event-card", { confirmedEventInfo: confirmedEventInfo, exportparts: "ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card" }))), this.enableUserFeedback && (index.h("button-component", { id: "report-issue", variant: 'basic', onClick: () => this.onFeedbackClick() }, index.h("feedback-icon", null))), this.showFeedbackModal && index.h("nylas-feedback-form", null)));
545
550
  }
546
551
  if (showDefaultScheduler && eventInfo && redirectUrl) {
547
- const recipient = this.stores?.scheduler.get('bookingInfo')?.primaryParticipant;
548
- const additionalFields = this.stores?.scheduler.get('bookingInfo')?.additionalFields;
552
+ const recipient = this.bookingInfoConfirmed?.primaryParticipant;
553
+ const additionalFields = this.bookingInfoConfirmed?.additionalFields || {};
554
+ if (this.bookingInfo && typeof this.bookingInfo?.additionalFields !== 'undefined') {
555
+ const bookingInfoAdditionalFields = this.bookingInfo.additionalFields;
556
+ Object.keys(bookingInfoAdditionalFields).forEach(key => {
557
+ if (!additionalFields[key] && bookingInfoAdditionalFields?.[key]) {
558
+ additionalFields[key] = bookingInfoAdditionalFields[key].value;
559
+ }
560
+ });
561
+ }
549
562
  const selectedTimeslot = this.stores?.scheduler.get('selectedTimeslot');
550
563
  const selectedTimezone = this.stores?.scheduler.get('selectedTimezone');
551
564
  const selectedLanguage = this.stores?.scheduler.get('selectedLanguage');
@@ -563,7 +576,7 @@ const NylasScheduling = class {
563
576
  additionalFields && urlParams.set('additional_values', JSON.stringify(additionalFields));
564
577
  this.slug && urlParams.set('page_slug', this.slug);
565
578
  configurationId && urlParams.set('config_id', configurationId);
566
- window.location.assign(`${redirectUrl}?${urlParams.toString()}`);
579
+ this.redirectToCustomUrl(`${redirectUrl}?${urlParams.toString()}`);
567
580
  return;
568
581
  }
569
582
  if (showDefaultScheduler && eventInfo) {
@@ -1 +1 @@
1
- {"file":"nylas-scheduling.entry.cjs.js","mappings":"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","names":["debug","NylaSchedulerAPIConnector","h","Fragment","i18next","NotificationType","ErrorCategory","Sentry.isInitialized","Sentry.init","Sentry.feedbackIntegration","CreateNylasSchedulerStore","NylasBaseProvider","compactStringToUUIDs","LANGUAGE_CODE","Sentry.captureMessage","Sentry.captureFeedback","addDaysToCurrentDate","capitalizeFirstLetter","LANGUAGE_CODE_MAP","Host"],"sources":["src/connector/nylas-scheduler-connector/index.ts","src/components/scheduler/nylas-scheduling/scheduler-view.tsx","src/components/scheduler/nylas-scheduling/message-banner.tsx","src/components/scheduler/nylas-scheduling/nylas-scheduling.scss?tag=nylas-scheduling&encapsulation=shadow","src/components/scheduler/nylas-scheduling/nylas-scheduling.tsx"],"sourcesContent":["import { NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n public slug: string | undefined;\n public clientId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId && !(slug || clientId)) {\n throw new Error('sessionId is required for private configs. If using public config either pass a configurationId or a combination of slug and clientId.');\n }\n\n // If the url is only /, then we need to add the base url.\n // We assume that the base url is the same as the current url.\n if (schedulerAPIURL === '/') {\n const url = new URL(window.location.href);\n schedulerAPIURL = url.origin;\n }\n\n this.configId = configId;\n this.sessionId = sessionId;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasSchedulerStore = nylasSchedulerStore;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n sessionId: this.sessionId,\n configId: this.configId,\n slug: this.slug,\n clientId: this.clientId,\n });\n return this._schedulerAPIConnector;\n }\n\n public resetStores() {\n this.nylasSchedulerStore.reset();\n }\n}\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConnectorPublicMethods = PublicMethods<NylasSchedulerConnector>;\n","import { Fragment, FunctionalComponent, h } from '@stencil/core';\n\nexport type SchedulerViewProps = {\n isLoading?: boolean;\n showNotification?: boolean;\n nylasBranding?: boolean;\n};\n\n/**\n * The Scheduler view component.\n */\nexport const SchedulerView: FunctionalComponent<SchedulerViewProps> = (props: SchedulerViewProps, children) => {\n const isLoading = props.isLoading;\n const showNotification = props.showNotification;\n const nylasBranding = props.nylasBranding;\n\n return (\n <Fragment>\n {showNotification && <nylas-notification></nylas-notification>}\n\n {isLoading && (\n <div class={'loading'}>\n <div class={'left'}>\n <div class={'skeleton'} />\n </div>\n <div class={'right'}>\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n </div>\n </div>\n )}\n {!isLoading && children}\n <div class={'footer'}>\n {nylasBranding && (\n <Fragment>\n Powered by&nbsp;\n <nylas-logo />\n </Fragment>\n )}\n </div>\n </Fragment>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\nexport type HeaderBannerProps = {};\n\nexport const MessageBanner: FunctionalComponent<HeaderBannerProps> = (_props: HeaderBannerProps, children) => <div class=\"message-banner\">{children}</div>;\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n\n @media #{$mobile} {\n width: auto;\n min-width: 325px;\n }\n\n background: var(--nylas-base-0);\n position: relative;\n box-shadow:\n 0px 4px 8px 2px rgba(0, 0, 0, 0.05),\n 0px 8px 16px -2px rgba(0, 0, 0, 0.1);\n\n @include default-css-variables;\n font-family: var(--nylas-font-family);\n font-optical-sizing: auto;\n font-style: normal;\n font-variation-settings: 'slnt' 0;\n}\n\n:root {\n font-family: inherit;\n}\n\n.error {\n padding: 8rem 12rem;\n color: var(--nylas-base-0);\n background-color: var(--nylas-error);\n margin: 1.5rem;\n border-radius: var(--nylas-border-radius-2x);\n}\n\n.message-banner {\n text-align: right;\n color: var(--nylas-base-800);\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-color-primary-200);\n margin: 0;\n}\n\n.loading {\n margin: 1.5rem;\n display: flex;\n gap: 1rem;\n\n .skeleton {\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite;\n\n &:nth-child(2) {\n animation-delay: -100ms;\n }\n\n &:nth-child(3) {\n animation-delay: -200ms;\n }\n\n &:nth-child(4) {\n animation-delay: -300ms;\n }\n\n &:nth-child(5) {\n animation-delay: -400ms;\n }\n }\n\n .left .skeleton {\n height: 100%;\n width: 400px;\n }\n\n .right .skeleton {\n height: 5rem;\n width: 300px;\n margin-bottom: 1rem;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.select-date-page,\n.additional-data-page,\n.booked-event-page,\n.manual-confirmation-page,\n.cancelled-event-page,\n.cancel-flow-page {\n border-top-left-radius: var(--nylas-border-radius-2x);\n border-top-right-radius: var(--nylas-border-radius-2x);\n}\n\n.select-date-page,\n.additional-data-page {\n display: flex;\n\n @media #{$mobile} {\n flex-direction: column;\n }\n}\n\n.booked-event-page,\n.manual-confirmation-page {\n background-color: var(--nylas-base-50);\n}\n\n.cancelled-event-page,\n.manual-confirmation-page,\n.cancel-flow-page {\n padding: 1rem;\n height: 496px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.booked-event-page,\n.manual-confirmation-page,\n.cancelled-event-page,\n.cancel-flow-page {\n min-width: 784px;\n\n @media #{$mobile} {\n min-width: 90%;\n }\n\n background: var(--nylas-base-50);\n}\n\n.left-panel {\n display: flex;\n flex-direction: column;\n min-width: 424px;\n border-top-left-radius: inherit;\n background: var(--nylas-base-0);\n position: relative;\n padding: 1rem 0 0 0;\n height: 624px;\n\n @media #{$mobile} {\n border-top-right-radius: inherit;\n min-width: unset;\n height: auto;\n }\n}\n\n.select-date-page .left-panel {\n @media #{$mobile} {\n padding: 0.5rem 4px 0;\n height: 624px;\n }\n}\n\n.border {\n margin-left: -20px; // Offset left padding\n margin-right: -20px; // Offset right padding\n border-top-width: 1px;\n height: 0.5px;\n background-color: var(--nylas-base-200);\n\n @media #{$mobile} {\n display: none;\n }\n}\n\n.right-panel {\n min-width: 360px;\n width: 360px;\n background-color: var(--nylas-base-50);\n height: 624px;\n padding-top: 16px;\n border-left: 1px solid var(--nylas-base-200);\n border-top-right-radius: inherit;\n\n &.reschedule {\n border-top-right-radius: 0px;\n }\n\n @media #{$mobile} {\n border-top-right-radius: 0px;\n width: inherit;\n min-width: unset;\n height: auto;\n }\n\n h2 {\n display: flex;\n margin: 0;\n height: 48px;\n gap: 0.5rem;\n justify-content: center;\n align-items: center;\n width: auto;\n font-size: 1.125rem;\n line-height: 1.5rem;\n font-weight: 500;\n text-align: center;\n color: var(--nylas-base-800);\n }\n}\n\n.additional-data-page {\n .left-panel {\n background-color: var(--nylas-base-50);\n }\n\n .right-panel {\n background-color: var(--nylas-base-0);\n }\n}\n\nnylas-selected-event-card {\n height: calc(640px - 36px);\n padding: 0 1rem;\n\n @media #{$mobile} {\n height: 250px;\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 16px;\n font-size: 14px;\n font-weight: 300;\n color: var(--nylas-base-500);\n border-top: 1px solid var(--nylas-base-200);\n min-height: 24px;\n\n svg {\n fill: var(--nylas-base-500);\n }\n}\n\n.footer svg {\n margin-top: 1px;\n}\n\nnylas-selected-event-card::part(nsec__timezone) {\n position: absolute;\n bottom: 0;\n}\n\nnylas-notification {\n margin: 1.5rem;\n width: -webkit-fill-available;\n width: -moz-available;\n position: absolute;\n}\n\nnylas-locale-switch {\n position: absolute;\n padding: 18px 20px;\n bottom: 0;\n width: -webkit-fill-available;\n width: -moz-available;\n border-top: 1px solid var(--nylas-base-200);\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\nnylas-date-picker {\n padding: 0 20px;\n}\n\nbutton-component#report-issue {\n width: auto;\n position: absolute;\n bottom: 4px;\n left: 16px;\n}\n\nnylas-feedback-form {\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n border-radius: inherit;\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport {\n NylasSchedulerBookingData,\n ThemeConfig,\n Notification,\n NotificationType,\n NylasSchedulerErrorResponse,\n Timeslot,\n NylasSchedulerResponse,\n NylasSuccessResponse,\n} from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { addDaysToCurrentDate, capitalizeFirstLetter, compactStringToUUIDs, debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { ErrorCategory } from '@/connector/nylas-scheduler-connector/errors';\nimport { MessageBanner } from './message-banner';\nimport i18next from '@/utils/i18n';\nimport { NylasEvent, UISettingsResponse } from '@/common/types';\nimport { LANGUAGE_CODE, LANGUAGE_CODE_MAP, Locale } from '@/common/constants';\nimport * as Sentry from '@sentry/browser';\n\nconst genericError = { title: i18next.t('genericErrorTitle'), type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__title - [nylas-date-picker] The title.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ndp__date--disabled - [nylas-date-picker] The disabled dates.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button.\n * @part nbf__button-outline - [nylas-booking-form] The outline button.\n * @part nbf__button-primary - [nylas-booking-form] The primary button.\n * @part nbf__input-wrapper - [nylas-booking-form] The input wrapper.\n * @part nbf__checkbox-component - [nylas-booking-form] The checkbox component.\n * @part nbf__radio-button-group - [nylas-booking-form] The radio button group.\n * @part nbf__textarea-component - [nylas-booking-form] The textarea component.\n * @part nbf__dropdown - [nylas-booking-form] The dropdown component.\n * @part nbf__dropdown-button - [nylas-booking-form] The dropdown button.\n * @part nbf__dropdown-content - [nylas-booking-form] The dropdown content.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n * @part nls - [nylas-locale-switch] The locale switch container.\n * @part nls__timezone - [nylas-locale-switch] The timezone select container\n * @part nls__timezone-dropdown - [nylas-locale-switch] The timezone dropdown\n * @part nls__timezone-drop-button - [nylas-locale-switch] The timezone dropdown button\n * @part nls__timezone-drop-button-selected-label - [nylas-locale-switch] The timezone dropdown button selected label\n * @part nls__timezone-drop-content - [nylas-locale-switch] The timezone dropdown content\n * @part nls__timezone-drop-label - [nylas-locale-switch] The timezone dropdown label\n * @part nls__language - [nylas-locale-switch] The language select container\n * @part nls__language-dropdown - [nylas-locale-switch] The language dropdown\n * @part nls__language-drop-button - [nylas-locale-switch] The language dropdown button\n * @part nls__language-drop-content - [nylas-locale-switch] The language dropdown content\n * @part nls__language-drop-label - [nylas-locale-switch] The language dropdown label\n * @part ncbf - [nylas-cancel-booking-form] The cancel booking form container.\n * @part ncbf__icon - [nylas-cancel-booking-form] The calendar icon.\n * @part ncbf__title - [nylas-cancel-booking-form] The title of the cancel booking form.\n * @part ncbf__description - [nylas-cancel-booking-form] The description of the cancel booking form.\n * @part ncbf__reason-textarea - [nylas-cancel-booking-form] The reason textarea.\n * @part ncbf__button-cta - [nylas-cancel-booking-form] The cancel booking form CTA button.\n * @part ncbf__button-outline - [nylas-cancel-booking-form] The cancel booking form outline button.\n * @part ncbf__card - [nylas-cancel-booking-form] The cancel booking form card.\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Ref required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingRef?: string;\n\n /**\n * Booking Ref required for cancelling flow.\n */\n @Prop() readonly cancelBookingRef?: string;\n\n /**\n * Booking Ref required for the manual confirmation flow.\n */\n @Prop() readonly organizerConfirmationBookingRef?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * The slug of the configuration (public config) to be used for the Nylas Scheduler. This is used in conjunction with the clientId.\n * When the configurationId is not provided, the slug and clientId are used to make requests to the Scheduler API endpoints.\n * If the configurationId is provided, this prop will be ignored.\n */\n @Prop() readonly slug?: string;\n\n /**\n * The app ID of the configuration (public config) to be used for the Nylas Scheduler. This is used in conjunction with the slug.\n * When the configurationId is not provided, the slug and clientId are used to make requests to the Scheduler API endpoints.\n * If the configurationId is provided, this prop will be ignored.\n */\n @Prop() readonly clientId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /**\n * This prop will allow to override the default localization strings for each language.\n * Nylas scheduling page currently support the following language codes: en, es, fr, de, sv, zh, ja, nl.\n */\n @Prop() readonly localization?: Partial<Record<LANGUAGE_CODE, Locale>>;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n @Prop() readonly enableUserFeedback?: boolean = true;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(undefined, { dateStyle: 'full' }) || `${i18next.t('noDateSelected')}`;\n\n /**\n * The config id extracted from the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef.\n */\n @State() refConfigId?: string;\n\n /**\n * The selected language for the Nylas Scheduler.\n */\n @State() language: string = navigator.language;\n\n /**\n * The state for showing the feedback modal.\n */\n @State() showFeedbackModal: boolean = false;\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n @Event({\n eventName: 'configSettingsLoaded',\n })\n configSettingsLoaded!: EventEmitter<{ settings: NylasSchedulerResponse<UISettingsResponse> }>;\n\n /**\n * This event is triggered if either the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef prop\n * is supplied and the component has been attached to the DOM. It emits the configurationId\n * and bookingId derived from the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef. Subscribe to this\n * event to obtain the extracted configurationId, which is necessary to generate the sessionID\n * for configurations that are not public.\n */\n @Event() bookingRefExtracted!: EventEmitter<{ configurationId: string; bookingId: string; salt?: string }>;\n\n /**\n * This event is triggered on successful booking request. It emits the event data.\n */\n @Event() bookedEventInfo!: EventEmitter<NylasSchedulerResponse<NylasEvent>>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n\n if (this.enableUserFeedback && !Sentry.isInitialized()) {\n Sentry.init({\n dsn: 'https://9d5731f1c77ca84c9ed3fb9b3ccf7ee1@o74852.ingest.us.sentry.io/4507889638178816',\n release: process.env.PACKAGE_VERSION,\n integrations: integrations => [\n ...integrations.filter(_integration => false), // Removes default integrations (including Breadcrumbs)\n Sentry.feedbackIntegration({\n colorScheme: 'system',\n autoInject: false,\n }),\n ],\n // Disable all other event capture\n autoSessionTracking: false, // Disable session tracking\n beforeSend: () => null, // Prevents error events from being sent\n });\n }\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if ('schedulerWillLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerWillLoad(schedulerWillLoadEvent, this.nylasSchedulerConnector);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n // Set the configId to the reschedule configId if rescheduleBookingRef is provided or\n // Set the configId to the cancel configId if cancelBookingRef is provided\n this.refConfigId = this.configurationId;\n let bookingRefExtractedEvent;\n if (this.rescheduleBookingRef) {\n const [rescheduleConfigId, rescheduleBookingId, _] = compactStringToUUIDs(this.rescheduleBookingRef);\n this.refConfigId = rescheduleConfigId;\n this.stores.scheduler.set('rescheduleBookingId', rescheduleBookingId);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: rescheduleConfigId, bookingId: rescheduleBookingId });\n } else if (this.cancelBookingRef) {\n const [cancelConfigId, cancelBookingId, _] = compactStringToUUIDs(this.cancelBookingRef);\n this.refConfigId = cancelConfigId;\n this.stores.scheduler.set('cancelBookingId', cancelBookingId);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: cancelConfigId, bookingId: cancelBookingId });\n } else if (this.organizerConfirmationBookingRef) {\n const [organizerConfirmationConfigId, organizerConfirmationBookingId, salt] = compactStringToUUIDs(this.organizerConfirmationBookingRef);\n this.refConfigId = organizerConfirmationConfigId;\n this.stores.scheduler.set('organizerConfirmationBookingId', organizerConfirmationBookingId);\n this.stores.scheduler.set('organizerConfirmationSalt', salt);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: organizerConfirmationConfigId, bookingId: organizerConfirmationBookingId, salt: salt });\n }\n\n if ('bookingRefExtracted' in this.eventOverrides) {\n await this.eventOverrides.bookingRefExtracted(bookingRefExtractedEvent, this.nylasSchedulerConnector);\n if (bookingRefExtractedEvent.defaultPrevented) {\n return;\n }\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.refConfigId,\n slug: this.slug,\n clientId: this.clientId,\n nylasSchedulerStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if ('init' in this.eventOverrides) {\n await this.eventOverrides.init(initEvent, this.nylasSchedulerConnector);\n if (initEvent.defaultPrevented) {\n return;\n }\n }\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n // Override theme\n this.applyThemeConfig(this.themeConfig);\n }\n\n async componentDidLoad() {\n this.baseProvider?.componentDidLoad();\n\n const schedulerDidLoadEvent = this.schedulerDidLoad.emit(this.host);\n if ('schedulerDidLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerDidLoad(schedulerDidLoadEvent, this.nylasSchedulerConnector);\n if (schedulerDidLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n this.localizationChanged(this.localization);\n const settingsResponse = await this.nylasSchedulerConnector?.scheduler.getUISettings();\n if (!settingsResponse || 'error' in settingsResponse) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(settingsResponse?.error) }, host: this.host });\n return;\n } else {\n if ('data' in settingsResponse && settingsResponse.data?.appearance) {\n console.info(\n 'Appearance settings have been returned from the configuration used byt his scheduling page; please remember to grab them from the configSettingsLoaded event and apply them as desired.',\n );\n }\n const configSettingsLoadedEvent = this.configSettingsLoaded.emit({ settings: settingsResponse });\n if ('configSettingsLoaded' in this.eventOverrides) {\n await this.eventOverrides.configSettingsLoaded(configSettingsLoadedEvent, this.nylasSchedulerConnector);\n if (configSettingsLoadedEvent.defaultPrevented) {\n return;\n }\n }\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const availableDaysInFuture = nylasSchedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n const today = new Date();\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(today, availableDaysInFuture || 30);\n if (today.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n } else {\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(selectedDate, availableDaysInFuture || 30);\n if (selectedDate.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n }\n\n @Watch('rescheduleBookingRef')\n rescheduleBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('rescheduleBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('cancelBookingRef')\n cancelBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('cancelBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('organizerConfirmationBookingRef')\n organizerConfirmationBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('organizerConfirmationBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('localization')\n localizationChanged(newVal?: Partial<Record<LANGUAGE_CODE, Locale>>) {\n if (!newVal) {\n return;\n }\n\n Object.keys(newVal).forEach(lang => {\n if (!(lang in LANGUAGE_CODE)) {\n return;\n }\n i18next.addResourceBundle(\n lang,\n 'translation',\n newVal[lang],\n false, // Merge with existing translations\n true, // Replace the existing translations with the same key\n );\n this.language = this.language;\n });\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newVal?: ThemeConfig) {\n this.applyThemeConfig(newVal);\n }\n\n @Listen('languageChanged')\n languageChanged(event: CustomEvent<string>) {\n const newLanguage = event.detail;\n this.language = newLanguage;\n i18next.changeLanguage(newLanguage);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const availableDaysInFuture = this.nylasSchedulerConnector?.schedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(date, availableDaysInFuture || 30);\n\n if (startTime < endTimeForAvailableDaysInFuture && date.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const selectableDates = this.stores?.scheduler.get('selectableDates');\n if (selectableDates && selectableDates.length > 0) {\n this.stores?.scheduler.set('selectedDate', selectableDates[0]);\n }\n }\n }\n\n mapToBookingData(bookingInfo: NylasSchedulerBookingData): any {\n const timeslot = this.stores?.scheduler.get('selectedTimeslot');\n const language = this.stores?.scheduler.get('selectedLanguage');\n const timezone = this.stores?.scheduler.get('selectedTimezone');\n const startTime = timeslot?.start_time ? new Date(timeslot?.start_time).getTime() / 1000 : '';\n const endTime = timeslot?.end_time ? new Date(timeslot?.end_time).getTime() / 1000 : '';\n return {\n additional_guests: bookingInfo.guests,\n guest: bookingInfo.primaryParticipant,\n additional_fields: bookingInfo.additionalFields,\n start_time: startTime,\n end_time: endTime,\n email_language: language,\n timezone: timezone,\n };\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingData>) {\n const bookingData = event.detail;\n const mappedBookingData = this.mapToBookingData(bookingData);\n const storeBookingInfo = this.nylasSchedulerConnector?.schedulerStore?.get('bookingInfo');\n const bookingInfo = { ...storeBookingInfo, ...bookingData };\n this.stores?.scheduler.set('bookingInfo', bookingInfo);\n\n const storeRescheduleId = this.nylasSchedulerConnector?.schedulerStore?.get('rescheduleBookingId');\n const rescheduleBookingId = storeRescheduleId;\n if (rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(rescheduleBookingId, bookingData);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const resultData = (result as NylasSuccessResponse<NylasEvent>)?.data;\n const bookedEventInfoEvent = this.bookedEventInfo.emit({ ...result, data: { ...resultData, ...mappedBookingData } });\n if ('bookedEventInfo' in this.eventOverrides) {\n await this.eventOverrides.bookedEventInfo(bookedEventInfoEvent, this.nylasSchedulerConnector);\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(bookingData);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const resultData = (result as NylasSuccessResponse<NylasEvent>)?.data;\n const bookedEventInfoEvent = this.bookedEventInfo.emit({ ...result, data: { ...resultData, ...mappedBookingData } });\n if ('bookedEventInfo' in this.eventOverrides) {\n await this.eventOverrides.bookedEventInfo(bookedEventInfoEvent, this.nylasSchedulerConnector);\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(undefined, { dateStyle: 'full' }) : `${i18next.t('noDateSelected')}`;\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('cancelBookedEventValidationError')\n cancelBookedEventValidationErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * manual confirmation button is clicked on the manual confirmation card.\n */\n @Listen('confirmBookingError')\n confirmBookingErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('feedbackModalClosed')\n feedbackModalClosedHandler() {\n this.showFeedbackModal = false;\n }\n\n @Listen('feedbackSubmitted')\n feedbackSubmittedHandler(event: CustomEvent<{ feedback: string }>) {\n const eventId = Sentry.captureMessage('Scheduling Page User Feedback');\n const feedback = {\n eventId: eventId,\n message: event.detail.feedback,\n };\n Sentry.captureFeedback(feedback, {\n includeReplay: true,\n captureContext: {\n tags: {\n 'nylas-web-element': 'nylas-schduling',\n 'nylas-web-element-version': process.env.PACKAGE_VERSION,\n },\n extra: {\n configId: this.configurationId,\n slug: this.slug,\n },\n },\n });\n this.showFeedbackModal = false;\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n private checkIfSessionIdOrConfigIdExists(): boolean {\n if (!this.sessionId && !this.refConfigId && !(this.slug && this.clientId)) {\n let description = '';\n\n if (!this.sessionId) {\n description += i18next.t('sessionIdRequiredErrorMessage');\n }\n\n if (!this.sessionId && !this.refConfigId && !(this.slug && this.clientId)) {\n description = i18next.t('sessionIdRequiredErrorMessage') + ' ' + i18next.t('publicConfigErrorMessage');\n }\n\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('schedulingComponentErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: description,\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('invalidTimeslotErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('invalidTimeslotErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private validateAvailableDaysInFuture(\n startDate: Date,\n availableDaysInFuture: number,\n ): {\n startTime: number;\n endTime: number;\n endTimeForAvailableDaysInFuture: number;\n } {\n const today = new Date();\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), 1).getTime() / 1000;\n const endTimeForCurrentMonth = new Date(startDate.getFullYear(), startDate.getMonth() + 1, 1).getTime() / 1000;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTime = Math.min(endTimeForAvailableDaysInFuture, endTimeForCurrentMonth);\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n return { startTime: startTimeWithOffset, endTime, endTimeForAvailableDaysInFuture };\n }\n\n private applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n onFeedbackClick() {\n this.showFeedbackModal = true;\n }\n\n /**\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n * @slot custom-booking-form - This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @deprecated Deprecated in favor of using the additional fields defined in the config settings.\n */\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId');\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId');\n const organizerConfirmationBookingId = nylasSchedulerStore?.get('organizerConfirmationBookingId');\n const rejectBookingId = nylasSchedulerStore?.get('rejectBookingId');\n const confirmedEventInfo = nylasSchedulerStore?.get('confirmedEventInfo');\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const redirectUrl = nylasSchedulerStore?.get('configSettings')?.scheduler?.confirmation_redirect_url;\n this.selectedDateLabel =\n selectedDate && this.language\n ? capitalizeFirstLetter(selectedDate.toLocaleDateString(LANGUAGE_CODE_MAP[this.language], { dateStyle: 'full' }))\n : `${i18next.t('noDateSelected')}`;\n\n if (showDefaultScheduler && (cancelBookingId || rejectBookingId) && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form\n selectedTimeslot={selectedTimeslot}\n cancelBookingId={cancelBookingId}\n rejectBookingId={rejectBookingId}\n exportparts=\"ncbf, ncbf__icon, ncbf__title, ncbf__description, ncbf__reason-textarea, ncbf__button-cta, ncbf__button-outline, ncbf__card\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Manual confirmation page is shown when the event is manually confirmed\n if (showDefaultScheduler && organizerConfirmationBookingId) {\n return (\n <Host>\n <SchedulerView>\n <div class=\"manual-confirmation-page\" part=\"manual-confirmation-page\">\n <nylas-organizer-confirmation-card\n organizerConfirmationBookingId={organizerConfirmationBookingId}\n exportparts=\"nmcc, nmcc__title, nmcc__description, nmcc__button-cta, nmcc__button-outline\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Confirmed event card is shown when the event is confirmed\n if (showDefaultScheduler && confirmedEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"confirmed-event-page\">\n <nylas-confirmed-event-card\n confirmedEventInfo={confirmedEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Redirected to custom URL when the event is booked and redirect URL is provided\n if (showDefaultScheduler && eventInfo && redirectUrl) {\n const recipient = this.stores?.scheduler.get('bookingInfo')?.primaryParticipant;\n const additionalFields = this.stores?.scheduler.get('bookingInfo')?.additionalFields;\n const selectedTimeslot = this.stores?.scheduler.get('selectedTimeslot');\n const selectedTimezone = this.stores?.scheduler.get('selectedTimezone');\n const selectedLanguage = this.stores?.scheduler.get('selectedLanguage');\n const configSettings = this.stores?.scheduler.get('configSettings');\n\n const configurationId = this.configurationId ? this.configurationId : configSettings?.configuration_id;\n const queryString = window.location.search;\n\n const urlParams = new URLSearchParams(queryString);\n urlParams.set('booking_id', eventInfo.booking_id);\n recipient?.name && urlParams.set('name', recipient.name);\n recipient?.email && urlParams.set('email', recipient.email);\n selectedTimeslot?.start_time && urlParams.set('start_time', (new Date(selectedTimeslot.start_time).getTime() / 1000).toString());\n selectedTimeslot?.end_time && urlParams.set('end_time', (new Date(selectedTimeslot.end_time).getTime() / 1000).toString());\n selectedTimezone && urlParams.set('tz', selectedTimezone);\n selectedLanguage && urlParams.set('language', selectedLanguage);\n additionalFields && urlParams.set('additional_values', JSON.stringify(additionalFields));\n this.slug && urlParams.set('page_slug', this.slug);\n configurationId && urlParams.set('config_id', configurationId);\n\n window.location.assign(`${redirectUrl}?${urlParams.toString()}`);\n return;\n }\n\n // Booked event card is shown when the event is booked or booking is sent\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page\">\n <div class=\"left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__title, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--disabled, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <nylas-locale-switch exportparts=\"nls, nls__timezone, nls__timezone-dropdown, nls__timezone-drop-button, nls__timezone-drop-button-selected-label, nls__timezone-drop-content, nls__timezone-drop-label, nls__language, nls__language-dropdown, nls__language-drop-button, nls__language-drop-content, nls__language-drop-label\"></nylas-locale-switch>\n </div>\n <div class={`right-panel ${rescheduleBookingId ? 'reschedule' : ''}`}>\n <h2>\n <calendar-icon></calendar-icon>\n <span id=\"selectedDate\">{this.selectedDateLabel}</span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page\">\n <div class=\"left-panel\">\n <div class=\"wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time, nsec__timezone\"></nylas-selected-event-card>\n </div>\n </div>\n <div class={`right-panel ${rescheduleBookingId ? 'reschedule' : ''}`}>\n <nylas-booking-form exportparts=\"nbf, nbf__input-textfield, nbf__button-ghost, nbf__button-outline, nbf__button-primary, nbf__input-wrapper, nbf__checkbox-component, nbf__radio-button-group, nbf__textarea-component, nbf__dropdown, nbf__dropdown-button, nbf__dropdown-content\"></nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-scheduling.entry.cjs.js","mappings":"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","names":["debug","NylaSchedulerAPIConnector","h","Fragment","i18next","NotificationType","ErrorCategory","Sentry.isInitialized","Sentry.init","Sentry.feedbackIntegration","CreateNylasSchedulerStore","NylasBaseProvider","compactStringToUUIDs","LANGUAGE_CODE","Sentry.captureMessage","Sentry.captureFeedback","addDaysToCurrentDate","capitalizeFirstLetter","LANGUAGE_CODE_MAP","Host"],"sources":["src/connector/nylas-scheduler-connector/index.ts","src/components/scheduler/nylas-scheduling/scheduler-view.tsx","src/components/scheduler/nylas-scheduling/message-banner.tsx","src/components/scheduler/nylas-scheduling/nylas-scheduling.scss?tag=nylas-scheduling&encapsulation=shadow","src/components/scheduler/nylas-scheduling/nylas-scheduling.tsx"],"sourcesContent":["import { NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n public slug: string | undefined;\n public clientId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId && !(slug || clientId)) {\n throw new Error('sessionId is required for private configs. If using public config either pass a configurationId or a combination of slug and clientId.');\n }\n\n // If the url is only /, then we need to add the base url.\n // We assume that the base url is the same as the current url.\n if (schedulerAPIURL === '/') {\n const url = new URL(window.location.href);\n schedulerAPIURL = url.origin;\n }\n\n this.configId = configId;\n this.sessionId = sessionId;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasSchedulerStore = nylasSchedulerStore;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n sessionId: this.sessionId,\n configId: this.configId,\n slug: this.slug,\n clientId: this.clientId,\n });\n return this._schedulerAPIConnector;\n }\n\n public resetStores() {\n this.nylasSchedulerStore.reset();\n }\n}\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConnectorPublicMethods = PublicMethods<NylasSchedulerConnector>;\n","import { Fragment, FunctionalComponent, h } from '@stencil/core';\n\nexport type SchedulerViewProps = {\n isLoading?: boolean;\n showNotification?: boolean;\n nylasBranding?: boolean;\n};\n\n/**\n * The Scheduler view component.\n */\nexport const SchedulerView: FunctionalComponent<SchedulerViewProps> = (props: SchedulerViewProps, children) => {\n const isLoading = props.isLoading;\n const showNotification = props.showNotification;\n const nylasBranding = props.nylasBranding;\n\n return (\n <Fragment>\n {showNotification && <nylas-notification></nylas-notification>}\n\n {isLoading && (\n <div class={'loading'}>\n <div class={'left'}>\n <div class={'skeleton'} />\n </div>\n <div class={'right'}>\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n </div>\n </div>\n )}\n {!isLoading && children}\n <div class={'footer'}>\n {nylasBranding && (\n <Fragment>\n Powered by&nbsp;\n <nylas-logo />\n </Fragment>\n )}\n </div>\n </Fragment>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\nexport type HeaderBannerProps = {};\n\nexport const MessageBanner: FunctionalComponent<HeaderBannerProps> = (_props: HeaderBannerProps, children) => <div class=\"message-banner\">{children}</div>;\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n\n @media #{$mobile} {\n width: auto;\n min-width: 325px;\n }\n\n background: var(--nylas-base-0);\n position: relative;\n box-shadow:\n 0px 4px 8px 2px rgba(0, 0, 0, 0.05),\n 0px 8px 16px -2px rgba(0, 0, 0, 0.1);\n\n @include default-css-variables;\n font-family: var(--nylas-font-family);\n font-optical-sizing: auto;\n font-style: normal;\n font-variation-settings: 'slnt' 0;\n}\n\n:root {\n font-family: inherit;\n}\n\n.error {\n padding: 8rem 12rem;\n color: var(--nylas-base-0);\n background-color: var(--nylas-error);\n margin: 1.5rem;\n border-radius: var(--nylas-border-radius-2x);\n}\n\n.message-banner {\n text-align: right;\n color: var(--nylas-base-800);\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-color-primary-200);\n margin: 0;\n}\n\n.loading {\n margin: 1.5rem;\n display: flex;\n gap: 1rem;\n\n .skeleton {\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite;\n\n &:nth-child(2) {\n animation-delay: -100ms;\n }\n\n &:nth-child(3) {\n animation-delay: -200ms;\n }\n\n &:nth-child(4) {\n animation-delay: -300ms;\n }\n\n &:nth-child(5) {\n animation-delay: -400ms;\n }\n }\n\n .left .skeleton {\n height: 100%;\n width: 400px;\n }\n\n .right .skeleton {\n height: 5rem;\n width: 300px;\n margin-bottom: 1rem;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.select-date-page,\n.additional-data-page,\n.booked-event-page,\n.manual-confirmation-page,\n.cancelled-event-page,\n.cancel-flow-page {\n border-top-left-radius: var(--nylas-border-radius-2x);\n border-top-right-radius: var(--nylas-border-radius-2x);\n}\n\n.select-date-page,\n.additional-data-page {\n display: flex;\n\n @media #{$mobile} {\n flex-direction: column;\n }\n}\n\n.booked-event-page,\n.manual-confirmation-page {\n background-color: var(--nylas-base-50);\n}\n\n.cancelled-event-page,\n.manual-confirmation-page,\n.cancel-flow-page {\n padding: 1rem;\n height: 496px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.booked-event-page,\n.manual-confirmation-page,\n.cancelled-event-page,\n.cancel-flow-page {\n min-width: 784px;\n\n @media #{$mobile} {\n min-width: 90%;\n }\n\n background: var(--nylas-base-50);\n}\n\n.left-panel {\n display: flex;\n flex-direction: column;\n min-width: 424px;\n border-top-left-radius: inherit;\n background: var(--nylas-base-0);\n position: relative;\n padding: 1rem 0 0 0;\n height: 624px;\n\n @media #{$mobile} {\n border-top-right-radius: inherit;\n min-width: unset;\n height: auto;\n }\n}\n\n.select-date-page .left-panel {\n @media #{$mobile} {\n padding: 0.5rem 4px 0;\n height: 624px;\n }\n}\n\n.border {\n margin-left: -20px; // Offset left padding\n margin-right: -20px; // Offset right padding\n border-top-width: 1px;\n height: 0.5px;\n background-color: var(--nylas-base-200);\n\n @media #{$mobile} {\n display: none;\n }\n}\n\n.right-panel {\n min-width: 360px;\n width: 360px;\n background-color: var(--nylas-base-50);\n height: 624px;\n padding-top: 16px;\n border-left: 1px solid var(--nylas-base-200);\n border-top-right-radius: inherit;\n\n &.reschedule {\n border-top-right-radius: 0px;\n }\n\n @media #{$mobile} {\n border-top-right-radius: 0px;\n width: inherit;\n min-width: unset;\n height: auto;\n }\n\n h2 {\n display: flex;\n margin: 0;\n height: 48px;\n gap: 0.5rem;\n justify-content: center;\n align-items: center;\n width: auto;\n font-size: 1.125rem;\n line-height: 1.5rem;\n font-weight: 500;\n text-align: center;\n color: var(--nylas-base-800);\n }\n}\n\n.additional-data-page {\n .left-panel {\n background-color: var(--nylas-base-50);\n }\n\n .right-panel {\n background-color: var(--nylas-base-0);\n }\n}\n\nnylas-selected-event-card {\n height: calc(640px - 36px);\n padding: 0 1rem;\n\n @media #{$mobile} {\n height: 250px;\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 16px;\n font-size: 14px;\n font-weight: 300;\n color: var(--nylas-base-500);\n border-top: 1px solid var(--nylas-base-200);\n min-height: 24px;\n\n svg {\n fill: var(--nylas-base-500);\n }\n}\n\n.footer svg {\n margin-top: 1px;\n}\n\nnylas-selected-event-card::part(nsec__timezone) {\n position: absolute;\n bottom: 0;\n}\n\nnylas-notification {\n margin: 1.5rem;\n width: -webkit-fill-available;\n width: -moz-available;\n position: absolute;\n}\n\nnylas-locale-switch {\n position: absolute;\n padding: 18px 20px;\n bottom: 0;\n width: -webkit-fill-available;\n width: -moz-available;\n border-top: 1px solid var(--nylas-base-200);\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\nnylas-date-picker {\n padding: 0 20px;\n}\n\nbutton-component#report-issue {\n width: auto;\n position: absolute;\n bottom: 4px;\n left: 16px;\n}\n\nnylas-feedback-form {\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n border-radius: inherit;\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport {\n NylasSchedulerBookingData,\n ThemeConfig,\n Notification,\n NotificationType,\n NylasSchedulerErrorResponse,\n Timeslot,\n NylasSchedulerResponse,\n NylasSuccessResponse,\n} from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { addDaysToCurrentDate, capitalizeFirstLetter, compactStringToUUIDs, debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { ErrorCategory } from '@/connector/nylas-scheduler-connector/errors';\nimport { MessageBanner } from './message-banner';\nimport i18next from '@/utils/i18n';\nimport { NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { LANGUAGE_CODE, LANGUAGE_CODE_MAP, Locale } from '@/common/constants';\nimport * as Sentry from '@sentry/browser';\n\nconst genericError = { title: i18next.t('genericErrorTitle'), type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__title - [nylas-date-picker] The title.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ndp__date--disabled - [nylas-date-picker] The disabled dates.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button.\n * @part nbf__button-outline - [nylas-booking-form] The outline button.\n * @part nbf__button-primary - [nylas-booking-form] The primary button.\n * @part nbf__input-wrapper - [nylas-booking-form] The input wrapper.\n * @part nbf__checkbox-component - [nylas-booking-form] The checkbox component.\n * @part nbf__radio-button-group - [nylas-booking-form] The radio button group.\n * @part nbf__textarea-component - [nylas-booking-form] The textarea component.\n * @part nbf__dropdown - [nylas-booking-form] The dropdown component.\n * @part nbf__dropdown-button - [nylas-booking-form] The dropdown button.\n * @part nbf__dropdown-content - [nylas-booking-form] The dropdown content.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n * @part nls - [nylas-locale-switch] The locale switch container.\n * @part nls__timezone - [nylas-locale-switch] The timezone select container\n * @part nls__timezone-dropdown - [nylas-locale-switch] The timezone dropdown\n * @part nls__timezone-drop-button - [nylas-locale-switch] The timezone dropdown button\n * @part nls__timezone-drop-button-selected-label - [nylas-locale-switch] The timezone dropdown button selected label\n * @part nls__timezone-drop-content - [nylas-locale-switch] The timezone dropdown content\n * @part nls__timezone-drop-label - [nylas-locale-switch] The timezone dropdown label\n * @part nls__language - [nylas-locale-switch] The language select container\n * @part nls__language-dropdown - [nylas-locale-switch] The language dropdown\n * @part nls__language-drop-button - [nylas-locale-switch] The language dropdown button\n * @part nls__language-drop-content - [nylas-locale-switch] The language dropdown content\n * @part nls__language-drop-label - [nylas-locale-switch] The language dropdown label\n * @part ncbf - [nylas-cancel-booking-form] The cancel booking form container.\n * @part ncbf__icon - [nylas-cancel-booking-form] The calendar icon.\n * @part ncbf__title - [nylas-cancel-booking-form] The title of the cancel booking form.\n * @part ncbf__description - [nylas-cancel-booking-form] The description of the cancel booking form.\n * @part ncbf__reason-textarea - [nylas-cancel-booking-form] The reason textarea.\n * @part ncbf__button-cta - [nylas-cancel-booking-form] The cancel booking form CTA button.\n * @part ncbf__button-outline - [nylas-cancel-booking-form] The cancel booking form outline button.\n * @part ncbf__card - [nylas-cancel-booking-form] The cancel booking form card.\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Ref required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingRef?: string;\n\n /**\n * Booking Ref required for cancelling flow.\n */\n @Prop() readonly cancelBookingRef?: string;\n\n /**\n * Booking Ref required for the manual confirmation flow.\n */\n @Prop() readonly organizerConfirmationBookingRef?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * The slug of the configuration (public config) to be used for the Nylas Scheduler. This is used in conjunction with the clientId.\n * When the configurationId is not provided, the slug and clientId are used to make requests to the Scheduler API endpoints.\n * If the configurationId is provided, this prop will be ignored.\n */\n @Prop() readonly slug?: string;\n\n /**\n * The app ID of the configuration (public config) to be used for the Nylas Scheduler. This is used in conjunction with the slug.\n * When the configurationId is not provided, the slug and clientId are used to make requests to the Scheduler API endpoints.\n * If the configurationId is provided, this prop will be ignored.\n */\n @Prop() readonly clientId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /**\n * This prop will allow to override the default localization strings for each language.\n * Nylas scheduling page currently support the following language codes: en, es, fr, de, sv, zh, ja, nl.\n */\n @Prop() readonly localization?: Partial<Record<LANGUAGE_CODE, Locale>>;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n @Prop() readonly enableUserFeedback?: boolean = true;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(undefined, { dateStyle: 'full' }) || `${i18next.t('noDateSelected')}`;\n\n /**\n * The config id extracted from the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef.\n */\n @State() refConfigId?: string;\n\n /**\n * The selected language for the Nylas Scheduler.\n */\n @State() language: string = navigator.language;\n\n /**\n * The state for showing the feedback modal.\n */\n @State() showFeedbackModal: boolean = false;\n\n /**\n * The state of bookingInfo after the user has confirmed the booking.\n */\n @State() bookingInfoConfirmed: NylasSchedulerBookingDataWithFlatFields | null = null;\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n @Event({\n eventName: 'configSettingsLoaded',\n })\n configSettingsLoaded!: EventEmitter<{ settings: NylasSchedulerResponse<UISettingsResponse> }>;\n\n /**\n * This event is triggered if either the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef prop\n * is supplied and the component has been attached to the DOM. It emits the configurationId\n * and bookingId derived from the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef. Subscribe to this\n * event to obtain the extracted configurationId, which is necessary to generate the sessionID\n * for configurations that are not public.\n */\n @Event() bookingRefExtracted!: EventEmitter<{ configurationId: string; bookingId: string; salt?: string }>;\n\n /**\n * This event is triggered on successful booking request. It emits the event data.\n */\n @Event() bookedEventInfo!: EventEmitter<NylasSchedulerResponse<NylasEvent>>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n\n if (this.enableUserFeedback && !Sentry.isInitialized()) {\n Sentry.init({\n dsn: 'https://9d5731f1c77ca84c9ed3fb9b3ccf7ee1@o74852.ingest.us.sentry.io/4507889638178816',\n release: process.env.PACKAGE_VERSION,\n integrations: integrations => [\n ...integrations.filter(_integration => false), // Removes default integrations (including Breadcrumbs)\n Sentry.feedbackIntegration({\n colorScheme: 'system',\n autoInject: false,\n }),\n ],\n // Disable all other event capture\n autoSessionTracking: false, // Disable session tracking\n beforeSend: () => null, // Prevents error events from being sent\n });\n }\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if ('schedulerWillLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerWillLoad(schedulerWillLoadEvent, this.nylasSchedulerConnector);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n // Set the configId to the reschedule configId if rescheduleBookingRef is provided or\n // Set the configId to the cancel configId if cancelBookingRef is provided\n this.refConfigId = this.configurationId;\n let bookingRefExtractedEvent;\n if (this.rescheduleBookingRef) {\n const [rescheduleConfigId, rescheduleBookingId, _] = compactStringToUUIDs(this.rescheduleBookingRef);\n this.refConfigId = rescheduleConfigId;\n this.stores.scheduler.set('rescheduleBookingId', rescheduleBookingId);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: rescheduleConfigId, bookingId: rescheduleBookingId });\n } else if (this.cancelBookingRef) {\n const [cancelConfigId, cancelBookingId, _] = compactStringToUUIDs(this.cancelBookingRef);\n this.refConfigId = cancelConfigId;\n this.stores.scheduler.set('cancelBookingId', cancelBookingId);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: cancelConfigId, bookingId: cancelBookingId });\n } else if (this.organizerConfirmationBookingRef) {\n const [organizerConfirmationConfigId, organizerConfirmationBookingId, salt] = compactStringToUUIDs(this.organizerConfirmationBookingRef);\n this.refConfigId = organizerConfirmationConfigId;\n this.stores.scheduler.set('organizerConfirmationBookingId', organizerConfirmationBookingId);\n this.stores.scheduler.set('organizerConfirmationSalt', salt);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: organizerConfirmationConfigId, bookingId: organizerConfirmationBookingId, salt: salt });\n }\n\n if ('bookingRefExtracted' in this.eventOverrides) {\n await this.eventOverrides.bookingRefExtracted(bookingRefExtractedEvent, this.nylasSchedulerConnector);\n if (bookingRefExtractedEvent.defaultPrevented) {\n return;\n }\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.refConfigId,\n slug: this.slug,\n clientId: this.clientId,\n nylasSchedulerStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if ('init' in this.eventOverrides) {\n await this.eventOverrides.init(initEvent, this.nylasSchedulerConnector);\n if (initEvent.defaultPrevented) {\n return;\n }\n }\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n // Override theme\n this.applyThemeConfig(this.themeConfig);\n }\n\n async componentDidLoad() {\n this.baseProvider?.componentDidLoad();\n\n const schedulerDidLoadEvent = this.schedulerDidLoad.emit(this.host);\n if ('schedulerDidLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerDidLoad(schedulerDidLoadEvent, this.nylasSchedulerConnector);\n if (schedulerDidLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n this.localizationChanged(this.localization);\n const settingsResponse = await this.nylasSchedulerConnector?.scheduler.getUISettings();\n if (!settingsResponse || 'error' in settingsResponse) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(settingsResponse?.error) }, host: this.host });\n return;\n } else {\n if ('data' in settingsResponse && settingsResponse.data?.appearance) {\n console.info(\n 'Appearance settings have been returned from the configuration used byt his scheduling page; please remember to grab them from the configSettingsLoaded event and apply them as desired.',\n );\n }\n const configSettingsLoadedEvent = this.configSettingsLoaded.emit({ settings: settingsResponse });\n if ('configSettingsLoaded' in this.eventOverrides) {\n await this.eventOverrides.configSettingsLoaded(configSettingsLoadedEvent, this.nylasSchedulerConnector);\n if (configSettingsLoadedEvent.defaultPrevented) {\n return;\n }\n }\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const availableDaysInFuture = nylasSchedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n const today = new Date();\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(today, availableDaysInFuture || 30);\n if (today.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n } else {\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(selectedDate, availableDaysInFuture || 30);\n if (selectedDate.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n }\n\n @Watch('rescheduleBookingRef')\n rescheduleBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('rescheduleBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('cancelBookingRef')\n cancelBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('cancelBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('organizerConfirmationBookingRef')\n organizerConfirmationBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('organizerConfirmationBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('localization')\n localizationChanged(newVal?: Partial<Record<LANGUAGE_CODE, Locale>>) {\n if (!newVal) {\n return;\n }\n\n Object.keys(newVal).forEach(lang => {\n if (!(lang in LANGUAGE_CODE)) {\n return;\n }\n i18next.addResourceBundle(\n lang,\n 'translation',\n newVal[lang],\n false, // Merge with existing translations\n true, // Replace the existing translations with the same key\n );\n this.language = this.language;\n });\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newVal?: ThemeConfig) {\n this.applyThemeConfig(newVal);\n }\n\n @Listen('languageChanged')\n languageChanged(event: CustomEvent<string>) {\n const newLanguage = event.detail;\n this.language = newLanguage;\n i18next.changeLanguage(newLanguage);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const availableDaysInFuture = this.nylasSchedulerConnector?.schedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(date, availableDaysInFuture || 30);\n\n if (startTime < endTimeForAvailableDaysInFuture && date.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const selectableDates = this.stores?.scheduler.get('selectableDates');\n if (selectableDates && selectableDates.length > 0) {\n this.stores?.scheduler.set('selectedDate', selectableDates[0]);\n }\n }\n }\n\n mapToBookingData(bookingInfo: NylasSchedulerBookingDataWithFlatFields): any {\n const timeslot = this.stores?.scheduler.get('selectedTimeslot');\n const language = this.stores?.scheduler.get('selectedLanguage');\n const timezone = this.stores?.scheduler.get('selectedTimezone');\n const startTime = timeslot?.start_time ? new Date(timeslot?.start_time).getTime() / 1000 : '';\n const endTime = timeslot?.end_time ? new Date(timeslot?.end_time).getTime() / 1000 : '';\n return {\n additional_guests: bookingInfo.guests,\n guest: { ...bookingInfo.primaryParticipant },\n additional_fields: { ...bookingInfo.additionalFields },\n start_time: startTime,\n end_time: endTime,\n email_language: language,\n timezone: timezone,\n };\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingDataWithFlatFields>) {\n if (event.defaultPrevented) {\n return;\n }\n const bookingData = event.detail;\n const mappedBookingData = this.mapToBookingData(bookingData);\n this.bookingInfoConfirmed = bookingData;\n\n const storeRescheduleId = this.nylasSchedulerConnector?.schedulerStore?.get('rescheduleBookingId');\n const rescheduleBookingId = storeRescheduleId;\n if (rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(rescheduleBookingId, bookingData);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const resultData = (result as NylasSuccessResponse<NylasEvent>)?.data;\n const bookedEventInfoEvent = this.bookedEventInfo.emit({ ...result, data: { ...resultData, ...mappedBookingData } });\n if ('bookedEventInfo' in this.eventOverrides) {\n await this.eventOverrides.bookedEventInfo(bookedEventInfoEvent, this.nylasSchedulerConnector);\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(bookingData);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const resultData = (result as NylasSuccessResponse<NylasEvent>)?.data;\n const bookedEventInfoEvent = this.bookedEventInfo.emit({ ...result, data: { ...resultData, ...mappedBookingData } });\n if ('bookedEventInfo' in this.eventOverrides) {\n await this.eventOverrides.bookedEventInfo(bookedEventInfoEvent, this.nylasSchedulerConnector);\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(undefined, { dateStyle: 'full' }) : `${i18next.t('noDateSelected')}`;\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('cancelBookedEventValidationError')\n cancelBookedEventValidationErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * manual confirmation button is clicked on the manual confirmation card.\n */\n @Listen('confirmBookingError')\n confirmBookingErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('feedbackModalClosed')\n feedbackModalClosedHandler() {\n this.showFeedbackModal = false;\n }\n\n @Listen('feedbackSubmitted')\n feedbackSubmittedHandler(event: CustomEvent<{ feedback: string }>) {\n const eventId = Sentry.captureMessage('Scheduling Page User Feedback');\n const feedback = {\n eventId: eventId,\n message: event.detail.feedback,\n };\n Sentry.captureFeedback(feedback, {\n includeReplay: true,\n captureContext: {\n tags: {\n 'nylas-web-element': 'nylas-schduling',\n 'nylas-web-element-version': process.env.PACKAGE_VERSION,\n },\n extra: {\n configId: this.configurationId,\n slug: this.slug,\n },\n },\n });\n this.showFeedbackModal = false;\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n private checkIfSessionIdOrConfigIdExists(): boolean {\n if (!this.sessionId && !this.refConfigId && !(this.slug && this.clientId)) {\n let description = '';\n\n if (!this.sessionId) {\n description += i18next.t('sessionIdRequiredErrorMessage');\n }\n\n if (!this.sessionId && !this.refConfigId && !(this.slug && this.clientId)) {\n description = i18next.t('sessionIdRequiredErrorMessage') + ' ' + i18next.t('publicConfigErrorMessage');\n }\n\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('schedulingComponentErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: description,\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('invalidTimeslotErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('invalidTimeslotErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private validateAvailableDaysInFuture(\n startDate: Date,\n availableDaysInFuture: number,\n ): {\n startTime: number;\n endTime: number;\n endTimeForAvailableDaysInFuture: number;\n } {\n const today = new Date();\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), 1).getTime() / 1000;\n const endTimeForCurrentMonth = new Date(startDate.getFullYear(), startDate.getMonth() + 1, 1).getTime() / 1000;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTime = Math.min(endTimeForAvailableDaysInFuture, endTimeForCurrentMonth);\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n return { startTime: startTimeWithOffset, endTime, endTimeForAvailableDaysInFuture };\n }\n\n private applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n onFeedbackClick() {\n this.showFeedbackModal = true;\n }\n\n redirectToCustomUrl(url: string) {\n window.location.assign(url);\n }\n\n /**\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n * @slot custom-booking-form - This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @deprecated Deprecated in favor of using the additional fields defined in the config settings.\n */\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId');\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId');\n const organizerConfirmationBookingId = nylasSchedulerStore?.get('organizerConfirmationBookingId');\n const rejectBookingId = nylasSchedulerStore?.get('rejectBookingId');\n const confirmedEventInfo = nylasSchedulerStore?.get('confirmedEventInfo');\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const redirectUrl = nylasSchedulerStore?.get('configSettings')?.scheduler?.confirmation_redirect_url;\n this.selectedDateLabel =\n selectedDate && this.language\n ? capitalizeFirstLetter(selectedDate.toLocaleDateString(LANGUAGE_CODE_MAP[this.language], { dateStyle: 'full' }))\n : `${i18next.t('noDateSelected')}`;\n\n if (showDefaultScheduler && (cancelBookingId || rejectBookingId) && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form\n selectedTimeslot={selectedTimeslot}\n cancelBookingId={cancelBookingId}\n rejectBookingId={rejectBookingId}\n exportparts=\"ncbf, ncbf__icon, ncbf__title, ncbf__description, ncbf__reason-textarea, ncbf__button-cta, ncbf__button-outline, ncbf__card\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Manual confirmation page is shown when the event is manually confirmed\n if (showDefaultScheduler && organizerConfirmationBookingId) {\n return (\n <Host>\n <SchedulerView>\n <div class=\"manual-confirmation-page\" part=\"manual-confirmation-page\">\n <nylas-organizer-confirmation-card\n organizerConfirmationBookingId={organizerConfirmationBookingId}\n exportparts=\"nmcc, nmcc__title, nmcc__description, nmcc__button-cta, nmcc__button-outline\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Confirmed event card is shown when the event is confirmed\n if (showDefaultScheduler && confirmedEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"confirmed-event-page\">\n <nylas-confirmed-event-card\n confirmedEventInfo={confirmedEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Redirected to custom URL when the event is booked and redirect URL is provided\n if (showDefaultScheduler && eventInfo && redirectUrl) {\n const recipient = this.bookingInfoConfirmed?.primaryParticipant;\n const additionalFields = this.bookingInfoConfirmed?.additionalFields || {};\n if (this.bookingInfo && typeof this.bookingInfo?.additionalFields !== 'undefined') {\n const bookingInfoAdditionalFields = this.bookingInfo.additionalFields;\n // Merge additional fields from the bookingInfo with the additional fields from the booking form\n Object.keys(bookingInfoAdditionalFields).forEach(key => {\n if (!additionalFields[key] && bookingInfoAdditionalFields?.[key]) {\n additionalFields[key] = bookingInfoAdditionalFields[key].value;\n }\n });\n }\n const selectedTimeslot = this.stores?.scheduler.get('selectedTimeslot');\n const selectedTimezone = this.stores?.scheduler.get('selectedTimezone');\n const selectedLanguage = this.stores?.scheduler.get('selectedLanguage');\n const configSettings = this.stores?.scheduler.get('configSettings');\n\n const configurationId = this.configurationId ? this.configurationId : configSettings?.configuration_id;\n const queryString = window.location.search;\n\n const urlParams = new URLSearchParams(queryString);\n urlParams.set('booking_id', eventInfo.booking_id);\n recipient?.name && urlParams.set('name', recipient.name);\n recipient?.email && urlParams.set('email', recipient.email);\n selectedTimeslot?.start_time && urlParams.set('start_time', (new Date(selectedTimeslot.start_time).getTime() / 1000).toString());\n selectedTimeslot?.end_time && urlParams.set('end_time', (new Date(selectedTimeslot.end_time).getTime() / 1000).toString());\n selectedTimezone && urlParams.set('tz', selectedTimezone);\n selectedLanguage && urlParams.set('language', selectedLanguage);\n additionalFields && urlParams.set('additional_values', JSON.stringify(additionalFields));\n this.slug && urlParams.set('page_slug', this.slug);\n configurationId && urlParams.set('config_id', configurationId);\n\n this.redirectToCustomUrl(`${redirectUrl}?${urlParams.toString()}`);\n return;\n }\n\n // Booked event card is shown when the event is booked or booking is sent\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page\">\n <div class=\"left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__title, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--disabled, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <nylas-locale-switch exportparts=\"nls, nls__timezone, nls__timezone-dropdown, nls__timezone-drop-button, nls__timezone-drop-button-selected-label, nls__timezone-drop-content, nls__timezone-drop-label, nls__language, nls__language-dropdown, nls__language-drop-button, nls__language-drop-content, nls__language-drop-label\"></nylas-locale-switch>\n </div>\n <div class={`right-panel ${rescheduleBookingId ? 'reschedule' : ''}`}>\n <h2>\n <calendar-icon></calendar-icon>\n <span id=\"selectedDate\">{this.selectedDateLabel}</span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page\">\n <div class=\"left-panel\">\n <div class=\"wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time, nsec__timezone\"></nylas-selected-event-card>\n </div>\n </div>\n <div class={`right-panel ${rescheduleBookingId ? 'reschedule' : ''}`}>\n <nylas-booking-form exportparts=\"nbf, nbf__input-textfield, nbf__button-ghost, nbf__button-outline, nbf__button-primary, nbf__input-wrapper, nbf__checkbox-component, nbf__radio-button-group, nbf__textarea-component, nbf__dropdown, nbf__dropdown-button, nbf__dropdown-content\"></nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
@@ -271,7 +271,7 @@ const TimeInput = class {
271
271
  }
272
272
  }
273
273
  render() {
274
- return (index.h(index.Host, { key: 'da122e12f7a101e73a49fc19189722f8aa2a5802' }, index.h("div", { key: 'f922740d77d8bda81491d28215dc0a9f2fa0fc18', class: "time-picker", part: "time-picker" }, index.h("input", { key: 'eaae1354a88421a510036693c72b9dffbc68cd06', type: "text", name: this.name, id: this.name, part: "time-input", class: {
274
+ return (index.h(index.Host, { key: 'e83949b2270706557e5d45aff5958d937c6489c9' }, index.h("div", { key: '0cacfe5530a1186ce2ff50ccc3d9328a62d48e2f', class: "time-picker", part: "time-picker" }, index.h("input", { key: '8daf647468746997e503883478debf8d335a780d', type: "text", name: this.name, id: this.name, part: "time-input", class: {
275
275
  'time-input': true,
276
276
  'error': !!this.err || this.hasError,
277
277
  }, ref: el => (this.timeInput = el), value: this.time, onClick: () => {