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

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 (825) hide show
  1. package/dist/cdn/add-circle/add-circle.es.js +1 -1
  2. package/dist/cdn/add-circle-icon/add-circle-icon.es.js +1 -1
  3. package/dist/cdn/archive-icon/archive-icon.es.js +127 -127
  4. package/dist/cdn/arrow-icon/arrow-icon.es.js +248 -248
  5. package/dist/cdn/bold-icon/bold-icon.es.js +1 -1
  6. package/dist/cdn/button-component/button-component.es.js +2 -2
  7. package/dist/cdn/calendar/calendar.es.js +77 -77
  8. package/dist/cdn/calendar-agenda/calendar-agenda.es.js +1 -1
  9. package/dist/cdn/calendar-agenda-fill/calendar-agenda-fill.es.js +1 -1
  10. package/dist/cdn/calendar-agenda-fill-icon/calendar-agenda-fill-icon.es.js +1 -1
  11. package/dist/cdn/calendar-agenda-icon/calendar-agenda-icon.es.js +1 -1
  12. package/dist/cdn/calendar-cancel/calendar-cancel.es.js +1 -1
  13. package/dist/cdn/calendar-cancel-icon/calendar-cancel-icon.es.js +1 -1
  14. package/dist/cdn/calendar-check/calendar-check.es.js +139 -139
  15. package/dist/cdn/calendar-check-icon/calendar-check-icon.es.js +14 -14
  16. package/dist/cdn/calendar-icon/calendar-icon.es.js +24 -24
  17. package/dist/cdn/calendar-info/calendar-info.es.js +1 -1
  18. package/dist/cdn/calendar-info-icon/calendar-info-icon.es.js +1 -1
  19. package/dist/cdn/calendar-patterns/calendar-patterns.es.js +1 -1
  20. package/dist/cdn/calendar-patterns-icon/calendar-patterns-icon.es.js +1 -1
  21. package/dist/cdn/checkbox-component/checkbox-component.es.js +1 -1
  22. package/dist/cdn/checkmark/checkmark.es.js +86 -86
  23. package/dist/cdn/checkmark-circle/checkmark-circle.es.js +99 -99
  24. package/dist/cdn/checkmark-circle-icon/checkmark-circle-icon.es.js +14 -14
  25. package/dist/cdn/checkmark-icon/checkmark-icon.es.js +1 -1
  26. package/dist/cdn/chevron/chevron.es.js +16 -16
  27. package/dist/cdn/chevron-icon/chevron-icon.es.js +14 -14
  28. package/dist/cdn/clock/clock.es.js +16 -16
  29. package/dist/cdn/clock-icon/clock-icon.es.js +14 -14
  30. package/dist/cdn/close/close.es.js +1 -1
  31. package/dist/cdn/close-icon/close-icon.es.js +54 -54
  32. package/dist/cdn/constants/constants.es.js +3 -3
  33. package/dist/cdn/copy/copy.es.js +239 -239
  34. package/dist/cdn/copy-icon/copy-icon.es.js +271 -271
  35. package/dist/cdn/delete/delete.es.js +1 -1
  36. package/dist/cdn/delete-icon/delete-icon.es.js +1 -1
  37. package/dist/cdn/document-refresh-icon/document-refresh-icon.es.js +1 -1
  38. package/dist/cdn/dragable/dragable.es.js +54 -54
  39. package/dist/cdn/dragable-icon/dragable-icon.es.js +1 -1
  40. package/dist/cdn/edit/edit.es.js +1 -1
  41. package/dist/cdn/edit-icon/edit-icon.es.js +1 -1
  42. package/dist/cdn/envelope/envelope.es.js +25 -25
  43. package/dist/cdn/envelope-fill/envelope-fill.es.js +16 -16
  44. package/dist/cdn/envelope-fill-icon/envelope-fill-icon.es.js +97 -97
  45. package/dist/cdn/envelope-icon/envelope-icon.es.js +24 -24
  46. package/dist/cdn/eye/eye.es.js +1 -1
  47. package/dist/cdn/eye-icon/eye-icon.es.js +1 -1
  48. package/dist/cdn/feedback-icon/feedback-icon.es.js +86 -86
  49. package/dist/cdn/flow/flow.es.js +1 -1
  50. package/dist/cdn/flow-icon/flow-icon.es.js +1 -1
  51. package/dist/cdn/folder-icon/folder-icon.es.js +14 -14
  52. package/dist/cdn/forward-icon/forward-icon.es.js +240 -240
  53. package/dist/cdn/globe/globe.es.js +1 -1
  54. package/dist/cdn/globe-icon/globe-icon.es.js +1 -1
  55. package/dist/cdn/google-logo/google-logo.es.js +1 -1
  56. package/dist/cdn/google-logo-icon/google-logo-icon.es.js +1 -1
  57. package/dist/cdn/google-meet/google-meet.es.js +15 -15
  58. package/dist/cdn/google-meet-icon/google-meet-icon.es.js +1 -1
  59. package/dist/cdn/inbox-icon/inbox-icon.es.js +1 -1
  60. package/dist/cdn/info/info.es.js +239 -239
  61. package/dist/cdn/info-icon/info-icon.es.js +240 -240
  62. package/dist/cdn/input-color-picker/input-color-picker.es.js +3 -3
  63. package/dist/cdn/input-component/input-component.es.js +1 -1
  64. package/dist/cdn/input-dropdown/input-dropdown.es.js +1 -1
  65. package/dist/cdn/input-image-url/input-image-url.es.js +366 -366
  66. package/dist/cdn/italic-icon/italic-icon.es.js +86 -86
  67. package/dist/cdn/loading/loading.es.js +270 -270
  68. package/dist/cdn/loading-icon/loading-icon.es.js +271 -271
  69. package/dist/cdn/location/location.es.js +100 -100
  70. package/dist/cdn/location-icon/location-icon.es.js +19 -19
  71. package/dist/cdn/location-off/location-off.es.js +86 -86
  72. package/dist/cdn/location-off-icon/location-off-icon.es.js +1 -1
  73. package/dist/cdn/microsof-teams/microsof-teams.es.js +96 -96
  74. package/dist/cdn/microsoft-logo/microsoft-logo.es.js +1 -1
  75. package/dist/cdn/microsoft-logo-icon/microsoft-logo-icon.es.js +1 -1
  76. package/dist/cdn/microsoft-teams-icon/microsoft-teams-icon.es.js +97 -97
  77. package/dist/cdn/multi-select-dropdown/multi-select-dropdown.es.js +3 -3
  78. package/dist/cdn/nylas-additional-participants/nylas-additional-participants.es.js +55 -57
  79. package/dist/cdn/nylas-availability-picker/nylas-availability-picker.es.js +15 -15
  80. package/dist/cdn/nylas-booked-event-card/nylas-booked-event-card.es.js +10 -10
  81. package/dist/cdn/nylas-booking-calendar-picker/nylas-booking-calendar-picker.es.js +5 -5
  82. package/dist/cdn/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.es.js +7 -7
  83. package/dist/cdn/nylas-booking-confirmation-type/nylas-booking-confirmation-type.es.js +733 -734
  84. package/dist/cdn/nylas-booking-form/nylas-booking-form.es.js +154 -151
  85. package/dist/cdn/nylas-booking-form-config/nylas-booking-form-config.es.js +9 -9
  86. package/dist/cdn/nylas-buffer-time/nylas-buffer-time.es.js +5 -5
  87. package/dist/cdn/nylas-calendar-picker/nylas-calendar-picker.es.js +7 -7
  88. package/dist/cdn/nylas-cancel-booking-form/nylas-cancel-booking-form.es.js +10 -10
  89. package/dist/cdn/nylas-cancellation-policy/nylas-cancellation-policy.es.js +3 -3
  90. package/dist/cdn/nylas-cancelled-event-card/nylas-cancelled-event-card.es.js +7 -7
  91. package/dist/cdn/nylas-confirmation-email/nylas-confirmation-email.es.js +99 -95
  92. package/dist/cdn/nylas-confirmed-event-card/nylas-confirmed-event-card.es.js +723 -723
  93. package/dist/cdn/nylas-connected-calendars/nylas-connected-calendars.es.js +179 -179
  94. package/dist/cdn/nylas-custom-booking-flow/nylas-custom-booking-flow.es.js +2 -2
  95. package/dist/cdn/nylas-custom-event-slug/nylas-custom-event-slug.es.js +7 -7
  96. package/dist/cdn/nylas-customize-booking-settings/nylas-customize-booking-settings.es.js +147 -147
  97. package/dist/cdn/nylas-date-picker/nylas-date-picker.es.js +7 -7
  98. package/dist/cdn/nylas-editor-tabs/nylas-editor-tabs.es.js +6451 -6036
  99. package/dist/cdn/nylas-event-description/nylas-event-description.es.js +3 -3
  100. package/dist/cdn/nylas-event-duration/nylas-event-duration.es.js +232 -232
  101. package/dist/cdn/nylas-event-info/nylas-event-info.es.js +2 -2
  102. package/dist/cdn/nylas-event-limits/nylas-event-limits.es.js +2 -2
  103. package/dist/cdn/nylas-event-location/nylas-event-location.es.js +2558 -2533
  104. package/dist/cdn/nylas-event-title/nylas-event-title.es.js +10 -5
  105. package/dist/cdn/nylas-feedback-form/nylas-feedback-form.es.js +8 -8
  106. package/dist/cdn/nylas-form-card/nylas-form-card.es.js +1 -1
  107. package/dist/cdn/nylas-if-state/nylas-if-state.es.js +1 -1
  108. package/dist/cdn/nylas-limit-future-bookings/nylas-limit-future-bookings.es.js +8 -8
  109. package/dist/cdn/nylas-list-configurations/nylas-list-configurations.es.js +21 -17
  110. package/dist/cdn/nylas-locale-switch/nylas-locale-switch.es.js +1168 -1168
  111. package/dist/cdn/nylas-login/nylas-login.es.js +1 -1
  112. package/dist/cdn/nylas-logo/nylas-logo.es.js +125 -125
  113. package/dist/cdn/nylas-min-booking-notice/nylas-min-booking-notice.es.js +10 -10
  114. package/dist/cdn/nylas-min-cancellation-notice/nylas-min-cancellation-notice.es.js +10 -10
  115. package/dist/cdn/nylas-notification/nylas-notification.es.js +3 -3
  116. package/dist/cdn/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.es.js +6 -6
  117. package/dist/cdn/nylas-page-name/nylas-page-name.es.js +7 -7
  118. package/dist/cdn/nylas-page-styling/nylas-page-styling.es.js +4 -4
  119. package/dist/cdn/nylas-participant-booking-calendars/nylas-participant-booking-calendars.es.js +8 -8
  120. package/dist/cdn/nylas-participants-custom-availability/nylas-participants-custom-availability.es.js +176 -176
  121. package/dist/cdn/nylas-provider/nylas-provider.es.js +652 -644
  122. package/dist/cdn/nylas-reminder-emails/nylas-reminder-emails.es.js +17 -17
  123. package/dist/cdn/nylas-reminder-time/nylas-reminder-time.es.js +5 -5
  124. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +1430 -1001
  125. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +1081 -1056
  126. package/dist/cdn/nylas-scheduling-method/nylas-scheduling-method.es.js +10 -12
  127. package/dist/cdn/nylas-selected-event-card/nylas-selected-event-card.es.js +4 -4
  128. package/dist/cdn/nylas-time-window-picker/nylas-time-window-picker.es.js +1 -1
  129. package/dist/cdn/nylas-timeslot-interval/nylas-timeslot-interval.es.js +147 -149
  130. package/dist/cdn/nylas-timeslot-picker/nylas-timeslot-picker.es.js +10 -9
  131. package/dist/cdn/paintbrush/paintbrush.es.js +239 -239
  132. package/dist/cdn/paintbrush-fill/paintbrush-fill.es.js +1 -1
  133. package/dist/cdn/paintbrush-fill-icon/paintbrush-fill-icon.es.js +1 -1
  134. package/dist/cdn/paintbrush-icon/paintbrush-icon.es.js +240 -240
  135. package/dist/cdn/people/people.es.js +1 -1
  136. package/dist/cdn/people-icon/people-icon.es.js +1 -1
  137. package/dist/cdn/person/person.es.js +1 -1
  138. package/dist/cdn/person-clipboard/person-clipboard.es.js +1 -1
  139. package/dist/cdn/person-clipboard-icon/person-clipboard-icon.es.js +1 -1
  140. package/dist/cdn/person-icon/person-icon.es.js +1 -1
  141. package/dist/cdn/play-icon/play-icon.es.js +248 -248
  142. package/dist/cdn/plus/plus.es.js +16 -16
  143. package/dist/cdn/plus-icon/plus-icon.es.js +14 -14
  144. package/dist/cdn/radio-button-group/radio-button-group.es.js +1 -1
  145. package/dist/cdn/refresh-icon/refresh-icon.es.js +14 -14
  146. package/dist/cdn/reply-all-icon/reply-all-icon.es.js +14 -14
  147. package/dist/cdn/reply-icon/reply-icon.es.js +14 -14
  148. package/dist/cdn/scheduler-store/scheduler-store.es.js +654 -646
  149. package/dist/cdn/search/search.es.js +1 -1
  150. package/dist/cdn/search-icon/search-icon.es.js +86 -86
  151. package/dist/cdn/select-dropdown/select-dropdown.es.js +3 -3
  152. package/dist/cdn/sent-icon/sent-icon.es.js +1 -1
  153. package/dist/cdn/spam-icon/spam-icon.es.js +86 -86
  154. package/dist/cdn/star-icon/star-icon.es.js +1 -1
  155. package/dist/cdn/stop-icon/stop-icon.es.js +1 -1
  156. package/dist/cdn/textarea-component/textarea-component.es.js +3 -3
  157. package/dist/cdn/time-period-selector/time-period-selector.es.js +230 -230
  158. package/dist/cdn/toggle-switch/toggle-switch.es.js +1 -1
  159. package/dist/cdn/toolitp-component/toolitp-component.es.js +23 -23
  160. package/dist/cdn/tooltip-component/tooltip-component.es.js +26 -26
  161. package/dist/cdn/translate/translate.es.js +246 -246
  162. package/dist/cdn/translate-icon/translate-icon.es.js +247 -247
  163. package/dist/cdn/trash/trash.es.js +1 -1
  164. package/dist/cdn/trash-fill-icon/trash-fill-icon.es.js +14 -14
  165. package/dist/cdn/trash-icon/trash-icon.es.js +1 -1
  166. package/dist/cdn/underline-icon/underline-icon.es.js +1 -1
  167. package/dist/cdn/warning/warning.es.js +247 -247
  168. package/dist/cdn/warning-icon/warning-icon.es.js +248 -248
  169. package/dist/cdn/zoom/zoom.es.js +1 -1
  170. package/dist/cdn/zoom-icon/zoom-icon.es.js +1 -1
  171. package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
  172. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  173. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  174. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  175. package/dist/cjs/button-component_2.cjs.entry.js +2 -2
  176. package/dist/cjs/{calendar-agenda-fill-icon_51.cjs.entry.js → calendar-agenda-fill-icon_54.cjs.entry.js} +736 -326
  177. package/dist/cjs/calendar-agenda-fill-icon_54.cjs.entry.js.map +1 -0
  178. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  179. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
  180. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  181. package/dist/cjs/checkbox-component_2.cjs.entry.js +2 -2
  182. package/dist/cjs/chevron-icon_3.cjs.entry.js +3 -3
  183. package/dist/cjs/clock-icon_4.cjs.entry.js +4 -4
  184. package/dist/cjs/copy-icon.cjs.entry.js +1 -1
  185. package/dist/cjs/delete-icon.cjs.entry.js +1 -1
  186. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  187. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  188. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  189. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  190. package/dist/cjs/google-logo-icon_4.cjs.entry.js +34 -23
  191. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
  192. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  193. package/dist/cjs/index-7af03e3f.js +2 -10
  194. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  195. package/dist/cjs/input-color-picker.cjs.entry.js +2 -2
  196. package/dist/cjs/input-component.cjs.entry.js +1 -1
  197. package/dist/cjs/input-dropdown.cjs.entry.js +1 -1
  198. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  199. package/dist/cjs/loader.cjs.js +1 -1
  200. package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
  201. package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js +35 -34
  202. package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js.map +1 -1
  203. package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
  204. package/dist/cjs/nylas-if-state.cjs.entry.js +1 -1
  205. package/dist/cjs/nylas-login.cjs.entry.js +1 -1
  206. package/dist/cjs/nylas-provider.cjs.entry.js +2 -2
  207. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  208. package/dist/cjs/nylas-scheduling.cjs.entry.js +22 -9
  209. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  210. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
  211. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  212. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  213. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  214. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  215. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  216. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  217. package/dist/cjs/{scheduler-store-4489a68b.js → scheduler-store-e3ddffc1.js} +13 -4
  218. package/dist/cjs/scheduler-store-e3ddffc1.js.map +1 -0
  219. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  220. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  221. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  222. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  223. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  224. package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
  225. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  226. package/dist/cjs/trash-fill-icon.cjs.entry.js +1 -1
  227. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  228. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  229. package/dist/collection/collection-manifest.json +1 -1
  230. package/dist/collection/common/icons/add-circle.js +1 -1
  231. package/dist/collection/common/icons/archive.js +1 -1
  232. package/dist/collection/common/icons/arrow.js +1 -1
  233. package/dist/collection/common/icons/bold.js +1 -1
  234. package/dist/collection/common/icons/calendar-agenda-fill.js +1 -1
  235. package/dist/collection/common/icons/calendar-agenda.js +1 -1
  236. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  237. package/dist/collection/common/icons/calendar-check.js +1 -1
  238. package/dist/collection/common/icons/calendar-info.js +1 -1
  239. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  240. package/dist/collection/common/icons/calendar.js +1 -1
  241. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  242. package/dist/collection/common/icons/checkmark.js +1 -1
  243. package/dist/collection/common/icons/chevron.js +1 -1
  244. package/dist/collection/common/icons/clock.js +1 -1
  245. package/dist/collection/common/icons/close.js +1 -1
  246. package/dist/collection/common/icons/copy.js +1 -1
  247. package/dist/collection/common/icons/delete.js +1 -1
  248. package/dist/collection/common/icons/document-refresh.js +1 -1
  249. package/dist/collection/common/icons/dragable.js +1 -1
  250. package/dist/collection/common/icons/edit.js +1 -1
  251. package/dist/collection/common/icons/envelope-fill.js +1 -1
  252. package/dist/collection/common/icons/envelope.js +1 -1
  253. package/dist/collection/common/icons/eye.js +1 -1
  254. package/dist/collection/common/icons/feedback-icon.js +1 -1
  255. package/dist/collection/common/icons/flow.js +1 -1
  256. package/dist/collection/common/icons/folder.js +1 -1
  257. package/dist/collection/common/icons/forward.js +1 -1
  258. package/dist/collection/common/icons/globe.js +1 -1
  259. package/dist/collection/common/icons/google-logo.js +1 -1
  260. package/dist/collection/common/icons/google-meet.js +1 -1
  261. package/dist/collection/common/icons/inbox.js +1 -1
  262. package/dist/collection/common/icons/info.js +1 -1
  263. package/dist/collection/common/icons/italic.js +1 -1
  264. package/dist/collection/common/icons/loading.js +1 -1
  265. package/dist/collection/common/icons/location-off.js +1 -1
  266. package/dist/collection/common/icons/location.js +1 -1
  267. package/dist/collection/common/icons/microsof-teams.js +1 -1
  268. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  269. package/dist/collection/common/icons/nylas-logo.js +1 -1
  270. package/dist/collection/common/icons/paintbrush-fill.js +1 -1
  271. package/dist/collection/common/icons/paintbrush.js +1 -1
  272. package/dist/collection/common/icons/people.js +1 -1
  273. package/dist/collection/common/icons/person-clipboard.js +1 -1
  274. package/dist/collection/common/icons/person.js +1 -1
  275. package/dist/collection/common/icons/play.js +1 -1
  276. package/dist/collection/common/icons/plus.js +1 -1
  277. package/dist/collection/common/icons/refresh.js +1 -1
  278. package/dist/collection/common/icons/reply-all.js +1 -1
  279. package/dist/collection/common/icons/reply.js +1 -1
  280. package/dist/collection/common/icons/search.js +1 -1
  281. package/dist/collection/common/icons/sent.js +1 -1
  282. package/dist/collection/common/icons/spam.js +1 -1
  283. package/dist/collection/common/icons/star.js +1 -1
  284. package/dist/collection/common/icons/stop.js +1 -1
  285. package/dist/collection/common/icons/translate.js +1 -1
  286. package/dist/collection/common/icons/trash-fill.js +1 -1
  287. package/dist/collection/common/icons/trash.js +1 -1
  288. package/dist/collection/common/icons/underline.js +1 -1
  289. package/dist/collection/common/icons/warning.js +1 -1
  290. package/dist/collection/common/icons/zoom.js +1 -1
  291. package/dist/collection/common/types.js.map +1 -1
  292. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  293. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  294. package/dist/collection/components/design-system/input-color-picker/input-color-picker.js +2 -2
  295. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  296. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +1 -1
  297. package/dist/collection/components/design-system/input-image-url/input-image-url.js +20 -2
  298. package/dist/collection/components/design-system/input-image-url/input-image-url.js.map +1 -1
  299. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +1 -1
  300. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  301. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +1 -1
  302. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  303. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  304. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  305. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  306. package/dist/collection/components/nylas-if-state/nylas-if-state.js +1 -1
  307. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  308. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  309. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +23 -0
  310. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js +66 -51
  311. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
  312. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.css +23 -0
  313. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +35 -24
  314. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
  315. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.css +23 -0
  316. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +38 -29
  317. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js.map +1 -1
  318. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.css +23 -0
  319. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +26 -23
  320. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js.map +1 -1
  321. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js +26 -23
  322. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js.map +1 -1
  323. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.css +23 -0
  324. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +26 -20
  325. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
  326. package/dist/collection/components/scheduler/nylas-feedback-form/nylas-feedback-form.js +2 -2
  327. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.css +23 -0
  328. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  329. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js +29 -23
  330. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js.map +1 -1
  331. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +24 -10
  332. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
  333. package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js +143 -0
  334. package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js.map +1 -1
  335. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.css +23 -0
  336. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +3 -3
  337. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js.map +1 -1
  338. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +23 -0
  339. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +50 -44
  340. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -1
  341. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +66 -55
  342. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  343. package/dist/collection/components/scheduler-editor/nylas-additional-participants/test/nylas-additional-participants.spec.js +106 -0
  344. package/dist/collection/components/scheduler-editor/nylas-additional-participants/test/nylas-additional-participants.spec.js.map +1 -0
  345. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +44 -28
  346. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  347. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +25 -10
  348. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
  349. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js +21 -9
  350. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js.map +1 -1
  351. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js +19 -10
  352. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js.map +1 -1
  353. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +6 -3
  354. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js.map +1 -1
  355. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js +10 -4
  356. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js.map +1 -1
  357. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +45 -33
  358. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
  359. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.css +2 -1
  360. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +16 -7
  361. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js.map +1 -1
  362. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +58 -30
  363. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js.map +1 -1
  364. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/test/nylas-confirmation-email.spec.js +33 -0
  365. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/test/nylas-confirmation-email.spec.js.map +1 -0
  366. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +26 -10
  367. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js.map +1 -1
  368. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  369. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js.map +1 -1
  370. package/dist/collection/components/scheduler-editor/nylas-custom-event-slug/nylas-custom-event-slug.js +1 -0
  371. package/dist/collection/components/scheduler-editor/nylas-custom-event-slug/nylas-custom-event-slug.js.map +1 -1
  372. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +17 -11
  373. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js.map +1 -1
  374. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +62 -28
  375. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  376. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +1 -1
  377. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
  378. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/test/nylas-editor-tabs.spec.js +171 -1
  379. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/test/nylas-editor-tabs.spec.js.map +1 -1
  380. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +16 -7
  381. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
  382. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +20 -9
  383. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js.map +1 -1
  384. package/dist/collection/components/scheduler-editor/nylas-event-duration/test/nylas-event-duration.spec.js +55 -0
  385. package/dist/collection/components/scheduler-editor/nylas-event-duration/test/nylas-event-duration.spec.js.map +1 -0
  386. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  387. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  388. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +74 -29
  389. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js.map +1 -1
  390. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +25 -11
  391. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
  392. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  393. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +16 -7
  394. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -1
  395. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +2 -2
  396. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
  397. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +32 -23
  398. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js.map +1 -1
  399. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +32 -23
  400. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -1
  401. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js +43 -28
  402. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js.map +1 -1
  403. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +38 -26
  404. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js.map +1 -1
  405. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +31 -12
  406. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js.map +1 -1
  407. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +18 -8
  408. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -1
  409. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/test/nylas-participants-custom-availability.spec.js +47 -0
  410. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/test/nylas-participants-custom-availability.spec.js.map +1 -0
  411. package/dist/collection/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.js +3 -3
  412. package/dist/collection/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.js +1 -1
  413. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +1 -1
  414. package/dist/collection/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.js +34 -27
  415. package/dist/collection/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.js.map +1 -1
  416. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  417. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +18 -53
  418. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js.map +1 -1
  419. package/dist/collection/connector/shared/api/scheduler.js +12 -3
  420. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  421. package/dist/collection/types/index.js +7 -6
  422. package/dist/collection/types/index.js.map +1 -1
  423. package/dist/collection/utils/test-utils.js +9 -0
  424. package/dist/collection/utils/test-utils.js.map +1 -1
  425. package/dist/components/add-circle.js +1 -1
  426. package/dist/components/archive-icon.js +1 -1
  427. package/dist/components/arrow-icon.js +1 -1
  428. package/dist/components/bold-icon.js +1 -1
  429. package/dist/components/button-component2.js +1 -1
  430. package/dist/components/calendar-agenda-fill.js +1 -1
  431. package/dist/components/calendar-agenda.js +1 -1
  432. package/dist/components/calendar-cancel.js +1 -1
  433. package/dist/components/calendar-check.js +1 -1
  434. package/dist/components/calendar-info.js +1 -1
  435. package/dist/components/calendar-patterns.js +1 -1
  436. package/dist/components/calendar.js +1 -1
  437. package/dist/components/checkbox-component2.js +1 -1
  438. package/dist/components/checkmark-circle.js +1 -1
  439. package/dist/components/checkmark.js +1 -1
  440. package/dist/components/chevron.js +1 -1
  441. package/dist/components/clock.js +1 -1
  442. package/dist/components/close.js +1 -1
  443. package/dist/components/constants.js +1 -1
  444. package/dist/components/copy.js +1 -1
  445. package/dist/components/delete.js +1 -1
  446. package/dist/components/document-refresh-icon.js +1 -1
  447. package/dist/components/dragable.js +1 -1
  448. package/dist/components/edit.js +1 -1
  449. package/dist/components/envelope-fill.js +1 -1
  450. package/dist/components/envelope.js +1 -1
  451. package/dist/components/eye.js +1 -1
  452. package/dist/components/feedback-icon2.js +1 -1
  453. package/dist/components/flow.js +1 -1
  454. package/dist/components/folder-icon.js +1 -1
  455. package/dist/components/forward-icon.js +1 -1
  456. package/dist/components/globe.js +1 -1
  457. package/dist/components/google-logo.js +1 -1
  458. package/dist/components/google-meet.js +1 -1
  459. package/dist/components/inbox-icon.js +1 -1
  460. package/dist/components/info.js +1 -1
  461. package/dist/components/input-color-picker.js +2 -2
  462. package/dist/components/input-component2.js +1 -1
  463. package/dist/components/input-dropdown2.js +1 -1
  464. package/dist/components/input-image-url2.js +6 -2
  465. package/dist/components/input-image-url2.js.map +1 -1
  466. package/dist/components/italic-icon.js +1 -1
  467. package/dist/components/loading.js +1 -1
  468. package/dist/components/location-off.js +1 -1
  469. package/dist/components/location.js +1 -1
  470. package/dist/components/microsof-teams.js +1 -1
  471. package/dist/components/microsoft-logo.js +1 -1
  472. package/dist/components/multi-select-dropdown2.js +1 -1
  473. package/dist/components/nylas-additional-participants2.js +16 -20
  474. package/dist/components/nylas-additional-participants2.js.map +1 -1
  475. package/dist/components/nylas-availability-picker2.js +5 -4
  476. package/dist/components/nylas-availability-picker2.js.map +1 -1
  477. package/dist/components/nylas-booked-event-card2.js +8 -8
  478. package/dist/components/nylas-booked-event-card2.js.map +1 -1
  479. package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
  480. package/dist/components/nylas-booking-confirmation-redirect2.js +1 -1
  481. package/dist/components/nylas-booking-confirmation-redirect2.js.map +1 -1
  482. package/dist/components/nylas-booking-confirmation-type2.js +2 -2
  483. package/dist/components/nylas-booking-confirmation-type2.js.map +1 -1
  484. package/dist/components/nylas-booking-form-config2.js +1 -1
  485. package/dist/components/nylas-booking-form-config2.js.map +1 -1
  486. package/dist/components/nylas-booking-form2.js +6 -5
  487. package/dist/components/nylas-booking-form2.js.map +1 -1
  488. package/dist/components/nylas-buffer-time2.js.map +1 -1
  489. package/dist/components/nylas-calendar-picker2.js +4 -4
  490. package/dist/components/nylas-calendar-picker2.js.map +1 -1
  491. package/dist/components/nylas-cancel-booking-form2.js +4 -4
  492. package/dist/components/nylas-cancel-booking-form2.js.map +1 -1
  493. package/dist/components/nylas-cancellation-policy2.js +1 -1
  494. package/dist/components/nylas-cancellation-policy2.js.map +1 -1
  495. package/dist/components/nylas-cancelled-event-card2.js +4 -4
  496. package/dist/components/nylas-cancelled-event-card2.js.map +1 -1
  497. package/dist/components/nylas-confirmation-email2.js +16 -6
  498. package/dist/components/nylas-confirmation-email2.js.map +1 -1
  499. package/dist/components/nylas-confirmed-event-card2.js +3 -3
  500. package/dist/components/nylas-confirmed-event-card2.js.map +1 -1
  501. package/dist/components/nylas-connected-calendars2.js +6 -2
  502. package/dist/components/nylas-connected-calendars2.js.map +1 -1
  503. package/dist/components/nylas-custom-booking-flow2.js +1 -1
  504. package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
  505. package/dist/components/nylas-custom-event-slug2.js +1 -0
  506. package/dist/components/nylas-custom-event-slug2.js.map +1 -1
  507. package/dist/components/nylas-customize-booking-settings2.js +4 -4
  508. package/dist/components/nylas-customize-booking-settings2.js.map +1 -1
  509. package/dist/components/nylas-date-picker2.js +4 -4
  510. package/dist/components/nylas-date-picker2.js.map +1 -1
  511. package/dist/components/nylas-editor-tabs2.js +196 -167
  512. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  513. package/dist/components/nylas-event-description2.js +1 -1
  514. package/dist/components/nylas-event-description2.js.map +1 -1
  515. package/dist/components/nylas-event-duration2.js +5 -3
  516. package/dist/components/nylas-event-duration2.js.map +1 -1
  517. package/dist/components/nylas-event-info2.js +1 -1
  518. package/dist/components/nylas-event-limits2.js +1 -1
  519. package/dist/components/nylas-event-location2.js +39 -15
  520. package/dist/components/nylas-event-location2.js.map +1 -1
  521. package/dist/components/nylas-event-title2.js +10 -5
  522. package/dist/components/nylas-event-title2.js.map +1 -1
  523. package/dist/components/nylas-feedback-form2.js +2 -2
  524. package/dist/components/nylas-form-card2.js +1 -1
  525. package/dist/components/nylas-if-state.js +1 -1
  526. package/dist/components/nylas-limit-future-bookings2.js +1 -1
  527. package/dist/components/nylas-limit-future-bookings2.js.map +1 -1
  528. package/dist/components/nylas-list-configurations2.js +2 -2
  529. package/dist/components/nylas-list-configurations2.js.map +1 -1
  530. package/dist/components/nylas-locale-switch2.js +2 -2
  531. package/dist/components/nylas-locale-switch2.js.map +1 -1
  532. package/dist/components/nylas-login.js +1 -1
  533. package/dist/components/nylas-logo2.js +1 -1
  534. package/dist/components/nylas-min-booking-notice2.js +3 -3
  535. package/dist/components/nylas-min-booking-notice2.js.map +1 -1
  536. package/dist/components/nylas-min-cancellation-notice2.js +3 -3
  537. package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
  538. package/dist/components/nylas-notification2.js +1 -1
  539. package/dist/components/nylas-organizer-confirmation-card2.js +3 -3
  540. package/dist/components/nylas-organizer-confirmation-card2.js.map +1 -1
  541. package/dist/components/nylas-page-name2.js +3 -3
  542. package/dist/components/nylas-page-name2.js.map +1 -1
  543. package/dist/components/nylas-page-styling2.js +3 -3
  544. package/dist/components/nylas-page-styling2.js.map +1 -1
  545. package/dist/components/nylas-participant-booking-calendars2.js +6 -2
  546. package/dist/components/nylas-participant-booking-calendars2.js.map +1 -1
  547. package/dist/components/nylas-participants-custom-availability2.js +3 -2
  548. package/dist/components/nylas-participants-custom-availability2.js.map +1 -1
  549. package/dist/components/nylas-provider.js +1 -1
  550. package/dist/components/nylas-reminder-emails.js +1 -302
  551. package/dist/components/nylas-reminder-emails.js.map +1 -1
  552. package/dist/{esm/nylas-reminder-emails.entry.js → components/nylas-reminder-emails2.js} +123 -21
  553. package/dist/components/nylas-reminder-emails2.js.map +1 -0
  554. package/dist/components/nylas-reminder-time2.js +2 -2
  555. package/dist/components/nylas-scheduler-editor.js +179 -161
  556. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  557. package/dist/components/nylas-scheduling-method2.js +4 -6
  558. package/dist/components/nylas-scheduling-method2.js.map +1 -1
  559. package/dist/components/nylas-scheduling.js +22 -8
  560. package/dist/components/nylas-scheduling.js.map +1 -1
  561. package/dist/components/nylas-selected-event-card2.js +3 -3
  562. package/dist/components/nylas-selected-event-card2.js.map +1 -1
  563. package/dist/components/nylas-time-window-picker2.js +1 -1
  564. package/dist/components/nylas-timeslot-interval2.js +4 -8
  565. package/dist/components/nylas-timeslot-interval2.js.map +1 -1
  566. package/dist/components/nylas-timeslot-picker2.js +7 -7
  567. package/dist/components/nylas-timeslot-picker2.js.map +1 -1
  568. package/dist/components/paintbrush-fill.js +1 -1
  569. package/dist/components/paintbrush.js +1 -1
  570. package/dist/components/people.js +1 -1
  571. package/dist/components/person-clipboard.js +1 -1
  572. package/dist/components/person.js +1 -1
  573. package/dist/components/play-icon.js +1 -1
  574. package/dist/components/plus.js +1 -1
  575. package/dist/components/radio-button-group2.js +1 -1
  576. package/dist/components/refresh-icon.js +1 -1
  577. package/dist/components/reply-all-icon.js +1 -1
  578. package/dist/components/reply-icon.js +1 -1
  579. package/dist/components/scheduler-store.js +12 -3
  580. package/dist/components/scheduler-store.js.map +1 -1
  581. package/dist/components/search.js +1 -1
  582. package/dist/components/select-dropdown2.js +1 -1
  583. package/dist/components/sent-icon.js +1 -1
  584. package/dist/components/spam-icon.js +1 -1
  585. package/dist/components/star-icon.js +1 -1
  586. package/dist/components/stop-icon.js +1 -1
  587. package/dist/components/textarea-component2.js +1 -1
  588. package/dist/components/time-period-selector2.js +1 -1
  589. package/dist/components/toggle-switch2.js +1 -1
  590. package/dist/components/toolitp-component.js +1 -1
  591. package/dist/components/translate.js +1 -1
  592. package/dist/components/trash-fill-icon.js +1 -1
  593. package/dist/components/trash.js +1 -1
  594. package/dist/components/underline-icon.js +1 -1
  595. package/dist/components/warning.js +1 -1
  596. package/dist/components/zoom.js +1 -1
  597. package/dist/esm/add-circle-icon_2.entry.js +2 -2
  598. package/dist/esm/archive-icon.entry.js +1 -1
  599. package/dist/esm/arrow-icon.entry.js +1 -1
  600. package/dist/esm/bold-icon.entry.js +1 -1
  601. package/dist/esm/button-component_2.entry.js +2 -2
  602. package/dist/esm/{calendar-agenda-fill-icon_51.entry.js → calendar-agenda-fill-icon_54.entry.js} +735 -328
  603. package/dist/esm/calendar-agenda-fill-icon_54.entry.js.map +1 -0
  604. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  605. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  606. package/dist/esm/calendar-icon.entry.js +1 -1
  607. package/dist/esm/checkbox-component_2.entry.js +2 -2
  608. package/dist/esm/chevron-icon_3.entry.js +3 -3
  609. package/dist/esm/clock-icon_4.entry.js +4 -4
  610. package/dist/esm/{constants-94520f89.js → constants-c549b12b.js} +2 -2
  611. package/dist/esm/{constants-94520f89.js.map → constants-c549b12b.js.map} +1 -1
  612. package/dist/esm/copy-icon.entry.js +1 -1
  613. package/dist/esm/delete-icon.entry.js +1 -1
  614. package/dist/esm/document-refresh-icon.entry.js +1 -1
  615. package/dist/esm/folder-icon.entry.js +1 -1
  616. package/dist/esm/forward-icon.entry.js +1 -1
  617. package/dist/esm/globe-icon.entry.js +1 -1
  618. package/dist/esm/google-logo-icon_4.entry.js +35 -24
  619. package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
  620. package/dist/esm/inbox-icon.entry.js +1 -1
  621. package/dist/esm/index-7cb0dd3d.js +2 -10
  622. package/dist/esm/info-icon_2.entry.js +2 -2
  623. package/dist/esm/input-color-picker.entry.js +2 -2
  624. package/dist/esm/input-component.entry.js +1 -1
  625. package/dist/esm/input-dropdown.entry.js +1 -1
  626. package/dist/esm/italic-icon.entry.js +1 -1
  627. package/dist/esm/loader.js +1 -1
  628. package/dist/esm/multi-select-dropdown.entry.js +1 -1
  629. package/dist/esm/nylas-booked-event-card_12.entry.js +36 -35
  630. package/dist/esm/nylas-booked-event-card_12.entry.js.map +1 -1
  631. package/dist/esm/nylas-form-card.entry.js +1 -1
  632. package/dist/esm/nylas-if-state.entry.js +1 -1
  633. package/dist/esm/nylas-login.entry.js +1 -1
  634. package/dist/esm/nylas-provider.entry.js +2 -2
  635. package/dist/esm/nylas-scheduler-editor.entry.js +1 -1
  636. package/dist/esm/nylas-scheduling.entry.js +23 -10
  637. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  638. package/dist/esm/nylas-time-window-picker.entry.js +1 -1
  639. package/dist/esm/nylas-web-elements.js +1 -1
  640. package/dist/esm/person-icon.entry.js +1 -1
  641. package/dist/esm/play-icon.entry.js +1 -1
  642. package/dist/esm/refresh-icon.entry.js +1 -1
  643. package/dist/esm/reply-all-icon.entry.js +1 -1
  644. package/dist/esm/reply-icon.entry.js +1 -1
  645. package/dist/esm/{scheduler-store-24e5fb65.js → scheduler-store-d4784b24.js} +13 -4
  646. package/dist/esm/scheduler-store-d4784b24.js.map +1 -0
  647. package/dist/esm/sent-icon.entry.js +1 -1
  648. package/dist/esm/spam-icon.entry.js +1 -1
  649. package/dist/esm/star-icon.entry.js +1 -1
  650. package/dist/esm/stop-icon.entry.js +1 -1
  651. package/dist/esm/textarea-component.entry.js +1 -1
  652. package/dist/esm/time-period-selector.entry.js +1 -1
  653. package/dist/esm/translate-icon.entry.js +1 -1
  654. package/dist/esm/trash-fill-icon.entry.js +1 -1
  655. package/dist/esm/underline-icon.entry.js +1 -1
  656. package/dist/esm/warning-icon.entry.js +1 -1
  657. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  658. package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
  659. package/dist/nylas-web-elements/{p-14493c1f.entry.js → p-04d397d3.entry.js} +2 -2
  660. package/dist/nylas-web-elements/{p-b6e4de5b.js → p-08a590fe.js} +2 -2
  661. package/dist/nylas-web-elements/{p-7943a9f3.entry.js → p-108bd821.entry.js} +2 -2
  662. package/dist/nylas-web-elements/p-12d690b8.js +2 -0
  663. package/dist/nylas-web-elements/p-12d690b8.js.map +1 -0
  664. package/dist/nylas-web-elements/{p-d902a356.entry.js → p-1546bd61.entry.js} +2 -2
  665. package/dist/nylas-web-elements/{p-651232a3.entry.js → p-1c25b695.entry.js} +2 -2
  666. package/dist/nylas-web-elements/{p-caad44c4.entry.js → p-2c1432a2.entry.js} +2 -2
  667. package/dist/nylas-web-elements/{p-21fb688e.entry.js → p-2f91359b.entry.js} +2 -2
  668. package/dist/nylas-web-elements/{p-27074ad6.entry.js → p-3268077f.entry.js} +2 -2
  669. package/dist/nylas-web-elements/p-32bc7f60.entry.js +2 -0
  670. package/dist/nylas-web-elements/p-33800554.entry.js +2 -0
  671. package/dist/nylas-web-elements/p-3971e86b.entry.js +2 -0
  672. package/dist/nylas-web-elements/p-483f2fb4.entry.js +2 -0
  673. package/dist/nylas-web-elements/{p-8a082b24.entry.js → p-4e57a9ee.entry.js} +2 -2
  674. package/dist/nylas-web-elements/p-4fb91c8b.entry.js +2 -0
  675. package/dist/nylas-web-elements/{p-effd77ed.entry.js → p-525bd709.entry.js} +2 -2
  676. package/dist/nylas-web-elements/{p-7d5b3918.entry.js → p-56834b7a.entry.js} +2 -2
  677. package/dist/nylas-web-elements/{p-faeec15a.entry.js → p-5ed596d7.entry.js} +2 -2
  678. package/dist/nylas-web-elements/{p-6fa4597b.entry.js → p-6089d6fa.entry.js} +2 -2
  679. package/dist/nylas-web-elements/{p-39af67b7.entry.js → p-61ea19c2.entry.js} +2 -2
  680. package/dist/nylas-web-elements/p-713505c9.entry.js +2 -0
  681. package/dist/nylas-web-elements/{p-bd85bf92.entry.js → p-7140bca8.entry.js} +2 -2
  682. package/dist/nylas-web-elements/{p-3f2f3b85.entry.js → p-762ae706.entry.js} +2 -2
  683. package/dist/nylas-web-elements/p-7919d41d.entry.js +2 -0
  684. package/dist/nylas-web-elements/p-7a1d51ab.entry.js +2 -0
  685. package/dist/nylas-web-elements/p-7a1d51ab.entry.js.map +1 -0
  686. package/dist/nylas-web-elements/p-7bed0959.entry.js +2 -0
  687. package/dist/nylas-web-elements/p-7bed0959.entry.js.map +1 -0
  688. package/dist/nylas-web-elements/{p-27b52475.entry.js → p-7c20444b.entry.js} +2 -2
  689. package/dist/nylas-web-elements/{p-d55f619c.entry.js → p-988eee6f.entry.js} +2 -2
  690. package/dist/nylas-web-elements/{p-0519e48e.entry.js → p-9d8ffc7b.entry.js} +2 -2
  691. package/dist/nylas-web-elements/{p-fbddb6fe.entry.js → p-9f009793.entry.js} +2 -2
  692. package/dist/nylas-web-elements/{p-1e2ffdc6.entry.js → p-aa4b24ce.entry.js} +2 -2
  693. package/dist/nylas-web-elements/{p-5973b208.entry.js → p-ac8386d1.entry.js} +2 -2
  694. package/dist/nylas-web-elements/{p-062f6da2.entry.js → p-acfe4f6e.entry.js} +2 -2
  695. package/dist/nylas-web-elements/p-af2ab331.entry.js +2 -0
  696. package/dist/nylas-web-elements/{p-100c9ff7.entry.js → p-b110d5c1.entry.js} +2 -2
  697. package/dist/nylas-web-elements/p-bbf86b8c.entry.js +2 -0
  698. package/dist/nylas-web-elements/{p-e012eac3.entry.js → p-be938025.entry.js} +2 -2
  699. package/dist/nylas-web-elements/{p-36792b8a.entry.js → p-cad17478.entry.js} +2 -2
  700. package/dist/nylas-web-elements/p-ce2c8e67.entry.js +2 -0
  701. package/dist/nylas-web-elements/{p-68320c97.entry.js → p-d1abdef7.entry.js} +2 -2
  702. package/dist/nylas-web-elements/{p-8013d0a2.entry.js → p-dcdb47dd.entry.js} +2 -2
  703. package/dist/nylas-web-elements/p-df131a08.entry.js +8 -0
  704. package/dist/nylas-web-elements/p-df131a08.entry.js.map +1 -0
  705. package/dist/nylas-web-elements/{p-cc8f94f7.entry.js → p-e1cd1887.entry.js} +2 -2
  706. package/dist/nylas-web-elements/{p-00d89615.entry.js → p-eb2d8167.entry.js} +2 -2
  707. package/dist/nylas-web-elements/{p-9b62edf6.entry.js → p-ec302526.entry.js} +2 -2
  708. package/dist/nylas-web-elements/{p-bbcf8659.entry.js → p-ec528a20.entry.js} +2 -2
  709. package/dist/nylas-web-elements/{p-0e0c00cc.entry.js → p-eee29c7e.entry.js} +2 -2
  710. package/dist/nylas-web-elements/{p-f62df769.entry.js → p-f2ae34c9.entry.js} +2 -2
  711. package/dist/nylas-web-elements/p-fc6ae4ec.entry.js +2 -0
  712. package/dist/nylas-web-elements/p-fc6ae4ec.entry.js.map +1 -0
  713. package/dist/nylas-web-elements/p-fe34d0ee.entry.js +2 -0
  714. package/dist/nylas-web-elements/p-febf4adf.entry.js +2 -0
  715. package/dist/types/common/types.d.ts +3 -0
  716. package/dist/types/components/design-system/input-image-url/input-image-url.d.ts +4 -0
  717. package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +2 -2
  718. package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +3 -4
  719. package/dist/types/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.d.ts +1 -1
  720. package/dist/types/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.d.ts +1 -1
  721. package/dist/types/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.d.ts +1 -1
  722. package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +1 -1
  723. package/dist/types/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.d.ts +1 -1
  724. package/dist/types/components/scheduler/nylas-scheduling/nylas-scheduling.d.ts +5 -3
  725. package/dist/types/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.d.ts +2 -2
  726. package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +3 -3
  727. package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +1 -1
  728. package/dist/types/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.d.ts +2 -2
  729. package/dist/types/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.d.ts +5 -1
  730. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +2 -1
  731. package/dist/types/components/scheduler-editor/nylas-event-location/nylas-event-location.d.ts +2 -0
  732. package/dist/types/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.d.ts +1 -1
  733. package/dist/types/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.d.ts +1 -1
  734. package/dist/types/components/scheduler-editor/nylas-page-name/nylas-page-name.d.ts +1 -1
  735. package/dist/types/components/scheduler-editor/nylas-page-styling/nylas-page-styling.d.ts +1 -1
  736. package/dist/types/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.d.ts +1 -0
  737. package/dist/types/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.d.ts +1 -1
  738. package/dist/types/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.d.ts +0 -2
  739. package/dist/types/components.d.ts +265 -290
  740. package/dist/types/connector/shared/api/scheduler.d.ts +4 -4
  741. package/dist/types/types/index.d.ts +164 -32
  742. package/package.json +7 -5
  743. package/dist/cjs/calendar-agenda-fill-icon_51.cjs.entry.js.map +0 -1
  744. package/dist/cjs/nylas-reminder-emails.cjs.entry.js +0 -208
  745. package/dist/cjs/nylas-reminder-emails.cjs.entry.js.map +0 -1
  746. package/dist/cjs/nylas-reminder-time_2.cjs.entry.js +0 -175
  747. package/dist/cjs/nylas-reminder-time_2.cjs.entry.js.map +0 -1
  748. package/dist/cjs/scheduler-store-4489a68b.js.map +0 -1
  749. package/dist/esm/calendar-agenda-fill-icon_51.entry.js.map +0 -1
  750. package/dist/esm/nylas-reminder-emails.entry.js.map +0 -1
  751. package/dist/esm/nylas-reminder-time_2.entry.js +0 -170
  752. package/dist/esm/nylas-reminder-time_2.entry.js.map +0 -1
  753. package/dist/esm/scheduler-store-24e5fb65.js.map +0 -1
  754. package/dist/nylas-web-elements/p-06e44cfc.entry.js +0 -2
  755. package/dist/nylas-web-elements/p-06e44cfc.entry.js.map +0 -1
  756. package/dist/nylas-web-elements/p-2653e311.entry.js +0 -2
  757. package/dist/nylas-web-elements/p-3ff76491.entry.js +0 -2
  758. package/dist/nylas-web-elements/p-3ff76491.entry.js.map +0 -1
  759. package/dist/nylas-web-elements/p-51a66bf5.entry.js +0 -2
  760. package/dist/nylas-web-elements/p-5b237299.entry.js +0 -2
  761. package/dist/nylas-web-elements/p-63341f71.entry.js +0 -2
  762. package/dist/nylas-web-elements/p-6c833d5e.entry.js +0 -2
  763. package/dist/nylas-web-elements/p-6c833d5e.entry.js.map +0 -1
  764. package/dist/nylas-web-elements/p-742d7c3c.entry.js +0 -2
  765. package/dist/nylas-web-elements/p-76fc639b.entry.js +0 -2
  766. package/dist/nylas-web-elements/p-781e954b.entry.js +0 -2
  767. package/dist/nylas-web-elements/p-7f56a139.entry.js +0 -2
  768. package/dist/nylas-web-elements/p-7f56a139.entry.js.map +0 -1
  769. package/dist/nylas-web-elements/p-86194780.entry.js +0 -2
  770. package/dist/nylas-web-elements/p-86194780.entry.js.map +0 -1
  771. package/dist/nylas-web-elements/p-96bcc255.entry.js +0 -2
  772. package/dist/nylas-web-elements/p-aeab587c.entry.js +0 -2
  773. package/dist/nylas-web-elements/p-c417fd2f.entry.js +0 -2
  774. package/dist/nylas-web-elements/p-ef3561ae.js +0 -2
  775. package/dist/nylas-web-elements/p-ef3561ae.js.map +0 -1
  776. package/dist/nylas-web-elements/p-fbe814b2.entry.js +0 -8
  777. package/dist/nylas-web-elements/p-fbe814b2.entry.js.map +0 -1
  778. package/dist/nylas-web-elements/p-fdc60ce2.entry.js +0 -2
  779. package/dist/nylas-web-elements/p-fecf68ef.entry.js +0 -2
  780. /package/dist/nylas-web-elements/{p-14493c1f.entry.js.map → p-04d397d3.entry.js.map} +0 -0
  781. /package/dist/nylas-web-elements/{p-b6e4de5b.js.map → p-08a590fe.js.map} +0 -0
  782. /package/dist/nylas-web-elements/{p-7943a9f3.entry.js.map → p-108bd821.entry.js.map} +0 -0
  783. /package/dist/nylas-web-elements/{p-d902a356.entry.js.map → p-1546bd61.entry.js.map} +0 -0
  784. /package/dist/nylas-web-elements/{p-651232a3.entry.js.map → p-1c25b695.entry.js.map} +0 -0
  785. /package/dist/nylas-web-elements/{p-caad44c4.entry.js.map → p-2c1432a2.entry.js.map} +0 -0
  786. /package/dist/nylas-web-elements/{p-21fb688e.entry.js.map → p-2f91359b.entry.js.map} +0 -0
  787. /package/dist/nylas-web-elements/{p-27074ad6.entry.js.map → p-3268077f.entry.js.map} +0 -0
  788. /package/dist/nylas-web-elements/{p-aeab587c.entry.js.map → p-32bc7f60.entry.js.map} +0 -0
  789. /package/dist/nylas-web-elements/{p-76fc639b.entry.js.map → p-33800554.entry.js.map} +0 -0
  790. /package/dist/nylas-web-elements/{p-781e954b.entry.js.map → p-3971e86b.entry.js.map} +0 -0
  791. /package/dist/nylas-web-elements/{p-63341f71.entry.js.map → p-483f2fb4.entry.js.map} +0 -0
  792. /package/dist/nylas-web-elements/{p-8a082b24.entry.js.map → p-4e57a9ee.entry.js.map} +0 -0
  793. /package/dist/nylas-web-elements/{p-5b237299.entry.js.map → p-4fb91c8b.entry.js.map} +0 -0
  794. /package/dist/nylas-web-elements/{p-effd77ed.entry.js.map → p-525bd709.entry.js.map} +0 -0
  795. /package/dist/nylas-web-elements/{p-7d5b3918.entry.js.map → p-56834b7a.entry.js.map} +0 -0
  796. /package/dist/nylas-web-elements/{p-faeec15a.entry.js.map → p-5ed596d7.entry.js.map} +0 -0
  797. /package/dist/nylas-web-elements/{p-6fa4597b.entry.js.map → p-6089d6fa.entry.js.map} +0 -0
  798. /package/dist/nylas-web-elements/{p-39af67b7.entry.js.map → p-61ea19c2.entry.js.map} +0 -0
  799. /package/dist/nylas-web-elements/{p-fdc60ce2.entry.js.map → p-713505c9.entry.js.map} +0 -0
  800. /package/dist/nylas-web-elements/{p-bd85bf92.entry.js.map → p-7140bca8.entry.js.map} +0 -0
  801. /package/dist/nylas-web-elements/{p-3f2f3b85.entry.js.map → p-762ae706.entry.js.map} +0 -0
  802. /package/dist/nylas-web-elements/{p-c417fd2f.entry.js.map → p-7919d41d.entry.js.map} +0 -0
  803. /package/dist/nylas-web-elements/{p-27b52475.entry.js.map → p-7c20444b.entry.js.map} +0 -0
  804. /package/dist/nylas-web-elements/{p-d55f619c.entry.js.map → p-988eee6f.entry.js.map} +0 -0
  805. /package/dist/nylas-web-elements/{p-0519e48e.entry.js.map → p-9d8ffc7b.entry.js.map} +0 -0
  806. /package/dist/nylas-web-elements/{p-fbddb6fe.entry.js.map → p-9f009793.entry.js.map} +0 -0
  807. /package/dist/nylas-web-elements/{p-1e2ffdc6.entry.js.map → p-aa4b24ce.entry.js.map} +0 -0
  808. /package/dist/nylas-web-elements/{p-5973b208.entry.js.map → p-ac8386d1.entry.js.map} +0 -0
  809. /package/dist/nylas-web-elements/{p-062f6da2.entry.js.map → p-acfe4f6e.entry.js.map} +0 -0
  810. /package/dist/nylas-web-elements/{p-742d7c3c.entry.js.map → p-af2ab331.entry.js.map} +0 -0
  811. /package/dist/nylas-web-elements/{p-100c9ff7.entry.js.map → p-b110d5c1.entry.js.map} +0 -0
  812. /package/dist/nylas-web-elements/{p-fecf68ef.entry.js.map → p-bbf86b8c.entry.js.map} +0 -0
  813. /package/dist/nylas-web-elements/{p-e012eac3.entry.js.map → p-be938025.entry.js.map} +0 -0
  814. /package/dist/nylas-web-elements/{p-36792b8a.entry.js.map → p-cad17478.entry.js.map} +0 -0
  815. /package/dist/nylas-web-elements/{p-2653e311.entry.js.map → p-ce2c8e67.entry.js.map} +0 -0
  816. /package/dist/nylas-web-elements/{p-68320c97.entry.js.map → p-d1abdef7.entry.js.map} +0 -0
  817. /package/dist/nylas-web-elements/{p-8013d0a2.entry.js.map → p-dcdb47dd.entry.js.map} +0 -0
  818. /package/dist/nylas-web-elements/{p-cc8f94f7.entry.js.map → p-e1cd1887.entry.js.map} +0 -0
  819. /package/dist/nylas-web-elements/{p-00d89615.entry.js.map → p-eb2d8167.entry.js.map} +0 -0
  820. /package/dist/nylas-web-elements/{p-9b62edf6.entry.js.map → p-ec302526.entry.js.map} +0 -0
  821. /package/dist/nylas-web-elements/{p-bbcf8659.entry.js.map → p-ec528a20.entry.js.map} +0 -0
  822. /package/dist/nylas-web-elements/{p-0e0c00cc.entry.js.map → p-eee29c7e.entry.js.map} +0 -0
  823. /package/dist/nylas-web-elements/{p-f62df769.entry.js.map → p-f2ae34c9.entry.js.map} +0 -0
  824. /package/dist/nylas-web-elements/{p-96bcc255.entry.js.map → p-fe34d0ee.entry.js.map} +0 -0
  825. /package/dist/nylas-web-elements/{p-51a66bf5.entry.js.map → p-febf4adf.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["iconCss","GoogleLogoIconStyle0","GoogleLogoIcon","render","h","key","width","this","height","viewBox","fill","xmlns","d","id","MicrosoftLogoIconStyle0","MicrosoftLogoIcon","Tab","TabContents","formState","activeTab","children","Fragment","class","hide","EventInfo","slot","name","exportparts","Availability","participants","BookingOptions","readOnly","Communications","Participants","PageStyles","BookingForm","nylasEditorTabsCss","NylasEditorTabsStyle0","NylasEditorTabs","setError","error","message","formSubmissionHandler","async","event","preventDefault","formEvent","formSubmitted","emit","debug","valid","formRef","checkValidity","defaultPrevented","validationMessage","isLoading","hasUnsavedChanges","updateFormState","title","description","duration","availability","bookingCalendar","location","bookingType","buffer","availableDaysInFuture","minCancellationNotice","minBookingNotice","cancellationPolicy","timeslotInterval","additionalGuestsHidden","hideCancellationOptions","hideReschedulingOptions","participantOpenHours","additionalFields","participantCalendars","conferencing","participantBookingCalendars","reminders","emailTemplate","redirectUrl","availabilityMethod","slug","appearance","organizer","selectedConfiguration","find","p","is_organizer","organizerCalendars","email","organizerBookingCalendar","booking","calendar_id","durationMinutes","parseInt","participantsList","length","currentUser","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","calendar_ids","open_hours","configObject","version","duration_minutes","interval_minutes","interval","round_to","roundTo","availability_rules","availability_method","before","after","default_open_hours","openHours","DEFAULT_OPEN_HOURS","round_robin_group_id","map","undefined","event_booking","toString","booking_type","scheduler","cancellation_policy","available_days_in_future","min_cancellation_notice","min_booking_notice","hide_additional_guests","hide_cancellation_options","hide_rescheduling_options","additional_fields","email_template","confirmation_redirect_url","configObjectWithDeveloperSettings","mergeDeep","finalConfig","action","isConfigRoundRobin","resetLoadingState","_e","changesSaved","setTimeout","currentConfig","configurations","c","hasError","checkForClientSideErrors","schedulerConfigChanged","config","errorMessage","isOrganizerConfirmationType","organizerConfirmationUrl","organizer_confirmation_url","Object","entries","forEach","entry","field","label","type","options","option","Error","configChangedHandler","newConfig","getFormStateFromConfig","userChangedHandler","newUser","connectedCallback","componentWillLoad","componentDidLoad","enableUserFeedback","Sentry.isInitialized","Sentry.init","dsn","release","integrations","filter","_integration","Sentry.feedbackIntegration","colorScheme","autoInject","autoSessionTracking","beforeSend","firstVisibleTab","host","querySelector","disconnectedCallback","handleValueChanged","value","detail","setFormState","schedulerEditorFormUpdated","feedbackModalClosedHandler","showFeedbackModal","feedbackSubmittedHandler","eventId","Sentry.captureMessage","feedback","Sentry.captureFeedback","includeReplay","captureContext","tags","extra","configId","organizerParticipant","console","info","calendarIds","reduce","acc","JSON","parse","settings","formData","FormData","setActiveTab","e","tabName","hideTab","tab","hideEditorTabs","includes","onFeedbackClick","Host","onSubmit","ref","el","noValidate","mode","active","part","onClick","calendars","variant","schedulerPreviewLink","disabled","clickHandler","previewEvent","previewButtonClicked","window","open","parsePreviewLink","cancelButtonClick","__decorate","RegisterComponent","stateToProps","Map","eventToProps","nylasSchedulerConfigConnector","checkForErrors","response","data","schedulerConfig","updateConfiguration","createConfiguration","_","schedulerConfigStore","state","_nylasSchedulerConfigConnector","localPropsToProp","fireRegisterEvent","nylasListConfigurationsCss","NylasListConfigurationsStyle0","NylasListConfigurations","listConfigurationsNextCursorChangedHandler","newVal","oldVal","disableNextPageButton","currentCursor","initListConfigurations","handleNylasFormDropdownChanged","index","split","deleteButtonClick","configuration","navigator","clipboard","writeText","getState","setState","getDurationString","hours","Math","floor","minutes","getActionLabelHTML","actionStyle","display","alignItems","gap","dangerStyle","color","style","previousPageClickedHandler","previousCursors","pop","prevCursor","cursor","nextPageClickedHandler","createButtonClick","colSpan","i","editButtonClick","labelHTML","defaultSelectedOption","dropdownButtonText","withSearch","withChevron","connector","getConfigurations","resetSelectedConfiguration","deleteConfiguration"],"sources":["src/common/icons/icon.css?tag=google-logo-icon&encapsulation=scoped","src/common/icons/google-logo.tsx","src/common/icons/icon.css?tag=microsoft-logo-icon&encapsulation=scoped","src/common/icons/microsoft-logo.tsx","src/components/scheduler-editor/nylas-editor-tabs/tab-contents.tsx","src/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.scss?tag=nylas-editor-tabs&encapsulation=scoped","src/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.tsx","src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.scss?tag=nylas-list-configurations&encapsulation=shadow","src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'google-logo-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class GoogleLogoIcon {\n @Prop() width: string = '24';\n @Prop() height: string = '24';\n\n render() {\n // Spam icon svg\n return (\n <svg width={this.width} height={this.height} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_959_12452)\">\n <path\n d=\"M23.745 12.27C23.745 11.48 23.675 10.73 23.555 10H12.255V14.51H18.725C18.435 15.99 17.585 17.24 16.325 18.09V21.09H20.185C22.445 19 23.745 15.92 23.745 12.27Z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12.255 24C15.495 24 18.205 22.92 20.185 21.09L16.325 18.09C15.245 18.81 13.875 19.25 12.255 19.25C9.12504 19.25 6.47505 17.14 5.52505 14.29H1.54504V17.38C3.51504 21.3 7.56504 24 12.255 24Z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M5.52501 14.2901C5.27501 13.5701 5.145 12.8001 5.145 12.0001C5.145 11.2001 5.28501 10.4301 5.52501 9.71012V6.62012H1.545C0.725004 8.24012 0.255005 10.0601 0.255005 12.0001C0.255005 13.9401 0.725004 15.7601 1.545 17.3801L5.52501 14.2901Z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12.255 4.75C14.025 4.75 15.605 5.36 16.855 6.55L20.275 3.13C18.205 1.19 15.495 0 12.255 0C7.56504 0 3.51504 2.7 1.54504 6.62L5.52505 9.71C6.47505 6.86 9.12504 4.75 12.255 4.75Z\"\n fill=\"#EA4335\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_959_12452\">\n <rect width={24} height={24} fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n }\n}\n",":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'microsoft-logo-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class MicrosoftLogoIcon {\n @Prop() width: string = '22';\n @Prop() height: string = '22';\n\n render() {\n // Spam icon svg\n return (\n <svg width={this.width} height={this.height} viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0.043457 0.043457H10.4782V10.4782H0.043457V0.043457Z\" fill=\"#F35325\" />\n <path d=\"M11.5217 0.043457H21.9565V10.4782H11.5217V0.043457Z\" fill=\"#81BC06\" />\n <path d=\"M0.043457 11.5217H10.4782V21.9565H0.043457V11.5217Z\" fill=\"#05A6F0\" />\n <path d=\"M11.5217 11.5217H21.9565V21.9565H11.5217V11.5217Z\" fill=\"#FFBA08\" />\n </svg>\n );\n }\n}\n","import { Fragment, h } from '@stencil/core';\n\nexport enum Tab {\n EventInfo = 'eventInfo',\n Availability = 'availability',\n BookingOptions = 'bookingOptions',\n Communications = 'communications',\n Participants = 'participants',\n BookingForm = 'bookingForm',\n PageStyles = 'pageStyles',\n}\n\nexport type TabContentsProps = {\n id: string;\n formState: any;\n activeTab: Tab;\n calendars?: any[];\n currentUser?: any;\n};\n\nexport default function TabContents({ id, formState, activeTab }: TabContentsProps, children: any) {\n return (\n <Fragment>\n <div key={`event-info-${id}`} class={{ hide: activeTab !== Tab.EventInfo }}>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title name=\"title\" exportparts=\"net, net__title, net__dropdown-content\" />\n <nylas-event-duration\n name=\"duration\"\n exportparts=\"ned, ned__dropdown, ned__dropdown-button, ned__dropdown-content, ned__input_dropdown, ned__input_dropdown-input, ned__input_dropdown-content\"\n />\n <nylas-event-location name=\"location\" exportparts=\"nel, nel__location, nel__dropdown, nel__dropdown-button, nel__dropdown-content\" />\n <nylas-event-description name=\"description\" exportparts=\"nedesc, nedesc__textarea\" />\n </div>\n </nylas-event-info>\n </div>\n <div key={`availability-${id}`} class={{ hide: activeTab !== Tab.Availability }}>\n <nylas-participant-booking-calendars participants={formState.participants} name=\"participant-booking-calendars\" />\n <nylas-connected-calendars participants={formState.participants} name=\"connected-calendars\" />\n <nylas-availability-picker\n name=\"availability\"\n exportparts={\n 'nap__header, nap__select-timezone, nap__select-timezone-button, nap__select-timezone-dropdown-content, nap__availability, nap__day, nap__time-ranges, nap__time-range, nap__add-time-range, nap__time-picker-container, nap__time-picker-input, nap__time-picker-times'\n }\n />\n </div>\n <div key={`booking-options-${id}`} class={{ hide: activeTab !== Tab.BookingOptions }}>\n <nylas-scheduling-method\n name=\"availability-method\"\n readOnly={true}\n exportparts=\"nsm, nsm__header, nsm__input-label, nsm__dropdown, nsm__dropdown-button, nsm__dropdown-content\"\n />\n <nylas-custom-booking-flow>\n <div slot=\"inputs\">\n <nylas-booking-confirmation-type name=\"confirmation-type\" exportparts={'nbct, nbct__header, nbct__dropdown, nbct__dropdown-button, nbct__dropdown-content'} />\n <nylas-booking-confirmation-redirect\n name=\"confirmation-redirect\"\n exportparts={'nbcr, nbcr__header, nbcr__dropdown, nbcr__dropdown-button, nbcr__dropdown-content, nbcr__input-textfield'}\n />\n </div>\n </nylas-custom-booking-flow>\n <nylas-buffer-time\n name=\"buffer-time\"\n exportparts={\n 'nbt, nbt__header, nbt__body, nbt__dropdown-before, nbt__dropdown-button-before, nbt__dropdown-content-before, nbt__dropdown-after, nbt__dropdown-button-after, nbt__dropdown-content-after, nbt__preview'\n }\n />\n <nylas-event-limits>\n <div slot=\"inputs\">\n <nylas-min-booking-notice\n name=\"min-booking-notice\"\n exportparts=\"nmbn, nmbn__number-dropdown, nmbn__number-dropdown-button, nmbn__number-dropdown-content, nmbn__period-dropdown, nmbn__period-dropdown-button, nmbn__period-dropdown-content\"\n />\n <nylas-limit-future-bookings\n name=\"limit-future-bookings\"\n exportparts=\"nlfb, nlfb__number-dropdown, nlfb__number-dropdown-button, nlfb__number-dropdown-content, nlfb__period-dropdown, nlfb__period-dropdown-button, nlfb__period-dropdown-content\"\n />\n <nylas-min-cancellation-notice\n name=\"min-cancellation-notice\"\n exportparts=\"nmcn, nmcn__number-dropdown, nmcn__number-dropdown-button, nmcn__number-dropdown-content, nmcn__period-dropdown, nmcn__period-dropdown-button, nmcn__period-dropdown-content\"\n />\n <nylas-cancellation-policy name=\"cancellation-policy\" exportparts=\"ncpolicy, ncpolicy__textarea\" />\n </div>\n </nylas-event-limits>\n <nylas-timeslot-interval name=\"timeslot-interval\" exportparts=\"nti, nti__header, nti__input-label, nti__dropdown, nti__dropdown-button, nti__dropdown-content\" />\n <nylas-customize-booking-settings\n name=\"customize-booking-settings\"\n exportparts=\"ncbs, ncbs__header, ncbs__settings, ncbs__settings-div, ncbs__additional_guests, ncbs__cancellation_options, ncbs__rescheduling_options\"\n />\n </div>\n <div key={`communications-${id}`} class={{ hide: activeTab !== Tab.Communications }}>\n <div class=\"tab-header\">\n <h3>Event communications</h3>\n <p>Set up automatic confirmation emails.</p>\n </div>\n <nylas-confirmation-email\n name=\"confirmation-email-template\"\n exportparts={\n 'nce, nce__tab-heading, nce__header, nce__body, nce__confirmation-email-toggle--container, nce__summary, nce__reminder-input_dropdown, nce__reminder-input_dropdown-input, nce__reminder-input_dropdown-content'\n }\n />\n {/* <nylas-reminder-emails\n name=\"reminder-emails\"\n exportparts={\n 'nre, nre__tab-heading, nre__header, nre__body, nre__confirmation-email-toggle--container, nre__summary, nre__reminder-input_dropdown, nre__reminder-input_dropdown-input, nre__reminder-input_dropdown-content'\n }\n /> */}\n </div>\n <div key={`participants-${id}`} class={{ hide: activeTab !== Tab.Participants }}>\n <nylas-additional-participants\n name=\"participants\"\n exportparts=\"nap__title, nap__subtitle, nap__content, nap__input_group, nap__input_wrapper, nap__input, nap__remove-participant\"\n />\n <nylas-participants-custom-availability\n participants={formState.participants}\n name=\"participant-custom-availability\"\n exportparts=\"npca, npca__header, npca__content, npca__participant-container, npca__participant-title, npca__participant-toggle--container, npca__toggle-label, npca__toggle-input, npca__toggle-slider\"\n />\n </div>\n <div key={`page-styles-${id}`} class={{ hide: activeTab !== Tab.PageStyles }}>\n <nylas-custom-event-slug name=\"custom-event-slug\" exportparts=\"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield\" />\n <nylas-page-name name=\"page-name\" exportparts=\"npn, npn__body, npn__header, npn__drawer-toggle--container, npn__input-textfield\" />\n <nylas-page-styling\n name=\"page-styling\"\n exportparts=\"nps, nps__header, nps__drawer-toggle--container, nps__body, nps__title-input-textfield, nps__company-logo-input-textfield, nps__color-picker, nps__color-picker-button, nps__color-picker-button-label, nps__color-picker-selected-label, nps__submit-button-label-input-textfield, nps__message-textarea\"\n >\n {children}\n </nylas-page-styling>\n </div>\n <div key={`booking-form-${id}`} class={{ hide: activeTab !== Tab.BookingForm }}>\n <nylas-booking-form-config name=\"additional-fields\" />\n </div>\n </Fragment>\n );\n}\n","@import '../../../common/styles/variables.scss';\n@import '../../../common/mixins/buttons.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.scheduler-editor {\n display: flex;\n flex-direction: column;\n height: inherit;\n\n .form-contents {\n height: calc(100% - 80px);\n display: grid;\n grid-template-columns: minmax(224px, 25%) 1fr;\n\n @media #{$mobile} {\n display: table-column-group;\n height: auto;\n }\n\n .tabs {\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--nylas-base-200);\n\n @media #{$mobile} {\n border-right: none;\n }\n\n background-color: var(--nylas-base-25);\n\n .tab {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 1rem;\n color: var(--nylas-base-900);\n background: var(--nylas-base-0);\n border: none;\n height: 56px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n font-weight: 500;\n line-height: 24px;\n cursor: pointer;\n\n &:not(:first-of-type) {\n margin-top: 0.25rem;\n }\n\n &:last-of-type {\n margin-bottom: 0.25rem;\n }\n\n &.active {\n font-weight: 600;\n background: var(--nylas-base-0);\n color: var(--nylas-primary);\n border-left: 4px solid var(--nylas-primary);\n box-shadow: 0px 1px 2px 0px #0000000f;\n box-shadow: 0px 1px 3px 0px #0000001a;\n }\n\n &.hide {\n display: none;\n }\n }\n }\n\n .tab-content {\n max-width: 692px;\n overflow-y: auto;\n overflow-x: hidden;\n\n .hide {\n display: none;\n }\n\n nylas-event-info,\n nylas-event-limits {\n width: inherit;\n\n div[slot='inputs'] {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n }\n\n .tab-header {\n display: flex;\n flex-direction: column;\n margin: 1rem 1rem 0.5rem;\n row-gap: 4px;\n\n h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n }\n }\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n min-height: 80px;\n padding: 0 1rem;\n border-top: 1px solid var(--nylas-base-200);\n\n @media #{$mobile} {\n flex-direction: column;\n height: auto;\n }\n\n .preview {\n @media #{$mobile} {\n margin-top: 1rem;\n width: 100%;\n }\n }\n\n .buttons {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n justify-self: flex-end;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column-reverse;\n width: 100%;\n }\n\n p {\n max-width: 524px;\n\n &.unsaved-changes {\n color: var(--nylas-base-600);\n }\n\n &.saved-changes {\n color: var(--nylas-success);\n }\n\n &.error {\n color: var(--nylas-error);\n }\n\n &.error-full-width {\n max-width: 660px;\n }\n }\n\n button-component {\n @media #{$mobile} {\n width: 100%;\n }\n }\n\n button {\n @include primary-button;\n width: 148px;\n\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n }\n }\n }\n}\n\nbutton-component#report-issue {\n width: auto;\n}\n\nnylas-feedback-form {\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n border-radius: inherit;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, mergeDeep, parsePreviewLink } from '@/utils/utils';\nimport {\n AdditionalFields,\n Appearance,\n AvailabilityMethod,\n BookingType,\n Calendar,\n Conference,\n Configuration,\n EmailTemplate,\n EventReminder,\n OpenHours,\n Participant,\n} from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport TabContents, { Tab } from './tab-contents';\nimport { User } from '@/common/nylas-api-request';\nimport { DEFAULT_OPEN_HOURS } from '@/common/constants';\nimport { DataResponseReturnType } from '@/common/types';\nimport * as Sentry from '@sentry/browser';\n\ntype SchedulerEventDetail = {\n config: Partial<Configuration>;\n action: 'create' | 'edit';\n resetLoadingState?: (e: CustomEvent) => void;\n setError?: (error: Error) => void;\n};\n\n/**\n * The nylas-editor-tabs component provides the user interface for managing editor tabs within the scheduler editor.\n * It is primarily used to control the edit mode of the scheduler editor, and it is rendered automatically by the\n * parent component, nylas-scheduler-editor, during editing. There is no need to interact with this component directly\n * or set any props manually, as its behavior is fully managed by the parent component.\n *\n * @part nap__title - [nylas-additional-participants] The title of the component.\n * @part nap__subtitle - [nylas-additional-participants] The subtitle of the component.\n * @part nap__content - [nylas-additional-participants] The content of the component.\n * @part nap__input - [nylas-additional-participants] The input of the component.\n * @part nap__remove-participant - [nylas-additional-participants] The remove participant button of the component.\n * @part nap__add-participant - [nylas-additional-participants] The add participant button of the component.\n * @part nap__header - [nylas-availability-picker] The header of the availability picker\n * @part nap__select-timezone - [nylas-availability-picker] The timezone selection container\n * @part nap__select-timezone-button -[nylas-availability-picker] The timezone selection button\n * @part nap__select-timezone-dropdown-content -[nylas-availability-picker] The timezone selection dropdown content\n * @part nap__availability - [nylas-availability-picker] The availability container\n * @part nap__day - [nylas-availability-picker] The day container\n * @part nap__time-ranges - [nylas-availability-picker] The time ranges container\n * @part nap__time-range - [nylas-availability-picker] The time range container\n * @part nap__add-time-range - [nylas-availability-picker] The add time range button\n * @part nap__time-picker-container -[nylas-availability-picker] The time picker container\n * @part nap__time-picker-input - [nylas-availability-picker] The time picker input\n * @part nap__time-picker-times - [nylas-availability-picker] The time picker times\n * @part nbcp - [nylas-booking-calendar-picker] The booking calendar picker container\n * @part nbcp__header - [nylas-booking-calendar-picker] The header of the booking calendar picker\n * @part nbcp__input-label - [nylas-booking-calendar-picker] The input label of the booking calendar picker\n * @part nbcp__dropdown - [nylas-booking-calendar-picker] The dropdown container\n * @part nbcp__dropdown-button - [nylas-booking-calendar-picker] The dropdown button\n * @part nbcp__dropdown-content - [nylas-booking-calendar-picker] The dropdown content\n * @part nbt - [nylas-buffer-time] The buffer time container\n * @part nbt__header - [nylas-buffer-time] The header of the buffer time\n * @part nbt__body - [nylas-buffer-time] The body of the buffer time\n * @part nbt__dropdown-before - [nylas-buffer-time] The before buffer dropdown container\n * @part nbt__dropdown-button-before - [nylas-buffer-time] The before buffer dropdown button\n * @part nbt__dropdown-content-before - [nylas-buffer-time] The before buffer dropdown content\n * @part nbt__dropdown-after - [nylas-buffer-time] The after buffer dropdown container\n * @part nbt__dropdown-button-after - [nylas-buffer-time] The after buffer dropdown button\n * @part nbt__dropdown-content-after - [nylas-buffer-time] The after buffer dropdown content\n * @part nbt__preview - [nylas-buffer-time] The buffer time preview\n * @part ncp - [nylas-calendar-picker] The calendar picker container\n * @part ncp__header - [nylas-calendar-picker] The header of the calendar picker\n * @part ncp__dropdown - [nylas-calendar-picker] The dropdown container\n * @part ncp__dropdown-button - [nylas-calendar-picker] The dropdown button\n * @part ncp__dropdown-content - [nylas-calendar-picker] The dropdown content\n * @part ncbf - [nylas-custom-booking-flow] The custom booking flow container\n * @part ncbf__header - [nylas-custom-booking-flow] The header of the custom booking flow\n * @part ncbf__dropdown - [nylas-custom-booking-flow] The dropdown container\n * @part ncbf__dropdown-button - [nylas-custom-booking-flow] The dropdown button\n * @part ncbf__dropdown-content - [nylas-custom-booking-flow] The dropdown content\n * @part nedesc - [nylas-event-description] The event description container\n * @part nedesc__textarea - [nylas-event-description] The event description textarea\n * @part ned - [nylas-event-duration] The event duration container\n * @part ned__dropdown - [nylas-event-duration] The dropdown container for the duration increment\n * @part ned__dropdown-button - [nylas-event-duration] The dropdown button for the duration increment\n * @part ned__dropdown-content - [nylas-event-duration] The dropdown content for the duration increment\n * @part ned__input_dropdown - [nylas-event-duration] The input dropdown container for the duration minutes\n * @part ned__input_dropdown-input - [nylas-event-duration] The input for the duration minutes\n * @part ned__input_dropdown-content - [nylas-event-duration] The dropdown content for the input duration minutes\n * @part net - [nylas-event-title] The event title container\n * @part net__title - [nylas-event-title] The event title input\n * @part net__dropdown-content - [nylas-event-title] The token options container\n * @part nlfb - [nylas-limit-future-bookings] The limit future bookings container\n * @part nlfb__number-dropdown - [nylas-limit-future-bookings] The number dropdown container\n * @part nlfb__number-dropdown-button - [nylas-limit-future-bookings] The number dropdown button\n * @part nlfb__number-dropdown-content - [nylas-limit-future-bookings] The number dropdown content\n * @part nlfb__period-dropdown - [nylas-limit-future-bookings] The period dropdown container\n * @part nlfb__period-dropdown-button - [nylas-limit-future-bookings] The period dropdown button\n * @part nlfb__period-dropdown-content - [nylas-limit-future-bookings] The period dropdown content\n * @part nel - [nylas-event-location] The event location container\n * @part nel__location - [nylas-event-location] The event location input\n * @part nel__dropdown - [nylas-event-location] The dropdown container\n * @part nel__dropdown-button - [nylas-event-location] The dropdown button\n * @part nel__dropdown-content - [nylas-event-location] The dropdown content\n * @part nmbn - [nylas-min-booking-notice] The minimum booking notice container\n * @part nmbn__number-dropdown - [nylas-min-booking-notice] The number dropdown container\n * @part nmbn__number-dropdown-button - [nylas-min-booking-notice] The number dropdown button\n * @part nmbn__number-dropdown-content -[nylas-min-booking-notice] The number dropdown content\n * @part nmbn__period-dropdown - [nylas-min-booking-notice] The period dropdown container\n * @part nmbn__period-dropdown-button - [nylas-min-booking-notice] The period dropdown button\n * @part nmbn__period-dropdown-content - [nylas-min-booking-notice] The period dropdown content\n * @part nmcn - [nylas-min-cancellation-notice] The minimum cancellation notice container\n * @part nmcn__number-dropdown - [nylas-min-cancellation-notice] The number dropdown container\n * @part nmcn__number-dropdown-button - [nylas-min-cancellation-notice] The number dropdown button\n * @part nmcn__number-dropdown-content - [nylas-min-cancellation-notice] The number dropdown content\n * @part nmcn__period-dropdown - [nylas-min-cancellation-notice] The period dropdown container\n * @part nmcn__period-dropdown-button - [nylas-min-cancellation-notice] The period dropdown button\n * @part nmcn__period-dropdown-content - [nylas-min-cancellation-notice] The period dropdown content\n * @part ncpolicy - [nylas-cancellation-policy] The cancellation policy container\n * @part ncpolicy__textarea - [nylas-cancellation-policy] The cancellation policy textarea\n * @part nti - [nylas-timeslot-interval] The timeslot interval container\n * @part nti__header - [nylas-timeslot-interval] The header of the timeslot interval picker\n * @part nti__input-label - [nylas-timeslot-interval] The input label of the timeslot interval picker\n * @part nti__dropdown - [nylas-timeslot-interval] The dropdown container\n * @part nti__dropdown-button - [nylas-timeslot-interval] The dropdown button\n * @part nti__dropdown-content - [nylas-timeslot-interval] The dropdown content\n * @part npca - [nylas-participants-custom-availability] The participants custom availability container\n * @part npca__header - [nylas-participants-custom-availability] The header of the participants custom availability\n * @part npca__content - [nylas-participants-custom-availability] The content of the participants custom availability\n * @part npca__participant-container - [nylas-participants-custom-availability] The participant container\n * @part npca__participant-title - [nylas-participants-custom-availability] The participant title\n * @part npca__participant-toggle--container - [nylas-participants-custom-availability] The participant toggle container\n * @part npca__toggle-label - [nylas-participants-custom-availability] The toggle label\n * @part npca__toggle-input - [nylas-participants-custom-availability] The toggle input\n * @part npca__toggle-slider - [nylas-participants-custom-availability] The toggle slider\n * @part ncbs - [nylas-customize-booking-settings] The booking calendar picker container\n * @part ncbs__header - [nylas-customize-booking-settings] The header of the booking calendar picker\n * @part ncbs__settings - [nylas-customize-booking-settings] The settings container\n * @part ncbs__settings-div - [nylas-customize-booking-settings] The div inside the settings container that contains the checkbox and tooltip for each setting\n * @part ncbs__additional_guests - [nylas-customize-booking-settings] The additional guests setting\n * @part ncbs__cancellation_options - [nylas-customize-booking-settings] The cancellation options setting\n * @part ncbs__rescheduling_options - [nylas-customize-booking-settings] The rescheduling options setting\n * @part nsm - [nylas-scheduling-method] The booking calendar picker container\n * @part nsm__header - [nylas-scheduling-method] The header of the booking calendar picker\n * @part nsm__input-label - [nylas-scheduling-method] The input label of the booking calendar picker\n * @part nsm__dropdown - [nylas-scheduling-method] The dropdown container\n * @part nsm__dropdown-button - [nylas-scheduling-method] The dropdown button\n * @part nsm__dropdown-content - [nylas-scheduling-method] The dropdown content\n * @part npn - The nylas-page-name container\n * @part npn__body - The body of the event communication section\n * @part npn__header - The header of the event communication section\n * @part npn__drawer-toggle--container - The card's drawer toggle container\n * @part npn__input-textfield - The page name textfield\n */\n@Component({\n tag: 'nylas-editor-tabs',\n styleUrl: 'nylas-editor-tabs.scss',\n scoped: true,\n})\nexport class NylasEditorTabs {\n /**\n * The form reference to access the form data.\n */\n private formRef!: HTMLFormElement;\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasEditorTabsElement;\n /**\n * The list of calendars to use in the editor when configuring availability.\n */\n @Prop() calendars?: Calendar[];\n /**\n * The selected configuration to use in the editor when editing an existing configuration or creating a new one.\n */\n @Prop() selectedConfiguration?: Configuration;\n\n /**\n * The list of configurations\n */\n @Prop() configurations?: Configuration[];\n\n /**\n * The current logged in user.\n */\n @Prop() currentUser?: User;\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use a placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n /**\n * The mode of the editor.\n * - `app`: The editor is used as a standalone app.\n * - `composable`: The editor is used as a composable component.\n */\n @Prop() mode?: 'app' | 'composable' = 'app';\n /**\n * This prop is passed down by the parent component.\n * It is an optional prop is used to hide tabs in the editor. Available tabs are:\n * eventInfo, availability, participants, bookingOptions, bookingForm\n */\n @Prop() hideEditorTabs?: Tab[] = [];\n /**\n * This prop is passed down by the parent component to enable or disable user feedback.\n */\n @Prop() enableUserFeedback?: boolean = true;\n\n /**\n * The action to perform in the editor.\n * - `create`: Create a new configuration.\n * - `edit`: Edit an existing configuration.\n */\n @State() action: 'create' | 'edit' = 'create';\n /**\n * The state for showing the feedback modal.\n */\n @State() showFeedbackModal: boolean = false;\n /**\n * The active tab in the editor.\n */\n @State() activeTab: Tab = Tab.EventInfo;\n /**\n * The loading state of the editor.\n */\n @State() isLoading: boolean = false;\n /**\n * The unsaved changes state of the editor.\n */\n @State() hasUnsavedChanges: boolean = false;\n /**\n * The changes saved state of the editor.\n */\n @State() changesSaved: boolean = false;\n /**\n * The form state of the editor.\n */\n @State() formState: Partial<{\n title: string;\n description: string;\n duration: string;\n availability?: {\n timezone: string;\n openHours?: OpenHours[];\n };\n additionalFields?: Record<string, AdditionalFields>;\n calendarIds: string[];\n participantCalendars?: { [key: string]: string[] };\n participants?: Participant[];\n participantOpenHours?: { [key: string]: OpenHours[] };\n participantBookingCalendars?: { [key: string]: string };\n bookingCalendar?: string;\n location?: string;\n conferencing?: Conference;\n bookingType?: string;\n buffer?: { before: number; after: number };\n cancellationPolicy?: string;\n availableDaysInFuture?: number;\n minCancellationNotice?: number;\n minBookingNotice?: number;\n timeslotInterval?: {\n interval?: number;\n roundTo?: number;\n };\n additionalGuestsHidden?: boolean;\n hideCancellationOptions?: boolean;\n hideReschedulingOptions?: boolean;\n reminders?: EventReminder[];\n emailTemplate?: EmailTemplate;\n redirectUrl?: string;\n availabilityMethod?: AvailabilityMethod;\n slug: string;\n appearance: Appearance;\n name: string;\n }> = {};\n /**\n * The error state of the editor.\n */\n @State() error?: string = '';\n /**\n * Event emitted when the configuration is created/updated (after the request is complete). This fires for both create and edit actions.\n */\n @Event() schedulerConfigChanged!: EventEmitter<SchedulerEventDetail>;\n /**\n * Event emitted when the user clicks the cancel button.\n */\n @Event() cancelButtonClick!: EventEmitter<void>;\n /**\n * Event emitted on form submission.\n */\n @Event({ bubbles: true, cancelable: true }) formSubmitted!: EventEmitter<void>;\n /**\n * Event emitted when the user clicks the preview button.\n */\n @Event() previewButtonClicked!: EventEmitter<HTMLNylasEditorTabsElement>;\n /**\n *\n * Event emitted when the value of a form field changes.\n */\n @Event() schedulerEditorFormUpdated!: EventEmitter<{ value: string; name: string }>;\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n debug('[nylas-editor-tabs]', 'configChangedHandler', newConfig, this.selectedConfiguration);\n this.formState = {\n ...this.getFormStateFromConfig(newConfig),\n };\n if (newConfig?.id) {\n this.action = 'edit';\n } else {\n this.action = 'create';\n }\n }\n\n @Watch('currentUser')\n userChangedHandler(newUser: User) {\n // Actively watch for changes in the current user to update the form state.\n debug('[nylas-editor-tabs]', 'userChangedHandler', newUser);\n if (newUser) {\n this.formState = {\n ...this.getFormStateFromConfig(this.selectedConfiguration),\n };\n }\n }\n\n connectedCallback() {\n debug('[nylas-editor-tabs]', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('[nylas-editor-tabs]', 'componentWillLoad');\n this.formState = this.getFormStateFromConfig(this.selectedConfiguration);\n }\n\n componentDidLoad() {\n debug('[nylas-editor-tabs]', 'componentDidLoad');\n if (this.enableUserFeedback && !Sentry.isInitialized()) {\n Sentry.init({\n dsn: 'https://9d5731f1c77ca84c9ed3fb9b3ccf7ee1@o74852.ingest.us.sentry.io/4507889638178816',\n release: process.env.PACKAGE_VERSION,\n integrations: integrations => [\n ...integrations.filter(_integration => false), // Removes default integrations (including Breadcrumbs)\n Sentry.feedbackIntegration({\n colorScheme: 'system',\n autoInject: false,\n }),\n ],\n // Disable all other event capture\n autoSessionTracking: false, // Disable session tracking\n beforeSend: () => null, // Prevents error events from being sent\n });\n }\n if (this.selectedConfiguration?.id) {\n this.configChangedHandler(this.selectedConfiguration);\n }\n const firstVisibleTab = (this.host.querySelector('button.tab:not(.hide)') as HTMLButtonElement)?.name as Tab;\n\n if (firstVisibleTab) {\n this.activeTab = firstVisibleTab;\n }\n }\n\n disconnectedCallback() {\n debug('[nylas-editor-tabs]', 'disconnectedCallback');\n }\n\n @Listen('valueChanged')\n handleValueChanged(event: CustomEvent) {\n debug('[nylas-editor-tabs]', 'handleValueChanged', event);\n const { name, value } = event.detail;\n this.setFormState(value, name);\n this.formState = { ...this.formState };\n this.hasUnsavedChanges = true;\n this.error = '';\n this.schedulerEditorFormUpdated.emit({\n value: event.detail.value,\n name: event.detail.name,\n });\n }\n\n @Listen('feedbackModalClosed')\n feedbackModalClosedHandler() {\n this.showFeedbackModal = false;\n }\n\n @Listen('feedbackSubmitted')\n feedbackSubmittedHandler(event: CustomEvent<{ feedback: string }>) {\n const eventId = Sentry.captureMessage('Scheduler Editor User Feedback');\n const feedback = {\n eventId: eventId,\n message: event.detail.feedback,\n };\n\n Sentry.captureFeedback(feedback, {\n includeReplay: true,\n captureContext: {\n tags: {\n 'nylas-web-element': 'nylas-scheduler-editor',\n 'nylas-web-element-version': process.env.PACKAGE_VERSION,\n },\n extra: {\n configId: this.selectedConfiguration?.id,\n slug: this.selectedConfiguration?.slug,\n },\n },\n });\n this.showFeedbackModal = false;\n }\n\n getFormStateFromConfig(config?: Configuration) {\n let organizerParticipant = config?.participants?.find(p => p.is_organizer);\n // If the config is round robin, there is no organizer set in the config, in that case flag the current user as the organizer.\n if (!organizerParticipant && config?.availability?.availability_rules?.availability_method !== 'collective') {\n organizerParticipant = config?.participants?.find(p => p.email === this.currentUser?.email);\n if (organizerParticipant) {\n organizerParticipant.is_organizer = true;\n }\n }\n if (config?.appearance) {\n console.info(\n 'Appearance settings have been returned from the given configuration; please remember to grab them from the configSettingsLoaded event and apply them as desired.',\n );\n }\n return {\n title: config?.event_booking?.title ?? '',\n description: config?.event_booking?.description ?? '',\n duration: config?.availability?.duration_minutes?.toString() ?? '30',\n availability: {\n timezone: config?.event_booking?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone,\n openHours: config?.availability?.availability_rules?.default_open_hours ?? DEFAULT_OPEN_HOURS,\n },\n additionalFields: config?.scheduler?.additional_fields ?? {},\n conferencing: config?.event_booking?.conferencing ?? {},\n calendarIds: organizerParticipant?.availability?.calendar_ids ?? [],\n participants: config?.participants ?? [],\n bookingCalendar: organizerParticipant?.booking?.calendar_id ?? organizerParticipant?.email ?? '',\n location: config?.event_booking?.location ?? '',\n bookingType: config?.event_booking?.booking_type ?? 'booking',\n buffer: config?.availability?.availability_rules?.buffer ?? { before: 0, after: 0 },\n cancellationPolicy: config?.scheduler?.cancellation_policy ?? '',\n availableDaysInFuture: config?.scheduler?.available_days_in_future ?? 30,\n minCancellationNotice: config?.scheduler?.min_cancellation_notice ?? 0,\n minBookingNotice: config?.scheduler?.min_booking_notice ?? 60,\n timeslotInterval: {\n interval: config?.availability?.interval_minutes ?? config?.availability?.duration_minutes,\n roundTo: config?.availability?.round_to,\n },\n additionalGuestsHidden: config?.scheduler?.hide_additional_guests ?? false,\n hideCancellationOptions: config?.scheduler?.hide_cancellation_options ?? false,\n hideReschedulingOptions: config?.scheduler?.hide_rescheduling_options ?? false,\n participantBookingCalendars:\n config?.participants?.reduce((acc, p) => {\n if (p.booking?.calendar_id) {\n acc[p.email] = p.booking?.calendar_id;\n }\n return acc;\n }) ?? {},\n participantCalendars:\n config?.participants?.reduce((acc, p) => {\n acc[p.email] = p.availability?.calendar_ids;\n return acc;\n }, {}) ?? {},\n reminders: config?.event_booking?.reminders,\n emailTemplate: config?.scheduler?.email_template,\n redirectUrl: config?.scheduler?.confirmation_redirect_url,\n slug: config?.slug,\n appearance: config?.appearance,\n name: config?.name,\n };\n }\n\n setFormState(value, key) {\n switch (key) {\n case 'title':\n this.formState.title = value.toString();\n break;\n case 'description':\n this.formState.description = value.toString();\n break;\n case 'duration':\n this.formState.duration = value.toString();\n break;\n case 'availability':\n this.formState.availability = JSON.parse(value.toString());\n break;\n case 'participants':\n this.formState.participants = JSON.parse(value.toString());\n break;\n case 'booking-calendar':\n this.formState.bookingCalendar = value.toString();\n break;\n case 'participant-booking-calendars':\n this.formState.participantBookingCalendars = JSON.parse(value.toString());\n break;\n case 'location':\n this.formState.location = value.toString();\n break;\n case 'conference':\n this.formState.conferencing = JSON.parse(value.toString());\n break;\n case 'confirmation-type':\n this.formState.bookingType = value.toString();\n break;\n case 'buffer-time':\n this.formState.buffer = JSON.parse(value.toString());\n break;\n case 'limit-future-bookings':\n this.formState.availableDaysInFuture = parseInt(value.toString());\n break;\n case 'min-cancellation-notice':\n this.formState.minCancellationNotice = parseInt(value.toString());\n break;\n case 'min-booking-notice':\n this.formState.minBookingNotice = parseInt(value.toString());\n break;\n case 'cancellation-policy':\n this.formState.cancellationPolicy = value.toString();\n break;\n case 'timeslot-interval':\n this.formState.timeslotInterval = JSON.parse(value.toString());\n break;\n case 'customize-booking-settings':\n const settings = JSON.parse(value.toString());\n this.formState.additionalGuestsHidden = settings.additionalGuestsHidden;\n this.formState.hideCancellationOptions = settings.hideCancellationOptions;\n this.formState.hideReschedulingOptions = settings.hideReschedulingOptions;\n break;\n case 'participant-custom-availability':\n const participantOpenHours = JSON.parse(value.toString());\n this.formState.participantOpenHours = participantOpenHours;\n break;\n case 'additional-fields':\n this.formState.additionalFields = value;\n break;\n case 'connected-calendars':\n this.formState.participantCalendars = JSON.parse(value.toString());\n break;\n case 'confirmation-email-template':\n this.formState.emailTemplate = JSON.parse(value.toString());\n break;\n case 'reminder-overrides':\n this.formState.reminders = JSON.parse(value.toString());\n break;\n case 'confirmation-redirect':\n this.formState.redirectUrl = value.toString();\n break;\n case 'availability-method':\n this.formState.availabilityMethod = value.toString();\n break;\n case 'custom-event-slug':\n this.formState.slug = JSON.parse(value.toString());\n break;\n case 'page-styling':\n this.formState.appearance = JSON.parse(value.toString());\n break;\n case 'page-name':\n this.formState.name = JSON.parse(value.toString());\n break;\n }\n this.schedulerEditorFormUpdated.emit({\n value,\n name: key,\n });\n }\n\n updateFormState() {\n const formData = new FormData(this.formRef);\n formData.forEach((value, key) => {\n this.setFormState(value, key);\n });\n\n this.formState = { ...this.formState };\n return this.formState;\n }\n\n setActiveTab(e: Event, tabName: Tab) {\n e.preventDefault();\n this.updateFormState();\n this.activeTab = tabName;\n }\n\n setError = (error: Error) => {\n this.error = error.message;\n };\n\n formSubmissionHandler = async (event: Event) => {\n event.preventDefault();\n const formEvent = await this.formSubmitted.emit();\n debug('[nylas-editor-tabs]', 'formSubmissionHandler', formEvent);\n const valid = this.formRef.checkValidity();\n if (!valid || formEvent.defaultPrevented) {\n this.error = this.formRef.validationMessage || 'Please fix the form errors.';\n return;\n }\n this.isLoading = true;\n this.hasUnsavedChanges = false;\n const formState = this.updateFormState();\n const {\n title,\n description,\n duration,\n availability,\n bookingCalendar,\n location,\n bookingType,\n buffer,\n availableDaysInFuture,\n minCancellationNotice,\n minBookingNotice,\n cancellationPolicy,\n timeslotInterval,\n additionalGuestsHidden,\n hideCancellationOptions,\n hideReschedulingOptions,\n participants,\n participantOpenHours,\n additionalFields,\n participantCalendars,\n conferencing,\n participantBookingCalendars,\n reminders,\n emailTemplate,\n redirectUrl,\n availabilityMethod,\n slug,\n appearance,\n name,\n } = formState;\n const organizer = this.selectedConfiguration?.participants?.find(p => p.is_organizer) || participants?.find(p => p.is_organizer);\n const organizerCalendars = participantCalendars && organizer?.email ? participantCalendars[organizer?.email] : [];\n const organizerBookingCalendar = organizer?.booking?.calendar_id || bookingCalendar;\n const durationMinutes = duration ? parseInt(duration) : 30;\n\n const participantsList =\n participants && participants?.length > 0\n ? participants\n : [\n {\n name: organizer?.name ?? this.currentUser?.name ?? '',\n email: organizer?.email ?? this.currentUser?.email ?? '',\n is_organizer: true,\n timezone: availability?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone,\n availability: {\n calendar_ids: organizerCalendars.length ? organizerCalendars : ['primary'],\n open_hours: [],\n },\n booking: {\n calendar_id: bookingCalendar && bookingCalendar !== '' ? bookingCalendar : 'primary',\n },\n },\n ];\n\n const configObject: Partial<Configuration> = {\n ...(this.selectedConfiguration?.id && { id: this.selectedConfiguration.id }),\n version: this.selectedConfiguration?.version ?? '1.0.0',\n slug: slug,\n name: name,\n availability: {\n duration_minutes: durationMinutes,\n interval_minutes: timeslotInterval?.interval ?? durationMinutes,\n round_to: timeslotInterval?.roundTo,\n availability_rules: {\n availability_method: availabilityMethod ? availabilityMethod : this.selectedConfiguration?.availability?.availability_rules?.availability_method ?? 'collective',\n buffer: buffer || { before: 0, after: 0 },\n default_open_hours: availability?.openHours ?? this.selectedConfiguration?.availability?.availability_rules?.default_open_hours ?? DEFAULT_OPEN_HOURS,\n round_robin_group_id: this.selectedConfiguration?.availability?.availability_rules?.round_robin_group_id ?? '',\n },\n },\n participants: [\n ...participantsList?.map(p => {\n if (p.is_organizer) {\n return {\n name: p.name ?? '',\n email: p.email,\n is_organizer: true,\n timezone: participantOpenHours?.[p.email]?.[0]?.timezone ?? p.availability?.open_hours?.[0]?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone,\n availability: {\n calendar_ids: participantCalendars?.[p.email] ? participantCalendars?.[p.email] : organizerCalendars?.length ? organizerCalendars : ['primary'],\n open_hours: participantOpenHours?.[p.email] ?? p.availability?.open_hours ?? [],\n },\n booking: {\n calendar_id: participantBookingCalendars?.[p.email] ? participantBookingCalendars?.[p.email] : organizerBookingCalendar ? organizerBookingCalendar : 'primary',\n },\n };\n }\n return {\n ...p,\n timezone: participantOpenHours?.[p.email]?.[0]?.timezone ?? p.availability?.open_hours?.[0]?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone,\n availability: p.availability\n ? {\n calendar_ids: participantCalendars?.[p.email] ?? p.availability?.calendar_ids ?? ['primary'],\n open_hours: participantOpenHours?.[p.email] ?? p.availability?.open_hours ?? [],\n }\n : undefined,\n booking: participantBookingCalendars?.[p.email] ? { calendar_id: participantBookingCalendars?.[p.email] } : p?.booking ?? undefined,\n };\n }),\n ],\n event_booking: {\n title: title?.toString() ?? '',\n description: description?.toString() ?? '',\n location: location?.toString() ?? '',\n booking_type: (bookingType?.toString() as BookingType) ?? 'booking',\n timezone: availability?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone,\n conferencing: conferencing,\n reminders: reminders,\n },\n scheduler: {\n cancellation_policy: cancellationPolicy ?? '',\n available_days_in_future: availableDaysInFuture ?? 30,\n min_cancellation_notice: minCancellationNotice ?? 0,\n min_booking_notice: minBookingNotice ?? 60,\n hide_additional_guests: additionalGuestsHidden ?? false,\n hide_cancellation_options: hideCancellationOptions ?? false,\n hide_rescheduling_options: hideReschedulingOptions ?? false,\n additional_fields: additionalFields,\n email_template: emailTemplate,\n confirmation_redirect_url: redirectUrl,\n },\n appearance: appearance,\n };\n\n const configObjectWithDeveloperSettings = mergeDeep(configObject, this.selectedConfiguration || {});\n\n const finalConfig = this.action === 'create' ? configObjectWithDeveloperSettings : configObject;\n\n if (this.isConfigRoundRobin(finalConfig)) {\n // If the config is round robin, no participant should be flagged as the organizer\n finalConfig.participants = finalConfig.participants.map(p => ({ ...p, is_organizer: undefined }));\n }\n const resetLoadingState = (_e: CustomEvent) => {\n this.isLoading = false;\n this.changesSaved = true;\n setTimeout(() => {\n this.changesSaved = false;\n }, 5000);\n };\n\n // Check for client side errors using the selected config from the list configs (stored in API)\n const currentConfig = this.configurations?.find(c => c.id === this.selectedConfiguration?.id) || {};\n const hasError = this.checkForClientSideErrors(mergeDeep(finalConfig, currentConfig));\n\n if (hasError) {\n return;\n }\n this.schedulerConfigChanged.emit({ config: finalConfig, resetLoadingState, setError: this.setError, action: this.action });\n };\n\n isConfigRoundRobin = (config: Configuration) => {\n return config.availability?.availability_rules?.availability_method === 'max-availability' || config.availability?.availability_rules?.availability_method === 'max-fairness';\n };\n\n checkForClientSideErrors = config => {\n // Check additional Fields in config\n let hasError = false;\n let errorMessage = '';\n const additionalFields = config.scheduler?.additional_fields;\n const isOrganizerConfirmationType = config.event_booking?.booking_type === 'organizer-confirmation';\n const organizerConfirmationUrl = config.scheduler?.organizer_confirmation_url;\n if (additionalFields) {\n errorMessage = 'Booking form error: ';\n Object.entries(additionalFields).forEach(entry => {\n const field = entry[1] as AdditionalFields;\n if (field.label === '') {\n errorMessage += `Label is required for field of type ${field.type}.`;\n hasError = true;\n return;\n }\n if (field.options) {\n for (const option of field.options) {\n if (option === '') {\n errorMessage += `Empty option detected inside ${field.label} of type ${field.type}.`;\n hasError = true;\n break;\n }\n }\n }\n });\n }\n if (isOrganizerConfirmationType && !organizerConfirmationUrl) {\n errorMessage += 'Organizer confirmation URL is required when using organizer confirmation booking type.';\n hasError = true;\n }\n if (hasError) {\n this.isLoading = false;\n this.setError(new Error(errorMessage));\n }\n return hasError;\n };\n\n hideTab(tab: Tab) {\n return this.hideEditorTabs?.includes(tab) || false;\n }\n\n onFeedbackClick() {\n this.showFeedbackModal = true;\n }\n\n @RegisterComponent<NylasEditorTabs, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-editor-tabs',\n stateToProps: new Map([\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.currentUser', 'currentUser'],\n ['schedulerConfig.configurations', 'configurations'],\n ]),\n eventToProps: {\n schedulerConfigChanged: async (event: CustomEvent<SchedulerEventDetail>, nylasSchedulerConfigConnector: NylasSchedulerConfigConnector) => {\n const { resetLoadingState, setError, action, config } = event.detail;\n\n const checkForErrors = (response: DataResponseReturnType) => {\n const [data, error] = response;\n if (!data && error && setError) {\n setError(error as Error);\n }\n if (resetLoadingState) {\n resetLoadingState(event);\n }\n };\n\n // If we have an ID, we are updating an existing configuration\n if (action === 'edit') {\n const response = await nylasSchedulerConfigConnector.schedulerConfig.updateConfiguration(config);\n checkForErrors(response);\n } else {\n const response = await nylasSchedulerConfigConnector.schedulerConfig.createConfiguration(config);\n checkForErrors(response);\n }\n },\n cancelButtonClick: async (_, nylasSchedulerConfigConnector) => {\n nylasSchedulerConfigConnector.schedulerConfigStore.state.action = null;\n },\n previewButtonClicked: async (_, nylasSchedulerConfigConnector) => {\n debug('[nylas-editor-tabs]', 'previewButtonClicked', nylasSchedulerConfigConnector);\n },\n formSubmitted: async (_, nylasSchedulerConfigConnector) => {\n debug('[nylas-editor-tabs]', 'formSubmitted', nylasSchedulerConfigConnector);\n },\n schedulerEditorFormUpdated: async (event: CustomEvent<{ value: string; name: string }>, _nylasSchedulerConfigConnector) => {\n debug('[nylas-editor-tabs]', 'schedulerEditorFormUpdated', event);\n },\n },\n localPropsToProp: new Map([\n ['schedulerPreviewLink', 'schedulerPreviewLink'],\n ['enableUserFeedback', 'enableUserFeedback'],\n ['hideEditorTabs', 'hideEditorTabs'],\n ]),\n fireRegisterEvent: true,\n })\n render() {\n debug('[nylas-editor-tabs]', 'render', this.formState);\n // TODO: Remove this check when the feature is ready to be released\n // const showInDevelopmentTabs = localStorage.getItem('nylas') === 'Nylas Developer';\n\n return (\n <Host>\n <form onSubmit={this.formSubmissionHandler} class=\"scheduler-editor\" ref={el => (this.formRef = el as HTMLFormElement)} noValidate>\n {this.mode === 'app' ? (\n <div class=\"form-contents\">\n <div class=\"tabs\">\n <button\n name={Tab.EventInfo}\n class={{ tab: true, active: this.activeTab == Tab.EventInfo, hide: this.hideTab(Tab.EventInfo) }}\n part=\"editortab__event-info\"\n onClick={e => this.setActiveTab(e, Tab.EventInfo)}\n >\n <calendar-info-icon width=\"16\" height=\"16\" />\n Event info\n </button>\n <button\n name={Tab.Availability}\n class={{ tab: true, active: this.activeTab == Tab.Availability, hide: this.hideTab(Tab.Availability) }}\n part=\"editortab__availability\"\n onClick={e => this.setActiveTab(e, Tab.Availability)}\n >\n <calendar-patterns-icon width=\"16\" height=\"16\" />\n Availability\n </button>\n <button\n name={Tab.Participants}\n class={{ tab: true, active: this.activeTab == Tab.Participants, hide: this.hideTab(Tab.Participants) }}\n part=\"editortab__participants\"\n onClick={e => this.setActiveTab(e, Tab.Participants)}\n >\n <people-icon width=\"16\" height=\"16\" />\n Participants\n </button>\n <button\n name={Tab.BookingOptions}\n class={{ tab: true, active: this.activeTab == Tab.BookingOptions, hide: this.hideTab(Tab.BookingOptions) }}\n part=\"editortab__booking-options\"\n onClick={e => this.setActiveTab(e, Tab.BookingOptions)}\n >\n <flow-icon width=\"16\" height=\"16\" />\n Booking options\n </button>\n <button\n name={Tab.BookingForm}\n class={{ tab: true, active: this.activeTab == 'bookingForm', hide: this.hideTab(Tab.BookingForm) }}\n part=\"editortab__booking-form\"\n onClick={e => this.setActiveTab(e, Tab.BookingForm)}\n >\n {this.activeTab == Tab.BookingForm ? <calendar-agenda-fill-icon width=\"16\" height=\"16\" /> : <calendar-agenda-icon width=\"16\" height=\"16\" />}\n Booking form\n </button>\n <button\n name={Tab.Communications}\n class={{ tab: true, active: this.activeTab == 'communications', hide: this.hideTab(Tab.Communications) }}\n onClick={e => this.setActiveTab(e, Tab.Communications)}\n >\n {this.activeTab == Tab.Communications ? <envelope-fill-icon width=\"16\" height=\"16\" /> : <envelope-icon width=\"16\" height=\"16\" />}\n Communications\n </button>\n <button\n name={Tab.PageStyles}\n class={{ tab: true, active: this.activeTab == 'pageStyles', hide: this.hideTab(Tab.PageStyles) }}\n onClick={e => this.setActiveTab(e, Tab.PageStyles)}\n >\n {this.activeTab == Tab.PageStyles ? <paintbrush-fill-icon width=\"16\" height=\"16\" /> : <paintbrush-icon width=\"16\" height=\"16\" />}\n Page styles\n </button>\n </div>\n <div class=\"tab-content\">\n <TabContents\n formState={this.formState}\n activeTab={this.activeTab}\n currentUser={this.currentUser}\n calendars={this.calendars}\n id={this.selectedConfiguration?.id ?? 'new'}\n />\n </div>\n </div>\n ) : (\n <div class=\"composable\" key={this.selectedConfiguration?.id}>\n <slot></slot>\n </div>\n )}\n\n <div class=\"footer\" part=\"editor__footer\">\n <div class=\"preview\" part=\"editor__footer-preview\">\n {this.enableUserFeedback && (\n <button-component title=\"Share your feedback\" id=\"report-issue\" variant={'basic'} onClick={() => this.onFeedbackClick()}>\n <feedback-icon />\n </button-component>\n )}\n </div>\n <div class=\"buttons\" part=\"editor__footer-buttons\">\n <p\n class={{\n 'unsaved-changes': this.hasUnsavedChanges && !this.changesSaved,\n 'saved-changes': this.changesSaved,\n 'error': this.error !== '',\n 'error-full-width': this.error !== '' && this.action === 'create',\n }}\n >\n {this.error !== '' ? this.error : ''}\n {this.error == '' && this.hasUnsavedChanges && !this.changesSaved ? 'Unsaved changes' : this.error == '' && this.changesSaved ? 'Changes saved!' : ''}\n </p>\n {this.schedulerPreviewLink !== '' && this.action === 'edit' && (\n <button-component\n title=\"Preview\"\n type=\"button\"\n disabled={this.isLoading}\n clickHandler={event => {\n event.preventDefault();\n const previewEvent = this.previewButtonClicked.emit(this.host);\n if (!previewEvent.defaultPrevented) {\n window.open(parsePreviewLink(this.schedulerPreviewLink, this.selectedConfiguration), '_blank');\n }\n }}\n variant={'basic'}\n >\n <eye-icon />\n </button-component>\n )}\n <button-component\n type=\"button\"\n disabled={this.isLoading}\n clickHandler={event => {\n event.preventDefault();\n this.cancelButtonClick.emit();\n this.error = '';\n }}\n variant={'basic'}\n part=\"editor__footer-cancel\"\n >\n Back\n </button-component>\n <button-component type=\"submit\" disabled={this.isLoading} part=\"editor__footer-cta\">\n {this.isLoading ? (\n <span>\n Saving\n <loading-icon />{' '}\n </span>\n ) : this.action === 'create' ? (\n 'Create'\n ) : (\n 'Save changes'\n )}\n </button-component>\n </div>\n </div>\n </form>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n@import '../../../common/mixins/buttons.scss';\n\n:host {\n display: grid;\n grid-auto-flow: row;\n width: 100%;\n font-family: inherit;\n font-optical-sizing: auto;\n @include default-css-variables;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n align-items: unset;\n }\n\n h2 {\n margin: 0;\n font-size: 1.25rem;\n color: var(--nylas-base-900);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 1rem;\n color: var(--nylas-base-700);\n }\n\n .actions {\n justify-self: end;\n\n @media #{$mobile} {\n width: 100%;\n }\n }\n}\n\n.configurations {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n background: var(--nylas-base-0);\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-y: hidden;\n\n .table-container {\n overflow-y: auto;\n flex: 1;\n\n table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: inherit;\n height: max-content;\n\n &.no-configurations {\n height: 100%;\n }\n\n tr {\n color: var(--nylas-base-800);\n border-bottom: 1px solid var(--nylas-base-200);\n font-family: inherit;\n\n &.hide {\n display: none;\n }\n }\n\n th {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 20px;\n }\n\n tr.no-configurations {\n td {\n > div {\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n padding: var(--nylas-border-radius-3x);\n\n h3 {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-700);\n }\n\n p {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-600);\n }\n\n calendar-icon {\n margin-bottom: 1rem;\n color: var(--nylas-base-200);\n }\n }\n }\n }\n\n th,\n td {\n text-align: left;\n padding: 1rem;\n font-family: inherit;\n }\n\n .actions {\n text-align: right;\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n }\n\n .title {\n width: 100%;\n max-width: 300px;\n\n @media #{$mobile} {\n max-width: 96px;\n }\n\n div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.config-event-title {\n font-weight: 600;\n }\n\n &.config-event-description {\n font-size: 0.75rem;\n }\n }\n }\n }\n }\n\n .pagination {\n padding: 1rem;\n position: sticky;\n top: 100%;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n background: white;\n width: calc(100% - 2rem);\n z-index: 2;\n\n td.arrows {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n button {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 3vh;\n width: 3vh;\n min-width: 3em;\n min-height: 3em;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-300);\n\n background-color: transparent;\n color: var(--nylas-base-800);\n cursor: pointer;\n\n &:hover:not(:disabled) {\n border: 1px solid var(--nylas-primary);\n }\n\n &:active {\n border: 1px solid var(--nylas-base-800);\n }\n\n &:disabled {\n border: 1px solid var(--nylas-base-100);\n background-color: transparent;\n color: var(--nylas-base-300);\n cursor: not-allowed;\n }\n\n &.right {\n transform: rotate(180deg);\n }\n }\n }\n}\n\n.error-container {\n margin-top: 1.5rem;\n\n .error {\n color: var(--nylas-error);\n padding: 0.5rem 0;\n margin: 1rem 0 0;\n }\n}\n\nbutton-component#copy {\n button {\n width: 108px;\n }\n}\n\nselect-dropdown {\n width: auto;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n display: block;\n height: 48px;\n padding: 0px 16px 8px;\n\n @media #{$mobile} {\n width: 92px;\n }\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n width: 120px;\n right: 0;\n}\n\nselect-dropdown::part(sd_dropdown-labelhtml) {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n color: var(--nylas-primary);\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, parsePreviewLink } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration } from '@nylas/core';\n\n/**\n * The `nylas-list-configurations` component displays a list of scheduling pages.\n *\n * @part nlc__create-new-cta - The create new configuration CTA.\n */\n@Component({\n tag: 'nylas-list-configurations',\n styleUrl: 'nylas-list-configurations.scss',\n shadow: true,\n})\nexport class NylasListConfigurations {\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasListConfigurationsElement;\n\n /**\n * The list of configurations to display.\n */\n @Prop() configurations: Configuration[] = [];\n\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use a placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The next cursor for list configurations, if any.\n */\n @Prop() listConfigurationsNextCursor?: string | null;\n\n /**\n * Event emitted when the component is initialized.\n */\n @Event() initListConfigurations!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n cursor?: string;\n }>;\n\n /**\n * Event emitted when the user clicks the create event button.\n */\n @Event() createButtonClick!: EventEmitter<HTMLNylasListConfigurationsElement>;\n\n /**\n * Event emitted when the user clicks the edit event button.\n */\n @Event() editButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration;\n }>;\n\n /**\n * Event emitted when the user clicks the delete event button.\n */\n @Event() deleteButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration;\n }>;\n\n /**\n * The current state of the component.\n */\n @State() private state: 'loading' | 'loaded' | 'error' = 'loading';\n\n /**\n * The error message to display.\n */\n @State() private error: string = '';\n\n /**\n * Current cursor for list configurations\n */\n @State() currentCursor: string | null = null;\n\n /**\n * The list of previous cursors for list configurations\n */\n @State() previousCursors: string[] = [];\n\n /**\n * State to identiy if the next button should be disabled\n */\n @State() disableNextPageButton: boolean = false;\n\n @Watch('listConfigurationsNextCursor')\n listConfigurationsNextCursorChangedHandler(newVal: string | null, oldVal: string | null) {\n if (!newVal || newVal === oldVal) {\n if (newVal === null) {\n this.disableNextPageButton = true;\n }\n return;\n }\n this.disableNextPageButton = false;\n this.currentCursor = newVal;\n }\n\n connectedCallback() {\n debug('[nylas-list-configurations]', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('[nylas-list-configurations]', 'componentWillLoad');\n\n // If we have configurations, we will set the state to loaded.\n if (this.configurations && this.configurations.length > 0) {\n this.state = 'loaded';\n }\n }\n\n componentDidLoad() {\n debug('[nylas-list-configurations]', 'componentDidLoad');\n\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n disconnectedCallback() {\n debug('[nylas-list-configurations]', 'disconnectedCallback');\n }\n\n @Listen('nylasFormDropdownChanged')\n async handleNylasFormDropdownChanged(event: CustomEvent) {\n debug('[nylas-list-configurations]', 'handleNylasFormDropdownChanged', event.detail);\n const { value } = event.detail;\n const [action, index] = value.split('-');\n event.preventDefault();\n switch (action) {\n case 'delete':\n this.deleteButtonClick.emit({ host: this.host, configuration: this.configurations[index] });\n break;\n case 'preview':\n window.open(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]), '_blank');\n break;\n case 'copy':\n await navigator.clipboard.writeText(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]));\n break;\n default:\n break;\n }\n }\n\n @Method()\n async getState() {\n return this.state;\n }\n\n @Method()\n async setState(state: 'loading' | 'loaded' | 'error') {\n this.state = state;\n }\n\n @Method()\n async setError(error: string) {\n this.error = error;\n }\n\n private getDurationString(duration: number) {\n const hours = Math.floor(duration / 60);\n const minutes = duration % 60;\n return `${hours ? hours : ''} ${hours ? `${hours > 1 ? 'hours' : 'hour'}` : ''} ${minutes ? minutes : ''} ${minutes ? `${minutes > 1 ? 'mins' : 'min'}` : ''}`;\n }\n\n getActionLabelHTML(action: string) {\n const actionStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n };\n const dangerStyle = {\n color: 'var(--nylas-error)',\n };\n switch (action) {\n case 'preview':\n return (\n <span style={actionStyle}>\n <eye-icon width=\"16\" height=\"16\"></eye-icon>\n Preview\n </span>\n );\n case 'copy':\n return (\n <span style={actionStyle}>\n <copy-icon width=\"16\" height=\"16\" />\n Copy\n </span>\n );\n case 'delete':\n return (\n <span style={{ ...actionStyle, ...dangerStyle }}>\n <delete-icon width=\"15\" height=\"17\"></delete-icon>\n Delete\n </span>\n );\n default:\n return '';\n }\n }\n\n previousPageClickedHandler() {\n if (this.previousCursors.length === 0) return;\n\n this.currentCursor = this.previousCursors.pop() || null;\n const prevCursor = this.previousCursors[this.previousCursors.length - 1] || undefined;\n this.initListConfigurations.emit({\n host: this.host,\n cursor: prevCursor,\n });\n }\n\n nextPageClickedHandler() {\n if (!this.currentCursor) return;\n\n this.previousCursors = [...this.previousCursors, this.currentCursor];\n this.initListConfigurations.emit({\n host: this.host,\n cursor: this.currentCursor,\n });\n }\n\n @RegisterComponent<NylasListConfigurations, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-list-configurations',\n stateToProps: new Map([\n ['schedulerConfig.configurations', 'configurations'],\n ['schedulerConfig.listConfigurationsNextCursor', 'listConfigurationsNextCursor'],\n ]),\n localPropsToProp: new Map([['schedulerPreviewLink', 'schedulerPreviewLink']]),\n eventToProps: {\n initListConfigurations: async (event, connector) => {\n const { host, cursor } = event.detail;\n await host.setState('loading');\n const [data, error] = await connector.schedulerConfig.getConfigurations(cursor);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError(error.message);\n return;\n }\n await host.setState('loaded');\n // setCursor here\n },\n createButtonClick: async (_, connector) => {\n connector.schedulerConfigStore.resetSelectedConfiguration();\n connector.schedulerConfigStore.state.action = 'create';\n },\n deleteButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n const [data, error] = await connector.schedulerConfig.deleteConfiguration(configuration.id);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError(error.message);\n }\n },\n editButtonClick: async (event, connector) => {\n const { configuration } = event.detail;\n connector.schedulerConfigStore.state.selectedConfiguration = configuration;\n connector.schedulerConfigStore.state.action = 'edit';\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class=\"header\">\n <div class=\"description\">\n <h2>All Scheduling Pages</h2>\n <p>Create and manage your Scheduling Pages.</p>\n </div>\n {this.configurations && this.configurations.length > 0 && (\n <div class=\"actions\">\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n Create new\n </button-component>\n </div>\n )}\n </div>\n <div class=\"configurations\">\n <div class=\"table-container\">\n <table\n class={{\n 'no-configurations': this.state !== 'loading' && (!this.configurations || this.configurations.length === 0),\n }}\n >\n <tr\n class={{\n hide: this.state === 'loading' || (this.configurations && this.configurations.length === 0),\n }}\n >\n <th>Page title</th>\n <th>Duration</th>\n <th></th>\n </tr>\n {this.state === 'loading' && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <h3>Loading...</h3>\n <p>Please wait while we fetch the scheduling pages</p>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' && (!this.configurations || this.configurations.length === 0) && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <calendar-icon width=\"48\" height=\"48\"></calendar-icon>\n <h3>No scheduling pages found</h3>\n <p>Get started with creating your first scheduling page</p>\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n Create new\n </button-component>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' &&\n this.configurations.map((config, i) => {\n return (\n <tr key={config.id}>\n <td>\n <div class=\"title\">\n <div class=\"config-event-title\" title={config.event_booking.title}>\n {config.event_booking.title}\n </div>\n <div class={'config-event-description'}>{config.event_booking.description}</div>\n </div>\n </td>\n <td>\n <div class=\"duration\">{this.getDurationString(config.availability.duration_minutes)}</div>\n </td>\n <td>\n <div class=\"actions\">\n <button-component\n variant={'basic'}\n key={`edit-${i}`}\n clickHandler={event => {\n event.preventDefault();\n this.editButtonClick.emit({ host: this.host, configuration: config });\n }}\n >\n <edit-icon width=\"16\" height=\"16\"></edit-icon>\n Edit\n </button-component>\n <select-dropdown\n name=\"actions\"\n options={[\n { value: `preview-${i}`, label: 'Preview', labelHTML: this.getActionLabelHTML('preview') },\n { value: `copy-${i}`, label: 'Copy link', labelHTML: this.getActionLabelHTML('copy') },\n { value: `delete-${i}`, label: 'Delete', labelHTML: this.getActionLabelHTML('delete') },\n ]}\n defaultSelectedOption={{ value: '', label: '' }}\n dropdownButtonText=\"...\"\n withSearch={false}\n withChevron={false}\n exportparts=\"sd_dropdown: actions__dropdown, sd_dropdown-button: actions__dropdown-button, sd_dropdown-content: actions__dropdown-content\"\n ></select-dropdown>\n </div>\n </td>\n </tr>\n );\n })}\n </table>\n </div>\n <div class=\"pagination\">\n <button class=\"arrow left\" onClick={() => this.previousPageClickedHandler()} disabled={this.previousCursors.length <= 0}>\n <chevron-icon />\n </button>\n <button class=\"arrow right\" onClick={() => this.nextPageClickedHandler()} disabled={this.disableNextPageButton}>\n <chevron-icon />\n </button>\n </div>\n </div>\n {this.state === 'error' && (\n <div class=\"error-container\">\n <p class={'error'}>{this.error}</p>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-68c2fadf.js";const o=".sc-italic-icon-h{display:flex}";const i=o;const c=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"aba9c34da25f66751084badeb369dde078799956",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"8d551fcc11ab07f3018383151798c1d8ec5dc67f",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m10 20 4-16m2 0h-4m0 16H8"}))}};c.style=i;export{c as italic_icon};
2
- //# sourceMappingURL=p-742d7c3c.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as o,h as r}from"./p-68c2fadf.js";const t=".sc-arrow-icon-h{display:flex}";const e=t;const s=class{constructor(r){o(this,r);this.width="15";this.height="15"}render(){return r("svg",{key:"a7d7e1b1ad65a8b540fd3d3ec3a5bebdd7799b9a",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r("path",{key:"5ae23fbbd6276df6aea78458d6640a225a0ea0b4",d:"M5 12H19M12 5L19 12L12 19",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};s.style=e;export{s as arrow_icon};
2
- //# sourceMappingURL=p-76fc639b.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as c,h as e}from"./p-68c2fadf.js";const a=".sc-add-circle-icon-h{display:flex}";const s=a;const t=class{constructor(e){c(this,e);this.width="24";this.height="25"}render(){return e("svg",{key:"5f4574833991cf259f08df93a218894bd849d112",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"5369d12ef03c62758a830c0a48d45aa1f731bbc8",d:"M12 2.5c5.523 0 10 4.477 10 10s-4.477 10-10 10-10-4.477-10-10 4.477-10 10-10ZM12 4a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17Zm0 3.5a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7.5Z",fill:"currentColor"}))}};t.style=s;const l=".sc-close-icon-h{display:flex}";const f=l;const r=class{constructor(e){c(this,e);this.width="16";this.height="16"}render(){return e("svg",{key:"ae2727b3e3bb8e386a60828defc34532de883473",width:"21",height:"21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("g",{key:"3bc87607b1cf527273887ff3835716c2b16c312c","clip-path":"url(#a)"},e("path",{key:"3e5870c3439d7aba6930d4468925e958cd3867bf",d:"M5.73 4.574a.75.75 0 1 0-1.061 1.06l4.419 4.42-4.42 4.42a.75.75 0 1 0 1.061 1.06l4.42-4.42 4.419 4.42a.75.75 0 0 0 1.06-1.06l-4.419-4.42 4.42-4.42a.75.75 0 1 0-1.061-1.06l-4.42 4.42-4.419-4.42Z",fill:"currentColor"})),e("defs",{key:"7ae8ce566367e278782c83c4c2a3964013968579"},e("clipPath",{key:"184fe559a12c59831e92e05d9564787fb14ce197",id:"a"},e("path",{key:"907b8eb528141f6ff41e3d266557d6b720617a2a",fill:"#fff",transform:"translate(.148 .054)",d:"M0 0h20v20H0z"}))))}};r.style=f;export{t as add_circle_icon,r as close_icon};
2
- //# sourceMappingURL=p-781e954b.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as n,h as r,H as a,a as i}from"./p-68c2fadf.js";import{R as l}from"./p-bf5b88a3.js";import{a as s}from"./p-797cc185.js";const o=':host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;width:inherit}.cards-container{margin-bottom:4rem}.cards-container .nylas-reminder-email{width:inherit;display:flex;flex-direction:column;margin:1rem;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-200);text-align:left}.cards-container .nylas-reminder-email .reminder-open-close-toggle{display:flex;gap:16px}.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron{display:flex;align-self:center;cursor:pointer}.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron:hover,.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron:active{color:var(--nylas-primary)}.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron.open{transform:rotate(90deg)}.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron.closed{transform:rotate(270deg)}.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron.disabled{cursor:not-allowed;color:var(--nylas-base-300)}.cards-container .nylas-reminder-email .reminder-open-close-toggle .chevron.disabled:hover{color:var(--nylas-base-300)}.cards-container .nylas-reminder-email .header{padding:1rem;display:grid;grid-template-columns:1fr auto;border-bottom:1px solid var(--nylas-base-200)}.cards-container .nylas-reminder-email .header h3{border-radius:var(--nylas-border-radius-2x);margin:0;font-size:1rem;font-weight:600;line-height:20px;color:var(--nylas-base-900);text-align:left}.cards-container .nylas-reminder-email .header p{margin:0.25rem 0 0 0;font-size:0.875rem;font-weight:400;line-height:20px;color:var(--nylas-base-600);text-align:left}.cards-container .nylas-reminder-email .header .confirmation-email-toggle{display:flex;gap:24px;align-items:center}.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron{display:flex;align-self:center;cursor:pointer}.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron:hover,.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron:active{color:var(--nylas-primary)}.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron.open{transform:rotate(90deg)}.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron.closed{transform:rotate(270deg)}.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron.disabled{cursor:not-allowed;color:var(--nylas-base-300)}.cards-container .nylas-reminder-email .header .confirmation-email-toggle .chevron.disabled:hover{color:var(--nylas-base-300)}.cards-container .nylas-reminder-email .nylas-reminder-email__body{display:grid;grid-template-columns:1fr auto;background-color:var(--nylas-base-25);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.cards-container .nylas-reminder-email .nylas-reminder-email__body{grid-template-columns:1fr}}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section{padding:1rem;display:flex;flex-direction:column;gap:1rem;color:var(--nylas-base-800)}@media screen and (max-width: 768px){.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section{border:none}}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row.full-width-col{grid-template-columns:1fr}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row label{display:flex;align-items:center}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row label span.required{color:var(--nylas-error, #cc4841)}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row label span.label-icon{margin-left:4px}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row label span.label-icon tooltip-component{display:flex}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row p{margin:0.25rem 0 0 0;font-size:1rem;font-weight:500;line-height:24px;color:var(--nylas-base-900)}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row .company-logo-container{display:flex;gap:32px;width:100%}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row .company-logo-container .input-container{display:flex;flex-direction:column;flex:1}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row .company-logo-container .company-logo{display:flex;justify-content:center;align-items:center;width:200px;height:100px;border:var(--nylas-base-200) solid 1px;border-radius:var(--nylas-border-radius-2x);overflow:hidden;padding:10px}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row .company-logo-container .company-logo img{max-height:100%;max-width:100%;object-fit:contain;object-position:center}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .nylas-reminder-email__row span.selected-value{font-weight:500}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .subsection{display:flex;flex-direction:column;gap:1rem}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .subsection h3{margin:0;font-size:1rem;font-weight:600;line-height:20px;color:var(--nylas-base-900);text-align:left}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .subsection .input-container{display:flex;flex-direction:column;gap:0.25rem}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__section .subsection .input-container textarea{padding:12px 16px;border-width:1;resize:vertical;border-radius:8px;font-family:var(--nylas-font-family);font-size:16px;line-height:24px;border:1px solid var(--nylas-base-200)}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview{width:208px;background:var(--nylas-base-25);border-bottom-right-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview{width:inherit;border-bottom-left-radius:var(--nylas-border-radius-2x)}}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview h4{font-size:14px;line-height:24px;color:var(--nylas-base-600);font-family:var(--nylas-font-family);font-weight:500;text-align:center;margin:0.75rem 0}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview .preview-container{padding:0 2rem 1rem}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview .preview-container .slot{background-color:transparent;border-top:1px solid var(--nylas-base-300)}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview .preview-container .slot.active{background-color:var(--nylas-base-100)}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview .preview-container .slot:last-of-type{border-bottom:1px solid var(--nylas-base-300)}.cards-container .nylas-reminder-email .nylas-reminder-email__body .nylas-reminder-email__preview .preview-container .event-slot{background-color:var(--nylas-base-600);border-top:1px solid var(--nylas-base-300)}.cards-container .nylas-reminder-email .nylas-reminder-email__body span.error-message{color:var(--nylas-error)}.cards-container .nylas-reminder-email .nylas-reminder-email__body span.help-text{margin:0.25rem 0 0 0;font-size:0.875rem;font-weight:400;line-height:20px;color:var(--nylas-base-600);text-align:left}.cards-container .nylas-reminder-email .nylas-reminder-email__summary{padding:0.75rem 1rem;display:grid;grid-template-columns:auto 1fr;column-gap:1rem}.cards-container .nylas-reminder-email .nylas-reminder-email__summary p{margin:0;display:flex;align-items:center;column-gap:4px;font-size:0.875rem;font-weight:400;line-height:21px;color:var(--nylas-base-600);text-align:left}.cards-container .nylas-reminder-email .nylas-reminder-email__summary p span.summary-icon{display:flex;justify-content:center;min-width:20px}sp-divider{background-color:var(--nylas-base-200);height:1px;margin:0.25rem 0}button-component.create-reminder button{margin:1rem;width:calc(100% - 2rem)}button-component.delete-btn button{color:var(--nylas-error) !important}';const t=o;var d=undefined&&undefined.__decorate||function(e,n,r,a){var i=arguments.length,l=i<3?n:a===null?a=Object.getOwnPropertyDescriptor(n,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")l=Reflect.decorate(e,n,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])l=(i<3?s(l):i>3?s(n,r,l):s(n,r))||l;return i>3&&l&&Object.defineProperty(n,r,l),l};var m=undefined&&undefined.__metadata||function(e,n){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,n)};const c=class{constructor(r){e(this,r);this.valueChanged=n(this,"valueChanged",7);if(r.$hostElement$["s-ei"]){this.internals=r.$hostElement$["s-ei"]}else{this.internals=r.$hostElement$.attachInternals();r.$hostElement$["s-ei"]=this.internals}this.selectedConfiguration=undefined;this.name="reminder-overrides";this.reminders=this.selectedConfiguration?.event_booking?.reminders??[];this.reminderErrors={};this.participants=this.selectedConfiguration?.participants??[]}connectedCallback(){s("nylas-reminder-emails","connectedCallback")}disconnectedCallback(){s("nylas-reminder-emails","disconnectedCallback")}componentWillLoad(){s("nylas-reminder-emails","componentWillLoad");this.host.setAttribute("name",this.name)}componentDidLoad(){s("nylas-reminder-emails","componentDidLoad");if(this.selectedConfiguration){this.selectedConfigurationChangedHandler(this.selectedConfiguration)}else{this.updateRemindersFormValue()}}componentWillUpdate(){s("nylas-reminder-emails","componentWillUpdate")}componentDidUpdate(){s("nylas-reminder-emails","componentDidUpdate")}componentWillRender(){s("nylas-reminder-emails","componentWillRender")}componentDidRender(){s("nylas-reminder-emails","componentDidRender")}elementNameChangedHandler(e){s("nylas-reminder-emails","elementNameChangedHandler",e);this.host.setAttribute("name",e)}selectedConfigurationChangedHandler(e){s("nylas-reminder-emails","selectedConfigurationChangedHandler",e);this.reminders=e?.event_booking?.reminders??[];this.participants=e?.participants??[];this.updateRemindersFormValue()}handleValueChanged(e){s("nylas-reminder-emails","handleValueChanged",e);const{name:n,value:r}=e.detail;if(n.startsWith("reminder-time-")){const[e,a]=n.split(/(\d+)/);const i=[...this.reminders];i[a].minutes_before_event=parseInt(r);this.reminders=[...i];this.updateRemindersFormValue()}}handleNylasFormDropdownChanged(e){s("nylas-reminder-emails","handleNylasFormDropdownChanged",e);const{name:n,value:r}=e.detail;if(!n.startsWith("recipient-")){return}const[a,i]=n.split(/(\d+)/);const l=[...this.reminders];l[i].recipient=r;this.reminders=[...l];this.updateRemindersFormValue()}addReminder(){s("nylas-reminder-emails","addReminder");this.reminders=[...this.reminders,{type:"email",minutes_before_event:30,editing:true,recipient:"all"}];this.updateRemindersFormValue()}deleteReminder(e){this.reminders=this.reminders.filter(((n,r)=>r!==e)).map((e=>({...e})));this.updateRemindersFormValue()}updateRemindersFormValue(){s("nylas-reminder-emails","updateRemindersFormValue");const e=this.reminders.map((e=>{const n={...e};delete n.editing;return n}));this.internals.setFormValue(JSON.stringify(e),"reminder-overrides");this.valueChanged.emit({value:JSON.stringify(e),name:"reminder-overrides"})}formatReminderTime(e){switch(true){case e>24*60:return`${e/60/24} days`;case e===24*60:return"1 day";case e>90||e===60:return`${e/60} hours`;default:return`${e} minute${e>1?"s":""} `}}render(){const e=this.participants.find((e=>e.is_organizer))?.name;const n=[{label:"All host & guests",value:"all"},{label:"All event guests",value:"guest"},{label:"Only event host",value:"host"}];return r(a,{key:"f1982a2fe4c71ae1345b184767d015ba34336f1f"},r("div",{key:"02f612577517fcc9ca50e5278c8e4cf2492aa29e",class:"cards-container"},this.reminders.map(((a,i)=>r("div",{class:"nylas-reminder-email",part:"nre"},r("div",{class:"header",part:"nre__header"},r("div",null,r("h3",null,"Upcoming meeting",e?` with ${e} `:""),r("p",null,"Reminder before event")),!a.editing?r("button-component",{variant:"basic",key:`edit-${i} `,clickHandler:e=>{e.preventDefault();a.editing=true;this.reminders=[...this.reminders]}},r("edit-icon",{width:"16",height:"16"}),"Edit"):r("div",{class:"reminder-open-close-toggle"},r("button-component",{variant:"basic",class:"delete-btn",tooltip:"Delete reminder",key:`delete -${i} `,clickHandler:e=>{e.preventDefault();this.deleteReminder(i)}},r("trash-icon",{width:"16",height:"16"})),r("span",{class:`chevron ${a.editing?"open":"closed"}`,onClick:()=>{a.editing=!a.editing;this.reminders=[...this.reminders]}},r("chevron-icon",{width:"24",height:"24"})))),a.editing?r("div",{class:"nylas-reminder-email__body",part:"nre__body"},r("div",{class:"nylas-reminder-email__section"},r("div",{class:"nylas-reminder-email__row"},r("label",null,"Email recipients"),r("select-dropdown",{name:`recipient-${i}`,options:n,defaultSelectedOption:n.find((e=>e.value===a.recipient))??n[0],withSearch:false})),r("div",{class:"nylas-reminder-email__row"},r("label",null,"Send confirmation email when",r("span",{class:"label-icon"},r("tooltip-component",null,r("info-icon",{slot:"tooltip-icon"}),r("span",{slot:"tooltip-content"},"The recipients will receive a reminder email at the specified time before the event.")))),r("nylas-reminder-time",{name:`reminder-time-${i}`,eventReminderTimeMinutes:a.minutes_before_event,exportparts:"nrt, nrt__input_dropdown: nre__reminder-input_dropdown,\n nrt__input_dropdown-input: nre__reminder-input_dropdown-input,\n nrt__input_dropdown-content: nre__reminder-input_dropdown-content,\n "})))):r("div",{class:"nylas-reminder-email__summary",part:"nre__summary"},r("p",null,r("span",{class:"summary-icon"},r("person-clipboard-icon",null)),n.find((e=>e.value===a.recipient))?.label),r("p",null,r("span",{class:"summary-icon"},r("clock-icon",null)),this.formatReminderTime(a.minutes_before_event)," before the event")))))),r("button-component",{key:"5f0c78b6e6caca06bb8b3c8346480f3cde3ee8f9",class:"create-reminder",variant:"basic",clickHandler:e=>{e.preventDefault();this.addReminder()}},r("plus-icon",{key:"b72802d4c496bcdad8f26986b43a8d70828fae68",width:"16",height:"16"}),"New reminder"))}static get formAssociated(){return true}get host(){return i(this)}static get watchers(){return{name:["elementNameChangedHandler"],selectedConfiguration:["selectedConfigurationChangedHandler"]}}};d([l({name:"nylas-reminder-emails",stateToProps:new Map([["schedulerConfig.selectedConfiguration","selectedConfiguration"]]),eventToProps:{valueChanged:async(e,n)=>{const{valueChanged:r}=e.detail;if(r){r(e)}}},fireRegisterEvent:true}),m("design:type",Function),m("design:paramtypes",[]),m("design:returntype",void 0)],c.prototype,"render",null);c.style=t;export{c as nylas_reminder_emails};
2
- //# sourceMappingURL=p-7f56a139.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nylasReminderEmailsCss","NylasReminderEmailsStyle0","NylasReminderEmails","this","selectedConfiguration","event_booking","reminders","participants","connectedCallback","debug","disconnectedCallback","componentWillLoad","host","setAttribute","name","componentDidLoad","selectedConfigurationChangedHandler","updateRemindersFormValue","componentWillUpdate","componentDidUpdate","componentWillRender","componentDidRender","elementNameChangedHandler","newValue","newVal","handleValueChanged","event","value","detail","startsWith","_","reminderIndex","split","updatedReminders","minutes_before_event","parseInt","handleNylasFormDropdownChanged","recipient","addReminder","type","editing","deleteReminder","index","filter","i","map","p","eventReminders","reminder","rem","internals","setFormValue","JSON","stringify","valueChanged","emit","formatReminderTime","reminderTime","render","organizerName","find","is_organizer","recipientOptions","label","h","Host","key","class","part","variant","clickHandler","preventDefault","width","height","tooltip","onClick","options","defaultSelectedOption","withSearch","slot","eventReminderTimeMinutes","exportparts","__decorate","RegisterComponent","stateToProps","Map","eventToProps","async","_nylasSchedulerConfigConnector","fireRegisterEvent"],"sources":["src/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.scss?tag=nylas-reminder-emails&encapsulation=shadow","src/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.cards-container {\n margin-bottom: 4rem;\n\n .nylas-reminder-email {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n text-align: left;\n\n .reminder-open-close-toggle {\n display: flex;\n gap: 16px;\n\n .chevron {\n display: flex;\n align-self: center;\n cursor: pointer;\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n\n &.open {\n transform: rotate(90deg);\n }\n\n &.closed {\n transform: rotate(270deg);\n }\n\n &.disabled {\n cursor: not-allowed;\n color: var(--nylas-base-300);\n\n &:hover {\n color: var(--nylas-base-300);\n }\n }\n }\n }\n\n .header {\n padding: 1rem;\n display: grid;\n grid-template-columns: 1fr auto;\n border-bottom: 1px solid var(--nylas-base-200);\n\n h3 {\n border-radius: var(--nylas-border-radius-2x);\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n\n .confirmation-email-toggle {\n display: flex;\n gap: 24px;\n align-items: center;\n\n .chevron {\n display: flex;\n align-self: center;\n cursor: pointer;\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n\n &.open {\n transform: rotate(90deg);\n }\n\n &.closed {\n transform: rotate(270deg);\n }\n\n &.disabled {\n cursor: not-allowed;\n color: var(--nylas-base-300);\n\n &:hover {\n color: var(--nylas-base-300);\n }\n }\n }\n }\n }\n\n .nylas-reminder-email__body {\n display: grid;\n grid-template-columns: 1fr auto;\n background-color: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n grid-template-columns: 1fr;\n }\n\n .nylas-reminder-email__section {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n color: var(--nylas-base-800);\n\n @media #{$mobile} {\n border: none;\n }\n\n .nylas-reminder-email__row {\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: center;\n gap: 1rem;\n\n &.full-width-col {\n grid-template-columns: 1fr;\n }\n\n label {\n display: flex;\n align-items: center;\n\n span.required {\n color: var(--nylas-error, #cc4841);\n }\n\n span.label-icon {\n margin-left: 4px;\n\n tooltip-component {\n display: flex;\n }\n }\n }\n\n p {\n margin: 0.25rem 0 0 0;\n font-size: 1rem;\n font-weight: 500;\n line-height: 24px;\n color: var(--nylas-base-900);\n }\n\n .company-logo-container {\n display: flex;\n gap: 32px;\n width: 100%;\n\n .input-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .company-logo {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 200px;\n height: 100px;\n border: var(--nylas-base-200) solid 1px;\n border-radius: var(--nylas-border-radius-2x);\n overflow: hidden;\n padding: 10px;\n }\n\n .company-logo img {\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n object-position: center;\n }\n }\n\n span.selected-value {\n font-weight: 500;\n }\n }\n\n .subsection {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n\n h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n .input-container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n\n textarea {\n padding: 12px 16px;\n border-width: 1;\n resize: vertical;\n border-radius: 8px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n border: 1px solid var(--nylas-base-200);\n }\n }\n }\n }\n\n .nylas-reminder-email__preview {\n width: 208px;\n background: var(--nylas-base-25);\n border-bottom-right-radius: var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n width: inherit;\n border-bottom-left-radius: var(--nylas-border-radius-2x);\n }\n\n h4 {\n font-size: 14px;\n line-height: 24px;\n color: var(--nylas-base-600);\n font-family: var(--nylas-font-family);\n font-weight: 500;\n text-align: center;\n margin: 0.75rem 0;\n }\n\n .preview-container {\n padding: 0 2rem 1rem;\n\n .slot {\n background-color: transparent;\n border-top: 1px solid var(--nylas-base-300);\n\n &.active {\n background-color: var(--nylas-base-100);\n }\n\n &:last-of-type {\n border-bottom: 1px solid var(--nylas-base-300);\n }\n }\n\n .event-slot {\n background-color: var(--nylas-base-600);\n border-top: 1px solid var(--nylas-base-300);\n }\n }\n }\n\n span.error-message {\n color: var(--nylas-error);\n }\n\n span.help-text {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n\n .nylas-reminder-email__summary {\n padding: 0.75rem 1rem;\n display: grid;\n grid-template-columns: auto 1fr;\n column-gap: 1rem;\n\n p {\n margin: 0;\n display: flex;\n align-items: center;\n column-gap: 4px;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 21px;\n color: var(--nylas-base-600);\n text-align: left;\n\n span.summary-icon {\n display: flex;\n justify-content: center;\n min-width: 20px;\n }\n }\n }\n }\n}\n\nsp-divider {\n background-color: var(--nylas-base-200);\n height: 1px;\n margin: 0.25rem 0;\n}\n\nbutton-component.create-reminder button {\n margin: 1rem;\n width: calc(100% - 2rem);\n}\n\nbutton-component.delete-btn button {\n color: var(--nylas-error) !important;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, EventReminder, Participant } from '@nylas/core';\n/**\n * The `nylas-reminder-emails` component is a UI component that allows users to set buffer time before and after an event.\n *\n * @part nre__tab-heading - The nylas-reminder-emails main tab heading\n * @part nre - The nylas-reminder-emails container\n * @part nre__header - The header of the event communication section\n * @part nre__body - The body of the event communication section\n * @part nre__summary - The reminder card summary container\n * @part nre__reminder-input_dropdown - The dropdown container for selecting reminder time\n * @part nre__reminder-input_dropdown-input - The dropdown for selecting reminder time value\n * @part nre__reminder-input_dropdown-content - The dropdown for selecting reminder time unit (e.g. min, hrs, days)\n */\n@Component({\n tag: 'nylas-reminder-emails',\n styleUrl: 'nylas-reminder-emails.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasReminderEmails {\n @Element() host!: HTMLNylasReminderEmailsElement;\n\n /**\n * The selected configuration.\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * The name of the component\n */\n @Prop() name: string = 'reminder-overrides';\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The event reminders state. Defaults to an empty array if no event reminders are present.\n */\n @State() reminders: (EventReminder & { editing?: boolean })[] = this.selectedConfiguration?.event_booking?.reminders ?? [];\n @State() reminderErrors: { [key: string]: string } = {};\n @State() participants: Participant[] = this.selectedConfiguration?.participants ?? [];\n\n /**\n * This event is fired when the email reminders change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\n }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-reminder-emails', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-reminder-emails', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-reminder-emails', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-reminder-emails', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.updateRemindersFormValue();\n }\n }\n\n componentWillUpdate() {\n debug('nylas-reminder-emails', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-reminder-emails', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-reminder-emails', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-reminder-emails', 'componentDidRender');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-reminder-emails', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newVal: Configuration) {\n debug('nylas-reminder-emails', 'selectedConfigurationChangedHandler', newVal);\n this.reminders = newVal?.event_booking?.reminders ?? [];\n this.participants = newVal?.participants ?? [];\n this.updateRemindersFormValue();\n }\n\n @Listen('valueChanged')\n handleValueChanged(event: CustomEvent) {\n debug('nylas-reminder-emails', 'handleValueChanged', event);\n const { name, value } = event.detail;\n\n if (name.startsWith('reminder-time-')) {\n // Extract the reminder index from the name attribute (e.g. reminder-time-0)\n const [_, reminderIndex] = name.split(/(\\d+)/);\n const updatedReminders = [...this.reminders];\n updatedReminders[reminderIndex].minutes_before_event = parseInt(value);\n this.reminders = [...updatedReminders];\n this.updateRemindersFormValue();\n }\n }\n\n @Listen('nylasFormDropdownChanged')\n handleNylasFormDropdownChanged(event: CustomEvent) {\n debug('nylas-reminder-emails', 'handleNylasFormDropdownChanged', event);\n const { name, value } = event.detail;\n if (!name.startsWith('recipient-')) {\n return;\n }\n // Extract the reminder index from the name attribute (e.g. recipient-0)\n const [_, reminderIndex] = name.split(/(\\d+)/);\n const updatedReminders = [...this.reminders];\n updatedReminders[reminderIndex].recipient = value;\n this.reminders = [...updatedReminders];\n this.updateRemindersFormValue();\n }\n\n addReminder() {\n debug('nylas-reminder-emails', 'addReminder');\n this.reminders = [\n ...this.reminders,\n {\n type: 'email',\n minutes_before_event: 30,\n editing: true,\n recipient: 'all',\n },\n ];\n this.updateRemindersFormValue();\n }\n\n deleteReminder(index: number) {\n this.reminders = this.reminders.filter((_, i) => i !== index).map(p => ({ ...p }));\n this.updateRemindersFormValue();\n }\n\n updateRemindersFormValue() {\n debug('nylas-reminder-emails', 'updateRemindersFormValue');\n const eventReminders = this.reminders.map(reminder => {\n const rem = { ...reminder };\n delete rem.editing;\n return rem;\n });\n this.internals.setFormValue(JSON.stringify(eventReminders), 'reminder-overrides');\n this.valueChanged.emit({ value: JSON.stringify(eventReminders), name: 'reminder-overrides' });\n }\n\n formatReminderTime(reminderTime: number) {\n switch (true) {\n case reminderTime > 24 * 60:\n return `${reminderTime / 60 / 24} days`;\n case reminderTime === 24 * 60:\n return '1 day';\n case reminderTime > 90 || reminderTime === 60:\n return `${reminderTime / 60} hours`;\n default:\n return `${reminderTime} minute${reminderTime > 1 ? 's' : ''} `;\n }\n }\n\n @RegisterComponent<NylasReminderEmails, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-reminder-emails',\n stateToProps: new Map([['schedulerConfig.selectedConfiguration', 'selectedConfiguration']]),\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string; name: string; valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChanged } = event.detail;\n // If a handler is passed, call it.\n if (valueChanged) {\n valueChanged(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const organizerName = this.participants.find(p => p.is_organizer)?.name;\n const recipientOptions = [\n {\n label: 'All host & guests',\n value: 'all',\n },\n {\n label: 'All event guests',\n value: 'guest',\n },\n {\n label: 'Only event host',\n value: 'host',\n },\n ];\n\n return (\n <Host>\n <div class=\"cards-container\">\n {this.reminders.map((reminder, index) => {\n return (\n <div class=\"nylas-reminder-email\" part=\"nre\">\n <div class=\"header\" part=\"nre__header\">\n <div>\n <h3>Upcoming meeting{organizerName ? ` with ${organizerName} ` : ''}</h3>\n <p>Reminder before event</p>\n </div>\n {!reminder.editing ? (\n <button-component\n variant={'basic'}\n key={`edit-${index} `}\n clickHandler={event => {\n event.preventDefault();\n reminder.editing = true;\n this.reminders = [...this.reminders];\n }}\n >\n <edit-icon width=\"16\" height=\"16\"></edit-icon>\n Edit\n </button-component>\n ) : (\n <div class=\"reminder-open-close-toggle\">\n <button-component\n variant={'basic'}\n class=\"delete-btn\"\n tooltip=\"Delete reminder\"\n key={`delete -${index} `}\n clickHandler={event => {\n event.preventDefault();\n this.deleteReminder(index);\n }}\n >\n <trash-icon width=\"16\" height=\"16\"></trash-icon>\n </button-component>\n <span\n class={`chevron ${reminder.editing ? 'open' : 'closed'}`}\n onClick={() => {\n reminder.editing = !reminder.editing;\n this.reminders = [...this.reminders];\n }}\n >\n <chevron-icon width=\"24\" height=\"24\" />\n </span>\n </div>\n )}\n </div>\n\n {reminder.editing ? (\n <div class=\"nylas-reminder-email__body\" part=\"nre__body\">\n <div class=\"nylas-reminder-email__section\">\n <div class=\"nylas-reminder-email__row\">\n <label>Email recipients</label>\n <select-dropdown\n name={`recipient-${index}`}\n options={recipientOptions}\n defaultSelectedOption={recipientOptions.find(i => i.value === reminder.recipient) ?? recipientOptions[0]}\n withSearch={false}\n />\n </div>\n <div class=\"nylas-reminder-email__row\">\n <label>\n Send confirmation email when\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">The recipients will receive a reminder email at the specified time before the event.</span>\n </tooltip-component>\n </span>\n </label>\n <nylas-reminder-time\n name={`reminder-time-${index}`}\n eventReminderTimeMinutes={reminder.minutes_before_event}\n exportparts=\"nrt, nrt__input_dropdown: nre__reminder-input_dropdown,\n nrt__input_dropdown-input: nre__reminder-input_dropdown-input,\n nrt__input_dropdown-content: nre__reminder-input_dropdown-content,\n \"\n />\n </div>\n </div>\n </div>\n ) : (\n <div class=\"nylas-reminder-email__summary\" part=\"nre__summary\">\n <p>\n <span class=\"summary-icon\">\n <person-clipboard-icon></person-clipboard-icon>\n </span>\n {recipientOptions.find(i => i.value === reminder.recipient)?.label}\n </p>\n <p>\n <span class=\"summary-icon\">\n <clock-icon></clock-icon>\n </span>\n {this.formatReminderTime(reminder.minutes_before_event)} before the event\n </p>\n </div>\n )}\n </div>\n );\n })}\n </div>\n\n <button-component\n class=\"create-reminder\"\n variant={'basic'}\n clickHandler={event => {\n event.preventDefault();\n this.addReminder();\n }}\n >\n <plus-icon width=\"16\" height=\"16\"></plus-icon>\n New reminder\n </button-component>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as e,c as n,h as t,H as r,a as i}from"./p-68c2fadf.js";import{R as a}from"./p-bf5b88a3.js";import{R as s,c as d,d as l}from"./p-b6e4de5b.js";import{a as o}from"./p-797cc185.js";const p=':host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif}.nylas-reminder-time{display:flex;flex-direction:column;gap:4px}.nylas-reminder-time label{display:flex;align-items:center;color:var(--nylas-base-800);font-size:16px;font-style:normal;font-weight:400;line-height:150%;}.nylas-reminder-time label span.required{color:var(--nylas-error, #cc4841)}.nylas-reminder-time label span.label-icon{margin-left:4px}.nylas-reminder-time label span.label-icon tooltip-component{display:flex}.nylas-reminder-time__wrapper{display:flex;align-items:center;gap:0.5rem}.nylas-reminder-time__wrapper input{padding:12px 16px;border-width:1;border-radius:8px;border:1px solid var(--nylas-base-200);font-family:var(--nylas-font-family);font-size:16px;line-height:24px;width:48px}.nylas-reminder-time__wrapper input-dropdown::part(id_dropdown-input){border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x);padding:14px 16px;width:50px}.nylas-reminder-time__wrapper input-dropdown::part(id_dropdown-content){width:100%;min-width:unset;height:160px}.nylas-reminder-time__wrapper select-dropdown{width:120px}@media screen and (max-width: 768px){.nylas-reminder-time__wrapper select-dropdown{width:100%}}.nylas-reminder-time__wrapper select-dropdown::part(sd_dropdown-button){border:1px solid var(--nylas-base-200)}';const c=p;var m=undefined&&undefined.__decorate||function(e,n,t,r){var i=arguments.length,a=i<3?n:r===null?r=Object.getOwnPropertyDescriptor(n,t):r,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")a=Reflect.decorate(e,n,t,r);else for(var d=e.length-1;d>=0;d--)if(s=e[d])a=(i<3?s(a):i>3?s(n,t,a):s(n,t))||a;return i>3&&a&&Object.defineProperty(n,t,a),a};var f=undefined&&undefined.__metadata||function(e,n){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,n)};function h(e){if(!e)return 30;if(e>=60*24)return e/(60*24);if(e>=90||e===60)return e/60;return e}function u(e){if(!e)return 30;if(e>=60*24)return 60*24;if(e>=90||e===60)return 60;return 1}const y=class{constructor(t){e(this,t);this.valueChanged=n(this,"valueChanged",7);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.name="reminder-time";this.eventReminderTimeMinutes=undefined;this.reminderTime=h(this.eventReminderTimeMinutes);this.reminderTimeMinutes=this.eventReminderTimeMinutes??30;this.reminderTimeincrement=u(this.eventReminderTimeMinutes);this.reminderTimeMinutesOptions=s}elementNameChangedHandler(e){o("nylas-reminder-time","elementNameChangedHandler",e);this.host.setAttribute("name",e)}eventReminderTimeMinutesChangedHandler(e,n){o("nylas-reminder-time","eventReminderTimeMinutesChangedHandler",e);if(e===n){return}this.reminderTime=h(e);this.reminderTimeincrement=u(e);this.reminderTimeMinutes=e}reminderTimeMinutesChangedHandler(e,n){o("nylas-reminder-time","reminderTimeMinutesChangedHandler",e);if(e===n){return}this.valueChanged.emit({value:e.toString(),name:this.name})}connectedCallback(){o("nylas-reminder-time","connectedCallback")}componentWillLoad(){o("nylas-reminder-time","componentWillLoad");this.host.setAttribute("name",this.name);this.setReminderTimeMinuteOptions()}componentDidLoad(){o("nylas-reminder-time","componentDidLoad")}disconnectedCallback(){o("nylas-reminder-time","disconnectedCallback")}setReminderTimeMinuteOptions(){if(this.reminderTimeincrement===1){this.reminderTimeMinutesOptions=s}else if(this.reminderTimeincrement===60){this.reminderTimeMinutesOptions=d}else this.reminderTimeMinutesOptions=l;return this.reminderTimeMinutesOptions}nylasFormDropdownChangedHandler(e){o("nylas-calendar-picker","nylasFormDropdownChangedHandler",e.detail);const{value:n}=e.detail;this.reminderTimeincrement=parseInt(n);if(this.reminderTimeincrement===1){this.reminderTime=60}else{this.reminderTime=1}this.setReminderTimeMinuteOptions();this.reminderTimeMinutes=this.reminderTime*this.reminderTimeincrement;this.internals.setFormValue(this.reminderTimeMinutes.toString(),this.name)}inputOptionChangedHandler(e){o("nylas-calendar-picker","inputOptionChangedHandler",e.detail);const{value:n}=e.detail;this.reminderTime=n;this.reminderTimeMinutes=this.reminderTime*this.reminderTimeincrement;this.internals.setFormValue(this.reminderTimeMinutes.toString(),this.name)}render(){const e=[{value:1,label:"minute"},{value:60,label:"hour"},{value:60*24,label:"day"}];return t(r,{key:"d08ccb2f53caf574942db1bc7f805927ad5a2b9a"},t("div",{key:"7a2969e3256bfc79d28686c3ade4c981b7425300",class:"nylas-reminder-time",part:"nrt"},t("div",{key:"625bb82d848d490b65463cc2102ddb5f1cdaaad8",class:"nylas-reminder-time__wrapper"},t("input-dropdown",{key:"5cf299dee023154ae01545f55c5c3a126ff08cc0",name:"reminder-time",options:this.reminderTimeMinutesOptions,inputValue:this.reminderTime.toString(),exportparts:"id_dropdown: nrt__input_dropdown, id_dropdown-input: nrt__input_dropdown-input, id_dropdown-content: nrt__input_dropdown-content",defaultInputOption:this.reminderTimeMinutesOptions.find((e=>e.value==this.reminderTime))??e[0]}),t("select-dropdown",{key:"95ef5eae4f8fc8b73ed8efc4601cac5e0303c858",name:"reminder-time-unit",options:e,pluralizedLabel:this.reminderTime>1?"s":"",exportparts:"sd_dropdown: nrt__dropdown, sd_dropdown-button: nrt__dropdown-button, sd_dropdown-content: nrt__dropdown-content",defaultSelectedOption:e.find((e=>e.value==this.reminderTimeincrement))??e[0],withSearch:false}))))}static get formAssociated(){return true}get host(){return i(this)}static get watchers(){return{name:["elementNameChangedHandler"],eventReminderTimeMinutes:["eventReminderTimeMinutesChangedHandler"],reminderTimeMinutes:["reminderTimeMinutesChangedHandler"]}}};m([a({name:"nylas-reminder-time",eventToProps:{},fireRegisterEvent:true}),f("design:type",Function),f("design:paramtypes",[]),f("design:returntype",void 0)],y.prototype,"render",null);y.style=c;const b=".sc-trash-icon-h{display:flex}";const w=b;const _=class{constructor(n){e(this,n);this.width="20";this.height="21"}render(){return t("svg",{key:"a2388fd5adfdf9cc72ace3f37609cac599f9d5f2",width:this.width,height:this.height,viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t("path",{key:"f25ec7d671b53f59f83b250205f5a399f36daba4",d:"M10 0.25C11.733 0.25 13.1492 1.60645 13.2449 3.31558L13.25 3.5H18.5C18.9142 3.5 19.25 3.83579 19.25 4.25C19.25 4.6297 18.9678 4.94349 18.6018 4.99315L18.5 5H17.704L16.4239 18.0192C16.2912 19.3683 15.1984 20.41 13.8626 20.4945L13.6871 20.5H6.31293C4.95734 20.5 3.81365 19.5145 3.59883 18.1934L3.57614 18.0192L2.295 5H1.5C1.1203 5 0.806509 4.71785 0.756847 4.35177L0.75 4.25C0.75 3.8703 1.03215 3.55651 1.39823 3.50685L1.5 3.5H6.75C6.75 1.70507 8.20507 0.25 10 0.25ZM16.197 5H3.802L5.06893 17.8724C5.12768 18.4696 5.60033 18.9343 6.18585 18.9936L6.31293 19H13.6871C14.2872 19 14.7959 18.5751 14.9123 17.9982L14.9311 17.8724L16.197 5ZM11.75 7.75C12.1297 7.75 12.4435 8.03215 12.4932 8.39823L12.5 8.5V15.5C12.5 15.9142 12.1642 16.25 11.75 16.25C11.3703 16.25 11.0565 15.9678 11.0068 15.6018L11 15.5V8.5C11 8.08579 11.3358 7.75 11.75 7.75ZM8.25 7.75C8.6297 7.75 8.94349 8.03215 8.99315 8.39823L9 8.5V15.5C9 15.9142 8.66421 16.25 8.25 16.25C7.8703 16.25 7.55651 15.9678 7.50685 15.6018L7.5 15.5V8.5C7.5 8.08579 7.83579 7.75 8.25 7.75ZM10 1.75C9.08183 1.75 8.32881 2.45711 8.2558 3.35647L8.25 3.5H11.75C11.75 2.5335 10.9665 1.75 10 1.75Z",fill:"currentColor"}))}};_.style=w;export{y as nylas_reminder_time,_ as trash_icon};
2
- //# sourceMappingURL=p-86194780.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nylasReminderTimeCss","NylasReminderTimeStyle0","getInitialTimeValue","timeInMinutes","getInitialTimeIncrement","NylasReminderTime","this","eventReminderTimeMinutes","REMINDER_MINUTE_OPTIONS","elementNameChangedHandler","newValue","debug","host","setAttribute","eventReminderTimeMinutesChangedHandler","oldValue","reminderTime","reminderTimeincrement","reminderTimeMinutes","reminderTimeMinutesChangedHandler","valueChanged","emit","value","toString","name","connectedCallback","componentWillLoad","setReminderTimeMinuteOptions","componentDidLoad","disconnectedCallback","reminderTimeMinutesOptions","REMINDER_HOUR_OPTIONS","REMINDER_DAY_OPTIONS","nylasFormDropdownChangedHandler","event","detail","parseInt","internals","setFormValue","inputOptionChangedHandler","render","reminderTimeOptions","label","h","Host","key","class","part","options","inputValue","exportparts","defaultInputOption","find","i","pluralizedLabel","defaultSelectedOption","withSearch","__decorate","RegisterComponent","eventToProps","fireRegisterEvent","iconCss","TrashIconStyle0","TrashIcon","width","height","viewBox","fill","xmlns","d"],"sources":["src/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.scss?tag=nylas-reminder-time&encapsulation=shadow","src/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.tsx","src/common/icons/icon.css?tag=trash-icon&encapsulation=scoped","src/common/icons/trash.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-reminder-time {\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n label {\n display: flex;\n align-items: center;\n color: var(--nylas-base-800);\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%;\n\n /* 21px */\n span.required {\n color: var(--nylas-error, #cc4841);\n }\n\n span.label-icon {\n margin-left: 4px;\n\n tooltip-component {\n display: flex;\n }\n }\n }\n}\n\n.nylas-reminder-time__wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n input {\n padding: 12px 16px;\n border-width: 1;\n border-radius: 8px;\n border: 1px solid var(--nylas-base-200);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n width: 48px;\n }\n\n input-dropdown::part(id_dropdown-input) {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 14px 16px;\n width: 50px;\n }\n\n input-dropdown::part(id_dropdown-content) {\n width: 100%;\n min-width: unset;\n height: 160px;\n }\n\n select-dropdown {\n width: 120px;\n\n @media #{$mobile} {\n width: 100%;\n }\n }\n\n select-dropdown::part(sd_dropdown-button) {\n border: 1px solid var(--nylas-base-200);\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { REMINDER_MINUTE_OPTIONS, REMINDER_HOUR_OPTIONS, REMINDER_DAY_OPTIONS } from '@/common/constants';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { AttachInternals, Component, Host, Listen, State, h, Element, Prop, Watch, Event, EventEmitter } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\n\nfunction getInitialTimeValue(timeInMinutes: number | undefined) {\n if (!timeInMinutes) return 30;\n if (timeInMinutes >= 60 * 24) return timeInMinutes / (60 * 24);\n if (timeInMinutes >= 90 || timeInMinutes === 60) return timeInMinutes / 60;\n return timeInMinutes;\n}\n\nfunction getInitialTimeIncrement(timeInMinutes: number | undefined) {\n if (!timeInMinutes) return 30;\n if (timeInMinutes >= 60 * 24) return 60 * 24;\n if (timeInMinutes >= 90 || timeInMinutes === 60) return 60;\n return 1;\n}\n\n/**\n * The `nylas-reminder-time` component is a form input for the reminder time before an event.\n *\n * @part nrt - The event reminder container\n * @part nrt - The dropdown container for the reminder time increment\n * @part nrt__dropdown-button - The dropdown button for the reminder time increment\n * @part nrt__dropdown-content - The dropdown content for the reminder time increment\n * @part nrt__input_dropdown - The input dropdown container for the reminder time minutes\n * @part nrt__input_dropdown-input - The input for the reminder time minutes\n * @part nrt__input_dropdown-content - The dropdown content for the input reminder time minutes\n */\n@Component({\n tag: 'nylas-reminder-time',\n styleUrl: 'nylas-reminder-time.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasReminderTime {\n /**\n * The host element <nylas-reminder-time>\n */\n @Element() host!: HTMLElement;\n /**\n * The name of the reminder time. Default is 'reminder time'.\n */\n @Prop() name: string = 'reminder-time';\n /**\n * The event reminder time in minutes as set in the configuration.\n */\n @Prop() eventReminderTimeMinutes?: number;\n /**\n * The selected event reminder time state. This defaults to the reminder time from the configuration or 30 minutes.\n */\n @State() reminderTime: number = getInitialTimeValue(this.eventReminderTimeMinutes);\n /**\n * The reminder time in minutes. This defaults to the reminder time from the configuration or 30 minutes.\n */\n @State() reminderTimeMinutes: number = this.eventReminderTimeMinutes ?? 30;\n /**\n * The reminder time increment. This defaults to minute(s).\n */\n @State() reminderTimeincrement: number = getInitialTimeIncrement(this.eventReminderTimeMinutes);\n /**\n * The reminderTimeMinutesOptions for the dropdown.\n */\n @State() reminderTimeMinutesOptions = REMINDER_MINUTE_OPTIONS;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-reminder-time', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('eventReminderTimeMinutes')\n eventReminderTimeMinutesChangedHandler(newValue: number, oldValue: number) {\n debug('nylas-reminder-time', 'eventReminderTimeMinutesChangedHandler', newValue);\n if (newValue === oldValue) {\n return;\n }\n this.reminderTime = getInitialTimeValue(newValue);\n this.reminderTimeincrement = getInitialTimeIncrement(newValue);\n this.reminderTimeMinutes = newValue;\n }\n\n @Watch('reminderTimeMinutes')\n reminderTimeMinutesChangedHandler(newValue: number, oldValue: number) {\n debug('nylas-reminder-time', 'reminderTimeMinutesChangedHandler', newValue);\n if (newValue === oldValue) {\n return;\n }\n this.valueChanged.emit({ value: newValue.toString(), name: this.name });\n }\n\n /**\n * Event emitted when the event reminder time changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n connectedCallback() {\n debug('nylas-reminder-time', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-reminder-time', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n this.setReminderTimeMinuteOptions();\n }\n\n componentDidLoad() {\n debug('nylas-reminder-time', 'componentDidLoad');\n }\n\n disconnectedCallback() {\n debug('nylas-reminder-time', 'disconnectedCallback');\n }\n\n setReminderTimeMinuteOptions() {\n if (this.reminderTimeincrement === 1) {\n this.reminderTimeMinutesOptions = REMINDER_MINUTE_OPTIONS;\n } else if (this.reminderTimeincrement === 60) {\n this.reminderTimeMinutesOptions = REMINDER_HOUR_OPTIONS;\n } else this.reminderTimeMinutesOptions = REMINDER_DAY_OPTIONS;\n return this.reminderTimeMinutesOptions;\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-calendar-picker', 'nylasFormDropdownChangedHandler', event.detail);\n const { value } = event.detail;\n this.reminderTimeincrement = parseInt(value);\n\n if (this.reminderTimeincrement === 1) {\n this.reminderTime = 60;\n } else {\n this.reminderTime = 1;\n }\n\n this.setReminderTimeMinuteOptions();\n this.reminderTimeMinutes = this.reminderTime * this.reminderTimeincrement;\n this.internals.setFormValue(this.reminderTimeMinutes.toString(), this.name);\n }\n\n @Listen('inputOptionChanged')\n inputOptionChangedHandler(event: CustomEvent<{ value: number; name: string }>) {\n debug('nylas-calendar-picker', 'inputOptionChangedHandler', event.detail);\n const { value } = event.detail;\n this.reminderTime = value;\n this.reminderTimeMinutes = this.reminderTime * this.reminderTimeincrement;\n this.internals.setFormValue(this.reminderTimeMinutes.toString(), this.name);\n }\n\n @RegisterComponent<NylasReminderTime, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-reminder-time',\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n const reminderTimeOptions = [\n { value: 1, label: 'minute' },\n { value: 60, label: 'hour' },\n { value: 60 * 24, label: 'day' },\n ];\n\n return (\n <Host>\n <div class=\"nylas-reminder-time\" part=\"nrt\">\n <div class=\"nylas-reminder-time__wrapper\">\n <input-dropdown\n name={'reminder-time'}\n options={this.reminderTimeMinutesOptions}\n inputValue={this.reminderTime.toString()}\n exportparts=\"id_dropdown: nrt__input_dropdown, id_dropdown-input: nrt__input_dropdown-input, id_dropdown-content: nrt__input_dropdown-content\"\n defaultInputOption={this.reminderTimeMinutesOptions.find(i => i.value == this.reminderTime) ?? reminderTimeOptions[0]}\n />\n <select-dropdown\n name={'reminder-time-unit'}\n options={reminderTimeOptions}\n pluralizedLabel={this.reminderTime > 1 ? 's' : ''}\n exportparts=\"sd_dropdown: nrt__dropdown, sd_dropdown-button: nrt__dropdown-button, sd_dropdown-content: nrt__dropdown-content\"\n defaultSelectedOption={reminderTimeOptions.find(i => i.value == this.reminderTimeincrement) ?? reminderTimeOptions[0]}\n withSearch={false}\n />\n </div>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'trash-icon',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class TrashIcon {\n @Prop() width: string = '20';\n @Prop() height: string = '21';\n\n render() {\n // Trash icon svg\n return (\n <svg width={this.width} height={this.height} viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10 0.25C11.733 0.25 13.1492 1.60645 13.2449 3.31558L13.25 3.5H18.5C18.9142 3.5 19.25 3.83579 19.25 4.25C19.25 4.6297 18.9678 4.94349 18.6018 4.99315L18.5 5H17.704L16.4239 18.0192C16.2912 19.3683 15.1984 20.41 13.8626 20.4945L13.6871 20.5H6.31293C4.95734 20.5 3.81365 19.5145 3.59883 18.1934L3.57614 18.0192L2.295 5H1.5C1.1203 5 0.806509 4.71785 0.756847 4.35177L0.75 4.25C0.75 3.8703 1.03215 3.55651 1.39823 3.50685L1.5 3.5H6.75C6.75 1.70507 8.20507 0.25 10 0.25ZM16.197 5H3.802L5.06893 17.8724C5.12768 18.4696 5.60033 18.9343 6.18585 18.9936L6.31293 19H13.6871C14.2872 19 14.7959 18.5751 14.9123 17.9982L14.9311 17.8724L16.197 5ZM11.75 7.75C12.1297 7.75 12.4435 8.03215 12.4932 8.39823L12.5 8.5V15.5C12.5 15.9142 12.1642 16.25 11.75 16.25C11.3703 16.25 11.0565 15.9678 11.0068 15.6018L11 15.5V8.5C11 8.08579 11.3358 7.75 11.75 7.75ZM8.25 7.75C8.6297 7.75 8.94349 8.03215 8.99315 8.39823L9 8.5V15.5C9 15.9142 8.66421 16.25 8.25 16.25C7.8703 16.25 7.55651 15.9678 7.50685 15.6018L7.5 15.5V8.5C7.5 8.08579 7.83579 7.75 8.25 7.75ZM10 1.75C9.08183 1.75 8.32881 2.45711 8.2558 3.35647L8.25 3.5H11.75C11.75 2.5335 10.9665 1.75 10 1.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as e,h as s}from"./p-68c2fadf.js";const t=".sc-forward-icon-h{display:flex}";const c=t;const o=class{constructor(s){e(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"7426e6d758af2cb32e08830b5cbb4957b0e77846",fill:"auto",width:this.width,height:this.height,viewBox:"0 0 1920 1920",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"169b64ef6c5e33c451acd031be3c10e1142ac839",d:"m1246.246 64-90.496 90.496 477.952 477.952h-590.848C467.878 632.448.038 1100.416.038 1675.392v109.056h128v-109.056c0-504.576 410.368-914.944 914.816-914.944h590.848l-477.952 478.08 90.496 90.496 632.448-632.576L1246.246 64Z","fill-rule":"evenodd"}))}};o.style=c;export{o as forward_icon};
2
- //# sourceMappingURL=p-96bcc255.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-68c2fadf.js";const o=".sc-stop-icon-h{display:flex}";const e=o;const i=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"8dc33a36013bcef79884e72b0a428412f4383d17",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"af351dc81bca13956fb98e2a0471315d4006375b",d:"M4 4H20V20H4V4Z",stroke:"auto","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}))}};i.style=e;export{i as stop_icon};
2
- //# sourceMappingURL=p-aeab587c.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,h as s}from"./p-68c2fadf.js";const e=".sc-spam-icon-h{display:flex}";const o=e;const c=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"1f4df1b1d3841e97d630b22f2864201ccf7ee47e",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"62e5cd0142dbc10bec2e8c9705e43672462fd80d",d:"M20 3H4C2.89543 3 2 3.89543 2 5V19C2 20.1046 2.89543 21 4 21H20C21.1046 21 22 20.1046 22 19V5C22 3.89543 21.1046 3 20 3Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"9cf678259d1915733df9058ec36222a6f2362526",d:"M2 5L12 12.5L22 5",stroke:"auto","stroke-width":"1.5"}))}};c.style=o;export{c as spam_icon};
2
- //# sourceMappingURL=p-c417fd2f.entry.js.map
@@ -1,2 +0,0 @@
1
- import{i as t,b as e,a as i}from"./p-797cc185.js";import{c as n}from"./p-cabb2e68.js";var s;(function(t){t["Component"]="component";t["Api"]="api";t["Auth"]="auth"})(s||(s={}));var o;(function(t){t["endtime_not_in_future"]="endtime_not_in_future";t["no_booking_info"]="no_booking_info";t["no_timeslot_selected"]="no_timeslot_selected";t["no_timezone_selected"]="no_timezone_selected";t["no_booking_id"]="no_booking_id";t["no_salt"]="no_salt";t["invalid_start_time"]="invalid_start_time";t["invalid_end_time"]="invalid_end_time";t["invalid_timezone"]="invalid_timezone"})(o||(o={}));var r;(function(t){t["invalid_session"]="invalid_session";t["general_error"]="general_error";t["internal_error"]="internal_error";t["invalid_request_error"]="invalid_request_error";t["timeslot_not_available"]="timeslot_not_available";t["provider_error"]="provider_error";t["not_found_error"]="not_found_error"})(r||(r={}));class a{constructor(){this.component=t=>{const e=s.Component;const i=`${t} Error`;return{endtime_not_in_future:(t='"endtime" can not be in the future')=>({title:i,message:t,category:e}),no_booking_info:(t="No booking info provided")=>({title:i,message:t,category:e}),no_timeslot_selected:(t="No timeslot selected")=>({title:i,message:t,category:e}),no_timezone_selected:(t="No timezone selected")=>({title:i,message:t,category:e}),no_booking_id:(t="No booking id provided")=>({title:i,message:t,category:e}),no_salt:(t="No salt provided")=>({title:i,message:t,category:e}),invalid_start_time:(t="Invalid start time")=>({title:i,message:t,category:e}),invalid_end_time:(t="Invalid end time")=>({title:i,message:t,category:e}),invalid_timezone:(t="Invalid timezone")=>({title:i,message:t,category:e})}};this.api=t=>{const e=s.Api;const i=`${t} Error`;return{invalid_session:t=>({title:i,message:t,category:e}),general_error:t=>({title:i,message:t,category:e}),internal_error:t=>({title:i,message:t,category:e}),invalid_request_error:t=>({title:i,message:t,category:e}),timeslot_not_available:t=>({title:i,message:t,category:e}),provider_error:t=>({title:i,message:t,category:e}),not_found_error:t=>({title:i,message:t,category:e})}}}}class c{constructor({schedulerAPIURL:t,schedulerStore:e,sessionId:i,configId:n,slug:s,clientId:o}){this.errors=new a;this.schedulerStore=e;this.schedulerAPIURL=t;this.sessionId=i;this.configId=n;this.slug=s;this.clientId=o}getHeaders(){return this.sessionId?{Authorization:`Bearer ${this.sessionId}`}:{}}async makeAPIRequest(t,e,i,n={}){try{const s=new URL(this.schedulerAPIURL);s.pathname=t;const o=await fetch(decodeURIComponent(s.toString()),{method:e,headers:{"Content-Type":"application/json",Origin:window.location.origin,...n},body:i});const r=await o.json();return r}catch(t){return{error:{message:t.message,title:"API request failed",type:"api"}}}}getErrorMessage(t){let e=t?.message||t?.title||"Something went wrong";if(t?.type==="provider_error"){e=t?.provider_error?.error?.message||t?.provider_error?.error?.title||"Something went wrong"}return e}setConfigId(t){this.configId=t}selectDate(t){this.schedulerStore.set("selectedDate",t);this.schedulerStore.set("selectedTimeslot",null)}selectTime(t){this.schedulerStore.set("selectedTimeslot",t)}selectTimezone(t){this.schedulerStore.set("selectedTimezone",t)}selectLanguage(e){this.schedulerStore.set("selectedLanguage",e);t.changeLanguage(e)}async toggleAdditionalData(t){if(!t){await this.refetchAvailability()}this.schedulerStore.set("showBookingForm",t)}setParticipantName(t){const{bookingInfo:e}=this.schedulerStore.state;this.schedulerStore.set("bookingInfo",{...e,primaryParticipant:{...e?.primaryParticipant,name:t}})}setParticipantEmail(t){const{bookingInfo:e}=this.schedulerStore.state;this.schedulerStore.set("bookingInfo",{...e,primaryParticipant:{...e?.primaryParticipant,email:t}})}async refetchAvailability(){const t=new Date;const e=new Date(t.getFullYear(),t.getMonth(),1).getTime()/1e3;const i=e<t.getTime()/1e3?Math.floor(t.getTime()/1e3):e;const n=new Date(t.getFullYear(),t.getMonth()+1,1).getTime()/1e3;const s=await this.getAvailability(i,n);return s}async resetStoreStateAndFetchAvailability(){const t=new Date;const e=await this.refetchAvailability();const i=this.schedulerStore.get("availability").find((t=>new Date(t.start_time)>new Date));let n=t;if(i){n=i.start_time}this.schedulerStore.set("selectedDate",n);this.schedulerStore.set("eventInfo",null);this.schedulerStore.set("showBookingForm",false);this.schedulerStore.set("selectedTimeslot",null);return e}async setReschedule(t){this.schedulerStore.set("isLoading",true);const e=this.schedulerStore.state.eventInfo;if(e){this.schedulerStore.set("reschedulingEventInfo",e)}this.schedulerStore.set("rescheduleBookingId",t);const i=await this.resetStoreStateAndFetchAvailability().finally((()=>{this.schedulerStore.set("isLoading",false)}));return i}async setCancel(t){this.schedulerStore.set("cancelBookingId",t)}async setReject(t){this.schedulerStore.set("rejectBookingId",t)}async resetCancel(){const t=await this.resetStoreStateAndFetchAvailability();this.schedulerStore.set("cancelBookingId","");this.schedulerStore.set("rejectBookingId","");this.schedulerStore.set("cancelledEventInfo",null);return t}async goBack(){this.schedulerStore.set("cancelBookingId","");return}async resetConfirm(){const t=await this.resetStoreStateAndFetchAvailability();this.schedulerStore.set("organizerConfirmationBookingId","");this.schedulerStore.set("confirmedEventInfo",undefined);return t}async bookTimeslot(e){this.schedulerStore.set("isLoading",true);const{selectedTimeslot:i,selectedTimezone:n,bookingInfo:s,selectedLanguage:o}=this.schedulerStore.state;if(!e&&!s){return{error:this.errors.component(t.t("createBookingErrorTitle")).no_booking_info()}}const r=e?.timeslot||i;if(!r){return{error:this.errors.component(t.t("createBookingErrorTitle")).no_timeslot_selected()}}const a=e&&e?.timezone?e?.timezone:n;if(!a){return{error:this.errors.component(t.t("createBookingErrorTitle")).no_timezone_selected()}}const c=this.schedulerStore.get("availabilityOrderEmails");let l="";if(c.length>0){const t=r?.emails||[];for(let e=0;e<c.length;e++){if(t.includes(c[e])){l=c[e];break}}}const h=e?e?.primaryParticipant:s?.primaryParticipant;const d=e?e?.guests||[]:s?.guests||[];const g=e?e?.additionalFields:s?.additionalFields;const u=this.getHeaders();const f=!this.sessionId&&this.configId?`?configuration_id=${this.configId}`:!this.sessionId&&this.slug&&this.clientId?`?slug=${this.slug}&client_id=${this.clientId}`:"";const m=`/v3/scheduling/bookings${f}`;const _=await this.makeAPIRequest(decodeURIComponent(m),"POST",JSON.stringify({participants:l?[{email:l}]:undefined,additional_fields:g,additional_guests:d,guest:{...h},start_time:r.start_time.getTime()/1e3,end_time:r.end_time.getTime()/1e3,timezone:a,email_language:this.getTwoLetterLanguageCode(o)}),u);if("error"in _){this.schedulerStore.set("isLoading",false);const t=_.error?.type;let e=_.error;if(t&&t in this.errors.api("Create Booking")){const i=this.getErrorMessage(e);e=this.errors.api("Create Booking")[t](i)}return{error:e}}if("data"in _){this.schedulerStore.set("eventInfo",_?.data)}this.schedulerStore.set("isLoading",false);return _}async getUISettings(){this.schedulerStore.set("isLoading",true);const e=this.getHeaders();const i=!this.sessionId&&this.configId?`?configuration_id=${this.configId}`:!this.sessionId&&this.slug&&this.clientId?`?slug=${this.slug}&client_id=${this.clientId}`:"";const n=`/v3/scheduling/ui-settings${i}`;const s=await this.makeAPIRequest(n,"GET",undefined,e);if("error"in s){this.schedulerStore.set("isLoading",false);const e=s.error?.type;let i=s.error;if(e&&e in this.errors.api(t.t("getUISettingErrorTitle"))){i=this.errors.api(t.t("getUISettingErrorTitle"))[e](i?.message||i?.title||"Something went wrong")}return{error:i}}if("data"in s){this.schedulerStore.set("configSettings",s.data)}this.schedulerStore.set("isLoading",false);return s}getTwoLetterLanguageCode(t){return t.split("-")[0]}getStartTimeWithMinBookingNotice(t){const e=this.schedulerStore.get("configSettings")?.scheduler;const i=e?.min_booking_notice;if(!i){return t}const n=(new Date).getTime();if(t<(n+i*60*1e3)/1e3){return Math.floor((n+i*60*1e3)/1e3)}else{return t}}getEndTimeForAvailableDaysInFuture(t){const i=new Date;const n=this.schedulerStore.get("configSettings")?.scheduler?.available_days_in_future;const s=Math.floor(e(i,n).getTime()/1e3);const o=Math.min(s,t);return o}async getAvailability(e=0,i=0){this.schedulerStore.set("isLoading",true);const n=new URLSearchParams;const s=new Date;const o=s.getTime();if(i&&i<o/1e3){this.schedulerStore.set("isLoading",false);const e=this.errors.component(t.t("getAvailabilityErrorTitle")).endtime_not_in_future();return{error:e}}if(!e){const t=new Date(s.getFullYear(),s.getMonth(),1);e=Math.floor(t.getTime()/1e3)}if(!i){const t=new Date(s.getFullYear(),s.getMonth()+1,0);i=Math.floor(t.getTime()/1e3)}i=this.getEndTimeForAvailableDaysInFuture(i);const r=this.getStartTimeWithMinBookingNotice(e);e=r;i=r>i?r+1:i;n.append("start_time",encodeURIComponent(e.toString()));n.append("end_time",encodeURIComponent(i.toString()));if(this.configId&&!this.sessionId){n.append("configuration_id",encodeURIComponent(this.configId))}else if(this.slug&&this.clientId&&!this.sessionId){n.append("slug",encodeURIComponent(this.slug));n.append("client_id",encodeURIComponent(this.clientId))}const a=this.schedulerStore.get("rescheduleBookingId");if(a){n.append("booking_id",encodeURIComponent(a))}const c=n.toString();const l=`/v3/scheduling/availability${c?`?${c}`:""}`;const h=this.getHeaders();const d=await this.makeAPIRequest(decodeURIComponent(l),"GET",undefined,h);if("error"in d){this.schedulerStore.set("availability",[]);this.schedulerStore.set("isLoading",false);const e=d.error?.type;let i=d.error;if(e&&e in this.errors.api(t.t("getAvailabilityErrorTitle"))){const n=this.getErrorMessage(i);i=this.errors.api(t.t("getAvailabilityErrorTitle"))[e](n)}return{error:i}}if("data"in d){const t=d.data?.time_slots?.map((t=>({...t,start_time:new Date(t.start_time*1e3),end_time:new Date(t.end_time*1e3)})))||[];const e=t.filter((t=>t.start_time.getTime()>o));this.schedulerStore.set("availability",e);const i=d.data?.order||[];this.schedulerStore.set("availabilityOrderEmails",i)}this.schedulerStore.set("isLoading",false);return d}async cancelBooking(e,i){this.schedulerStore.set("isLoading",true);if(!e){return{error:this.errors.component(t.t("cancelBookingErrorTitle")).no_booking_id()}}const n=!this.sessionId&&this.configId?`?configuration_id=${this.configId}`:!this.sessionId&&this.slug&&this.clientId?`?slug=${this.slug}&client_id=${this.clientId}`:"";const s=`/v3/scheduling/bookings/${e}${n}`;const o=this.getHeaders();const r=await this.makeAPIRequest(decodeURIComponent(s),"DELETE",JSON.stringify({action:"cancel",cancellation_reason:i}),o);if("error"in r){this.schedulerStore.set("isLoading",false);const e=r.error?.type;let i=r.error;if(e&&e in this.errors.api(t.t("cancelBookingErrorTitle"))){const n=this.getErrorMessage(i);i=this.errors.api(t.t("cancelBookingErrorTitle"))[e](n)}return{error:i}}this.schedulerStore.set("cancelledEventInfo",{booking_id:e});this.schedulerStore.set("rescheduleBookingId","");this.schedulerStore.set("isLoading",false);return r}async rescheduleBooking(e,i){this.schedulerStore.set("isLoading",true);if(!e){return{error:this.errors.component(t.t("rescheduleBookingErrorTitle")).no_booking_id()}}const n=this.errors.api(t.t("rescheduleBookingErrorTitle"));const s=this.errors.component(t.t("rescheduleBookingErrorTitle"));const{bookingInfo:o,selectedTimeslot:r,selectedTimezone:a,selectedLanguage:c}=this.schedulerStore.state;const{startTime:l,endTime:h,timezone:d}=i;const g=l||r?.start_time;if(!g){return{error:s.invalid_start_time('Please pass "startTime" in data or set "selectedTimeslot" in the defaultSchedulerState.')}}const u=h||r?.end_time;if(!u){return{error:s.invalid_end_time('Please pass "endTime" in data or set "selectedTimeslot" in the defaultSchedulerState.')}}const f=this.schedulerStore.get("availabilityOrderEmails");let m="";if(f.length>0){const t=r?.emails||[];for(let e=0;e<f.length;e++){if(t.includes(f[e])){m=f[e];break}}}const _=d||a;if(!_){return{error:s.invalid_timezone('Please pass "timezone" in data or set "selectedTimezone" in the defaultSchedulerState.')}}const v=i?i?.primaryParticipant:o?.primaryParticipant;const y=i?i?.guests||[]:o?.guests||[];const I=i?i?.additionalFields:o?.additionalFields;const k=!this.sessionId&&this.configId?`?configuration_id=${this.configId}`:!this.sessionId&&this.slug&&this.clientId?`?slug=${this.slug}&client_id=${this.clientId}`:"";const b=`/v3/scheduling/bookings/${e}${k}`;const T=this.getHeaders();const p=await this.makeAPIRequest(decodeURIComponent(b),"PATCH",JSON.stringify({start_time:g.getTime()/1e3,end_time:u.getTime()/1e3,timezone:_,additional_fields:I,guest:{...v},additional_guests:y,participants:m?[{email:m}]:undefined,email_language:this.getTwoLetterLanguageCode(c)}),T);if("error"in p){this.schedulerStore.set("isLoading",false);const t=p.error?.type;let e=p.error;if(t&&t in n){const i=this.getErrorMessage(e);e=n[t](i)}return{error:e}}const w=this.schedulerStore.get("reschedulingEventInfo");if("data"in p){this.schedulerStore.set("eventInfo",p?.data)}else if(w){this.schedulerStore.set("eventInfo",w)}else{const t={booking_id:e};this.schedulerStore.set("eventInfo",t)}this.schedulerStore.set("isLoading",false);return p}async updateBooking(e){this.schedulerStore.set("isLoading",true);const{bookingId:i,status:n,reason:s}=e;const o=this.schedulerStore.get("organizerConfirmationSalt");const r=n==="confirmed"?t.t("confirmBookingErrorTitle"):t.t("rejectBookingErrorTitle");if(!i){return{error:this.errors.component(r).no_booking_id()}}if(!o){return{error:this.errors.component(r).no_salt()}}const a=!this.sessionId&&this.configId?`?configuration_id=${this.configId}`:!this.sessionId&&this.slug&&this.clientId?`?slug=${this.slug}&client_id=${this.clientId}`:"";const c=`/v3/scheduling/bookings/${i}${a}`;const l=this.getHeaders();const h=await this.makeAPIRequest(decodeURIComponent(c),"PUT",JSON.stringify({status:n,cancellation_reason:s,salt:o}),l);if("error"in h){this.schedulerStore.set("isLoading",false);const t=h.error?.type;let e=h.error;if(t&&t in this.errors.api(r)){const i=this.getErrorMessage(e);e=this.errors.api(r)[t](i)}return{error:e}}if("data"in h&&n==="confirmed"){this.schedulerStore.set("confirmedEventInfo",h?.data)}else if("request_id"in h&&n==="cancelled"){this.schedulerStore.set("cancelledEventInfo",{booking_id:i})}this.schedulerStore.set("organizerConfirmationBookingId","");this.schedulerStore.set("isLoading",false);return h}}function l(t={}){const e={selectedDate:null,selectedLanguage:navigator.language,selectedTimezone:Intl.DateTimeFormat().resolvedOptions().timeZone,selectedTimeslot:null,showBookingForm:false,availabilityOrderEmails:[],selectableDates:null,availability:[],eventDuration:0,state:"ready",eventInfo:null,cancelledEventInfo:null,isLoading:false,nylasBranding:true,...t};i(`[defaultNylasStoreState]: `,e);const s=n(e);s.onChange("availability",(t=>{i(`[availability]: `,t);const e=t.map((t=>t.start_time));i(`[selectableDates]: `,e);s.set("selectableDates",e);const n=t[0];if(!n)return;const o=Math.floor((n.end_time.getTime()-n.start_time.getTime())/6e4);i(`[durationMinutes]: `,o);s.set("eventDuration",o)}));s.reset=()=>{for(const t in e){const i=e[t];s.set(t,i)}};return s}export{l as C,s as E,c as N};
2
- //# sourceMappingURL=p-ef3561ae.js.map