@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
|
@@ -309,11 +309,11 @@ export class NylasSpecificTimeAvailabilityPicker {
|
|
|
309
309
|
value: key,
|
|
310
310
|
}));
|
|
311
311
|
const selectedTimezoneOption = timezoneOptions.find(i => i.value === this.timezone);
|
|
312
|
-
return (h(Host, { key: '
|
|
312
|
+
return (h(Host, { key: 'eebdadc4785b92c186738ac7b9cb2dde9fbce996' }, h("div", { key: 'a620af13300146972ef0e2ccd3d393bd0f34625e', class: "nylas-specific-time-availability-picker", part: "nstap" }, !this.hideHeader && (h("div", { key: '6b7c3c7a73e202ef6fb288e880a9eacba3759778', class: "header", part: "nstap__header" }, h("h3", { key: '01e13ae3a10ab877dc039afcdd69f48e1023d752' }, i18next.t('nylasSpecificTimeAvailabilityPicker.headerTitle')), h("p", { key: '38fbec12451c9bd136a2e21b09ca9d439d9afb9d' }, i18next.t('nylasSpecificTimeAvailabilityPicker.headerDescription'), h("tooltip-component", { key: '502f37259467a4cd486637e2ca1f9112768a7757' }, h("info-icon", { key: 'ebe5b465510530a9e7a054d284d0a327d869e626', slot: "tooltip-icon" }), h("span", { key: '95d0e593802256fb05a7500b0b77faa8b0c2a1be', slot: "tooltip-content" }, i18next.t('nylasSpecificTimeAvailabilityPicker.tooltip.desc')))))), h("div", { key: '89b15e038648d7dc07fb395cba589dd20db92ad3', class: "content", part: "nstap__content" }, h("section", { key: 'aba6b14123776917164a523f01c94e6c593e1927', class: "timezone-selector", part: "nstap__timezone-selector", "aria-labelledby": "timezone-header" }, h("h4", { key: '02f309870da12e5fc010be80a9048ac0bb173a19', id: "timezone-header", class: "sub-header" }, i18next.t('nylasSpecificTimeAvailabilityPicker.selectTimezone')), h("p", { key: '1c4e5e41f0981067e881f61c2b53e83cc1fe65d8', class: "timezone-description" }, i18next.t('nylasSpecificTimeAvailabilityPicker.timezoneDescription')), selectedTimezoneOption?.label && (h("select-dropdown", { key: '3ed2f26ce1fffb9e7eeed1facb40b72161c325d4', name: "specific-time-timezone", searchPlaceholder: i18next.t('search'), exportparts: "sd_dropdown: nstap__timezone-container, sd_dropdown-button: nstap__timezone-button, sd_dropdown-content: nstap__timezone-dropdown-content", options: timezoneOptions, defaultSelectedOption: selectedTimezoneOption, themeConfig: this.themeConfig, "aria-label": i18next.t('nylasSpecificTimeAvailabilityPicker.selectTimezone') }, h("span", { key: 'b4105b6d343c0e8c8bbd26f33e35b34a36e00821', slot: "select-icon", "aria-hidden": "true" }, h("globe-icon", { key: 'e72ffc953f138b7b8c81fa9601d12f82cd878a38', width: "20", height: "20" })))), this.validationErrors['timezone'] && (h("div", { key: '87c4c33e678fa738c845ed6fef29ddd617b2c424', class: "error-message timezone-error", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors['timezone']))), h("section", { key: 'b05db49af28232963b451e24a2ea364848e87b3e', class: "specific-times-section", part: "nstap__specific-times-section", "aria-labelledby": "specific-times-header" }, h("h4", { key: 'f0b566bd768e9bc0751a160e07b5da422bac336f', id: "specific-times-header", class: "section-header" }, i18next.t('nylasSpecificTimeAvailabilityPicker.specificTimesHeader')), h("p", { key: 'aff99e63618a61037ba64cedfe4facc354991ef2', class: "section-description" }, i18next.t('nylasSpecificTimeAvailabilityPicker.specificTimesDescription')), h("div", { key: '28c04af5aa3e9b481ba111865bc8869d7b2038c0', class: "specific-times", part: "nstap__specific-times", role: "list" }, this.specificDateEntries.length === 0 ? (h("div", { class: "empty-state", part: "nstap__empty-state" }, h("div", { class: "empty-icon", part: "nstap__empty-icon" }, h("calendar-icon", { width: "32", height: "32" })), h("h3", { class: "empty-title", part: "nstap__empty-title" }, i18next.t('nylasSpecificTimeAvailabilityPicker.emptyState.title')), h("p", { class: "empty-subtitle", part: "nstap__empty-subtitle" }, i18next.t('nylasSpecificTimeAvailabilityPicker.emptyState.subtitle')))) : (this.specificDateEntries.map((entry, index) => (h("article", { class: "specific-time-entry", part: "nstap__specific-time-entry", key: entry.id, "data-entry-id": entry.id, role: "listitem", "aria-label": `Specific time availability entry ${index + 1}` }, h("div", { class: "entry-content", part: "nstap__entry-content" }, h("div", { class: "date-input-container", part: "nstap__date-input-container" }, h("nylas-date-component", { name: `date-${entry.id}`, defaultValue: entry.date, placeholder: "yyyy-mm-dd", part: "nstap__date-input", class: "date-input", themeConfig: this.themeConfig, exportparts: "ic__date: nstap__date-field, ic__input_wrapper: nstap__date-wrapper, ic__label: nstap__date-label", "aria-label": `Date for entry ${index + 1}` })), entry.isUnavailable ? (h("div", { class: "unavailable-text", part: "nstap__unavailable-text", role: "status" }, h("span", { class: "unavailable-label" }, i18next.t('nylasSpecificTimeAvailabilityPicker.entireDayUnavailable')))) : (h("div", { class: "time-pickers", part: "nstap__time-pickers", role: "group", "aria-label": "Time range" }, h("nylas-time-window-picker", { id: `${entry.id}_start`, time: entry.startTime, name: `${entry.id}_start`, key: `${entry.id}_start`, language: this.selectedLanguage, hasError: !!this.validationErrors[entry.id], themeConfig: this.themeConfig, exportparts: "time-picker: nstap__time-picker-container, time-input: nstap__time-picker-input, times: nstap__time-picker-times", "aria-label": `Start time for entry ${index + 1}` }), h("span", { class: "time-separator", "aria-hidden": "true" }, "-"), h("nylas-time-window-picker", { id: `${entry.id}_end`, time: entry.endTime, name: `${entry.id}_end`, key: `${entry.id}_end`, minimumStartTime: entry.startTime, language: this.selectedLanguage, hasError: !!this.validationErrors[entry.id], themeConfig: this.themeConfig, exportparts: "time-picker: nstap__time-picker-container, time-input: nstap__time-picker-input, times: nstap__time-picker-times", "aria-label": `End time for entry ${index + 1}` }))), h("div", { class: "action-buttons", part: "nstap__action-buttons" }, h("button", { type: "button", class: { 'toggle-button': true, 'unavailable': entry.isUnavailable }, part: "nstap__toggle-button", onClick: () => this.toggleAvailability(entry.id), "aria-label": entry.isUnavailable
|
|
313
313
|
? i18next.t('nylasSpecificTimeAvailabilityPicker.markAsAvailable')
|
|
314
314
|
: i18next.t('nylasSpecificTimeAvailabilityPicker.markAsUnavailable'), title: entry.isUnavailable
|
|
315
315
|
? i18next.t('nylasSpecificTimeAvailabilityPicker.markAsAvailable')
|
|
316
|
-
: i18next.t('nylasSpecificTimeAvailabilityPicker.markAsUnavailable') }, h("calendar-icon", { width: "20", height: "20", "aria-hidden": "true" })), h("button", { type: "button", class: "remove-button", part: "nstap__remove-button", onClick: () => this.removeSpecificTimeAvailability(entry.id), "aria-label": `Remove specific time entry ${index + 1}`, title: "Remove" }, h("close-icon", { width: "16", height: "16", "aria-hidden": "true" })))), this.validationErrors[entry.id] && (h("div", { class: "error-message", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors[entry.id]))))))), h("div", { key: '
|
|
316
|
+
: i18next.t('nylasSpecificTimeAvailabilityPicker.markAsUnavailable') }, h("calendar-icon", { width: "20", height: "20", "aria-hidden": "true" })), h("button", { type: "button", class: "remove-button", part: "nstap__remove-button", onClick: () => this.removeSpecificTimeAvailability(entry.id), "aria-label": `Remove specific time entry ${index + 1}`, title: "Remove" }, h("close-icon", { width: "16", height: "16", "aria-hidden": "true" })))), this.validationErrors[entry.id] && (h("div", { class: "error-message", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors[entry.id]))))))), h("div", { key: '6c055484d6da9537f29a92f75aafb94b3f53b2bc', class: "add-button-container", part: "nstap__add-button-container" }, h("button-component", { key: '95cd31c30c35c15c06787a12dc749bca5e8702ec', id: "add-specific-time-open-hour", onClick: () => this.addSpecificTimeAvailability(), part: "nstap__add-button", variant: "basic", "aria-label": i18next.t('nylasSpecificTimeAvailabilityPicker.addSpecificTimeAvailability') }, h("add-circle-icon", { key: '7922cee5395f9768aaab93a0bf3ff437ce870b48', width: "24", height: "24", "aria-hidden": "true" }), i18next.t('nylasSpecificTimeAvailabilityPicker.addSpecificTimeAvailability'))))))));
|
|
317
317
|
}
|
|
318
318
|
static get is() { return "nylas-specific-time-availability-picker"; }
|
|
319
319
|
static get encapsulation() { return "shadow"; }
|
|
@@ -298,19 +298,19 @@ export class TimeInput {
|
|
|
298
298
|
}
|
|
299
299
|
render() {
|
|
300
300
|
const is24HourFormat = this.language === LANGUAGE_CODE.en ? false : true;
|
|
301
|
-
return (h(Host, { key: '
|
|
301
|
+
return (h(Host, { key: 'b5c0c24d84d44312d2223be037872dc9d03db3f8' }, h("div", { key: '3c77e7501bb38ebe22f1a27d53577b05e2f1fb22', class: "time-picker", part: "time-picker" }, h("input", { key: '8e636c248c38900aa4ad9c2bd8cc89c0a9c84424', type: "text", name: this.name, id: this.name, part: "time-input", class: {
|
|
302
302
|
'time-input': true,
|
|
303
303
|
'error': !!this.err || this.hasError,
|
|
304
304
|
}, ref: el => (this.timeInput = el), value: is24HourFormat ? convertTo24HourFormat(this.time) : this.time, onClick: () => {
|
|
305
305
|
this.showTimes = !this.showTimes;
|
|
306
306
|
this.shouldAutoScroll = true;
|
|
307
|
-
}, "aria-haspopup": "listbox", "aria-label": this.name, "aria-expanded": this.showTimes ? 'true' : 'false', placeholder: this.placeholder, onKeyDown: e => this.handleComboboxKeyDown(e), onInput: event => this.handleOnInput(event), onBlur: event => this.handleTimeAutocomplete(event) }), this.err && h("div", { key: '
|
|
307
|
+
}, "aria-haspopup": "listbox", "aria-label": this.name, "aria-expanded": this.showTimes ? 'true' : 'false', placeholder: this.placeholder, onKeyDown: e => this.handleComboboxKeyDown(e), onInput: event => this.handleOnInput(event), onBlur: event => this.handleTimeAutocomplete(event) }), this.err && h("div", { key: '3e6b9ae63890b47148426919552172e39db0eaf4', class: "invalid-time-icon" }), this.showTimes && (h("div", { key: '8b32c32b03cca0b27e70435887a3c8150cf5c8b7', class: "times", part: "times", ref: el => (this.timeMenu = el) }, h("ul", { key: 'f7a5d65fcb9b675f76448bcf4cf1540eb822f225', tabindex: "-1", role: "listbox", "aria-label": this.name, "aria-activedescendant": this.ariaActivedescendant, onKeyDown: e => this.handleListboxKeydown(e) }, this.times.map(option => (h("li", { tabindex: "0", key: option.id, id: option.id.toString(), class: {
|
|
308
308
|
focused: this.ariaActivedescendant === option.id.toString(),
|
|
309
309
|
}, onClick: e => {
|
|
310
310
|
this.handleTimeChange(e, option.value);
|
|
311
311
|
this.showTimes = false;
|
|
312
312
|
this.timeInput.focus();
|
|
313
|
-
}, role: "option" }, `${is24HourFormat ? convertTo24HourFormat(option.value) : option.value}`)))))), !this.showTimes && this.err && (h("p", { key: '
|
|
313
|
+
}, role: "option" }, `${is24HourFormat ? convertTo24HourFormat(option.value) : option.value}`)))))), !this.showTimes && this.err && (h("p", { key: 'c194ce42271aa6b72a547b7c0f387fcc6c95daae', class: "error", id: "email-error" }, this.err)))));
|
|
314
314
|
}
|
|
315
315
|
static get is() { return "nylas-time-window-picker"; }
|
|
316
316
|
static get encapsulation() { return "shadow"; }
|
|
@@ -149,7 +149,7 @@ export class NylasTimeslotInterval {
|
|
|
149
149
|
? intervalPreferenceOptions[0]
|
|
150
150
|
: intervalPreferenceOptions.find(op => op.value == this.selectedInterval.toString()) ?? intervalPreferenceOptions[0]
|
|
151
151
|
: undefined;
|
|
152
|
-
return (h(Host, { key: '
|
|
152
|
+
return (h(Host, { key: '353d924827407707d5ccea61c6c4f4050268d309' }, h("div", { key: '2fc0cb49991ad3b65fc48ca526238dc3d3e2d606', class: "nylas-timeslot-interval", part: "nti" }, h("div", { key: 'e6f17ca9ba26b6b95f9ab24835b2f94df650d62d', class: "header", part: "nti__header" }, h("h3", { key: 'aad4823f70f0a3802766e37da932b0a9e3e243a6' }, i18next.t('nylasTimeslotInterval.headerTitle'))), h("div", { key: 'e8c0d3922ed7052e10bc9f8e5e3443a7aca7d2e8', class: "nylas-timeslot-interval__dropdown" }, h("span", { key: 'bef443cb3276df665a32989c958f6e368a9ce4fd', class: "label", part: "nti__input-label" }, i18next.t('nylasTimeslotInterval.timeslotInterval.label')), defaultSelectedInterval?.label && (h("select-dropdown", { key: '37dcb301d27ecd97165cf224fc4e5c45eb0319be', name: "interval-minutes", options: intervalPreferenceOptions, withSearch: false, exportparts: "sd_dropdown: nti__dropdown, sd_dropdown-button: nti__dropdown-button, sd_dropdown-content: nti__dropdown-content", defaultSelectedOption: defaultSelectedInterval, themeConfig: this.themeConfig })), h("span", { key: '05b55aed61091f451f401787b69fd229b417dcad', slot: "label", class: "label", part: "nti__input-label" }, i18next.t('nylasTimeslotInterval.timeslotRounding.label'), h("tooltip-component", { key: '2c629a8e3a5e55e47e80126796d17e1651321743' }, h("info-icon", { key: 'ca66f99b1259a91eb2a96a4d15b916429cdbef4f', slot: "tooltip-icon" }), h("span", { key: 'd2a101116b234baa496cfe08a5cee695f93a6e8b', slot: "tooltip-content" }, i18next.t('nylasTimeslotInterval.timeslotRounding.tooltip.desc')))), this.componentLoaded && (h("radio-button-group", { key: '4de97345802d342936fb7fe7bfdf71fecebfbb6a', name: "interval-preference", defaultSelectedValue: this.selectedRoundTo ? 'rounding' : 'no-rounding', options: [
|
|
153
153
|
{
|
|
154
154
|
value: 'no-rounding',
|
|
155
155
|
label: i18next.t('nylasTimeslotInterval.timeslotRoundingOptions.noRounding.label'),
|
|
@@ -59,6 +59,9 @@ export class NylaSchedulerAPIConnector {
|
|
|
59
59
|
setConfigId(configId) {
|
|
60
60
|
this.configId = configId;
|
|
61
61
|
}
|
|
62
|
+
setSessionId(sessionId) {
|
|
63
|
+
this.sessionId = sessionId;
|
|
64
|
+
}
|
|
62
65
|
selectDate(date) {
|
|
63
66
|
this.schedulerStore.set('selectedDate', date);
|
|
64
67
|
this.schedulerStore.set('selectedTimeslot', null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../../src/connector/shared/api/scheduler.ts"],"names":[],"mappings":"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","sourcesContent":["import { AvailabilityResponse, NylasSchedulerBookingData, NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { 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 /**\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"]}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../../src/connector/shared/api/scheduler.ts"],"names":[],"mappings":"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","sourcesContent":["import { AvailabilityResponse, NylasSchedulerBookingData, NylasSchedulerBookingDataWithFlatFields, NylasEvent, UISettingsResponse } from '@/common/types';\nimport { 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"]}
|
|
@@ -37,7 +37,7 @@ export function CreateNylasSchedulerConfigStore(defaultState = {}) {
|
|
|
37
37
|
const fetched = await participantFetch({ emails, grantId });
|
|
38
38
|
if (!fetched?.length)
|
|
39
39
|
return;
|
|
40
|
-
const existing = store.state.additionalParticipants;
|
|
40
|
+
const existing = store.state.additionalParticipants || [];
|
|
41
41
|
const existingEmails = new Set(existing.map(p => p.email));
|
|
42
42
|
const newParticipants = fetched.filter(p => !existingEmails.has(p.email));
|
|
43
43
|
if (newParticipants.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler-config-store.js","sourceRoot":"","sources":["../../../src/stores/scheduler-config-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAiB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA+H5D,MAAM,UAAU,+BAA+B,CAAC,eAAwD,EAAE;IACxG,MAAM,2BAA2B,GAAmC;QAClE,qBAAqB,EAAE,EAAE;QACzB,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,EAAE;QACf,4BAA4B,EAAE,IAAI;QAClC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,sBAAsB,EAAE,EAAE;QAC1B,YAAY,EAAE,KAAK;QACnB,iBAAiB,EAAE,EAAE;QACrB,SAAS,EAAE,KAAK;QAChB,GAAG,YAAY;KAChB,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAiC,2BAA2B,CAAC,CAAC;IAMvF,SAAS,0BAA0B;QACjC,KAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0BAA0B,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,QAAQ,CAAC,uBAAuB,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACtD,MAAM,YAAY,GAAI,MAA0C,EAAE,YAAY,CAAC;QAC/E,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY,EAAE,MAAM;YAAE,OAAO;QAEvD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkD,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1I,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEhC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,EAAE,MAAM;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler-config-store.js","sourceRoot":"","sources":["../../../src/stores/scheduler-config-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAiB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA+H5D,MAAM,UAAU,+BAA+B,CAAC,eAAwD,EAAE;IACxG,MAAM,2BAA2B,GAAmC;QAClE,qBAAqB,EAAE,EAAE;QACzB,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,EAAE;QACf,4BAA4B,EAAE,IAAI;QAClC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,sBAAsB,EAAE,EAAE;QAC1B,YAAY,EAAE,KAAK;QACnB,iBAAiB,EAAE,EAAE;QACrB,SAAS,EAAE,KAAK;QAChB,GAAG,YAAY;KAChB,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAiC,2BAA2B,CAAC,CAAC;IAMvF,SAAS,0BAA0B;QACjC,KAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0BAA0B,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,QAAQ,CAAC,uBAAuB,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACtD,MAAM,YAAY,GAAI,MAA0C,EAAE,YAAY,CAAC;QAC/E,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY,EAAE,MAAM;YAAE,OAAO;QAEvD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkD,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1I,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEhC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,EAAE,MAAM;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC;YAC1D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,KAAK;QACR,0BAA0B;KAC3B,CAAC;AACJ,CAAC","sourcesContent":["import { AdditionalParticipant, Calendar, Configuration, EventDetails, GroupConfiguration, GroupEventAPIData, EnableEventTypes, ThemeConfig } from '@nylas/core';\nimport type { ParticipantFetch, ParticipantSearch } from '@/types';\nimport { debug } from '@/utils/utils';\nimport { ObservableMap, createStore } from '@stencil/store';\nimport { User } from '../common/nylas-api-request';\nimport { CONFIGURATION_EVENT_TYPE, EXPERIMENTAL_FEATURES } from '@/common/constants';\n\ntype RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];\n};\n\nexport interface NylasSchedulerConfigStoreState {\n /**\n * The selected configuration.\n * This is the configuration that is currently selected, use it to populate default values for new configurations.\n */\n selectedConfiguration: RecursivePartial<Configuration> | RecursivePartial<GroupConfiguration>;\n /**\n * The list of configurations.\n * This is the list of configurations that the user has created.\n */\n configurations: Configuration[];\n /**\n * The list of calendars.\n * This is the list of calendars that the user has access to.\n */\n calendars: Calendar[];\n /**\n * The current user.\n * This is the user that is currently logged in.\n */\n currentUser: User | null;\n /**\n * The current action.\n * This is the current action that the user is performing.\n */\n action: 'create' | 'create-select' | 'edit' | null;\n /**\n * The additional participants.\n */\n additionalParticipants: AdditionalParticipant[];\n /**\n * Callback to fetch full participant info by emails when loading a config for edit.\n * Receives emails and optional grantId for scoping.\n */\n participantFetch?: ParticipantFetch;\n /**\n * Grant ID to pass to participantFetch when available (e.g. from multi-account).\n */\n participantFetchGrantId?: string;\n /**\n * Callback to search participants by query for autocomplete.\n */\n participantSearch?: ParticipantSearch;\n /**\n * The next cursor for list configurations.\n */\n listConfigurationsNextCursor: string | null;\n /**\n * The conference providers.\n */\n conferenceProviders?: Record<'microsoft' | 'zoom' | 'google', string>;\n /**\n * The flag to determine if the slug is required\n */\n requiresSlug: boolean;\n /**\n * The selected language.\n */\n selectedLanguage?: string;\n /**\n * The flag to show or hide the option to manage nylas branding in the email template.\n */\n nylasBranding?: boolean;\n /**\n * The experimental features.\n */\n experimentalFeatures?: Record<EXPERIMENTAL_FEATURES, boolean>;\n /**\n * Controls which event types are enabled in the Scheduler.\n *\n * - By default, all event types are enabled and users will see a selection screen when creating a new event.\n * - You can disable specific event types by setting them to `false`.\n * - At least one event type must remain enabled at all times.\n * - If only one event type is enabled, the event type selection screen will be skipped.\n */\n enableEventTypes?: EnableEventTypes;\n /**\n * The selected event type for creating a new configuration.\n */\n selectedEventType?: CONFIGURATION_EVENT_TYPE;\n /**\n * The group events of the selected configuration.\n */\n groupEvents: GroupEventAPIData[];\n /**\n * The selected group event being edited.\n */\n selectedGroupEvent?: GroupEventAPIData;\n /**\n * The url params with the date and time range for the current view in the scheduler editor calendar.\n */\n calendarViewDateRange?: {\n start_time: string;\n end_time: string;\n };\n /**\n * The list of master group events.\n */\n masterGroupEvents: Record<string, EventDetails>;\n /**\n * The flag to determine if the form is loading.\n */\n isLoading: boolean;\n /**\n * The theme config.\n */\n themeConfig?: ThemeConfig;\n}\n\nexport type NylasSchedulerConfigStoreType = ReturnType<typeof CreateNylasSchedulerConfigStore>;\n\nexport type CreateNylasSchedulerConfigStoreReturnType = ObservableMap<NylasSchedulerConfigStoreState> & {\n /**\n * Reset the selected configuration to the default state.\n * This is used to reset the selected configuration to the default state instead of setting it to an empty object.\n */\n resetSelectedConfiguration: () => void;\n};\n\nexport function CreateNylasSchedulerConfigStore(defaultState: Partial<NylasSchedulerConfigStoreState> = {}): CreateNylasSchedulerConfigStoreReturnType {\n const defaultSchedulerConfigState: NylasSchedulerConfigStoreState = {\n selectedConfiguration: {},\n configurations: [],\n groupEvents: [],\n listConfigurationsNextCursor: null,\n calendars: [],\n currentUser: null,\n action: null,\n additionalParticipants: [],\n requiresSlug: false,\n masterGroupEvents: {},\n isLoading: false,\n ...defaultState,\n };\n const store = createStore<NylasSchedulerConfigStoreState>(defaultSchedulerConfigState);\n\n /**\n * Reset the selected configuration to the default state.\n * This is used to reset the selected configuration to the default state instead of setting it to an empty object.\n */\n function resetSelectedConfiguration() {\n store.set('selectedConfiguration', { ...defaultState['selectedConfiguration'] });\n }\n\n store.onChange('action', async action => {\n if (!action) {\n resetSelectedConfiguration();\n }\n });\n\n store.onChange('selectedConfiguration', async config => {\n const participantFetch = store.state.participantFetch;\n const participants = (config as RecursivePartial<Configuration>)?.participants;\n if (!participantFetch || !participants?.length) return;\n\n const emails = participants.filter((p): p is { email: string; is_organizer?: boolean } => !p.is_organizer && !!p.email).map(p => p.email);\n\n if (emails.length === 0) return;\n\n try {\n const grantId = store.state.participantFetchGrantId;\n const fetched = await participantFetch({ emails, grantId });\n if (!fetched?.length) return;\n\n const existing = store.state.additionalParticipants || [];\n const existingEmails = new Set(existing.map(p => p.email));\n const newParticipants = fetched.filter(p => !existingEmails.has(p.email));\n if (newParticipants.length > 0) {\n store.set('additionalParticipants', [...existing, ...newParticipants]);\n }\n } catch (err) {\n debug('[scheduler-config-store] participantFetch failed', err);\n }\n });\n\n return {\n ...store,\n resetSelectedConfiguration,\n };\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.5.0-canary-20260306042320';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,6BAA6B,CAAC","sourcesContent":["export const version = '2.5.0-canary-20260306042320';\n"]}
|
|
@@ -10,7 +10,7 @@ const ArchiveIcon$1 = proxyCustomElement(class ArchiveIcon extends H {
|
|
|
10
10
|
this.height = '15';
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return (h("svg", { key: '
|
|
13
|
+
return (h("svg", { key: '9b72eb88095606ed4c1a6c480500b9b4bf772052', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "auto", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'e6158cd1a2d187e4f550058da69a45516d51aad8', d: "M3 6H5H21", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: 'ef3cb6475c7b0644167a899a2b191fff7abfbdbd', d: "M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: '3cbdf1d2e45f266108c785caa66e5c17b517835b', d: "M10 11V17", stroke: "auto", "stroke-width": "1.5" }), h("path", { key: '39e13a2f03d63febf6e7c3e2bfc15d2907d73398', d: "M14 11V17", stroke: "auto", "stroke-width": "1.5" })));
|
|
14
14
|
}
|
|
15
15
|
static get style() { return iconCss; }
|
|
16
16
|
}, [258, "archive-icon", {
|
|
@@ -10,7 +10,7 @@ const ArrowIcon$1 = proxyCustomElement(class ArrowIcon extends H {
|
|
|
10
10
|
this.height = '15';
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return (h("svg", { key: '
|
|
13
|
+
return (h("svg", { key: '376301779830aaa2b422ea2e98144d16da633f35', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '1be1d349819cc2f70c0097262be84ce6b4b1639e', d: "M5 12H19M12 5L19 12L12 19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
|
|
14
14
|
}
|
|
15
15
|
static get style() { return iconCss; }
|
|
16
16
|
}, [258, "arrow-icon", {
|
|
@@ -10,7 +10,7 @@ const BoldIcon$1 = proxyCustomElement(class BoldIcon extends H {
|
|
|
10
10
|
this.height = '15';
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return (h("svg", { key: '
|
|
13
|
+
return (h("svg", { key: '9f35550f56b32150cba1390076404e973a05c970', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '1f6cbeb7126d0b226f9d6455a14b82262c09a8a5', d: "M6 4V20M9.5 4H15.5C17.7091 4 19.5 5.79086 19.5 8C19.5 10.2091 17.7091 12 15.5 12H9.5H16.5C18.7091 12 20.5 13.7909 20.5 16C20.5 18.2091 18.7091 20 16.5 20H9.5M9.5 4V20M9.5 4H4M9.5 20H4", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
|
|
14
14
|
}
|
|
15
15
|
static get style() { return iconCss; }
|
|
16
16
|
}, [258, "bold-icon", {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as ButtonComponent$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { B as ButtonComponent$1, d as defineCustomElement$1 } from './p-BVH0Klhu.js';
|
|
2
2
|
|
|
3
3
|
const ButtonComponent = ButtonComponent$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CalendarAgendaFillIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CalendarAgendaFillIcon$1, d as defineCustomElement$1 } from './p-hipsVOV5.js';
|
|
2
2
|
|
|
3
3
|
const CalendarAgendaFillIcon = CalendarAgendaFillIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CalendarAgendaIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CalendarAgendaIcon$1, d as defineCustomElement$1 } from './p-CBBEkysd.js';
|
|
2
2
|
|
|
3
3
|
const CalendarAgendaIcon = CalendarAgendaIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CalendarCancelIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CalendarCancelIcon$1, d as defineCustomElement$1 } from './p-DcjGlnBR.js';
|
|
2
2
|
|
|
3
3
|
const CalendarCancelIcon = CalendarCancelIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CalendarCheckIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CalendarCheckIcon$1, d as defineCustomElement$1 } from './p-C4BZ4XFc.js';
|
|
2
2
|
|
|
3
3
|
const CalendarCheckIcon = CalendarCheckIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CalendarInfoIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CalendarInfoIcon$1, d as defineCustomElement$1 } from './p-BD4aqMeC.js';
|
|
2
2
|
|
|
3
3
|
const CalendarInfoIcon = CalendarInfoIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CalendarPatternsIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CalendarPatternsIcon$1, d as defineCustomElement$1 } from './p-CDDw-hf8.js';
|
|
2
2
|
|
|
3
3
|
const CalendarPatternsIcon = CalendarPatternsIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CheckboxComponent$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CheckboxComponent$1, d as defineCustomElement$1 } from './p-BkqJQBCp.js';
|
|
2
2
|
|
|
3
3
|
const CheckboxComponent = CheckboxComponent$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CheckmarkCircleIcon$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { C as CheckmarkCircleIcon$1, d as defineCustomElement$1 } from './p-ChXM0wCn.js';
|
|
2
2
|
|
|
3
3
|
const CheckmarkCircleIcon = CheckmarkCircleIcon$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|