@nylas/web-elements 1.1.0-canary.21 → 1.1.0-canary.22
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/cjs/add-circle-icon.cjs.entry.js +1 -1
- 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/archive-icon_7.cjs.entry.js +7 -7
- package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
- package/dist/cjs/bold-icon.cjs.entry.js +1 -1
- package/dist/cjs/bold-icon_3.cjs.entry.js +3 -3
- package/dist/cjs/button-component.cjs.entry.js +1 -1
- package/dist/cjs/calendar-agenda-fill-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-agenda-fill-icon_40.cjs.entry.js +47 -47
- package/dist/cjs/calendar-agenda-icon.cjs.entry.js +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-check-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-info-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-patterns-icon.cjs.entry.js +1 -1
- package/dist/cjs/checkbox-component.cjs.entry.js +1 -1
- package/dist/cjs/checkbox-component_2.cjs.entry.js +2 -2
- package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
- package/dist/cjs/checkmark-icon.cjs.entry.js +1 -1
- package/dist/cjs/chevron-icon.cjs.entry.js +1 -1
- package/dist/cjs/chevron-icon_3.cjs.entry.js +3 -3
- package/dist/cjs/clock-icon.cjs.entry.js +1 -1
- package/dist/cjs/clock-icon_4.cjs.entry.js +4 -4
- package/dist/cjs/close-icon.cjs.entry.js +1 -1
- package/dist/cjs/copy-icon.cjs.entry.js +1 -1
- package/dist/cjs/copy-icon_3.cjs.entry.js +3 -3
- package/dist/cjs/delete-icon.cjs.entry.js +1 -1
- package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
- package/dist/cjs/dragable-icon.cjs.entry.js +1 -1
- package/dist/cjs/edit-icon.cjs.entry.js +1 -1
- package/dist/cjs/envelope-fill-icon.cjs.entry.js +1 -1
- package/dist/cjs/envelope-icon.cjs.entry.js +1 -1
- package/dist/cjs/eye-icon.cjs.entry.js +1 -1
- package/dist/cjs/flow-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/forward-icon_6.cjs.entry.js +7 -7
- package/dist/cjs/globe-icon.cjs.entry.js +1 -1
- package/dist/cjs/google-logo-icon.cjs.entry.js +1 -1
- package/dist/cjs/google-logo-icon_4.cjs.entry.js +6 -6
- package/dist/cjs/google-meet-icon.cjs.entry.js +1 -1
- package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
- package/dist/cjs/info-icon.cjs.entry.js +1 -1
- package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/input-component.cjs.entry.js +1 -1
- package/dist/cjs/input-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/italic-icon.cjs.entry.js +1 -1
- package/dist/cjs/loading-icon.cjs.entry.js +1 -1
- package/dist/cjs/location-icon.cjs.entry.js +1 -1
- package/dist/cjs/location-off-icon.cjs.entry.js +1 -1
- package/dist/cjs/microsoft-logo-icon.cjs.entry.js +1 -1
- package/dist/cjs/microsoft-teams-icon.cjs.entry.js +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/nylas-additional-participants.cjs.entry.js +2 -2
- package/dist/cjs/nylas-availability-picker.cjs.entry.js +1 -1
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +19 -18
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-booking-form-config.cjs.entry.js +1 -1
- package/dist/cjs/nylas-booking-form.cjs.entry.js +13 -12
- package/dist/cjs/nylas-booking-form.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +1 -1
- package/dist/cjs/nylas-cancellation-policy.cjs.entry.js +1 -1
- package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-composer.cjs.entry.js +1 -1
- package/dist/cjs/nylas-confirmation-email.cjs.entry.js +1 -1
- package/dist/cjs/nylas-connected-calendars.cjs.entry.js +1 -1
- package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +1 -1
- package/dist/cjs/nylas-customize-booking-settings.cjs.entry.js +1 -1
- package/dist/cjs/nylas-editor-tabs.cjs.entry.js +4 -4
- package/dist/cjs/nylas-event-description.cjs.entry.js +1 -1
- package/dist/cjs/nylas-event-duration.cjs.entry.js +1 -1
- package/dist/cjs/nylas-event-info.cjs.entry.js +1 -1
- package/dist/cjs/nylas-event-limits.cjs.entry.js +1 -1
- package/dist/cjs/nylas-event-location.cjs.entry.js +6 -6
- package/dist/cjs/nylas-event-title.cjs.entry.js +2 -2
- package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-if-state.cjs.entry.js +1 -1
- package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +1 -1
- package/dist/cjs/nylas-list-folders.cjs.entry.js +1 -1
- package/dist/cjs/nylas-list-threads.cjs.entry.js +1 -1
- package/dist/cjs/nylas-login.cjs.entry.js +1 -1
- package/dist/cjs/nylas-logo.cjs.entry.js +1 -1
- package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +1 -1
- package/dist/cjs/nylas-mailbox.cjs.entry.js +1 -1
- package/dist/cjs/nylas-min-booking-notice.cjs.entry.js +1 -1
- package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +1 -1
- package/dist/cjs/nylas-notification.cjs.entry.js +1 -1
- package/dist/cjs/nylas-participant-booking-calendars.cjs.entry.js +1 -1
- package/dist/cjs/nylas-participants-custom-availability.cjs.entry.js +1 -1
- package/dist/cjs/nylas-provider.cjs.entry.js +1 -1
- package/dist/cjs/nylas-reminder-emails.cjs.entry.js +3 -3
- package/dist/cjs/nylas-reminder-time.cjs.entry.js +1 -1
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +1 -2
- package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-selected-event-card.cjs.entry.js +2 -2
- package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +2 -2
- package/dist/cjs/nylas-threads-refresh.cjs.entry.js +2 -2
- package/dist/cjs/nylas-threads-search.cjs.entry.js +1 -1
- package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
- package/dist/cjs/nylas-timeslot-interval.cjs.entry.js +2 -2
- package/dist/cjs/nylas-view-email.cjs.entry.js +1 -1
- package/dist/cjs/nylas-view-thread.cjs.entry.js +1 -1
- package/dist/cjs/people-icon.cjs.entry.js +1 -1
- package/dist/cjs/person-clipboard-icon.cjs.entry.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/play-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/plus-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/search-icon.cjs.entry.js +1 -1
- package/dist/cjs/select-dropdown.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/time-period-selector.cjs.entry.js +1 -1
- package/dist/cjs/toggle-switch.cjs.entry.js +1 -1
- package/dist/cjs/tooltip-component.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/trash-icon.cjs.entry.js +1 -1
- package/dist/cjs/underline-icon.cjs.entry.js +1 -1
- package/dist/cjs/warning-icon.cjs.entry.js +1 -1
- package/dist/cjs/zoom-icon.cjs.entry.js +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/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/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/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/multi-select-dropdown/multi-select-dropdown.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 +1 -1
- 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 +1 -1
- package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
- package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
- package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
- package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
- package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +1 -1
- package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
- package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
- package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
- package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
- package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
- package/dist/collection/components/nylas-if-state/nylas-if-state.js +1 -1
- package/dist/collection/components/nylas-login/nylas-login.js +1 -1
- package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
- package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +13 -12
- package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-booking-form/test/nylas-booking-form.spec.js +97 -0
- package/dist/collection/components/scheduler/nylas-booking-form/test/nylas-booking-form.spec.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
- package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
- package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +1 -2
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js +0 -12
- package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +1 -1
- 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 +1 -1
- package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +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-editor-tabs/nylas-editor-tabs.js +4 -4
- package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.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 +6 -6
- package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +2 -2
- 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-participant-booking-calendars/nylas-participant-booking-calendars.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +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 +1 -1
- package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +2 -2
- package/dist/components/add-circle.js +1 -1
- package/dist/components/archive.js +1 -1
- package/dist/components/arrow.js +1 -1
- package/dist/components/bold.js +1 -1
- package/dist/components/button-component2.js +1 -1
- package/dist/components/calendar-agenda-fill.js +1 -1
- package/dist/components/calendar-agenda.js +1 -1
- package/dist/components/calendar-cancel.js +1 -1
- package/dist/components/calendar-check.js +1 -1
- package/dist/components/calendar-info.js +1 -1
- package/dist/components/calendar-patterns.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/checkbox-component2.js +1 -1
- package/dist/components/checkmark-circle.js +1 -1
- package/dist/components/checkmark-icon.js +1 -1
- package/dist/components/chevron.js +1 -1
- package/dist/components/clock.js +1 -1
- package/dist/components/close.js +1 -1
- package/dist/components/copy.js +1 -1
- package/dist/components/delete.js +1 -1
- package/dist/components/document-refresh-icon.js +1 -1
- package/dist/components/dragable.js +1 -1
- package/dist/components/edit.js +1 -1
- package/dist/components/envelope-fill.js +1 -1
- package/dist/components/envelope.js +1 -1
- package/dist/components/eye.js +1 -1
- package/dist/components/flow.js +1 -1
- package/dist/components/folder.js +1 -1
- package/dist/components/forward.js +1 -1
- package/dist/components/globe.js +1 -1
- package/dist/components/google-logo.js +1 -1
- package/dist/components/google-meet.js +1 -1
- package/dist/components/inbox.js +1 -1
- package/dist/components/info.js +1 -1
- package/dist/components/input-component2.js +1 -1
- package/dist/components/input-dropdown2.js +1 -1
- package/dist/components/italic.js +1 -1
- package/dist/components/loading.js +1 -1
- package/dist/components/location-off.js +1 -1
- package/dist/components/location.js +1 -1
- package/dist/components/microsof-teams.js +1 -1
- package/dist/components/microsoft-logo.js +1 -1
- package/dist/components/multi-select-dropdown2.js +1 -1
- package/dist/components/nylas-additional-participants2.js +2 -2
- package/dist/components/nylas-availability-picker2.js +1 -1
- package/dist/components/nylas-booking-form-config2.js +1 -1
- package/dist/components/nylas-booking-form2.js +13 -12
- package/dist/components/nylas-booking-form2.js.map +1 -1
- package/dist/components/nylas-cancel-booking-form2.js +1 -1
- package/dist/components/nylas-cancellation-policy2.js +1 -1
- package/dist/components/nylas-cancelled-event-card2.js +1 -1
- package/dist/components/nylas-composer2.js +1 -1
- package/dist/components/nylas-confirmation-email2.js +1 -1
- package/dist/components/nylas-connected-calendars2.js +1 -1
- package/dist/components/nylas-custom-booking-flow.js +1 -1
- package/dist/components/nylas-customize-booking-settings2.js +1 -1
- package/dist/components/nylas-editor-tabs2.js +4 -4
- package/dist/components/nylas-event-description2.js +1 -1
- package/dist/components/nylas-event-duration2.js +1 -1
- package/dist/components/nylas-event-info2.js +1 -1
- package/dist/components/nylas-event-limits2.js +1 -1
- package/dist/components/nylas-event-location2.js +6 -6
- package/dist/components/nylas-event-title2.js +2 -2
- package/dist/components/nylas-form-card2.js +1 -1
- package/dist/components/nylas-if-state.js +1 -1
- package/dist/components/nylas-limit-future-bookings2.js +1 -1
- package/dist/components/nylas-list-folders.js +1 -1
- package/dist/components/nylas-list-threads.js +1 -1
- package/dist/components/nylas-login.js +1 -1
- package/dist/components/nylas-logo2.js +1 -1
- package/dist/components/nylas-mailbox-toolbar-button.js +1 -1
- package/dist/components/nylas-mailbox.js +1 -1
- package/dist/components/nylas-min-booking-notice2.js +1 -1
- package/dist/components/nylas-min-cancellation-notice2.js +1 -1
- package/dist/components/nylas-notification2.js +1 -1
- package/dist/components/nylas-participant-booking-calendars2.js +1 -1
- package/dist/components/nylas-participants-custom-availability2.js +1 -1
- package/dist/components/nylas-provider.js +1 -1
- package/dist/components/nylas-reminder-emails2.js +3 -3
- package/dist/components/nylas-reminder-time2.js +1 -1
- package/dist/components/nylas-scheduler-editor.js +1 -1
- package/dist/components/nylas-scheduling.js +1 -2
- package/dist/components/nylas-scheduling.js.map +1 -1
- package/dist/components/nylas-selected-event-card2.js +2 -2
- package/dist/components/nylas-summarize-message-button2.js +2 -2
- package/dist/components/nylas-threads-refresh.js +2 -2
- package/dist/components/nylas-threads-search.js +1 -1
- package/dist/components/nylas-time-window-picker2.js +1 -1
- package/dist/components/nylas-timeslot-interval2.js +2 -2
- package/dist/components/nylas-view-email2.js +1 -1
- package/dist/components/nylas-view-thread.js +1 -1
- package/dist/components/people.js +1 -1
- package/dist/components/person-clipboard.js +1 -1
- package/dist/components/person.js +1 -1
- package/dist/components/play.js +1 -1
- package/dist/components/plus.js +1 -1
- package/dist/components/radio-button-group2.js +1 -1
- package/dist/components/refresh.js +1 -1
- package/dist/components/reply-all.js +1 -1
- package/dist/components/reply.js +1 -1
- package/dist/components/search.js +1 -1
- package/dist/components/select-dropdown2.js +1 -1
- package/dist/components/sent.js +1 -1
- package/dist/components/spam.js +1 -1
- package/dist/components/star.js +1 -1
- package/dist/components/stop.js +1 -1
- package/dist/components/textarea-component2.js +1 -1
- package/dist/components/time-period-selector2.js +1 -1
- package/dist/components/toggle-switch2.js +1 -1
- package/dist/components/toolitp-component.js +1 -1
- package/dist/components/translate.js +1 -1
- package/dist/components/trash-fill.js +1 -1
- package/dist/components/trash.js +1 -1
- package/dist/components/underline.js +1 -1
- package/dist/components/warning.js +1 -1
- package/dist/components/zoom.js +1 -1
- package/dist/esm/add-circle-icon.entry.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/archive-icon_7.entry.js +7 -7
- package/dist/esm/arrow-icon.entry.js +1 -1
- package/dist/esm/bold-icon.entry.js +1 -1
- package/dist/esm/bold-icon_3.entry.js +3 -3
- package/dist/esm/button-component.entry.js +1 -1
- package/dist/esm/calendar-agenda-fill-icon.entry.js +1 -1
- package/dist/esm/calendar-agenda-fill-icon_40.entry.js +47 -47
- package/dist/esm/calendar-agenda-icon.entry.js +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-check-icon_2.entry.js +2 -2
- package/dist/esm/calendar-icon.entry.js +1 -1
- package/dist/esm/calendar-info-icon.entry.js +1 -1
- package/dist/esm/calendar-patterns-icon.entry.js +1 -1
- package/dist/esm/checkbox-component.entry.js +1 -1
- package/dist/esm/checkbox-component_2.entry.js +2 -2
- package/dist/esm/checkmark-circle-icon.entry.js +1 -1
- package/dist/esm/checkmark-icon.entry.js +1 -1
- package/dist/esm/chevron-icon.entry.js +1 -1
- package/dist/esm/chevron-icon_3.entry.js +3 -3
- package/dist/esm/clock-icon.entry.js +1 -1
- package/dist/esm/clock-icon_4.entry.js +4 -4
- package/dist/esm/close-icon.entry.js +1 -1
- package/dist/esm/copy-icon.entry.js +1 -1
- package/dist/esm/copy-icon_3.entry.js +3 -3
- package/dist/esm/delete-icon.entry.js +1 -1
- package/dist/esm/document-refresh-icon.entry.js +1 -1
- package/dist/esm/dragable-icon.entry.js +1 -1
- package/dist/esm/edit-icon.entry.js +1 -1
- package/dist/esm/envelope-fill-icon.entry.js +1 -1
- package/dist/esm/envelope-icon.entry.js +1 -1
- package/dist/esm/eye-icon.entry.js +1 -1
- package/dist/esm/flow-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/forward-icon_6.entry.js +7 -7
- package/dist/esm/globe-icon.entry.js +1 -1
- package/dist/esm/google-logo-icon.entry.js +1 -1
- package/dist/esm/google-logo-icon_4.entry.js +6 -6
- package/dist/esm/google-meet-icon.entry.js +1 -1
- package/dist/esm/inbox-icon.entry.js +1 -1
- package/dist/esm/info-icon.entry.js +1 -1
- package/dist/esm/info-icon_2.entry.js +2 -2
- package/dist/esm/input-component.entry.js +1 -1
- package/dist/esm/input-dropdown.entry.js +1 -1
- package/dist/esm/italic-icon.entry.js +1 -1
- package/dist/esm/loading-icon.entry.js +1 -1
- package/dist/esm/location-icon.entry.js +1 -1
- package/dist/esm/location-off-icon.entry.js +1 -1
- package/dist/esm/microsoft-logo-icon.entry.js +1 -1
- package/dist/esm/microsoft-teams-icon.entry.js +1 -1
- package/dist/esm/multi-select-dropdown.entry.js +1 -1
- package/dist/esm/nylas-additional-participants.entry.js +2 -2
- package/dist/esm/nylas-availability-picker.entry.js +1 -1
- package/dist/esm/nylas-booked-event-card_10.entry.js +19 -18
- package/dist/esm/nylas-booked-event-card_10.entry.js.map +1 -1
- package/dist/esm/nylas-booking-form-config.entry.js +1 -1
- package/dist/esm/nylas-booking-form.entry.js +13 -12
- package/dist/esm/nylas-booking-form.entry.js.map +1 -1
- package/dist/esm/nylas-cancel-booking-form.entry.js +1 -1
- package/dist/esm/nylas-cancellation-policy.entry.js +1 -1
- package/dist/esm/nylas-cancelled-event-card.entry.js +1 -1
- package/dist/esm/nylas-composer.entry.js +1 -1
- package/dist/esm/nylas-confirmation-email.entry.js +1 -1
- package/dist/esm/nylas-connected-calendars.entry.js +1 -1
- package/dist/esm/nylas-custom-booking-flow.entry.js +1 -1
- package/dist/esm/nylas-customize-booking-settings.entry.js +1 -1
- package/dist/esm/nylas-editor-tabs.entry.js +4 -4
- package/dist/esm/nylas-event-description.entry.js +1 -1
- package/dist/esm/nylas-event-duration.entry.js +1 -1
- package/dist/esm/nylas-event-info.entry.js +1 -1
- package/dist/esm/nylas-event-limits.entry.js +1 -1
- package/dist/esm/nylas-event-location.entry.js +6 -6
- package/dist/esm/nylas-event-title.entry.js +2 -2
- package/dist/esm/nylas-form-card.entry.js +1 -1
- package/dist/esm/nylas-if-state.entry.js +1 -1
- package/dist/esm/nylas-limit-future-bookings.entry.js +1 -1
- package/dist/esm/nylas-list-folders.entry.js +1 -1
- package/dist/esm/nylas-list-threads.entry.js +1 -1
- package/dist/esm/nylas-login.entry.js +1 -1
- package/dist/esm/nylas-logo.entry.js +1 -1
- package/dist/esm/nylas-mailbox-toolbar-button.entry.js +1 -1
- package/dist/esm/nylas-mailbox.entry.js +1 -1
- package/dist/esm/nylas-min-booking-notice.entry.js +1 -1
- package/dist/esm/nylas-min-cancellation-notice.entry.js +1 -1
- package/dist/esm/nylas-notification.entry.js +1 -1
- package/dist/esm/nylas-participant-booking-calendars.entry.js +1 -1
- package/dist/esm/nylas-participants-custom-availability.entry.js +1 -1
- package/dist/esm/nylas-provider.entry.js +1 -1
- package/dist/esm/nylas-reminder-emails.entry.js +3 -3
- package/dist/esm/nylas-reminder-time.entry.js +1 -1
- package/dist/esm/nylas-scheduler-editor.entry.js +1 -1
- package/dist/esm/nylas-scheduling.entry.js +1 -2
- package/dist/esm/nylas-scheduling.entry.js.map +1 -1
- package/dist/esm/nylas-selected-event-card.entry.js +2 -2
- package/dist/esm/nylas-summarize-message-button.entry.js +2 -2
- package/dist/esm/nylas-threads-refresh.entry.js +2 -2
- package/dist/esm/nylas-threads-search.entry.js +1 -1
- package/dist/esm/nylas-time-window-picker.entry.js +1 -1
- package/dist/esm/nylas-timeslot-interval.entry.js +2 -2
- package/dist/esm/nylas-view-email.entry.js +1 -1
- package/dist/esm/nylas-view-thread.entry.js +1 -1
- package/dist/esm/people-icon.entry.js +1 -1
- package/dist/esm/person-clipboard-icon.entry.js +1 -1
- package/dist/esm/person-icon.entry.js +1 -1
- package/dist/esm/play-icon.entry.js +1 -1
- package/dist/esm/play-icon_2.entry.js +2 -2
- package/dist/esm/plus-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/search-icon.entry.js +1 -1
- package/dist/esm/select-dropdown.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/time-period-selector.entry.js +1 -1
- package/dist/esm/toggle-switch.entry.js +1 -1
- package/dist/esm/tooltip-component.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/trash-icon.entry.js +1 -1
- package/dist/esm/underline-icon.entry.js +1 -1
- package/dist/esm/warning-icon.entry.js +1 -1
- package/dist/esm/zoom-icon.entry.js +1 -1
- package/dist/nylas-web-elements/add-circle-icon.entry.js +1 -1
- package/dist/nylas-web-elements/archive-icon.entry.js +1 -1
- package/dist/nylas-web-elements/arrow-icon.entry.js +1 -1
- package/dist/nylas-web-elements/bold-icon.entry.js +1 -1
- package/dist/nylas-web-elements/button-component.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-agenda-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-agenda-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-check-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-info-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +1 -1
- package/dist/nylas-web-elements/checkbox-component.entry.js +1 -1
- package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +1 -1
- package/dist/nylas-web-elements/checkmark-icon.entry.js +1 -1
- package/dist/nylas-web-elements/chevron-icon.entry.js +1 -1
- package/dist/nylas-web-elements/clock-icon.entry.js +1 -1
- package/dist/nylas-web-elements/close-icon.entry.js +1 -1
- package/dist/nylas-web-elements/copy-icon.entry.js +1 -1
- package/dist/nylas-web-elements/delete-icon.entry.js +1 -1
- package/dist/nylas-web-elements/document-refresh-icon.entry.js +1 -1
- package/dist/nylas-web-elements/dragable-icon.entry.js +1 -1
- package/dist/nylas-web-elements/edit-icon.entry.js +1 -1
- package/dist/nylas-web-elements/envelope-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/envelope-icon.entry.js +1 -1
- package/dist/nylas-web-elements/eye-icon.entry.js +1 -1
- package/dist/nylas-web-elements/flow-icon.entry.js +1 -1
- package/dist/nylas-web-elements/folder-icon.entry.js +1 -1
- package/dist/nylas-web-elements/forward-icon.entry.js +1 -1
- package/dist/nylas-web-elements/globe-icon.entry.js +1 -1
- package/dist/nylas-web-elements/google-logo-icon.entry.js +1 -1
- package/dist/nylas-web-elements/google-meet-icon.entry.js +1 -1
- package/dist/nylas-web-elements/inbox-icon.entry.js +1 -1
- package/dist/nylas-web-elements/info-icon.entry.js +1 -1
- package/dist/nylas-web-elements/input-component.entry.js +1 -1
- package/dist/nylas-web-elements/input-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/italic-icon.entry.js +1 -1
- package/dist/nylas-web-elements/loading-icon.entry.js +1 -1
- package/dist/nylas-web-elements/location-icon.entry.js +1 -1
- package/dist/nylas-web-elements/location-off-icon.entry.js +1 -1
- package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +1 -1
- package/dist/nylas-web-elements/microsoft-teams-icon.entry.js +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-additional-participants.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-form-config.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-form.entry.js +13 -12
- package/dist/nylas-web-elements/nylas-booking-form.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancellation-policy.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-composer.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-confirmation-email.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-connected-calendars.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +4 -4
- package/dist/nylas-web-elements/nylas-event-description.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-duration.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-info.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-location.entry.js +6 -6
- package/dist/nylas-web-elements/nylas-event-title.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-form-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-if-state.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-list-folders.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-list-threads.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-login.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-logo.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-mailbox.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-booking-notice.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-notification.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-participant-booking-calendars.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-provider.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-reminder-emails.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-reminder-time.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.js +1 -2
- package/dist/nylas-web-elements/nylas-scheduling.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-threads-search.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-interval.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-view-email.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-view-thread.entry.js +1 -1
- package/dist/nylas-web-elements/p-05e39cc3.entry.js +2 -0
- package/dist/nylas-web-elements/p-05e39cc3.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-267298be.entry.js → p-1376856a.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3fcbf72c.entry.js → p-21b11e12.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-65a72779.entry.js → p-21c22d6b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-6b436dc0.entry.js → p-25bfc579.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-5a74c002.entry.js → p-3c20895b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-aad0a4e0.entry.js → p-3e440355.entry.js} +2 -2
- package/dist/nylas-web-elements/p-40afc7f8.entry.js +2 -0
- package/dist/nylas-web-elements/{p-3b8efec1.entry.js → p-41e8c881.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d3d9c339.entry.js → p-45f5ed7b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-22216c9c.entry.js → p-49116da4.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-aeb1c91c.entry.js → p-4caadf7d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-5f2fd4c8.entry.js → p-4da8b3e6.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-58b793cc.entry.js → p-52ca89b1.entry.js} +2 -2
- package/dist/nylas-web-elements/p-54440d49.entry.js +2 -0
- package/dist/nylas-web-elements/{p-db61ce3f.entry.js → p-573b8b1c.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d8d5ce83.entry.js → p-59ddd93e.entry.js} +2 -2
- package/dist/nylas-web-elements/p-6cdcb5c5.entry.js +2 -0
- package/dist/nylas-web-elements/{p-0b146757.entry.js → p-73cd5b64.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-7b159320.entry.js → p-75e3d536.entry.js} +2 -2
- package/dist/nylas-web-elements/p-75e3d536.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-cffd8f8a.entry.js → p-7823abda.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-0dccf179.entry.js → p-8b0d995a.entry.js} +2 -2
- package/dist/nylas-web-elements/p-8b3c038d.entry.js +2 -0
- package/dist/nylas-web-elements/{p-22589c52.entry.js.map → p-8b3c038d.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-fc81327c.entry.js → p-8c6189fe.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-73da3bba.entry.js → p-933a3100.entry.js} +2 -2
- package/dist/nylas-web-elements/p-96de6e60.entry.js +2 -0
- package/dist/nylas-web-elements/{p-3f26a5a9.entry.js → p-9be6a822.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-71cac380.entry.js → p-9d448cd8.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-166264ec.entry.js → p-a448a489.entry.js} +2 -2
- package/dist/nylas-web-elements/p-a623d19d.entry.js +2 -0
- package/dist/nylas-web-elements/{p-3b281401.entry.js → p-ace74b9d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3f435fab.entry.js → p-b0290025.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-48ea33c2.entry.js → p-b0eead31.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d4ac4479.entry.js → p-b3703373.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-02dc4d26.entry.js → p-b60d1957.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-43a90942.entry.js → p-ba22f183.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-82176388.entry.js → p-bbfd0f84.entry.js} +2 -2
- package/dist/nylas-web-elements/p-c08d3e18.entry.js +2 -0
- package/dist/nylas-web-elements/{p-c9c0016c.entry.js → p-c6b5a68e.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-3aac9127.entry.js → p-c76721e7.entry.js} +2 -2
- package/dist/nylas-web-elements/p-c8f29351.entry.js +2 -0
- package/dist/nylas-web-elements/{p-e66bdd53.entry.js → p-d876a7db.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3175cae0.entry.js → p-ea7d26ba.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-c58f8acf.entry.js → p-f3002df2.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-280fc86a.entry.js → p-f62ed669.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-89c7feab.entry.js → p-fb20f8a1.entry.js} +2 -2
- package/dist/nylas-web-elements/people-icon.entry.js +1 -1
- package/dist/nylas-web-elements/person-clipboard-icon.entry.js +1 -1
- package/dist/nylas-web-elements/person-icon.entry.js +1 -1
- package/dist/nylas-web-elements/play-icon.entry.js +1 -1
- package/dist/nylas-web-elements/plus-icon.entry.js +1 -1
- package/dist/nylas-web-elements/radio-button-group.entry.js +1 -1
- package/dist/nylas-web-elements/refresh-icon.entry.js +1 -1
- package/dist/nylas-web-elements/reply-all-icon.entry.js +1 -1
- package/dist/nylas-web-elements/reply-icon.entry.js +1 -1
- package/dist/nylas-web-elements/search-icon.entry.js +1 -1
- package/dist/nylas-web-elements/select-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/sent-icon.entry.js +1 -1
- package/dist/nylas-web-elements/spam-icon.entry.js +1 -1
- package/dist/nylas-web-elements/star-icon.entry.js +1 -1
- package/dist/nylas-web-elements/stop-icon.entry.js +1 -1
- package/dist/nylas-web-elements/textarea-component.entry.js +1 -1
- package/dist/nylas-web-elements/time-period-selector.entry.js +1 -1
- package/dist/nylas-web-elements/toggle-switch.entry.js +1 -1
- package/dist/nylas-web-elements/tooltip-component.entry.js +1 -1
- package/dist/nylas-web-elements/translate-icon.entry.js +1 -1
- package/dist/nylas-web-elements/trash-fill-icon.entry.js +1 -1
- package/dist/nylas-web-elements/trash-icon.entry.js +1 -1
- package/dist/nylas-web-elements/underline-icon.entry.js +1 -1
- package/dist/nylas-web-elements/warning-icon.entry.js +1 -1
- package/dist/nylas-web-elements/zoom-icon.entry.js +1 -1
- package/dist/types/components.d.ts +8 -0
- package/package.json +2 -2
- package/dist/nylas-web-elements/p-000e308f.entry.js +0 -2
- package/dist/nylas-web-elements/p-000e308f.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-22589c52.entry.js +0 -2
- package/dist/nylas-web-elements/p-3d2df022.entry.js +0 -2
- package/dist/nylas-web-elements/p-5ce76be4.entry.js +0 -2
- package/dist/nylas-web-elements/p-7b159320.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-8a9579b5.entry.js +0 -2
- package/dist/nylas-web-elements/p-9068fc82.entry.js +0 -2
- package/dist/nylas-web-elements/p-90817d1f.entry.js +0 -2
- package/dist/nylas-web-elements/p-fb5f1ec6.entry.js +0 -2
- package/dist/nylas-web-elements/p-fe270fee.entry.js +0 -2
- /package/dist/nylas-web-elements/{p-267298be.entry.js.map → p-1376856a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3fcbf72c.entry.js.map → p-21b11e12.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-65a72779.entry.js.map → p-21c22d6b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6b436dc0.entry.js.map → p-25bfc579.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5a74c002.entry.js.map → p-3c20895b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-aad0a4e0.entry.js.map → p-3e440355.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5ce76be4.entry.js.map → p-40afc7f8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3b8efec1.entry.js.map → p-41e8c881.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d3d9c339.entry.js.map → p-45f5ed7b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-22216c9c.entry.js.map → p-49116da4.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-aeb1c91c.entry.js.map → p-4caadf7d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5f2fd4c8.entry.js.map → p-4da8b3e6.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-58b793cc.entry.js.map → p-52ca89b1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-fe270fee.entry.js.map → p-54440d49.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-db61ce3f.entry.js.map → p-573b8b1c.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d8d5ce83.entry.js.map → p-59ddd93e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-90817d1f.entry.js.map → p-6cdcb5c5.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-0b146757.entry.js.map → p-73cd5b64.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-cffd8f8a.entry.js.map → p-7823abda.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-0dccf179.entry.js.map → p-8b0d995a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-fc81327c.entry.js.map → p-8c6189fe.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-73da3bba.entry.js.map → p-933a3100.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-fb5f1ec6.entry.js.map → p-96de6e60.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3f26a5a9.entry.js.map → p-9be6a822.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-71cac380.entry.js.map → p-9d448cd8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-166264ec.entry.js.map → p-a448a489.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8a9579b5.entry.js.map → p-a623d19d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3b281401.entry.js.map → p-ace74b9d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3f435fab.entry.js.map → p-b0290025.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-48ea33c2.entry.js.map → p-b0eead31.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d4ac4479.entry.js.map → p-b3703373.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-02dc4d26.entry.js.map → p-b60d1957.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-43a90942.entry.js.map → p-ba22f183.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-82176388.entry.js.map → p-bbfd0f84.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9068fc82.entry.js.map → p-c08d3e18.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c9c0016c.entry.js.map → p-c6b5a68e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3aac9127.entry.js.map → p-c76721e7.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3d2df022.entry.js.map → p-c8f29351.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e66bdd53.entry.js.map → p-d876a7db.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3175cae0.entry.js.map → p-ea7d26ba.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c58f8acf.entry.js.map → p-f3002df2.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-280fc86a.entry.js.map → p-f62ed669.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-89c7feab.entry.js.map → p-fb20f8a1.entry.js.map} +0 -0
package/dist/collection/components/scheduler/nylas-booking-form/test/nylas-booking-form.spec.js
CHANGED
|
@@ -52,6 +52,103 @@ describe('nylas-booking-form', () => {
|
|
|
52
52
|
console.debug(errorMessage.className);
|
|
53
53
|
expect(errorMessage.textContent).toBe('Email has invalid format.');
|
|
54
54
|
});
|
|
55
|
+
it('renders correctly with additional fields from the config', async () => {
|
|
56
|
+
const configSettings = {
|
|
57
|
+
scheduler: {
|
|
58
|
+
available_days_in_future: 30,
|
|
59
|
+
min_cancellation_notice: 0,
|
|
60
|
+
min_booking_notice: 60,
|
|
61
|
+
hide_rescheduling_options: false,
|
|
62
|
+
hide_cancellation_options: false,
|
|
63
|
+
hide_additional_guests: false,
|
|
64
|
+
additional_fields: {
|
|
65
|
+
additional_email: {
|
|
66
|
+
label: 'Additional email',
|
|
67
|
+
type: 'email',
|
|
68
|
+
required: false,
|
|
69
|
+
order: 2,
|
|
70
|
+
},
|
|
71
|
+
checkbox: {
|
|
72
|
+
label: 'Checkbox Label',
|
|
73
|
+
type: 'checkbox',
|
|
74
|
+
required: false,
|
|
75
|
+
order: 6,
|
|
76
|
+
},
|
|
77
|
+
dropdown: {
|
|
78
|
+
label: 'Dropdown Label',
|
|
79
|
+
type: 'dropdown',
|
|
80
|
+
required: false,
|
|
81
|
+
order: 3,
|
|
82
|
+
options: ['Yes', 'No'],
|
|
83
|
+
},
|
|
84
|
+
long_text: {
|
|
85
|
+
label: 'Long text Label',
|
|
86
|
+
type: 'multi_line_text',
|
|
87
|
+
required: false,
|
|
88
|
+
order: 5,
|
|
89
|
+
},
|
|
90
|
+
phone_number: {
|
|
91
|
+
label: 'Phone Number',
|
|
92
|
+
type: 'phone_number',
|
|
93
|
+
required: false,
|
|
94
|
+
order: 1,
|
|
95
|
+
},
|
|
96
|
+
radio_button: {
|
|
97
|
+
label: 'Radio Button Label',
|
|
98
|
+
type: 'radio_button',
|
|
99
|
+
required: false,
|
|
100
|
+
order: 7,
|
|
101
|
+
options: ['Yes', 'No'],
|
|
102
|
+
},
|
|
103
|
+
short_text: {
|
|
104
|
+
label: 'Short Text Label',
|
|
105
|
+
type: 'text',
|
|
106
|
+
required: false,
|
|
107
|
+
order: 4,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
email_template: {
|
|
111
|
+
booking_confirmed: {},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
organizer: {
|
|
115
|
+
email: 'pooja.g@nylas.com',
|
|
116
|
+
name: 'Pooja Guggari',
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
const page = await newSpecPage({
|
|
120
|
+
components: [NylasBookingForm, InputComponent],
|
|
121
|
+
html: `<nylas-booking-form></nylas-booking-form>`,
|
|
122
|
+
});
|
|
123
|
+
if (!page.root) {
|
|
124
|
+
throw new Error('Component did not render.');
|
|
125
|
+
}
|
|
126
|
+
page.root.configSettings = configSettings;
|
|
127
|
+
await page.waitForChanges();
|
|
128
|
+
expect(page.root).toMatchSnapshot();
|
|
129
|
+
const additionalEmailInput = page?.root?.shadowRoot?.querySelector('[part="nbf__input-textfield"][id="additional_email"]');
|
|
130
|
+
additionalEmailInput.value = 'abcd@gmail.com';
|
|
131
|
+
page.root?.dispatchEvent(new CustomEvent('nylasFormInputChanged', {
|
|
132
|
+
detail: {
|
|
133
|
+
value: additionalEmailInput.value,
|
|
134
|
+
name: 'additional_email',
|
|
135
|
+
error: '',
|
|
136
|
+
label: 'Additional email',
|
|
137
|
+
},
|
|
138
|
+
}));
|
|
139
|
+
const checkboxInput = page?.root?.shadowRoot?.querySelector('[part="nbf__input-textfield"][id="checkbox"]');
|
|
140
|
+
checkboxInput.checked = true;
|
|
141
|
+
page.root?.dispatchEvent(new CustomEvent('nylasFormCheckboxToggled', {
|
|
142
|
+
detail: {
|
|
143
|
+
checked: checkboxInput.checked,
|
|
144
|
+
name: 'checkbox',
|
|
145
|
+
error: '',
|
|
146
|
+
label: 'Checkbox Label',
|
|
147
|
+
},
|
|
148
|
+
}));
|
|
149
|
+
await page.waitForChanges();
|
|
150
|
+
expect(page.rootInstance.additionalFields).toEqual({ additional_email: 'abcd@gmail.com', checkbox: 'true' });
|
|
151
|
+
});
|
|
55
152
|
xit('renders guest email input on add guest button click', async () => {
|
|
56
153
|
const page = await newSpecPage({
|
|
57
154
|
components: [NylasBookingForm, InputComponent],
|
package/dist/collection/components/scheduler/nylas-booking-form/test/nylas-booking-form.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-booking-form.spec.js","sourceRoot":"","sources":["../../../../../src/components/scheduler/nylas-booking-form/test/nylas-booking-form.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { NylasBookingForm } from '../nylas-booking-form';\nimport { InputComponent } from '../../../design-system/input-component/input-component';\n\ndescribe('nylas-booking-form', () => {\n beforeEach(() => {\n // Clear and reset the mock before each test if needed\n jest.clearAllMocks();\n });\n let consoleErrorSpy;\n\n beforeEach(() => {\n // Spy on console.error before each test\n consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});\n });\n\n afterEach(() => {\n // Restore the original console.error after each test\n consoleErrorSpy.mockRestore();\n });\n\n it('renders correctly with initial props', async () => {\n const bookingInfo = {\n primaryParticipant: {\n name: 'John Doe',\n email: 'john.doe@example.com',\n },\n };\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n if (!page.root) {\n throw new Error('Component did not render.');\n }\n\n page.root.bookingInfo = bookingInfo;\n await page.waitForChanges();\n expect(page.rootInstance.name).toEqual('John Doe');\n expect(page.rootInstance.email).toEqual('john.doe@example.com');\n expect(page.root).toMatchSnapshot();\n });\n\n it('renders an email error message when email is invalid', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n emailInput.value = 'invalid-email';\n emailInput.dispatchEvent(new Event('input'));\n\n // Submit the form to trigger validation\n const form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n\n await page.waitForChanges();\n\n const errorMessage = page?.root?.shadowRoot\n ?.querySelector('.input-wrapper:nth-child(2) [part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n console.debug(errorMessage.className);\n expect(errorMessage.textContent).toBe('Email has invalid format.');\n });\n\n xit('renders guest email input on add guest button click', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n\n await page.waitForChanges();\n\n const guestEmailInputs = page?.root?.shadowRoot?.querySelectorAll('[part=\"nbf__input-textfield\"][id^=\"guest-email-\"]') as NodeListOf<HTMLInputElement>;\n expect(guestEmailInputs.length).toEqual(1);\n });\n\n xit('allows multiple guest emails to be added', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Simulate clicking the 'Add Guest' button twice\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n addGuestButton.click();\n await page.waitForChanges();\n\n // Check if two guest email inputs are present\n const guestEmailInputs = page?.root?.shadowRoot?.querySelectorAll('[id^=\"guest-email-\"]') as NodeListOf<HTMLInputElement>;\n expect(guestEmailInputs.length).toBe(2);\n });\n\n xit('removes a guest email input on remove button click', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Add two guests then remove one\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n addGuestButton.click();\n await page.waitForChanges();\n\n const removeGuestButton = page?.root?.shadowRoot?.querySelector('.remove-guest') as HTMLButtonElement;\n removeGuestButton.click();\n await page.waitForChanges();\n\n // Check if one guest email input remains\n const guestEmailInputs = page?.root?.shadowRoot?.querySelectorAll('[id^=\"guest-email-\"]') as NodeListOf<HTMLInputElement>;\n expect(guestEmailInputs.length).toBe(1);\n });\n\n it('emits nameChanged and emailChanged events on input change', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameChangedSpy = jest.fn();\n const emailChangedSpy = jest.fn();\n\n page.win.addEventListener('nameChanged', nameChangedSpy);\n page.win.addEventListener('emailChanged', emailChangedSpy);\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('label input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n\n page.root?.dispatchEvent(\n new CustomEvent('nylasFormInputChanged', {\n detail: {\n value: nameInput.value,\n name: 'name',\n error: '',\n },\n }),\n );\n\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('label input') as HTMLInputElement;\n emailInput.value = 'john.doe@example.com';\n\n page.root?.dispatchEvent(\n new CustomEvent('nylasFormInputChanged', {\n detail: {\n value: emailInput.value,\n name: 'email',\n error: '',\n },\n }),\n );\n\n await page.waitForChanges();\n\n expect(nameChangedSpy.mock.calls[0][0].detail).toEqual('John Doe');\n expect(emailChangedSpy.mock.calls[0][0].detail).toEqual('john.doe@example.com');\n });\n\n it('emits backButtonClicked event on back button click', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const backButton = page?.root?.shadowRoot?.querySelector('.back') as HTMLButtonElement;\n const backButtonClickedSpy = jest.fn();\n page.win.addEventListener('backButtonClicked', backButtonClickedSpy);\n backButton.click();\n await page.waitForChanges();\n expect(backButtonClickedSpy).toHaveBeenCalled();\n });\n\n it('on entering name input and focusing on email input there are no errors', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Simulate actions\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n\n nameInput.focus();\n nameInput.value = 'text';\n emailInput.focus();\n await page.waitForChanges();\n\n expect(consoleErrorSpy).not.toHaveBeenCalled();\n });\n\n it('validates name input correctly', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Simulate entering a valid name\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n const form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert no validation error message for name\n let errorMessage = page?.root?.shadowRoot?.querySelector('.input-wrapper [part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n expect(errorMessage).toBeNull();\n\n // Simulate clearing the name, triggering validation error\n nameInput.value = '';\n nameInput.dispatchEvent(new Event('input'));\n\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for name\n errorMessage = page?.root?.shadowRoot?.querySelector('.input-wrapper [part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n expect(errorMessage.textContent).toBe('Name is required.');\n });\n\n it('validates email input correctly', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('label input[name=\"name\"]') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n\n // Simulate entering a valid email\n const emailInput = page?.root?.shadowRoot\n ?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('label input[name=\"email\"]') as HTMLInputElement;\n emailInput.value = 'john.doe@example.com';\n emailInput.dispatchEvent(new Event('input'));\n\n let form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert no validation error message for email\n let errorMessage = page?.root?.shadowRoot\n ?.querySelector('.input-wrapper:nth-child(2) [part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n await page.waitForChanges();\n\n expect(errorMessage).toBeNull();\n\n // Simulate clearing the email, triggering validation error\n emailInput.value = '';\n emailInput.dispatchEvent(new Event('input'));\n await page.waitForChanges();\n form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for empty email\n errorMessage = page?.root?.shadowRoot\n ?.querySelector('.input-wrapper:nth-child(2) [part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n expect(errorMessage.textContent).toBe('Email is required.');\n });\n\n xit('validates guest email inputs correctly', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n emailInput.value = 'john.doe@example.com';\n emailInput.dispatchEvent(new Event('input'));\n\n // Simulate adding a guest\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n await page.waitForChanges();\n\n const guestEmailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id^=\"guest-email-0\"]') as HTMLInputElement;\n\n // Simulate on blur event to trigger validation\n guestEmailInput.dispatchEvent(new Event('blur'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for empty guest email\n let errorMessage = page?.root?.shadowRoot?.querySelector('.input-wrapper:nth-child(3) .button-wrapper .help-text') as HTMLParagraphElement;\n expect(errorMessage.textContent).toBe('Email is required.');\n\n // Simulate entering an ivalid guest email\n guestEmailInput.value = 'invalid-email';\n guestEmailInput.dispatchEvent(new Event('input'));\n let form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for invalid guest email\n expect(errorMessage.textContent).toBe('Invalid format. ');\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"nylas-booking-form.spec.js","sourceRoot":"","sources":["../../../../../src/components/scheduler/nylas-booking-form/test/nylas-booking-form.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { NylasBookingForm } from '../nylas-booking-form';\nimport { InputComponent } from '../../../design-system/input-component/input-component';\n\ndescribe('nylas-booking-form', () => {\n beforeEach(() => {\n // Clear and reset the mock before each test if needed\n jest.clearAllMocks();\n });\n let consoleErrorSpy;\n\n beforeEach(() => {\n // Spy on console.error before each test\n consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});\n });\n\n afterEach(() => {\n // Restore the original console.error after each test\n consoleErrorSpy.mockRestore();\n });\n\n it('renders correctly with initial props', async () => {\n const bookingInfo = {\n primaryParticipant: {\n name: 'John Doe',\n email: 'john.doe@example.com',\n },\n };\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n if (!page.root) {\n throw new Error('Component did not render.');\n }\n\n page.root.bookingInfo = bookingInfo;\n await page.waitForChanges();\n expect(page.rootInstance.name).toEqual('John Doe');\n expect(page.rootInstance.email).toEqual('john.doe@example.com');\n expect(page.root).toMatchSnapshot();\n });\n\n it('renders an email error message when email is invalid', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n emailInput.value = 'invalid-email';\n emailInput.dispatchEvent(new Event('input'));\n\n // Submit the form to trigger validation\n const form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n\n await page.waitForChanges();\n\n const errorMessage = page?.root?.shadowRoot\n ?.querySelector('.input-wrapper:nth-child(2) [part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n console.debug(errorMessage.className);\n expect(errorMessage.textContent).toBe('Email has invalid format.');\n });\n\n it('renders correctly with additional fields from the config', async () => {\n const configSettings = {\n scheduler: {\n available_days_in_future: 30,\n min_cancellation_notice: 0,\n min_booking_notice: 60,\n hide_rescheduling_options: false,\n hide_cancellation_options: false,\n hide_additional_guests: false,\n additional_fields: {\n additional_email: {\n label: 'Additional email',\n type: 'email',\n required: false,\n order: 2,\n },\n checkbox: {\n label: 'Checkbox Label',\n type: 'checkbox',\n required: false,\n order: 6,\n },\n dropdown: {\n label: 'Dropdown Label',\n type: 'dropdown',\n required: false,\n order: 3,\n options: ['Yes', 'No'],\n },\n long_text: {\n label: 'Long text Label',\n type: 'multi_line_text',\n required: false,\n order: 5,\n },\n phone_number: {\n label: 'Phone Number',\n type: 'phone_number',\n required: false,\n order: 1,\n },\n radio_button: {\n label: 'Radio Button Label',\n type: 'radio_button',\n required: false,\n order: 7,\n options: ['Yes', 'No'],\n },\n short_text: {\n label: 'Short Text Label',\n type: 'text',\n required: false,\n order: 4,\n },\n },\n email_template: {\n booking_confirmed: {},\n },\n },\n organizer: {\n email: 'pooja.g@nylas.com',\n name: 'Pooja Guggari',\n },\n };\n\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n if (!page.root) {\n throw new Error('Component did not render.');\n }\n\n page.root.configSettings = configSettings;\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot();\n\n const additionalEmailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"additional_email\"]') as HTMLInputElement;\n additionalEmailInput.value = 'abcd@gmail.com';\n\n page.root?.dispatchEvent(\n new CustomEvent('nylasFormInputChanged', {\n detail: {\n value: additionalEmailInput.value,\n name: 'additional_email',\n error: '',\n label: 'Additional email',\n },\n }),\n );\n\n const checkboxInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"checkbox\"]') as HTMLInputElement;\n checkboxInput.checked = true;\n\n page.root?.dispatchEvent(\n new CustomEvent('nylasFormCheckboxToggled', {\n detail: {\n checked: checkboxInput.checked,\n name: 'checkbox',\n error: '',\n label: 'Checkbox Label',\n },\n }),\n );\n\n await page.waitForChanges();\n expect(page.rootInstance.additionalFields).toEqual({ additional_email: 'abcd@gmail.com', checkbox: 'true' });\n });\n\n xit('renders guest email input on add guest button click', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n\n await page.waitForChanges();\n\n const guestEmailInputs = page?.root?.shadowRoot?.querySelectorAll('[part=\"nbf__input-textfield\"][id^=\"guest-email-\"]') as NodeListOf<HTMLInputElement>;\n expect(guestEmailInputs.length).toEqual(1);\n });\n\n xit('allows multiple guest emails to be added', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Simulate clicking the 'Add Guest' button twice\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n addGuestButton.click();\n await page.waitForChanges();\n\n // Check if two guest email inputs are present\n const guestEmailInputs = page?.root?.shadowRoot?.querySelectorAll('[id^=\"guest-email-\"]') as NodeListOf<HTMLInputElement>;\n expect(guestEmailInputs.length).toBe(2);\n });\n\n xit('removes a guest email input on remove button click', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Add two guests then remove one\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n addGuestButton.click();\n await page.waitForChanges();\n\n const removeGuestButton = page?.root?.shadowRoot?.querySelector('.remove-guest') as HTMLButtonElement;\n removeGuestButton.click();\n await page.waitForChanges();\n\n // Check if one guest email input remains\n const guestEmailInputs = page?.root?.shadowRoot?.querySelectorAll('[id^=\"guest-email-\"]') as NodeListOf<HTMLInputElement>;\n expect(guestEmailInputs.length).toBe(1);\n });\n\n it('emits nameChanged and emailChanged events on input change', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameChangedSpy = jest.fn();\n const emailChangedSpy = jest.fn();\n\n page.win.addEventListener('nameChanged', nameChangedSpy);\n page.win.addEventListener('emailChanged', emailChangedSpy);\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('label input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n\n page.root?.dispatchEvent(\n new CustomEvent('nylasFormInputChanged', {\n detail: {\n value: nameInput.value,\n name: 'name',\n error: '',\n },\n }),\n );\n\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('label input') as HTMLInputElement;\n emailInput.value = 'john.doe@example.com';\n\n page.root?.dispatchEvent(\n new CustomEvent('nylasFormInputChanged', {\n detail: {\n value: emailInput.value,\n name: 'email',\n error: '',\n },\n }),\n );\n\n await page.waitForChanges();\n\n expect(nameChangedSpy.mock.calls[0][0].detail).toEqual('John Doe');\n expect(emailChangedSpy.mock.calls[0][0].detail).toEqual('john.doe@example.com');\n });\n\n it('emits backButtonClicked event on back button click', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const backButton = page?.root?.shadowRoot?.querySelector('.back') as HTMLButtonElement;\n const backButtonClickedSpy = jest.fn();\n page.win.addEventListener('backButtonClicked', backButtonClickedSpy);\n backButton.click();\n await page.waitForChanges();\n expect(backButtonClickedSpy).toHaveBeenCalled();\n });\n\n it('on entering name input and focusing on email input there are no errors', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Simulate actions\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n\n nameInput.focus();\n nameInput.value = 'text';\n emailInput.focus();\n await page.waitForChanges();\n\n expect(consoleErrorSpy).not.toHaveBeenCalled();\n });\n\n it('validates name input correctly', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n // Simulate entering a valid name\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n const form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert no validation error message for name\n let errorMessage = page?.root?.shadowRoot?.querySelector('.input-wrapper [part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n expect(errorMessage).toBeNull();\n\n // Simulate clearing the name, triggering validation error\n nameInput.value = '';\n nameInput.dispatchEvent(new Event('input'));\n\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for name\n errorMessage = page?.root?.shadowRoot?.querySelector('.input-wrapper [part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n expect(errorMessage.textContent).toBe('Name is required.');\n });\n\n it('validates email input correctly', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('label input[name=\"name\"]') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n\n // Simulate entering a valid email\n const emailInput = page?.root?.shadowRoot\n ?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('label input[name=\"email\"]') as HTMLInputElement;\n emailInput.value = 'john.doe@example.com';\n emailInput.dispatchEvent(new Event('input'));\n\n let form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert no validation error message for email\n let errorMessage = page?.root?.shadowRoot\n ?.querySelector('.input-wrapper:nth-child(2) [part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n await page.waitForChanges();\n\n expect(errorMessage).toBeNull();\n\n // Simulate clearing the email, triggering validation error\n emailInput.value = '';\n emailInput.dispatchEvent(new Event('input'));\n await page.waitForChanges();\n form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for empty email\n errorMessage = page?.root?.shadowRoot\n ?.querySelector('.input-wrapper:nth-child(2) [part=\"nbf__input-textfield\"][id=\"email\"]')\n ?.shadowRoot?.querySelector('.help-text') as HTMLSpanElement;\n expect(errorMessage.textContent).toBe('Email is required.');\n });\n\n xit('validates guest email inputs correctly', async () => {\n const page = await newSpecPage({\n components: [NylasBookingForm, InputComponent],\n html: `<nylas-booking-form></nylas-booking-form>`,\n });\n\n const nameInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"name\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n nameInput.value = 'John Doe';\n nameInput.dispatchEvent(new Event('input'));\n\n const emailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id=\"email\"]')?.shadowRoot?.querySelector('input') as HTMLInputElement;\n emailInput.value = 'john.doe@example.com';\n emailInput.dispatchEvent(new Event('input'));\n\n // Simulate adding a guest\n const addGuestButton = page?.root?.shadowRoot?.querySelector('.add-guest') as HTMLButtonElement;\n addGuestButton.click();\n await page.waitForChanges();\n\n const guestEmailInput = page?.root?.shadowRoot?.querySelector('[part=\"nbf__input-textfield\"][id^=\"guest-email-0\"]') as HTMLInputElement;\n\n // Simulate on blur event to trigger validation\n guestEmailInput.dispatchEvent(new Event('blur'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for empty guest email\n let errorMessage = page?.root?.shadowRoot?.querySelector('.input-wrapper:nth-child(3) .button-wrapper .help-text') as HTMLParagraphElement;\n expect(errorMessage.textContent).toBe('Email is required.');\n\n // Simulate entering an ivalid guest email\n guestEmailInput.value = 'invalid-email';\n guestEmailInput.dispatchEvent(new Event('input'));\n let form = page?.root?.shadowRoot?.querySelector('form') as HTMLFormElement;\n form.dispatchEvent(new Event('submit'));\n await page.waitForChanges();\n\n // Assert validation error message is shown for invalid guest email\n expect(errorMessage.textContent).toBe('Invalid format. ');\n });\n});\n"]}
|
package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js
CHANGED
|
@@ -78,7 +78,7 @@ export class NylasCancelBookingForm {
|
|
|
78
78
|
debug(`[nylas-cancel-booking-form] Component disconnected`);
|
|
79
79
|
}
|
|
80
80
|
render() {
|
|
81
|
-
return (h(Host, { key: '
|
|
81
|
+
return (h(Host, { key: 'fac967312e7bf8244790ac475078ba3274dbf374', part: "ncec" }, h("sp-theme", { key: '0d1e0d011f2660e7b741698b8471add378c72cef', theme: "spectrum", scale: "medium" }, h("div", { key: '4fa58bdcaf7d1a95da265eed94484fe67507578f', class: "nylas-cancel-booking-form", part: "ncec__card" }, h("div", { key: '5f00ac9dd2d46399888bf259bd37116f89c6553c', class: "nylas-cancel-booking-form__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: '8316d0b1c2b5eade6853c8ebdf4941e569eeb847' })), h("h3", { key: '30d8fc1c63746263319d80244abedb157b189d2b', class: "nylas-cancel-booking-form__title", part: "ncec__title" }, i18next.t('cancelBookingTitle')), h("div", { key: '09c8c465ee3aa8de2bda3471469088f516506a04', class: "nylas-cancel-booking-form__description", part: "ncec__description" }, !this.configSettings?.scheduler?.cancellation_policy ? `${i18next.t('cancelBookingMessage')}` : this.cancellationPolicy), h("form", { key: 'c4a8a2ef36a7fbfc9b74ac041516b0bb32ddd8eb', onSubmit: this.handleSubmitCancelBooking }, h("sp-field-label", { key: '64650888d1ef21608ffd676cc627919c30a4ae95', for: "cancel-reason", class: this.cancellationError ? 'error' : '' }, i18next.t('reasonForCancellation'), " ", h("span", { key: 'b8e801cbdf08b8e5786958514bc316cd3f5a00d5', class: "required" }, "*")), h("sp-textfield", { key: 'ef32a4dca00f42930bbf8fe95b09a8f1662c86f9', id: "cancel-reason", class: this.cancellationError ? 'error' : '', part: "ncec__reason-textarea", multiline: true, value: this.cancellationReason, onInput: this.handleOnChangeCancellationReason, onFocus: this.handleOnChangeCancellationReason, invalid: !!this.cancellationError }, h("sp-help-text", { key: '730649bf078c88796d8defd8b4fd664404e28d64', slot: "negative-help-text" }, this.cancellationError)), h("sp-button", { key: '9f4225fdf4808501be4521b78f6cc00a7f3bf06d', variant: "primary", class: "cancel", type: "submit", part: "ncec__button-cta" }, i18next.t('cancelBookingButton')), h("sp-button", { key: '5eded5210d04ca74746ffa1f2230b78edc2daa29', variant: "secondary", class: "back", treatment: "outline", part: "ncec__button-outline", onClick: this.handleGoBackClicked }, i18next.t('goBackButton')))))));
|
|
82
82
|
}
|
|
83
83
|
static get is() { return "nylas-cancel-booking-form"; }
|
|
84
84
|
static get encapsulation() { return "shadow"; }
|
|
@@ -46,7 +46,7 @@ export class NylasCancelledEventCard {
|
|
|
46
46
|
debug(`[nylas-cancelled-event-card] Component disconnected`);
|
|
47
47
|
}
|
|
48
48
|
render() {
|
|
49
|
-
return (h(Host, { key: '
|
|
49
|
+
return (h(Host, { key: '9c98c6894ceb733fa180edd1df8175982baf746b', part: "ncec" }, h("sp-theme", { key: '14a7b09fc12551599c93762d7c5398d7326f3507', theme: "spectrum", color: "dark", scale: "medium" }, h("div", { key: '828831866ee86c226f755c0f151baecef91ed995', class: "nylas-cancelled-event-card", part: "ncec__card" }, h("div", { key: 'e92df81c9d255aa862382915af84e33d17624150', class: "nylas-cancelled-event-card__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: 'bbbbbdf5e90467700c05c1702fcc5cc66968a834' })), h("h3", { key: '17e09dbd68c95dea1f3db1259ef4e801a956724e', class: "nylas-cancelled-event-card__title", part: "ncec__title" }, i18next.t('bookingCancelledTitle'), "!"), h("div", { key: '12cd951ec167e07a476620c5c0a6bba3f1d7d739', class: "nylas-cancelled-event-card__description", part: "ncec__description" }, i18next.t('bookingCancelledMessage'), " ", this.configSettings?.organizer?.name || 'the participants', "."), h("div", { key: '07d80ab4a38a15eecb62c7f2d2205862e42d8e47', class: "nylas-cancelled-event-card__cta" }, h("sp-button", { key: 'c5c33eacbce86cb787ef9d0343b05941b9e7189a', variant: "secondary", treatment: "outline", disabled: this.isClosing, part: "ncec__button-outline", onClick: this.handleCloseClicked }, this.isClosing ? `${i18next.t('closingButton')}...` : `${i18next.t('closeButton')}`))))));
|
|
50
50
|
}
|
|
51
51
|
static get is() { return "nylas-cancelled-event-card"; }
|
|
52
52
|
static get encapsulation() { return "shadow"; }
|
|
@@ -67,7 +67,7 @@ export class NylasNotification {
|
|
|
67
67
|
this.notifications = this.notifications.filter(notif => notif.id !== id);
|
|
68
68
|
}
|
|
69
69
|
render() {
|
|
70
|
-
return (h(Host, { key: '
|
|
70
|
+
return (h(Host, { key: 'c507cfeee709a1742cfcfe448edb46148bb7645c' }, h(Fragment, { key: 'bef717616baa583c675852eb3eae03a4303276ee' }, this.notifications.map(notif => (h("div", { class: `notif ${notif.type}`, key: notif.id }, h("div", { class: "content" }, h("span", { class: `icon ${notif.type}` }, (notif.type === 'error' || notif.type === 'warning') && h("warning-icon", null)), h("span", { class: "message" }, h("span", { class: "title" }, notif.title), notif.description && h("span", { class: "description" }, notif.description))), h("button", { class: "dismiss-btn", onClick: () => this.dismissNotification(notif.id) }, h("close-icon", null))))), h("slot", { key: '611326297709c03e357a3bb1597339d540b683b5' }))));
|
|
71
71
|
}
|
|
72
72
|
static get is() { return "nylas-notification"; }
|
|
73
73
|
static get encapsulation() { return "shadow"; }
|
|
@@ -298,8 +298,7 @@ export class NylasScheduling {
|
|
|
298
298
|
return (h(Host, null, h(SchedulerView, { nylasBranding: nylasBranding, isLoading: this.isLoading, showNotification: this.showNotification }, rescheduleBookingId && h(MessageBanner, null, `${i18next.t('rescheduleTitle')}`), h("div", { class: "select-date-page", part: "select-date-page" }, h("div", { class: "left-panel" }, h("nylas-date-picker", { exportparts: "ndp, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--selected, ndp__date--current-day, ndp__date--current-month" }), h("nylas-locale-switch", null)), h("div", { class: "right-panel" }, h("h2", null, h("calendar-icon", null), h("span", { id: "selectedDate" }, this.selectedDateLabel)), h("nylas-timeslot-picker", { exportparts: "ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary" }, timeslotPickerCTALabel && (h("span", { slot: "timeslot-picker-cta-label" }, h("slot", { name: "timeslot-picker-cta-label" })))))))));
|
|
299
299
|
}
|
|
300
300
|
if (showDefaultScheduler && !eventInfo && showBookingForm) {
|
|
301
|
-
|
|
302
|
-
return (h(Host, null, h(SchedulerView, { nylasBranding: nylasBranding, isLoading: this.isLoading, showNotification: this.showNotification }, rescheduleBookingId && h(MessageBanner, null, `${i18next.t('rescheduleTitle')}`), h("div", { class: "additional-data-page", part: "additional-data-page" }, h("div", { class: "left-panel" }, h("div", { class: "wrapper" }, h("nylas-selected-event-card", { exportparts: "nsec, nsec__card, nsec__icon, nsec__date, nsec__time" }))), h("div", { class: "right-panel" }, h("nylas-booking-form", { exportparts: "nbf, nbf__input-label, nbf__input-textfield, nbf__button-ghost, nbf__button-primary, nbf__button-outline" }, customTemplateSlot && (h("div", { slot: "custom-booking-form" }, h("slot", { name: "custom-booking-form" })))))))));
|
|
301
|
+
return (h(Host, null, h(SchedulerView, { nylasBranding: nylasBranding, isLoading: this.isLoading, showNotification: this.showNotification }, rescheduleBookingId && h(MessageBanner, null, `${i18next.t('rescheduleTitle')}`), h("div", { class: "additional-data-page", part: "additional-data-page" }, h("div", { class: "left-panel" }, h("div", { class: "wrapper" }, h("nylas-selected-event-card", { exportparts: "nsec, nsec__card, nsec__icon, nsec__date, nsec__time" }))), h("div", { class: "right-panel" }, h("nylas-booking-form", { exportparts: "nbf, nbf__input-label, nbf__input-textfield, nbf__button-ghost, nbf__button-primary, nbf__button-outline" }))))));
|
|
303
302
|
}
|
|
304
303
|
return (h(Host, null, h("slot", null)));
|
|
305
304
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-scheduling.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-scheduling/nylas-scheduling.tsx"],"names":[],"mappings":"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","sourcesContent":["import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { NylasSchedulerBookingData, ThemeConfig, Notification, NotificationType, NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { addDaysToCurrentDate, capitalizeFirstLetter, compactStringToUUIDs, debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { ErrorCategory } from '@/connector/nylas-scheduler-connector/errors';\nimport { MessageBanner } from './message-banner';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE_MAP } from '@/common/constants';\n\nconst genericError = { title: i18next.t('genericErrorTitle'), type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @slot custom-booking-form - This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-label - [nylas-booking-form] The input label.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button for adding guests.\n * @part nbf__button-primary - [nylas-booking-form] The primary button for booking.\n * @part nbf__button-outline - [nylas-booking-form] The outline button for canceling.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Ref required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingRef?: string;\n\n /**\n * Booking Ref required for cancelling flow.\n */\n @Prop() readonly cancelBookingRef?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(undefined, { dateStyle: 'full' }) || `${i18next.t('noDateSelected')}`;\n\n /**\n * The config id extracted from the rescheduleBookingRef or cancelBookingRef.\n */\n @State() refConfigId?: string;\n\n /**\n * The selected language for the Nylas Scheduler.\n */\n @State() language: string = navigator.language;\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n /**\n * This event is triggered if either the rescheduleBookingRef or cancelBookingRef prop\n * is supplied and the component has been attached to the DOM. It emits the configurationId\n * and bookingId derived from the rescheduleBookingRef or cancelBookingRef. Subscribe to this\n * event to obtain the extracted configurationId, which is necessary to generate the sessionID\n * for configurations that are not public.\n */\n @Event() bookingRefExtracted!: EventEmitter<{ configurationId: string; bookingId: string }>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n // Set the configId to the reschedule configId if rescheduleBookingRef is provided or\n // Set the configId to the cancel configId if cancelBookingRef is provided\n this.refConfigId = this.configurationId;\n if (this.rescheduleBookingRef) {\n const [rescheduleConfigId, rescheduleBookingId] = compactStringToUUIDs(this.rescheduleBookingRef);\n this.refConfigId = rescheduleConfigId;\n this.stores.scheduler.set('rescheduleBookingId', rescheduleBookingId);\n this.bookingRefExtracted.emit({ configurationId: rescheduleConfigId, bookingId: rescheduleBookingId });\n } else if (this.cancelBookingRef) {\n const [cancelConfigId, cancelBookingId] = compactStringToUUIDs(this.cancelBookingRef);\n this.refConfigId = cancelConfigId;\n this.stores.scheduler.set('cancelBookingId', cancelBookingId);\n this.bookingRefExtracted.emit({ configurationId: cancelConfigId, bookingId: cancelBookingId });\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.refConfigId,\n nylasSchedulerStore,\n });\n this.init.emit(this.host);\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n // Override theme\n if (this.themeConfig) {\n for (const [key, value] of Object.entries(this.themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n async componentDidLoad() {\n this.baseProvider?.componentDidLoad();\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const settings = await this.nylasSchedulerConnector?.scheduler.getUISettings();\n if (!settings || 'error' in settings) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(settings?.error) }, host: this.host });\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const availableDaysInFuture = nylasSchedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n const today = new Date();\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(today, availableDaysInFuture || 30);\n if (today.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n } else {\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(selectedDate, availableDaysInFuture || 30);\n if (selectedDate.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n }\n\n @Watch('rescheduleBookingRef')\n rescheduleBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('rescheduleBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('cancelBookingRef')\n cancelBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('cancelBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Listen('languageChanged')\n languageChanged(event: CustomEvent<string>) {\n const newLanguage = event.detail;\n this.language = newLanguage;\n i18next.changeLanguage(newLanguage);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const availableDaysInFuture = this.nylasSchedulerConnector?.schedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(date, availableDaysInFuture || 30);\n\n if (startTime < endTimeForAvailableDaysInFuture && date.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const selectableDates = this.stores?.scheduler.get('selectableDates');\n if (selectableDates && selectableDates.length > 0) {\n this.stores?.scheduler.set('selectedDate', selectableDates[0]);\n }\n }\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingData>) {\n const storeRescheduleId = this.nylasSchedulerConnector?.schedulerStore?.get('rescheduleBookingId');\n const rescheduleBookingId = storeRescheduleId;\n if (rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(rescheduleBookingId, event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(undefined, { dateStyle: 'full' }) : `${i18next.t('noDateSelected')}`;\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('cancelBookedEventValidationError')\n cancelBookedEventValidationErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n\n private checkIfSessionIdOrConfigIdExists(): boolean {\n if (!this.sessionId && !this.refConfigId) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('noSessionIdErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('noSessionIdErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('invalidTimeslotErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('invalidTimeslotErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private validateAvailableDaysInFuture(\n startDate: Date,\n availableDaysInFuture: number,\n ): {\n startTime: number;\n endTime: number;\n endTimeForAvailableDaysInFuture: number;\n } {\n const today = new Date();\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), 1).getTime() / 1000;\n const endTimeForCurrentMonth = new Date(startDate.getFullYear(), startDate.getMonth() + 1, 1).getTime() / 1000;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTime = Math.min(endTimeForAvailableDaysInFuture, endTimeForCurrentMonth);\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n return { startTime: startTimeWithOffset, endTime, endTimeForAvailableDaysInFuture };\n }\n\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId');\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId');\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n this.selectedDateLabel =\n selectedDate && this.language\n ? capitalizeFirstLetter(selectedDate.toLocaleDateString(LANGUAGE_CODE_MAP[this.language], { dateStyle: 'full' }))\n : `${i18next.t('noDateSelected')}`;\n\n if (showDefaultScheduler && cancelBookingId && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form\n selectedTimeslot={selectedTimeslot}\n cancelBookingId={cancelBookingId}\n exportparts=\"ncbf, ncbf__input-textfield, ncbf__button-cta, ncbf__button-outline, ncbf__input-label\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Booked event card is shown when the event is booked\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page\">\n <div class=\"left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <nylas-locale-switch></nylas-locale-switch>\n </div>\n <div class=\"right-panel\">\n <h2>\n <calendar-icon></calendar-icon>\n <span id=\"selectedDate\">{this.selectedDateLabel}</span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n // Check if a \"custom-booking-form\" slot is provided\n const customTemplateSlot = this.host.querySelector('[slot=\"custom-booking-form\"]');\n\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page\">\n <div class=\"left-panel\">\n <div class=\"wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time\"></nylas-selected-event-card>\n </div>\n </div>\n <div class=\"right-panel\">\n <nylas-booking-form exportparts=\"nbf, nbf__input-label, nbf__input-textfield, nbf__button-ghost, nbf__button-primary, nbf__button-outline\">\n {customTemplateSlot && (\n <div slot=\"custom-booking-form\">\n <slot name=\"custom-booking-form\"></slot>\n </div>\n )}\n </nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nylas-scheduling.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-scheduling/nylas-scheduling.tsx"],"names":[],"mappings":"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","sourcesContent":["import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { NylasSchedulerBookingData, ThemeConfig, Notification, NotificationType, NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { addDaysToCurrentDate, capitalizeFirstLetter, compactStringToUUIDs, debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { ErrorCategory } from '@/connector/nylas-scheduler-connector/errors';\nimport { MessageBanner } from './message-banner';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE_MAP } from '@/common/constants';\n\nconst genericError = { title: i18next.t('genericErrorTitle'), type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @slot @deprecated custom-booking-form - Deprecated in favor of using the additional fields defined in the config settings. This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-label - [nylas-booking-form] The input label.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button for adding guests.\n * @part nbf__button-primary - [nylas-booking-form] The primary button for booking.\n * @part nbf__button-outline - [nylas-booking-form] The outline button for canceling.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Ref required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingRef?: string;\n\n /**\n * Booking Ref required for cancelling flow.\n */\n @Prop() readonly cancelBookingRef?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(undefined, { dateStyle: 'full' }) || `${i18next.t('noDateSelected')}`;\n\n /**\n * The config id extracted from the rescheduleBookingRef or cancelBookingRef.\n */\n @State() refConfigId?: string;\n\n /**\n * The selected language for the Nylas Scheduler.\n */\n @State() language: string = navigator.language;\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n /**\n * This event is triggered if either the rescheduleBookingRef or cancelBookingRef prop\n * is supplied and the component has been attached to the DOM. It emits the configurationId\n * and bookingId derived from the rescheduleBookingRef or cancelBookingRef. Subscribe to this\n * event to obtain the extracted configurationId, which is necessary to generate the sessionID\n * for configurations that are not public.\n */\n @Event() bookingRefExtracted!: EventEmitter<{ configurationId: string; bookingId: string }>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n // Set the configId to the reschedule configId if rescheduleBookingRef is provided or\n // Set the configId to the cancel configId if cancelBookingRef is provided\n this.refConfigId = this.configurationId;\n if (this.rescheduleBookingRef) {\n const [rescheduleConfigId, rescheduleBookingId] = compactStringToUUIDs(this.rescheduleBookingRef);\n this.refConfigId = rescheduleConfigId;\n this.stores.scheduler.set('rescheduleBookingId', rescheduleBookingId);\n this.bookingRefExtracted.emit({ configurationId: rescheduleConfigId, bookingId: rescheduleBookingId });\n } else if (this.cancelBookingRef) {\n const [cancelConfigId, cancelBookingId] = compactStringToUUIDs(this.cancelBookingRef);\n this.refConfigId = cancelConfigId;\n this.stores.scheduler.set('cancelBookingId', cancelBookingId);\n this.bookingRefExtracted.emit({ configurationId: cancelConfigId, bookingId: cancelBookingId });\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.refConfigId,\n nylasSchedulerStore,\n });\n this.init.emit(this.host);\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n // Override theme\n if (this.themeConfig) {\n for (const [key, value] of Object.entries(this.themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n async componentDidLoad() {\n this.baseProvider?.componentDidLoad();\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const settings = await this.nylasSchedulerConnector?.scheduler.getUISettings();\n if (!settings || 'error' in settings) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(settings?.error) }, host: this.host });\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const availableDaysInFuture = nylasSchedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n const today = new Date();\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(today, availableDaysInFuture || 30);\n if (today.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n } else {\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(selectedDate, availableDaysInFuture || 30);\n if (selectedDate.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n }\n\n @Watch('rescheduleBookingRef')\n rescheduleBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('rescheduleBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Watch('cancelBookingRef')\n cancelBookingRefChanged(newVal?: string) {\n if (newVal) {\n const [configId, bookingId] = compactStringToUUIDs(newVal);\n this.stores?.scheduler.set('cancelBookingId', bookingId);\n this.refConfigId = configId;\n this.nylasSchedulerConnector?.scheduler.setConfigId(configId);\n }\n }\n\n @Listen('languageChanged')\n languageChanged(event: CustomEvent<string>) {\n const newLanguage = event.detail;\n this.language = newLanguage;\n i18next.changeLanguage(newLanguage);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const availableDaysInFuture = this.nylasSchedulerConnector?.schedulerStore?.get('configSettings')?.scheduler?.available_days_in_future;\n const { startTime, endTime, endTimeForAvailableDaysInFuture } = this.validateAvailableDaysInFuture(date, availableDaysInFuture || 30);\n\n if (startTime < endTimeForAvailableDaysInFuture && date.getTime() < endTimeForAvailableDaysInFuture * 1000) {\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n const selectableDates = this.stores?.scheduler.get('selectableDates');\n if (selectableDates && selectableDates.length > 0) {\n this.stores?.scheduler.set('selectedDate', selectableDates[0]);\n }\n }\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingData>) {\n const storeRescheduleId = this.nylasSchedulerConnector?.schedulerStore?.get('rescheduleBookingId');\n const rescheduleBookingId = storeRescheduleId;\n if (rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(rescheduleBookingId, event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(result?.error) }, host: this.host });\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(undefined, { dateStyle: 'full' }) : `${i18next.t('noDateSelected')}`;\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n @Listen('cancelBookedEventValidationError')\n cancelBookedEventValidationErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ notification: { ...this.getErrorObject(event.detail.error) }, host: this.host });\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n\n private checkIfSessionIdOrConfigIdExists(): boolean {\n if (!this.sessionId && !this.refConfigId) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('noSessionIdErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('noSessionIdErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n notification: {\n title: i18next.t('invalidTimeslotErrorTitle'),\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: i18next.t('invalidTimeslotErrorMessage'),\n id: new Date().getTime().toString(),\n ttl: 'none',\n },\n host: this.host,\n });\n return false;\n }\n return true;\n }\n\n private validateAvailableDaysInFuture(\n startDate: Date,\n availableDaysInFuture: number,\n ): {\n startTime: number;\n endTime: number;\n endTimeForAvailableDaysInFuture: number;\n } {\n const today = new Date();\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), 1).getTime() / 1000;\n const endTimeForCurrentMonth = new Date(startDate.getFullYear(), startDate.getMonth() + 1, 1).getTime() / 1000;\n const endTimeForAvailableDaysInFuture = Math.floor(addDaysToCurrentDate(today, availableDaysInFuture).getTime() / 1000);\n const endTime = Math.min(endTimeForAvailableDaysInFuture, endTimeForCurrentMonth);\n const startTimeWithOffset = startTime < today.getTime() / 1000 ? Math.floor(today.getTime() / 1000) : startTime;\n return { startTime: startTimeWithOffset, endTime, endTimeForAvailableDaysInFuture };\n }\n\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId');\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId');\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n this.selectedDateLabel =\n selectedDate && this.language\n ? capitalizeFirstLetter(selectedDate.toLocaleDateString(LANGUAGE_CODE_MAP[this.language], { dateStyle: 'full' }))\n : `${i18next.t('noDateSelected')}`;\n\n if (showDefaultScheduler && cancelBookingId && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form\n selectedTimeslot={selectedTimeslot}\n cancelBookingId={cancelBookingId}\n exportparts=\"ncbf, ncbf__input-textfield, ncbf__button-cta, ncbf__button-outline, ncbf__input-label\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Booked event card is shown when the event is booked\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page\">\n <div class=\"left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <nylas-locale-switch></nylas-locale-switch>\n </div>\n <div class=\"right-panel\">\n <h2>\n <calendar-icon></calendar-icon>\n <span id=\"selectedDate\">{this.selectedDateLabel}</span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>{`${i18next.t('rescheduleTitle')}`}</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page\">\n <div class=\"left-panel\">\n <div class=\"wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time\"></nylas-selected-event-card>\n </div>\n </div>\n <div class=\"right-panel\">\n <nylas-booking-form exportparts=\"nbf, nbf__input-label, nbf__input-textfield, nbf__button-ghost, nbf__button-primary, nbf__button-outline\"></nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -25,18 +25,6 @@ describe('nylas-scheduling', () => {
|
|
|
25
25
|
});
|
|
26
26
|
expect(page.root).toMatchSnapshot();
|
|
27
27
|
});
|
|
28
|
-
it('projects custom booking form into slot', async () => {
|
|
29
|
-
const page = await newSpecPage({
|
|
30
|
-
components: [NylasScheduling],
|
|
31
|
-
html: `
|
|
32
|
-
<nylas-scheduling>
|
|
33
|
-
<div slot="custom-booking-form">Custom Booking Form</div>
|
|
34
|
-
</nylas-scheduling>
|
|
35
|
-
`,
|
|
36
|
-
});
|
|
37
|
-
const customFormSlot = page?.root?.querySelector('[slot="custom-booking-form"]');
|
|
38
|
-
expect(customFormSlot.textContent).toBe('Custom Booking Form');
|
|
39
|
-
});
|
|
40
28
|
it('listens for NylasSchedulingError event and updates state', async () => {
|
|
41
29
|
const page = await newSpecPage({
|
|
42
30
|
components: [NylasScheduling],
|