@nylas/web-elements 2.4.1 → 2.5.0-canary-20260306042320
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.
- package/dist/cdn/input-color-picker/input-color-picker.es.js +3 -3
- package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +2893 -2839
- package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +286 -273
- package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/archive-icon.cjs.entry.js +1 -1
- package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
- package/dist/cjs/bold-icon.cjs.entry.js +1 -1
- package/dist/cjs/button-component_2.cjs.entry.js +2 -2
- package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +86 -62
- package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js.map +1 -1
- package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
- package/dist/cjs/checkbox-component.cjs.entry.js +1 -1
- package/dist/cjs/checkbox-group_4.cjs.entry.js +5 -5
- package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
- package/dist/cjs/checkmark-icon_15.cjs.entry.js +44 -23
- package/dist/cjs/checkmark-icon_15.cjs.entry.js.map +1 -1
- package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
- package/dist/cjs/clock-icon_4.cjs.entry.js +4 -4
- package/dist/cjs/delete-icon.cjs.entry.js +1 -1
- package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
- package/dist/cjs/folder-icon.cjs.entry.js +1 -1
- package/dist/cjs/forward-icon.cjs.entry.js +1 -1
- package/dist/cjs/globe-icon_3.cjs.entry.js +5 -5
- package/dist/cjs/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.cjs.js.map +1 -1
- package/dist/cjs/google-logo-icon_6.cjs.entry.js +19 -17
- package/dist/cjs/google-logo-icon_6.cjs.entry.js.map +1 -1
- package/dist/cjs/google-meet-icon_5.cjs.entry.js +5 -5
- package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
- package/dist/cjs/info-icon_2.cjs.entry.js +3 -3
- package/dist/cjs/input-component.cjs.entry.js +1 -1
- package/dist/cjs/input-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/italic-icon.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +4 -4
- package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-notification_2.cjs.entry.js +2 -2
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +13 -6
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduler-editor.entry.cjs.js.map +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +38 -19
- package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
- package/dist/cjs/nylas-web-elements.cjs.js +1 -1
- package/dist/cjs/person-icon.cjs.entry.js +1 -1
- package/dist/cjs/play-icon.cjs.entry.js +1 -1
- package/dist/cjs/radio-button-group.cjs.entry.js +1 -1
- package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
- package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
- package/dist/cjs/reply-icon.cjs.entry.js +1 -1
- package/dist/cjs/sent-icon.cjs.entry.js +1 -1
- package/dist/cjs/spam-icon.cjs.entry.js +1 -1
- package/dist/cjs/star-icon.cjs.entry.js +1 -1
- package/dist/cjs/stop-icon.cjs.entry.js +1 -1
- package/dist/cjs/textarea-component.cjs.entry.js +1 -1
- package/dist/cjs/toggle-switch.cjs.entry.js +1 -1
- package/dist/cjs/translate-icon.cjs.entry.js +1 -1
- package/dist/cjs/trash-fill-icon.cjs.entry.js +1 -1
- package/dist/cjs/underline-icon.cjs.entry.js +1 -1
- package/dist/cjs/{version-BpVJo5VP.js → version-Co332DgG.js} +3 -3
- package/dist/{esm/version-BCn0rl0y.js.map → cjs/version-Co332DgG.js.map} +1 -1
- package/dist/collection/common/icons/add-circle.js +1 -1
- package/dist/collection/common/icons/archive.js +1 -1
- package/dist/collection/common/icons/arrow.js +1 -1
- package/dist/collection/common/icons/bold.js +1 -1
- package/dist/collection/common/icons/calendar-agenda-fill.js +1 -1
- package/dist/collection/common/icons/calendar-agenda.js +1 -1
- package/dist/collection/common/icons/calendar-cancel.js +1 -1
- package/dist/collection/common/icons/calendar-check.js +1 -1
- package/dist/collection/common/icons/calendar-info.js +1 -1
- package/dist/collection/common/icons/calendar-patterns.js +1 -1
- package/dist/collection/common/icons/calendar.js +1 -1
- package/dist/collection/common/icons/checkmark-circle.js +1 -1
- package/dist/collection/common/icons/checkmark.js +1 -1
- package/dist/collection/common/icons/chevron.js +1 -1
- package/dist/collection/common/icons/clock.js +1 -1
- package/dist/collection/common/icons/close.js +1 -1
- package/dist/collection/common/icons/copy.js +1 -1
- package/dist/collection/common/icons/delete.js +1 -1
- package/dist/collection/common/icons/document-refresh.js +1 -1
- package/dist/collection/common/icons/dragable.js +1 -1
- package/dist/collection/common/icons/edit.js +1 -1
- package/dist/collection/common/icons/envelope-fill.js +1 -1
- package/dist/collection/common/icons/envelope.js +1 -1
- package/dist/collection/common/icons/eye.js +1 -1
- package/dist/collection/common/icons/feedback-icon.js +1 -1
- package/dist/collection/common/icons/flow.js +1 -1
- package/dist/collection/common/icons/folder.js +1 -1
- package/dist/collection/common/icons/forward.js +1 -1
- package/dist/collection/common/icons/globe.js +1 -1
- package/dist/collection/common/icons/google-logo.js +1 -1
- package/dist/collection/common/icons/google-meet.js +1 -1
- package/dist/collection/common/icons/inbox.js +1 -1
- package/dist/collection/common/icons/info.js +1 -1
- package/dist/collection/common/icons/italic.js +1 -1
- package/dist/collection/common/icons/loading.js +1 -1
- package/dist/collection/common/icons/location-off.js +1 -1
- package/dist/collection/common/icons/location.js +1 -1
- package/dist/collection/common/icons/microsof-teams.js +1 -1
- package/dist/collection/common/icons/microsoft-logo.js +1 -1
- package/dist/collection/common/icons/nylas-logo.js +1 -1
- package/dist/collection/common/icons/paintbrush-fill.js +1 -1
- package/dist/collection/common/icons/paintbrush.js +1 -1
- package/dist/collection/common/icons/people.js +1 -1
- package/dist/collection/common/icons/person-clipboard.js +1 -1
- package/dist/collection/common/icons/person.js +1 -1
- package/dist/collection/common/icons/play.js +1 -1
- package/dist/collection/common/icons/plus.js +1 -1
- package/dist/collection/common/icons/refresh.js +1 -1
- package/dist/collection/common/icons/reply-all.js +1 -1
- package/dist/collection/common/icons/reply.js +1 -1
- package/dist/collection/common/icons/search.js +1 -1
- package/dist/collection/common/icons/sent.js +1 -1
- package/dist/collection/common/icons/spam.js +1 -1
- package/dist/collection/common/icons/star.js +1 -1
- package/dist/collection/common/icons/stop.js +1 -1
- package/dist/collection/common/icons/translate.js +1 -1
- package/dist/collection/common/icons/trash-fill.js +1 -1
- package/dist/collection/common/icons/trash.js +1 -1
- package/dist/collection/common/icons/underline.js +1 -1
- package/dist/collection/common/icons/warning.js +1 -1
- package/dist/collection/common/icons/zoom.js +1 -1
- package/dist/collection/components/design-system/button-component/button-component.js +1 -1
- package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
- package/dist/collection/components/design-system/checkbox-group/checkbox-group.js +1 -1
- package/dist/collection/components/design-system/input-color-picker/input-color-picker.js +2 -2
- package/dist/collection/components/design-system/input-component/input-component.js +1 -1
- package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +1 -1
- package/dist/collection/components/design-system/input-image-url/input-image-url.js +1 -1
- package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
- package/dist/collection/components/design-system/nylas-date-component/nylas-date-component.js +1 -1
- package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
- package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
- package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
- package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
- package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
- package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +2 -2
- package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js +1 -1
- package/dist/collection/components/scheduler/nylas-feedback-form/nylas-feedback-form.js +2 -2
- package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
- package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js +2 -2
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +33 -17
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +50 -9
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +21 -10
- package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-disable-emails/nylas-disable-emails.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +11 -9
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js +5 -5
- package/dist/collection/components/scheduler-editor/nylas-event-capacity/nylas-event-capacity.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-timeslot/nylas-event-timeslot.js +3 -3
- package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-notetaker-config/nylas-notetaker-config.js +8 -8
- package/dist/collection/components/scheduler-editor/nylas-only-specific-time-availability/nylas-only-specific-time-availability.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +21 -8
- package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.js +3 -3
- package/dist/collection/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +41 -4
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-specific-time-availability-picker/nylas-specific-time-availability-picker.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +3 -3
- package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +1 -1
- package/dist/collection/connector/shared/api/scheduler.js +3 -0
- package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
- package/dist/collection/stores/scheduler-config-store.js +1 -1
- package/dist/collection/stores/scheduler-config-store.js.map +1 -1
- package/dist/collection/version.js +1 -1
- package/dist/collection/version.js.map +1 -1
- package/dist/components/add-circle-icon.js +1 -1
- package/dist/components/archive-icon.js +1 -1
- package/dist/components/arrow-icon.js +1 -1
- package/dist/components/bold-icon.js +1 -1
- package/dist/components/button-component.js +1 -1
- package/dist/components/calendar-agenda-fill-icon.js +1 -1
- package/dist/components/calendar-agenda-icon.js +1 -1
- package/dist/components/calendar-cancel-icon.js +1 -1
- package/dist/components/calendar-check-icon.js +1 -1
- package/dist/components/calendar-icon.js +1 -1
- package/dist/components/calendar-info-icon.js +1 -1
- package/dist/components/calendar-patterns-icon.js +1 -1
- package/dist/components/checkbox-component.js +1 -1
- package/dist/components/checkbox-group.js +1 -1
- package/dist/components/checkmark-circle-icon.js +1 -1
- package/dist/components/checkmark-icon.js +1 -1
- package/dist/components/chevron-icon.js +1 -1
- package/dist/components/clock-icon.js +1 -1
- package/dist/components/close-icon.js +1 -1
- package/dist/components/copy-icon.js +1 -1
- package/dist/components/delete-icon.js +1 -1
- package/dist/components/document-refresh-icon.js +1 -1
- package/dist/components/dragable-icon.js +1 -1
- package/dist/components/edit-icon.js +1 -1
- package/dist/components/envelope-fill-icon.js +1 -1
- package/dist/components/envelope-icon.js +1 -1
- package/dist/components/eye-icon.js +1 -1
- package/dist/components/feedback-icon.js +1 -1
- package/dist/components/flow-icon.js +1 -1
- package/dist/components/folder-icon.js +1 -1
- package/dist/components/forward-icon.js +1 -1
- package/dist/components/globe-icon.js +1 -1
- package/dist/components/google-logo-icon.js +1 -1
- package/dist/components/google-meet-icon.js +1 -1
- package/dist/components/inbox-icon.js +1 -1
- package/dist/components/info-icon.js +1 -1
- package/dist/components/input-color-picker.js +1 -1
- package/dist/components/input-component.js +1 -1
- package/dist/components/input-dropdown.js +1 -1
- package/dist/components/input-image-url.js +1 -1
- package/dist/components/italic-icon.js +1 -1
- package/dist/components/loading-icon.js +1 -1
- package/dist/components/location-icon.js +1 -1
- package/dist/components/location-off-icon.js +1 -1
- package/dist/components/microsoft-logo-icon.js +1 -1
- package/dist/components/microsoft-teams-icon.js +1 -1
- package/dist/components/multi-select-dropdown.js +1 -1
- package/dist/components/nylas-additional-participants.js +1 -1
- package/dist/components/nylas-availability-picker.js +1 -1
- package/dist/components/nylas-booked-event-card.js +1 -1
- package/dist/components/nylas-booking-calendar-picker.js +1 -1
- package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
- package/dist/components/nylas-booking-confirmation-type.js +1 -1
- package/dist/components/nylas-booking-form-config.js +1 -1
- package/dist/components/nylas-booking-form.js +1 -1
- package/dist/components/nylas-buffer-time.js +1 -1
- package/dist/components/nylas-calendar-picker.js +1 -1
- package/dist/components/nylas-cancel-booking-form.js +1 -1
- package/dist/components/nylas-cancellation-policy.js +1 -1
- package/dist/components/nylas-cancelled-event-card.js +1 -1
- package/dist/components/nylas-confirmation-email.js +1 -1
- package/dist/components/nylas-confirmed-event-card.js +1 -1
- package/dist/components/nylas-connected-calendars.js +1 -1
- package/dist/components/nylas-custom-booking-flow.js +1 -1
- package/dist/components/nylas-custom-event-slug.js +1 -1
- package/dist/components/nylas-customize-booking-settings.js +1 -1
- package/dist/components/nylas-date-component.js +1 -1
- package/dist/components/nylas-date-picker.js +1 -1
- package/dist/components/nylas-disable-emails.js +1 -1
- package/dist/components/nylas-editor-tabs-group.js +1 -1
- package/dist/components/nylas-editor-tabs.js +1 -1
- package/dist/components/nylas-event-calendar.js +1 -1
- package/dist/components/nylas-event-capacity.js +1 -1
- package/dist/components/nylas-event-description.js +1 -1
- package/dist/components/nylas-event-duration.js +1 -1
- package/dist/components/nylas-event-info.js +1 -1
- package/dist/components/nylas-event-limits.js +1 -1
- package/dist/components/nylas-event-location.js +1 -1
- package/dist/components/nylas-event-timeslot.js +1 -1
- package/dist/components/nylas-event-title.js +1 -1
- package/dist/components/nylas-feedback-form.js +1 -1
- package/dist/components/nylas-form-card.js +1 -1
- package/dist/components/nylas-limit-future-bookings.js +1 -1
- package/dist/components/nylas-list-configurations.js +1 -1
- package/dist/components/nylas-locale-switch.js +1 -1
- package/dist/components/nylas-logo.js +1 -1
- package/dist/components/nylas-min-booking-notice.js +1 -1
- package/dist/components/nylas-min-cancellation-notice.js +1 -1
- package/dist/components/nylas-notetaker-config.js +1 -1
- package/dist/components/nylas-notification.js +1 -1
- package/dist/components/nylas-only-specific-time-availability.js +1 -1
- package/dist/components/nylas-organizer-confirmation-card.js +1 -1
- package/dist/components/nylas-page-name.js +1 -1
- package/dist/components/nylas-page-styling.js +1 -1
- package/dist/components/nylas-participant-booking-calendars.js +1 -1
- package/dist/components/nylas-participants-custom-availability.js +1 -1
- package/dist/components/nylas-reminder-emails.js +1 -1
- package/dist/components/nylas-reminder-time.js +1 -1
- package/dist/components/nylas-scheduler-editor.js +113 -106
- package/dist/components/nylas-scheduler-editor.js.map +1 -1
- package/dist/components/nylas-scheduling-method.js +1 -1
- package/dist/components/nylas-scheduling.js +76 -57
- package/dist/components/nylas-scheduling.js.map +1 -1
- package/dist/components/nylas-select-event-type.js +1 -1
- package/dist/components/nylas-selected-event-card.js +1 -1
- package/dist/components/nylas-specific-time-availability-picker.js +1 -1
- package/dist/components/nylas-time-window-picker.js +1 -1
- package/dist/components/nylas-timeslot-interval.js +1 -1
- package/dist/components/nylas-timeslot-picker.js +1 -1
- package/dist/components/{p-BK05OJWJ.js → p-0Q791asW.js} +10 -10
- package/dist/components/{p-BK05OJWJ.js.map → p-0Q791asW.js.map} +1 -1
- package/dist/components/{p-B54Kgpd1.js → p-5RXhzvUo.js} +15 -15
- package/dist/components/{p-B54Kgpd1.js.map → p-5RXhzvUo.js.map} +1 -1
- package/dist/components/{p-DnRMuXBv.js → p-6A8ylLCU.js} +7 -7
- package/dist/components/{p-DnRMuXBv.js.map → p-6A8ylLCU.js.map} +1 -1
- package/dist/components/{p-dBa2aR6u.js → p-8f-LJhGH.js} +17 -17
- package/dist/components/{p-dBa2aR6u.js.map → p-8f-LJhGH.js.map} +1 -1
- package/dist/components/{p-DbTGA7PK.js → p-9SuQgutb.js} +5 -5
- package/dist/components/{p-DbTGA7PK.js.map → p-9SuQgutb.js.map} +1 -1
- package/dist/components/{p-D5p5Z11R.js → p-B0-YJO0f.js} +5 -5
- package/dist/components/{p-D5p5Z11R.js.map → p-B0-YJO0f.js.map} +1 -1
- package/dist/components/{p-n1uQQdTd.js → p-B2EksfAF.js} +3 -3
- package/dist/components/{p-n1uQQdTd.js.map → p-B2EksfAF.js.map} +1 -1
- package/dist/components/{p-Bkoea0ab.js → p-B2LU95MT.js} +3 -3
- package/dist/components/{p-Bkoea0ab.js.map → p-B2LU95MT.js.map} +1 -1
- package/dist/components/{p-Deswp92f.js → p-B9a2SDWB.js} +8 -8
- package/dist/components/{p-Deswp92f.js.map → p-B9a2SDWB.js.map} +1 -1
- package/dist/components/{p-BW5AWWWU.js → p-BAKh5tMf.js} +3 -3
- package/dist/components/{p-BW5AWWWU.js.map → p-BAKh5tMf.js.map} +1 -1
- package/dist/components/{p-CRjHH_OM.js → p-BD4aqMeC.js} +3 -3
- package/dist/components/{p-CRjHH_OM.js.map → p-BD4aqMeC.js.map} +1 -1
- package/dist/components/{p-wFPFZcNc.js → p-BF0muZ9G.js} +3 -3
- package/dist/components/{p-wFPFZcNc.js.map → p-BF0muZ9G.js.map} +1 -1
- package/dist/components/{p-Dhs6n8pM.js → p-BI99l5Mr.js} +3 -3
- package/dist/components/{p-Dhs6n8pM.js.map → p-BI99l5Mr.js.map} +1 -1
- package/dist/components/{p-PH-ASHZS.js → p-BNuHkEZZ.js} +3 -3
- package/dist/components/{p-PH-ASHZS.js.map → p-BNuHkEZZ.js.map} +1 -1
- package/dist/components/{p-C9beWH2f.js → p-BOk080VZ.js} +7 -7
- package/dist/components/{p-C9beWH2f.js.map → p-BOk080VZ.js.map} +1 -1
- package/dist/components/{p-Bpeu-ygG.js → p-BPbPSFbO.js} +10 -10
- package/dist/components/{p-Bpeu-ygG.js.map → p-BPbPSFbO.js.map} +1 -1
- package/dist/components/{p-CGxeg--J.js → p-BQsgOTb4.js} +14 -14
- package/dist/components/{p-CGxeg--J.js.map → p-BQsgOTb4.js.map} +1 -1
- package/dist/components/{p-DPClTQN0.js → p-BRjK4HIS.js} +10 -10
- package/dist/components/{p-DPClTQN0.js.map → p-BRjK4HIS.js.map} +1 -1
- package/dist/components/{p-S5MMQ3kK.js → p-BSfQxQEN.js} +3 -3
- package/dist/components/{p-S5MMQ3kK.js.map → p-BSfQxQEN.js.map} +1 -1
- package/dist/components/{p-WCXOX3Ou.js → p-BT5kT23k.js} +3 -3
- package/dist/components/{p-WCXOX3Ou.js.map → p-BT5kT23k.js.map} +1 -1
- package/dist/components/{p-DU3FxQJW.js → p-BTWclWyF.js} +5 -5
- package/dist/components/{p-DU3FxQJW.js.map → p-BTWclWyF.js.map} +1 -1
- package/dist/components/{p-Dvm3cFRX.js → p-BVH0Klhu.js} +4 -4
- package/dist/components/{p-Dvm3cFRX.js.map → p-BVH0Klhu.js.map} +1 -1
- package/dist/components/{p-DTF0fIhr.js → p-B_Qi3sM4.js} +3 -3
- package/dist/components/{p-DTF0fIhr.js.map → p-B_Qi3sM4.js.map} +1 -1
- package/dist/components/{p-1lKplrc1.js → p-BbQVpnV2.js} +5 -5
- package/dist/components/{p-1lKplrc1.js.map → p-BbQVpnV2.js.map} +1 -1
- package/dist/components/{p-k3eh7IEY.js → p-BhVGvOQU.js} +4 -4
- package/dist/components/{p-k3eh7IEY.js.map → p-BhVGvOQU.js.map} +1 -1
- package/dist/components/{p-Dhuiox3C.js → p-BjvgBBDi.js} +7 -7
- package/dist/components/{p-Dhuiox3C.js.map → p-BjvgBBDi.js.map} +1 -1
- package/dist/components/{p-B4WU6Ddk.js → p-BkqJQBCp.js} +3 -3
- package/dist/components/{p-B4WU6Ddk.js.map → p-BkqJQBCp.js.map} +1 -1
- package/dist/components/{p-C9OPB0dE.js → p-BluyqSV4.js} +12 -12
- package/dist/components/{p-C9OPB0dE.js.map → p-BluyqSV4.js.map} +1 -1
- package/dist/components/{p-BBKmpMW8.js → p-BmBJwWDS.js} +6 -6
- package/dist/components/{p-BBKmpMW8.js.map → p-BmBJwWDS.js.map} +1 -1
- package/dist/components/{p-D1LkVzVP.js → p-BmFTnJHK.js} +6 -6
- package/dist/components/{p-D1LkVzVP.js.map → p-BmFTnJHK.js.map} +1 -1
- package/dist/components/{p-sbWcoagv.js → p-BnEkgCIs.js} +3 -3
- package/dist/components/{p-sbWcoagv.js.map → p-BnEkgCIs.js.map} +1 -1
- package/dist/components/{p-BQqYYMC9.js → p-BoUo2hc7.js} +3 -3
- package/dist/components/{p-BQqYYMC9.js.map → p-BoUo2hc7.js.map} +1 -1
- package/dist/components/{p-CxX2L0KD.js → p-BrOgWk7y.js} +3 -3
- package/dist/components/{p-CxX2L0KD.js.map → p-BrOgWk7y.js.map} +1 -1
- package/dist/components/{p-CK4A4BDU.js → p-BxsadZ25.js} +8 -8
- package/dist/components/{p-CK4A4BDU.js.map → p-BxsadZ25.js.map} +1 -1
- package/dist/components/{p-B-gCWV_D.js → p-ByDfkWkX.js} +3 -3
- package/dist/components/{p-B-gCWV_D.js.map → p-ByDfkWkX.js.map} +1 -1
- package/dist/components/{p-B7pr9t7K.js → p-C0W947JI.js} +6 -6
- package/dist/components/{p-B7pr9t7K.js.map → p-C0W947JI.js.map} +1 -1
- package/dist/components/{p-BPwvrBru.js → p-C3knoHon.js} +4 -4
- package/dist/components/{p-BPwvrBru.js.map → p-C3knoHon.js.map} +1 -1
- package/dist/components/{p-CZF2moAV.js → p-C4BZ4XFc.js} +3 -3
- package/dist/components/{p-CZF2moAV.js.map → p-C4BZ4XFc.js.map} +1 -1
- package/dist/components/{p--JWPNuJw.js → p-C4RTQIyO.js} +3 -3
- package/dist/components/{p--JWPNuJw.js.map → p-C4RTQIyO.js.map} +1 -1
- package/dist/components/{p-GAHE0QsH.js → p-C6FGSOHu.js} +8 -8
- package/dist/components/{p-GAHE0QsH.js.map → p-C6FGSOHu.js.map} +1 -1
- package/dist/components/{p-Ccv_qdzg.js → p-C6yDHOLr.js} +6 -6
- package/dist/components/{p-Ccv_qdzg.js.map → p-C6yDHOLr.js.map} +1 -1
- package/dist/components/{p-BWj2o6Z2.js → p-C7J83Us-.js} +3 -3
- package/dist/components/{p-BWj2o6Z2.js.map → p-C7J83Us-.js.map} +1 -1
- package/dist/components/{p-hYRQCAHR.js → p-C7ZpwRD0.js} +3 -3
- package/dist/components/{p-hYRQCAHR.js.map → p-C7ZpwRD0.js.map} +1 -1
- package/dist/components/{p-I6ZJueEV.js → p-C8tr7RQP.js} +14 -14
- package/dist/components/{p-I6ZJueEV.js.map → p-C8tr7RQP.js.map} +1 -1
- package/dist/components/{p-DDuJfpmS.js → p-C9Mlv9rC.js} +3 -3
- package/dist/components/{p-DDuJfpmS.js.map → p-C9Mlv9rC.js.map} +1 -1
- package/dist/components/{p-3TuqcJ7a.js → p-CBBEkysd.js} +3 -3
- package/dist/components/{p-3TuqcJ7a.js.map → p-CBBEkysd.js.map} +1 -1
- package/dist/components/{p-B8zO9u9G.js → p-CDDw-hf8.js} +3 -3
- package/dist/components/{p-B8zO9u9G.js.map → p-CDDw-hf8.js.map} +1 -1
- package/dist/components/{p-D9TpXP_3.js → p-CFeDwD40.js} +3 -3
- package/dist/components/{p-D9TpXP_3.js.map → p-CFeDwD40.js.map} +1 -1
- package/dist/components/{p-B75UH_79.js → p-CHuh_iTR.js} +5 -5
- package/dist/components/{p-B75UH_79.js.map → p-CHuh_iTR.js.map} +1 -1
- package/dist/components/{p-CnuLK086.js → p-CJvmK-NM.js} +3 -3
- package/dist/components/{p-CnuLK086.js.map → p-CJvmK-NM.js.map} +1 -1
- package/dist/components/{p-BbMIB-Yc.js → p-CMzKWvKv.js} +3 -3
- package/dist/components/{p-BbMIB-Yc.js.map → p-CMzKWvKv.js.map} +1 -1
- package/dist/components/{p-Fc2FiFbz.js → p-COXbf1MO.js} +16 -16
- package/dist/components/{p-Fc2FiFbz.js.map → p-COXbf1MO.js.map} +1 -1
- package/dist/components/{p-BXdPZfqZ.js → p-CT64yPEO.js} +3 -3
- package/dist/components/{p-BXdPZfqZ.js.map → p-CT64yPEO.js.map} +1 -1
- package/dist/components/{p-Ba5u-TNq.js → p-CWWiQA0c.js} +6 -6
- package/dist/components/{p-Ba5u-TNq.js.map → p-CWWiQA0c.js.map} +1 -1
- package/dist/components/{p-Bo40Tzgq.js → p-CaQExWbD.js} +10 -10
- package/dist/components/{p-Bo40Tzgq.js.map → p-CaQExWbD.js.map} +1 -1
- package/dist/components/{p-DVTv2Hp1.js → p-CahZPm95.js} +4 -4
- package/dist/components/{p-DVTv2Hp1.js.map → p-CahZPm95.js.map} +1 -1
- package/dist/components/{p-B35dXoaU.js → p-Ce8gcoEa.js} +3 -3
- package/dist/components/{p-B35dXoaU.js.map → p-Ce8gcoEa.js.map} +1 -1
- package/dist/components/{p-D_1SiUrv.js → p-ChXM0wCn.js} +3 -3
- package/dist/components/{p-D_1SiUrv.js.map → p-ChXM0wCn.js.map} +1 -1
- package/dist/components/{p-CjPOfL98.js → p-CrEiNqrO.js} +20 -20
- package/dist/components/p-CrEiNqrO.js.map +1 -0
- package/dist/components/{p-DcgnP4PE.js → p-Cs_iJUbv.js} +3 -3
- package/dist/components/{p-DcgnP4PE.js.map → p-Cs_iJUbv.js.map} +1 -1
- package/dist/components/{p-DywCqDUg.js → p-CvLWbTI_.js} +3 -3
- package/dist/components/{p-DywCqDUg.js.map → p-CvLWbTI_.js.map} +1 -1
- package/dist/components/{p-BA0crRT4.js → p-Cyk3GcD_.js} +3 -3
- package/dist/components/{p-BA0crRT4.js.map → p-Cyk3GcD_.js.map} +1 -1
- package/dist/components/{p-DFnxqEjY.js → p-CykUOtqt.js} +5 -5
- package/dist/components/{p-DFnxqEjY.js.map → p-CykUOtqt.js.map} +1 -1
- package/dist/components/{p-D0Ur_s8w.js → p-CyzGRI94.js} +3 -3
- package/dist/components/{p-D0Ur_s8w.js.map → p-CyzGRI94.js.map} +1 -1
- package/dist/components/{p-DHEweiQ6.js → p-CzVZs3uZ.js} +3 -3
- package/dist/components/{p-DHEweiQ6.js.map → p-CzVZs3uZ.js.map} +1 -1
- package/dist/components/{p-3GhnM4Rs.js → p-D0g7xlgg.js} +17 -17
- package/dist/components/{p-3GhnM4Rs.js.map → p-D0g7xlgg.js.map} +1 -1
- package/dist/components/{p-BqxHAMYj.js → p-D0sMDSI5.js} +7 -7
- package/dist/components/{p-BqxHAMYj.js.map → p-D0sMDSI5.js.map} +1 -1
- package/dist/components/{p-BHKS010u.js → p-D1kxrvKw.js} +102 -100
- package/dist/components/p-D1kxrvKw.js.map +1 -0
- package/dist/components/{p-D0_t-TnJ.js → p-D2ELUj7W.js} +82 -82
- package/dist/components/{p-D0_t-TnJ.js.map → p-D2ELUj7W.js.map} +1 -1
- package/dist/components/{p-B2WOW0ov.js → p-D2FugEkX.js} +9 -9
- package/dist/components/{p-B2WOW0ov.js.map → p-D2FugEkX.js.map} +1 -1
- package/dist/components/{p-Dary9zXr.js → p-D3_U2Yis.js} +5 -5
- package/dist/components/{p-Dary9zXr.js.map → p-D3_U2Yis.js.map} +1 -1
- package/dist/components/{p-pbifVvbz.js → p-D59M0kgu.js} +6 -6
- package/dist/components/{p-pbifVvbz.js.map → p-D59M0kgu.js.map} +1 -1
- package/dist/components/{p-C7vQiSqU.js → p-D7z2dNXN.js} +3 -3
- package/dist/components/{p-C7vQiSqU.js.map → p-D7z2dNXN.js.map} +1 -1
- package/dist/components/{p-BGfs-kGd.js → p-DBHtQK2b.js} +3 -3
- package/dist/components/{p-BGfs-kGd.js.map → p-DBHtQK2b.js.map} +1 -1
- package/dist/components/{p-BPmIPX7g.js → p-DEbbVkgj.js} +3 -3
- package/dist/components/{p-BPmIPX7g.js.map → p-DEbbVkgj.js.map} +1 -1
- package/dist/components/{p-DPvhc5UR.js → p-DGWTdjcf.js} +7 -7
- package/dist/components/{p-DPvhc5UR.js.map → p-DGWTdjcf.js.map} +1 -1
- package/dist/components/{p-BB995eYS.js → p-DJcRuzNc.js} +6 -6
- package/dist/components/{p-BB995eYS.js.map → p-DJcRuzNc.js.map} +1 -1
- package/dist/components/{p-DL2k-3Y9.js → p-DNZkEEGF.js} +7 -7
- package/dist/components/{p-DL2k-3Y9.js.map → p-DNZkEEGF.js.map} +1 -1
- package/dist/components/{p-D2BnadaF.js → p-DPmhcLAV.js} +4 -4
- package/dist/components/{p-D2BnadaF.js.map → p-DPmhcLAV.js.map} +1 -1
- package/dist/components/{p-D07tmsA6.js → p-DPwhlVlN.js} +3 -3
- package/dist/components/{p-D07tmsA6.js.map → p-DPwhlVlN.js.map} +1 -1
- package/dist/components/{p-C-FqPkG1.js → p-DS6Ijr4M.js} +3 -3
- package/dist/components/{p-C-FqPkG1.js.map → p-DS6Ijr4M.js.map} +1 -1
- package/dist/components/{p-brI0OtLp.js → p-DZky0cSu.js} +21 -21
- package/dist/components/{p-brI0OtLp.js.map → p-DZky0cSu.js.map} +1 -1
- package/dist/components/{p-BB2JXH5u.js → p-DcjGlnBR.js} +3 -3
- package/dist/components/{p-BB2JXH5u.js.map → p-DcjGlnBR.js.map} +1 -1
- package/dist/components/{p-CeGr8vNo.js → p-DgCBdNz4.js} +4 -4
- package/dist/components/{p-CeGr8vNo.js.map → p-DgCBdNz4.js.map} +1 -1
- package/dist/components/{p-BO38LdDr.js → p-Dj1TLa3T.js} +3 -3
- package/dist/components/{p-BO38LdDr.js.map → p-Dj1TLa3T.js.map} +1 -1
- package/dist/components/{p-Ha2t2y12.js → p-Dl0Yur5r.js} +3 -3
- package/dist/components/{p-Ha2t2y12.js.map → p-Dl0Yur5r.js.map} +1 -1
- package/dist/components/{p-8bLDlCqt.js → p-Do-hiOVl.js} +6 -6
- package/dist/components/{p-8bLDlCqt.js.map → p-Do-hiOVl.js.map} +1 -1
- package/dist/components/{p-MHQuGZu-.js → p-DoJYki91.js} +5 -5
- package/dist/components/{p-MHQuGZu-.js.map → p-DoJYki91.js.map} +1 -1
- package/dist/components/{p-BP2IBV8d.js → p-DqM3uP9H.js} +39 -18
- package/dist/components/p-DqM3uP9H.js.map +1 -0
- package/dist/components/{p-D0zqlv9X.js → p-DsMKWaSN.js} +7 -7
- package/dist/components/{p-D0zqlv9X.js.map → p-DsMKWaSN.js.map} +1 -1
- package/dist/components/{p-CcJs1phT.js → p-DuVwrI20.js} +4 -4
- package/dist/components/{p-CcJs1phT.js.map → p-DuVwrI20.js.map} +1 -1
- package/dist/components/{p-B6_vWkUg.js → p-DwLh5aVI.js} +3 -3
- package/dist/components/{p-B6_vWkUg.js.map → p-DwLh5aVI.js.map} +1 -1
- package/dist/components/{p-Hj9jbKPX.js → p-DxDoo-4C.js} +4 -4
- package/dist/components/{p-Hj9jbKPX.js.map → p-DxDoo-4C.js.map} +1 -1
- package/dist/components/{p-_fPTbZgX.js → p-G4bkKoDi.js} +33 -33
- package/dist/components/{p-_fPTbZgX.js.map → p-G4bkKoDi.js.map} +1 -1
- package/dist/components/{p-CE-erUmL.js → p-Gm-vN7E1.js} +4 -4
- package/dist/components/{p-CE-erUmL.js.map → p-Gm-vN7E1.js.map} +1 -1
- package/dist/components/{p-9REldQO4.js → p-HeijVgBd.js} +8 -8
- package/dist/components/{p-9REldQO4.js.map → p-HeijVgBd.js.map} +1 -1
- package/dist/components/{p-CKo-5Qfq.js → p-LtcdluKm.js} +13 -13
- package/dist/components/{p-CKo-5Qfq.js.map → p-LtcdluKm.js.map} +1 -1
- package/dist/components/{p-B1gsLDiL.js → p-NBNWXBut.js} +9 -9
- package/dist/components/{p-B1gsLDiL.js.map → p-NBNWXBut.js.map} +1 -1
- package/dist/components/{p-BVrJG89A.js → p-OhUC7F_g.js} +3 -3
- package/dist/components/{p-BVrJG89A.js.map → p-OhUC7F_g.js.map} +1 -1
- package/dist/components/{p-Bfn8MxOP.js → p-QqIA-4UU.js} +5 -5
- package/dist/components/{p-Bfn8MxOP.js.map → p-QqIA-4UU.js.map} +1 -1
- package/dist/components/{p-2_78I5nY.js → p-UNYO4Uen.js} +3 -3
- package/dist/components/{p-2_78I5nY.js.map → p-UNYO4Uen.js.map} +1 -1
- package/dist/components/{p-LGPQBsXs.js → p-_gwYX3vh.js} +10 -10
- package/dist/components/{p-LGPQBsXs.js.map → p-_gwYX3vh.js.map} +1 -1
- package/dist/components/{p-BaI67hQ_.js → p-ao6VxuAL.js} +3 -3
- package/dist/components/{p-BaI67hQ_.js.map → p-ao6VxuAL.js.map} +1 -1
- package/dist/components/{p-DAvS1ihh.js → p-d3kelm3z.js} +3 -3
- package/dist/components/{p-DAvS1ihh.js.map → p-d3kelm3z.js.map} +1 -1
- package/dist/components/{p-CSGxrebs.js → p-hipsVOV5.js} +3 -3
- package/dist/components/{p-CSGxrebs.js.map → p-hipsVOV5.js.map} +1 -1
- package/dist/components/{p-CQ-EyvqC.js → p-icAweFo6.js} +4 -4
- package/dist/components/{p-CQ-EyvqC.js.map → p-icAweFo6.js.map} +1 -1
- package/dist/components/{p-CC5LBxvb.js → p-jBYg7WMS.js} +3 -3
- package/dist/components/{p-CC5LBxvb.js.map → p-jBYg7WMS.js.map} +1 -1
- package/dist/components/{p-DYNQu4cB.js → p-k68ZYeHL.js} +8 -8
- package/dist/components/{p-DYNQu4cB.js.map → p-k68ZYeHL.js.map} +1 -1
- package/dist/components/{p-dlRUGWVl.js → p-kbilJltW.js} +3 -3
- package/dist/components/{p-dlRUGWVl.js.map → p-kbilJltW.js.map} +1 -1
- package/dist/components/{p-Cm33KFk-.js → p-ollg-iFp.js} +29 -18
- package/dist/components/p-ollg-iFp.js.map +1 -0
- package/dist/components/{p-C8RnCnvv.js → p-q7g_LEwC.js} +3 -3
- package/dist/components/{p-C8RnCnvv.js.map → p-q7g_LEwC.js.map} +1 -1
- package/dist/components/{p-lJd3klAU.js → p-rrunpGAl.js} +15 -15
- package/dist/components/{p-lJd3klAU.js.map → p-rrunpGAl.js.map} +1 -1
- package/dist/components/{p-BUp6TlwK.js → p-tVUFrM9G.js} +29 -16
- package/dist/components/p-tVUFrM9G.js.map +1 -0
- package/dist/components/{p-idvnK5Rl.js → p-wphqTozF.js} +6 -6
- package/dist/components/{p-idvnK5Rl.js.map → p-wphqTozF.js.map} +1 -1
- package/dist/components/{p-RvuIq5wt.js → p-xMlGGw2N.js} +3 -3
- package/dist/components/{p-RvuIq5wt.js.map → p-xMlGGw2N.js.map} +1 -1
- package/dist/components/paintbrush-fill-icon.js +1 -1
- package/dist/components/paintbrush-icon.js +1 -1
- package/dist/components/people-icon.js +1 -1
- package/dist/components/person-clipboard-icon.js +1 -1
- package/dist/components/person-icon.js +1 -1
- package/dist/components/play-icon.js +1 -1
- package/dist/components/plus-icon.js +1 -1
- package/dist/components/radio-button-group.js +1 -1
- package/dist/components/refresh-icon.js +1 -1
- package/dist/components/reply-all-icon.js +1 -1
- package/dist/components/reply-icon.js +1 -1
- package/dist/components/search-icon.js +1 -1
- package/dist/components/select-dropdown.js +1 -1
- package/dist/components/sent-icon.js +1 -1
- package/dist/components/spam-icon.js +1 -1
- package/dist/components/star-icon.js +1 -1
- package/dist/components/stop-icon.js +1 -1
- package/dist/components/textarea-component.js +1 -1
- package/dist/components/time-period-selector.js +1 -1
- package/dist/components/toggle-switch.js +1 -1
- package/dist/components/tooltip-component.js +1 -1
- package/dist/components/translate-icon.js +1 -1
- package/dist/components/trash-fill-icon.js +1 -1
- package/dist/components/trash-icon.js +1 -1
- package/dist/components/underline-icon.js +1 -1
- package/dist/components/warning-icon.js +1 -1
- package/dist/components/zoom-icon.js +1 -1
- package/dist/esm/add-circle-icon_2.entry.js +2 -2
- package/dist/esm/archive-icon.entry.js +1 -1
- package/dist/esm/arrow-icon.entry.js +1 -1
- package/dist/esm/bold-icon.entry.js +1 -1
- package/dist/esm/button-component_2.entry.js +2 -2
- package/dist/esm/calendar-agenda-fill-icon_39.entry.js +86 -62
- package/dist/esm/calendar-agenda-fill-icon_39.entry.js.map +1 -1
- package/dist/esm/calendar-cancel-icon.entry.js +1 -1
- package/dist/esm/calendar-check-icon.entry.js +1 -1
- package/dist/esm/calendar-icon.entry.js +1 -1
- package/dist/esm/checkbox-component.entry.js +1 -1
- package/dist/esm/checkbox-group_4.entry.js +5 -5
- package/dist/esm/checkmark-circle-icon.entry.js +1 -1
- package/dist/esm/checkmark-icon_15.entry.js +44 -23
- package/dist/esm/checkmark-icon_15.entry.js.map +1 -1
- package/dist/esm/chevron-icon_3.entry.js +4 -4
- package/dist/esm/clock-icon_4.entry.js +4 -4
- package/dist/esm/delete-icon.entry.js +1 -1
- package/dist/esm/document-refresh-icon.entry.js +1 -1
- package/dist/esm/folder-icon.entry.js +1 -1
- package/dist/esm/forward-icon.entry.js +1 -1
- package/dist/esm/globe-icon_3.entry.js +5 -5
- package/dist/esm/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.js.map +1 -1
- package/dist/esm/google-logo-icon_6.entry.js +19 -17
- package/dist/esm/google-logo-icon_6.entry.js.map +1 -1
- package/dist/esm/google-meet-icon_5.entry.js +5 -5
- package/dist/esm/inbox-icon.entry.js +1 -1
- package/dist/esm/info-icon_2.entry.js +3 -3
- package/dist/esm/input-component.entry.js +1 -1
- package/dist/esm/input-dropdown_2.entry.js +2 -2
- package/dist/esm/italic-icon.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/multi-select-dropdown.entry.js +2 -2
- package/dist/esm/nylas-booked-event-card_11.entry.js +4 -4
- package/dist/esm/nylas-form-card.entry.js +1 -1
- package/dist/esm/nylas-notification_2.entry.js +2 -2
- package/dist/esm/nylas-scheduler-editor.entry.js +13 -6
- package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/esm/nylas-scheduling.entry.js +38 -19
- package/dist/esm/nylas-scheduling.entry.js.map +1 -1
- package/dist/esm/nylas-web-elements.js +1 -1
- package/dist/esm/person-icon.entry.js +1 -1
- package/dist/esm/play-icon.entry.js +1 -1
- package/dist/esm/radio-button-group.entry.js +1 -1
- package/dist/esm/refresh-icon.entry.js +1 -1
- package/dist/esm/reply-all-icon.entry.js +1 -1
- package/dist/esm/reply-icon.entry.js +1 -1
- package/dist/esm/sent-icon.entry.js +1 -1
- package/dist/esm/spam-icon.entry.js +1 -1
- package/dist/esm/star-icon.entry.js +1 -1
- package/dist/esm/stop-icon.entry.js +1 -1
- package/dist/esm/textarea-component.entry.js +1 -1
- package/dist/esm/toggle-switch.entry.js +1 -1
- package/dist/esm/translate-icon.entry.js +1 -1
- package/dist/esm/trash-fill-icon.entry.js +1 -1
- package/dist/esm/underline-icon.entry.js +1 -1
- package/dist/esm/{version-BCn0rl0y.js → version-ClDvNLDf.js} +3 -3
- package/dist/{cjs/version-BpVJo5VP.js.map → esm/version-ClDvNLDf.js.map} +1 -1
- package/dist/nylas-web-elements/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/{p-9e4672ac.entry.js → p-02343d66.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-053363a5.entry.js → p-11f478bd.entry.js} +2 -2
- package/dist/nylas-web-elements/p-12a29e9d.entry.js +11 -0
- package/dist/nylas-web-elements/p-12a29e9d.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-16db18a3.entry.js +2 -0
- package/dist/nylas-web-elements/{p-5d087249.entry.js → p-1741705d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-52a66db6.entry.js → p-219fd6f9.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-c0a17829.entry.js → p-37c5834c.entry.js} +2 -2
- package/dist/nylas-web-elements/p-37eedc9d.entry.js +2 -0
- package/dist/nylas-web-elements/{p-c50fdabc.entry.js → p-38d830c6.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-13a88760.entry.js → p-3d1fd865.entry.js} +2 -2
- package/dist/nylas-web-elements/p-43c3f331.entry.js +2 -0
- package/dist/nylas-web-elements/p-55b2df61.entry.js +2 -0
- package/dist/nylas-web-elements/{p-5b01e519.entry.js → p-5a861a93.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-843fff90.entry.js → p-62d0c211.entry.js} +2 -2
- package/dist/nylas-web-elements/p-68195a72.entry.js +2 -0
- package/dist/nylas-web-elements/{p-dfc63fe6.entry.js → p-7930474b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b184b489.entry.js → p-7bc4f51f.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-07beb85c.entry.js → p-7fe0b3bb.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b2c497eb.entry.js → p-84c3921f.entry.js} +2 -2
- package/dist/nylas-web-elements/p-88e89256.entry.js +2 -0
- package/dist/nylas-web-elements/{p-1398e461.entry.js → p-8b55669a.entry.js} +2 -2
- package/dist/nylas-web-elements/p-913511c9.entry.js +2 -0
- package/dist/nylas-web-elements/p-913511c9.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-8256e49f.entry.js → p-932456ba.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3b4ce792.entry.js → p-974fce52.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-051c1704.entry.js → p-991b94bd.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d1948f4c.entry.js → p-9dd10333.entry.js} +2 -2
- package/dist/nylas-web-elements/p-ClDvNLDf.js +2 -0
- package/dist/nylas-web-elements/{p-BCn0rl0y.js.map → p-ClDvNLDf.js.map} +1 -1
- package/dist/nylas-web-elements/{p-8bcf3b85.entry.js → p-a3b1ac68.entry.js} +2 -2
- package/dist/nylas-web-elements/p-a3baa9bf.entry.js +2 -0
- package/dist/nylas-web-elements/p-a94cbeb7.entry.js +2 -0
- package/dist/nylas-web-elements/{p-a64038fa.entry.js → p-af340293.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-8ea62358.entry.js → p-b6eb8c04.entry.js} +2 -2
- package/dist/nylas-web-elements/p-bafa8e30.entry.js +2 -0
- package/dist/nylas-web-elements/p-bafa8e30.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-bca85255.entry.js +2 -0
- package/dist/nylas-web-elements/p-bf9adc08.entry.js +8 -0
- package/dist/nylas-web-elements/p-bf9adc08.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-0dd59c68.entry.js → p-c0f88f23.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d20045de.entry.js → p-c59fc361.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-4e81d20a.entry.js → p-c96b6f73.entry.js} +2 -2
- package/dist/nylas-web-elements/p-d2f6e3d9.entry.js +2 -0
- package/dist/nylas-web-elements/p-d2f6e3d9.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-c760d10c.entry.js → p-d752c738.entry.js} +2 -2
- package/dist/nylas-web-elements/p-de990849.entry.js +2 -0
- package/dist/nylas-web-elements/p-e2dd457a.entry.js +2 -0
- package/dist/nylas-web-elements/p-e734cde9.entry.js +2 -0
- package/dist/nylas-web-elements/p-ed89219a.entry.js +2 -0
- package/dist/nylas-web-elements/p-f0406089.entry.js +2 -0
- package/dist/nylas-web-elements/{p-059379cf.entry.js → p-f3622337.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-714cfaaa.entry.js → p-f4516330.entry.js} +2 -2
- package/dist/nylas-web-elements/p-f7f2c232.entry.js +2 -0
- package/dist/nylas-web-elements/{p-401fd416.entry.js → p-f84b98e9.entry.js} +2 -2
- package/dist/stencil.config.js +9 -1
- package/dist/stencil.config.js.map +1 -1
- package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +2 -1
- package/dist/types/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.d.ts +1 -0
- package/dist/types/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.d.ts +1 -0
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +9 -0
- package/dist/types/components.d.ts +10 -0
- package/dist/types/connector/shared/api/scheduler.d.ts +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/components/p-BHKS010u.js.map +0 -1
- package/dist/components/p-BP2IBV8d.js.map +0 -1
- package/dist/components/p-BUp6TlwK.js.map +0 -1
- package/dist/components/p-CjPOfL98.js.map +0 -1
- package/dist/components/p-Cm33KFk-.js.map +0 -1
- package/dist/nylas-web-elements/p-00454d48.entry.js +0 -2
- package/dist/nylas-web-elements/p-00454d48.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-038c59e1.entry.js +0 -2
- package/dist/nylas-web-elements/p-0c5c41bf.entry.js +0 -2
- package/dist/nylas-web-elements/p-106cec0c.entry.js +0 -2
- package/dist/nylas-web-elements/p-212e4c6b.entry.js +0 -2
- package/dist/nylas-web-elements/p-25966881.entry.js +0 -8
- package/dist/nylas-web-elements/p-25966881.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-2e732ba2.entry.js +0 -2
- package/dist/nylas-web-elements/p-3001a2db.entry.js +0 -2
- package/dist/nylas-web-elements/p-351a0c32.entry.js +0 -2
- package/dist/nylas-web-elements/p-3cb90051.entry.js +0 -2
- package/dist/nylas-web-elements/p-3cb90051.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-531412c9.entry.js +0 -2
- package/dist/nylas-web-elements/p-616b6000.entry.js +0 -2
- package/dist/nylas-web-elements/p-6604dde1.entry.js +0 -11
- package/dist/nylas-web-elements/p-6604dde1.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-6e899199.entry.js +0 -2
- package/dist/nylas-web-elements/p-7117e2e0.entry.js +0 -2
- package/dist/nylas-web-elements/p-8823bc36.entry.js +0 -2
- package/dist/nylas-web-elements/p-9758d9fc.entry.js +0 -2
- package/dist/nylas-web-elements/p-9758d9fc.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-BCn0rl0y.js +0 -2
- package/dist/nylas-web-elements/p-b5d145cd.entry.js +0 -2
- package/dist/nylas-web-elements/p-de00f363.entry.js +0 -2
- package/dist/nylas-web-elements/p-fb4fece1.entry.js +0 -2
- /package/dist/nylas-web-elements/{p-9e4672ac.entry.js.map → p-02343d66.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-053363a5.entry.js.map → p-11f478bd.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7117e2e0.entry.js.map → p-16db18a3.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5d087249.entry.js.map → p-1741705d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-52a66db6.entry.js.map → p-219fd6f9.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c0a17829.entry.js.map → p-37c5834c.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8823bc36.entry.js.map → p-37eedc9d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c50fdabc.entry.js.map → p-38d830c6.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-13a88760.entry.js.map → p-3d1fd865.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-531412c9.entry.js.map → p-43c3f331.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-212e4c6b.entry.js.map → p-55b2df61.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5b01e519.entry.js.map → p-5a861a93.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-843fff90.entry.js.map → p-62d0c211.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b5d145cd.entry.js.map → p-68195a72.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-dfc63fe6.entry.js.map → p-7930474b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b184b489.entry.js.map → p-7bc4f51f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-07beb85c.entry.js.map → p-7fe0b3bb.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b2c497eb.entry.js.map → p-84c3921f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-fb4fece1.entry.js.map → p-88e89256.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-1398e461.entry.js.map → p-8b55669a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8256e49f.entry.js.map → p-932456ba.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3b4ce792.entry.js.map → p-974fce52.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-051c1704.entry.js.map → p-991b94bd.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d1948f4c.entry.js.map → p-9dd10333.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8bcf3b85.entry.js.map → p-a3b1ac68.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-de00f363.entry.js.map → p-a3baa9bf.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-351a0c32.entry.js.map → p-a94cbeb7.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a64038fa.entry.js.map → p-af340293.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8ea62358.entry.js.map → p-b6eb8c04.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2e732ba2.entry.js.map → p-bca85255.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-0dd59c68.entry.js.map → p-c0f88f23.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d20045de.entry.js.map → p-c59fc361.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-4e81d20a.entry.js.map → p-c96b6f73.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c760d10c.entry.js.map → p-d752c738.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3001a2db.entry.js.map → p-de990849.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-616b6000.entry.js.map → p-e2dd457a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-106cec0c.entry.js.map → p-e734cde9.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6e899199.entry.js.map → p-ed89219a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-0c5c41bf.entry.js.map → p-f0406089.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-059379cf.entry.js.map → p-f3622337.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-714cfaaa.entry.js.map → p-f4516330.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-038c59e1.entry.js.map → p-f7f2c232.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-401fd416.entry.js.map → p-f84b98e9.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Errors","constructor","this","component","_title","category","ErrorCategory","Component","title","endtime_not_in_future","message","no_booking_info","no_timeslot_selected","no_timezone_selected","no_booking_id","no_salt","invalid_start_time","invalid_end_time","invalid_timezone","no_config_id","api","Api","invalid_session","general_error","internal_error","invalid_request_error","timeslot_not_available","provider_error","not_found_error","NylaSchedulerAPIConnector","schedulerAPIURL","schedulerStore","sessionId","configId","slug","clientId","errors","getHeaders","Authorization","makeAPIRequest","path","method","body","headers","schedulerURL","URL","pathname","response","fetch","decodeURIComponent","toString","Origin","window","location","origin","version","data","json","error","type","getErrorMessage","errorMessage","setConfigId","setSessionId","selectDate","date","set","selectTime","time","selectTimezone","timezone","selectLanguage","language","i18next","changeLanguage","toggleAdditionalData","value","refetchAvailability","setParticipantName","name","bookingInfo","state","primaryParticipant","setParticipantEmail","email","today","Date","startTime","getFullYear","getMonth","getTime","startTimeWithOffset","Math","floor","endTime","result","getAvailability","resetStoreStateAndFetchAvailability","firstAvailableDate","get","find","timeslot","start_time","_selectedDate","setReschedule","bookingID","eventInfo","getUISettings","finally","setCancel","setReject","resetCancel","goBack","resetConfirm","undefined","bookTimeslot","selectedTimeslot","selectedTimezone","selectedLanguage","t","order","participantToBookWith","emails","addFields","Object","entries","additionalFields","forEach","key","entry","primaryGuest","guests","additional_fields","configIdParam","url","length","JSON","stringify","additional_guests","guest","end_time","event_id","master_id","calendar_id","email_language","getTwoLetterLanguageCode","shift","includes","participants","startsWith","errorType","bookingId","app_client_id","split","getStartTimeWithMinBookingNotice","scheduler","min_booking_notice","getEndTimeForAvailableDaysInFuture","availableDaysInFuture","available_days_in_future","endTimeForAvailableDaysInFuture","addDaysToCurrentDate","endTimeWithOffset","min","params","URLSearchParams","now","nowTime","startOfMonth","endOfMonth","startTimeWithMinBooking","append","encodeURIComponent","rescheduleBookingId","queryString","toLowerCase","availability","time_slots","map","availabilityTimeslotsFiltered","filter","availabilityTimeslotSorted","sort","a","b","cancelBooking","reason","action","cancellation_reason","booking_id","rescheduleBooking","apiErrors","componentErrors","i","time_zone","event","updateBooking","payload","status","salt","errorTitle","validateGroupEventTimeslot","configuration_id","NylasSchedulerConnector","nylasSchedulerStore","Error","href","init","debug","_schedulerAPIConnector","resetStores","reset","CreateNylasSchedulerStore","defaultState","defaultNylasStoreState","selectedDate","navigator","Intl","DateTimeFormat","resolvedOptions","timeZone","showBookingForm","availabilityOrderEmails","selectableDates","eventDuration","cancelledEventInfo","isLoading","nylasBranding","store","createStore","onChange","durationMinutes","SchedulerView","props","children","showNotification","h","Fragment","class","target","rel","slot","MessageBanner","_props","nylasSchedulingCss","genericError","NylasScheduling","hostRef","initDeferred","mode","schedulerApiUrl","eventOverrides","enableUserFeedback","automaticComponentRegistration","selectedDateLabel","toLocaleDateString","dateStyle","showFeedbackModal","bookingInfoConfirmed","connectedCallback","componentWillLoad","Promise","resolve","Sentry.isInitialized","Sentry.init","dsn","release","integrations","_integration","Sentry.feedbackIntegration","colorScheme","autoInject","autoSessionTracking","beforeSend","schedulerWillLoadEvent","schedulerWillLoad","emit","host","nylasSchedulerConnector","defaultPrevented","urlParams","search","langFromUrl","validLanguageFromUrl","values","LANGUAGE_CODE","stores","themeConfig","hour12","defaultLanguage","en","defaultSchedulerState","baseProvider","NylasBaseProvider","refConfigId","configurationId","bookingRefExtractedEvent","rescheduleBookingRef","rescheduleConfigId","_","compactStringToUUIDs","bookingRefExtracted","cancelBookingRef","cancelConfigId","cancelBookingId","organizerConfirmationBookingRef","organizerConfirmationConfigId","organizerConfirmationBookingId","bookingRef","nylasSchedulerError","notification","getErrorObject","applyThemeConfig","hasBookingRef","checkIfSessionIdOrConfigIdExists","getStore","initEvent","componentDidLoad","schedulerDidLoadEvent","schedulerDidLoad","performSchedulerDataFetch","localizationChanged","localization","settingsResponse","appearance","configSettingsLoadedEvent","configSettingsLoaded","settings","isTimeslotValid","validateAvailableDaysInFuture","hasValidAuthConfig","performDeferredInit","document","dispatchEvent","CustomEvent","detail","bubbles","authPropsChanged","configurationIdChanged","sessionIdChanged","slugChanged","clientIdChanged","componentDisconnected","bookingInfoChanged","newVal","rescheduleBookingRefChanged","cancelBookingRefChanged","organizerConfirmationBookingRefChanged","keys","lang","addResourceBundle","defaultLanguageChanged","themeConfigChanged","languageChanged","newLanguage","registerComponentHandler","registerComponent","unregisterComponentHandler","unregisterComponent","monthChangedHandler","mapToBookingData","bookButtonClickedHandler","bookingData","mappedBookingData","storeRescheduleId","resultData","bookedEventInfoEvent","bookedEventInfo","dateSelectedHandler","cancelBookedEventErrorHandler","cancelBookedEventValidationErrorHandler","rescheduleBookedEventErrorHandler","confirmBookingErrorHandler","feedbackModalClosedHandler","eventIsFullHandler","_event","nylasSchedulerInfo","NotificationType","Info","description","id","ttl","feedbackSubmittedHandler","Sentry.captureMessage","extra","feedback","Sentry.captureFeedback","includeReplay","captureContext","tags","getNylasSchedulerStore","getNylasSchedulerConnector","getRef","emitError","startDate","endTimeForCurrentMonth","style","setProperty","onFeedbackClick","e","preventDefault","redirectToCustomUrl","assign","nylasFormDropdownChangedHandler","render","showDefaultScheduler","rejectBookingId","confirmedEventInfo","redirectUrl","confirmation_redirect_url","capitalizeFirstLetter","languageOptions","LANGUAGE_MAP","label","Host","part","exportparts","variant","onClick","searchPlaceholder","options","withChevron","defaultSelectedOption","width","height","recipient","booking_ref","bookingInfoAdditionalFields","configSettings","timeslotPickerCTALabel","querySelector"],"sources":["src/connector/nylas-scheduler-connector/errors/index.ts","src/connector/shared/api/scheduler.ts","src/connector/nylas-scheduler-connector/index.ts","src/stores/scheduler-store.ts","src/components/scheduler/nylas-scheduling/scheduler-view.tsx","src/components/scheduler/nylas-scheduling/message-banner.tsx","src/components/scheduler/nylas-scheduling/nylas-scheduling.scss?tag=nylas-scheduling&encapsulation=shadow","src/components/scheduler/nylas-scheduling/nylas-scheduling.tsx"],"sourcesContent":["import { ComponentErrorType, ErrorCategory, ErrorDetails } from '@/types/index';\nimport { APIErrorType } from '@nylas/core';\nexport class Errors {\n component = (_title: string): Record<ComponentErrorType, (message?: string) => ErrorDetails> => {\n const category = ErrorCategory.Component;\n const title = `${_title} Error`;\n return {\n endtime_not_in_future: (message: string = '\"endtime\" can not be in the future') => {\n return {\n title,\n message,\n category,\n };\n },\n no_booking_info: (message: string = 'No booking info provided') => {\n return {\n title,\n message,\n category,\n };\n },\n no_timeslot_selected: (message: string = 'No timeslot selected') => {\n return {\n title,\n message,\n category,\n };\n },\n no_timezone_selected: (message: string = 'No timezone selected') => {\n return {\n title,\n message,\n category,\n };\n },\n no_booking_id: (message: string = 'No booking id provided') => {\n return {\n title,\n message,\n category,\n };\n },\n no_salt: (message: string = 'No salt provided') => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_start_time: (message: string = 'Invalid start time') => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_end_time: (message: string = 'Invalid end time') => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_timezone: (message: string = 'Invalid timezone') => {\n return {\n title,\n message,\n category,\n };\n },\n no_config_id: (message: string = 'No configuration id provided') => {\n return {\n title,\n message,\n category,\n };\n },\n };\n };\n\n api = (_title: string): Record<APIErrorType, (message: string) => ErrorDetails> => {\n const category = ErrorCategory.Api;\n const title = `${_title} Error`;\n\n return {\n invalid_session: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n general_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n internal_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n invalid_request_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n timeslot_not_available: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n provider_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n not_found_error: (message: string) => {\n return {\n title,\n message,\n category,\n };\n },\n };\n };\n}\n","import { AvailabilityResponse, NylasSchedulerBookingData, NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { NylasSchedulerStoreType } from '../../../components';\nimport type { NylasErrorResponse, NylasResponse, NylasSchedulerResponse, Timeslot } from '@nylas/core';\nimport { Errors } from '@/connector/nylas-scheduler-connector/errors';\nimport { addDaysToCurrentDate } from '@/utils/utils';\nimport i18next from '@/utils/i18n';\nimport { APIErrorType } from '@nylas/core';\nimport { ErrorCategory } from '@/types/index';\nimport { version } from '@/version';\n\ntype NylasSchedulerAPIConnectorOptions = {\n schedulerAPIURL: string;\n schedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n\n/**\n * NylaSchedulerConnector\n * This class is used to make API requests to the scheduler.\n */\nexport class NylaSchedulerAPIConnector {\n private schedulerStore: NylasSchedulerStoreType;\n private schedulerAPIURL: string;\n private sessionId: string | undefined;\n private configId: string | undefined;\n private slug: string | undefined;\n private clientId: string | undefined;\n private errors = new Errors();\n\n constructor({ schedulerAPIURL, schedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerAPIConnectorOptions) {\n this.schedulerStore = schedulerStore;\n this.schedulerAPIURL = schedulerAPIURL;\n this.sessionId = sessionId;\n this.configId = configId;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n private getHeaders() {\n return this.sessionId\n ? {\n Authorization: `Bearer ${this.sessionId}`,\n }\n : {};\n }\n\n /**\n * Makes an API request to the scheduler.\n * @param path The path to the API endpoint.\n * @param method The HTTP method.\n * @param body The request body (if any).\n * @returns {Promise<T>}\n */\n public async makeAPIRequest<T>(path: string, method: string, body: string | undefined, headers = {}): Promise<NylasResponse<T>> {\n try {\n const schedulerURL = new URL(this.schedulerAPIURL);\n schedulerURL.pathname = path;\n const response = await fetch(decodeURIComponent(schedulerURL.toString()), {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'Origin': window.location.origin,\n 'X-Source': 'nylas-scheduling',\n 'X-Nylas-Web-Elements-Version': version,\n ...(this.clientId && { 'X-Nylas-Application-Public-Id': this.clientId }),\n ...headers,\n },\n body,\n });\n // The server returns a json object for errors: eg.\n // {\n // \"request_id\": \"<request_id>\",\n // \"error\": {\n // \"type\": \"not_found_error\",\n // \"message\": \"Session not found\"\n // }\n // }\n const data = await response.json();\n return data as NylasResponse<T>;\n } catch (error: any) {\n // NOTE: current server implementation doesn't return a JSON object for errors on some endpoints\n // handle this case by returning the error response as a string to be handled downstream\n return {\n error: {\n message: error.message,\n title: 'API request failed',\n type: 'api',\n },\n } as NylasErrorResponse;\n }\n }\n\n private getErrorMessage(error: NylasErrorResponse['error']) {\n let errorMessage = error?.message || error?.title || 'Something went wrong';\n if (error?.type === 'provider_error') {\n errorMessage = error?.provider_error?.error?.message || error?.provider_error?.error?.title || 'Something went wrong';\n }\n return errorMessage;\n }\n\n public setConfigId(configId: string) {\n this.configId = configId;\n }\n\n public setSessionId(sessionId: string) {\n this.sessionId = sessionId;\n }\n\n /**\n * Selects a date in the scheduler.\n */\n public selectDate(date: Date) {\n this.schedulerStore.set('selectedDate', date);\n this.schedulerStore.set('selectedTimeslot', null);\n }\n\n /**\n * Selects a time in the scheduler.\n */\n public selectTime(time: Timeslot) {\n this.schedulerStore.set('selectedTimeslot', time);\n }\n\n /**\n * Sets the timezone in the scheduler.\n */\n public selectTimezone(timezone: string) {\n this.schedulerStore.set('selectedTimezone', timezone);\n }\n\n /**\n * Sets the language in the scheduler.\n */\n public selectLanguage(language: string) {\n this.schedulerStore.set('selectedLanguage', language);\n i18next.changeLanguage(language);\n }\n\n /**\n * Toggles showBookingForm\n * @param value boolean\n */\n public async toggleAdditionalData(value: boolean) {\n if (!value) {\n // Refetch availability\n await this.refetchAvailability();\n }\n this.schedulerStore.set('showBookingForm', value);\n }\n\n /**\n * Set/update the name of the participant booking the event.\n */\n public setParticipantName(name: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n name,\n },\n });\n }\n\n /**\n * Set/update the email of the participant booking the event.\n */\n public setParticipantEmail(email: string) {\n const { bookingInfo } = this.schedulerStore.state;\n this.schedulerStore.set('bookingInfo', {\n ...bookingInfo,\n primaryParticipant: {\n ...(bookingInfo?.primaryParticipant as NylasSchedulerBookingData['primaryParticipant']),\n email,\n },\n });\n }\n\n private async refetchAvailability() {\n const today = new Date();\n // Refetch availability\n const startTime = new Date(today.getFullYear(), today.getMonth(), 1).getTime() / 1000;\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n const endTime = new Date(today.getFullYear(), today.getMonth() + 1, 1).getTime() / 1000;\n const result = await this.getAvailability(startTimeWithOffset, endTime);\n return result;\n }\n\n private async resetStoreStateAndFetchAvailability() {\n const today = new Date();\n // Refetch availability\n const result = await this.refetchAvailability();\n // Set selected date to first available date\n const firstAvailableDate = this.schedulerStore.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n let _selectedDate = today;\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n this.schedulerStore.set('selectedDate', _selectedDate);\n // Reset store state\n this.schedulerStore.set('eventInfo', null);\n this.schedulerStore.set('showBookingForm', false);\n this.schedulerStore.set('selectedTimeslot', null);\n\n return result;\n }\n\n /**\n * Set reschedule booking id\n */\n public async setReschedule(bookingID: string) {\n this.schedulerStore.set('isLoading', true);\n const eventInfo = this.schedulerStore.state.eventInfo;\n if (eventInfo) {\n this.schedulerStore.set('reschedulingEventInfo', eventInfo);\n }\n this.schedulerStore.set('rescheduleBookingId', bookingID);\n await this.getUISettings();\n // Set reschedule booking id\n const result = await this.resetStoreStateAndFetchAvailability().finally(() => {\n this.schedulerStore.set('isLoading', false);\n });\n\n return result;\n }\n\n /**\n * Set cancel booking id\n */\n public async setCancel(bookingID: string) {\n this.schedulerStore.set('cancelBookingId', bookingID);\n }\n\n /**\n * Set reject booking id\n */\n public async setReject(bookingID: string) {\n this.schedulerStore.set('rejectBookingId', bookingID);\n }\n\n public async resetCancel() {\n const result = await this.resetStoreStateAndFetchAvailability();\n this.schedulerStore.set('cancelBookingId', '');\n this.schedulerStore.set('rejectBookingId', '');\n this.schedulerStore.set('cancelledEventInfo', null);\n return result;\n }\n\n public async goBack() {\n this.schedulerStore.set('cancelBookingId', '');\n return;\n }\n\n public async resetConfirm() {\n const result = await this.resetStoreStateAndFetchAvailability();\n this.schedulerStore.set('organizerConfirmationBookingId', '');\n this.schedulerStore.set('confirmedEventInfo', undefined);\n return result;\n }\n\n /**\n * Book the selected timeslot.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async bookTimeslot(data?: NylasSchedulerBookingDataWithFlatFields & { timeslot?: Timeslot }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { selectedTimeslot, selectedTimezone, bookingInfo, selectedLanguage } = this.schedulerStore.state;\n\n if (!data && !bookingInfo) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_booking_info() };\n }\n\n const timeslot = data?.timeslot || selectedTimeslot;\n if (!timeslot) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_timeslot_selected() };\n }\n\n const timezone = data && data?.timezone ? data?.timezone : selectedTimezone;\n const language = selectedLanguage || 'en-US';\n\n if (!timezone) {\n return { error: this.errors.component(i18next.t('createBookingErrorTitle')).no_timezone_selected() };\n }\n\n const order = [...this.schedulerStore.get('availabilityOrderEmails')];\n\n let participantToBookWith = '';\n const emails = timeslot?.emails || [];\n\n const addFields = {};\n Object.entries(bookingInfo?.additionalFields || {}).forEach(([key, entry]) => {\n addFields[key] = (entry as { value: string; type?: string }).value;\n });\n\n const primaryGuest = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? data?.additionalFields : addFields;\n\n const headers = this.getHeaders();\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings${configIdParam}`;\n\n // If the order array is empty, make a single request without retries\n if (order.length === 0) {\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n additional_fields,\n additional_guests: guests,\n guest: { ...primaryGuest },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n timezone,\n event_id: timeslot?.event_id || undefined,\n master_id: timeslot?.master_id || undefined,\n calendar_id: timeslot?.calendar_id || undefined,\n email_language: this.getTwoLetterLanguageCode(language),\n }),\n headers,\n );\n\n this.schedulerStore.set('isLoading', false);\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response.data);\n return response;\n }\n return { error: response.error };\n }\n\n while (order.length > 0) {\n participantToBookWith = order.shift()!;\n\n if (!emails.includes(participantToBookWith)) {\n continue; // Skip if the email is not part of the timeslot\n }\n\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n participants: participantToBookWith ? [{ email: participantToBookWith }] : undefined,\n additional_fields,\n additional_guests: guests,\n guest: { ...primaryGuest },\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n timezone: timezone,\n email_language: this.getTwoLetterLanguageCode(language),\n }),\n headers,\n );\n\n if ('data' in response) {\n // Successful booking\n this.schedulerStore.set('isLoading', false);\n this.schedulerStore.set('eventInfo', response?.data);\n return response;\n } else if (response.error?.message?.startsWith('The selected timeslot is unavailable')) {\n // Retry with the next email in the order\n continue;\n } else {\n // Return other errors\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('createBookingErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('createBookingErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n }\n\n // If no emails in order succeed\n this.schedulerStore.set('isLoading', false);\n return {\n error: this.errors.api(i18next.t('createBookingErrorTitle')).timeslot_not_available('The selected timeslot is unavailable'),\n };\n }\n\n /**\n * Get UI settings for the scheduler.\n */\n public async getUISettings(): Promise<NylasSchedulerResponse<UISettingsResponse>> {\n this.schedulerStore.set('isLoading', true);\n const bookingId = this.schedulerStore.get('rescheduleBookingId');\n const headers = this.getHeaders();\n let configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n if (bookingId && !!configIdParam) {\n configIdParam += `&booking_id=${bookingId}`;\n } else if (bookingId) {\n configIdParam += `?booking_id=${bookingId}`;\n }\n\n const url = `/v3/scheduling/ui-settings${configIdParam}`;\n\n const response = await this.makeAPIRequest<UISettingsResponse>(url, 'GET', undefined, headers);\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('getUISettingErrorTitle'))) {\n error = this.errors.api(i18next.t('getUISettingErrorTitle'))[errorType as APIErrorType](error?.message || error?.title || 'Something went wrong');\n }\n return { error };\n }\n if ('data' in response) {\n this.schedulerStore.set('configSettings', response.data);\n this.clientId = response.data.app_client_id || this.clientId;\n }\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n private getTwoLetterLanguageCode(language: string) {\n return language.split('-')[0];\n }\n\n private getStartTimeWithMinBookingNotice(startTime: number) {\n const scheduler = this.schedulerStore.get('configSettings')?.scheduler;\n const min_booking_notice = scheduler?.min_booking_notice;\n if (!min_booking_notice) {\n return startTime;\n }\n const today = new Date().getTime();\n\n if (startTime < (today + min_booking_notice * 60 * 1000) / 1000) {\n return Math.floor((today + min_booking_notice * 60 * 1000) / 1000);\n } else {\n return startTime;\n }\n }\n\n private getEndTimeForAvailableDaysInFuture(endTime: number) {\n const today = new Date();\n const availableDaysInFuture = this.schedulerStore.get('configSettings')?.scheduler?.available_days_in_future;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTimeWithOffset = Math.min(endTimeForAvailableDaysInFuture, endTime);\n return endTimeWithOffset;\n }\n\n /**\n * Gets the availability for a page.\n * @param startTime The start time.\n * @param endTime The end time.\n * @returns {Promise<AvailabilityResponse>}\n */\n public async getAvailability(startTime: number = 0, endTime: number = 0): Promise<NylasSchedulerResponse<AvailabilityResponse>> {\n this.schedulerStore.set('isLoading', true);\n const params = new URLSearchParams();\n const now = new Date();\n const nowTime = now.getTime();\n\n if (endTime && endTime < nowTime / 1000) {\n this.schedulerStore.set('isLoading', false);\n const error = this.errors.component(i18next.t('getAvailabilityErrorTitle')).endtime_not_in_future();\n return { error };\n }\n\n // Calculate the start of the current month if startTime is not provided\n if (!startTime) {\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n startTime = Math.floor(startOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n // Calculate the end of the current month if endTime is not provided\n if (!endTime) {\n const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0); // Setting day to 0 gets the last day of the previous month, so in this case, the last day of the current month\n endTime = Math.floor(endOfMonth.getTime() / 1000); // Convert to UNIX timestamp in seconds\n }\n\n endTime = this.getEndTimeForAvailableDaysInFuture(endTime);\n const startTimeWithMinBooking = this.getStartTimeWithMinBookingNotice(startTime);\n startTime = startTimeWithMinBooking;\n endTime = startTimeWithMinBooking > endTime ? startTimeWithMinBooking + 1 : endTime;\n\n params.append('start_time', encodeURIComponent(startTime.toString()));\n params.append('end_time', encodeURIComponent(endTime.toString()));\n if (this.configId && !this.sessionId) {\n params.append('configuration_id', encodeURIComponent(this.configId));\n } else if (this.slug && this.clientId && !this.sessionId) {\n params.append('slug', encodeURIComponent(this.slug));\n params.append('client_id', encodeURIComponent(this.clientId));\n }\n\n const rescheduleBookingId = this.schedulerStore.get('rescheduleBookingId');\n if (rescheduleBookingId) {\n params.append('booking_id', encodeURIComponent(rescheduleBookingId));\n }\n const queryString = params.toString();\n const url = `/v3/scheduling/availability${queryString ? `?${queryString}` : ''}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<AvailabilityResponse>(decodeURIComponent(url), 'GET', undefined, headers);\n\n if ('error' in response) {\n this.schedulerStore.set('availability', []);\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n // If the error message contains \"Failed to find a valid Grant\", return a custom error.\n // This is a temporary fix for showing a user friendly error message and hiding PII from the error message.\n // TODO: Implement proper error handling and remove this temporary fix.\n if (error?.message?.toLowerCase().includes('Failed to find a valid Grant')) {\n const errorMessage = i18next.t('invalidGrantError');\n return {\n error: {\n title: i18next.t('invalidGrantErrorTitle'),\n message: errorMessage,\n category: ErrorCategory.Api,\n },\n };\n }\n\n if (errorType && errorType in this.errors.api(i18next.t('getAvailabilityErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('getAvailabilityErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n if ('data' in response) {\n const availability =\n response.data?.time_slots?.map(timeslot => {\n return {\n ...timeslot,\n start_time: new Date(timeslot.start_time * 1000),\n end_time: new Date(timeslot.end_time * 1000),\n };\n }) || [];\n\n // Filter out timeslots that are in the past\n const availabilityTimeslotsFiltered = availability.filter(timeslot => timeslot.start_time.getTime() > nowTime);\n const availabilityTimeslotSorted = availabilityTimeslotsFiltered.sort((a, b) => a.start_time.getTime() - b.start_time.getTime());\n this.schedulerStore.set('availability', availabilityTimeslotSorted);\n const order = response.data?.order || [];\n this.schedulerStore.set('availabilityOrderEmails', order);\n }\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Cancels a booking.\n * @param bookingId The booking ID.\n */\n public async cancelBooking(bookingId: string, reason: string): Promise<NylasSchedulerResponse<Partial<NylasEvent>>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component(i18next.t('cancelBookingErrorTitle')).no_booking_id() };\n }\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<Partial<NylasEvent>>(\n decodeURIComponent(url),\n 'DELETE',\n JSON.stringify({\n action: 'cancel',\n cancellation_reason: reason,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('cancelBookingErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('cancelBookingErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n this.schedulerStore.set('rescheduleBookingId', '');\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Reschedules a booking.\n * @param bookingId The booking ID.\n * @param data The booking info.\n * @returns {Promise<NylasResponse<NylasEvent>>}\n */\n public async rescheduleBooking(bookingId: string, data: NylasSchedulerBookingDataWithFlatFields): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n if (!bookingId) {\n return { error: this.errors.component(i18next.t('rescheduleBookingErrorTitle')).no_booking_id() };\n }\n const apiErrors = this.errors.api(i18next.t('rescheduleBookingErrorTitle'));\n const componentErrors = this.errors.component(i18next.t('rescheduleBookingErrorTitle'));\n const { bookingInfo, selectedTimeslot, selectedTimezone, selectedLanguage } = this.schedulerStore.state;\n // Validate data\n const { startTime, endTime, timezone } = data;\n const start_time = startTime || selectedTimeslot?.start_time;\n\n if (!start_time) {\n return { error: componentErrors.invalid_start_time('Please pass \"startTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n const end_time = endTime || selectedTimeslot?.end_time;\n if (!end_time) {\n return { error: componentErrors.invalid_end_time('Please pass \"endTime\" in data or set \"selectedTimeslot\" in the defaultSchedulerState.') };\n }\n\n const order = this.schedulerStore.get('availabilityOrderEmails');\n let participantToBookWith = '';\n if (order.length > 0) {\n // Get the emails in the timeslot\n const emails = selectedTimeslot?.emails || [];\n for (let i = 0; i < order.length; i++) {\n if (emails.includes(order[i])) {\n participantToBookWith = order[i];\n break;\n }\n }\n }\n\n const time_zone = timezone || selectedTimezone;\n if (!time_zone) {\n return { error: componentErrors.invalid_timezone('Please pass \"timezone\" in data or set \"selectedTimezone\" in the defaultSchedulerState.') };\n }\n\n // Group event fields\n const event_id = selectedTimeslot?.event_id || undefined;\n const master_id = selectedTimeslot?.master_id || undefined;\n const calendar_id = selectedTimeslot?.calendar_id || undefined;\n\n const addFields = {};\n Object.entries(bookingInfo?.additionalFields || {}).forEach(([key, entry]) => {\n addFields[key] = (entry as { value: string; type?: string }).value;\n });\n const primaryGuest = data ? data?.primaryParticipant : bookingInfo?.primaryParticipant;\n const guests = data ? data?.guests || [] : bookingInfo?.guests || [];\n const additional_fields = data ? data?.additionalFields : addFields;\n\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PATCH',\n JSON.stringify({\n start_time: start_time.getTime() / 1000,\n end_time: end_time.getTime() / 1000,\n timezone: time_zone,\n additional_fields,\n guest: { ...primaryGuest },\n additional_guests: guests,\n participants: participantToBookWith ? [{ email: participantToBookWith }] : undefined,\n email_language: this.getTwoLetterLanguageCode(selectedLanguage),\n event_id,\n master_id,\n calendar_id,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in apiErrors) {\n const errorMessage = this.getErrorMessage(error);\n error = apiErrors[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n const eventInfo = this.schedulerStore.get('reschedulingEventInfo');\n if ('data' in response) {\n this.schedulerStore.set('eventInfo', response?.data);\n } else if (eventInfo) {\n this.schedulerStore.set('eventInfo', eventInfo);\n } else {\n // We should technically never reach this point\n const event = {\n booking_id: bookingId,\n } as NylasEvent;\n this.schedulerStore.set('eventInfo', event);\n }\n\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Updates the booking.\n * @param bookingId The booking ID.\n */\n public async updateBooking(payload: { bookingId: string; status: 'confirmed' | 'cancelled'; reason?: string }): Promise<NylasSchedulerResponse<NylasEvent>> {\n this.schedulerStore.set('isLoading', true);\n const { bookingId, status, reason } = payload;\n const salt = this.schedulerStore.get('organizerConfirmationSalt');\n const errorTitle = status === 'confirmed' ? i18next.t('confirmBookingErrorTitle') : i18next.t('rejectBookingErrorTitle');\n\n if (!bookingId) {\n return { error: this.errors.component(errorTitle).no_booking_id() };\n }\n if (!salt) {\n return { error: this.errors.component(errorTitle).no_salt() };\n }\n\n const configIdParam =\n !this.sessionId && this.configId\n ? `?configuration_id=${this.configId}`\n : !this.sessionId && this.slug && this.clientId\n ? `?slug=${this.slug}&client_id=${this.clientId}`\n : '';\n const url = `/v3/scheduling/bookings/${bookingId}${configIdParam}`;\n const headers = this.getHeaders();\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'PUT',\n JSON.stringify({\n status: status,\n cancellation_reason: reason,\n salt,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(errorTitle)) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(errorTitle)[errorType as APIErrorType](errorMessage);\n }\n return { error };\n }\n\n if ('data' in response && status === 'confirmed') {\n this.schedulerStore.set('confirmedEventInfo', response?.data);\n } else if ('request_id' in response && status === 'cancelled') {\n this.schedulerStore.set('cancelledEventInfo', {\n booking_id: bookingId,\n });\n }\n\n this.schedulerStore.set('organizerConfirmationBookingId', '');\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n\n /**\n * Validate timeslot for group event booking\n */\n public async validateGroupEventTimeslot(timeslot: Timeslot) {\n this.schedulerStore.set('isLoading', true);\n const configId = this.schedulerStore.get('configSettings')?.configuration_id;\n if (!configId) {\n return { error: this.errors.component(i18next.t('validateTimeslotErrorTitle')).no_config_id() };\n }\n\n const headers = this.getHeaders();\n const url = `/v3/scheduling/configurations/${configId}/group-events/validate-timeslot`;\n const response = await this.makeAPIRequest<NylasEvent>(\n decodeURIComponent(url),\n 'POST',\n JSON.stringify({\n ...timeslot,\n start_time: timeslot.start_time.getTime() / 1000,\n end_time: timeslot.end_time.getTime() / 1000,\n }),\n headers,\n );\n\n if ('error' in response) {\n this.schedulerStore.set('isLoading', false);\n const errorType = response.error?.type;\n let error = response.error;\n if (errorType && errorType in this.errors.api(i18next.t('validateTimeslotErrorTitle'))) {\n const errorMessage = this.getErrorMessage(error);\n error = this.errors.api(i18next.t('validateTimeslotErrorTitle'))[errorType as APIErrorType](errorMessage);\n }\n this.refetchAvailability();\n return { error };\n }\n\n this.schedulerStore.set('selectedTimeslot', timeslot);\n this.schedulerStore.set('showBookingForm', true);\n this.schedulerStore.set('isLoading', false);\n return response;\n }\n}\n","import { NylasSchedulerStoreType } from '../../stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n slug?: string;\n clientId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n public slug: string | undefined;\n public clientId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId, slug, clientId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId && !(slug && clientId)) {\n throw new Error('sessionId is required for private configs. If using public config either pass a configurationId or a combination of slug and clientId.');\n }\n\n // If the url is only /, then we need to add the base url.\n // We assume that the base url is the same as the current url.\n if (schedulerAPIURL === '/') {\n const url = new URL(window.location.href);\n schedulerAPIURL = url.origin;\n }\n\n this.configId = configId;\n this.sessionId = sessionId;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasSchedulerStore = nylasSchedulerStore;\n this.slug = slug;\n this.clientId = clientId;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n sessionId: this.sessionId,\n configId: this.configId,\n slug: this.slug,\n clientId: this.clientId,\n });\n return this._schedulerAPIConnector;\n }\n\n public resetStores() {\n this.nylasSchedulerStore.reset();\n }\n}\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConnectorPublicMethods = PublicMethods<NylasSchedulerConnector>;\n","import { DataState, NylasEvent, NylasSchedulerBookingData } from '@/common/types';\nimport { debug } from '@/utils/utils';\nimport { AdditionalFields, Appearance, ThemeConfig, Timeslot, Notetaker } from '@nylas/core';\nimport { createStore } from '@stencil/store';\n\nexport type AvailabilityTimeslot = {\n emails: string[];\n start_time: Date;\n end_time: Date;\n capacity?: number;\n event_id?: string;\n master_id?: string;\n calendar_id?: string;\n};\n\nexport type LoadingState = {\n api: 'availability' | 'createBooking' | 'cancelBooking' | 'rescheduleBooking';\n};\n\nexport type ConfigSettings = {\n configuration_id: string;\n booking?: {\n additional_fields: Record<string, string>;\n additional_guests: {\n email: string;\n name: string;\n }[];\n booking_ref: string;\n booking_ref_salt: string;\n guest: {\n email: string;\n name: string;\n };\n timezone: string;\n email_language: string;\n event_data: {\n location: string;\n when: {\n start_time: Date;\n end_time: Date;\n end_timezone: string;\n start_timezone: string;\n object: string;\n };\n };\n event_organizer: {\n name: string;\n email: string;\n is_organizer: boolean;\n };\n };\n scheduler: {\n available_days_in_future: number;\n min_cancellation_notice: number;\n min_booking_notice: number;\n rescheduling_url?: string;\n cancellation_url?: string;\n cancellation_policy?: string;\n hide_additional_guests?: boolean;\n hide_cancellation_options?: boolean;\n hide_rescheduling_options?: boolean;\n additional_fields?: Record<string, AdditionalFields>;\n confirmation_redirect_url?: string;\n organizer_confirmation_url?: string;\n notetaker_settings?: Notetaker;\n };\n organizer: {\n name: string;\n email: string;\n };\n slug: string;\n appearance: Appearance;\n booking_type: string;\n name: string;\n};\n\nexport interface NylasSchedulerStoreState {\n selectedDate: Date | null;\n selectedLanguage: string;\n selectedTimezone: string;\n selectedTimeslot: Timeslot | null;\n availabilityOrderEmails: string[];\n showBookingForm: boolean;\n selectableDates: Date[] | null;\n eventDuration: number;\n availability: AvailabilityTimeslot[];\n state: DataState;\n eventInfo: NylasEvent | null;\n cancelledEventInfo: Partial<NylasEvent> | null;\n reschedulingEventInfo?: NylasEvent;\n confirmedEventInfo?: NylasEvent;\n bookingInfo?: NylasSchedulerBookingData;\n rescheduleBookingId?: string;\n cancelBookingId?: string;\n isLoading: boolean;\n nylasBranding?: boolean;\n configSettings?: ConfigSettings;\n organizerConfirmationBookingId?: string;\n rejectBookingId?: string;\n organizerConfirmationSalt?: string;\n themeConfig?: ThemeConfig;\n hour12?: boolean;\n}\n\nexport type NylasSchedulerStoreType = ReturnType<typeof CreateNylasSchedulerStore>;\n\nexport function CreateNylasSchedulerStore(defaultState: Partial<NylasSchedulerStoreState> = {}) {\n const defaultNylasStoreState: NylasSchedulerStoreState = {\n selectedDate: null,\n selectedLanguage: navigator.language,\n selectedTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n selectedTimeslot: null,\n showBookingForm: false,\n availabilityOrderEmails: [],\n selectableDates: null,\n availability: [],\n eventDuration: 0,\n state: 'ready',\n eventInfo: null,\n cancelledEventInfo: null,\n isLoading: false,\n nylasBranding: true,\n ...defaultState,\n };\n debug(`[defaultNylasStoreState]: `, defaultNylasStoreState);\n const store = createStore<NylasSchedulerStoreState>(defaultNylasStoreState);\n\n store.onChange('availability', availability => {\n debug(`[availability]: `, availability);\n const selectableDates = availability.map(timeslot => timeslot.start_time);\n debug(`[selectableDates]: `, selectableDates);\n store.set('selectableDates', selectableDates);\n const timeslot = availability[0];\n if (!timeslot) return;\n const durationMinutes = Math.floor((timeslot.end_time.getTime() - timeslot.start_time.getTime()) / 60000);\n debug(`[durationMinutes]: `, durationMinutes);\n store.set('eventDuration', durationMinutes);\n });\n\n /**\n * Reset the Nylas store to its default state.\n * There is something wrong with the stencil/store reset method,\n * so we have to do it via this hack.\n */\n store.reset = () => {\n for (const key in defaultNylasStoreState) {\n const value = defaultNylasStoreState[key as keyof typeof defaultNylasStoreState];\n store.set(key as any, value);\n }\n };\n\n return store;\n}\n","import { Fragment, FunctionalComponent, h } from '@stencil/core';\n\nexport type SchedulerViewProps = {\n isLoading?: boolean;\n showNotification?: boolean;\n nylasBranding?: boolean;\n version?: string;\n};\n\n/**\n * The Scheduler view component.\n */\nexport const SchedulerView: FunctionalComponent<SchedulerViewProps> = (props: SchedulerViewProps, children) => {\n const isLoading = props.isLoading;\n const showNotification = props.showNotification;\n const nylasBranding = props.nylasBranding;\n const version = props.version;\n return (\n <Fragment>\n {showNotification && <nylas-notification></nylas-notification>}\n\n {isLoading && (\n <div class={'loading'}>\n <div class={'left'}>\n <div class={'skeleton'} />\n </div>\n <div class={'right'}>\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n </div>\n </div>\n )}\n {!isLoading && children}\n <div class={'footer'}>\n {nylasBranding && (\n <a\n href=\"https://scheduler.nylas.com?utm_source=powered-by-nylas-logoutm_medium=link&utm_campaign=get-scheduler&utm_id=get-scheduler\"\n class=\"powered-by-nylas\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n >\n Powered by <span class=\"sr-only\">Nylas</span>\n <nylas-logo aria-hidden={true} />\n </a>\n )}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{version}</span>\n </tooltip-component>\n </div>\n </Fragment>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\nexport type HeaderBannerProps = {};\n\nexport const MessageBanner: FunctionalComponent<HeaderBannerProps> = (_props: HeaderBannerProps, children) => <div class=\"message-banner\">{children}</div>;\n","@use '../../../common/styles/variables' as *;\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n background: var(--nylas-base-0);\n position: relative;\n box-shadow: 0px 4px 8px 2px rgba(0, 0, 0, 0.05),\n 0px 8px 16px -2px rgba(0, 0, 0, 0.1);\n\n @include default-css-variables;\n font-family: var(--nylas-font-family);\n font-optical-sizing: auto;\n font-style: normal;\n font-variation-settings: 'slnt' 0;\n\n @media #{$mobile} {\n width: auto;\n min-width: 325px;\n }\n}\n\n:root {\n font-family: inherit;\n}\n\n.error {\n padding: 8rem 12rem;\n color: var(--nylas-base-0);\n background-color: var(--nylas-error);\n margin: 1.5rem;\n border-radius: var(--nylas-border-radius-2x);\n}\n\n.message-banner {\n text-align: right;\n color: var(--nylas-base-800);\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-color-primary-200);\n margin: 0;\n}\n\n.loading {\n margin: 1.5rem;\n display: flex;\n gap: 1rem;\n\n .skeleton {\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite;\n\n &:nth-child(2) {\n animation-delay: -100ms;\n }\n\n &:nth-child(3) {\n animation-delay: -200ms;\n }\n\n &:nth-child(4) {\n animation-delay: -300ms;\n }\n\n &:nth-child(5) {\n animation-delay: -400ms;\n }\n }\n\n .left .skeleton {\n height: 100%;\n width: 400px;\n }\n\n .right .skeleton {\n height: 5rem;\n width: 300px;\n margin-bottom: 1rem;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.select-date-page,\n.additional-data-page,\n.booked-event-page,\n.manual-confirmation-page,\n.cancelled-event-page,\n.cancel-flow-page {\n border-top-left-radius: var(--nylas-border-radius-2x);\n border-top-right-radius: var(--nylas-border-radius-2x);\n}\n\n.select-date-page,\n.additional-data-page {\n display: flex;\n\n @media #{$mobile} {\n flex-direction: column;\n }\n}\n\n.booked-event-page,\n.manual-confirmation-page {\n background-color: var(--nylas-base-50);\n}\n\n.cancelled-event-page,\n.manual-confirmation-page,\n.cancel-flow-page {\n padding: 1rem;\n height: 496px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.booked-event-page,\n.manual-confirmation-page,\n.cancelled-event-page,\n.cancel-flow-page {\n min-width: 784px;\n background: var(--nylas-base-50);\n\n @media #{$mobile} {\n min-width: 90%;\n }\n}\n\n.left-panel {\n display: flex;\n flex-direction: column;\n min-width: 424px;\n border-top-left-radius: inherit;\n background: var(--nylas-base-0);\n position: relative;\n padding: 1rem 0 0 0;\n height: 624px;\n\n @media #{$mobile} {\n border-top-right-radius: inherit;\n min-width: unset;\n height: auto;\n }\n}\n\n.select-date-page .left-panel {\n @media #{$mobile} {\n height: 624px;\n }\n}\n\n.border {\n margin-left: -20px; // Offset left padding\n margin-right: -20px; // Offset right padding\n border-top-width: 1px;\n height: 0.5px;\n background-color: var(--nylas-base-200);\n\n @media #{$mobile} {\n display: none;\n }\n}\n\n.right-panel {\n min-width: 360px;\n width: 360px;\n background-color: var(--nylas-base-50);\n height: 624px;\n padding-top: 16px;\n border-left: 1px solid var(--nylas-base-200);\n border-top-right-radius: inherit;\n\n &.reschedule {\n border-top-right-radius: 0px;\n }\n\n @media #{$mobile} {\n border-top-right-radius: 0px;\n width: inherit;\n min-width: unset;\n height: auto;\n border-left: none;\n }\n\n h2 {\n display: flex;\n margin: 0;\n height: 48px;\n gap: 0.5rem;\n justify-content: center;\n align-items: center;\n width: auto;\n font-size: 1.125rem;\n line-height: 1.5rem;\n font-weight: 500;\n text-align: center;\n color: var(--nylas-base-800);\n }\n}\n\n.additional-data-page {\n .left-panel {\n background-color: var(--nylas-base-50);\n }\n\n .right-panel {\n background-color: var(--nylas-base-0);\n }\n}\n\nnylas-selected-event-card {\n height: calc(640px - 36px);\n padding: 0 1rem;\n\n @media #{$mobile} {\n height: 250px;\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 8px;\n padding: 16px;\n font-size: 14px;\n font-weight: 300;\n color: var(--nylas-base-500);\n border-top: 1px solid var(--nylas-base-200);\n min-height: 24px;\n\n .powered-by-nylas {\n display: flex;\n align-items: center;\n text-decoration: none;\n\n color: var(--nylas-base-500);\n\n &:hover {\n color: var(--nylas-base-800);\n }\n }\n\n svg {\n fill: var(--nylas-base-500);\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.footer svg {\n margin-top: 1px;\n}\n\nnylas-selected-event-card::part(nsec__timezone) {\n position: absolute;\n bottom: 0;\n}\n\nnylas-notification {\n margin: 1.5rem;\n width: -webkit-fill-available;\n width: -moz-available;\n position: absolute;\n}\n\nnylas-locale-switch {\n position: absolute;\n padding: 18px 20px;\n bottom: 0;\n width: -webkit-fill-available;\n width: -moz-available;\n border-top: 1px solid var(--nylas-base-200);\n\n @media #{$mobile} {\n height: auto;\n }\n}\n\nnylas-date-picker {\n padding: 0 20px;\n}\n\nbutton-component#report-issue {\n width: auto;\n position: absolute;\n bottom: 4px;\n left: 16px;\n}\n\n.language-feedback-container {\n width: auto;\n position: absolute;\n bottom: 4px;\n left: 16px;\n display: flex;\n gap: 8px;\n align-items: center;\n button-component#report-issue {\n position: initial;\n }\n}\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}","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { ThemeConfig, Notification, NotificationType, NylasSchedulerErrorResponse, Timeslot, NylasSchedulerResponse, NylasSuccessResponse } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { addDaysToCurrentDate, capitalizeFirstLetter, compactStringToUUIDs, debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { MessageBanner } from './message-banner';\nimport i18next from '@/utils/i18n';\nimport { NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { LANGUAGE_CODE, LANGUAGE_MAP, Locale } from '@/common/constants';\nimport * as Sentry from '@sentry/browser';\nimport { ErrorCategory } from '@/types/index';\nimport type { BookedEventInfo, NylasSchedulerBookingData } from '@/common/types';\nimport { version } from '@/version';\nconst genericError = { title: i18next.t('genericErrorTitle'), type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__title - [nylas-date-picker] The title.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ndp__date--disabled - [nylas-date-picker] The disabled dates.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button.\n * @part nbf__button-outline - [nylas-booking-form] The outline button.\n * @part nbf__button-primary - [nylas-booking-form] The primary button.\n * @part nbf__input-wrapper - [nylas-booking-form] The input wrapper.\n * @part nbf__checkbox-component - [nylas-booking-form] The checkbox component.\n * @part nbf__radio-button-group - [nylas-booking-form] The radio button group.\n * @part nbf__textarea-component - [nylas-booking-form] The textarea component.\n * @part nbf__dropdown - [nylas-booking-form] The dropdown component.\n * @part nbf__dropdown-button - [nylas-booking-form] The dropdown button.\n * @part nbf__dropdown-content - [nylas-booking-form] The dropdown content.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n * @part nls - [nylas-locale-switch] The locale switch container.\n * @part nls__timezone - [nylas-locale-switch] The timezone select container\n * @part nls__timezone-dropdown - [nylas-locale-switch] The timezone dropdown\n * @part nls__timezone-drop-button - [nylas-locale-switch] The timezone dropdown button\n * @part nls__timezone-drop-button-selected-label - [nylas-locale-switch] The timezone dropdown button selected label\n * @part nls__timezone-drop-content - [nylas-locale-switch] The timezone dropdown content\n * @part nls__timezone-drop-label - [nylas-locale-switch] The timezone dropdown label\n * @part nls__language - [nylas-locale-switch] The language select container\n * @part nls__language-dropdown - [nylas-locale-switch] The language dropdown\n * @part nls__language-drop-button - [nylas-locale-switch] The language dropdown button\n * @part nls__language-drop-content - [nylas-locale-switch] The language dropdown content\n * @part nls__language-drop-label - [nylas-locale-switch] The language dropdown label\n * @part ncbf - [nylas-cancel-booking-form] The cancel booking form container.\n * @part ncbf__icon - [nylas-cancel-booking-form] The calendar icon.\n * @part ncbf__title - [nylas-cancel-booking-form] The title of the cancel booking form.\n * @part ncbf__description - [nylas-cancel-booking-form] The description of the cancel booking form.\n * @part ncbf__reason-textarea - [nylas-cancel-booking-form] The reason textarea.\n * @part ncbf__button-cta - [nylas-cancel-booking-form] The cancel booking form CTA button.\n * @part ncbf__button-outline - [nylas-cancel-booking-form] The cancel booking form outline button.\n * @part ncbf__card - [nylas-cancel-booking-form] The cancel booking form card.\n * @part ns_booked-event-page - The booked event page (namespace).\n * @part ns_select-date-page - The select date page (namespace).\n * @part ns_left-panel - The left panel (namespace).\n * @part ns_right-panel - The right panel (namespace).\n * @part ns_right-panel__title - The right panel title (namespace).\n * @part ns_right-panel__calendar-icon - The right panel calendar icon (namespace).\n * @part ns_right-panel__selected-date - The right panel selected date (namespace).\n * @part ns_reschedule - The reschedule (namespace).\n * @part ns_additional-data-page - The additional data page (namespace).\n * @part ns_left-panel__wrapper - The left panel wrapper (namespace).\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * When true, initialization was deferred because auth props (configurationId, sessionId, slug+clientId)\n * were not available at componentWillLoad. The component waits for @Watch to run when props arrive.\n */\n private initDeferred = false;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Ref required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingRef?: string;\n\n /**\n * Booking Ref required for cancelling flow.\n */\n @Prop() readonly cancelBookingRef?: string;\n\n /**\n * Booking Ref required for the manual confirmation flow.\n */\n @Prop() readonly organizerConfirmationBookingRef?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * The slug of the configuration (public config) to be used for the Nylas Scheduler. This is used in conjunction with the clientId.\n * When the configurationId is not provided, the slug and clientId are used to make requests to the Scheduler API endpoints.\n * If the configurationId is provided, this prop will be ignored.\n */\n @Prop() readonly slug?: string;\n\n /**\n * The app ID of the configuration (public config) to be used for the Nylas Scheduler. This is used in conjunction with the slug.\n * When the configurationId is not provided, the slug and clientId are used to make requests to the Scheduler API endpoints.\n * If the configurationId is provided, this prop will be ignored.\n */\n @Prop() readonly clientId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /**\n * This prop will allow to override the default localization strings for each language.\n * Nylas scheduling page currently support the following language codes: en, es, fr, de, sv, zh, ja, nl.\n */\n @Prop() readonly localization?: Partial<Record<LANGUAGE_CODE, Locale>>;\n\n /**\n * This prop will allow to set a default language for the Nylas scheduling page.\n */\n @Prop() readonly defaultLanguage?: LANGUAGE_CODE;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n @Prop() readonly enableUserFeedback?: boolean = true;\n\n @Prop() readonly hour12?: boolean | undefined;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(navigator.language, { dateStyle: 'full' }) || `${i18next.t('noDateSelected')}`;\n\n /**\n * The config id extracted from the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef.\n */\n @State() refConfigId?: string;\n\n /**\n * The selected language for the Nylas Scheduler.\n */\n @State() language: string = navigator.language;\n\n /**\n * The state for showing the feedback modal.\n */\n @State() showFeedbackModal: boolean = false;\n\n /**\n * The state of bookingInfo after the user has confirmed the booking.\n */\n @State() bookingInfoConfirmed: NylasSchedulerBookingDataWithFlatFields | null = null;\n\n /**\n * The version of the Nylas Scheduler.\n */\n @State() version: string = version;\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n @Event({\n eventName: 'nylasSchedulerInfo',\n })\n nylasSchedulerInfo!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n @Event({\n eventName: 'configSettingsLoaded',\n })\n configSettingsLoaded!: EventEmitter<{ settings: NylasSchedulerResponse<UISettingsResponse> }>;\n\n /**\n * This event is triggered if either the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef prop\n * is supplied and the component has been attached to the DOM. It emits the configurationId\n * and bookingId derived from the rescheduleBookingRef or cancelBookingRef or organizerConfirmationBookingRef. Subscribe to this\n * event to obtain the extracted configurationId, which is necessary to generate the sessionID\n * for configurations that are not public.\n */\n @Event() bookingRefExtracted!: EventEmitter<{ configurationId: string; bookingId: string; salt?: string }>;\n\n /**\n * This event is triggered on successful booking request. It emits the event data.\n */\n @Event() bookedEventInfo!: EventEmitter<NylasSchedulerResponse<BookedEventInfo>>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n this.version = version;\n\n // Yield to allow the React wrapper (@stencil/react-output-target/runtime)\n // to set properties via useLayoutEffect before we read them.\n // Without this, componentWillLoad runs before props like configurationId,\n // sessionId, slug, and clientId are set, causing false validation errors.\n await Promise.resolve();\n\n if (this.enableUserFeedback && !Sentry.isInitialized()) {\n Sentry.init({\n dsn: 'https://9d5731f1c77ca84c9ed3fb9b3ccf7ee1@o74852.ingest.us.sentry.io/4507889638178816',\n release: this.version,\n integrations: integrations => [\n ...integrations.filter(_integration => false), // Removes default integrations (including Breadcrumbs)\n Sentry.feedbackIntegration({\n colorScheme: 'system',\n autoInject: false,\n }),\n ],\n // Disable all other event capture\n autoSessionTracking: false, // Disable session tracking\n beforeSend: () => null, // Prevents error events from being sent\n });\n }\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if ('schedulerWillLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerWillLoad(schedulerWillLoadEvent, this.nylasSchedulerConnector);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n // Check for lang query parameter in URL\n const urlParams = new URLSearchParams(window.location.search);\n const langFromUrl = urlParams.get('lang');\n const validLanguageFromUrl = langFromUrl && Object.values(LANGUAGE_CODE).includes(langFromUrl as LANGUAGE_CODE) ? (langFromUrl as LANGUAGE_CODE) : null;\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n themeConfig: this.themeConfig,\n hour12: this.hour12,\n selectedLanguage: validLanguageFromUrl || this.defaultLanguage || this.bookingInfo?.language || LANGUAGE_CODE.en,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n // Set the configId to the reschedule configId if rescheduleBookingRef is provided or\n // Set the configId to the cancel configId if cancelBookingRef is provided\n this.refConfigId = this.configurationId;\n let bookingRefExtractedEvent;\n try {\n if (this.rescheduleBookingRef) {\n const [rescheduleConfigId, rescheduleBookingId, _] = compactStringToUUIDs(this.rescheduleBookingRef);\n this.refConfigId = rescheduleConfigId;\n this.stores.scheduler.set('rescheduleBookingId', rescheduleBookingId);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: rescheduleConfigId, bookingId: rescheduleBookingId });\n } else if (this.cancelBookingRef) {\n const [cancelConfigId, cancelBookingId, _] = compactStringToUUIDs(this.cancelBookingRef);\n this.refConfigId = cancelConfigId;\n this.stores.scheduler.set('cancelBookingId', cancelBookingId);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: cancelConfigId, bookingId: cancelBookingId });\n } else if (this.organizerConfirmationBookingRef) {\n const [organizerConfirmationConfigId, organizerConfirmationBookingId, salt] = compactStringToUUIDs(this.organizerConfirmationBookingRef);\n this.refConfigId = organizerConfirmationConfigId;\n this.stores.scheduler.set('organizerConfirmationBookingId', organizerConfirmationBookingId);\n this.stores.scheduler.set('organizerConfirmationSalt', salt);\n bookingRefExtractedEvent = this.bookingRefExtracted.emit({ configurationId: organizerConfirmationConfigId, bookingId: organizerConfirmationBookingId, salt: salt });\n }\n } catch (error) {\n debug(error);\n const bookingRef = this.rescheduleBookingRef || this.cancelBookingRef || this.organizerConfirmationBookingRef;\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject({ message: `Invalid booking reference: ${bookingRef}` }) }, host: this.host });\n }\n // Override theme\n this.applyThemeConfig(this.themeConfig);\n\n if ('bookingRefExtracted' in this.eventOverrides) {\n await this.eventOverrides.bookingRefExtracted(bookingRefExtractedEvent, this.nylasSchedulerConnector);\n if (bookingRefExtractedEvent.defaultPrevented) {\n return;\n }\n }\n\n // When a booking ref is present but no explicit auth credentials (sessionId, configurationId,\n // or slug+clientId) have been provided yet, defer initialization. This gives the consumer time\n // to listen for the bookingRefExtracted event, generate a sessionId via their backend, and set\n // it on the component. Without this check, the refConfigId extracted from the booking ref\n // causes checkIfSessionIdOrConfigIdExists to pass prematurely, creating the connector without\n // auth and making cancel/reschedule API calls fail for private configurations.\n const hasBookingRef = !!(this.rescheduleBookingRef || this.cancelBookingRef || this.organizerConfirmationBookingRef);\n if (hasBookingRef && !this.sessionId && !this.configurationId && !(this.slug && this.clientId)) {\n this.initDeferred = true;\n return;\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists(false)) {\n this.initDeferred = true;\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.refConfigId,\n slug: this.slug,\n clientId: this.clientId,\n nylasSchedulerStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if ('init' in this.eventOverrides) {\n await this.eventOverrides.init(initEvent, this.nylasSchedulerConnector);\n if (initEvent.defaultPrevented) {\n return;\n }\n }\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n }\n\n async componentDidLoad() {\n if (this.initDeferred) {\n return;\n }\n\n this.baseProvider?.componentDidLoad();\n\n // Yield to the event loop to ensure React event listeners are attached before emitting\n // This fixes a timing issue introduced in v2.2.0 when the React wrapper was changed to use\n // @stencil/react-output-target/runtime, which attaches listeners in useEffect callbacks\n await Promise.resolve();\n\n const schedulerDidLoadEvent = this.schedulerDidLoad.emit(this.host);\n if ('schedulerDidLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerDidLoad(schedulerDidLoadEvent, this.nylasSchedulerConnector);\n if (schedulerDidLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n await this.performSchedulerDataFetch();\n }\n\n private async performSchedulerDataFetch() {\n this.localizationChanged(this.localization);\n const settingsResponse = await this.nylasSchedulerConnector?.scheduler.getUISettings();\n if (!settingsResponse || 'error' in settingsResponse) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(settingsResponse?.error) }, host: this.host });\n return;\n } else {\n if ('data' in settingsResponse && settingsResponse.data?.appearance) {\n debug(\n 'Appearance settings have been returned from the configuration used byt his scheduling page; please remember to grab them from the configSettingsLoaded event and apply them as desired.',\n );\n }\n const configSettingsLoadedEvent = this.configSettingsLoaded.emit({ settings: settingsResponse });\n if ('configSettingsLoaded' in this.eventOverrides) {\n await this.eventOverrides.configSettingsLoaded(configSettingsLoadedEvent, this.nylasSchedulerConnector);\n if (configSettingsLoadedEvent.defaultPrevented) {\n return;\n }\n }\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const availableDaysInFuture = nylasSchedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n const today = new Date();\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(today, availableDaysInFuture || 30);\n if (today.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n } else {\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(selectedDate, availableDaysInFuture || 30);\n if (selectedDate.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n private hasValidAuthConfig(): boolean {\n return !!(this.sessionId || this.refConfigId || (this.slug && this.clientId));\n }\n\n private async performDeferredInit() {\n if (!this.hasValidAuthConfig() || !this.initDeferred || !this.baseProvider) {\n return;\n }\n\n // Clear any stale auth-related errors that may have been shown before sessionId/config arrived.\n // This handles the case where componentWillLoad ran before props were set (e.g. HTML with\n // customElements.whenDefined) and a transient error was displayed.\n document.body.dispatchEvent(new CustomEvent('nylasSchedulerClearNotifications', { detail: { host: this.host }, bubbles: true }));\n\n this.initDeferred = false;\n this.refConfigId = this.refConfigId || this.configurationId;\n\n const nylasSchedulerStore = this.baseProvider.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.refConfigId,\n slug: this.slug,\n clientId: this.clientId,\n nylasSchedulerStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if ('init' in this.eventOverrides) {\n await this.eventOverrides.init(initEvent, this.nylasSchedulerConnector);\n if (initEvent.defaultPrevented) {\n return;\n }\n }\n\n this.baseProvider.componentWillLoad(this.nylasSchedulerConnector);\n this.baseProvider.componentDidLoad();\n\n await Promise.resolve();\n\n const schedulerDidLoadEvent = this.schedulerDidLoad.emit(this.host);\n if ('schedulerDidLoad' in this.eventOverrides) {\n await this.eventOverrides.schedulerDidLoad(schedulerDidLoadEvent, this.nylasSchedulerConnector);\n if (schedulerDidLoadEvent.defaultPrevented) {\n return;\n }\n }\n\n await this.performSchedulerDataFetch();\n }\n\n private authPropsChanged() {\n if (this.initDeferred && this.hasValidAuthConfig()) {\n this.performDeferredInit();\n }\n }\n\n @Watch('configurationId')\n configurationIdChanged() {\n if (!this.rescheduleBookingRef && !this.cancelBookingRef && !this.organizerConfirmationBookingRef) {\n this.refConfigId = this.configurationId;\n }\n this.authPropsChanged();\n }\n\n @Watch('sessionId')\n sessionIdChanged() {\n // If the connector already exists but was created without a sessionId (e.g. a booking ref\n // caused early init for a public config), propagate the newly-arrived sessionId so that\n // subsequent API calls include the Authorization header.\n if (this.nylasSchedulerConnector && this.sessionId) {\n this.nylasSchedulerConnector.sessionId = this.sessionId;\n this.nylasSchedulerConnector.scheduler.setSessionId(this.sessionId);\n }\n this.authPropsChanged();\n }\n\n @Watch('slug')\n slugChanged() {\n this.authPropsChanged();\n }\n\n @Watch('clientId')\n clientIdChanged() {\n this.authPropsChanged();\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n if (newVal?.language && !this.defaultLanguage) {\n this.stores?.scheduler.set('selectedLanguage', newVal.language);\n }\n }\n\n @Watch('rescheduleBookingRef')\n rescheduleBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('rescheduleBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('cancelBookingRef')\n cancelBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('cancelBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('organizerConfirmationBookingRef')\n organizerConfirmationBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('organizerConfirmationBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('localization')\n localizationChanged(newVal?: Partial<Record<LANGUAGE_CODE, Locale>>) {\n if (!newVal) {\n return;\n }\n\n Object.keys(newVal).forEach(lang => {\n if (!(lang in LANGUAGE_CODE)) {\n return;\n }\n i18next.addResourceBundle(\n lang,\n 'translation',\n newVal[lang],\n false, // Merge with existing translations\n true, // Replace the existing translations with the same key\n );\n });\n }\n\n @Watch('defaultLanguage')\n defaultLanguageChanged(newVal?: LANGUAGE_CODE) {\n if (newVal) {\n this.stores?.scheduler.set('selectedLanguage', newVal);\n i18next.changeLanguage(newVal);\n }\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newVal?: ThemeConfig) {\n // Set the theme config in the store, hosted page will use this to apply/re-apply the theme\n this.baseProvider?.getStore('scheduler')?.set('themeConfig', newVal);\n this.applyThemeConfig(newVal);\n }\n\n @Listen('languageChanged')\n languageChanged(event: CustomEvent<string>) {\n const newLanguage = event.detail;\n this.language = newLanguage;\n i18next.changeLanguage(newLanguage);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const availableDaysInFuture = this.nylasSchedulerConnector?.schedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(date, availableDaysInFuture || 30);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (startTime < endTimeForAvailableDaysInFuture && date.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const selectableDates = this.stores?.scheduler.get('selectableDates');\n if (selectableDates && selectableDates.length > 0) {\n this.stores?.scheduler.set('selectedDate', selectableDates[0]);\n }\n }\n }\n\n mapToBookingData(bookingInfo: NylasSchedulerBookingDataWithFlatFields): any {\n const timeslot = this.stores?.scheduler.get('selectedTimeslot');\n const language = this.stores?.scheduler.get('selectedLanguage');\n const timezone = this.stores?.scheduler.get('selectedTimezone');\n const startTime = timeslot?.start_time ? new Date(timeslot?.start_time).getTime() / 1000 : '';\n const endTime = timeslot?.end_time ? new Date(timeslot?.end_time).getTime() / 1000 : '';\n return {\n additional_guests: bookingInfo.guests,\n guest: { ...bookingInfo.primaryParticipant },\n additional_fields: { ...bookingInfo.additionalFields },\n start_time: startTime,\n end_time: endTime,\n email_language: language,\n timezone: timezone,\n };\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingDataWithFlatFields>) {\n if (event.defaultPrevented) {\n return;\n }\n const bookingData = event.detail;\n const mappedBookingData = this.mapToBookingData(bookingData);\n this.bookingInfoConfirmed = bookingData;\n\n const storeRescheduleId = this.nylasSchedulerConnector?.schedulerStore?.get('rescheduleBookingId');\n const rescheduleBookingId = storeRescheduleId;\n if (rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(rescheduleBookingId, bookingData);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const resultData = (result as NylasSuccessResponse<NylasEvent>)?.data;\n const bookedEventInfoEvent = this.bookedEventInfo.emit({ ...result, data: { ...resultData, ...mappedBookingData } });\n this.bookingInfoConfirmed = { ...this.bookingInfoConfirmed, ...resultData };\n if ('bookedEventInfo' in this.eventOverrides) {\n await this.eventOverrides.bookedEventInfo(bookedEventInfoEvent, this.nylasSchedulerConnector);\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(bookingData);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const resultData = (result as NylasSuccessResponse<NylasEvent>)?.data;\n const bookedEventInfoEvent = this.bookedEventInfo.emit({ ...result, data: { ...resultData, ...mappedBookingData } });\n this.bookingInfoConfirmed = { ...this.bookingInfoConfirmed, ...resultData };\n if ('bookedEventInfo' in this.eventOverrides) {\n await this.eventOverrides.bookedEventInfo(bookedEventInfoEvent, this.nylasSchedulerConnector);\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(this.language, { dateStyle: 'full' }) : `${i18next.t('noDateSelected')}`;\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('cancelBookedEventValidationError')\n cancelBookedEventValidationErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * manual confirmation button is clicked on the manual confirmation card.\n */\n @Listen('confirmBookingError')\n confirmBookingErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('feedbackModalClosed')\n feedbackModalClosedHandler() {\n this.showFeedbackModal = false;\n }\n\n @Listen('validateTimeslotError')\n eventIsFullHandler(_event: CustomEvent<{ error: string; type: 'error' | 'info' }>) {\n const errorMessage = _event.detail.error;\n const type = _event.detail.type;\n if (type === 'error') {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject({ message: errorMessage }) }, host: this.host });\n } else {\n this.nylasSchedulerInfo.emit({\n notification: {\n title: 'Event is full',\n category: ErrorCategory.Component,\n type: NotificationType.Info,\n description: 'The event you selected is full. Please try a different time.',\n id: new Date().getTime().toString(),\n ttl: 3000,\n },\n host: this.host,\n });\n }\n }\n\n @Listen('feedbackSubmitted')\n feedbackSubmittedHandler(event: CustomEvent<{ feedback: string }>) {\n const eventId = Sentry.captureMessage('Scheduling Page User Feedback', {\n extra: {\n configId: this.configurationId,\n slug: this.slug,\n },\n });\n const feedback = {\n eventId: eventId,\n message: event.detail.feedback,\n };\n Sentry.captureFeedback(feedback, {\n includeReplay: true,\n captureContext: {\n tags: {\n 'nylas-web-element': 'nylas-scheduling',\n 'nylas-web-element-version': this.version,\n 'nylas-config-id': this.configurationId,\n 'nylas-slug': this.slug,\n 'host-url': window.location.href,\n },\n extra: {\n configId: this.configurationId,\n slug: this.slug,\n version: this.version,\n },\n },\n });\n this.showFeedbackModal = false;\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n private checkIfSessionIdOrConfigIdExists(emitError = true): boolean {\n if (!this.sessionId && !this.refConfigId && !(this.slug && this.clientId)) {\n if (emitError) {\n let description = '';\n if (!this.sessionId) {\n description += i18next.t('sessionIdRequiredErrorMessage');\n }\n if (!this.sessionId && !this.refConfigId && !(this.slug && this.clientId)) {\n description = i18next.t('sessionIdRequiredErrorMessage') + ' ' + i18next.t('publicConfigErrorMessage');\n }\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('schedulingComponentErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: description,\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n }\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('invalidTimeslotErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('invalidTimeslotErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private validateAvailableDaysInFuture(\n startDate: Date,\n availableDaysInFuture: number,\n ): {\n startTime: number;\n endTime: number;\n endTimeForAvailableDaysInFuture: number;\n } {\n const today = new Date();\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), 1).getTime() / 1000;\n const endTimeForCurrentMonth = new Date(startDate.getFullYear(), startDate.getMonth() + 1, 1).getTime() / 1000;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTime = Math.min(endTimeForAvailableDaysInFuture, endTimeForCurrentMonth);\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n return { startTime: startTimeWithOffset, endTime, endTimeForAvailableDaysInFuture };\n }\n\n private applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n onFeedbackClick(e: Event) {\n e.preventDefault();\n this.showFeedbackModal = true;\n }\n\n redirectToCustomUrl(url: string) {\n window.location.assign(url);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'language') {\n const selectedLanguage = LANGUAGE_CODE[value as LANGUAGE_CODE];\n i18next.changeLanguage(selectedLanguage);\n this.stores?.scheduler?.set('selectedLanguage', selectedLanguage);\n }\n }\n\n /**\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n * @slot custom-booking-form - This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @deprecated Deprecated in favor of using the additional fields defined in the config settings.\n */\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId');\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId');\n const organizerConfirmationBookingId = nylasSchedulerStore?.get('organizerConfirmationBookingId');\n const rejectBookingId = nylasSchedulerStore?.get('rejectBookingId');\n const confirmedEventInfo = nylasSchedulerStore?.get('confirmedEventInfo');\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const redirectUrl = nylasSchedulerStore?.get('configSettings')?.scheduler?.confirmation_redirect_url;\n this.selectedDateLabel =\n selectedDate && this.language ? capitalizeFirstLetter(selectedDate.toLocaleDateString(this.language, { dateStyle: 'full' })) : `${i18next.t('noDateSelected')}`;\n const languageOptions = Object.keys(LANGUAGE_MAP).map(key => ({\n label: LANGUAGE_MAP[key],\n value: key,\n }));\n const selectedLanguage = nylasSchedulerStore?.get('selectedLanguage') || this.defaultLanguage || navigator.language || LANGUAGE_CODE.en;\n if (showDefaultScheduler && (cancelBookingId || rejectBookingId) && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView version={this.version} nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form\n selectedTimeslot={selectedTimeslot}\n cancelBookingId={cancelBookingId}\n rejectBookingId={rejectBookingId}\n exportparts=\"ncbf, ncbf__icon, ncbf__title, ncbf__description, ncbf__reason-textarea, ncbf__button-cta, ncbf__button-outline, ncbf__card\"\n />\n </div>\n </SchedulerView>\n <div class=\"language-feedback-container\">\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Manual confirmation page is shown when the event is manually confirmed\n if (showDefaultScheduler && organizerConfirmationBookingId) {\n return (\n <Host>\n <SchedulerView>\n <div class=\"manual-confirmation-page\" part=\"manual-confirmation-page\">\n <nylas-organizer-confirmation-card\n organizerConfirmationBookingId={organizerConfirmationBookingId}\n exportparts=\"nmcc, nmcc__title, nmcc__description, nmcc__button-cta, nmcc__button-outline\"\n />\n </div>\n </SchedulerView>\n <div class=\"language-feedback-container\">\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView version={this.version} nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n <div class=\"language-feedback-container\">\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Confirmed event card is shown when the event is confirmed\n if (showDefaultScheduler && confirmedEventInfo) {\n return (\n <Host>\n <SchedulerView version={this.version} nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"confirmed-event-page\">\n <nylas-confirmed-event-card\n confirmedEventInfo={confirmedEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n <div class=\"language-feedback-container\">\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n // Redirected to custom URL when the event is booked and redirect URL is provided\n if (showDefaultScheduler && eventInfo && redirectUrl) {\n const recipient = this.bookingInfoConfirmed?.primaryParticipant;\n const location = this.bookingInfoConfirmed?.location;\n const booking_ref = this.bookingInfoConfirmed?.booking_ref;\n const additionalFields = this.bookingInfoConfirmed?.additionalFields || {};\n if (this.bookingInfo && typeof this.bookingInfo?.additionalFields !== 'undefined') {\n const bookingInfoAdditionalFields = this.bookingInfo.additionalFields;\n // Merge additional fields from the bookingInfo with the additional fields from the booking form\n Object.keys(bookingInfoAdditionalFields).forEach(key => {\n if (!additionalFields[key] && bookingInfoAdditionalFields?.[key]) {\n additionalFields[key] = bookingInfoAdditionalFields[key].value;\n }\n });\n }\n const selectedTimeslot = this.stores?.scheduler.get('selectedTimeslot');\n const selectedTimezone = this.stores?.scheduler.get('selectedTimezone');\n const selectedLanguage = this.stores?.scheduler.get('selectedLanguage');\n const configSettings = this.stores?.scheduler.get('configSettings');\n\n const configurationId = this.configurationId ? this.configurationId : configSettings?.configuration_id;\n const queryString = window.location.search;\n\n const urlParams = new URLSearchParams(queryString);\n urlParams.set('booking_id', eventInfo.booking_id);\n recipient?.name && urlParams.set('name', recipient.name);\n recipient?.email && urlParams.set('email', recipient.email);\n selectedTimeslot?.start_time && urlParams.set('start_time', (new Date(selectedTimeslot.start_time).getTime() / 1000).toString());\n selectedTimeslot?.end_time && urlParams.set('end_time', (new Date(selectedTimeslot.end_time).getTime() / 1000).toString());\n selectedTimezone && urlParams.set('tz', selectedTimezone);\n selectedLanguage && urlParams.set('language', selectedLanguage);\n additionalFields && urlParams.set('additional_values', JSON.stringify(additionalFields));\n this.slug && urlParams.set('page_slug', this.slug);\n configurationId && urlParams.set('config_id', configurationId);\n location && urlParams.set('location', location);\n booking_ref && urlParams.set('booking_ref', booking_ref);\n this.redirectToCustomUrl(`${redirectUrl}?${urlParams.toString()}`);\n return;\n }\n\n // Booked event card is shown when the event is booked or booking is sent\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView version={this.version} nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page ns_booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n <div class=\"language-feedback-container\">\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView version={this.version} nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page ns_select-date-page\">\n <div class=\"left-panel\" part=\"ns_left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__title, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--disabled, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <nylas-locale-switch exportparts=\"nls, nls__timezone, nls__timezone-dropdown, nls__timezone-drop-button, nls__timezone-drop-button-selected-label, nls__timezone-drop-content, nls__timezone-drop-label, nls__language, nls__language-dropdown, nls__language-drop-button, nls__language-drop-content, nls__language-drop-label\"></nylas-locale-switch>\n </div>\n <div class={`right-panel ${rescheduleBookingId ? 'reschedule' : ''}`} part={`ns_right-panel ${rescheduleBookingId ? 'ns_reschedule' : ''}`}>\n <h2 part=\"ns_right-panel__title\">\n <calendar-icon part=\"ns_right-panel__calendar-icon\"></calendar-icon>\n <span id=\"selectedDate\" part=\"ns_right-panel__selected-date\">\n {this.selectedDateLabel}\n </span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__time-picker-wrapper, ntp__timeslots, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n return (\n <Host>\n <SchedulerView version={this.version} nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page ns_additional-data-page\">\n <div class=\"left-panel ns_left-panel\" part=\"ns_left-panel\">\n <div class=\"wrapper\" part=\"ns_left-panel__wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time, nsec__timezone\"></nylas-selected-event-card>\n </div>\n </div>\n <div class={`right-panel ${rescheduleBookingId ? 'reschedule' : ''}`} part={`ns_right-panel ${rescheduleBookingId ? 'ns_reschedule' : ''}`}>\n <nylas-booking-form exportparts=\"nbf, nbf__input-textfield, nbf__button-ghost, nbf__button-outline, nbf__button-primary, nbf__input-wrapper, nbf__checkbox-component, nbf__radio-button-group, nbf__textarea-component, nbf__dropdown, nbf__dropdown-button, nbf__dropdown-content\"></nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n <div class=\"language-feedback-container\">\n {this.enableUserFeedback && (\n <button-component id=\"report-issue\" variant={'basic'} onClick={e => this.onFeedbackClick(e)}>\n <feedback-icon />\n </button-component>\n )}\n <select-dropdown\n name=\"language\"\n searchPlaceholder={i18next.t('search')}\n options={languageOptions}\n withChevron={false}\n themeConfig={this.themeConfig}\n defaultSelectedOption={languageOptions.find(lang => lang.value == selectedLanguage)}\n exportparts=\"sd_dropdown: nse__language-dropdown, sd_dropdown-button: nse__language-drop-button, sd_dropdown-content: nse__language-drop-content, sd_dropdown_label: nse__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n {this.showFeedbackModal && <nylas-feedback-form></nylas-feedback-form>}\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as C,h as s}from"./p-0EQQA0nE.js";const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as C,h as s}from"./p-0EQQA0nE.js";const t=".sc-person-icon-h{display:flex}";const r=class{constructor(s){C(this,s);this.width="14";this.height="16"}render(){return s("svg",{key:"3581c81fc1f6cb051b061158fd049ff4a0466e02",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"99a29a1f6e913272e9ff42c2db7966a3020636ab",d:"M7 0C4.79086 0 3 1.79086 3 4C3 6.20914 4.79086 8 7 8C9.20914 8 11 6.20914 11 4C11 1.79086 9.20914 0 7 0ZM4 4C4 2.34315 5.34315 1 7 1C8.65685 1 10 2.34315 10 4C10 5.65685 8.65685 7 7 7C5.34315 7 4 5.65685 4 4ZM2.00873 9C0.903151 9 0 9.88687 0 11C0 12.6912 0.83281 13.9663 2.13499 14.7966C3.41697 15.614 5.14526 16 7 16C8.85474 16 10.583 15.614 11.865 14.7966C13.1672 13.9663 14 12.6912 14 11C14 9.89557 13.1045 9.00001 12 9.00001L2.00873 9ZM1 11C1 10.4467 1.44786 10 2.00873 10L12 10C12.5522 10 13 10.4478 13 11C13 12.3088 12.3777 13.2837 11.3274 13.9534C10.2568 14.636 8.73511 15 7 15C5.26489 15 3.74318 14.636 2.67262 13.9534C1.62226 13.2837 1 12.3088 1 11Z",fill:"currentColor"}))}};r.style=t;export{r as person_icon};
|
|
2
|
+
//# sourceMappingURL=p-932456ba.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as t}from"./p-0EQQA0nE.js";const r=".sc-underline-icon-h{display:flex}";const s=class{constructor(t){e(this,t);this.width="15";this.height="15"}render(){return t("svg",{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as t}from"./p-0EQQA0nE.js";const r=".sc-underline-icon-h{display:flex}";const s=class{constructor(t){e(this,t);this.width="15";this.height="15"}render(){return t("svg",{key:"4d71ec4fdf0fa2505394ec32a9595f576c90aba9",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t("path",{key:"a1a86fed569522894b6a305bc107cf7885f721e1",d:"M19 4V10C19 13.866 15.866 17 12 17C8.13401 17 5 13.866 5 10V4M8.5 4V10C8.5 13.2218 10.6766 15.9352 13.6395 16.7501M4 21H20M3 4L10.5 4M17 4L21 4",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};s.style=r;export{s as underline_icon};
|
|
2
|
+
//# sourceMappingURL=p-974fce52.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as C,h as t}from"./p-0EQQA0nE.js";const s=".sc-translate-icon-h{display:flex}";const e=class{constructor(t){C(this,t);this.width="16";this.height="16"}render(){return t("svg",{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as C,h as t}from"./p-0EQQA0nE.js";const s=".sc-translate-icon-h{display:flex}";const e=class{constructor(t){C(this,t);this.width="16";this.height="16"}render(){return t("svg",{key:"74493583733ace45bd742a25b5abb45fc044f16e",xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height,viewBox:"0 0 20 20",fill:"none"},t("path",{key:"ff9d8edefddf3d57440420d305d1ced70ab8c7b5",fill:"currentColor",d:"M14.1663 4.02867C14.4267 4.12081 14.563 4.40654 14.4709 4.66685C14.3501 5.00788 14.2182 5.4771 14.1178 5.86047C14.6877 5.77587 15.2665 5.65653 15.8867 5.51288C16.1557 5.45058 16.4243 5.61815 16.4866 5.88717C16.5489 6.15619 16.3814 6.42479 16.1123 6.4871C15.339 6.66621 14.6101 6.81289 13.8717 6.90283C13.7759 7.35654 13.7014 7.77084 13.6451 8.15021C14.1202 8.04599 14.5738 8.00553 14.9996 8.02075L14.9996 8C14.9996 7.72386 15.2235 7.5 15.4996 7.5C15.7758 7.5 15.9996 7.72386 15.9996 8C15.9996 8.05657 15.9991 8.11281 15.9979 8.16871C17.1392 8.47838 17.9781 9.23987 18.3435 10.2263C18.9579 11.8853 18.1287 13.8787 15.7027 14.9569C15.4504 15.069 15.1549 14.9554 15.0427 14.7031C14.9306 14.4507 15.0442 14.1552 15.2966 14.0431C17.3705 13.1213 17.7913 11.6147 17.4057 10.5737C17.1874 9.984 16.6776 9.44916 15.9129 9.18633C15.6829 10.7237 15.021 11.9466 14.229 12.7925C14.3126 12.9656 14.3958 13.1436 14.4641 13.3151C14.5662 13.5717 14.441 13.8625 14.1844 13.9646C13.9278 14.0667 13.637 13.9415 13.5349 13.6849C13.5066 13.6137 13.4777 13.5463 13.448 13.4802C13.028 13.7794 12.5905 13.9869 12.1705 14.0835C11.5942 14.2161 10.963 14.1517 10.534 13.6942C9.88917 13.0053 9.84361 11.8611 10.2855 10.8412C10.6652 9.96479 11.4186 9.11781 12.5848 8.54034C12.6387 8.07338 12.7199 7.55894 12.8332 6.98891C12.3926 7.00755 11.9403 7.00326 11.4659 6.97127C11.1904 6.95269 10.9821 6.71428 11.0007 6.43876C11.0192 6.16325 11.2577 5.95496 11.5332 5.97353C12.0633 6.00928 12.5641 6.00772 13.0566 5.97553C13.1605 5.55444 13.3512 4.8331 13.5282 4.33317C13.6203 4.07286 13.906 3.93653 14.1663 4.02867ZM12.501 9.74109C11.8436 10.1821 11.427 10.7219 11.2031 11.2387C10.8542 12.0439 10.9881 12.716 11.2638 13.0105C11.2637 13.0104 11.2639 13.0106 11.2638 13.0105C11.3573 13.11 11.5624 13.1973 11.9463 13.109C12.2578 13.0373 12.6311 12.8571 13.0121 12.5576C12.8658 12.22 12.7272 11.8324 12.6313 11.353C12.5405 10.8996 12.4899 10.3743 12.501 9.74109ZM13.7808 11.7797C14.316 11.0956 14.759 10.1665 14.9271 9.01632C14.539 9.00681 14.1111 9.05601 13.6457 9.17854C13.605 9.19274 13.5647 9.20726 13.525 9.22209C13.4663 10.0545 13.5146 10.671 13.6118 11.1568C13.6578 11.3868 13.7156 11.5913 13.7808 11.7797ZM6.92028 5.2159C5.77942 4.88398 4.78409 5.00841 4.07616 5.21575C3.72264 5.3193 3.439 5.44393 3.24121 5.5443C3.14215 5.59457 3.0641 5.63901 3.00903 5.67212C2.98147 5.68868 2.95962 5.70244 2.9437 5.71271L2.92429 5.72542L2.91797 5.72966L2.91566 5.73123L2.91393 5.73241C2.91384 5.73249 2.91436 5.73325 2.94925 5.78397C3.23698 6.20225 3.1703 6.10548 2.91393 5.73241C2.68634 5.88881 2.62863 6.20009 2.78502 6.42767C2.94134 6.65514 3.25207 6.71313 3.47963 6.55703L3.4788 6.5576L3.48576 6.55305C3.49318 6.54826 3.50608 6.5401 3.52423 6.52919C3.56057 6.50735 3.6177 6.47463 3.69373 6.43605C3.84612 6.35872 4.07228 6.2589 4.35724 6.17544C4.92619 6.0088 5.72242 5.90898 6.64043 6.17595C7.35305 6.38517 7.66747 6.76919 7.82692 7.16112C7.98173 7.54163 8.0026 7.95751 8.00531 8.33243C7.46199 8.18407 6.79336 8.03682 6.08385 8.00744C5.04808 7.96456 3.8874 8.17096 2.87738 9.01102C1.98877 9.75011 1.78345 10.8818 2.07014 11.853C2.35713 12.8252 3.14925 13.692 4.31803 13.9348C5.22351 14.123 6.18016 13.8639 6.9599 13.5212C7.3403 13.354 7.69572 13.1594 8.0057 12.9665V13.5C8.0057 13.7761 8.22956 14 8.5057 14C8.78184 14 9.0057 13.7754 9.0057 13.4993L9.0057 8.44586C9.0058 8.05404 9.00595 7.40554 8.7532 6.78428C8.48142 6.11625 7.93342 5.51313 6.92136 5.21622L6.92028 5.2159ZM6.04249 9.00659C6.76366 9.03645 7.44769 9.209 8.0057 9.37205V11.757C7.65814 12.0182 7.13927 12.35 6.55757 12.6057C5.85264 12.9155 5.12729 13.0816 4.52148 12.9557C3.75127 12.7957 3.22322 12.2271 3.02922 11.5699C2.83491 10.9116 2.98777 10.2199 3.51683 9.77985C4.27958 9.14545 5.16917 8.97043 6.04249 9.00659Z"}))}};e.style=s;export{e as translate_icon};
|
|
2
|
+
//# sourceMappingURL=p-991b94bd.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as s,a as e}from"./p-0EQQA0nE.js";const i=".sc-info-icon-h{display:flex}";const o=class{constructor(s){t(this,s);this.width="14";this.height="14"}render(){return s("svg",{key:"a2de42211ea6d02a9a6104c4908e249b18b219bf",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"22d28200ada94c778e2f4f8b58327e88e6229659",fill:"currentColor",d:"M6.5 5.5C6.77614 5.5 7 5.72386 7 6V9C7 9.27614 6.77614 9.5 6.5 9.5C6.22386 9.5 6 9.27614 6 9V6C6 5.72386 6.22386 5.5 6.5 5.5ZM6.50001 4.74907C6.91369 4.74907 7.24905 4.41371 7.24905 4.00003C7.24905 3.58635 6.91369 3.251 6.50001 3.251C6.08633 3.251 5.75098 3.58635 5.75098 4.00003C5.75098 4.41371 6.08633 4.74907 6.50001 4.74907ZM0.5 6.5C0.5 3.18629 3.18629 0.5 6.5 0.5C9.81371 0.5 12.5 3.18629 12.5 6.5C12.5 9.81371 9.81371 12.5 6.5 12.5C3.18629 12.5 0.5 9.81371 0.5 6.5ZM6.5 1.5C3.73858 1.5 1.5 3.73858 1.5 6.5C1.5 9.26142 3.73858 11.5 6.5 11.5C9.26142 11.5 11.5 9.26142 11.5 6.5C11.5 3.73858 9.26142 1.5 6.5 1.5Z"}))}};o.style=i;const n=':host{display:inline-flex;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.tooltip-container{position:relative;display:inline-flex;align-items:center}.info-icon{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;outline:none;transition:opacity 0.2s ease-in-out;border-radius:2px}.info-icon:hover{opacity:0.8}.info-icon:active{opacity:0.6}.info-icon:focus-visible{outline:2px solid var(--nylas-primary-500, #2563eb);outline-offset:2px;border-radius:2px}.info-icon[aria-pressed=true]{opacity:1;background-color:var(--nylas-primary-50, rgba(37, 99, 235, 0.1));border-radius:4px}.tooltip-content{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}';const l=class{constructor(s){t(this,s);this.position="bottom";this.alignment="center";this.offset=8;this.boundaryPadding=8;this.showArrow=true;this.showDelay=0;this.hideDelay=0;this.isVisible=false;this.isPinned=false;this.actualPosition=this.position;this.portalContainer=null;this.tooltipContentEl=null;this.triggerEl=null;this.tooltipId=`tooltip-${Math.random().toString(36).substr(2,9)}`;this.showTimeoutId=null;this.hideTimeoutId=null;this.rafId=null;this.resizeObserver=null;this.mutationObserver=null;this.scrollParents=[];this.handleParentScroll=()=>{if(this.isVisible&&this.portalContainer){this.updatePosition()}};this.handleClick=t=>{t.stopPropagation();this.isPinned=!this.isPinned;if(this.isPinned){this.showTooltip()}else{this.isVisible=false;this.hidePortal()}};this.handleMouseEnter=()=>{if(!this.isPinned){this.showTooltip()}};this.handleMouseLeave=()=>{this.hideTooltip()};this.handleFocus=()=>{if(!this.isPinned){this.showTooltip()}};this.handleBlur=()=>{this.hideTooltip()}}handleKeyDown(t){if(t.key==="Escape"&&this.isVisible){this.isPinned=false;this.isVisible=false;this.hidePortal()}}handleDocumentClick(t){if(!this.isPinned||!this.isVisible){return}const s=t.composedPath();const e=s.includes(this.el)||this.portalContainer&&s.includes(this.portalContainer);if(!e){this.isPinned=false;this.isVisible=false;this.hidePortal()}}handleScroll(){if(this.isVisible&&this.portalContainer){this.updatePosition()}}handleResize(){if(this.isVisible&&this.portalContainer){this.updatePosition()}}componentDidLoad(){this.triggerEl=this.el.shadowRoot?.querySelector(".info-icon")}disconnectedCallback(){this.cleanup()}async show(){this.showTooltip()}async hide(){this.isPinned=false;this.isVisible=false;this.hidePortal()}cleanup(){if(this.showTimeoutId){clearTimeout(this.showTimeoutId);this.showTimeoutId=null}if(this.hideTimeoutId){clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null}if(this.rafId){cancelAnimationFrame(this.rafId);this.rafId=null}if(this.resizeObserver){this.resizeObserver.disconnect();this.resizeObserver=null}if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}this.removeScrollListeners();this.hidePortal()}getScrollParents(t){const s=[];let e=t.parentElement;while(e){const t=getComputedStyle(e);const i=t.overflowY;const o=t.overflowX;if(i==="auto"||i==="scroll"||o==="auto"||o==="scroll"){s.push(e)}e=e.parentElement}return s}addScrollListeners(){this.scrollParents=this.getScrollParents(this.el);this.scrollParents.forEach((t=>{t.addEventListener("scroll",this.handleParentScroll,{passive:true})}))}removeScrollListeners(){this.scrollParents.forEach((t=>{t.removeEventListener("scroll",this.handleParentScroll)}));this.scrollParents=[]}createPortal(){if(this.portalContainer)return;this.portalContainer=document.createElement("div");this.portalContainer.className="tooltip-portal";this.portalContainer.setAttribute("data-tooltip-id",this.tooltipId);this.portalContainer.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n pointer-events: none;\n z-index: 99999;\n `;this.tooltipContentEl=document.createElement("div");this.tooltipContentEl.id=this.tooltipId;this.tooltipContentEl.setAttribute("role","tooltip");this.tooltipContentEl.setAttribute("aria-hidden","true");this.tooltipContentEl.className="tooltip-content";this.applyTooltipStyles();this.portalContainer.appendChild(this.tooltipContentEl);document.body.appendChild(this.portalContainer);this.setupObservers()}applyTooltipStyles(){if(!this.tooltipContentEl)return;const t=getComputedStyle(this.el);const s=t.getPropertyValue("--nylas-base-800").trim()||"#1f2937";const e=t.getPropertyValue("--nylas-base-0").trim()||"#ffffff";const i=t.getPropertyValue("--nylas-font-family").trim()||"inherit";const o=t.getPropertyValue("--nylas-border-radius").trim()||"6px";this.tooltipContentEl.style.cssText=`\n position: absolute;\n background-color: ${s};\n color: ${e};\n font-family: ${i};\n text-align: left;\n border-radius: ${o};\n padding: 0.5rem 1rem;\n max-width: 300px;\n width: max-content;\n font-size: 14px;\n line-height: 1.4;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n transition: opacity 0.15s ease-out, visibility 0.15s ease-out;\n box-sizing: border-box;\n `}setupObservers(){if(this.triggerEl&&typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>{if(this.isVisible){this.updatePosition()}}));this.resizeObserver.observe(this.triggerEl)}}updatePortalContent(){if(!this.tooltipContentEl)return;const t=this.el.shadowRoot?.querySelector('slot[name="tooltip-content"]');if(t){const s=t.assignedNodes({flatten:true});if(s.length>0){this.tooltipContentEl.innerHTML="";s.forEach((t=>{this.tooltipContentEl.appendChild(t.cloneNode(true))}))}else{this.tooltipContentEl.textContent="This is a help text."}}else{this.tooltipContentEl.textContent="This is a help text."}}calculatePosition(){if(!this.triggerEl||!this.tooltipContentEl){return{x:0,y:0,placement:this.position,arrowX:0,arrowY:0}}const t=this.triggerEl.getBoundingClientRect();const s=this.tooltipContentEl.getBoundingClientRect();const e=window.innerWidth;const i=window.innerHeight;const o=this.boundaryPadding;const n=this.offset;const l=t.top-o;const a=i-t.bottom-o;const r=t.left-o;const h=e-t.right-o;let c=this.position;const f=s.height||40;const d=s.width||200;const y={top:l>=f+n,bottom:a>=f+n,left:r>=d+n,right:h>=d+n};if(!y[c]){const t={top:"bottom",bottom:"top",left:"right",right:"left"};const s=t[c];if(y[s]){c=s}else{const t={top:l,bottom:a,left:r,right:h};c=Object.entries(t).sort((([,t],[,s])=>s-t))[0][0]}}let p=0;let b=0;let u=0;let m=0;const x=6;const g=t.left+t.width/2;const w=t.top+t.height/2;switch(c){case"top":p=g-d/2;b=t.top-f-n;u=d/2;m=f;break;case"bottom":p=g-d/2;b=t.bottom+n;u=d/2;m=-6*2;break;case"left":p=t.left-d-n;b=w-f/2;u=d;m=f/2;break;case"right":p=t.right+n;b=w-f/2;u=-6*2;m=f/2;break}let k=0;let v=0;if(p<o){k=o-p;p=o}else if(p+d>e-o){k=e-o-d-p;p=e-o-d}if(b<o){v=o-b;b=o}else if(b+f>i-o){v=i-o-f-b;b=i-o-f}if(c==="top"||c==="bottom"){u-=k;u=Math.max(x+4,Math.min(d-x-4,u))}else{m-=v;m=Math.max(x+4,Math.min(f-x-4,m))}return{x:Math.round(p),y:Math.round(b),placement:c,arrowX:Math.round(u),arrowY:Math.round(m),maxWidth:Math.min(300,e-o*2),maxHeight:i-o*2}}updatePosition(){if(!this.tooltipContentEl||!this.portalContainer)return;const t=this.calculatePosition();this.actualPosition=t.placement;this.tooltipContentEl.style.transform=`translate(${t.x}px, ${t.y}px)`;this.tooltipContentEl.style.maxWidth=`${t.maxWidth}px`;this.updateArrow(t)}updateArrow(t){if(!this.tooltipContentEl||!this.showArrow)return;const s=this.tooltipContentEl.querySelector(".tooltip-arrow");if(s){s.remove()}const e=getComputedStyle(this.el);const i=e.getPropertyValue("--nylas-base-800").trim()||"#1f2937";const o=document.createElement("div");o.className="tooltip-arrow";o.style.cssText=`\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 6px;\n `;switch(t.placement){case"top":o.style.bottom="-12px";o.style.left=`${t.arrowX-6}px`;o.style.borderColor=`${i} transparent transparent transparent`;break;case"bottom":o.style.top="-12px";o.style.left=`${t.arrowX-6}px`;o.style.borderColor=`transparent transparent ${i} transparent`;break;case"left":o.style.right="-12px";o.style.top=`${t.arrowY-6}px`;o.style.borderColor=`transparent transparent transparent ${i}`;break;case"right":o.style.left="-12px";o.style.top=`${t.arrowY-6}px`;o.style.borderColor=`transparent ${i} transparent transparent`;break}this.tooltipContentEl.appendChild(o)}showPortal(){this.createPortal();this.updatePortalContent();this.addScrollListeners();this.rafId=requestAnimationFrame((()=>{this.rafId=requestAnimationFrame((()=>{this.updatePosition();if(this.tooltipContentEl){this.tooltipContentEl.style.opacity="1";this.tooltipContentEl.style.visibility="visible";this.tooltipContentEl.setAttribute("aria-hidden","false")}}))}))}hidePortal(){if(this.tooltipContentEl){this.tooltipContentEl.style.opacity="0";this.tooltipContentEl.style.visibility="hidden";this.tooltipContentEl.setAttribute("aria-hidden","true")}this.removeScrollListeners();setTimeout((()=>{if(!this.isVisible&&this.portalContainer){this.portalContainer.remove();this.portalContainer=null;this.tooltipContentEl=null}}),150)}showTooltip(){if(this.hideTimeoutId){clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null}if(this.showDelay>0){this.showTimeoutId=setTimeout((()=>{this.isVisible=true;this.showPortal()}),this.showDelay)}else{this.isVisible=true;this.showPortal()}}hideTooltip(){if(this.isPinned)return;if(this.showTimeoutId){clearTimeout(this.showTimeoutId);this.showTimeoutId=null}if(this.hideDelay>0){this.hideTimeoutId=setTimeout((()=>{this.isVisible=false;this.hidePortal()}),this.hideDelay)}else{this.isVisible=false;this.hidePortal()}}render(){return s("div",{key:"a7e855b9d23defe05e04bb79e72b1bfc2148de00",class:"tooltip-container",part:"tc__container"},s("span",{key:"ba40cbefb040b9b0e62e4391b5649089015c6086",class:"info-icon",tabindex:"0",role:"button","aria-describedby":this.tooltipId,"aria-expanded":this.isVisible?"true":"false","aria-pressed":this.isPinned?"true":"false",onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur},s("slot",{key:"f35ca35a522a44be4e152febdc9c8fc41c1c5868",name:"tooltip-icon"},"i")),s("div",{key:"27199534f212bc6677c8d5d86f691f692b6fae0e",style:{display:"none"}},s("slot",{key:"6ca0f42241729eb85fb4434b0c10f1ef6cd3d5ba",name:"tooltip-content"},"This is a help text.")),s("span",{key:"26314bd6ddfee3c329d9b17a5ef7e78162a60f70",id:this.tooltipId,role:"tooltip","aria-hidden":!this.isVisible?"true":"false",class:{"tooltip-content":true,"tooltip-visible":this.isVisible,[this.actualPosition]:true},part:"tc__content",style:{display:"none"}},s("slot",{key:"c3c852aa1ac91519c48e4d33968304d89510688f",name:"tooltip-content-aria"},s("slot",{key:"3e1a1de14f8c664322e885d58033b724d50b3233",name:"tooltip-content"},"This is a help text."))))}get el(){return e(this)}};l.style=n;export{o as info_icon,l as tooltip_component};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as s,a as e}from"./p-0EQQA0nE.js";const i=".sc-info-icon-h{display:flex}";const o=class{constructor(s){t(this,s);this.width="14";this.height="14"}render(){return s("svg",{key:"d03d1caab2cf7c29a77ba664725e38ee514244cd",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"c09108543be7354f804caad9c6ee1fca8148223f",fill:"currentColor",d:"M6.5 5.5C6.77614 5.5 7 5.72386 7 6V9C7 9.27614 6.77614 9.5 6.5 9.5C6.22386 9.5 6 9.27614 6 9V6C6 5.72386 6.22386 5.5 6.5 5.5ZM6.50001 4.74907C6.91369 4.74907 7.24905 4.41371 7.24905 4.00003C7.24905 3.58635 6.91369 3.251 6.50001 3.251C6.08633 3.251 5.75098 3.58635 5.75098 4.00003C5.75098 4.41371 6.08633 4.74907 6.50001 4.74907ZM0.5 6.5C0.5 3.18629 3.18629 0.5 6.5 0.5C9.81371 0.5 12.5 3.18629 12.5 6.5C12.5 9.81371 9.81371 12.5 6.5 12.5C3.18629 12.5 0.5 9.81371 0.5 6.5ZM6.5 1.5C3.73858 1.5 1.5 3.73858 1.5 6.5C1.5 9.26142 3.73858 11.5 6.5 11.5C9.26142 11.5 11.5 9.26142 11.5 6.5C11.5 3.73858 9.26142 1.5 6.5 1.5Z"}))}};o.style=i;const n=':host{display:inline-flex;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.tooltip-container{position:relative;display:inline-flex;align-items:center}.info-icon{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;outline:none;transition:opacity 0.2s ease-in-out;border-radius:2px}.info-icon:hover{opacity:0.8}.info-icon:active{opacity:0.6}.info-icon:focus-visible{outline:2px solid var(--nylas-primary-500, #2563eb);outline-offset:2px;border-radius:2px}.info-icon[aria-pressed=true]{opacity:1;background-color:var(--nylas-primary-50, rgba(37, 99, 235, 0.1));border-radius:4px}.tooltip-content{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}';const a=class{constructor(s){t(this,s);this.position="bottom";this.alignment="center";this.offset=8;this.boundaryPadding=8;this.showArrow=true;this.showDelay=0;this.hideDelay=0;this.isVisible=false;this.isPinned=false;this.actualPosition=this.position;this.portalContainer=null;this.tooltipContentEl=null;this.triggerEl=null;this.tooltipId=`tooltip-${Math.random().toString(36).substr(2,9)}`;this.showTimeoutId=null;this.hideTimeoutId=null;this.rafId=null;this.resizeObserver=null;this.mutationObserver=null;this.scrollParents=[];this.handleParentScroll=()=>{if(this.isVisible&&this.portalContainer){this.updatePosition()}};this.handleClick=t=>{t.stopPropagation();this.isPinned=!this.isPinned;if(this.isPinned){this.showTooltip()}else{this.isVisible=false;this.hidePortal()}};this.handleMouseEnter=()=>{if(!this.isPinned){this.showTooltip()}};this.handleMouseLeave=()=>{this.hideTooltip()};this.handleFocus=()=>{if(!this.isPinned){this.showTooltip()}};this.handleBlur=()=>{this.hideTooltip()}}handleKeyDown(t){if(t.key==="Escape"&&this.isVisible){this.isPinned=false;this.isVisible=false;this.hidePortal()}}handleDocumentClick(t){if(!this.isPinned||!this.isVisible){return}const s=t.composedPath();const e=s.includes(this.el)||this.portalContainer&&s.includes(this.portalContainer);if(!e){this.isPinned=false;this.isVisible=false;this.hidePortal()}}handleScroll(){if(this.isVisible&&this.portalContainer){this.updatePosition()}}handleResize(){if(this.isVisible&&this.portalContainer){this.updatePosition()}}componentDidLoad(){this.triggerEl=this.el.shadowRoot?.querySelector(".info-icon")}disconnectedCallback(){this.cleanup()}async show(){this.showTooltip()}async hide(){this.isPinned=false;this.isVisible=false;this.hidePortal()}cleanup(){if(this.showTimeoutId){clearTimeout(this.showTimeoutId);this.showTimeoutId=null}if(this.hideTimeoutId){clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null}if(this.rafId){cancelAnimationFrame(this.rafId);this.rafId=null}if(this.resizeObserver){this.resizeObserver.disconnect();this.resizeObserver=null}if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}this.removeScrollListeners();this.hidePortal()}getScrollParents(t){const s=[];let e=t.parentElement;while(e){const t=getComputedStyle(e);const i=t.overflowY;const o=t.overflowX;if(i==="auto"||i==="scroll"||o==="auto"||o==="scroll"){s.push(e)}e=e.parentElement}return s}addScrollListeners(){this.scrollParents=this.getScrollParents(this.el);this.scrollParents.forEach((t=>{t.addEventListener("scroll",this.handleParentScroll,{passive:true})}))}removeScrollListeners(){this.scrollParents.forEach((t=>{t.removeEventListener("scroll",this.handleParentScroll)}));this.scrollParents=[]}createPortal(){if(this.portalContainer)return;this.portalContainer=document.createElement("div");this.portalContainer.className="tooltip-portal";this.portalContainer.setAttribute("data-tooltip-id",this.tooltipId);this.portalContainer.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n pointer-events: none;\n z-index: 99999;\n `;this.tooltipContentEl=document.createElement("div");this.tooltipContentEl.id=this.tooltipId;this.tooltipContentEl.setAttribute("role","tooltip");this.tooltipContentEl.setAttribute("aria-hidden","true");this.tooltipContentEl.className="tooltip-content";this.applyTooltipStyles();this.portalContainer.appendChild(this.tooltipContentEl);document.body.appendChild(this.portalContainer);this.setupObservers()}applyTooltipStyles(){if(!this.tooltipContentEl)return;const t=getComputedStyle(this.el);const s=t.getPropertyValue("--nylas-base-800").trim()||"#1f2937";const e=t.getPropertyValue("--nylas-base-0").trim()||"#ffffff";const i=t.getPropertyValue("--nylas-font-family").trim()||"inherit";const o=t.getPropertyValue("--nylas-border-radius").trim()||"6px";this.tooltipContentEl.style.cssText=`\n position: absolute;\n background-color: ${s};\n color: ${e};\n font-family: ${i};\n text-align: left;\n border-radius: ${o};\n padding: 0.5rem 1rem;\n max-width: 300px;\n width: max-content;\n font-size: 14px;\n line-height: 1.4;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n transition: opacity 0.15s ease-out, visibility 0.15s ease-out;\n box-sizing: border-box;\n `}setupObservers(){if(this.triggerEl&&typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>{if(this.isVisible){this.updatePosition()}}));this.resizeObserver.observe(this.triggerEl)}}updatePortalContent(){if(!this.tooltipContentEl)return;const t=this.el.shadowRoot?.querySelector('slot[name="tooltip-content"]');if(t){const s=t.assignedNodes({flatten:true});if(s.length>0){this.tooltipContentEl.innerHTML="";s.forEach((t=>{this.tooltipContentEl.appendChild(t.cloneNode(true))}))}else{this.tooltipContentEl.textContent="This is a help text."}}else{this.tooltipContentEl.textContent="This is a help text."}}calculatePosition(){if(!this.triggerEl||!this.tooltipContentEl){return{x:0,y:0,placement:this.position,arrowX:0,arrowY:0}}const t=this.triggerEl.getBoundingClientRect();const s=this.tooltipContentEl.getBoundingClientRect();const e=window.innerWidth;const i=window.innerHeight;const o=this.boundaryPadding;const n=this.offset;const a=t.top-o;const l=i-t.bottom-o;const r=t.left-o;const h=e-t.right-o;let c=this.position;const f=s.height||40;const d=s.width||200;const y={top:a>=f+n,bottom:l>=f+n,left:r>=d+n,right:h>=d+n};if(!y[c]){const t={top:"bottom",bottom:"top",left:"right",right:"left"};const s=t[c];if(y[s]){c=s}else{const t={top:a,bottom:l,left:r,right:h};c=Object.entries(t).sort((([,t],[,s])=>s-t))[0][0]}}let p=0;let b=0;let u=0;let m=0;const x=6;const g=t.left+t.width/2;const w=t.top+t.height/2;switch(c){case"top":p=g-d/2;b=t.top-f-n;u=d/2;m=f;break;case"bottom":p=g-d/2;b=t.bottom+n;u=d/2;m=-6*2;break;case"left":p=t.left-d-n;b=w-f/2;u=d;m=f/2;break;case"right":p=t.right+n;b=w-f/2;u=-6*2;m=f/2;break}let k=0;let v=0;if(p<o){k=o-p;p=o}else if(p+d>e-o){k=e-o-d-p;p=e-o-d}if(b<o){v=o-b;b=o}else if(b+f>i-o){v=i-o-f-b;b=i-o-f}if(c==="top"||c==="bottom"){u-=k;u=Math.max(x+4,Math.min(d-x-4,u))}else{m-=v;m=Math.max(x+4,Math.min(f-x-4,m))}return{x:Math.round(p),y:Math.round(b),placement:c,arrowX:Math.round(u),arrowY:Math.round(m),maxWidth:Math.min(300,e-o*2),maxHeight:i-o*2}}updatePosition(){if(!this.tooltipContentEl||!this.portalContainer)return;const t=this.calculatePosition();this.actualPosition=t.placement;this.tooltipContentEl.style.transform=`translate(${t.x}px, ${t.y}px)`;this.tooltipContentEl.style.maxWidth=`${t.maxWidth}px`;this.updateArrow(t)}updateArrow(t){if(!this.tooltipContentEl||!this.showArrow)return;const s=this.tooltipContentEl.querySelector(".tooltip-arrow");if(s){s.remove()}const e=getComputedStyle(this.el);const i=e.getPropertyValue("--nylas-base-800").trim()||"#1f2937";const o=document.createElement("div");o.className="tooltip-arrow";o.style.cssText=`\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 6px;\n `;switch(t.placement){case"top":o.style.bottom="-12px";o.style.left=`${t.arrowX-6}px`;o.style.borderColor=`${i} transparent transparent transparent`;break;case"bottom":o.style.top="-12px";o.style.left=`${t.arrowX-6}px`;o.style.borderColor=`transparent transparent ${i} transparent`;break;case"left":o.style.right="-12px";o.style.top=`${t.arrowY-6}px`;o.style.borderColor=`transparent transparent transparent ${i}`;break;case"right":o.style.left="-12px";o.style.top=`${t.arrowY-6}px`;o.style.borderColor=`transparent ${i} transparent transparent`;break}this.tooltipContentEl.appendChild(o)}showPortal(){this.createPortal();this.updatePortalContent();this.addScrollListeners();this.rafId=requestAnimationFrame((()=>{this.rafId=requestAnimationFrame((()=>{this.updatePosition();if(this.tooltipContentEl){this.tooltipContentEl.style.opacity="1";this.tooltipContentEl.style.visibility="visible";this.tooltipContentEl.setAttribute("aria-hidden","false")}}))}))}hidePortal(){if(this.tooltipContentEl){this.tooltipContentEl.style.opacity="0";this.tooltipContentEl.style.visibility="hidden";this.tooltipContentEl.setAttribute("aria-hidden","true")}this.removeScrollListeners();setTimeout((()=>{if(!this.isVisible&&this.portalContainer){this.portalContainer.remove();this.portalContainer=null;this.tooltipContentEl=null}}),150)}showTooltip(){if(this.hideTimeoutId){clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null}if(this.showDelay>0){this.showTimeoutId=setTimeout((()=>{this.isVisible=true;this.showPortal()}),this.showDelay)}else{this.isVisible=true;this.showPortal()}}hideTooltip(){if(this.isPinned)return;if(this.showTimeoutId){clearTimeout(this.showTimeoutId);this.showTimeoutId=null}if(this.hideDelay>0){this.hideTimeoutId=setTimeout((()=>{this.isVisible=false;this.hidePortal()}),this.hideDelay)}else{this.isVisible=false;this.hidePortal()}}render(){return s("div",{key:"831542fee7806f76c29abe2a805ae05cec9ed015",class:"tooltip-container",part:"tc__container"},s("span",{key:"bf8e1ac93e4a90076499dd1aa11c3199154725e2",class:"info-icon",tabindex:"0",role:"button","aria-describedby":this.tooltipId,"aria-expanded":this.isVisible?"true":"false","aria-pressed":this.isPinned?"true":"false",onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur},s("slot",{key:"5a53111657bf09fd20dcd3721f1aa3a0ef84da74",name:"tooltip-icon"},"i")),s("div",{key:"aba60735c83cfb558a5a5122a74c793288da415c",style:{display:"none"}},s("slot",{key:"d9cf660c79e623247bea55a07eb121f5c000ddb2",name:"tooltip-content"},"This is a help text.")),s("span",{key:"63c3fd381a97908fe75b1c879947ef05a25ef836",id:this.tooltipId,role:"tooltip","aria-hidden":!this.isVisible?"true":"false",class:{"tooltip-content":true,"tooltip-visible":this.isVisible,[this.actualPosition]:true},part:"tc__content",style:{display:"none"}},s("slot",{key:"a53d31c0c15d767939f82305bd572e2b554d68dc",name:"tooltip-content-aria"},s("slot",{key:"181d71d4958b22977370a4e734fbd84eaf8249a2",name:"tooltip-content"},"This is a help text."))))}get el(){return e(this)}};a.style=n;export{o as info_icon,a as tooltip_component};
|
|
2
|
+
//# sourceMappingURL=p-9dd10333.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p-
|
|
1
|
+
{"version":3,"file":"p-ClDvNLDf.js","sources":["../nylas-js-core/dist/index.es.js","src/version.ts"],"sourcesContent":["var t = Object.defineProperty;\nvar c = (r, n, s) => n in r ? t(r, n, { enumerable: !0, configurable: !0, writable: !0, value: s }) : r[n] = s;\nvar a = (r, n, s) => (c(r, typeof n != \"symbol\" ? n + \"\" : n, s), s);\nvar u = /* @__PURE__ */ ((r) => (r.Error = \"error\", r.Warning = \"warning\", r.Info = \"info\", r.Success = \"success\", r))(u || {});\nconst e = (r) => r !== null && typeof r == \"object\" && \"data\" in r, o = (r) => r !== null && typeof r == \"object\" && \"error\" in r;\nclass E extends Error {\n constructor(s) {\n super(s == null ? void 0 : s.message);\n a(this, \"apiError\");\n this.name = \"NylasAPIError\", this.stack = new Error().stack, this.apiError = s;\n }\n}\nexport {\n u as NotificationType,\n E as NylasAPIError,\n o as isNylasErrorResponse,\n e as isNylasSuccessResponse\n};\n","export const version = '2.5.0-canary-20260306042320';\n"],"names":[],"mappings":"AAGG,IAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACzH,MAA+D,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,IAAI;;ACJzH,MAAM,OAAO,GAAG;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as a,H as l,a as r}from"./p-0EQQA0nE.js";import{R as o}from"./p-BAIGB30g.js";import{a as n,G as s}from"./p-Dgw5dv37.js";const c=':host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff;width:inherit}.nylas-form-card{width:100%;border-radius:8px;border:1px solid var(--nylas-base-200)}.nylas-form-card__header{padding:1rem;border-bottom:1px solid var(--nylas-base-200)}';var f=undefined&&undefined.__decorate||function(e,a,l,r){var o=arguments.length,n=o<3?a:r===null?r=Object.getOwnPropertyDescriptor(a,l):r,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,a,l,r);else for(var c=e.length-1;c>=0;c--)if(s=e[c])n=(o<3?s(n):o>3?s(a,l,n):s(a,l))||n;return o>3&&n&&Object.defineProperty(a,l,n),n};var y=undefined&&undefined.__metadata||function(e,a){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,a)};const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as a,H as l,a as r}from"./p-0EQQA0nE.js";import{R as o}from"./p-BAIGB30g.js";import{a as n,G as s}from"./p-Dgw5dv37.js";const c=':host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff;width:inherit}.nylas-form-card{width:100%;border-radius:8px;border:1px solid var(--nylas-base-200)}.nylas-form-card__header{padding:1rem;border-bottom:1px solid var(--nylas-base-200)}';var f=undefined&&undefined.__decorate||function(e,a,l,r){var o=arguments.length,n=o<3?a:r===null?r=Object.getOwnPropertyDescriptor(a,l):r,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,a,l,r);else for(var c=e.length-1;c>=0;c--)if(s=e[c])n=(o<3?s(n):o>3?s(a,l,n):s(a,l))||n;return o>3&&n&&Object.defineProperty(a,l,n),n};var y=undefined&&undefined.__metadata||function(e,a){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,a)};const d=class{constructor(a){e(this,a);if(a.$hostElement$["s-ei"]){this.internals=a.$hostElement$["s-ei"]}else{this.internals=a.$hostElement$.attachInternals();a.$hostElement$["s-ei"]=this.internals}}themeConfigChangedHandler(e,a){if(e===a)return;this.applyThemeConfig(e)}connectedCallback(){n("nylas-event-card","connectedCallback");queueMicrotask((()=>{if(this.themeConfig){this.applyThemeConfig(this.themeConfig);this.host.setAttribute("data-themed","")}}))}componentWillLoad(){n("nylas-event-card","componentWillLoad")}componentDidLoad(){n("nylas-event-card","componentDidLoad")}disconnectedCallback(){n("nylas-event-card","disconnectedCallback");const e=["header-title","header-subtitle","content"];s(e,this.host)}applyThemeConfig(e){if(e){for(const[a,l]of Object.entries(e)){this.host.style.setProperty(`${a}`,l)}}}render(){return a(l,{key:"85ad069c0d6767fed87df412a7c1cbface8bb590"},a("div",{key:"ccb5bc8291d1660d42093eecc185e2fc36354496",class:"nylas-form-card",part:"nfc"},a("div",{key:"486bdc610281cb03ebc5c3d88738354c7267b728",class:"nylas-form-card__header",part:"nfc__header"},a("slot",{key:"f39fbcbf42dc3d01bc3e3f7c9d9de063ab98601a",name:"header-title"}),a("slot",{key:"114b0ba84123719ab9cd1f355f1a87c1ce5bbb09",name:"header-subtitle"})),a("div",{key:"5bcf1c60ddd6e68acc012116b08250b57ac7b8b3",class:"nylas-form-card__content"},a("slot",{key:"5bd7f27f7590dc5c8a2bc12780b7b2768d1b2127",name:"content"}))))}static get formAssociated(){return true}get host(){return r(this)}static get watchers(){return{themeConfig:["themeConfigChangedHandler"]}}};f([o({name:"nylas-form-card",stateToProps:new Map([["schedulerConfig.themeConfig","themeConfig"]]),eventToProps:{},fireRegisterEvent:true}),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],d.prototype,"render",null);d.style=c;export{d as nylas_form_card};
|
|
2
|
+
//# sourceMappingURL=p-a3b1ac68.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as c,h as e}from"./p-0EQQA0nE.js";const a=".sc-checkmark-circle-icon-h{display:flex}";const r=class{constructor(e){c(this,e);this.width="20";this.height="20"}render(){return e("svg",{key:"83dafed562cb19a4b92e19df4b1315c1eeb51da6",xmlns:"http://www.w3.org/2000/svg",width:this.width,height:this.height,fill:"none",viewBox:"0 0 20 20"},e("path",{key:"bf0e55ae4ebb1f1dc0cec59d0496af2d6860dbc0",fill:"currentColor",d:"M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm3.358 4.646a.5.5 0 0 1 .058.638l-.058.07-4.004 4.004a.5.5 0 0 1-.638.058l-.07-.058-2-2a.5.5 0 0 1 .638-.765l.07.058L9 11.298l3.651-3.652a.5.5 0 0 1 .707 0Z"}))}};r.style=a;export{r as checkmark_circle_icon};
|
|
2
|
+
//# sourceMappingURL=p-a3baa9bf.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,h as e}from"./p-0EQQA0nE.js";const s=".sc-trash-fill-icon-h{display:flex}";const a=class{constructor(e){t(this,e);this.width="15";this.height="15"}render(){return e("svg",{key:"f4b6bf0a4e86ceb196065f771242ac6e4487fc1a",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"dc1472db1426fca03c7709b167f4405f95e6f1f5",d:"M3 6H5H21",stroke:"auto","stroke-width":"1.5"}),e("path",{key:"09f4731c1874955f7172f8423abea95632d89cd6",d:"M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z",stroke:"auto","stroke-width":"1.5"}),e("path",{key:"9a5326048ec96555dbbc4be234c773fa3fd663da",d:"M10 11V17",stroke:"auto","stroke-width":"1.5"}),e("path",{key:"fc50cf30fbef0f4ba33e16d6d9a5dd8bdec769d1",d:"M14 11V17",stroke:"auto","stroke-width":"1.5"}))}};a.style=s;export{a as trash_fill_icon};
|
|
2
|
+
//# sourceMappingURL=p-a94cbeb7.entry.js.map
|