@nylas/web-elements 2.5.17 → 2.6.0

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 (750) hide show
  1. package/dist/cdn/input-color-picker/input-color-picker.es.js +3 -3
  2. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +129 -114
  3. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +2542 -2476
  4. package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
  5. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  6. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  8. package/dist/cjs/button-component_2.cjs.entry.js +2 -2
  9. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +47 -47
  10. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  11. package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  13. package/dist/cjs/checkbox-component.cjs.entry.js +1 -1
  14. package/dist/cjs/checkbox-group_4.cjs.entry.js +5 -5
  15. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
  16. package/dist/cjs/checkmark-icon_14.cjs.entry.js +16 -16
  17. package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
  18. package/dist/cjs/clock-icon_2.cjs.entry.js +2 -2
  19. package/dist/cjs/delete-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  22. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  23. package/dist/cjs/globe-icon_3.cjs.entry.js +5 -5
  24. package/dist/cjs/google-logo-icon_6.cjs.entry.js +13 -13
  25. package/dist/cjs/google-meet-icon_5.cjs.entry.js +5 -5
  26. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  27. package/dist/cjs/info-icon_2.cjs.entry.js +3 -3
  28. package/dist/cjs/input-component.cjs.entry.js +1 -1
  29. package/dist/cjs/input-dropdown_2.cjs.entry.js +2 -2
  30. package/dist/cjs/input-image-url_2.cjs.entry.js +2 -2
  31. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  32. package/dist/cjs/multi-select-dropdown.cjs.entry.js +2 -2
  33. package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +58 -18
  34. package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
  36. package/dist/cjs/nylas-notification_2.cjs.entry.js +2 -2
  37. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +29 -4
  38. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nylas-scheduler-editor.entry.cjs.js.map +1 -1
  40. package/dist/cjs/nylas-scheduling.cjs.entry.js +41 -1
  41. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
  43. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  44. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  45. package/dist/cjs/plus-icon.cjs.entry.js +1 -1
  46. package/dist/cjs/radio-button-group.cjs.entry.js +1 -1
  47. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  48. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  49. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  50. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  51. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  52. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  53. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  54. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  55. package/dist/cjs/toggle-switch.cjs.entry.js +1 -1
  56. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  57. package/dist/cjs/trash-fill-icon.cjs.entry.js +1 -1
  58. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  59. package/dist/cjs/{version-Dvnf44vW.js → version-CHszslqN.js} +3 -3
  60. package/dist/cjs/version-CHszslqN.js.map +1 -0
  61. package/dist/collection/common/icons/add-circle.js +1 -1
  62. package/dist/collection/common/icons/archive.js +1 -1
  63. package/dist/collection/common/icons/arrow.js +1 -1
  64. package/dist/collection/common/icons/bold.js +1 -1
  65. package/dist/collection/common/icons/calendar-agenda-fill.js +1 -1
  66. package/dist/collection/common/icons/calendar-agenda.js +1 -1
  67. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  68. package/dist/collection/common/icons/calendar-check.js +1 -1
  69. package/dist/collection/common/icons/calendar-info.js +1 -1
  70. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  71. package/dist/collection/common/icons/calendar.js +1 -1
  72. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  73. package/dist/collection/common/icons/checkmark.js +1 -1
  74. package/dist/collection/common/icons/chevron.js +1 -1
  75. package/dist/collection/common/icons/clock.js +1 -1
  76. package/dist/collection/common/icons/close.js +1 -1
  77. package/dist/collection/common/icons/copy.js +1 -1
  78. package/dist/collection/common/icons/delete.js +1 -1
  79. package/dist/collection/common/icons/document-refresh.js +1 -1
  80. package/dist/collection/common/icons/dragable.js +1 -1
  81. package/dist/collection/common/icons/edit.js +1 -1
  82. package/dist/collection/common/icons/envelope-fill.js +1 -1
  83. package/dist/collection/common/icons/envelope.js +1 -1
  84. package/dist/collection/common/icons/eye.js +1 -1
  85. package/dist/collection/common/icons/feedback-icon.js +1 -1
  86. package/dist/collection/common/icons/flow.js +1 -1
  87. package/dist/collection/common/icons/folder.js +1 -1
  88. package/dist/collection/common/icons/forward.js +1 -1
  89. package/dist/collection/common/icons/globe.js +1 -1
  90. package/dist/collection/common/icons/google-logo.js +1 -1
  91. package/dist/collection/common/icons/google-meet.js +1 -1
  92. package/dist/collection/common/icons/inbox.js +1 -1
  93. package/dist/collection/common/icons/info.js +1 -1
  94. package/dist/collection/common/icons/italic.js +1 -1
  95. package/dist/collection/common/icons/loading.js +1 -1
  96. package/dist/collection/common/icons/location-off.js +1 -1
  97. package/dist/collection/common/icons/location.js +1 -1
  98. package/dist/collection/common/icons/microsof-teams.js +1 -1
  99. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  100. package/dist/collection/common/icons/nylas-logo.js +1 -1
  101. package/dist/collection/common/icons/paintbrush-fill.js +1 -1
  102. package/dist/collection/common/icons/paintbrush.js +1 -1
  103. package/dist/collection/common/icons/people.js +1 -1
  104. package/dist/collection/common/icons/person-clipboard.js +1 -1
  105. package/dist/collection/common/icons/person.js +1 -1
  106. package/dist/collection/common/icons/play.js +1 -1
  107. package/dist/collection/common/icons/plus.js +1 -1
  108. package/dist/collection/common/icons/refresh.js +1 -1
  109. package/dist/collection/common/icons/reply-all.js +1 -1
  110. package/dist/collection/common/icons/reply.js +1 -1
  111. package/dist/collection/common/icons/search.js +1 -1
  112. package/dist/collection/common/icons/sent.js +1 -1
  113. package/dist/collection/common/icons/spam.js +1 -1
  114. package/dist/collection/common/icons/star.js +1 -1
  115. package/dist/collection/common/icons/stop.js +1 -1
  116. package/dist/collection/common/icons/translate.js +1 -1
  117. package/dist/collection/common/icons/trash-fill.js +1 -1
  118. package/dist/collection/common/icons/trash.js +1 -1
  119. package/dist/collection/common/icons/underline.js +1 -1
  120. package/dist/collection/common/icons/warning.js +1 -1
  121. package/dist/collection/common/icons/zoom.js +1 -1
  122. package/dist/collection/common/types.js.map +1 -1
  123. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  124. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  125. package/dist/collection/components/design-system/checkbox-group/checkbox-group.js +1 -1
  126. package/dist/collection/components/design-system/input-color-picker/input-color-picker.js +2 -2
  127. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  128. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +1 -1
  129. package/dist/collection/components/design-system/input-image-url/input-image-url.js +1 -1
  130. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  131. package/dist/collection/components/design-system/nylas-date-component/nylas-date-component.js +1 -1
  132. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  133. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
  134. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  135. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  136. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  137. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +2 -2
  138. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +85 -12
  139. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
  140. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
  141. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
  142. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js +1 -1
  143. package/dist/collection/components/scheduler/nylas-feedback-form/nylas-feedback-form.js +2 -2
  144. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  145. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js +2 -2
  146. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +21 -2
  147. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
  148. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +2 -2
  149. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +1 -1
  150. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js +1 -1
  151. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js +1 -1
  152. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +2 -2
  153. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +1 -1
  154. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +2 -2
  155. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +1 -1
  156. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  157. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +1 -1
  158. package/dist/collection/components/scheduler-editor/nylas-disable-emails/nylas-disable-emails.js +1 -1
  159. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +5 -5
  160. package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js +5 -5
  161. package/dist/collection/components/scheduler-editor/nylas-event-capacity/nylas-event-capacity.js +1 -1
  162. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +1 -1
  163. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +2 -2
  164. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  165. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  166. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +1 -1
  167. package/dist/collection/components/scheduler-editor/nylas-event-timeslot/nylas-event-timeslot.js +3 -3
  168. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +2 -2
  169. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  170. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +1 -1
  171. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +1 -1
  172. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +1 -1
  173. package/dist/collection/components/scheduler-editor/nylas-notetaker-config/nylas-notetaker-config.js +8 -8
  174. package/dist/collection/components/scheduler-editor/nylas-only-specific-time-availability/nylas-only-specific-time-availability.js +1 -1
  175. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js +1 -1
  176. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +1 -1
  177. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +1 -1
  178. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +1 -1
  179. package/dist/collection/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.js +3 -3
  180. package/dist/collection/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.js +1 -1
  181. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +3 -3
  182. package/dist/collection/components/scheduler-editor/nylas-specific-time-availability-picker/nylas-specific-time-availability-picker.js +2 -2
  183. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +3 -3
  184. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +1 -1
  185. package/dist/collection/connector/shared/api/scheduler.js +21 -0
  186. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  187. package/dist/collection/types/index.js.map +1 -1
  188. package/dist/collection/version.js +1 -1
  189. package/dist/collection/version.js.map +1 -1
  190. package/dist/components/add-circle-icon.js +1 -1
  191. package/dist/components/archive-icon.js +1 -1
  192. package/dist/components/arrow-icon.js +1 -1
  193. package/dist/components/bold-icon.js +1 -1
  194. package/dist/components/button-component.js +1 -1
  195. package/dist/components/calendar-agenda-fill-icon.js +1 -1
  196. package/dist/components/calendar-agenda-icon.js +1 -1
  197. package/dist/components/calendar-cancel-icon.js +1 -1
  198. package/dist/components/calendar-check-icon.js +1 -1
  199. package/dist/components/calendar-icon.js +1 -1
  200. package/dist/components/calendar-info-icon.js +1 -1
  201. package/dist/components/calendar-patterns-icon.js +1 -1
  202. package/dist/components/checkbox-component.js +1 -1
  203. package/dist/components/checkbox-group.js +1 -1
  204. package/dist/components/checkmark-circle-icon.js +1 -1
  205. package/dist/components/checkmark-icon.js +1 -1
  206. package/dist/components/chevron-icon.js +1 -1
  207. package/dist/components/clock-icon.js +1 -1
  208. package/dist/components/close-icon.js +1 -1
  209. package/dist/components/copy-icon.js +1 -1
  210. package/dist/components/delete-icon.js +1 -1
  211. package/dist/components/document-refresh-icon.js +1 -1
  212. package/dist/components/dragable-icon.js +1 -1
  213. package/dist/components/edit-icon.js +1 -1
  214. package/dist/components/envelope-fill-icon.js +1 -1
  215. package/dist/components/envelope-icon.js +1 -1
  216. package/dist/components/eye-icon.js +1 -1
  217. package/dist/components/feedback-icon.js +1 -1
  218. package/dist/components/flow-icon.js +1 -1
  219. package/dist/components/folder-icon.js +1 -1
  220. package/dist/components/forward-icon.js +1 -1
  221. package/dist/components/globe-icon.js +1 -1
  222. package/dist/components/google-logo-icon.js +1 -1
  223. package/dist/components/google-meet-icon.js +1 -1
  224. package/dist/components/inbox-icon.js +1 -1
  225. package/dist/components/info-icon.js +1 -1
  226. package/dist/components/input-color-picker.js +1 -1
  227. package/dist/components/input-component.js +1 -1
  228. package/dist/components/input-dropdown.js +1 -1
  229. package/dist/components/input-image-url.js +1 -1
  230. package/dist/components/italic-icon.js +1 -1
  231. package/dist/components/loading-icon.js +1 -1
  232. package/dist/components/location-icon.js +1 -1
  233. package/dist/components/location-off-icon.js +1 -1
  234. package/dist/components/microsoft-logo-icon.js +1 -1
  235. package/dist/components/microsoft-teams-icon.js +1 -1
  236. package/dist/components/multi-select-dropdown.js +1 -1
  237. package/dist/components/nylas-additional-participants.js +1 -1
  238. package/dist/components/nylas-availability-picker.js +1 -1
  239. package/dist/components/nylas-booked-event-card.js +1 -1
  240. package/dist/components/nylas-booking-calendar-picker.js +1 -1
  241. package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
  242. package/dist/components/nylas-booking-confirmation-type.js +1 -1
  243. package/dist/components/nylas-booking-form-config.js +1 -1
  244. package/dist/components/nylas-booking-form.js +1 -1
  245. package/dist/components/nylas-buffer-time.js +1 -1
  246. package/dist/components/nylas-calendar-picker.js +1 -1
  247. package/dist/components/nylas-cancel-booking-form.js +1 -1
  248. package/dist/components/nylas-cancellation-policy.js +1 -1
  249. package/dist/components/nylas-cancelled-event-card.js +1 -1
  250. package/dist/components/nylas-confirmation-email.js +1 -1
  251. package/dist/components/nylas-confirmed-event-card.js +1 -1
  252. package/dist/components/nylas-connected-calendars.js +1 -1
  253. package/dist/components/nylas-custom-booking-flow.js +1 -1
  254. package/dist/components/nylas-custom-event-slug.js +1 -1
  255. package/dist/components/nylas-customize-booking-settings.js +1 -1
  256. package/dist/components/nylas-date-component.js +1 -1
  257. package/dist/components/nylas-date-picker.js +1 -1
  258. package/dist/components/nylas-disable-emails.js +1 -1
  259. package/dist/components/nylas-editor-tabs-group.js +1 -1
  260. package/dist/components/nylas-editor-tabs.js +1 -1
  261. package/dist/components/nylas-event-calendar.js +1 -1
  262. package/dist/components/nylas-event-capacity.js +1 -1
  263. package/dist/components/nylas-event-description.js +1 -1
  264. package/dist/components/nylas-event-duration.js +1 -1
  265. package/dist/components/nylas-event-info.js +1 -1
  266. package/dist/components/nylas-event-limits.js +1 -1
  267. package/dist/components/nylas-event-location.js +1 -1
  268. package/dist/components/nylas-event-timeslot.js +1 -1
  269. package/dist/components/nylas-event-title.js +1 -1
  270. package/dist/components/nylas-feedback-form.js +1 -1
  271. package/dist/components/nylas-form-card.js +1 -1
  272. package/dist/components/nylas-limit-future-bookings.js +1 -1
  273. package/dist/components/nylas-list-configurations.js +1 -1
  274. package/dist/components/nylas-locale-switch.js +1 -1
  275. package/dist/components/nylas-logo.js +1 -1
  276. package/dist/components/nylas-min-booking-notice.js +1 -1
  277. package/dist/components/nylas-min-cancellation-notice.js +1 -1
  278. package/dist/components/nylas-notetaker-config.js +1 -1
  279. package/dist/components/nylas-notification.js +1 -1
  280. package/dist/components/nylas-only-specific-time-availability.js +1 -1
  281. package/dist/components/nylas-organizer-confirmation-card.js +1 -1
  282. package/dist/components/nylas-page-name.js +1 -1
  283. package/dist/components/nylas-page-styling.js +1 -1
  284. package/dist/components/nylas-participant-booking-calendars.js +1 -1
  285. package/dist/components/nylas-participants-custom-availability.js +1 -1
  286. package/dist/components/nylas-reminder-emails.js +1 -1
  287. package/dist/components/nylas-reminder-time.js +1 -1
  288. package/dist/components/nylas-scheduler-editor.js +128 -103
  289. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  290. package/dist/components/nylas-scheduling-method.js +1 -1
  291. package/dist/components/nylas-scheduling.js +79 -39
  292. package/dist/components/nylas-scheduling.js.map +1 -1
  293. package/dist/components/nylas-select-event-type.js +1 -1
  294. package/dist/components/nylas-selected-event-card.js +1 -1
  295. package/dist/components/nylas-specific-time-availability-picker.js +1 -1
  296. package/dist/components/nylas-time-window-picker.js +1 -1
  297. package/dist/components/nylas-timeslot-interval.js +1 -1
  298. package/dist/components/nylas-timeslot-picker.js +1 -1
  299. package/dist/components/{p-DjJOgfxK.js → p-1jCDFlwx.js} +9 -9
  300. package/dist/components/{p-DjJOgfxK.js.map → p-1jCDFlwx.js.map} +1 -1
  301. package/dist/components/{p-q7g_LEwC.js → p-36H4hxVv.js} +3 -3
  302. package/dist/components/{p-q7g_LEwC.js.map → p-36H4hxVv.js.map} +1 -1
  303. package/dist/components/{p-B2LU95MT.js → p-3FIo8Hrp.js} +3 -3
  304. package/dist/components/{p-B2LU95MT.js.map → p-3FIo8Hrp.js.map} +1 -1
  305. package/dist/components/{p-g9YD1HRv.js → p-4McmpmAg.js} +4 -4
  306. package/dist/components/{p-g9YD1HRv.js.map → p-4McmpmAg.js.map} +1 -1
  307. package/dist/components/{p-BTwTmU9e.js → p-6Seqe489.js} +21 -21
  308. package/dist/components/{p-BTwTmU9e.js.map → p-6Seqe489.js.map} +1 -1
  309. package/dist/components/{p-CL8ugNmu.js → p-8-JIv49C.js} +4 -4
  310. package/dist/components/{p-CL8ugNmu.js.map → p-8-JIv49C.js.map} +1 -1
  311. package/dist/components/{p-C4RTQIyO.js → p-9KfwmETj.js} +3 -3
  312. package/dist/components/{p-C4RTQIyO.js.map → p-9KfwmETj.js.map} +1 -1
  313. package/dist/components/{p-DGDbXfHm.js → p-B3irHRxH.js} +14 -14
  314. package/dist/components/{p-DGDbXfHm.js.map → p-B3irHRxH.js.map} +1 -1
  315. package/dist/components/{p-DZwGCUUK.js → p-B57gyFFu.js} +9 -9
  316. package/dist/components/{p-DZwGCUUK.js.map → p-B57gyFFu.js.map} +1 -1
  317. package/dist/components/{p-RPocf_FZ.js → p-BAi0-0s9.js} +19 -19
  318. package/dist/components/{p-RPocf_FZ.js.map → p-BAi0-0s9.js.map} +1 -1
  319. package/dist/components/{p-DcjGlnBR.js → p-BBWnrSjc.js} +3 -3
  320. package/dist/components/{p-DcjGlnBR.js.map → p-BBWnrSjc.js.map} +1 -1
  321. package/dist/components/{p-DBHtQK2b.js → p-BEvwJe37.js} +3 -3
  322. package/dist/components/{p-DBHtQK2b.js.map → p-BEvwJe37.js.map} +1 -1
  323. package/dist/components/{p-BuJdnN6-.js → p-BG5y4pBL.js} +4 -4
  324. package/dist/components/{p-BuJdnN6-.js.map → p-BG5y4pBL.js.map} +1 -1
  325. package/dist/components/{p-CRIlyxX5.js → p-BGcFPLlm.js} +10 -10
  326. package/dist/components/{p-CRIlyxX5.js.map → p-BGcFPLlm.js.map} +1 -1
  327. package/dist/components/{p-BoUo2hc7.js → p-BJbmwaXD.js} +3 -3
  328. package/dist/components/{p-BoUo2hc7.js.map → p-BJbmwaXD.js.map} +1 -1
  329. package/dist/components/{p-BzLxndYA.js → p-BMLPTwTQ.js} +7 -7
  330. package/dist/components/{p-BzLxndYA.js.map → p-BMLPTwTQ.js.map} +1 -1
  331. package/dist/components/{p-BrOgWk7y.js → p-BMv8LXnI.js} +3 -3
  332. package/dist/components/{p-BrOgWk7y.js.map → p-BMv8LXnI.js.map} +1 -1
  333. package/dist/components/{p-BWbQSVNH.js → p-BOYZzt-4.js} +7 -7
  334. package/dist/components/{p-BWbQSVNH.js.map → p-BOYZzt-4.js.map} +1 -1
  335. package/dist/components/{p-CdPtFwy6.js → p-BQ5o0vvR.js} +5 -5
  336. package/dist/components/{p-CdPtFwy6.js.map → p-BQ5o0vvR.js.map} +1 -1
  337. package/dist/components/{p-DPwhlVlN.js → p-BTqJQKYU.js} +3 -3
  338. package/dist/components/{p-DPwhlVlN.js.map → p-BTqJQKYU.js.map} +1 -1
  339. package/dist/components/{p-DUVwWh7e.js → p-BU16FiC8.js} +13 -13
  340. package/dist/components/{p-DUVwWh7e.js.map → p-BU16FiC8.js.map} +1 -1
  341. package/dist/components/{p-CpGRDWt9.js → p-BVIbhcW2.js} +4 -4
  342. package/dist/components/{p-CpGRDWt9.js.map → p-BVIbhcW2.js.map} +1 -1
  343. package/dist/components/{p-B2cPNmM_.js → p-BVZnq2zV.js} +9 -9
  344. package/dist/components/{p-B2cPNmM_.js.map → p-BVZnq2zV.js.map} +1 -1
  345. package/dist/components/{p-B3cnALr8.js → p-BVq4mTYg.js} +68 -28
  346. package/dist/components/p-BVq4mTYg.js.map +1 -0
  347. package/dist/components/{p-CuaQW941.js → p-BaX-h68d.js} +6 -6
  348. package/dist/components/{p-CuaQW941.js.map → p-BaX-h68d.js.map} +1 -1
  349. package/dist/components/{p-hipsVOV5.js → p-Baw3jP2X.js} +3 -3
  350. package/dist/components/{p-hipsVOV5.js.map → p-Baw3jP2X.js.map} +1 -1
  351. package/dist/components/{p-BnEkgCIs.js → p-Bbt9980R.js} +3 -3
  352. package/dist/components/{p-BnEkgCIs.js.map → p-Bbt9980R.js.map} +1 -1
  353. package/dist/components/{p-BAKh5tMf.js → p-BcHelLHv.js} +3 -3
  354. package/dist/components/{p-BAKh5tMf.js.map → p-BcHelLHv.js.map} +1 -1
  355. package/dist/components/{p-ChXM0wCn.js → p-BgzT-67i.js} +3 -3
  356. package/dist/components/{p-ChXM0wCn.js.map → p-BgzT-67i.js.map} +1 -1
  357. package/dist/components/{p-BqD6DKLT.js → p-BnLt26W8.js} +7 -7
  358. package/dist/components/{p-BqD6DKLT.js.map → p-BnLt26W8.js.map} +1 -1
  359. package/dist/components/{p-xMlGGw2N.js → p-BuYNWtp6.js} +3 -3
  360. package/dist/components/{p-xMlGGw2N.js.map → p-BuYNWtp6.js.map} +1 -1
  361. package/dist/components/{p-CyzGRI94.js → p-BvqNXgYj.js} +3 -3
  362. package/dist/components/{p-CyzGRI94.js.map → p-BvqNXgYj.js.map} +1 -1
  363. package/dist/components/{p-DDd7Mjvz.js → p-ByoRiTiK.js} +7 -7
  364. package/dist/components/{p-DDd7Mjvz.js.map → p-ByoRiTiK.js.map} +1 -1
  365. package/dist/components/{p-Ch_HOS-9.js → p-BzjixeLc.js} +7 -7
  366. package/dist/components/{p-Ch_HOS-9.js.map → p-BzjixeLc.js.map} +1 -1
  367. package/dist/components/{p-DfxhC7Fd.js → p-C1JOYWhj.js} +12 -12
  368. package/dist/components/{p-DfxhC7Fd.js.map → p-C1JOYWhj.js.map} +1 -1
  369. package/dist/components/{p-CzSowwcD.js → p-C2bWg9rc.js} +7 -7
  370. package/dist/components/{p-CzSowwcD.js.map → p-C2bWg9rc.js.map} +1 -1
  371. package/dist/components/{p-C4BZ4XFc.js → p-C35dU4J2.js} +3 -3
  372. package/dist/components/{p-C4BZ4XFc.js.map → p-C35dU4J2.js.map} +1 -1
  373. package/dist/components/{p-CvLWbTI_.js → p-C4QSwxPr.js} +3 -3
  374. package/dist/components/{p-CvLWbTI_.js.map → p-C4QSwxPr.js.map} +1 -1
  375. package/dist/components/{p-DEbbVkgj.js → p-C6ARzQ6M.js} +3 -3
  376. package/dist/components/{p-DEbbVkgj.js.map → p-C6ARzQ6M.js.map} +1 -1
  377. package/dist/components/{p-BYzkNeMW.js → p-CBjtU882.js} +5 -5
  378. package/dist/components/{p-BYzkNeMW.js.map → p-CBjtU882.js.map} +1 -1
  379. package/dist/components/{p-oRjUujH5.js → p-CDME1l9h.js} +8 -8
  380. package/dist/components/{p-oRjUujH5.js.map → p-CDME1l9h.js.map} +1 -1
  381. package/dist/components/{p-Dl0Yur5r.js → p-CGkcVt8h.js} +3 -3
  382. package/dist/components/{p-Dl0Yur5r.js.map → p-CGkcVt8h.js.map} +1 -1
  383. package/dist/components/{p-D0137Jos.js → p-CI1nvbUl.js} +10 -10
  384. package/dist/components/{p-D0137Jos.js.map → p-CI1nvbUl.js.map} +1 -1
  385. package/dist/components/{p-CUe11ohy.js → p-CKiOTF7Z.js} +7 -7
  386. package/dist/components/{p-CUe11ohy.js.map → p-CKiOTF7Z.js.map} +1 -1
  387. package/dist/components/{p-CdAJ8ry_.js → p-CNj6i-JK.js} +3 -3
  388. package/dist/components/{p-CdAJ8ry_.js.map → p-CNj6i-JK.js.map} +1 -1
  389. package/dist/components/{p-fwU4mtR0.js → p-COaWG_Zh.js} +5 -5
  390. package/dist/components/{p-fwU4mtR0.js.map → p-COaWG_Zh.js.map} +1 -1
  391. package/dist/components/{p-D5Swz0J4.js → p-CQvNQk_r.js} +10 -10
  392. package/dist/components/{p-D5Swz0J4.js.map → p-CQvNQk_r.js.map} +1 -1
  393. package/dist/components/{p-BBxu-pwN.js → p-CRWfdwTk.js} +14 -14
  394. package/dist/components/{p-BBxu-pwN.js.map → p-CRWfdwTk.js.map} +1 -1
  395. package/dist/components/{p-CahZPm95.js → p-CWNABkMS.js} +4 -4
  396. package/dist/components/{p-CahZPm95.js.map → p-CWNABkMS.js.map} +1 -1
  397. package/dist/components/p-CWplx7sA.js.map +1 -1
  398. package/dist/components/{p-CyWE9dXK.js → p-C_MBjjfN.js} +3 -3
  399. package/dist/components/{p-CyWE9dXK.js.map → p-C_MBjjfN.js.map} +1 -1
  400. package/dist/components/{p-DxDoo-4C.js → p-C_a8Brku.js} +4 -4
  401. package/dist/components/{p-DxDoo-4C.js.map → p-C_a8Brku.js.map} +1 -1
  402. package/dist/components/{p-D_daFt1t.js → p-CbIFnpIT.js} +10 -10
  403. package/dist/components/{p-D_daFt1t.js.map → p-CbIFnpIT.js.map} +1 -1
  404. package/dist/components/{p-CJvmK-NM.js → p-Cf47JDzZ.js} +3 -3
  405. package/dist/components/{p-CJvmK-NM.js.map → p-Cf47JDzZ.js.map} +1 -1
  406. package/dist/components/{p-CeKOSPvz.js → p-ChvVcov-.js} +8 -8
  407. package/dist/components/{p-CeKOSPvz.js.map → p-ChvVcov-.js.map} +1 -1
  408. package/dist/components/{p-D7z2dNXN.js → p-CixxWdv6.js} +3 -3
  409. package/dist/components/{p-D7z2dNXN.js.map → p-CixxWdv6.js.map} +1 -1
  410. package/dist/components/{p-BF0muZ9G.js → p-CkIBsfNB.js} +3 -3
  411. package/dist/components/{p-BF0muZ9G.js.map → p-CkIBsfNB.js.map} +1 -1
  412. package/dist/components/{p-BGbMXlLy.js → p-CneutSrB.js} +6 -6
  413. package/dist/components/{p-BGbMXlLy.js.map → p-CneutSrB.js.map} +1 -1
  414. package/dist/components/{p-D9mHh12b.js → p-Coy-5_RU.js} +8 -8
  415. package/dist/components/{p-D9mHh12b.js.map → p-Coy-5_RU.js.map} +1 -1
  416. package/dist/components/{p-CDDw-hf8.js → p-Cr0OL9Ww.js} +3 -3
  417. package/dist/components/{p-CDDw-hf8.js.map → p-Cr0OL9Ww.js.map} +1 -1
  418. package/dist/components/{p-CXkCnHr5.js → p-CrAcXVaG.js} +5 -5
  419. package/dist/components/{p-CXkCnHr5.js.map → p-CrAcXVaG.js.map} +1 -1
  420. package/dist/components/{p-BNuHkEZZ.js → p-CsyulOVn.js} +3 -3
  421. package/dist/components/{p-BNuHkEZZ.js.map → p-CsyulOVn.js.map} +1 -1
  422. package/dist/components/{p-DMwaGWVu.js → p-D-DEVTDE.js} +6 -6
  423. package/dist/components/{p-DMwaGWVu.js.map → p-D-DEVTDE.js.map} +1 -1
  424. package/dist/components/{p-BVH0Klhu.js → p-D0NY8UNC.js} +4 -4
  425. package/dist/components/{p-BVH0Klhu.js.map → p-D0NY8UNC.js.map} +1 -1
  426. package/dist/components/{p-BD4aqMeC.js → p-D1XyN1j_.js} +3 -3
  427. package/dist/components/{p-BD4aqMeC.js.map → p-D1XyN1j_.js.map} +1 -1
  428. package/dist/components/{p-D0qMgeBc.js → p-D30JsuKI.js} +6 -6
  429. package/dist/components/{p-D0qMgeBc.js.map → p-D30JsuKI.js.map} +1 -1
  430. package/dist/components/{p-BT5kT23k.js → p-D5y9oXD0.js} +3 -3
  431. package/dist/components/{p-BT5kT23k.js.map → p-D5y9oXD0.js.map} +1 -1
  432. package/dist/components/{p-3FTb1-in.js → p-D9XKQ809.js} +33 -33
  433. package/dist/components/{p-3FTb1-in.js.map → p-D9XKQ809.js.map} +1 -1
  434. package/dist/components/{p-BSfQxQEN.js → p-DA5RYBjv.js} +3 -3
  435. package/dist/components/{p-BSfQxQEN.js.map → p-DA5RYBjv.js.map} +1 -1
  436. package/dist/components/{p-Cyk3GcD_.js → p-DEI76q16.js} +3 -3
  437. package/dist/components/{p-Cyk3GcD_.js.map → p-DEI76q16.js.map} +1 -1
  438. package/dist/components/{p-UTn_XnKO.js → p-DEJGXMSG.js} +8 -8
  439. package/dist/components/{p-UTn_XnKO.js.map → p-DEJGXMSG.js.map} +1 -1
  440. package/dist/components/{p-DcXycU5_.js → p-DEggxpVo.js} +6 -6
  441. package/dist/components/{p-DcXycU5_.js.map → p-DEggxpVo.js.map} +1 -1
  442. package/dist/components/{p-eV80kRKP.js → p-DGEm3ZTt.js} +3 -3
  443. package/dist/components/{p-eV80kRKP.js.map → p-DGEm3ZTt.js.map} +1 -1
  444. package/dist/components/{p-Ce8gcoEa.js → p-DHb99Cgm.js} +3 -3
  445. package/dist/components/{p-Ce8gcoEa.js.map → p-DHb99Cgm.js.map} +1 -1
  446. package/dist/components/{p-CzVZs3uZ.js → p-DK6-bZYK.js} +3 -3
  447. package/dist/components/{p-CzVZs3uZ.js.map → p-DK6-bZYK.js.map} +1 -1
  448. package/dist/components/{p-CT64yPEO.js → p-DP99QPpi.js} +3 -3
  449. package/dist/components/{p-CT64yPEO.js.map → p-DP99QPpi.js.map} +1 -1
  450. package/dist/components/{p-Ctot3asB.js → p-DTNmzKXY.js} +82 -82
  451. package/dist/components/{p-Ctot3asB.js.map → p-DTNmzKXY.js.map} +1 -1
  452. package/dist/components/{p-kbilJltW.js → p-DTtKd-E-.js} +3 -3
  453. package/dist/components/{p-kbilJltW.js.map → p-DTtKd-E-.js.map} +1 -1
  454. package/dist/components/{p-Cs_iJUbv.js → p-DVNLlxnG.js} +3 -3
  455. package/dist/components/{p-Cs_iJUbv.js.map → p-DVNLlxnG.js.map} +1 -1
  456. package/dist/components/{p-Bsd63RFi.js → p-DXQVWZkn.js} +3 -3
  457. package/dist/components/{p-Bsd63RFi.js.map → p-DXQVWZkn.js.map} +1 -1
  458. package/dist/components/{p-ao6VxuAL.js → p-DY3hmp0T.js} +3 -3
  459. package/dist/components/{p-ao6VxuAL.js.map → p-DY3hmp0T.js.map} +1 -1
  460. package/dist/components/{p-CFeDwD40.js → p-DZJQ_Wck.js} +3 -3
  461. package/dist/components/{p-CFeDwD40.js.map → p-DZJQ_Wck.js.map} +1 -1
  462. package/dist/components/{p-UNYO4Uen.js → p-DZLca44K.js} +3 -3
  463. package/dist/components/{p-UNYO4Uen.js.map → p-DZLca44K.js.map} +1 -1
  464. package/dist/components/{p-Ci-pKDnr.js → p-DdUGpBp4.js} +6 -6
  465. package/dist/components/{p-Ci-pKDnr.js.map → p-DdUGpBp4.js.map} +1 -1
  466. package/dist/components/{p-O9btdnkK.js → p-DgN2U3G8.js} +15 -15
  467. package/dist/components/{p-O9btdnkK.js.map → p-DgN2U3G8.js.map} +1 -1
  468. package/dist/components/{p-Bvnci8k8.js → p-DhC3_luJ.js} +8 -8
  469. package/dist/components/{p-Bvnci8k8.js.map → p-DhC3_luJ.js.map} +1 -1
  470. package/dist/components/{p-uxA_4Zq1.js → p-Di9JUVGX.js} +9 -9
  471. package/dist/components/{p-uxA_4Zq1.js.map → p-Di9JUVGX.js.map} +1 -1
  472. package/dist/components/{p-BkqJQBCp.js → p-DjZdyHmc.js} +3 -3
  473. package/dist/components/{p-BkqJQBCp.js.map → p-DjZdyHmc.js.map} +1 -1
  474. package/dist/components/{p-CBBEkysd.js → p-DjtrM_3t.js} +3 -3
  475. package/dist/components/{p-CBBEkysd.js.map → p-DjtrM_3t.js.map} +1 -1
  476. package/dist/components/{p-C9Mlv9rC.js → p-DoA5ft2W.js} +3 -3
  477. package/dist/components/{p-C9Mlv9rC.js.map → p-DoA5ft2W.js.map} +1 -1
  478. package/dist/components/{p-Begx19Z9.js → p-DpipCjQf.js} +5 -5
  479. package/dist/components/{p-Begx19Z9.js.map → p-DpipCjQf.js.map} +1 -1
  480. package/dist/components/{p-C7ZpwRD0.js → p-DprQSn90.js} +3 -3
  481. package/dist/components/{p-C7ZpwRD0.js.map → p-DprQSn90.js.map} +1 -1
  482. package/dist/components/{p-d3kelm3z.js → p-DsvNvqOg.js} +3 -3
  483. package/dist/components/{p-d3kelm3z.js.map → p-DsvNvqOg.js.map} +1 -1
  484. package/dist/components/{p-wphqTozF.js → p-DtEl3UXW.js} +6 -6
  485. package/dist/components/{p-wphqTozF.js.map → p-DtEl3UXW.js.map} +1 -1
  486. package/dist/components/{p-BJ5a9k3B.js → p-GiOcqWdY.js} +7 -7
  487. package/dist/components/{p-BJ5a9k3B.js.map → p-GiOcqWdY.js.map} +1 -1
  488. package/dist/components/{p-C7J83Us-.js → p-IJzc7eB1.js} +3 -3
  489. package/dist/components/{p-C7J83Us-.js.map → p-IJzc7eB1.js.map} +1 -1
  490. package/dist/components/{p-jBYg7WMS.js → p-LgZAWXty.js} +3 -3
  491. package/dist/components/{p-jBYg7WMS.js.map → p-LgZAWXty.js.map} +1 -1
  492. package/dist/components/{p-NA5f_7b7.js → p-LopVARiX.js} +5 -5
  493. package/dist/components/{p-NA5f_7b7.js.map → p-LopVARiX.js.map} +1 -1
  494. package/dist/components/{p-D42UGkjM.js → p-UIE8SSzy.js} +3 -3
  495. package/dist/components/{p-D42UGkjM.js.map → p-UIE8SSzy.js.map} +1 -1
  496. package/dist/components/{p-Dj1TLa3T.js → p-VZFbCMYS.js} +3 -3
  497. package/dist/components/{p-Dj1TLa3T.js.map → p-VZFbCMYS.js.map} +1 -1
  498. package/dist/components/{p-BMmtU0fv.js → p-ViLIEy7H.js} +6 -6
  499. package/dist/components/{p-BMmtU0fv.js.map → p-ViLIEy7H.js.map} +1 -1
  500. package/dist/components/{p-qo42Sy8T.js → p-Yo5k5FWd.js} +15 -15
  501. package/dist/components/{p-qo42Sy8T.js.map → p-Yo5k5FWd.js.map} +1 -1
  502. package/dist/components/{p-2UDpTS-K.js → p-Z5I7z8cD.js} +96 -96
  503. package/dist/components/{p-2UDpTS-K.js.map → p-Z5I7z8cD.js.map} +1 -1
  504. package/dist/components/{p-nhhVpJed.js → p-cJqQhTj-.js} +10 -10
  505. package/dist/components/{p-nhhVpJed.js.map → p-cJqQhTj-.js.map} +1 -1
  506. package/dist/components/{p-LOCJMijY.js → p-cf3Hv5c6.js} +6 -6
  507. package/dist/components/{p-LOCJMijY.js.map → p-cf3Hv5c6.js.map} +1 -1
  508. package/dist/components/{p-DPPqmJvY.js → p-h9VWezZP.js} +4 -4
  509. package/dist/components/{p-DPPqmJvY.js.map → p-h9VWezZP.js.map} +1 -1
  510. package/dist/components/{p-37a4h3J_.js → p-kIZ75-15.js} +10 -10
  511. package/dist/components/{p-37a4h3J_.js.map → p-kIZ75-15.js.map} +1 -1
  512. package/dist/components/{p-DPL6BIu2.js → p-lDYP9du3.js} +9 -9
  513. package/dist/components/{p-DPL6BIu2.js.map → p-lDYP9du3.js.map} +1 -1
  514. package/dist/components/{p-D4gKLnje.js → p-mIi7Upj2.js} +16 -16
  515. package/dist/components/{p-D4gKLnje.js.map → p-mIi7Upj2.js.map} +1 -1
  516. package/dist/components/{p-CdBb4zI5.js → p-mkkcd81V.js} +17 -17
  517. package/dist/components/{p-CdBb4zI5.js.map → p-mkkcd81V.js.map} +1 -1
  518. package/dist/components/{p-DOryfnIf.js → p-mw0JEKw8.js} +5 -5
  519. package/dist/components/{p-DOryfnIf.js.map → p-mw0JEKw8.js.map} +1 -1
  520. package/dist/components/{p-DS6Ijr4M.js → p-n1qnMrWE.js} +3 -3
  521. package/dist/components/{p-DS6Ijr4M.js.map → p-n1qnMrWE.js.map} +1 -1
  522. package/dist/components/{p-wJgbEd5m.js → p-n4JDuNbH.js} +9 -9
  523. package/dist/components/{p-wJgbEd5m.js.map → p-n4JDuNbH.js.map} +1 -1
  524. package/dist/components/{p-96zW11tR.js → p-r182lPIw.js} +6 -6
  525. package/dist/components/{p-96zW11tR.js.map → p-r182lPIw.js.map} +1 -1
  526. package/dist/components/{p-ByDfkWkX.js → p-xXZAaFtS.js} +3 -3
  527. package/dist/components/{p-ByDfkWkX.js.map → p-xXZAaFtS.js.map} +1 -1
  528. package/dist/components/{p-OhUC7F_g.js → p-zT4P9vUn.js} +3 -3
  529. package/dist/components/{p-OhUC7F_g.js.map → p-zT4P9vUn.js.map} +1 -1
  530. package/dist/components/paintbrush-fill-icon.js +1 -1
  531. package/dist/components/paintbrush-icon.js +1 -1
  532. package/dist/components/people-icon.js +1 -1
  533. package/dist/components/person-clipboard-icon.js +1 -1
  534. package/dist/components/person-icon.js +1 -1
  535. package/dist/components/play-icon.js +1 -1
  536. package/dist/components/plus-icon.js +1 -1
  537. package/dist/components/radio-button-group.js +1 -1
  538. package/dist/components/refresh-icon.js +1 -1
  539. package/dist/components/reply-all-icon.js +1 -1
  540. package/dist/components/reply-icon.js +1 -1
  541. package/dist/components/search-icon.js +1 -1
  542. package/dist/components/select-dropdown.js +1 -1
  543. package/dist/components/sent-icon.js +1 -1
  544. package/dist/components/spam-icon.js +1 -1
  545. package/dist/components/star-icon.js +1 -1
  546. package/dist/components/stop-icon.js +1 -1
  547. package/dist/components/textarea-component.js +1 -1
  548. package/dist/components/time-period-selector.js +1 -1
  549. package/dist/components/toggle-switch.js +1 -1
  550. package/dist/components/tooltip-component.js +1 -1
  551. package/dist/components/translate-icon.js +1 -1
  552. package/dist/components/trash-fill-icon.js +1 -1
  553. package/dist/components/trash-icon.js +1 -1
  554. package/dist/components/underline-icon.js +1 -1
  555. package/dist/components/warning-icon.js +1 -1
  556. package/dist/components/zoom-icon.js +1 -1
  557. package/dist/esm/add-circle-icon_2.entry.js +2 -2
  558. package/dist/esm/archive-icon.entry.js +1 -1
  559. package/dist/esm/arrow-icon.entry.js +1 -1
  560. package/dist/esm/bold-icon.entry.js +1 -1
  561. package/dist/esm/button-component_2.entry.js +2 -2
  562. package/dist/esm/calendar-agenda-fill-icon_39.entry.js +47 -47
  563. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  564. package/dist/esm/calendar-check-icon.entry.js +1 -1
  565. package/dist/esm/calendar-icon.entry.js +1 -1
  566. package/dist/esm/checkbox-component.entry.js +1 -1
  567. package/dist/esm/checkbox-group_4.entry.js +5 -5
  568. package/dist/esm/checkmark-circle-icon.entry.js +1 -1
  569. package/dist/esm/checkmark-icon_14.entry.js +16 -16
  570. package/dist/esm/chevron-icon_3.entry.js +4 -4
  571. package/dist/esm/clock-icon_2.entry.js +2 -2
  572. package/dist/esm/delete-icon.entry.js +1 -1
  573. package/dist/esm/document-refresh-icon.entry.js +1 -1
  574. package/dist/esm/folder-icon.entry.js +1 -1
  575. package/dist/esm/forward-icon.entry.js +1 -1
  576. package/dist/esm/globe-icon_3.entry.js +5 -5
  577. package/dist/esm/google-logo-icon_6.entry.js +13 -13
  578. package/dist/esm/google-meet-icon_5.entry.js +5 -5
  579. package/dist/esm/inbox-icon.entry.js +1 -1
  580. package/dist/esm/info-icon_2.entry.js +3 -3
  581. package/dist/esm/input-component.entry.js +1 -1
  582. package/dist/esm/input-dropdown_2.entry.js +2 -2
  583. package/dist/esm/input-image-url_2.entry.js +2 -2
  584. package/dist/esm/italic-icon.entry.js +1 -1
  585. package/dist/esm/multi-select-dropdown.entry.js +2 -2
  586. package/dist/esm/nylas-booked-event-card_11.entry.js +59 -19
  587. package/dist/esm/nylas-booked-event-card_11.entry.js.map +1 -1
  588. package/dist/esm/nylas-form-card.entry.js +1 -1
  589. package/dist/esm/nylas-notification_2.entry.js +2 -2
  590. package/dist/esm/nylas-scheduler-editor.entry.js +29 -4
  591. package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
  592. package/dist/esm/nylas-scheduling.entry.js +41 -1
  593. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  594. package/dist/esm/person-icon.entry.js +1 -1
  595. package/dist/esm/play-icon.entry.js +1 -1
  596. package/dist/esm/plus-icon.entry.js +1 -1
  597. package/dist/esm/radio-button-group.entry.js +1 -1
  598. package/dist/esm/refresh-icon.entry.js +1 -1
  599. package/dist/esm/reply-all-icon.entry.js +1 -1
  600. package/dist/esm/reply-icon.entry.js +1 -1
  601. package/dist/esm/sent-icon.entry.js +1 -1
  602. package/dist/esm/spam-icon.entry.js +1 -1
  603. package/dist/esm/star-icon.entry.js +1 -1
  604. package/dist/esm/stop-icon.entry.js +1 -1
  605. package/dist/esm/textarea-component.entry.js +1 -1
  606. package/dist/esm/toggle-switch.entry.js +1 -1
  607. package/dist/esm/translate-icon.entry.js +1 -1
  608. package/dist/esm/trash-fill-icon.entry.js +1 -1
  609. package/dist/esm/underline-icon.entry.js +1 -1
  610. package/dist/esm/{version-B5EM2UED.js → version-CYTx0-4Z.js} +3 -3
  611. package/dist/esm/version-CYTx0-4Z.js.map +1 -0
  612. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.esm.js.map +1 -1
  613. package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
  614. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  615. package/dist/nylas-web-elements/{p-219fd6f9.entry.js → p-00183807.entry.js} +2 -2
  616. package/dist/nylas-web-elements/p-080096b9.entry.js +2 -0
  617. package/dist/nylas-web-elements/p-204ef0b9.entry.js +2 -0
  618. package/dist/nylas-web-elements/{p-37c5834c.entry.js → p-20b88057.entry.js} +2 -2
  619. package/dist/nylas-web-elements/{p-87f52db7.entry.js → p-22a55c18.entry.js} +2 -2
  620. package/dist/nylas-web-elements/{p-11f478bd.entry.js → p-38c87a6e.entry.js} +2 -2
  621. package/dist/nylas-web-elements/{p-991b94bd.entry.js → p-3b627f4c.entry.js} +2 -2
  622. package/dist/nylas-web-elements/p-48188b92.entry.js +2 -0
  623. package/dist/nylas-web-elements/p-48188b92.entry.js.map +1 -0
  624. package/dist/nylas-web-elements/{p-932456ba.entry.js → p-4d170fc4.entry.js} +2 -2
  625. package/dist/nylas-web-elements/p-4dac5ab9.entry.js +2 -0
  626. package/dist/nylas-web-elements/{p-7fe0b3bb.entry.js.map → p-4dac5ab9.entry.js.map} +1 -1
  627. package/dist/nylas-web-elements/p-4f601ebb.entry.js +2 -0
  628. package/dist/nylas-web-elements/{p-3d1fd865.entry.js → p-50ffbf25.entry.js} +2 -2
  629. package/dist/nylas-web-elements/{p-81af9950.entry.js → p-54437b43.entry.js} +2 -2
  630. package/dist/nylas-web-elements/{p-f4516330.entry.js → p-55ce6edc.entry.js} +2 -2
  631. package/dist/nylas-web-elements/p-59d181d5.entry.js +2 -0
  632. package/dist/nylas-web-elements/{p-0ae1a52e.entry.js → p-5d3ae749.entry.js} +3 -3
  633. package/dist/nylas-web-elements/p-5d3ae749.entry.js.map +1 -0
  634. package/dist/nylas-web-elements/p-6e8fdf58.entry.js +2 -0
  635. package/dist/nylas-web-elements/p-722e1419.entry.js +2 -0
  636. package/dist/nylas-web-elements/p-72662447.entry.js +2 -0
  637. package/dist/nylas-web-elements/{p-f45da541.entry.js → p-75647771.entry.js} +2 -2
  638. package/dist/nylas-web-elements/{p-eb5b77ab.entry.js → p-759d71a9.entry.js} +2 -2
  639. package/dist/nylas-web-elements/p-7928b915.entry.js +2 -0
  640. package/dist/nylas-web-elements/{p-0745cbcc.entry.js → p-7a877959.entry.js} +2 -2
  641. package/dist/nylas-web-elements/p-7d28bcb7.entry.js +2 -0
  642. package/dist/nylas-web-elements/{p-af340293.entry.js → p-81eaa606.entry.js} +2 -2
  643. package/dist/nylas-web-elements/p-828469d5.entry.js +2 -0
  644. package/dist/nylas-web-elements/{p-c96b6f73.entry.js → p-829e73ef.entry.js} +2 -2
  645. package/dist/nylas-web-elements/p-82b39e7c.entry.js +2 -0
  646. package/dist/nylas-web-elements/p-82b39e7c.entry.js.map +1 -0
  647. package/dist/nylas-web-elements/p-9676f7ac.entry.js +2 -0
  648. package/dist/nylas-web-elements/{p-95c4f538.entry.js → p-9c0129c6.entry.js} +2 -2
  649. package/dist/nylas-web-elements/p-9cbcc79c.entry.js +2 -0
  650. package/dist/nylas-web-elements/{p-B5EM2UED.js → p-CYTx0-4Z.js} +2 -2
  651. package/dist/nylas-web-elements/p-CYTx0-4Z.js.map +1 -0
  652. package/dist/nylas-web-elements/{p-7930474b.entry.js → p-a03ea995.entry.js} +2 -2
  653. package/dist/nylas-web-elements/{p-84c3921f.entry.js → p-a6c1f77e.entry.js} +2 -2
  654. package/dist/nylas-web-elements/{p-974fce52.entry.js → p-af92dd91.entry.js} +2 -2
  655. package/dist/nylas-web-elements/{p-9dd10333.entry.js → p-b180424a.entry.js} +2 -2
  656. package/dist/nylas-web-elements/{p-1741705d.entry.js → p-bade8744.entry.js} +2 -2
  657. package/dist/nylas-web-elements/{p-fed4cb19.entry.js → p-bd7a8916.entry.js} +2 -2
  658. package/dist/nylas-web-elements/{p-02343d66.entry.js → p-be15cad1.entry.js} +2 -2
  659. package/dist/nylas-web-elements/{p-0c276fdb.entry.js → p-c107eaf2.entry.js} +2 -2
  660. package/dist/nylas-web-elements/{p-7876f3e5.entry.js → p-c273be7d.entry.js} +2 -2
  661. package/dist/nylas-web-elements/{p-a5bb5b9d.entry.js → p-c93b620f.entry.js} +2 -2
  662. package/dist/nylas-web-elements/{p-c0f88f23.entry.js → p-cd97fc2f.entry.js} +2 -2
  663. package/dist/nylas-web-elements/p-dca1f249.entry.js +2 -0
  664. package/dist/nylas-web-elements/{p-2491c840.entry.js → p-e4353ee3.entry.js} +2 -2
  665. package/dist/nylas-web-elements/{p-1618c8ac.entry.js → p-eac0a540.entry.js} +3 -3
  666. package/dist/nylas-web-elements/p-edb44a77.entry.js +2 -0
  667. package/dist/nylas-web-elements/{p-d48d8562.entry.js → p-f4449902.entry.js} +2 -2
  668. package/dist/nylas-web-elements/{p-3a8194c2.entry.js → p-f5ccd7f3.entry.js} +2 -2
  669. package/dist/nylas-web-elements/p-fdf56450.entry.js +2 -0
  670. package/dist/nylas-web-elements/p-ff27e57b.entry.js +2 -0
  671. package/dist/types/common/types.d.ts +2 -0
  672. package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +6 -0
  673. package/dist/types/components/scheduler/nylas-scheduling/nylas-scheduling.d.ts +1 -0
  674. package/dist/types/components.d.ts +14 -4
  675. package/dist/types/connector/shared/api/scheduler.d.ts +2 -0
  676. package/dist/types/types/index.d.ts +2 -0
  677. package/dist/types/version.d.ts +1 -1
  678. package/package.json +3 -3
  679. package/dist/cjs/version-Dvnf44vW.js.map +0 -1
  680. package/dist/components/p-B3cnALr8.js.map +0 -1
  681. package/dist/esm/version-B5EM2UED.js.map +0 -1
  682. package/dist/nylas-web-elements/p-0ae1a52e.entry.js.map +0 -1
  683. package/dist/nylas-web-elements/p-16db18a3.entry.js +0 -2
  684. package/dist/nylas-web-elements/p-37eedc9d.entry.js +0 -2
  685. package/dist/nylas-web-elements/p-43c3f331.entry.js +0 -2
  686. package/dist/nylas-web-elements/p-4a2bcec0.entry.js +0 -2
  687. package/dist/nylas-web-elements/p-55b2df61.entry.js +0 -2
  688. package/dist/nylas-web-elements/p-68195a72.entry.js +0 -2
  689. package/dist/nylas-web-elements/p-7fe0b3bb.entry.js +0 -2
  690. package/dist/nylas-web-elements/p-88e89256.entry.js +0 -2
  691. package/dist/nylas-web-elements/p-9c8a524c.entry.js +0 -2
  692. package/dist/nylas-web-elements/p-9c8a524c.entry.js.map +0 -1
  693. package/dist/nylas-web-elements/p-B5EM2UED.js.map +0 -1
  694. package/dist/nylas-web-elements/p-a3baa9bf.entry.js +0 -2
  695. package/dist/nylas-web-elements/p-a94cbeb7.entry.js +0 -2
  696. package/dist/nylas-web-elements/p-bca85255.entry.js +0 -2
  697. package/dist/nylas-web-elements/p-c7f4c268.entry.js +0 -2
  698. package/dist/nylas-web-elements/p-c7f4c268.entry.js.map +0 -1
  699. package/dist/nylas-web-elements/p-de990849.entry.js +0 -2
  700. package/dist/nylas-web-elements/p-e2dd457a.entry.js +0 -2
  701. package/dist/nylas-web-elements/p-e734cde9.entry.js +0 -2
  702. package/dist/nylas-web-elements/p-ed89219a.entry.js +0 -2
  703. package/dist/nylas-web-elements/p-f0406089.entry.js +0 -2
  704. package/dist/nylas-web-elements/p-f7f2c232.entry.js +0 -2
  705. /package/dist/nylas-web-elements/{p-219fd6f9.entry.js.map → p-00183807.entry.js.map} +0 -0
  706. /package/dist/nylas-web-elements/{p-68195a72.entry.js.map → p-080096b9.entry.js.map} +0 -0
  707. /package/dist/nylas-web-elements/{p-a3baa9bf.entry.js.map → p-204ef0b9.entry.js.map} +0 -0
  708. /package/dist/nylas-web-elements/{p-37c5834c.entry.js.map → p-20b88057.entry.js.map} +0 -0
  709. /package/dist/nylas-web-elements/{p-87f52db7.entry.js.map → p-22a55c18.entry.js.map} +0 -0
  710. /package/dist/nylas-web-elements/{p-11f478bd.entry.js.map → p-38c87a6e.entry.js.map} +0 -0
  711. /package/dist/nylas-web-elements/{p-991b94bd.entry.js.map → p-3b627f4c.entry.js.map} +0 -0
  712. /package/dist/nylas-web-elements/{p-932456ba.entry.js.map → p-4d170fc4.entry.js.map} +0 -0
  713. /package/dist/nylas-web-elements/{p-f7f2c232.entry.js.map → p-4f601ebb.entry.js.map} +0 -0
  714. /package/dist/nylas-web-elements/{p-3d1fd865.entry.js.map → p-50ffbf25.entry.js.map} +0 -0
  715. /package/dist/nylas-web-elements/{p-81af9950.entry.js.map → p-54437b43.entry.js.map} +0 -0
  716. /package/dist/nylas-web-elements/{p-f4516330.entry.js.map → p-55ce6edc.entry.js.map} +0 -0
  717. /package/dist/nylas-web-elements/{p-55b2df61.entry.js.map → p-59d181d5.entry.js.map} +0 -0
  718. /package/dist/nylas-web-elements/{p-37eedc9d.entry.js.map → p-6e8fdf58.entry.js.map} +0 -0
  719. /package/dist/nylas-web-elements/{p-88e89256.entry.js.map → p-722e1419.entry.js.map} +0 -0
  720. /package/dist/nylas-web-elements/{p-43c3f331.entry.js.map → p-72662447.entry.js.map} +0 -0
  721. /package/dist/nylas-web-elements/{p-f45da541.entry.js.map → p-75647771.entry.js.map} +0 -0
  722. /package/dist/nylas-web-elements/{p-eb5b77ab.entry.js.map → p-759d71a9.entry.js.map} +0 -0
  723. /package/dist/nylas-web-elements/{p-de990849.entry.js.map → p-7928b915.entry.js.map} +0 -0
  724. /package/dist/nylas-web-elements/{p-0745cbcc.entry.js.map → p-7a877959.entry.js.map} +0 -0
  725. /package/dist/nylas-web-elements/{p-16db18a3.entry.js.map → p-7d28bcb7.entry.js.map} +0 -0
  726. /package/dist/nylas-web-elements/{p-af340293.entry.js.map → p-81eaa606.entry.js.map} +0 -0
  727. /package/dist/nylas-web-elements/{p-bca85255.entry.js.map → p-828469d5.entry.js.map} +0 -0
  728. /package/dist/nylas-web-elements/{p-c96b6f73.entry.js.map → p-829e73ef.entry.js.map} +0 -0
  729. /package/dist/nylas-web-elements/{p-e734cde9.entry.js.map → p-9676f7ac.entry.js.map} +0 -0
  730. /package/dist/nylas-web-elements/{p-95c4f538.entry.js.map → p-9c0129c6.entry.js.map} +0 -0
  731. /package/dist/nylas-web-elements/{p-f0406089.entry.js.map → p-9cbcc79c.entry.js.map} +0 -0
  732. /package/dist/nylas-web-elements/{p-7930474b.entry.js.map → p-a03ea995.entry.js.map} +0 -0
  733. /package/dist/nylas-web-elements/{p-84c3921f.entry.js.map → p-a6c1f77e.entry.js.map} +0 -0
  734. /package/dist/nylas-web-elements/{p-974fce52.entry.js.map → p-af92dd91.entry.js.map} +0 -0
  735. /package/dist/nylas-web-elements/{p-9dd10333.entry.js.map → p-b180424a.entry.js.map} +0 -0
  736. /package/dist/nylas-web-elements/{p-1741705d.entry.js.map → p-bade8744.entry.js.map} +0 -0
  737. /package/dist/nylas-web-elements/{p-fed4cb19.entry.js.map → p-bd7a8916.entry.js.map} +0 -0
  738. /package/dist/nylas-web-elements/{p-02343d66.entry.js.map → p-be15cad1.entry.js.map} +0 -0
  739. /package/dist/nylas-web-elements/{p-0c276fdb.entry.js.map → p-c107eaf2.entry.js.map} +0 -0
  740. /package/dist/nylas-web-elements/{p-7876f3e5.entry.js.map → p-c273be7d.entry.js.map} +0 -0
  741. /package/dist/nylas-web-elements/{p-a5bb5b9d.entry.js.map → p-c93b620f.entry.js.map} +0 -0
  742. /package/dist/nylas-web-elements/{p-c0f88f23.entry.js.map → p-cd97fc2f.entry.js.map} +0 -0
  743. /package/dist/nylas-web-elements/{p-4a2bcec0.entry.js.map → p-dca1f249.entry.js.map} +0 -0
  744. /package/dist/nylas-web-elements/{p-2491c840.entry.js.map → p-e4353ee3.entry.js.map} +0 -0
  745. /package/dist/nylas-web-elements/{p-1618c8ac.entry.js.map → p-eac0a540.entry.js.map} +0 -0
  746. /package/dist/nylas-web-elements/{p-ed89219a.entry.js.map → p-edb44a77.entry.js.map} +0 -0
  747. /package/dist/nylas-web-elements/{p-d48d8562.entry.js.map → p-f4449902.entry.js.map} +0 -0
  748. /package/dist/nylas-web-elements/{p-3a8194c2.entry.js.map → p-f5ccd7f3.entry.js.map} +0 -0
  749. /package/dist/nylas-web-elements/{p-a94cbeb7.entry.js.map → p-fdf56450.entry.js.map} +0 -0
  750. /package/dist/nylas-web-elements/{p-e2dd457a.entry.js.map → p-ff27e57b.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../../src/connector/shared/api/scheduler.ts"],"names":[],"mappings":"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","sourcesContent":["import { AvailabilityResponse, NylasSchedulerBookingData, NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { LANGUAGE_CODE } from '@/common/constants';\nimport { NylasSchedulerStoreType } from '../../../components';\nimport type { NylasErrorResponse, NylasResponse, NylasSchedulerResponse, Timeslot } from '@nylas/core';\nimport { Errors } from '@/connector/nylas-scheduler-connector/errors';\nimport { addDaysToCurrentDate, normalizeDateInput, normalizeSupportedLanguageCode } from '@/utils/utils';\nimport i18next from '@/utils/i18n';\nimport { APIErrorType } from '@nylas/core';\nimport { ErrorCategory } from '@/types/index';\nimport { version } from '@/version';\n\ntype NylasSchedulerAPIConnectorOptions = {\n schedulerAPIURL: string;\n schedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n\n/**\n * NylaSchedulerConnector\n * This class is used to make API requests to the scheduler.\n */\nexport class NylaSchedulerAPIConnector {\n private schedulerStore: NylasSchedulerStoreType;\n private schedulerAPIURL: string;\n private sessionId: string | undefined;\n private configId: string | undefined;\n private slug: string | undefined;\n private clientId: string | undefined;\n private errors = new Errors();\n\n constructor({ schedulerAPIURL, schedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerAPIConnectorOptions) {\n this.schedulerStore = schedulerStore;\n this.schedulerAPIURL = schedulerAPIURL;\n this.sessionId = sessionId;\n this.configId = configId;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n private getHeaders() {\n return this.sessionId\n ? {\n Authorization: `Bearer ${this.sessionId}`,\n }\n : {};\n }\n\n /**\n * Makes an API request to the scheduler.\n * @param path The path to the API endpoint.\n * @param method The HTTP method.\n * @param body The request body (if any).\n * @returns {Promise<T>}\n */\n public async makeAPIRequest<T>(path: string, method: string, body: string | undefined, headers = {}, signal?: AbortSignal): Promise<NylasResponse<T>> {\n try {\n const schedulerURL = new URL(this.schedulerAPIURL);\n schedulerURL.pathname = path;\n const response = await fetch(decodeURIComponent(schedulerURL.toString()), {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'Origin': window.location.origin,\n 'X-Source': 'nylas-scheduling',\n 'X-Nylas-Web-Elements-Version': version,\n ...(this.clientId && { 'X-Nylas-Application-Public-Id': this.clientId }),\n ...headers,\n },\n body,\n signal,\n });\n // A successful mutation (e.g. cancelling a booking) can respond with 204 No\n // Content and an empty body. Calling response.json() on an empty body throws\n // \"Unexpected end of JSON input\", which the catch block below would surface as a\n // misleading \"API request failed\" even though the request succeeded. Handle the\n // no-content response explicitly rather than parsing a body that isn't there.\n if (response.status === 204) {\n return { data: undefined } as NylasResponse<T>;\n }\n // The server returns a json object for errors: eg.\n // {\n // \"request_id\": \"<request_id>\",\n // \"error\": {\n // \"type\": \"not_found_error\",\n // \"message\": \"Session not found\"\n // }\n // }\n const data = await response.json();\n return data as NylasResponse<T>;\n } catch (error: any) {\n // Let AbortError propagate so callers (getUISettings, getAvailability) skip\n // their store-mutation error paths for intentionally cancelled requests.\n if (error.name === 'AbortError') {\n throw error;\n }\n // NOTE: current server implementation doesn't return a JSON object for errors on some endpoints\n // handle this case by returning the error response as a string to be handled downstream\n return {\n error: {\n message: error.message,\n title: 'API request failed',\n type: 'api',\n },\n } as NylasErrorResponse;\n }\n }\n\n private getErrorMessage(error: NylasErrorResponse['error']) {\n let errorMessage = error?.message || error?.title || 'Something went wrong';\n if (error?.type === 'provider_error') {\n errorMessage = error?.provider_error?.error?.message || error?.provider_error?.error?.title || 'Something went wrong';\n }\n return errorMessage;\n }\n\n public setConfigId(configId: string) {\n this.configId = configId;\n }\n\n public setSchedulerAPIURL(url: string) {\n if (url === '/') {\n url = new URL(window.location.href).origin;\n }\n this.schedulerAPIURL = url;\n }\n\n public setSessionId(sessionId: string) {\n this.sessionId = sessionId;\n }\n\n /**\n * Selects a date in the scheduler.\n */\n public selectDate(date: Date) {\n this.schedulerStore.set('selectedDate', date);\n this.schedulerStore.set('selectedTimeslot', null);\n }\n\n /**\n * Selects a time in the scheduler.\n */\n public selectTime(time: Timeslot) {\n this.schedulerStore.set('selectedTimeslot', time);\n }\n\n /**\n * Sets the timezone in the scheduler.\n */\n public selectTimezone(timezone: string) {\n this.schedulerStore.set('selectedTimezone', timezone);\n }\n\n /**\n * Sets the language in the scheduler.\n */\n public selectLanguage(language: string) {\n const selectedLanguage = normalizeSupportedLanguageCode(language) || LANGUAGE_CODE.en;\n this.schedulerStore.set('selectedLanguage', selectedLanguage);\n i18next.changeLanguage(selectedLanguage);\n }\n\n /**\n * Toggles showBookingForm\n * @param value boolean\n */\n public async toggleAdditionalData(value: boolean) {\n if (!value) {\n // Refetch availability\n await this.refetchAvailability();\n }\n this.schedulerStore.set('showBookingForm', value);\n }\n\n /**\n * Set/update the name of the participant booking the event.\n */\n public setParticipantName(name: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n name,\n },\n });\n }\n\n /**\n * Set/update the email of the participant booking the event.\n */\n public setParticipantEmail(email: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n email,\n },\n });\n }\n\n private async refetchAvailability() {\n const today = new Date();\n // Refetch availability\n const startTime = new Date(today.getFullYear(), today.getMonth(), 1).getTime() / 1000;\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n const endTime = new Date(today.getFullYear(), today.getMonth() + 1, 1).getTime() / 1000;\n const result = await this.getAvailability(startTimeWithOffset, endTime);\n return result;\n }\n\n private async resetStoreStateAndFetchAvailability() {\n const today = new Date();\n // Refetch availability\n const result = await this.refetchAvailability();\n // Set selected date to first available date\n const firstAvailableDate = this.schedulerStore.get('availability').find((timeslot: any) => {\n const startTime = normalizeDateInput(timeslot.start_time);\n return startTime ? startTime > new Date() : false;\n });\n let _selectedDate = today;\n if (firstAvailableDate) {\n _selectedDate = normalizeDateInput(firstAvailableDate.start_time) || today;\n }\n this.schedulerStore.set('selectedDate', _selectedDate);\n // Reset store state\n this.schedulerStore.set('eventInfo', null);\n this.schedulerStore.set('showBookingForm', false);\n this.schedulerStore.set('selectedTimeslot', null);\n\n return result;\n }\n\n /**\n * Set reschedule booking id\n */\n public async setReschedule(bookingID: string) {\n this.schedulerStore.set('isLoading', true);\n const eventInfo = this.schedulerStore.state.eventInfo;\n if (eventInfo) {\n this.schedulerStore.set('reschedulingEventInfo', eventInfo);\n }\n this.schedulerStore.set('rescheduleBookingId', bookingID);\n await this.getUISettings();\n // Set reschedule booking id\n const result = await this.resetStoreStateAndFetchAvailability().finally(() => {\n this.schedulerStore.set('isLoading', false);\n });\n\n return result;\n }\n\n /**\n * Set cancel booking id\n */\n public async setCancel(bookingID: string) {\n this.schedulerStore.set('cancelBookingId', bookingID);\n }\n\n /**\n * Set reject booking id\n */\n public async setReject(bookingID: string) {\n this.schedulerStore.set('rejectBookingId', bookingID);\n }\n\n public async resetCancel() {\n const result = await this.resetStoreStateAndFetchAvailability();\n this.schedulerStore.set('cancelBookingId', '');\n this.schedulerStore.set('rejectBookingId', '');\n this.schedulerStore.set('cancelledEventInfo', null);\n return result;\n }\n\n public async goBack() {\n this.schedulerStore.set('cancelBookingId', '');\n return;\n }\n\n public async resetConfirm() {\n const result = await this.resetStoreStateAndFetchAvailability();\n this.schedulerStore.set('organizerConfirmationBookingId', '');\n this.schedulerStore.set('confirmedEventInfo', undefined);\n return result;\n }\n\n /**\n * Book the selected timeslot.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async bookTimeslot(data?: NylasSchedulerBookingDataWithFlatFields & { timeslot?: Timeslot }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { selectedTimeslot, selectedTimezone, bookingInfo, selectedLanguage } = this.schedulerStore.state;\n\n if (!data && !bookingInfo) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_booking_info() };\n }\n\n const timeslot = data?.timeslot || selectedTimeslot;\n if (!timeslot) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_timeslot_selected() };\n }\n\n const timezone = data && data?.timezone ? data?.timezone : selectedTimezone;\n const language = selectedLanguage || 'en-US';\n\n if (!timezone) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_timezone_selected() };\n }\n\n const order = [...this.schedulerStore.get('availabilityOrderEmails')];\n\n let participantToBookWith = '';\n const emails = timeslot?.emails || [];\n\n const addFields = {};\n Object.entries(bookingInfo?.additionalFields || {}).forEach(([key, entry]) => {\n addFields[key] = (entry as { value: string; type?: string }).value;\n });\n\n const primaryGuest = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? data?.additionalFields : addFields;\n\n const headers = this.getHeaders();\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings${configIdParam}`;\n\n // If the order array is empty, make a single request without retries\n if (order.length === 0) {\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n additional_fields,\n additional_guests: guests,\n guest: { ...primaryGuest },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n timezone,\n event_id: timeslot?.event_id || undefined,\n master_id: timeslot?.master_id || undefined,\n calendar_id: timeslot?.calendar_id || undefined,\n email_language: this.getTwoLetterLanguageCode(language),\n }),\n headers,\n );\n\n this.schedulerStore.set('isLoading', false);\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response.data);\n return response;\n }\n return { error: response.error };\n }\n\n while (order.length > 0) {\n participantToBookWith = order.shift()!;\n\n if (!emails.includes(participantToBookWith)) {\n continue; // Skip if the email is not part of the timeslot\n }\n\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n participants: participantToBookWith ? [{ email: participantToBookWith }] : undefined,\n additional_fields,\n additional_guests: guests,\n guest: { ...primaryGuest },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n timezone: timezone,\n email_language: this.getTwoLetterLanguageCode(language),\n }),\n headers,\n );\n\n if ('data' in response) {\n // Successful booking\n this.schedulerStore.set('isLoading', false);\n this.schedulerStore.set('eventInfo', response?.data);\n return response;\n } else if (response.error?.message?.startsWith('The selected timeslot is unavailable')) {\n // Retry with the next email in the order\n continue;\n } else {\n // Return other errors\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('createBookingErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('createBookingErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n }\n\n // If no emails in order succeed\n this.schedulerStore.set('isLoading', false);\n return {\n error: this.errors.api(i18next.t('createBookingErrorTitle')).timeslot_not_available('The selected timeslot is unavailable'),\n };\n }\n\n /**\n * Get UI settings for the scheduler.\n */\n public async getUISettings(signal?: AbortSignal): Promise<NylasSchedulerResponse<UISettingsResponse>> {\n this.schedulerStore.set('isLoading', true);\n const bookingId = this.schedulerStore.get('rescheduleBookingId');\n const headers = this.getHeaders();\n let configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n if (bookingId && !!configIdParam) {\n configIdParam += `&booking_id=${bookingId}`;\n } else if (bookingId) {\n configIdParam += `?booking_id=${bookingId}`;\n }\n\n const url = `/v3/scheduling/ui-settings${configIdParam}`;\n\n const response = await this.makeAPIRequest<UISettingsResponse>(url, 'GET', undefined, headers, signal);\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('getUISettingErrorTitle'))) {\n error = this.errors.api(i18next.t('getUISettingErrorTitle'))[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n return { error };\n }\n if ('data' in response) {\n this.schedulerStore.set('configSettings', response.data);\n this.clientId = response.data.app_client_id || this.clientId;\n }\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n private getTwoLetterLanguageCode(language: string) {\n return language.split('-')[0];\n }\n\n private getStartTimeWithMinBookingNotice(startTime: number) {\n const scheduler = this.schedulerStore.get('configSettings')?.scheduler;\n const min_booking_notice = scheduler?.min_booking_notice;\n if (!min_booking_notice) {\n return startTime;\n }\n const today = new Date().getTime();\n\n if (startTime < (today + min_booking_notice * 60 * 1000) / 1000) {\n return Math.floor((today + min_booking_notice * 60 * 1000) / 1000);\n } else {\n return startTime;\n }\n }\n\n private getEndTimeForAvailableDaysInFuture(endTime: number) {\n const today = new Date();\n const availableDaysInFuture = this.schedulerStore.get('configSettings')?.scheduler?.available_days_in_future;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTimeWithOffset = Math.min(endTimeForAvailableDaysInFuture, endTime);\n return endTimeWithOffset;\n }\n\n /**\n * Gets the availability for a page.\n * @param startTime The start time.\n * @param endTime The end time.\n * @returns {Promise<AvailabilityResponse>}\n */\n public async getAvailability(startTime: number = 0, endTime: number = 0, signal?: AbortSignal): Promise<NylasSchedulerResponse<AvailabilityResponse>> {\n this.schedulerStore.set('isLoading', true);\n const params = new URLSearchParams();\n const now = new Date();\n const nowTime = now.getTime();\n\n if (endTime && endTime < nowTime / 1000) {\n this.schedulerStore.set('isLoading', false);\n const error = this.errors.component(i18next.t('getAvailabilityErrorTitle')).endtime_not_in_future();\n return { error };\n }\n\n // Calculate the start of the current month if startTime is not provided\n if (!startTime) {\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n startTime = Math.floor(startOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n // Calculate the end of the current month if endTime is not provided\n if (!endTime) {\n const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0); // Setting day to 0 gets the last day of the previous month, so in this case, the last day of the current month\n endTime = Math.floor(endOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n endTime = this.getEndTimeForAvailableDaysInFuture(endTime);\n const startTimeWithMinBooking = this.getStartTimeWithMinBookingNotice(startTime);\n startTime = startTimeWithMinBooking;\n endTime = startTimeWithMinBooking > endTime ? startTimeWithMinBooking + 1 : endTime;\n\n params.append('start_time', encodeURIComponent(startTime.toString()));\n params.append('end_time', encodeURIComponent(endTime.toString()));\n if (this.configId && !this.sessionId) {\n params.append('configuration_id', encodeURIComponent(this.configId));\n } else if (this.slug && this.clientId && !this.sessionId) {\n params.append('slug', encodeURIComponent(this.slug));\n params.append('client_id', encodeURIComponent(this.clientId));\n }\n\n const rescheduleBookingId = this.schedulerStore.get('rescheduleBookingId');\n if (rescheduleBookingId) {\n params.append('booking_id', encodeURIComponent(rescheduleBookingId));\n }\n const queryString = params.toString();\n const url = `/v3/scheduling/availability${queryString ? `?${queryString}` : ''}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<AvailabilityResponse>(decodeURIComponent(url), 'GET', undefined, headers, signal);\n\n if ('error' in response) {\n this.schedulerStore.set('availability', []);\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n // If the error message contains \"Failed to find a valid Grant\", return a custom error.\n // This is a temporary fix for showing a user friendly error message and hiding PII from the error message.\n // TODO: Implement proper error handling and remove this temporary fix.\n if (error?.message?.toLowerCase().includes('Failed to find a valid Grant')) {\n const errorMessage = i18next.t('invalidGrantError');\n return {\n error: {\n title: i18next.t('invalidGrantErrorTitle'),\n message: errorMessage,\n category: ErrorCategory.Api,\n },\n };\n }\n\n if (errorType && errorType in this.errors.api(i18next.t('getAvailabilityErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('getAvailabilityErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n if ('data' in response) {\n const availability =\n response.data?.time_slots?.map(timeslot => {\n return {\n ...timeslot,\n start_time: new Date(timeslot.start_time * 1000),\n end_time: new Date(timeslot.end_time * 1000),\n };\n }) || [];\n\n // Filter out timeslots that are in the past\n const availabilityTimeslotsFiltered = availability.filter(timeslot => timeslot.start_time.getTime() > nowTime);\n const availabilityTimeslotSorted = availabilityTimeslotsFiltered.sort((a, b) => a.start_time.getTime() - b.start_time.getTime());\n this.schedulerStore.set('availability', availabilityTimeslotSorted);\n const order = response.data?.order || [];\n this.schedulerStore.set('availabilityOrderEmails', order);\n }\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Cancels a booking.\n * @param bookingId The booking ID.\n */\n public async cancelBooking(bookingId: string, reason: string): Promise<NylasSchedulerResponse<Partial<NylasEvent>>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component(i18next.t('cancelBookingErrorTitle')).no_booking_id() };\n }\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<Partial<NylasEvent>>(\n decodeURIComponent(url),\n 'DELETE',\n JSON.stringify({\n action: 'cancel',\n cancellation_reason: reason,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('cancelBookingErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('cancelBookingErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n this.schedulerStore.set('rescheduleBookingId', '');\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Reschedules a booking.\n * @param bookingId The booking ID.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async rescheduleBooking(bookingId: string, data: NylasSchedulerBookingDataWithFlatFields): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component(i18next.t('rescheduleBookingErrorTitle')).no_booking_id() };\n }\n const apiErrors = this.errors.api(i18next.t('rescheduleBookingErrorTitle'));\n const componentErrors = this.errors.component(i18next.t('rescheduleBookingErrorTitle'));\n const { bookingInfo, selectedTimeslot, selectedTimezone, selectedLanguage } = this.schedulerStore.state;\n // Validate data\n const { startTime, endTime, timezone } = data;\n const start_time = startTime || selectedTimeslot?.start_time;\n\n if (!start_time) {\n return { error: componentErrors.invalid_start_time('Please pass \"startTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n const end_time = endTime || selectedTimeslot?.end_time;\n if (!end_time) {\n return { error: componentErrors.invalid_end_time('Please pass \"endTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n\n const order = this.schedulerStore.get('availabilityOrderEmails');\n let participantToBookWith = '';\n if (order.length > 0) {\n // Get the emails in the timeslot\n const emails = selectedTimeslot?.emails || [];\n for (let i = 0; i < order.length; i++) {\n if (emails.includes(order[i])) {\n participantToBookWith = order[i];\n break;\n }\n }\n }\n\n const time_zone = timezone || selectedTimezone;\n if (!time_zone) {\n return { error: componentErrors.invalid_timezone('Please pass \"timezone\" in data or set \"selectedTimezone\" in the defaultSchedulerState.') };\n }\n\n // Group event fields\n const event_id = selectedTimeslot?.event_id || undefined;\n const master_id = selectedTimeslot?.master_id || undefined;\n const calendar_id = selectedTimeslot?.calendar_id || undefined;\n\n const addFields = {};\n Object.entries(bookingInfo?.additionalFields || {}).forEach(([key, entry]) => {\n addFields[key] = (entry as { value: string; type?: string }).value;\n });\n const primaryGuest = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? data?.additionalFields : addFields;\n\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PATCH',\n JSON.stringify({\n start_time: start_time.getTime() / 1000,\n end_time: end_time.getTime() / 1000,\n timezone: time_zone,\n additional_fields,\n guest: { ...primaryGuest },\n additional_guests: guests,\n participants: participantToBookWith ? [{ email: participantToBookWith }] : undefined,\n email_language: this.getTwoLetterLanguageCode(selectedLanguage),\n event_id,\n master_id,\n calendar_id,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in apiErrors) {\n const errorMessage = this.getErrorMessage(error);\n error = apiErrors[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n const eventInfo = this.schedulerStore.get('reschedulingEventInfo');\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response?.data);\n // Update rescheduleBookingId to the new booking ID so that subsequent\n // operations (e.g. cancel) target the rescheduled booking, not the original.\n if (response.data?.booking_id) {\n this.schedulerStore.set('rescheduleBookingId', response.data.booking_id);\n }\n } else if (eventInfo) {\n this.schedulerStore.set('eventInfo', eventInfo);\n } else {\n // We should technically never reach this point\n const event = {\n booking_id: bookingId,\n } as NylasEvent;\n this.schedulerStore.set('eventInfo', event);\n }\n\n this.schedulerStore.set('reschedulingEventInfo', undefined);\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Updates the booking.\n * @param bookingId The booking ID.\n */\n public async updateBooking(payload: { bookingId: string; status: 'confirmed' | 'cancelled'; reason?: string }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { bookingId, status, reason } = payload;\n const salt = this.schedulerStore.get('organizerConfirmationSalt');\n const errorTitle = status === 'confirmed' ? i18next.t('confirmBookingErrorTitle') : i18next.t('rejectBookingErrorTitle');\n\n if (!bookingId) {\n return { error: this.errors.component(errorTitle).no_booking_id() };\n }\n if (!salt) {\n return { error: this.errors.component(errorTitle).no_salt() };\n }\n\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PUT',\n JSON.stringify({\n status: status,\n cancellation_reason: reason,\n salt,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(errorTitle)) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(errorTitle)[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n if ('data' in response && status === 'confirmed') {\n this.schedulerStore.set('confirmedEventInfo', response?.data);\n } else if ('request_id' in response && status === 'cancelled') {\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n }\n\n this.schedulerStore.set('organizerConfirmationBookingId', '');\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Validate timeslot for group event booking\n */\n public async validateGroupEventTimeslot(timeslot: Timeslot) {\n this.schedulerStore.set('isLoading', true);\n const configId = this.schedulerStore.get('configSettings')?.configuration_id;\n if (!configId) {\n return { error: this.errors.component(i18next.t('validateTimeslotErrorTitle')).no_config_id() };\n }\n\n const headers = this.getHeaders();\n const url = `/v3/scheduling/configurations/${configId}/group-events/validate-timeslot`;\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n ...timeslot,\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('validateTimeslotErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('validateTimeslotErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n this.refetchAvailability();\n return { error };\n }\n\n this.schedulerStore.set('selectedTimeslot', timeslot);\n this.schedulerStore.set('showBookingForm', true);\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n}\n"]}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../../src/connector/shared/api/scheduler.ts"],"names":[],"mappings":"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","sourcesContent":["import { AvailabilityResponse, NylasSchedulerBookingData, NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { LANGUAGE_CODE } from '@/common/constants';\nimport { NylasSchedulerStoreType } from '../../../components';\nimport type { NylasErrorResponse, NylasResponse, NylasSchedulerResponse, Timeslot } from '@nylas/core';\nimport { Errors } from '@/connector/nylas-scheduler-connector/errors';\nimport { addDaysToCurrentDate, normalizeDateInput, normalizeSupportedLanguageCode } from '@/utils/utils';\nimport i18next from '@/utils/i18n';\nimport { APIErrorType } from '@nylas/core';\nimport { ErrorCategory } from '@/types/index';\nimport { version } from '@/version';\n\ntype NylasSchedulerAPIConnectorOptions = {\n schedulerAPIURL: string;\n schedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n\n/**\n * NylaSchedulerConnector\n * This class is used to make API requests to the scheduler.\n */\nexport class NylaSchedulerAPIConnector {\n private schedulerStore: NylasSchedulerStoreType;\n private schedulerAPIURL: string;\n private sessionId: string | undefined;\n private configId: string | undefined;\n private slug: string | undefined;\n private clientId: string | undefined;\n private errors = new Errors();\n\n constructor({ schedulerAPIURL, schedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerAPIConnectorOptions) {\n this.schedulerStore = schedulerStore;\n this.schedulerAPIURL = schedulerAPIURL;\n this.sessionId = sessionId;\n this.configId = configId;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n private getHeaders() {\n return this.sessionId\n ? {\n Authorization: `Bearer ${this.sessionId}`,\n }\n : {};\n }\n\n /**\n * Makes an API request to the scheduler.\n * @param path The path to the API endpoint.\n * @param method The HTTP method.\n * @param body The request body (if any).\n * @returns {Promise<T>}\n */\n public async makeAPIRequest<T>(path: string, method: string, body: string | undefined, headers = {}, signal?: AbortSignal): Promise<NylasResponse<T>> {\n try {\n const schedulerURL = new URL(this.schedulerAPIURL);\n schedulerURL.pathname = path;\n const response = await fetch(decodeURIComponent(schedulerURL.toString()), {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'Origin': window.location.origin,\n 'X-Source': 'nylas-scheduling',\n 'X-Nylas-Web-Elements-Version': version,\n ...(this.clientId && { 'X-Nylas-Application-Public-Id': this.clientId }),\n ...headers,\n },\n body,\n signal,\n });\n // A successful mutation (e.g. cancelling a booking) can respond with 204 No\n // Content and an empty body. Calling response.json() on an empty body throws\n // \"Unexpected end of JSON input\", which the catch block below would surface as a\n // misleading \"API request failed\" even though the request succeeded. Handle the\n // no-content response explicitly rather than parsing a body that isn't there.\n if (response.status === 204) {\n return { data: undefined } as NylasResponse<T>;\n }\n // The server returns a json object for errors: eg.\n // {\n // \"request_id\": \"<request_id>\",\n // \"error\": {\n // \"type\": \"not_found_error\",\n // \"message\": \"Session not found\"\n // }\n // }\n const data = await response.json();\n return data as NylasResponse<T>;\n } catch (error: any) {\n // Let AbortError propagate so callers (getUISettings, getAvailability) skip\n // their store-mutation error paths for intentionally cancelled requests.\n if (error.name === 'AbortError') {\n throw error;\n }\n // NOTE: current server implementation doesn't return a JSON object for errors on some endpoints\n // handle this case by returning the error response as a string to be handled downstream\n return {\n error: {\n message: error.message,\n title: 'API request failed',\n type: 'api',\n },\n } as NylasErrorResponse;\n }\n }\n\n private getErrorMessage(error: NylasErrorResponse['error']) {\n let errorMessage = error?.message || error?.title || 'Something went wrong';\n if (error?.type === 'provider_error') {\n errorMessage = error?.provider_error?.error?.message || error?.provider_error?.error?.title || 'Something went wrong';\n }\n return errorMessage;\n }\n\n public setConfigId(configId: string) {\n this.configId = configId;\n }\n\n public setSchedulerAPIURL(url: string) {\n if (url === '/') {\n url = new URL(window.location.href).origin;\n }\n this.schedulerAPIURL = url;\n }\n\n public setSessionId(sessionId: string) {\n this.sessionId = sessionId;\n }\n\n /**\n * Selects a date in the scheduler.\n */\n public selectDate(date: Date) {\n this.schedulerStore.set('selectedDate', date);\n this.schedulerStore.set('selectedTimeslot', null);\n }\n\n /**\n * Selects a time in the scheduler.\n */\n public selectTime(time: Timeslot) {\n this.schedulerStore.set('selectedTimeslot', time);\n }\n\n /**\n * Sets the timezone in the scheduler.\n */\n public selectTimezone(timezone: string) {\n this.schedulerStore.set('selectedTimezone', timezone);\n }\n\n /**\n * Sets the language in the scheduler.\n */\n public selectLanguage(language: string) {\n const selectedLanguage = normalizeSupportedLanguageCode(language) || LANGUAGE_CODE.en;\n this.schedulerStore.set('selectedLanguage', selectedLanguage);\n i18next.changeLanguage(selectedLanguage);\n }\n\n /**\n * Toggles showBookingForm\n * @param value boolean\n */\n public async toggleAdditionalData(value: boolean) {\n if (!value) {\n // Refetch availability\n await this.refetchAvailability();\n }\n this.schedulerStore.set('showBookingForm', value);\n }\n\n /**\n * Set/update the name of the participant booking the event.\n */\n public setParticipantName(name: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n name,\n },\n });\n }\n\n /**\n * Set/update the email of the participant booking the event.\n */\n public setParticipantEmail(email: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n email,\n },\n });\n }\n\n /**\n * Set/update the additional guests of the event.\n * Stores the guest emails in the same shape the booking form rehydrates from\n * (an array of participants keyed by email), so they survive back-navigation.\n */\n public setGuests(guestEmails: string[]) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant'],\n guests: guestEmails.map(email => ({ name: email, email })),\n });\n }\n\n /**\n * Set/update the additional/custom fields of the event.\n * Wraps each flat field value in the `{ value }` shape the booking form\n * rehydrates from, preserving any existing type/readOnly metadata, so custom\n * field entries survive back-navigation.\n */\n public setAdditionalFields(additionalFields: Record<string, string>) {\n const { bookingInfo } = this.schedulerStore.state;\n const existing = bookingInfo?.additionalFields ?? {};\n const merged: NonNullable<NylasSchedulerBookingData['additionalFields']> = { ...existing };\n Object.entries(additionalFields).forEach(([key, value]) => {\n merged[key] = { ...existing[key], value };\n });\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant'],\n additionalFields: merged,\n });\n }\n\n private async refetchAvailability() {\n const today = new Date();\n // Refetch availability\n const startTime = new Date(today.getFullYear(), today.getMonth(), 1).getTime() / 1000;\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n const endTime = new Date(today.getFullYear(), today.getMonth() + 1, 1).getTime() / 1000;\n const result = await this.getAvailability(startTimeWithOffset, endTime);\n return result;\n }\n\n private async resetStoreStateAndFetchAvailability() {\n const today = new Date();\n // Refetch availability\n const result = await this.refetchAvailability();\n // Set selected date to first available date\n const firstAvailableDate = this.schedulerStore.get('availability').find((timeslot: any) => {\n const startTime = normalizeDateInput(timeslot.start_time);\n return startTime ? startTime > new Date() : false;\n });\n let _selectedDate = today;\n if (firstAvailableDate) {\n _selectedDate = normalizeDateInput(firstAvailableDate.start_time) || today;\n }\n this.schedulerStore.set('selectedDate', _selectedDate);\n // Reset store state\n this.schedulerStore.set('eventInfo', null);\n this.schedulerStore.set('showBookingForm', false);\n this.schedulerStore.set('selectedTimeslot', null);\n\n return result;\n }\n\n /**\n * Set reschedule booking id\n */\n public async setReschedule(bookingID: string) {\n this.schedulerStore.set('isLoading', true);\n const eventInfo = this.schedulerStore.state.eventInfo;\n if (eventInfo) {\n this.schedulerStore.set('reschedulingEventInfo', eventInfo);\n }\n this.schedulerStore.set('rescheduleBookingId', bookingID);\n await this.getUISettings();\n // Set reschedule booking id\n const result = await this.resetStoreStateAndFetchAvailability().finally(() => {\n this.schedulerStore.set('isLoading', false);\n });\n\n return result;\n }\n\n /**\n * Set cancel booking id\n */\n public async setCancel(bookingID: string) {\n this.schedulerStore.set('cancelBookingId', bookingID);\n }\n\n /**\n * Set reject booking id\n */\n public async setReject(bookingID: string) {\n this.schedulerStore.set('rejectBookingId', bookingID);\n }\n\n public async resetCancel() {\n const result = await this.resetStoreStateAndFetchAvailability();\n this.schedulerStore.set('cancelBookingId', '');\n this.schedulerStore.set('rejectBookingId', '');\n this.schedulerStore.set('cancelledEventInfo', null);\n return result;\n }\n\n public async goBack() {\n this.schedulerStore.set('cancelBookingId', '');\n return;\n }\n\n public async resetConfirm() {\n const result = await this.resetStoreStateAndFetchAvailability();\n this.schedulerStore.set('organizerConfirmationBookingId', '');\n this.schedulerStore.set('confirmedEventInfo', undefined);\n return result;\n }\n\n /**\n * Book the selected timeslot.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async bookTimeslot(data?: NylasSchedulerBookingDataWithFlatFields & { timeslot?: Timeslot }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { selectedTimeslot, selectedTimezone, bookingInfo, selectedLanguage } = this.schedulerStore.state;\n\n if (!data && !bookingInfo) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_booking_info() };\n }\n\n const timeslot = data?.timeslot || selectedTimeslot;\n if (!timeslot) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_timeslot_selected() };\n }\n\n const timezone = data && data?.timezone ? data?.timezone : selectedTimezone;\n const language = selectedLanguage || 'en-US';\n\n if (!timezone) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_timezone_selected() };\n }\n\n const order = [...this.schedulerStore.get('availabilityOrderEmails')];\n\n let participantToBookWith = '';\n const emails = timeslot?.emails || [];\n\n const addFields = {};\n Object.entries(bookingInfo?.additionalFields || {}).forEach(([key, entry]) => {\n addFields[key] = (entry as { value: string; type?: string }).value;\n });\n\n const primaryGuest = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? data?.additionalFields : addFields;\n\n const headers = this.getHeaders();\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings${configIdParam}`;\n\n // If the order array is empty, make a single request without retries\n if (order.length === 0) {\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n additional_fields,\n additional_guests: guests,\n guest: { ...primaryGuest },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n timezone,\n event_id: timeslot?.event_id || undefined,\n master_id: timeslot?.master_id || undefined,\n calendar_id: timeslot?.calendar_id || undefined,\n email_language: this.getTwoLetterLanguageCode(language),\n }),\n headers,\n );\n\n this.schedulerStore.set('isLoading', false);\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response.data);\n return response;\n }\n return { error: response.error };\n }\n\n while (order.length > 0) {\n participantToBookWith = order.shift()!;\n\n if (!emails.includes(participantToBookWith)) {\n continue; // Skip if the email is not part of the timeslot\n }\n\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n participants: participantToBookWith ? [{ email: participantToBookWith }] : undefined,\n additional_fields,\n additional_guests: guests,\n guest: { ...primaryGuest },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n timezone: timezone,\n email_language: this.getTwoLetterLanguageCode(language),\n }),\n headers,\n );\n\n if ('data' in response) {\n // Successful booking\n this.schedulerStore.set('isLoading', false);\n this.schedulerStore.set('eventInfo', response?.data);\n return response;\n } else if (response.error?.message?.startsWith('The selected timeslot is unavailable')) {\n // Retry with the next email in the order\n continue;\n } else {\n // Return other errors\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('createBookingErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('createBookingErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n }\n\n // If no emails in order succeed\n this.schedulerStore.set('isLoading', false);\n return {\n error: this.errors.api(i18next.t('createBookingErrorTitle')).timeslot_not_available('The selected timeslot is unavailable'),\n };\n }\n\n /**\n * Get UI settings for the scheduler.\n */\n public async getUISettings(signal?: AbortSignal): Promise<NylasSchedulerResponse<UISettingsResponse>> {\n this.schedulerStore.set('isLoading', true);\n const bookingId = this.schedulerStore.get('rescheduleBookingId');\n const headers = this.getHeaders();\n let configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n if (bookingId && !!configIdParam) {\n configIdParam += `&booking_id=${bookingId}`;\n } else if (bookingId) {\n configIdParam += `?booking_id=${bookingId}`;\n }\n\n const url = `/v3/scheduling/ui-settings${configIdParam}`;\n\n const response = await this.makeAPIRequest<UISettingsResponse>(url, 'GET', undefined, headers, signal);\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('getUISettingErrorTitle'))) {\n error = this.errors.api(i18next.t('getUISettingErrorTitle'))[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n return { error };\n }\n if ('data' in response) {\n this.schedulerStore.set('configSettings', response.data);\n this.clientId = response.data.app_client_id || this.clientId;\n }\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n private getTwoLetterLanguageCode(language: string) {\n return language.split('-')[0];\n }\n\n private getStartTimeWithMinBookingNotice(startTime: number) {\n const scheduler = this.schedulerStore.get('configSettings')?.scheduler;\n const min_booking_notice = scheduler?.min_booking_notice;\n if (!min_booking_notice) {\n return startTime;\n }\n const today = new Date().getTime();\n\n if (startTime < (today + min_booking_notice * 60 * 1000) / 1000) {\n return Math.floor((today + min_booking_notice * 60 * 1000) / 1000);\n } else {\n return startTime;\n }\n }\n\n private getEndTimeForAvailableDaysInFuture(endTime: number) {\n const today = new Date();\n const availableDaysInFuture = this.schedulerStore.get('configSettings')?.scheduler?.available_days_in_future;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTimeWithOffset = Math.min(endTimeForAvailableDaysInFuture, endTime);\n return endTimeWithOffset;\n }\n\n /**\n * Gets the availability for a page.\n * @param startTime The start time.\n * @param endTime The end time.\n * @returns {Promise<AvailabilityResponse>}\n */\n public async getAvailability(startTime: number = 0, endTime: number = 0, signal?: AbortSignal): Promise<NylasSchedulerResponse<AvailabilityResponse>> {\n this.schedulerStore.set('isLoading', true);\n const params = new URLSearchParams();\n const now = new Date();\n const nowTime = now.getTime();\n\n if (endTime && endTime < nowTime / 1000) {\n this.schedulerStore.set('isLoading', false);\n const error = this.errors.component(i18next.t('getAvailabilityErrorTitle')).endtime_not_in_future();\n return { error };\n }\n\n // Calculate the start of the current month if startTime is not provided\n if (!startTime) {\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n startTime = Math.floor(startOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n // Calculate the end of the current month if endTime is not provided\n if (!endTime) {\n const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0); // Setting day to 0 gets the last day of the previous month, so in this case, the last day of the current month\n endTime = Math.floor(endOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n endTime = this.getEndTimeForAvailableDaysInFuture(endTime);\n const startTimeWithMinBooking = this.getStartTimeWithMinBookingNotice(startTime);\n startTime = startTimeWithMinBooking;\n endTime = startTimeWithMinBooking > endTime ? startTimeWithMinBooking + 1 : endTime;\n\n params.append('start_time', encodeURIComponent(startTime.toString()));\n params.append('end_time', encodeURIComponent(endTime.toString()));\n if (this.configId && !this.sessionId) {\n params.append('configuration_id', encodeURIComponent(this.configId));\n } else if (this.slug && this.clientId && !this.sessionId) {\n params.append('slug', encodeURIComponent(this.slug));\n params.append('client_id', encodeURIComponent(this.clientId));\n }\n\n const rescheduleBookingId = this.schedulerStore.get('rescheduleBookingId');\n if (rescheduleBookingId) {\n params.append('booking_id', encodeURIComponent(rescheduleBookingId));\n }\n const queryString = params.toString();\n const url = `/v3/scheduling/availability${queryString ? `?${queryString}` : ''}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<AvailabilityResponse>(decodeURIComponent(url), 'GET', undefined, headers, signal);\n\n if ('error' in response) {\n this.schedulerStore.set('availability', []);\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n // If the error message contains \"Failed to find a valid Grant\", return a custom error.\n // This is a temporary fix for showing a user friendly error message and hiding PII from the error message.\n // TODO: Implement proper error handling and remove this temporary fix.\n if (error?.message?.toLowerCase().includes('Failed to find a valid Grant')) {\n const errorMessage = i18next.t('invalidGrantError');\n return {\n error: {\n title: i18next.t('invalidGrantErrorTitle'),\n message: errorMessage,\n category: ErrorCategory.Api,\n },\n };\n }\n\n if (errorType && errorType in this.errors.api(i18next.t('getAvailabilityErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('getAvailabilityErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n if ('data' in response) {\n const availability =\n response.data?.time_slots?.map(timeslot => {\n return {\n ...timeslot,\n start_time: new Date(timeslot.start_time * 1000),\n end_time: new Date(timeslot.end_time * 1000),\n };\n }) || [];\n\n // Filter out timeslots that are in the past\n const availabilityTimeslotsFiltered = availability.filter(timeslot => timeslot.start_time.getTime() > nowTime);\n const availabilityTimeslotSorted = availabilityTimeslotsFiltered.sort((a, b) => a.start_time.getTime() - b.start_time.getTime());\n this.schedulerStore.set('availability', availabilityTimeslotSorted);\n const order = response.data?.order || [];\n this.schedulerStore.set('availabilityOrderEmails', order);\n }\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Cancels a booking.\n * @param bookingId The booking ID.\n */\n public async cancelBooking(bookingId: string, reason: string): Promise<NylasSchedulerResponse<Partial<NylasEvent>>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component(i18next.t('cancelBookingErrorTitle')).no_booking_id() };\n }\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<Partial<NylasEvent>>(\n decodeURIComponent(url),\n 'DELETE',\n JSON.stringify({\n action: 'cancel',\n cancellation_reason: reason,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('cancelBookingErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('cancelBookingErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n this.schedulerStore.set('rescheduleBookingId', '');\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Reschedules a booking.\n * @param bookingId The booking ID.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async rescheduleBooking(bookingId: string, data: NylasSchedulerBookingDataWithFlatFields): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component(i18next.t('rescheduleBookingErrorTitle')).no_booking_id() };\n }\n const apiErrors = this.errors.api(i18next.t('rescheduleBookingErrorTitle'));\n const componentErrors = this.errors.component(i18next.t('rescheduleBookingErrorTitle'));\n const { bookingInfo, selectedTimeslot, selectedTimezone, selectedLanguage } = this.schedulerStore.state;\n // Validate data\n const { startTime, endTime, timezone } = data;\n const start_time = startTime || selectedTimeslot?.start_time;\n\n if (!start_time) {\n return { error: componentErrors.invalid_start_time('Please pass \"startTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n const end_time = endTime || selectedTimeslot?.end_time;\n if (!end_time) {\n return { error: componentErrors.invalid_end_time('Please pass \"endTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n\n const order = this.schedulerStore.get('availabilityOrderEmails');\n let participantToBookWith = '';\n if (order.length > 0) {\n // Get the emails in the timeslot\n const emails = selectedTimeslot?.emails || [];\n for (let i = 0; i < order.length; i++) {\n if (emails.includes(order[i])) {\n participantToBookWith = order[i];\n break;\n }\n }\n }\n\n const time_zone = timezone || selectedTimezone;\n if (!time_zone) {\n return { error: componentErrors.invalid_timezone('Please pass \"timezone\" in data or set \"selectedTimezone\" in the defaultSchedulerState.') };\n }\n\n // Group event fields\n const event_id = selectedTimeslot?.event_id || undefined;\n const master_id = selectedTimeslot?.master_id || undefined;\n const calendar_id = selectedTimeslot?.calendar_id || undefined;\n\n const addFields = {};\n Object.entries(bookingInfo?.additionalFields || {}).forEach(([key, entry]) => {\n addFields[key] = (entry as { value: string; type?: string }).value;\n });\n const primaryGuest = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? data?.additionalFields : addFields;\n\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PATCH',\n JSON.stringify({\n start_time: start_time.getTime() / 1000,\n end_time: end_time.getTime() / 1000,\n timezone: time_zone,\n additional_fields,\n guest: { ...primaryGuest },\n additional_guests: guests,\n participants: participantToBookWith ? [{ email: participantToBookWith }] : undefined,\n email_language: this.getTwoLetterLanguageCode(selectedLanguage),\n event_id,\n master_id,\n calendar_id,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in apiErrors) {\n const errorMessage = this.getErrorMessage(error);\n error = apiErrors[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n const eventInfo = this.schedulerStore.get('reschedulingEventInfo');\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response?.data);\n // Update rescheduleBookingId to the new booking ID so that subsequent\n // operations (e.g. cancel) target the rescheduled booking, not the original.\n if (response.data?.booking_id) {\n this.schedulerStore.set('rescheduleBookingId', response.data.booking_id);\n }\n } else if (eventInfo) {\n this.schedulerStore.set('eventInfo', eventInfo);\n } else {\n // We should technically never reach this point\n const event = {\n booking_id: bookingId,\n } as NylasEvent;\n this.schedulerStore.set('eventInfo', event);\n }\n\n this.schedulerStore.set('reschedulingEventInfo', undefined);\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Updates the booking.\n * @param bookingId The booking ID.\n */\n public async updateBooking(payload: { bookingId: string; status: 'confirmed' | 'cancelled'; reason?: string }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { bookingId, status, reason } = payload;\n const salt = this.schedulerStore.get('organizerConfirmationSalt');\n const errorTitle = status === 'confirmed' ? i18next.t('confirmBookingErrorTitle') : i18next.t('rejectBookingErrorTitle');\n\n if (!bookingId) {\n return { error: this.errors.component(errorTitle).no_booking_id() };\n }\n if (!salt) {\n return { error: this.errors.component(errorTitle).no_salt() };\n }\n\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PUT',\n JSON.stringify({\n status: status,\n cancellation_reason: reason,\n salt,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(errorTitle)) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(errorTitle)[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n if ('data' in response && status === 'confirmed') {\n this.schedulerStore.set('confirmedEventInfo', response?.data);\n } else if ('request_id' in response && status === 'cancelled') {\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n }\n\n this.schedulerStore.set('organizerConfirmationBookingId', '');\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Validate timeslot for group event booking\n */\n public async validateGroupEventTimeslot(timeslot: Timeslot) {\n this.schedulerStore.set('isLoading', true);\n const configId = this.schedulerStore.get('configSettings')?.configuration_id;\n if (!configId) {\n return { error: this.errors.component(i18next.t('validateTimeslotErrorTitle')).no_config_id() };\n }\n\n const headers = this.getHeaders();\n const url = `/v3/scheduling/configurations/${configId}/group-events/validate-timeslot`;\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n ...timeslot,\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('validateTimeslotErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('validateTimeslotErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n this.refetchAvailability();\n return { error };\n }\n\n this.schedulerStore.set('selectedTimeslot', timeslot);\n this.schedulerStore.set('showBookingForm', true);\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAoJA,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,uCAAmB,CAAA;IACnB,iCAAa,CAAA;IACb,uCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAwZD,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,4BAAW,CAAA;IACX,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAQD,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,qEAA+C,CAAA;IAC/C,yDAAmC,CAAA;IACnC,mEAA6C,CAAA;IAC7C,mEAA6C,CAAA;IAC7C,qDAA+B,CAAA;IAC/B,yCAAmB,CAAA;IACnB,+DAAyC,CAAA;IACzC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,mDAA6B,CAAA;AAC/B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B","sourcesContent":["export interface NylasResponse<Data = any> {\n request_id: string;\n data?: Data;\n error?: {\n message: string;\n type: string;\n };\n}\n\n// Avaliability\nexport interface OpenHours {\n days: number[];\n exDates: string[];\n timezone: string;\n start: string;\n end: string;\n}\n\nexport interface SpecificTimeAvailability {\n date: string;\n start: string;\n end: string;\n}\n\nexport interface MeetingBuffer {\n before: number;\n after: number;\n}\n\n// Scheduling\nexport interface UpdateConfiguration extends Omit<Configuration, 'id'> {}\n\nexport interface ParticipantAvailability {\n calendar_ids: string[];\n open_hours?: OpenHours[];\n}\n\nexport type NylasSchedulerBookingParticipant = { name: string; email: string; nameReadOnly?: boolean; emailReadOnly?: boolean };\n\nexport type NylasSchedulerBookingData = {\n primaryParticipant: NylasSchedulerBookingParticipant;\n startTime?: Date;\n endTime?: Date;\n timezone?: string;\n language?: string;\n guests?: NylasSchedulerBookingParticipant[];\n additionalFields?: Record<\n string,\n {\n value: string;\n type?: string;\n readOnly?: boolean;\n }\n >;\n};\n\nexport type OpenHour = {\n days: number[]; // [1, 2, 3, 4, 5]\n start: string; // \"09:00\"\n end: string; // \"17:00\"\n timezone: string; // \"America/Los_Angeles\"\n};\n\nexport type Timeslot = {\n start_time: Date;\n end_time: Date;\n emails?: string[];\n capacity?: number;\n event_id?: string;\n master_id?: string;\n calendar_id?: string;\n};\n\nexport type ThemeConfig = Partial<{\n '--nylas-primary': string;\n '--nylas-info': string;\n '--nylas-success': string;\n '--nylas-warning': string;\n '--nylas-error': string;\n '--nylas-error-pressed': string;\n '--nylas-base-0': string;\n '--nylas-base-25': string;\n '--nylas-base-50': string;\n '--nylas-base-100': string;\n '--nylas-base-200': string;\n '--nylas-base-300': string;\n '--nylas-base-400': string;\n '--nylas-base-500': string;\n '--nylas-base-600': string;\n '--nylas-base-700': string;\n '--nylas-base-800': string;\n '--nylas-base-900': string;\n '--nylas-base-950': string;\n '--nylas-color-blue-50': string;\n '--nylas-color-blue-100': string;\n '--nylas-color-blue-300': string;\n '--nylas-color-blue-500': string;\n '--nylas-color-blue-700': string;\n '--nylas-color-blue-900': string;\n '--nylas-color-red-50': string;\n '--nylas-color-red-100': string;\n '--nylas-color-red-300': string;\n '--nylas-color-red-500': string;\n '--nylas-color-red-700': string;\n '--nylas-color-red-900': string;\n '--nylas-color-green-50': string;\n '--nylas-color-green-100': string;\n '--nylas-color-green-300': string;\n '--nylas-color-green-500': string;\n '--nylas-color-green-700': string;\n '--nylas-color-green-900': string;\n '--nylas-color-yellow-50': string;\n '--nylas-color-yellow-100': string;\n '--nylas-color-yellow-300': string;\n '--nylas-color-yellow-500': string;\n '--nylas-color-yellow-700': string;\n '--nylas-color-yellow-900': string;\n '--nylas-color-purple-50': string;\n '--nylas-color-purple-100': string;\n '--nylas-color-purple-300': string;\n '--nylas-color-purple-500': string;\n '--nylas-color-purple-700': string;\n '--nylas-color-purple-900': string;\n '--nylas-color-sky-50': string;\n '--nylas-color-sky-100': string;\n '--nylas-color-sky-300': string;\n '--nylas-color-sky-500': string;\n '--nylas-color-sky-700': string;\n '--nylas-color-sky-900': string;\n '--nylas-color-black': string;\n '--nylas-color-grey-900': string;\n '--nylas-color-grey-800': string;\n '--nylas-color-grey-700': string;\n '--nylas-color-grey-600': string;\n '--nylas-color-grey-500': string;\n '--nylas-color-grey-400': string;\n '--nylas-color-grey-300': string;\n '--nylas-color-grey-200': string;\n '--nylas-color-grey-100': string;\n '--nylas-color-grey-50': string;\n '--nylas-color-white': string;\n '--nylas-font-family': string;\n '--nylas-font-size': string;\n '--nylas-border-radius': string;\n '--nylas-border-radius-2x': string;\n '--nylas-border-radius-3x': string;\n}>;\n\nexport enum NotificationType {\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Success = 'success',\n}\n\nexport type Notification = {\n id: string;\n type: NotificationType;\n title: string;\n code?: number;\n category: string;\n description?: string;\n ttl?: number | 'none';\n};\n\nexport type BookingType = 'booking' | 'organizer-confirmation' | 'custom-confirmation';\n\nexport type AvailabilityMethod = 'max-fairness' | 'max-availability' | 'collective';\n\nexport type ConferenceProvider = 'GoogleMeetConferenceProvider' | 'MicrosoftTeamsConferenceProvider' | 'ZoomConferenceProvider' | 'OnlineMeetingProviderMicrosoftTeams';\n\nexport type ReminderMethod = 'email' | 'webhook';\n\nexport interface Rules {\n availability_method: AvailabilityMethod;\n buffer: MeetingBuffer;\n default_open_hours: OpenHours[];\n round_robin_group_id: string;\n}\n\nexport interface ConferenceDetail {\n meeting_code?: string; // zoom, GTM, microsoft teams\n password?: string; // zoom, webex\n url?: string; // zoom, webex, GTM, meet, microsoft teams\n pin?: string; // webex, meet\n phone?: string[]; // GTM, meet, microsoft teams\n}\n\nexport interface Conference {\n provider?: ConferenceProvider;\n details?: ConferenceDetail;\n autocreate?: { [key: string]: any };\n}\n\nexport interface ParticipantBooking {\n calendar_id: string;\n}\n\nexport interface Participant {\n email: string;\n name?: string;\n is_organizer?: boolean;\n availability?: ParticipantAvailability;\n booking?: ParticipantBooking;\n specific_time_availability?: SpecificTimeAvailability[];\n timezone?: string;\n}\n\nexport interface EventReminder {\n type: ReminderMethod;\n minutes_before_event: number;\n recipient?: string;\n email_subject?: string;\n}\n\nexport interface Availability {\n duration_minutes: number;\n interval_minutes?: number;\n round_to?: number;\n availability_rules?: Rules;\n}\n\nexport interface NotetakerActionItemsSettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerSummarySettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerMeetingSettings {\n action_items?: boolean;\n action_items_settings?: NotetakerActionItemsSettings;\n audio_recording?: boolean;\n summary?: boolean;\n summary_settings?: NotetakerSummarySettings;\n transcription?: boolean;\n video_recording?: boolean;\n}\n\nexport interface Notetaker {\n visible?: boolean; // default is false\n enabled?: boolean; // default is false\n name?: string;\n meeting_settings?: NotetakerMeetingSettings;\n}\n\nexport interface EventBooking {\n title: string;\n description?: string;\n location?: string;\n timezone?: string;\n booking_type: BookingType;\n conferencing?: Conference;\n hide_participants?: boolean;\n disable_emails?: boolean;\n reminders?: EventReminder[];\n notetaker?: Notetaker;\n}\n\nexport interface Appearance {\n color?: string;\n submit_button_label?: string;\n thank_you_message?: string;\n company_logo_url?: string;\n}\n\nexport interface Scheduler {\n available_days_in_future?: number;\n min_cancellation_notice: number;\n min_booking_notice?: number;\n rescheduling_url?: string;\n cancellation_url?: string;\n organizer_confirmation_url?: string;\n cancellation_policy?: string;\n hide_additional_guests?: boolean;\n hide_cancellation_options?: boolean;\n hide_rescheduling_options?: boolean;\n additional_fields?: Record<string, AdditionalFields>;\n email_template?: EmailTemplate;\n confirmation_redirect_url?: string;\n}\nexport interface AdditionalFields {\n type: string;\n required: boolean;\n order: number;\n options?: string[];\n label?: string;\n default?: string;\n}\n\nexport interface EmailTemplate {\n logo: string;\n booking_confirmed: BookingConfirmed;\n show_nylas_branding: boolean;\n organizer_locale: string;\n}\n\nexport interface BookingConfirmed {\n title: string;\n body: string;\n}\n\nexport interface Configuration {\n id: string;\n version: string;\n type?: string;\n requires_session_auth?: boolean;\n participants: Participant[];\n availability: Availability;\n event_booking: EventBooking;\n scheduler: Partial<Scheduler>;\n slug: string;\n appearance: Appearance;\n name: string;\n}\n\nexport interface GroupBooking {\n booking_type: BookingType; // Only 'booking' is supported\n disable_emails?: boolean;\n reminders?: EventReminder[];\n conferencing?: Conference;\n calendar_id: string;\n default_capacity: number;\n}\n\nexport interface GroupConfiguration {\n id: string;\n name: string;\n slug: string;\n requires_session_auth?: boolean;\n type: 'group';\n group_booking: GroupBooking;\n scheduler: Scheduler;\n appearance: Appearance;\n}\n\nexport interface Creator {\n name: string;\n email: string;\n}\nexport interface AdditionalParticipant {\n name: string;\n email: string;\n grant_id?: string;\n calendars: {\n id: string;\n name: string;\n object?: 'calendar';\n is_primary?: boolean;\n is_owned_by_user?: boolean;\n read_only?: boolean;\n timezone?: string;\n }[];\n}\n\n/**\n * Parameters for fetching participant info when loading an existing config for edit.\n * Used when the config has participants (emails) but full AdditionalParticipant\n * data (calendars, etc.) needs to be fetched from an external source.\n */\nexport interface ParticipantFetchParams {\n /** Emails of participants to fetch full info for */\n emails: string[];\n /** Optional grant ID to scope the fetch (e.g. for multi-account) */\n grantId?: string;\n}\n\n/**\n * Callback to fetch full participant info by emails.\n * Called when loading an existing config for edit.\n */\nexport type ParticipantFetch = (params: ParticipantFetchParams) => Promise<AdditionalParticipant[]>;\n\n/**\n * Callback to search participants by query (for autocomplete).\n */\nexport type ParticipantSearch = (query: string) => Promise<AdditionalParticipant[]>;\n\nexport interface GroupEvent {\n id?: string;\n title: string;\n busy: boolean;\n participants: NylasSchedulerBookingParticipant[];\n resources: {\n name: string;\n email: string;\n }[];\n description: string;\n when: {\n start_time: number;\n end_time: number;\n start_timezone?: string;\n end_timezone?: string;\n };\n location: string;\n recurrence: string[];\n capacity: number;\n}\n\nexport type RecurrenceUpdateOption = 'this' | 'future' | 'all';\nexport type RecurrenceDeleteOption = 'this' | 'future' | 'all';\n\nexport type Snapshot = {\n busy: boolean;\n calendar_id: string;\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: {\n email: string;\n status: string;\n }[];\n resources: any[];\n read_only: boolean;\n recurrence: string[];\n reminders: {\n use_default: boolean;\n overrides: any[];\n };\n title: string;\n description?: string;\n location?: string;\n conferencing?: Conference;\n visibility: string;\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n grant_id: string;\n id: string;\n object: string;\n status: string;\n when: {\n start_timezone: string;\n end_timezone: string;\n object: string;\n start_time: number; // Unix timestamp\n end_time: number; // Unix timestamp\n };\n created_at: number; // Unix timestamp\n updated_at: number; // Unix timestamp\n};\n\nexport interface GroupEventAPIData {\n event: EventDetails;\n group_event_info?: GroupEventInfo;\n}\n\nexport type EventDetails = {\n busy: boolean;\n calendar_id: string;\n conferencing: {\n provider: ConferenceProvider;\n details: {\n meeting_code: string;\n url: string;\n pin: string;\n phone: string[];\n };\n };\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: Array<{\n email: string;\n status: 'yes' | 'no' | 'noreply';\n comment?: string;\n }>;\n resources: string[];\n read_only: boolean;\n reminders: {\n use_default: boolean;\n overrides: Array<{\n method?: string;\n minutes?: number;\n }>;\n };\n title: string;\n description?: string;\n location?: string;\n visibility: 'default' | 'public' | 'private';\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n master_event_id: string;\n color_id: string;\n grant_id: string;\n id: string;\n object: 'event';\n status: 'confirmed' | 'tentative' | 'cancelled';\n when: {\n start_timezone: string;\n end_timezone: string;\n object: 'timespan';\n start_time: number;\n end_time: number;\n };\n created_at: number;\n updated_at: number;\n original_start_time: number;\n};\n\nexport type GroupEventInfo = {\n event_id: string;\n calendar_id: string;\n master_id: string;\n config_id: string;\n capacity: number;\n type: 'updated_event' | 'single_event' | 'master_event';\n booked: boolean;\n finished: boolean;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n snapshot: any | null;\n snapshot_expires_at: number;\n rrule: string[] | null;\n exceptions: {\n event_id: string;\n capacity: number;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n }[];\n};\n\nexport type ImportGroupEventDetails = {\n event_id: string;\n calendar_id: string;\n capacity: number;\n participants: Participant[];\n organizer: {\n name: string;\n email: string;\n };\n};\n\nexport type ImportGroupEventResponse = {\n imported_events: string[];\n import_failed: {\n event_id: string;\n reason: string;\n }[];\n};\n\nexport enum ErrorCategory {\n Component = 'component',\n Api = 'api',\n Auth = 'auth',\n}\n\nexport interface ErrorDetails {\n title: string;\n message: string;\n category: ErrorCategory;\n}\n\nexport enum ComponentErrorType {\n endtime_not_in_future = 'endtime_not_in_future',\n no_booking_info = 'no_booking_info',\n no_timeslot_selected = 'no_timeslot_selected',\n no_timezone_selected = 'no_timezone_selected',\n no_booking_id = 'no_booking_id',\n no_salt = 'no_salt',\n invalid_start_time = 'invalid_start_time',\n invalid_end_time = 'invalid_end_time',\n invalid_timezone = 'invalid_timezone',\n no_config_id = 'no_config_id',\n}\n\nexport interface KeyPoint {\n time: number;\n text: string;\n active?: boolean;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAiLA,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,uCAAmB,CAAA;IACnB,iCAAa,CAAA;IACb,uCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAwZD,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,4BAAW,CAAA;IACX,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAQD,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,qEAA+C,CAAA;IAC/C,yDAAmC,CAAA;IACnC,mEAA6C,CAAA;IAC7C,mEAA6C,CAAA;IAC7C,qDAA+B,CAAA;IAC/B,yCAAmB,CAAA;IACnB,+DAAyC,CAAA;IACzC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,mDAA6B,CAAA;AAC/B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B","sourcesContent":["export interface NylasResponse<Data = any> {\n request_id: string;\n data?: Data;\n error?: {\n message: string;\n type: string;\n };\n}\n\n// Avaliability\nexport interface OpenHours {\n days: number[];\n exDates: string[];\n timezone: string;\n start: string;\n end: string;\n}\n\nexport interface SpecificTimeAvailability {\n date: string;\n start: string;\n end: string;\n}\n\nexport interface MeetingBuffer {\n before: number;\n after: number;\n}\n\n// Scheduling\nexport interface UpdateConfiguration extends Omit<Configuration, 'id'> {}\n\nexport interface ParticipantAvailability {\n calendar_ids: string[];\n open_hours?: OpenHours[];\n}\n\nexport type NylasSchedulerBookingParticipant = {\n /** Setting this to an empty string clears a previously seeded value; omitting it leaves that value alone. */\n name: string;\n /** Setting this to an empty string clears a previously seeded value; omitting it leaves that value alone. */\n email: string;\n /**\n * Render the name field as read-only. The prefilled value is shown but cannot be edited.\n * Ignored when `nameHidden` is true.\n */\n nameReadOnly?: boolean;\n /**\n * Render the email field as read-only. The prefilled value is shown but cannot be edited.\n * Ignored when `emailHidden` is true.\n */\n emailReadOnly?: boolean;\n /**\n * Omit the name field from the booking form entirely. The prefilled `name` is still\n * submitted with the booking. Requires a prefilled value that survives sanitization: set\n * without one, the field is rendered anyway (so the booker is never stuck on a required\n * error with no input to fix) and the misconfiguration is reported on the console.\n */\n nameHidden?: boolean;\n /**\n * Omit the email field from the booking form entirely. The prefilled `email` is still\n * submitted with the booking. Requires a prefilled value that survives sanitization: set\n * without one, the field is rendered anyway (so the booker is never stuck on a required\n * error with no input to fix) and the misconfiguration is reported on the console.\n */\n emailHidden?: boolean;\n};\n\nexport type NylasSchedulerBookingData = {\n primaryParticipant: NylasSchedulerBookingParticipant;\n startTime?: Date;\n endTime?: Date;\n timezone?: string;\n language?: string;\n guests?: NylasSchedulerBookingParticipant[];\n additionalFields?: Record<\n string,\n {\n value: string;\n type?: string;\n readOnly?: boolean;\n }\n >;\n};\n\nexport type OpenHour = {\n days: number[]; // [1, 2, 3, 4, 5]\n start: string; // \"09:00\"\n end: string; // \"17:00\"\n timezone: string; // \"America/Los_Angeles\"\n};\n\nexport type Timeslot = {\n start_time: Date;\n end_time: Date;\n emails?: string[];\n capacity?: number;\n event_id?: string;\n master_id?: string;\n calendar_id?: string;\n};\n\nexport type ThemeConfig = Partial<{\n '--nylas-primary': string;\n '--nylas-info': string;\n '--nylas-success': string;\n '--nylas-warning': string;\n '--nylas-error': string;\n '--nylas-error-pressed': string;\n '--nylas-base-0': string;\n '--nylas-base-25': string;\n '--nylas-base-50': string;\n '--nylas-base-100': string;\n '--nylas-base-200': string;\n '--nylas-base-300': string;\n '--nylas-base-400': string;\n '--nylas-base-500': string;\n '--nylas-base-600': string;\n '--nylas-base-700': string;\n '--nylas-base-800': string;\n '--nylas-base-900': string;\n '--nylas-base-950': string;\n '--nylas-color-blue-50': string;\n '--nylas-color-blue-100': string;\n '--nylas-color-blue-300': string;\n '--nylas-color-blue-500': string;\n '--nylas-color-blue-700': string;\n '--nylas-color-blue-900': string;\n '--nylas-color-red-50': string;\n '--nylas-color-red-100': string;\n '--nylas-color-red-300': string;\n '--nylas-color-red-500': string;\n '--nylas-color-red-700': string;\n '--nylas-color-red-900': string;\n '--nylas-color-green-50': string;\n '--nylas-color-green-100': string;\n '--nylas-color-green-300': string;\n '--nylas-color-green-500': string;\n '--nylas-color-green-700': string;\n '--nylas-color-green-900': string;\n '--nylas-color-yellow-50': string;\n '--nylas-color-yellow-100': string;\n '--nylas-color-yellow-300': string;\n '--nylas-color-yellow-500': string;\n '--nylas-color-yellow-700': string;\n '--nylas-color-yellow-900': string;\n '--nylas-color-purple-50': string;\n '--nylas-color-purple-100': string;\n '--nylas-color-purple-300': string;\n '--nylas-color-purple-500': string;\n '--nylas-color-purple-700': string;\n '--nylas-color-purple-900': string;\n '--nylas-color-sky-50': string;\n '--nylas-color-sky-100': string;\n '--nylas-color-sky-300': string;\n '--nylas-color-sky-500': string;\n '--nylas-color-sky-700': string;\n '--nylas-color-sky-900': string;\n '--nylas-color-black': string;\n '--nylas-color-grey-900': string;\n '--nylas-color-grey-800': string;\n '--nylas-color-grey-700': string;\n '--nylas-color-grey-600': string;\n '--nylas-color-grey-500': string;\n '--nylas-color-grey-400': string;\n '--nylas-color-grey-300': string;\n '--nylas-color-grey-200': string;\n '--nylas-color-grey-100': string;\n '--nylas-color-grey-50': string;\n '--nylas-color-white': string;\n '--nylas-font-family': string;\n '--nylas-font-size': string;\n '--nylas-border-radius': string;\n '--nylas-border-radius-2x': string;\n '--nylas-border-radius-3x': string;\n}>;\n\nexport enum NotificationType {\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Success = 'success',\n}\n\nexport type Notification = {\n id: string;\n type: NotificationType;\n title: string;\n code?: number;\n category: string;\n description?: string;\n ttl?: number | 'none';\n};\n\nexport type BookingType = 'booking' | 'organizer-confirmation' | 'custom-confirmation';\n\nexport type AvailabilityMethod = 'max-fairness' | 'max-availability' | 'collective';\n\nexport type ConferenceProvider = 'GoogleMeetConferenceProvider' | 'MicrosoftTeamsConferenceProvider' | 'ZoomConferenceProvider' | 'OnlineMeetingProviderMicrosoftTeams';\n\nexport type ReminderMethod = 'email' | 'webhook';\n\nexport interface Rules {\n availability_method: AvailabilityMethod;\n buffer: MeetingBuffer;\n default_open_hours: OpenHours[];\n round_robin_group_id: string;\n}\n\nexport interface ConferenceDetail {\n meeting_code?: string; // zoom, GTM, microsoft teams\n password?: string; // zoom, webex\n url?: string; // zoom, webex, GTM, meet, microsoft teams\n pin?: string; // webex, meet\n phone?: string[]; // GTM, meet, microsoft teams\n}\n\nexport interface Conference {\n provider?: ConferenceProvider;\n details?: ConferenceDetail;\n autocreate?: { [key: string]: any };\n}\n\nexport interface ParticipantBooking {\n calendar_id: string;\n}\n\nexport interface Participant {\n email: string;\n name?: string;\n is_organizer?: boolean;\n availability?: ParticipantAvailability;\n booking?: ParticipantBooking;\n specific_time_availability?: SpecificTimeAvailability[];\n timezone?: string;\n}\n\nexport interface EventReminder {\n type: ReminderMethod;\n minutes_before_event: number;\n recipient?: string;\n email_subject?: string;\n}\n\nexport interface Availability {\n duration_minutes: number;\n interval_minutes?: number;\n round_to?: number;\n availability_rules?: Rules;\n}\n\nexport interface NotetakerActionItemsSettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerSummarySettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerMeetingSettings {\n action_items?: boolean;\n action_items_settings?: NotetakerActionItemsSettings;\n audio_recording?: boolean;\n summary?: boolean;\n summary_settings?: NotetakerSummarySettings;\n transcription?: boolean;\n video_recording?: boolean;\n}\n\nexport interface Notetaker {\n visible?: boolean; // default is false\n enabled?: boolean; // default is false\n name?: string;\n meeting_settings?: NotetakerMeetingSettings;\n}\n\nexport interface EventBooking {\n title: string;\n description?: string;\n location?: string;\n timezone?: string;\n booking_type: BookingType;\n conferencing?: Conference;\n hide_participants?: boolean;\n disable_emails?: boolean;\n reminders?: EventReminder[];\n notetaker?: Notetaker;\n}\n\nexport interface Appearance {\n color?: string;\n submit_button_label?: string;\n thank_you_message?: string;\n company_logo_url?: string;\n}\n\nexport interface Scheduler {\n available_days_in_future?: number;\n min_cancellation_notice: number;\n min_booking_notice?: number;\n rescheduling_url?: string;\n cancellation_url?: string;\n organizer_confirmation_url?: string;\n cancellation_policy?: string;\n hide_additional_guests?: boolean;\n hide_cancellation_options?: boolean;\n hide_rescheduling_options?: boolean;\n additional_fields?: Record<string, AdditionalFields>;\n email_template?: EmailTemplate;\n confirmation_redirect_url?: string;\n}\nexport interface AdditionalFields {\n type: string;\n required: boolean;\n order: number;\n options?: string[];\n label?: string;\n default?: string;\n}\n\nexport interface EmailTemplate {\n logo: string;\n booking_confirmed: BookingConfirmed;\n show_nylas_branding: boolean;\n organizer_locale: string;\n}\n\nexport interface BookingConfirmed {\n title: string;\n body: string;\n}\n\nexport interface Configuration {\n id: string;\n version: string;\n type?: string;\n requires_session_auth?: boolean;\n participants: Participant[];\n availability: Availability;\n event_booking: EventBooking;\n scheduler: Partial<Scheduler>;\n slug: string;\n appearance: Appearance;\n name: string;\n}\n\nexport interface GroupBooking {\n booking_type: BookingType; // Only 'booking' is supported\n disable_emails?: boolean;\n reminders?: EventReminder[];\n conferencing?: Conference;\n calendar_id: string;\n default_capacity: number;\n}\n\nexport interface GroupConfiguration {\n id: string;\n name: string;\n slug: string;\n requires_session_auth?: boolean;\n type: 'group';\n group_booking: GroupBooking;\n scheduler: Scheduler;\n appearance: Appearance;\n}\n\nexport interface Creator {\n name: string;\n email: string;\n}\nexport interface AdditionalParticipant {\n name: string;\n email: string;\n grant_id?: string;\n calendars: {\n id: string;\n name: string;\n object?: 'calendar';\n is_primary?: boolean;\n is_owned_by_user?: boolean;\n read_only?: boolean;\n timezone?: string;\n }[];\n}\n\n/**\n * Parameters for fetching participant info when loading an existing config for edit.\n * Used when the config has participants (emails) but full AdditionalParticipant\n * data (calendars, etc.) needs to be fetched from an external source.\n */\nexport interface ParticipantFetchParams {\n /** Emails of participants to fetch full info for */\n emails: string[];\n /** Optional grant ID to scope the fetch (e.g. for multi-account) */\n grantId?: string;\n}\n\n/**\n * Callback to fetch full participant info by emails.\n * Called when loading an existing config for edit.\n */\nexport type ParticipantFetch = (params: ParticipantFetchParams) => Promise<AdditionalParticipant[]>;\n\n/**\n * Callback to search participants by query (for autocomplete).\n */\nexport type ParticipantSearch = (query: string) => Promise<AdditionalParticipant[]>;\n\nexport interface GroupEvent {\n id?: string;\n title: string;\n busy: boolean;\n participants: NylasSchedulerBookingParticipant[];\n resources: {\n name: string;\n email: string;\n }[];\n description: string;\n when: {\n start_time: number;\n end_time: number;\n start_timezone?: string;\n end_timezone?: string;\n };\n location: string;\n recurrence: string[];\n capacity: number;\n}\n\nexport type RecurrenceUpdateOption = 'this' | 'future' | 'all';\nexport type RecurrenceDeleteOption = 'this' | 'future' | 'all';\n\nexport type Snapshot = {\n busy: boolean;\n calendar_id: string;\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: {\n email: string;\n status: string;\n }[];\n resources: any[];\n read_only: boolean;\n recurrence: string[];\n reminders: {\n use_default: boolean;\n overrides: any[];\n };\n title: string;\n description?: string;\n location?: string;\n conferencing?: Conference;\n visibility: string;\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n grant_id: string;\n id: string;\n object: string;\n status: string;\n when: {\n start_timezone: string;\n end_timezone: string;\n object: string;\n start_time: number; // Unix timestamp\n end_time: number; // Unix timestamp\n };\n created_at: number; // Unix timestamp\n updated_at: number; // Unix timestamp\n};\n\nexport interface GroupEventAPIData {\n event: EventDetails;\n group_event_info?: GroupEventInfo;\n}\n\nexport type EventDetails = {\n busy: boolean;\n calendar_id: string;\n conferencing: {\n provider: ConferenceProvider;\n details: {\n meeting_code: string;\n url: string;\n pin: string;\n phone: string[];\n };\n };\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: Array<{\n email: string;\n status: 'yes' | 'no' | 'noreply';\n comment?: string;\n }>;\n resources: string[];\n read_only: boolean;\n reminders: {\n use_default: boolean;\n overrides: Array<{\n method?: string;\n minutes?: number;\n }>;\n };\n title: string;\n description?: string;\n location?: string;\n visibility: 'default' | 'public' | 'private';\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n master_event_id: string;\n color_id: string;\n grant_id: string;\n id: string;\n object: 'event';\n status: 'confirmed' | 'tentative' | 'cancelled';\n when: {\n start_timezone: string;\n end_timezone: string;\n object: 'timespan';\n start_time: number;\n end_time: number;\n };\n created_at: number;\n updated_at: number;\n original_start_time: number;\n};\n\nexport type GroupEventInfo = {\n event_id: string;\n calendar_id: string;\n master_id: string;\n config_id: string;\n capacity: number;\n type: 'updated_event' | 'single_event' | 'master_event';\n booked: boolean;\n finished: boolean;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n snapshot: any | null;\n snapshot_expires_at: number;\n rrule: string[] | null;\n exceptions: {\n event_id: string;\n capacity: number;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n }[];\n};\n\nexport type ImportGroupEventDetails = {\n event_id: string;\n calendar_id: string;\n capacity: number;\n participants: Participant[];\n organizer: {\n name: string;\n email: string;\n };\n};\n\nexport type ImportGroupEventResponse = {\n imported_events: string[];\n import_failed: {\n event_id: string;\n reason: string;\n }[];\n};\n\nexport enum ErrorCategory {\n Component = 'component',\n Api = 'api',\n Auth = 'auth',\n}\n\nexport interface ErrorDetails {\n title: string;\n message: string;\n category: ErrorCategory;\n}\n\nexport enum ComponentErrorType {\n endtime_not_in_future = 'endtime_not_in_future',\n no_booking_info = 'no_booking_info',\n no_timeslot_selected = 'no_timeslot_selected',\n no_timezone_selected = 'no_timezone_selected',\n no_booking_id = 'no_booking_id',\n no_salt = 'no_salt',\n invalid_start_time = 'invalid_start_time',\n invalid_end_time = 'invalid_end_time',\n invalid_timezone = 'invalid_timezone',\n no_config_id = 'no_config_id',\n}\n\nexport interface KeyPoint {\n time: number;\n text: string;\n active?: boolean;\n}\n"]}
@@ -1,2 +1,2 @@
1
- export const version = '2.5.17';
1
+ export const version = '2.6.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["export const version = '2.5.17';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC","sourcesContent":["export const version = '2.6.0';\n"]}
@@ -1,4 +1,4 @@
1
- import { A as AddCircleIcon$1, d as defineCustomElement$1 } from './p-Dl0Yur5r.js';
1
+ import { A as AddCircleIcon$1, d as defineCustomElement$1 } from './p-CGkcVt8h.js';
2
2
 
3
3
  const AddCircleIcon = AddCircleIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -10,7 +10,7 @@ const ArchiveIcon$1 = proxyCustomElement(class ArchiveIcon extends H {
10
10
  this.height = '15';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: '9b72eb88095606ed4c1a6c480500b9b4bf772052', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "auto", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'e6158cd1a2d187e4f550058da69a45516d51aad8', d: "M3 6H5H21", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: 'ef3cb6475c7b0644167a899a2b191fff7abfbdbd', d: "M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: '3cbdf1d2e45f266108c785caa66e5c17b517835b', d: "M10 11V17", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: '39e13a2f03d63febf6e7c3e2bfc15d2907d73398', d: "M14 11V17", stroke: "auto", "stroke-width": "1.5" })));
13
+ return (h("svg", { key: 'f807d7557dc10ddec8d64d0165f0f2d33feddee9', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "auto", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '953d25ccc76770a63cfce6e833892b86f025124a', d: "M3 6H5H21", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: 'fc113103c992e3f6cc032645946a422948741d5f', d: "M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: 'b0ffc912761cb17856a481c17c1b382a642ea135', d: "M10 11V17", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: 'baa9c79f6f3a3570477b916b2ebe5c300c805a57', d: "M14 11V17", stroke: "auto", "stroke-width": "1.5" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [258, "archive-icon", {
@@ -10,7 +10,7 @@ const ArrowIcon$1 = proxyCustomElement(class ArrowIcon extends H {
10
10
  this.height = '15';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: '376301779830aaa2b422ea2e98144d16da633f35', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '1be1d349819cc2f70c0097262be84ce6b4b1639e', d: "M5 12H19M12 5L19 12L12 19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
13
+ return (h("svg", { key: 'd5506a47452d3bb765db31c414ad33bb3140897d', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'fd0e33fc2a61a92dbaee8807443d2e0b437241fe', d: "M5 12H19M12 5L19 12L12 19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [258, "arrow-icon", {
@@ -10,7 +10,7 @@ const BoldIcon$1 = proxyCustomElement(class BoldIcon extends H {
10
10
  this.height = '15';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: '9f35550f56b32150cba1390076404e973a05c970', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '1f6cbeb7126d0b226f9d6455a14b82262c09a8a5', d: "M6 4V20M9.5 4H15.5C17.7091 4 19.5 5.79086 19.5 8C19.5 10.2091 17.7091 12 15.5 12H9.5H16.5C18.7091 12 20.5 13.7909 20.5 16C20.5 18.2091 18.7091 20 16.5 20H9.5M9.5 4V20M9.5 4H4M9.5 20H4", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
13
+ return (h("svg", { key: 'c49a79fa5c5d8b828d4d21860d78914546e744c4', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'bc3e5e7030252e1cb6ed28bf50e1c578a56b1b12', d: "M6 4V20M9.5 4H15.5C17.7091 4 19.5 5.79086 19.5 8C19.5 10.2091 17.7091 12 15.5 12H9.5H16.5C18.7091 12 20.5 13.7909 20.5 16C20.5 18.2091 18.7091 20 16.5 20H9.5M9.5 4V20M9.5 4H4M9.5 20H4", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [258, "bold-icon", {
@@ -1,4 +1,4 @@
1
- import { B as ButtonComponent$1, d as defineCustomElement$1 } from './p-BVH0Klhu.js';
1
+ import { B as ButtonComponent$1, d as defineCustomElement$1 } from './p-D0NY8UNC.js';
2
2
 
3
3
  const ButtonComponent = ButtonComponent$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarAgendaFillIcon$1, d as defineCustomElement$1 } from './p-hipsVOV5.js';
1
+ import { C as CalendarAgendaFillIcon$1, d as defineCustomElement$1 } from './p-Baw3jP2X.js';
2
2
 
3
3
  const CalendarAgendaFillIcon = CalendarAgendaFillIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarAgendaIcon$1, d as defineCustomElement$1 } from './p-CBBEkysd.js';
1
+ import { C as CalendarAgendaIcon$1, d as defineCustomElement$1 } from './p-DjtrM_3t.js';
2
2
 
3
3
  const CalendarAgendaIcon = CalendarAgendaIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarCancelIcon$1, d as defineCustomElement$1 } from './p-DcjGlnBR.js';
1
+ import { C as CalendarCancelIcon$1, d as defineCustomElement$1 } from './p-BBWnrSjc.js';
2
2
 
3
3
  const CalendarCancelIcon = CalendarCancelIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarCheckIcon$1, d as defineCustomElement$1 } from './p-C4BZ4XFc.js';
1
+ import { C as CalendarCheckIcon$1, d as defineCustomElement$1 } from './p-C35dU4J2.js';
2
2
 
3
3
  const CalendarCheckIcon = CalendarCheckIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarIcon$1, d as defineCustomElement$1 } from './p-BAKh5tMf.js';
1
+ import { C as CalendarIcon$1, d as defineCustomElement$1 } from './p-BcHelLHv.js';
2
2
 
3
3
  const CalendarIcon = CalendarIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarInfoIcon$1, d as defineCustomElement$1 } from './p-BD4aqMeC.js';
1
+ import { C as CalendarInfoIcon$1, d as defineCustomElement$1 } from './p-D1XyN1j_.js';
2
2
 
3
3
  const CalendarInfoIcon = CalendarInfoIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CalendarPatternsIcon$1, d as defineCustomElement$1 } from './p-CDDw-hf8.js';
1
+ import { C as CalendarPatternsIcon$1, d as defineCustomElement$1 } from './p-Cr0OL9Ww.js';
2
2
 
3
3
  const CalendarPatternsIcon = CalendarPatternsIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CheckboxComponent$1, d as defineCustomElement$1 } from './p-BkqJQBCp.js';
1
+ import { C as CheckboxComponent$1, d as defineCustomElement$1 } from './p-DjZdyHmc.js';
2
2
 
3
3
  const CheckboxComponent = CheckboxComponent$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CheckboxGroup$1, d as defineCustomElement$1 } from './p-CahZPm95.js';
1
+ import { C as CheckboxGroup$1, d as defineCustomElement$1 } from './p-CWNABkMS.js';
2
2
 
3
3
  const CheckboxGroup = CheckboxGroup$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CheckmarkCircleIcon$1, d as defineCustomElement$1 } from './p-ChXM0wCn.js';
1
+ import { C as CheckmarkCircleIcon$1, d as defineCustomElement$1 } from './p-BgzT-67i.js';
2
2
 
3
3
  const CheckmarkCircleIcon = CheckmarkCircleIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CheckmarkIcon$1, d as defineCustomElement$1 } from './p-kbilJltW.js';
1
+ import { C as CheckmarkIcon$1, d as defineCustomElement$1 } from './p-DTtKd-E-.js';
2
2
 
3
3
  const CheckmarkIcon = CheckmarkIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as ChevronIcon$1, d as defineCustomElement$1 } from './p-ao6VxuAL.js';
1
+ import { C as ChevronIcon$1, d as defineCustomElement$1 } from './p-DY3hmp0T.js';
2
2
 
3
3
  const ChevronIcon = ChevronIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as ClockIcon$1, d as defineCustomElement$1 } from './p-BoUo2hc7.js';
1
+ import { C as ClockIcon$1, d as defineCustomElement$1 } from './p-BJbmwaXD.js';
2
2
 
3
3
  const ClockIcon = ClockIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CloseIcon$1, d as defineCustomElement$1 } from './p-CzVZs3uZ.js';
1
+ import { C as CloseIcon$1, d as defineCustomElement$1 } from './p-DK6-bZYK.js';
2
2
 
3
3
  const CloseIcon = CloseIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as CopyIcon$1, d as defineCustomElement$1 } from './p-CFeDwD40.js';
1
+ import { C as CopyIcon$1, d as defineCustomElement$1 } from './p-DZJQ_Wck.js';
2
2
 
3
3
  const CopyIcon = CopyIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { D as DeleteIcon$1, d as defineCustomElement$1 } from './p-C9Mlv9rC.js';
1
+ import { D as DeleteIcon$1, d as defineCustomElement$1 } from './p-DoA5ft2W.js';
2
2
 
3
3
  const DeleteIcon = DeleteIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -10,7 +10,7 @@ const DocumentRefreshIcon$1 = proxyCustomElement(class DocumentRefreshIcon exten
10
10
  this.height = '18';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: '2c0c600f9df4bd50de27f759f3628d5534bca820', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 18 18", width: this.width, height: this.height }, h("rect", { key: '2ab9b4275e679255a07dd618cfb8d43b8b30e42c', id: "Canvas", fill: "#ff13dc", opacity: "0" }), h("path", { key: '08fa82af41b2505e1ef36ca9043774e22c04ad8a', d: "M9.19763,12.26283A4.44131,4.44131,0,0,1,16.948,10.71741l.62524-.62524a.24433.24433,0,0,1,.1748-.07373.25035.25035,0,0,1,.252.24875v2.50143a.25.25,0,0,1-.25.25l-2.4995-.00016A.25088.25088,0,0,1,15,12.76721v-.00054a.24436.24436,0,0,1,.07373-.175l.86988-.86987a3.02827,3.02827,0,0,0-5.29847.71808.48835.48835,0,0,1-.46081.30981H9.55908a.37949.37949,0,0,1-.36145-.48686Z" }), h("path", { key: '034242fff7a3d9c0ff21ddfc21b81e9734acd492', d: "M17.80237,14.77441A4.4413,4.4413,0,0,1,10.052,16.31982l-.62524.62524a.24429.24429,0,0,1-.1748.07373A.25036.25036,0,0,1,9,16.77V14.26863a.25.25,0,0,1,.25-.25l2.4995.00016A.25087.25087,0,0,1,12,14.27v.00052a.24434.24434,0,0,1-.07373.175l-.86988.86988a3.02828,3.02828,0,0,0,5.29847-.71808.48836.48836,0,0,1,.46081-.30982h.62525a.3795.3795,0,0,1,.36145.48687Z" }), h("path", { key: '2413903c29a3801fa170351a06e865e9a46c45d0', d: "M7,13.5A6.5,6.5,0,0,1,13.5,7c.16883,0,.33447.01264.5.02527V5H9.5A.5.5,0,0,1,9,4.5V0H2.5A.5.5,0,0,0,2,.5v15a.5.5,0,0,0,.5.5H7.49981A6.4779,6.4779,0,0,1,7,13.5Z" }), h("path", { key: '5228c2af8d95a83fb7e951803777717844e09043', d: "M10,0h.043a.5.5,0,0,1,.353.146L13.854,3.6A.5.5,0,0,1,14,3.957V4H10Z" })));
13
+ return (h("svg", { key: '0ccd98a5e18eb180ca90ffe1a574f6f1af774e26', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 18 18", width: this.width, height: this.height }, h("rect", { key: '92029ed5746515b65484bb7f91177ec41d7c166e', id: "Canvas", fill: "#ff13dc", opacity: "0" }), h("path", { key: 'ad22663d583e5dadcfd64cdbbcbfa22761445732', d: "M9.19763,12.26283A4.44131,4.44131,0,0,1,16.948,10.71741l.62524-.62524a.24433.24433,0,0,1,.1748-.07373.25035.25035,0,0,1,.252.24875v2.50143a.25.25,0,0,1-.25.25l-2.4995-.00016A.25088.25088,0,0,1,15,12.76721v-.00054a.24436.24436,0,0,1,.07373-.175l.86988-.86987a3.02827,3.02827,0,0,0-5.29847.71808.48835.48835,0,0,1-.46081.30981H9.55908a.37949.37949,0,0,1-.36145-.48686Z" }), h("path", { key: 'ae8681f3635f17e04b6e008a2bf0a112270fbd6b', d: "M17.80237,14.77441A4.4413,4.4413,0,0,1,10.052,16.31982l-.62524.62524a.24429.24429,0,0,1-.1748.07373A.25036.25036,0,0,1,9,16.77V14.26863a.25.25,0,0,1,.25-.25l2.4995.00016A.25087.25087,0,0,1,12,14.27v.00052a.24434.24434,0,0,1-.07373.175l-.86988.86988a3.02828,3.02828,0,0,0,5.29847-.71808.48836.48836,0,0,1,.46081-.30982h.62525a.3795.3795,0,0,1,.36145.48687Z" }), h("path", { key: '1b11c03c1582d76782ad1841bb44ef993c2ae818', d: "M7,13.5A6.5,6.5,0,0,1,13.5,7c.16883,0,.33447.01264.5.02527V5H9.5A.5.5,0,0,1,9,4.5V0H2.5A.5.5,0,0,0,2,.5v15a.5.5,0,0,0,.5.5H7.49981A6.4779,6.4779,0,0,1,7,13.5Z" }), h("path", { key: '058cb85bb330c33dd716d9bcf09e1da7d9afa704', d: "M10,0h.043a.5.5,0,0,1,.353.146L13.854,3.6A.5.5,0,0,1,14,3.957V4H10Z" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [258, "document-refresh-icon", {
@@ -1,4 +1,4 @@
1
- import { D as DragableIcon$1, d as defineCustomElement$1 } from './p-q7g_LEwC.js';
1
+ import { D as DragableIcon$1, d as defineCustomElement$1 } from './p-36H4hxVv.js';
2
2
 
3
3
  const DragableIcon = DragableIcon$1;
4
4
  const defineCustomElement = defineCustomElement$1;