@nylas/web-elements 1.1.0-canary.19.c → 1.1.0-canary.19.e
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_2.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_3.cjs.entry.js +3 -3
- package/dist/cjs/button-component_4.cjs.entry.js +203 -0
- package/dist/cjs/button-component_4.cjs.entry.js.map +1 -0
- package/dist/cjs/calendar-agenda-fill-icon_35.cjs.entry.js +6943 -0
- package/dist/cjs/calendar-agenda-fill-icon_35.cjs.entry.js.map +1 -0
- package/dist/cjs/chevron-icon_3.cjs.entry.js +11 -3
- package/dist/cjs/chevron-icon_3.cjs.entry.js.map +1 -1
- package/dist/cjs/clock-icon_2.cjs.entry.js +1 -1
- package/dist/cjs/{constants-3e962931.js → constants-7cc75333.js} +106 -1
- package/dist/cjs/{constants-3e962931.js.map → constants-7cc75333.js.map} +1 -1
- package/dist/cjs/copy-icon_4.cjs.entry.js +72 -0
- package/dist/cjs/copy-icon_4.cjs.entry.js.map +1 -0
- package/dist/cjs/document-refresh-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_4.cjs.entry.js +192 -51
- package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
- package/dist/cjs/index-7af03e3f.js +20 -16
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/input-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loading-icon.cjs.entry.js +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +144 -0
- package/dist/cjs/multi-select-dropdown.cjs.entry.js.map +1 -0
- package/dist/cjs/{nylas-api-request-a1751a40.js → nylas-api-request-393b08a0.js} +2 -1
- package/dist/cjs/nylas-api-request-393b08a0.js.map +1 -0
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +66 -35
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +1 -1
- 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-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-mailbox-toolbar-button.cjs.entry.js +1 -1
- package/dist/cjs/nylas-mailbox.cjs.entry.js +1 -1
- package/dist/cjs/nylas-provider.cjs.entry.js +3 -3
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +26 -9
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +3 -3
- package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
- 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-view-thread.cjs.entry.js +1 -1
- package/dist/cjs/nylas-web-elements.cjs.js +1 -1
- package/dist/cjs/play-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
- package/dist/cjs/{scheduler-config-store-9f19c7a9.js → scheduler-config-store-5bfc8cb8.js} +3 -1
- package/dist/cjs/scheduler-config-store-5bfc8cb8.js.map +1 -0
- package/dist/cjs/{scheduler-store-0f7328f1.js → scheduler-store-b5cf2e82.js} +43 -7
- package/dist/cjs/scheduler-store-b5cf2e82.js.map +1 -0
- package/dist/cjs/textarea-component.cjs.entry.js +3 -1
- package/dist/cjs/textarea-component.cjs.entry.js.map +1 -1
- package/dist/cjs/translate-icon.cjs.entry.js +1 -1
- package/dist/cjs/warning-icon.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +14 -0
- package/dist/collection/common/constants.js +102 -0
- package/dist/collection/common/constants.js.map +1 -1
- package/dist/collection/common/icons/add-circle.js +1 -1
- package/dist/collection/common/icons/archive.js +1 -1
- package/dist/collection/common/icons/arrow.js +1 -1
- package/dist/collection/common/icons/bold.js +1 -1
- package/dist/collection/common/icons/calendar-agenda-fill.js +63 -0
- package/dist/collection/common/icons/calendar-agenda-fill.js.map +1 -0
- package/dist/collection/common/icons/calendar-agenda.js +63 -0
- package/dist/collection/common/icons/calendar-agenda.js.map +1 -0
- package/dist/collection/common/icons/copy.js +63 -0
- package/dist/collection/common/icons/copy.js.map +1 -0
- package/dist/collection/common/icons/delete.js +63 -0
- package/dist/collection/common/icons/delete.js.map +1 -0
- package/dist/collection/common/icons/document-refresh.js +1 -1
- package/dist/collection/common/icons/dragable.js +63 -0
- package/dist/collection/common/icons/dragable.js.map +1 -0
- package/dist/collection/common/icons/edit.js +63 -0
- package/dist/collection/common/icons/edit.js.map +1 -0
- package/dist/collection/common/icons/eye.js +63 -0
- package/dist/collection/common/icons/eye.js.map +1 -0
- 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 +63 -0
- package/dist/collection/common/icons/google-meet.js.map +1 -0
- 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 +63 -0
- package/dist/collection/common/icons/microsof-teams.js.map +1 -0
- 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.js +1 -1
- package/dist/collection/common/icons/play.js +1 -1
- package/dist/collection/common/icons/plus.js +63 -0
- package/dist/collection/common/icons/plus.js.map +1 -0
- 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.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 +63 -0
- package/dist/collection/common/icons/zoom.js.map +1 -0
- package/dist/collection/common/nylas-api-request.js +1 -0
- package/dist/collection/common/nylas-api-request.js.map +1 -1
- package/dist/collection/common/types.js.map +1 -1
- package/dist/collection/components/design-system/button-component/button-component.css +4 -0
- package/dist/collection/components/design-system/button-component/button-component.js +1 -1
- package/dist/collection/components/design-system/checkbox-component/checkbox-component.css +15 -1
- package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +46 -6
- package/dist/collection/components/design-system/checkbox-component/checkbox-component.js.map +1 -1
- package/dist/collection/components/design-system/input-component/input-component.css +9 -1
- package/dist/collection/components/design-system/input-component/input-component.js +20 -8
- package/dist/collection/components/design-system/input-component/input-component.js.map +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.css +8 -1
- package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +21 -2
- package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js.map +1 -1
- package/dist/collection/components/design-system/radio-button-group/radio-button-group.css +57 -1
- package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +69 -10
- package/dist/collection/components/design-system/radio-button-group/radio-button-group.js.map +1 -1
- package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +45 -2
- package/dist/collection/components/design-system/select-dropdown/select-dropdown.js.map +1 -1
- package/dist/collection/components/design-system/textarea-component/textarea-component.js +23 -3
- package/dist/collection/components/design-system/textarea-component/textarea-component.js.map +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.css +1 -1
- package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +5 -5
- package/dist/collection/components/design-system/toggle-switch/toggle-switch.js.map +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-booked-event-card/nylas-booked-event-card.js +23 -4
- package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-booked-event-card/test/nylas-booked-event-card.spec.js +1 -0
- package/dist/collection/components/scheduler/nylas-booked-event-card/test/nylas-booked-event-card.spec.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +37 -21
- package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +42 -3
- package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-cancel-booking-form/test/nylas-cancel-booking-form.spec.js +11 -0
- package/dist/collection/components/scheduler/nylas-cancel-booking-form/test/nylas-cancel-booking-form.spec.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +2 -2
- package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +1 -1
- package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.css +4 -1
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +3 -3
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +1 -1
- package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +2 -2
- package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +8 -7
- package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.css +16 -2
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +31 -12
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.css +3 -0
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +2 -2
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.css +3 -0
- package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +22 -6
- package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.css +233 -0
- package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +388 -0
- package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js.map +1 -0
- package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.css +3 -20
- package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +19 -9
- package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.css +105 -0
- package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +298 -0
- package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js.map +1 -0
- 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 +5 -5
- package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.css +3 -0
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +106 -20
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +7 -7
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +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-limits/nylas-event-limits.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +161 -11
- package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
- 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-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.css +79 -3
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +125 -22
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +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-booking-notice/nylas-min-booking-notice.js.map +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-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.css +105 -0
- package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +324 -0
- package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js.map +1 -0
- package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +39 -5
- package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.js +4 -3
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +59 -9
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +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 +16 -16
- package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler-config.js +4 -2
- package/dist/collection/connector/shared/api/scheduler-config.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler.js +41 -6
- package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
- package/dist/collection/stores/scheduler-config-store.js +2 -0
- package/dist/collection/stores/scheduler-config-store.js.map +1 -1
- package/dist/collection/stores/scheduler-store.js +1 -0
- package/dist/collection/stores/scheduler-store.js.map +1 -1
- package/dist/collection/types/index.js.map +1 -1
- 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 +2 -2
- package/dist/components/button-component2.js.map +1 -1
- package/dist/components/calendar-agenda-fill-icon.d.ts +11 -0
- package/dist/components/calendar-agenda-fill-icon.js +8 -0
- package/dist/components/calendar-agenda-fill-icon.js.map +1 -0
- package/dist/components/calendar-agenda-fill.js +37 -0
- package/dist/components/calendar-agenda-fill.js.map +1 -0
- package/dist/components/calendar-agenda-icon.d.ts +11 -0
- package/dist/components/calendar-agenda-icon.js +8 -0
- package/dist/components/calendar-agenda-icon.js.map +1 -0
- package/dist/components/calendar-agenda.js +37 -0
- package/dist/components/calendar-agenda.js.map +1 -0
- package/dist/components/checkbox-component2.js +18 -4
- package/dist/components/checkbox-component2.js.map +1 -1
- package/dist/components/constants.js +102 -1
- package/dist/components/constants.js.map +1 -1
- package/dist/components/copy-icon.d.ts +11 -0
- package/dist/components/copy-icon.js +8 -0
- package/dist/components/copy-icon.js.map +1 -0
- package/dist/components/copy.js +37 -0
- package/dist/components/copy.js.map +1 -0
- package/dist/components/delete-icon.d.ts +11 -0
- package/dist/components/delete-icon.js +8 -0
- package/dist/components/delete-icon.js.map +1 -0
- package/dist/components/delete.js +37 -0
- package/dist/components/delete.js.map +1 -0
- package/dist/components/document-refresh-icon.js +1 -1
- package/dist/components/dragable-icon.d.ts +11 -0
- package/dist/components/dragable-icon.js +8 -0
- package/dist/components/dragable-icon.js.map +1 -0
- package/dist/components/dragable.js +37 -0
- package/dist/components/dragable.js.map +1 -0
- package/dist/components/edit-icon.d.ts +11 -0
- package/dist/components/edit-icon.js +8 -0
- package/dist/components/edit-icon.js.map +1 -0
- package/dist/components/edit.js +37 -0
- package/dist/components/edit.js.map +1 -0
- package/dist/components/eye-icon.d.ts +11 -0
- package/dist/components/eye-icon.js +8 -0
- package/dist/components/eye-icon.js.map +1 -0
- package/dist/components/eye.js +37 -0
- package/dist/components/eye.js.map +1 -0
- 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-icon.d.ts +11 -0
- package/dist/components/google-meet-icon.js +8 -0
- package/dist/components/google-meet-icon.js.map +1 -0
- package/dist/components/google-meet.js +37 -0
- package/dist/components/google-meet.js.map +1 -0
- package/dist/components/inbox.js +1 -1
- package/dist/components/info.js +1 -1
- package/dist/components/input-component2.js +17 -6
- package/dist/components/input-component2.js.map +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 +37 -0
- package/dist/components/microsof-teams.js.map +1 -0
- package/dist/components/microsoft-logo.js +1 -1
- package/dist/components/microsoft-teams-icon.d.ts +11 -0
- package/dist/components/microsoft-teams-icon.js +8 -0
- package/dist/components/microsoft-teams-icon.js.map +1 -0
- package/dist/components/multi-select-dropdown2.js +5 -3
- package/dist/components/multi-select-dropdown2.js.map +1 -1
- package/dist/components/nylas-additional-participants2.js +26 -8
- package/dist/components/nylas-additional-participants2.js.map +1 -1
- package/dist/components/nylas-api-request.js +1 -0
- package/dist/components/nylas-api-request.js.map +1 -1
- package/dist/components/nylas-availability-picker2.js +2 -2
- package/dist/components/nylas-availability-picker2.js.map +1 -1
- package/dist/components/nylas-booked-event-card2.js +7 -4
- package/dist/components/nylas-booked-event-card2.js.map +1 -1
- package/dist/components/nylas-booking-calendar-picker2.js +5 -6
- package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
- package/dist/components/nylas-booking-form-config.d.ts +11 -0
- package/dist/components/nylas-booking-form-config.js +8 -0
- package/dist/components/nylas-booking-form-config.js.map +1 -0
- package/dist/components/nylas-booking-form-config2.js +3691 -0
- package/dist/components/nylas-booking-form-config2.js.map +1 -0
- package/dist/components/nylas-booking-form2.js +78 -32
- package/dist/components/nylas-booking-form2.js.map +1 -1
- package/dist/components/nylas-calendar-picker2.js +27 -23
- package/dist/components/nylas-calendar-picker2.js.map +1 -1
- package/dist/components/nylas-cancel-booking-form2.js +21 -2
- package/dist/components/nylas-cancel-booking-form2.js.map +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-connected-calendars.d.ts +11 -0
- package/dist/components/nylas-connected-calendars.js +8 -0
- package/dist/components/nylas-connected-calendars.js.map +1 -0
- package/dist/components/nylas-connected-calendars2.js +232 -0
- package/dist/components/nylas-connected-calendars2.js.map +1 -0
- package/dist/components/nylas-custom-booking-flow.js +1 -1
- package/dist/components/nylas-customize-booking-settings2.js +4 -4
- package/dist/components/nylas-customize-booking-settings2.js.map +1 -1
- package/dist/components/nylas-editor-tabs2.js +251 -113
- package/dist/components/nylas-editor-tabs2.js.map +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-limits2.js.map +1 -1
- package/dist/components/nylas-event-location2.js +138 -25
- package/dist/components/nylas-event-location2.js.map +1 -1
- package/dist/components/nylas-event-title2.js +1 -1
- package/dist/components/nylas-event-title2.js.map +1 -1
- 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-limit-future-bookings2.js.map +1 -1
- package/dist/components/nylas-list-configurations2.js +142 -25
- package/dist/components/nylas-list-configurations2.js.map +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-booking-notice2.js.map +1 -1
- package/dist/components/nylas-min-cancellation-notice2.js +1 -1
- package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
- package/dist/components/nylas-notification2.js +1 -1
- package/dist/components/nylas-participant-booking-calendars.d.ts +11 -0
- package/dist/components/nylas-participant-booking-calendars.js +8 -0
- package/dist/components/nylas-participant-booking-calendars.js.map +1 -0
- package/dist/components/nylas-participant-booking-calendars2.js +237 -0
- package/dist/components/nylas-participant-booking-calendars2.js.map +1 -0
- package/dist/components/nylas-participants-custom-availability2.js +18 -5
- package/dist/components/nylas-participants-custom-availability2.js.map +1 -1
- package/dist/components/nylas-provider.js +1 -1
- package/dist/components/nylas-scheduler-editor.js +210 -101
- package/dist/components/nylas-scheduler-editor.js.map +1 -1
- package/dist/components/nylas-scheduling.js +70 -52
- package/dist/components/nylas-scheduling.js.map +1 -1
- 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 +11 -11
- package/dist/components/nylas-timeslot-interval2.js.map +1 -1
- package/dist/components/nylas-timeslot-picker2.js +6 -5
- package/dist/components/nylas-timeslot-picker2.js.map +1 -1
- 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.js +1 -1
- package/dist/components/play.js +1 -1
- package/dist/components/plus-icon.d.ts +11 -0
- package/dist/components/plus-icon.js +8 -0
- package/dist/components/plus-icon.js.map +1 -0
- package/dist/components/plus.js +37 -0
- package/dist/components/plus.js.map +1 -0
- package/dist/components/radio-button-group2.js +23 -6
- package/dist/components/radio-button-group2.js.map +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/scheduler-config-store.js +2 -0
- package/dist/components/scheduler-config-store.js.map +1 -1
- package/dist/components/scheduler-store.js +42 -6
- package/dist/components/scheduler-store.js.map +1 -1
- package/dist/components/search.js +1 -1
- package/dist/components/select-dropdown2.js +12 -2
- package/dist/components/select-dropdown2.js.map +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-component.js +1 -82
- package/dist/components/textarea-component.js.map +1 -1
- package/dist/components/textarea-component2.js +89 -0
- package/dist/components/textarea-component2.js.map +1 -0
- package/dist/components/time-period-selector2.js +1 -1
- package/dist/components/toggle-switch2.js +2 -2
- package/dist/components/toggle-switch2.js.map +1 -1
- package/dist/components/toolitp-component.js +1 -1
- package/dist/components/translate.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-icon.d.ts +11 -0
- package/dist/components/zoom-icon.js +8 -0
- package/dist/components/zoom-icon.js.map +1 -0
- package/dist/components/zoom.js +37 -0
- package/dist/components/zoom.js.map +1 -0
- package/dist/esm/add-circle-icon_2.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_3.entry.js +3 -3
- package/dist/esm/button-component_4.entry.js +196 -0
- package/dist/esm/button-component_4.entry.js.map +1 -0
- package/dist/esm/calendar-agenda-fill-icon_35.entry.js +6905 -0
- package/dist/esm/calendar-agenda-fill-icon_35.entry.js.map +1 -0
- package/dist/esm/chevron-icon_3.entry.js +11 -3
- package/dist/esm/chevron-icon_3.entry.js.map +1 -1
- package/dist/esm/clock-icon_2.entry.js +1 -1
- package/dist/esm/{constants-f34b9c6e.js → constants-7ce66b44.js} +103 -2
- package/dist/esm/{constants-f34b9c6e.js.map → constants-7ce66b44.js.map} +1 -1
- package/dist/esm/copy-icon_4.entry.js +65 -0
- package/dist/esm/copy-icon_4.entry.js.map +1 -0
- package/dist/esm/document-refresh-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_4.entry.js +192 -51
- package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
- package/dist/esm/index-7cb0dd3d.js +20 -16
- package/dist/esm/index.js +1 -1
- package/dist/esm/info-icon_2.entry.js +2 -2
- package/dist/esm/input-dropdown_2.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loading-icon.entry.js +1 -1
- package/dist/esm/multi-select-dropdown.entry.js +140 -0
- package/dist/esm/multi-select-dropdown.entry.js.map +1 -0
- package/dist/esm/{nylas-api-request-a67d2997.js → nylas-api-request-4f8edff2.js} +2 -1
- package/dist/esm/nylas-api-request-4f8edff2.js.map +1 -0
- package/dist/esm/nylas-booked-event-card_10.entry.js +66 -35
- package/dist/esm/nylas-booked-event-card_10.entry.js.map +1 -1
- package/dist/esm/nylas-custom-booking-flow.entry.js +1 -1
- package/dist/esm/nylas-form-card.entry.js +1 -1
- package/dist/esm/nylas-if-state.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-mailbox-toolbar-button.entry.js +1 -1
- package/dist/esm/nylas-mailbox.entry.js +1 -1
- package/dist/esm/nylas-provider.entry.js +3 -3
- package/dist/esm/nylas-scheduler-editor.entry.js +26 -9
- package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/esm/nylas-scheduling.entry.js +3 -3
- package/dist/esm/nylas-scheduling.entry.js.map +1 -1
- 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-view-thread.entry.js +1 -1
- package/dist/esm/nylas-web-elements.js +1 -1
- package/dist/esm/play-icon_2.entry.js +2 -2
- package/dist/esm/refresh-icon.entry.js +1 -1
- package/dist/esm/{scheduler-config-store-4a50a03d.js → scheduler-config-store-9ccfba4d.js} +3 -1
- package/dist/esm/scheduler-config-store-9ccfba4d.js.map +1 -0
- package/dist/esm/{scheduler-store-f02ce045.js → scheduler-store-8a400448.js} +43 -7
- package/dist/esm/scheduler-store-8a400448.js.map +1 -0
- package/dist/esm/textarea-component.entry.js +3 -1
- package/dist/esm/textarea-component.entry.js.map +1 -1
- package/dist/esm/translate-icon.entry.js +1 -1
- package/dist/esm/warning-icon.entry.js +1 -1
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
- package/dist/nylas-web-elements/p-0161429f.entry.js +2 -0
- package/dist/nylas-web-elements/{p-33a6a75b.entry.js.map → p-0161429f.entry.js.map} +1 -1
- package/dist/nylas-web-elements/p-064c2ae5.entry.js +2 -0
- package/dist/nylas-web-elements/{p-de7b0878.entry.js → p-0aa1e433.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3f122804.entry.js → p-0bf6f818.entry.js} +2 -2
- package/dist/nylas-web-elements/p-1102df14.entry.js +2 -0
- package/dist/nylas-web-elements/{p-f1a54acf.entry.js → p-155e5ce8.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-a85408e0.entry.js → p-18d100c8.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-5231fc13.entry.js → p-1a7edf86.entry.js} +3 -3
- package/dist/nylas-web-elements/p-1d8c468f.entry.js +2 -0
- package/dist/nylas-web-elements/p-1d8c468f.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-be38a8eb.entry.js → p-1e1ae8d0.entry.js} +2 -2
- package/dist/nylas-web-elements/p-1f290858.entry.js +2 -0
- package/dist/nylas-web-elements/p-1f290858.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-eb7e8455.entry.js → p-1fbe50b1.entry.js} +2 -2
- package/dist/nylas-web-elements/p-20bbc663.js +2 -0
- package/dist/nylas-web-elements/p-20bbc663.js.map +1 -0
- package/dist/nylas-web-elements/{p-49f716ed.js → p-2270e6cf.js} +4 -4
- package/dist/nylas-web-elements/p-2270e6cf.js.map +1 -0
- package/dist/nylas-web-elements/{p-70e5cfb0.entry.js → p-22e05c7d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-554891cd.entry.js → p-26302ad0.entry.js} +2 -2
- package/dist/nylas-web-elements/p-27df8f01.entry.js +2 -0
- package/dist/nylas-web-elements/p-27df8f01.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-2b1d53fa.entry.js +8 -0
- package/dist/nylas-web-elements/p-2b1d53fa.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-6ce66add.entry.js → p-2f47205d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-28512ab6.entry.js → p-3277023d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-1a27960b.entry.js → p-3423de64.entry.js} +2 -2
- package/dist/nylas-web-elements/p-3423de64.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-b0c8021f.entry.js → p-34c747f9.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d9a91bc9.entry.js → p-359af1e3.entry.js} +2 -2
- package/dist/nylas-web-elements/p-359af1e3.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-613c070f.js → p-371b20b2.js} +2 -2
- package/dist/nylas-web-elements/p-371b20b2.js.map +1 -0
- package/dist/nylas-web-elements/{p-e9ba368f.entry.js → p-3ae38e51.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-6ef1024f.entry.js → p-3bc1289e.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-7fcecf3f.entry.js → p-3d1e8e4d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-45c37986.entry.js → p-3dae0c71.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-acadfabf.entry.js → p-3db7ab8d.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-66493463.entry.js → p-3e09b0fb.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-5c3c1888.entry.js → p-3eac9f45.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-dcc27b67.entry.js → p-4000107d.entry.js} +2 -2
- package/dist/nylas-web-elements/p-40cad9a8.entry.js +11 -0
- package/dist/nylas-web-elements/p-40cad9a8.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-445d8bb4.entry.js +11 -0
- package/dist/nylas-web-elements/p-445d8bb4.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-08d75d35.entry.js → p-47392968.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-16a3bfb2.entry.js → p-4a594ebe.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d633e735.entry.js → p-4b6995fe.entry.js} +2 -2
- package/dist/nylas-web-elements/p-4cdd4107.entry.js +2 -0
- package/dist/nylas-web-elements/{p-39fd9c90.entry.js → p-4e8c8939.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-9b68568e.entry.js → p-4e9ba325.entry.js} +2 -2
- package/dist/nylas-web-elements/p-4f55d0e5.entry.js +2 -0
- package/dist/nylas-web-elements/{p-12b83ea9.entry.js.map → p-4f55d0e5.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-9794f735.entry.js → p-524a6acc.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-6bd9c9c3.entry.js → p-533d39ce.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-e928898a.entry.js → p-5a379fb5.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-c90755ba.entry.js → p-5a68368a.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-37f41a90.entry.js → p-5b965d0d.entry.js} +2 -2
- package/dist/nylas-web-elements/p-5e1cd3c1.entry.js +2 -0
- package/dist/nylas-web-elements/p-5e1cd3c1.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-34f0d1fe.entry.js → p-5ff4e63b.entry.js} +2 -2
- package/dist/nylas-web-elements/p-62aeac5f.entry.js +2 -0
- package/dist/nylas-web-elements/p-62aeac5f.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-64d43339.entry.js +2 -0
- package/dist/nylas-web-elements/p-64d43339.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-656cf33f.entry.js +2 -0
- package/dist/nylas-web-elements/{p-cf589eab.entry.js → p-65b7a2a7.entry.js} +2 -2
- package/dist/nylas-web-elements/p-68471dbd.entry.js +8 -0
- package/dist/nylas-web-elements/p-68471dbd.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-692852d2.entry.js +2 -0
- package/dist/nylas-web-elements/p-692852d2.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-60b03f86.entry.js → p-6c8af4fb.entry.js} +2 -2
- package/dist/nylas-web-elements/p-6d410f0a.entry.js +2 -0
- package/dist/nylas-web-elements/{p-daac96cb.entry.js → p-6e50d2fd.entry.js} +3 -3
- package/dist/nylas-web-elements/p-6e8b7ce8.entry.js +2 -0
- package/dist/nylas-web-elements/p-7042eb03.entry.js +2 -0
- package/dist/nylas-web-elements/{p-958746a1.entry.js.map → p-7042eb03.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-b9fa6848.entry.js → p-7355937b.entry.js} +2 -2
- package/dist/nylas-web-elements/p-749238c6.entry.js +2 -0
- package/dist/nylas-web-elements/p-749238c6.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-76156a82.entry.js +2 -0
- package/dist/nylas-web-elements/p-79c1475e.entry.js +11 -0
- package/dist/nylas-web-elements/p-79c1475e.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-79c33cf9.entry.js +2 -0
- package/dist/nylas-web-elements/p-79c33cf9.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-052bc3b1.entry.js → p-7e08f131.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-a12f3223.entry.js → p-7e10aa6d.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-a7b19349.entry.js → p-7e53588e.entry.js} +2 -2
- package/dist/nylas-web-elements/p-83de54ae.entry.js +2 -0
- package/dist/nylas-web-elements/{p-b2d95965.entry.js → p-884b66bd.entry.js} +2 -2
- package/dist/nylas-web-elements/p-8aac762b.entry.js +2 -0
- package/dist/nylas-web-elements/p-8aac762b.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-8d74c874.js +2 -0
- package/dist/nylas-web-elements/p-8d74c874.js.map +1 -0
- package/dist/nylas-web-elements/{p-a800e7af.entry.js → p-8ddf6518.entry.js} +2 -2
- package/dist/nylas-web-elements/p-8ddf6518.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-7a95bc3f.entry.js → p-90294a76.entry.js} +2 -2
- package/dist/nylas-web-elements/p-90817d1f.entry.js +2 -0
- package/dist/nylas-web-elements/{p-f1b0120b.entry.js → p-90d32fc3.entry.js} +2 -2
- package/dist/nylas-web-elements/p-94a93ca9.entry.js +2 -0
- package/dist/nylas-web-elements/p-94a93ca9.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-95a9d2f1.entry.js +2 -0
- package/dist/nylas-web-elements/p-96746b87.entry.js +2 -0
- package/dist/nylas-web-elements/p-97026709.entry.js +2 -0
- package/dist/nylas-web-elements/{p-65097f45.entry.js → p-987042a1.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-7ce048c0.entry.js → p-9f903292.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-bd34f97d.entry.js → p-9fdbeba5.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-2a92691a.entry.js → p-a22908ba.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-091a8f00.entry.js → p-a3c76c06.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-520ffe94.entry.js → p-a63d6241.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-cf0d5ab9.entry.js → p-aa4e6e5e.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-ba5a625c.entry.js → p-ab050d5b.entry.js} +2 -2
- package/dist/nylas-web-elements/p-b2b2d351.entry.js +2 -0
- package/dist/nylas-web-elements/p-b2b2d351.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-161c9325.entry.js → p-b348aad4.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-bfe8e06b.entry.js → p-b547209f.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-e8cde784.entry.js → p-b5b051e0.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-aae7febd.entry.js → p-b7a53268.entry.js} +2 -2
- package/dist/nylas-web-elements/p-b8a9e8f4.entry.js +2 -0
- package/dist/nylas-web-elements/p-b8a9e8f4.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-385070ba.entry.js → p-bc6c9256.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-cb03e4d4.entry.js → p-be26ce19.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-8a4ac2a4.entry.js → p-bed6d217.entry.js} +2 -2
- package/dist/nylas-web-elements/p-bf4e0d2a.entry.js +2 -0
- package/dist/nylas-web-elements/p-bf4e0d2a.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-8e63b66c.entry.js → p-cb9fd100.entry.js} +2 -2
- package/dist/nylas-web-elements/p-ce14a1d5.entry.js +2 -0
- package/dist/nylas-web-elements/{p-1fa7b832.entry.js.map → p-ce14a1d5.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-44507695.entry.js → p-cee0929a.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b334d63b.entry.js → p-cffb3636.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b2aca6c4.entry.js → p-d1ab9d75.entry.js} +2 -2
- package/dist/nylas-web-elements/p-d6a19e25.entry.js +2 -0
- package/dist/nylas-web-elements/p-d6a19e25.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-f96b12de.entry.js → p-d830e428.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-8075a758.entry.js → p-d9b08dd2.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-8f843faf.entry.js → p-db73506b.entry.js} +2 -2
- package/dist/nylas-web-elements/p-dcf99ddf.entry.js +2 -0
- package/dist/nylas-web-elements/p-dcf99ddf.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-d513d2ee.entry.js → p-de2f4643.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-f2d1b1a6.entry.js.map → p-de2f4643.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-25c97a60.entry.js → p-de84d999.entry.js} +2 -2
- package/dist/nylas-web-elements/p-debf614f.entry.js +8 -0
- package/dist/nylas-web-elements/p-debf614f.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-158fe1e9.entry.js → p-dfe9b5d0.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-085950eb.entry.js → p-e5452799.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-f8653b9b.entry.js → p-e6e79d76.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b813eb5d.entry.js → p-e944aa75.entry.js} +2 -2
- package/dist/nylas-web-elements/p-ec844414.entry.js +2 -0
- package/dist/nylas-web-elements/{p-34f0d1fe.entry.js.map → p-ec844414.entry.js.map} +1 -1
- package/dist/nylas-web-elements/p-ed64716c.entry.js +2 -0
- package/dist/nylas-web-elements/p-ed64716c.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-ecaf3ae1.entry.js → p-eff175d3.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-246983ed.entry.js → p-eff774e6.entry.js} +2 -2
- package/dist/nylas-web-elements/p-f03b9d40.entry.js +2 -0
- package/dist/nylas-web-elements/p-f03b9d40.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-2f148064.entry.js → p-f13b8bd3.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-8f3b02cd.entry.js → p-f7465959.entry.js} +2 -2
- package/dist/nylas-web-elements/p-f8e8270d.entry.js +2 -0
- package/dist/nylas-web-elements/p-f8e8270d.entry.js.map +1 -0
- package/dist/types/common/constants.d.ts +17 -0
- package/dist/types/common/icons/calendar-agenda-fill.d.ts +5 -0
- package/dist/types/common/icons/calendar-agenda.d.ts +5 -0
- package/dist/types/common/icons/copy.d.ts +5 -0
- package/dist/types/common/icons/delete.d.ts +5 -0
- package/dist/types/common/icons/dragable.d.ts +5 -0
- package/dist/types/common/icons/edit.d.ts +5 -0
- package/dist/types/common/icons/eye.d.ts +5 -0
- package/dist/types/common/icons/google-meet.d.ts +5 -0
- package/dist/types/common/icons/microsof-teams.d.ts +5 -0
- package/dist/types/common/icons/plus.d.ts +5 -0
- package/dist/types/common/icons/zoom.d.ts +5 -0
- package/dist/types/common/nylas-api-request.d.ts +1 -0
- package/dist/types/common/types.d.ts +1 -0
- package/dist/types/components/design-system/checkbox-component/checkbox-component.d.ts +3 -0
- package/dist/types/components/design-system/input-component/input-component.d.ts +2 -1
- package/dist/types/components/design-system/multi-select-dropdown/multi-select-dropdown.d.ts +1 -0
- package/dist/types/components/design-system/radio-button-group/radio-button-group.d.ts +6 -1
- package/dist/types/components/design-system/select-dropdown/select-dropdown.d.ts +3 -0
- package/dist/types/components/design-system/textarea-component/textarea-component.d.ts +2 -0
- package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +1 -0
- package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +8 -6
- package/dist/types/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.d.ts +3 -2
- package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +7 -4
- package/dist/types/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.d.ts +1 -0
- package/dist/types/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.d.ts +51 -0
- package/dist/types/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.d.ts +1 -0
- package/dist/types/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.d.ts +41 -0
- package/dist/types/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.d.ts +1 -1
- package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +27 -4
- package/dist/types/components/scheduler-editor/nylas-editor-tabs/tab-contents.d.ts +2 -1
- package/dist/types/components/scheduler-editor/nylas-event-location/nylas-event-location.d.ts +7 -1
- package/dist/types/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.d.ts +13 -2
- package/dist/types/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.d.ts +43 -0
- package/dist/types/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.d.ts +4 -2
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.d.ts +11 -2
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +4 -2
- package/dist/types/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.d.ts +2 -2
- package/dist/types/components.d.ts +723 -30
- package/dist/types/connector/shared/api/scheduler-config.d.ts +1 -1
- package/dist/types/stores/scheduler-config-store.d.ts +5 -2
- package/dist/types/stores/scheduler-store.d.ts +3 -1
- package/dist/types/types/index.d.ts +8 -0
- package/package.json +4 -3
- package/dist/cjs/button-component.cjs.entry.js +0 -31
- package/dist/cjs/button-component.cjs.entry.js.map +0 -1
- package/dist/cjs/calendar-info-icon_28.cjs.entry.js +0 -2935
- package/dist/cjs/calendar-info-icon_28.cjs.entry.js.map +0 -1
- package/dist/cjs/input-component.cjs.entry.js +0 -89
- package/dist/cjs/input-component.cjs.entry.js.map +0 -1
- package/dist/cjs/nylas-api-request-a1751a40.js.map +0 -1
- package/dist/cjs/scheduler-config-store-9f19c7a9.js.map +0 -1
- package/dist/cjs/scheduler-store-0f7328f1.js.map +0 -1
- package/dist/esm/button-component.entry.js +0 -27
- package/dist/esm/button-component.entry.js.map +0 -1
- package/dist/esm/calendar-info-icon_28.entry.js +0 -2904
- package/dist/esm/calendar-info-icon_28.entry.js.map +0 -1
- package/dist/esm/input-component.entry.js +0 -85
- package/dist/esm/input-component.entry.js.map +0 -1
- package/dist/esm/nylas-api-request-a67d2997.js.map +0 -1
- package/dist/esm/scheduler-config-store-4a50a03d.js.map +0 -1
- package/dist/esm/scheduler-store-f02ce045.js.map +0 -1
- package/dist/nylas-web-elements/p-019be093.entry.js +0 -11
- package/dist/nylas-web-elements/p-019be093.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-05833164.entry.js +0 -2
- package/dist/nylas-web-elements/p-05833164.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-061d0ae2.entry.js +0 -2
- package/dist/nylas-web-elements/p-061d0ae2.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-0c31f7ca.entry.js +0 -2
- package/dist/nylas-web-elements/p-0d98c728.entry.js +0 -2
- package/dist/nylas-web-elements/p-0d98c728.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-12b83ea9.entry.js +0 -2
- package/dist/nylas-web-elements/p-16fb6243.entry.js +0 -2
- package/dist/nylas-web-elements/p-1970b6ee.entry.js +0 -2
- package/dist/nylas-web-elements/p-1a27960b.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-1fa7b832.entry.js +0 -2
- package/dist/nylas-web-elements/p-26976360.entry.js +0 -2
- package/dist/nylas-web-elements/p-26976360.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-29938263.js +0 -2
- package/dist/nylas-web-elements/p-29938263.js.map +0 -1
- package/dist/nylas-web-elements/p-33a6a75b.entry.js +0 -2
- package/dist/nylas-web-elements/p-36f4b804.entry.js +0 -2
- package/dist/nylas-web-elements/p-36f4b804.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-39160c0d.entry.js +0 -11
- package/dist/nylas-web-elements/p-39160c0d.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-3b6bd448.entry.js +0 -2
- package/dist/nylas-web-elements/p-3eeab083.entry.js +0 -2
- package/dist/nylas-web-elements/p-49f716ed.js.map +0 -1
- package/dist/nylas-web-elements/p-53a1bb82.entry.js +0 -2
- package/dist/nylas-web-elements/p-53a1bb82.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-5bed86c2.entry.js +0 -2
- package/dist/nylas-web-elements/p-5ddd0c37.entry.js +0 -2
- package/dist/nylas-web-elements/p-613c070f.js.map +0 -1
- package/dist/nylas-web-elements/p-644ff4ee.entry.js +0 -2
- package/dist/nylas-web-elements/p-644ff4ee.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-64d73008.entry.js +0 -2
- package/dist/nylas-web-elements/p-6ddb4b95.entry.js +0 -2
- package/dist/nylas-web-elements/p-6ddb4b95.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-823c8aa2.js +0 -2
- package/dist/nylas-web-elements/p-823c8aa2.js.map +0 -1
- package/dist/nylas-web-elements/p-83444c0a.entry.js +0 -2
- package/dist/nylas-web-elements/p-83444c0a.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-8506a8d4.entry.js +0 -11
- package/dist/nylas-web-elements/p-8506a8d4.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-926dd201.entry.js +0 -2
- package/dist/nylas-web-elements/p-9283504a.entry.js +0 -2
- package/dist/nylas-web-elements/p-9283504a.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-958746a1.entry.js +0 -2
- package/dist/nylas-web-elements/p-9bb41364.entry.js +0 -2
- package/dist/nylas-web-elements/p-9bb41364.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-a800e7af.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-a8678862.entry.js +0 -2
- package/dist/nylas-web-elements/p-aac962c7.entry.js +0 -2
- package/dist/nylas-web-elements/p-aac962c7.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-b4d09fcf.entry.js +0 -2
- package/dist/nylas-web-elements/p-b4d09fcf.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-b9559f06.entry.js +0 -2
- package/dist/nylas-web-elements/p-b9559f06.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-bab1d562.entry.js +0 -2
- package/dist/nylas-web-elements/p-bab1d562.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-c18c15d0.entry.js +0 -2
- package/dist/nylas-web-elements/p-c1ff6499.entry.js +0 -2
- package/dist/nylas-web-elements/p-c1ff6499.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-d5d67115.entry.js +0 -2
- package/dist/nylas-web-elements/p-d5d67115.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-d9a91bc9.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-ea12997b.entry.js +0 -2
- package/dist/nylas-web-elements/p-f2d1b1a6.entry.js +0 -2
- package/dist/nylas-web-elements/p-f6fafe86.entry.js +0 -2
- package/dist/nylas-web-elements/p-f6fafe86.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-ffce3a49.entry.js +0 -2
- package/dist/nylas-web-elements/p-ffce3a49.entry.js.map +0 -1
- /package/dist/nylas-web-elements/{p-08d75d35.entry.js.map → p-064c2ae5.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5bed86c2.entry.js.map → p-0aa1e433.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3f122804.entry.js.map → p-0bf6f818.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-926dd201.entry.js.map → p-1102df14.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a7b19349.entry.js.map → p-155e5ce8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a85408e0.entry.js.map → p-18d100c8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5231fc13.entry.js.map → p-1a7edf86.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-554891cd.entry.js.map → p-1e1ae8d0.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-65097f45.entry.js.map → p-1fbe50b1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-70e5cfb0.entry.js.map → p-22e05c7d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-be38a8eb.entry.js.map → p-26302ad0.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2a92691a.entry.js.map → p-2f47205d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-085950eb.entry.js.map → p-3277023d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-64d73008.entry.js.map → p-34c747f9.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-45c37986.entry.js.map → p-3ae38e51.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-0c31f7ca.entry.js.map → p-3bc1289e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5ddd0c37.entry.js.map → p-3d1e8e4d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e9ba368f.entry.js.map → p-3dae0c71.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-acadfabf.entry.js.map → p-3db7ab8d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-28512ab6.entry.js.map → p-3e09b0fb.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-158fe1e9.entry.js.map → p-3eac9f45.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d513d2ee.entry.js.map → p-4000107d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3b6bd448.entry.js.map → p-47392968.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-16a3bfb2.entry.js.map → p-4a594ebe.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c90755ba.entry.js.map → p-4b6995fe.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b2d95965.entry.js.map → p-4cdd4107.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-25c97a60.entry.js.map → p-4e8c8939.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6bd9c9c3.entry.js.map → p-4e9ba325.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6ce66add.entry.js.map → p-524a6acc.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9b68568e.entry.js.map → p-533d39ce.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7a95bc3f.entry.js.map → p-5a379fb5.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-cb03e4d4.entry.js.map → p-5a68368a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-1970b6ee.entry.js.map → p-5b965d0d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-091a8f00.entry.js.map → p-5ff4e63b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-37f41a90.entry.js.map → p-656cf33f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-246983ed.entry.js.map → p-65b7a2a7.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-60b03f86.entry.js.map → p-6c8af4fb.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8e63b66c.entry.js.map → p-6d410f0a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-daac96cb.entry.js.map → p-6e50d2fd.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c18c15d0.entry.js.map → p-6e8b7ce8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b9fa6848.entry.js.map → p-7355937b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a8678862.entry.js.map → p-76156a82.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-052bc3b1.entry.js.map → p-7e08f131.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2f148064.entry.js.map → p-7e10aa6d.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b2aca6c4.entry.js.map → p-7e53588e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-aae7febd.entry.js.map → p-83de54ae.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-de7b0878.entry.js.map → p-884b66bd.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e928898a.entry.js.map → p-90294a76.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3eeab083.entry.js.map → p-90817d1f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f1b0120b.entry.js.map → p-90d32fc3.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-dcc27b67.entry.js.map → p-95a9d2f1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6ef1024f.entry.js.map → p-96746b87.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7fcecf3f.entry.js.map → p-97026709.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-eb7e8455.entry.js.map → p-987042a1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-44507695.entry.js.map → p-9f903292.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7ce048c0.entry.js.map → p-9fdbeba5.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9794f735.entry.js.map → p-a22908ba.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-16fb6243.entry.js.map → p-a3c76c06.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-520ffe94.entry.js.map → p-a63d6241.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-cf0d5ab9.entry.js.map → p-aa4e6e5e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-ba5a625c.entry.js.map → p-ab050d5b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-161c9325.entry.js.map → p-b348aad4.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5c3c1888.entry.js.map → p-b547209f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e8cde784.entry.js.map → p-b5b051e0.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b0c8021f.entry.js.map → p-b7a53268.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-385070ba.entry.js.map → p-bc6c9256.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d633e735.entry.js.map → p-be26ce19.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8a4ac2a4.entry.js.map → p-bed6d217.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8f3b02cd.entry.js.map → p-cb9fd100.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-bd34f97d.entry.js.map → p-cee0929a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b334d63b.entry.js.map → p-cffb3636.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f1a54acf.entry.js.map → p-d1ab9d75.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f96b12de.entry.js.map → p-d830e428.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8075a758.entry.js.map → p-d9b08dd2.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-39fd9c90.entry.js.map → p-db73506b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8f843faf.entry.js.map → p-de84d999.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-bfe8e06b.entry.js.map → p-dfe9b5d0.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-66493463.entry.js.map → p-e5452799.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f8653b9b.entry.js.map → p-e6e79d76.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b813eb5d.entry.js.map → p-e944aa75.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a12f3223.entry.js.map → p-eff175d3.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-cf589eab.entry.js.map → p-eff774e6.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-ecaf3ae1.entry.js.map → p-f13b8bd3.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-ea12997b.entry.js.map → p-f7465959.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NylasSchedulerConfigAPIConnector","constructor","nylasApiRequest","nylasSchedulerConfigStore","this","currentUser","console","warn","getCalendars","dataResponse","message","response","error","request","method","path","isNylasErrorResponse","state","calendars","data","getConfigurationById","configurationId","forceFetch","existingConfig","configurations","find","c","id","selectedConfiguration","map","getConfigurations","cursor","limit","listConfigurationsNextCursor","next_cursor","createConfiguration","configuration","body","updateConfiguration","deleteConfiguration","filter","resetSelectedConfiguration","NylasSchedulerConfigConnector","init","debug","schedulerConfigStore","schedulerConfig","_schedulerConfigConnector","resetStores","reset","logout","LocalStorage","get","key","Promise","res","record","window","localStorage","getItem","JSON","parse","remove","removeItem","set","value","setItem","stringify","PKCE_KEY","GRANT_KEY","USER_KEY","Storage","local","store","setPKCE","encrypt","Buffer","from","toString","getPKCE","pkce","b","removePKCE","setGrant","resp","multiAccount","grant_id","removeGrant","getGrant","grant","setUserToken","token","userTokens","getUserTokens","userToken","t","sub","newTokens","newUserTokens","getUserToken","tokens","removeUserTokens","removeUserToken","clearSession","forEach","IndexedDBStorage","databaseName","storeName","self","resolve","reject","openDatabase","then","db","transaction","objectStore","getRequest","onsuccess","result","onerror","oncomplete","close","indexedDB","open","onupgradeneeded","event","target","createObjectStore","deleteRequest","delete","setRequest","put","ERROR","WINDOW","root","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","process","versions","node","global","COMMON_JS","JS_SHA256_NO_COMMON_JS","module","exports","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","ArrayBuffer","HEX_CHARS","split","EXTRA","SHIFT","K","OUTPUT_TYPES","blocks","Array","isArray","obj","Object","prototype","call","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","isView","buffer","createOutputMethod","outputType","is224","Sha256","update","createMethod","nodeWrap","create","i","length","type","crypto","eval","algorithm","nodeMethod","createHash","digest","undefined","Error","Uint8Array","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h1","h2","h3","h4","h5","h6","h7","block","start","bytes","hBytes","finalized","hashed","first","notString","code","index","charCodeAt","lastByteIndex","hash","finalize","a","d","e","f","g","h","j","s0","s1","maj","t1","t2","ch","ab","da","cd","bc","hex","arr","push","array","arrayBuffer","dataView","DataView","setUint32","oKeyPad","iKeyPad","inner","innerHash","sha256","sha224","hmac","getRandomValues","rnds8","rng","bind","msCrypto","REGEX","validate","uuid","test","byteToHex","substr","offset","arguments","toLowerCase","TypeError","v4","options","buf","rnds","random","async","getBytes","stream","onChunk","reader","getReader","read","done","getLines","onLine","position","fieldLength","discardTrailingNewline","concat","bufLength","lineStart","lineEnd","subarray","getMessages","onId","onRetry","onMessage","newMessage","decoder","TextDecoder","line","field","decode","valueOffset","retry","parseInt","isNaN","__rest","s","p","hasOwnProperty","indexOf","getOwnPropertySymbols","propertyIsEnumerable","EventStreamContentType","DefaultRetryInterval","LastEventId","fetchEventSource","input","_a","signal","inputSignal","headers","inputHeaders","onopen","inputOnOpen","onmessage","onclose","openWhenHidden","fetch","inputFetch","rest","assign","accept","curRequestController","onVisibilityChange","abort","document","hidden","addEventListener","retryInterval","retryTimer","dispose","removeEventListener","clearTimeout","defaultOnOpen","AbortController","err","aborted","interval","setTimeout","innerErr","contentType","startsWith","Base64EncodeUrl","str","replace","getTimestamp","Math","floor","Date","now","name","r","atob","String","n","o","charAt","fromCharCode","decodeURIComponent","toUpperCase","header","NylasSessions","clientId","redirectUri","accessType","domain","versioned","hosted","loginId","config","versionedPart","substring","includes","sw","storage","codeExchange","validateAccessToken","access_token","responseData","json","validateIDToken","id_token","status","getDomain","auth","location","origin","hostedSetCodeChallenge","url","generateAuthURL","popup","popUp","codeChallenge","getCodeChallege","provider","loginHint","includeGrantScopes","scope","join","prompt","metadata","generateReauthURL","scopes","email","generateCodeChallenge","code_verifier","params","URLSearchParams","search","codeChallengeHashed","codeChallengeEncrypted","isLoggedIn","isMultiAccount","profile","getProfile","payload","detail","dispatchEvent","CustomEvent","tok","getProfiles","removeProfile","authIMAP","code_challenge","imap_username","username","imap_password","password","imap_host","hostIMAP","imap_port","portIMAP","smtp_host","hostSMTP","smtp_port","portSMTP","redirect_uri","public_application_id","access_type","code_challenge_method","Headers","authEWS","detectEmail","applicationInfo","getAvailableProviders","providers","onLoginSuccess","callback","onLogoutSuccess","onLoginFail","onTokenRefreshSuccess","onTokenRefreshFail","onSessionExpired","error_description","error_code","history","pushState","title","pathname","opener","client_id","grant_type","exchangeResponse","handleCodeExchangeResponse","valid","tokenExchange","refresh_token","expires_in","isValidToken","isValid","user","jwtDecode","width","height","left","screenX","outerWidth","top","screenY","outerHeight","popupURL","externalPopup","timer","setInterval","closed","clearInterval","currentUrl","href","success","reload","getAccessToken","grantResponse","timeLeft","sse","parseJSON","profileCount","profiles","isPrototypeOf","Authorization","append","has","isAuthenticated","isAuthenticatedResponse","fetchRequest","URL","accessToken","mode","referrer","addAPIKey","aud","exp","email_verified","iat","iss","l","Symbol","for","q","u","v","w","x","y","z","iterator","A","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","D","E","props","context","refs","updater","isReactComponent","setState","forceUpdate","F","G","H","isPureReactComponent","I","J","current","L","ref","__self","__source","M","k","children","m","defaultProps","$$typeof","_owner","N","O","escape","P","Q","R","next","keys","S","T","_status","_result","default","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","react_production_min","Children","apply","count","toArray","only","Component","Fragment","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createContext","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","_context","createElement","createFactory","createRef","render","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","version","LoginRequired","authenticationUrl","class","onClick","preventDefault","authUrl","ExpressFlow","organizer","participants","is_organizer","slot","defaultBookingCalendar","nylasSchedulerEditorCss","NylasSchedulerEditorStyle0","NylasSchedulerEditor","handleSchedulerConfigCloseClicked","_event","schedulerConfigCloseClicked","emit","host","defaultPrevented","connectedCallback","componentWillLoad","filteredAdditionalParticipants","additionalParticipants","participant","filteredCalendars","calendar","stores","CreateNylasSchedulerConfigStore","defaultSchedulerConfigState","conferenceProviders","hideEditorTabs","nylasSessionsConfig","nylasSession","nylasSchedulerConfigConnector","loggedIn","loggedInHandler","loggedOut","NylasIdentityRequestWrapper","defaultAuthArgs","setDefaultAuthArgs","baseProvider","NylasBaseProvider","automaticComponentRegistration","eventOverrides","getStore","initEvent","onChange","componentDidLoad","componentDisconnected","configurationIdChanged","newConfigurationId","schedulerConnector","registerComponentHandler","registerComponent","unregisterComponentHandler","unregisterComponent","Host","part","action"],"sources":["src/connector/shared/api/scheduler-config.ts","src/connector/nylas-scheduler-config-connector/index.ts","../nylas-identity/esm/client/localStorage.js","../nylas-identity/esm/client/store.js","../nylas-identity/esm/client/indexedDB.js","../../node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256/src/sha256.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/.pnpm/@microsoft+fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/parse.js","../../node_modules/.pnpm/@microsoft+fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/fetch.js","../nylas-identity/esm/helpers/index.js","../../node_modules/.pnpm/jwt-decode@3.1.2/node_modules/jwt-decode/build/jwt-decode.esm.js","../nylas-identity/esm/app.js","../../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.production.min.js","src/components/scheduler-editor/nylas-scheduler-editor/LoginRequired.tsx","src/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.tsx","src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.scss?tag=nylas-scheduler-editor&encapsulation=shadow","src/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.tsx"],"sourcesContent":["import { NylasApiRequest } from '@/common/nylas-api-request';\nimport { NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { dataResponse } from '@/utils/utils';\nimport { Calendar, Configuration, NylasResponse, isNylasErrorResponse } from '@nylas/core';\n\ntype NylasSchedulerConfigAPIConnectorOptions = {\n nylasApiRequest?: NylasApiRequest;\n nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n};\n\n/**\n * Nylas Scheduler Config API Connector\n * This class is responsible for making API requests to the Nylas API for Scheduler Configurations.\n */\nexport class NylasSchedulerConfigAPIConnector {\n private nylasApiRequest?: NylasApiRequest;\n private nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n\n constructor({ nylasApiRequest, nylasSchedulerConfigStore }: NylasSchedulerConfigAPIConnectorOptions) {\n this.nylasApiRequest = nylasApiRequest;\n this.nylasSchedulerConfigStore = nylasSchedulerConfigStore;\n }\n\n /**\n * Get the current user.\n * @returns The current user or null if the request is not initialized.\n */\n public async currentUser() {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return null;\n }\n\n return this.nylasApiRequest.currentUser();\n }\n\n /**\n * Get the current user's calendars.\n * @returns The current user's calendars or an error if the request is not initialized.\n */\n public async getCalendars() {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching calendars: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Calendar[]>>({\n method: 'GET',\n path: `calendars`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching calendars: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching calendars: ' + response.error?.message,\n });\n }\n\n // Set the new calendars as the current calendars\n this.nylasSchedulerConfigStore.state.calendars = response.data;\n\n return dataResponse(response.data);\n }\n\n /**\n * Get a configuration by its ID.\n * @param configurationId The ID of the configuration to fetch.\n */\n public async getConfigurationById(configurationId: string, forceFetch: boolean = false) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching configuration: Nylas API Request is not initialized',\n });\n }\n\n // If the configuration is already in the store, return it\n if (!forceFetch) {\n const existingConfig = this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configurationId);\n if (existingConfig) {\n this.nylasSchedulerConfigStore.state.selectedConfiguration = existingConfig;\n return dataResponse(existingConfig);\n }\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'GET',\n path: `scheduling/configurations/${configurationId}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // If the configuration was updated, update the list of configurations\n // If it doesn't exist, add it to the list\n if (this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configurationId)) {\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.map(c => (c.id === configurationId ? response.data : c));\n } else {\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Get all configurations.\n * @returns The list of configurations or an error if the request is not initialized.\n */\n public async getConfigurations(cursor?: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error fetching configurations: Nylas API Request is not initialized',\n });\n }\n const limit = 50;\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration[]>>({\n method: 'GET',\n path: `scheduling/configurations?limit=${limit}${cursor ? `&page_token=${cursor}` : ''}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error fetching configurations: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error fetching configurations: ' + response.error?.message,\n });\n }\n\n // Set the configurations in the store\n this.nylasSchedulerConfigStore.state.configurations = response.data;\n this.nylasSchedulerConfigStore.state.listConfigurationsNextCursor = response.next_cursor || null;\n return dataResponse(response.data);\n }\n\n /**\n * Create a new configuration.\n * @param configuration The configuration to create.\n * @returns The new configuration or an error if the request is not initialized.\n */\n public async createConfiguration(configuration: Omit<Partial<Configuration>, 'id'>) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error creating configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'POST',\n path: `scheduling/configurations`,\n body: configuration,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error creating configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error creating configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // Add the new configuration to the list of configurations\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n\n return dataResponse(response.data);\n }\n\n /**\n * Update an existing configuration.\n * @param configuration The configuration to update.\n * @returns The updated configuration or an error if the request is not initialized.\n */\n public async updateConfiguration(configuration: Partial<Configuration>) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error updating configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'PUT',\n path: `scheduling/configurations/${configuration.id}`,\n body: configuration,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error updating configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error updating configuration: ' + response.error?.message,\n });\n }\n\n // Set the new configuration as the current configuration\n this.nylasSchedulerConfigStore.state.selectedConfiguration = response.data;\n\n // If the configuration was updated, update the list of configurations\n // If it doesn't exist, add it to the list\n if (this.nylasSchedulerConfigStore.state.configurations.find(c => c.id === configuration.id)) {\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.map(c => (c.id === configuration.id ? response.data : c));\n } else {\n this.nylasSchedulerConfigStore.state.configurations = [...this.nylasSchedulerConfigStore.state.configurations, response.data];\n }\n\n return dataResponse(response.data);\n }\n\n /**\n * Delete a configuration by its ID.\n * @param configurationId The ID of the configuration to delete.\n * @returns The deleted configuration or an error if the request is not initialized.\n */\n public async deleteConfiguration(configurationId: string) {\n if (!this.nylasApiRequest) {\n console.warn('Nylas API Request is not initialized');\n return dataResponse(null, {\n message: 'Error deleting configuration: Nylas API Request is not initialized',\n });\n }\n\n const [response, error] = await this.nylasApiRequest.request<NylasResponse<Configuration>>({\n method: 'DELETE',\n path: `scheduling/configurations/${configurationId}`,\n });\n\n if (error) {\n return dataResponse(null, {\n message: 'Error deleting configuration: ' + error.message,\n });\n }\n\n if (isNylasErrorResponse(response)) {\n return dataResponse(null, {\n message: 'Error deleting configuration: ' + response.error?.message,\n });\n }\n\n // Remove the configuration from the list\n this.nylasSchedulerConfigStore.state.configurations = this.nylasSchedulerConfigStore.state.configurations.filter(c => c.id !== configurationId);\n\n // If the deleted configuration was the current configuration, reset it\n if (this.nylasSchedulerConfigStore.state.selectedConfiguration?.id === configurationId) {\n this.nylasSchedulerConfigStore.resetSelectedConfiguration();\n }\n\n return dataResponse(response.data);\n }\n}\n","import { NylasApiRequest } from '@/common/nylas-api-request';\nimport { NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConfigAPIConnector } from '../shared/api/scheduler-config';\n\ntype NylasSchedulerConfigConnectorOptions = {\n nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n nylasApiRequest?: NylasApiRequest;\n};\n\nexport class NylasSchedulerConfigConnector {\n public nylasApiRequest?: NylasApiRequest;\n public nylasSchedulerConfigStore: NylasSchedulerConfigStoreType;\n\n private _schedulerConfigConnector: NylasSchedulerConfigAPIConnector | undefined;\n\n constructor({ nylasApiRequest, nylasSchedulerConfigStore }: NylasSchedulerConfigConnectorOptions) {\n this.nylasApiRequest = nylasApiRequest;\n this.nylasSchedulerConfigStore = nylasSchedulerConfigStore;\n }\n\n public init() {\n debug('NylasSchedulerConfigConnector init');\n }\n\n public get schedulerConfigStore() {\n return this.nylasSchedulerConfigStore;\n }\n\n public get schedulerConfig() {\n if (this._schedulerConfigConnector) {\n return this._schedulerConfigConnector;\n }\n\n this._schedulerConfigConnector = new NylasSchedulerConfigAPIConnector({\n nylasApiRequest: this.nylasApiRequest,\n nylasSchedulerConfigStore: this.nylasSchedulerConfigStore,\n });\n return this._schedulerConfigConnector;\n }\n\n public resetStores() {\n debug('NylasSchedulerConfigConnector resetStores');\n this.nylasSchedulerConfigStore.reset();\n }\n\n public async logout() {\n debug('NylasSchedulerConfigConnector logout');\n this.resetStores();\n }\n}\n\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConfigConnectorPublicMethods = PublicMethods<NylasSchedulerConfigConnector>;\n","class LocalStorage {\n get(key) {\n return new Promise((res) => {\n const record = window.localStorage.getItem(key);\n if (!record) {\n res(null);\n }\n else {\n res(JSON.parse(record));\n }\n });\n }\n async remove(key) {\n window.localStorage.removeItem(key);\n return new Promise((res) => {\n res(null);\n });\n }\n set(key, value) {\n window.localStorage.setItem(key, JSON.stringify(value));\n return new Promise((res) => {\n res(null);\n });\n }\n}\nexport default LocalStorage;\n","import { Buffer } from \"buffer\";\nimport local from \"./localStorage\";\nconst PKCE_KEY = \"pkce\";\nconst GRANT_KEY = \"grant\";\nconst USER_KEY = \"user\";\nexport class Storage {\n Storage = new local();\n constructor(store) {\n if (store) {\n this.Storage = store;\n return;\n }\n }\n setPKCE(value) {\n const encrypt = Buffer.from(value);\n this.Storage.set(PKCE_KEY, encrypt.toString(\"base64\"));\n }\n async getPKCE() {\n try {\n const pkce = await this.Storage.get(PKCE_KEY);\n if (pkce) {\n const b = Buffer.from(pkce, \"base64\");\n return b.toString(\"utf8\");\n }\n }\n catch (error) {\n return null;\n }\n return null;\n }\n removePKCE() {\n this.Storage.remove(PKCE_KEY);\n }\n setGrant(resp, multiAccount = false) {\n const { grant_id } = resp;\n this.Storage.set(`${GRANT_KEY}${multiAccount ? \"-\" + grant_id : \"\"}`, resp);\n }\n removeGrant(id, multiAccount = false) {\n this.Storage.remove(`${GRANT_KEY}${multiAccount ? \"-\" + id : \"\"}`);\n }\n async getGrant(id, multiAccount = false) {\n const grant = await this.Storage.get(`${GRANT_KEY}${multiAccount ? \"-\" + id : \"\"}`);\n if (grant) {\n return grant;\n }\n return null;\n }\n // setUserToken is used to store the IDToken in storage\n async setUserToken(token) {\n const userTokens = await this.getUserTokens();\n // If userTokens exist, check if the token is already in the array\n if (userTokens) {\n const userToken = userTokens.find((t) => t.sub === token.sub);\n // If the token is not in the array, add it\n if (!userToken) {\n const newTokens = [...userTokens, token];\n this.Storage.set(USER_KEY, newTokens);\n }\n else {\n // If the token is in the array, update it\n const newUserTokens = userTokens.map((t) => {\n if (t.sub === token.sub) {\n t = token;\n }\n return t;\n });\n this.Storage.set(USER_KEY, newUserTokens);\n }\n }\n else {\n // If userTokens do not exist, create a new array with the token\n this.Storage.set(USER_KEY, [token]);\n }\n }\n // getUserToken is used to retrieve a specific IDToken from storage\n async getUserToken(id = \"\") {\n const tokens = await this.Storage.get(USER_KEY);\n if (tokens) {\n if (id === \"\") {\n // If no id is passed, return the first token\n return tokens[0];\n }\n // Find the token with the matching sub\n const userToken = tokens.find((token) => token.sub === id);\n return userToken;\n }\n return null;\n }\n // getUserTokens is used to retrieve all IDTokens from storage\n async getUserTokens() {\n const tokens = await this.Storage.get(USER_KEY);\n if (tokens) {\n return tokens;\n }\n return null;\n }\n // removeUserTokens is used to remove all IDTokens from storage\n removeUserTokens() {\n this.Storage.remove(USER_KEY);\n }\n // removeUserToken is used to remove a specific IDToken from storage\n async removeUserToken(id) {\n const userTokens = await this.getUserTokens();\n // Filter out the token with the matching sub\n const tokens = userTokens?.filter((token) => token.sub !== id);\n // If there are tokens left, store them\n this.Storage.set(USER_KEY, tokens);\n }\n async clearSession() {\n const tokens = await this.getUserTokens();\n tokens?.forEach((token) => {\n this.removeGrant(token.sub);\n });\n this.removePKCE();\n this.removeUserTokens();\n }\n}\n","class IndexedDBStorage {\n databaseName = \"identity-db\";\n storeName = \"identity\";\n get(key) {\n const self = this;\n return new Promise((resolve, reject) => {\n self.openDatabase().then(function (db) {\n const transaction = db.transaction(self.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(self.storeName);\n const getRequest = objectStore.get(key);\n getRequest.onsuccess = () => {\n resolve(getRequest.result);\n };\n getRequest.onerror = () => {\n reject(getRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n });\n });\n }\n async remove(key) {\n const self = this;\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.databaseName);\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n db.createObjectStore(self.storeName);\n };\n request.onerror = () => {\n reject(request.error);\n };\n request.onsuccess = (event) => {\n const db = event.target.result;\n const transaction = db.transaction(this.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(this.storeName);\n const deleteRequest = objectStore.delete(key);\n deleteRequest.onsuccess = () => {\n resolve(null);\n };\n deleteRequest.onerror = () => {\n reject(deleteRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n };\n });\n }\n set(key, value) {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.databaseName);\n request.onerror = () => {\n reject(request.error);\n };\n request.onupgradeneeded = (event) => {\n const db = event.target.result;\n db.createObjectStore(this.storeName);\n };\n request.onsuccess = (event) => {\n const db = event.target.result;\n const transaction = db.transaction(this.storeName, \"readwrite\");\n const objectStore = transaction.objectStore(this.storeName);\n const setRequest = objectStore.put(value, key);\n setRequest.onsuccess = () => {\n resolve(value);\n };\n setRequest.onerror = () => {\n reject(setRequest.error);\n };\n transaction.oncomplete = () => {\n db.close();\n };\n };\n });\n }\n openDatabase() {\n const self = this;\n return new Promise(function (resolve, reject) {\n const request = indexedDB.open(self.databaseName, 2);\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n db.createObjectStore(self.storeName);\n };\n request.onsuccess = function (event) {\n resolve(event.target.result);\n };\n request.onerror = function (event) {\n reject(event.error);\n };\n });\n }\n}\nexport default IndexedDBStorage;\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","export async function getBytes(stream, onChunk) {\r\n const reader = stream.getReader();\r\n let result;\r\n while (!(result = await reader.read()).done) {\r\n onChunk(result.value);\r\n }\r\n}\r\nexport function getLines(onLine) {\r\n let buffer;\r\n let position;\r\n let fieldLength;\r\n let discardTrailingNewline = false;\r\n return function onChunk(arr) {\r\n if (buffer === undefined) {\r\n buffer = arr;\r\n position = 0;\r\n fieldLength = -1;\r\n }\r\n else {\r\n buffer = concat(buffer, arr);\r\n }\r\n const bufLength = buffer.length;\r\n let lineStart = 0;\r\n while (position < bufLength) {\r\n if (discardTrailingNewline) {\r\n if (buffer[position] === 10) {\r\n lineStart = ++position;\r\n }\r\n discardTrailingNewline = false;\r\n }\r\n let lineEnd = -1;\r\n for (; position < bufLength && lineEnd === -1; ++position) {\r\n switch (buffer[position]) {\r\n case 58:\r\n if (fieldLength === -1) {\r\n fieldLength = position - lineStart;\r\n }\r\n break;\r\n case 13:\r\n discardTrailingNewline = true;\r\n case 10:\r\n lineEnd = position;\r\n break;\r\n }\r\n }\r\n if (lineEnd === -1) {\r\n break;\r\n }\r\n onLine(buffer.subarray(lineStart, lineEnd), fieldLength);\r\n lineStart = position;\r\n fieldLength = -1;\r\n }\r\n if (lineStart === bufLength) {\r\n buffer = undefined;\r\n }\r\n else if (lineStart !== 0) {\r\n buffer = buffer.subarray(lineStart);\r\n position -= lineStart;\r\n }\r\n };\r\n}\r\nexport function getMessages(onId, onRetry, onMessage) {\r\n let message = newMessage();\r\n const decoder = new TextDecoder();\r\n return function onLine(line, fieldLength) {\r\n if (line.length === 0) {\r\n onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);\r\n message = newMessage();\r\n }\r\n else if (fieldLength > 0) {\r\n const field = decoder.decode(line.subarray(0, fieldLength));\r\n const valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);\r\n const value = decoder.decode(line.subarray(valueOffset));\r\n switch (field) {\r\n case 'data':\r\n message.data = message.data\r\n ? message.data + '\\n' + value\r\n : value;\r\n break;\r\n case 'event':\r\n message.event = value;\r\n break;\r\n case 'id':\r\n onId(message.id = value);\r\n break;\r\n case 'retry':\r\n const retry = parseInt(value, 10);\r\n if (!isNaN(retry)) {\r\n onRetry(message.retry = retry);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction concat(a, b) {\r\n const res = new Uint8Array(a.length + b.length);\r\n res.set(a);\r\n res.set(b, a.length);\r\n return res;\r\n}\r\nfunction newMessage() {\r\n return {\r\n data: '',\r\n event: '',\r\n id: '',\r\n retry: undefined,\r\n };\r\n}\r\n//# sourceMappingURL=parse.js.map","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport { getBytes, getLines, getMessages } from './parse';\r\nexport const EventStreamContentType = 'text/event-stream';\r\nconst DefaultRetryInterval = 1000;\r\nconst LastEventId = 'last-event-id';\r\nexport function fetchEventSource(input, _a) {\r\n var { signal: inputSignal, headers: inputHeaders, onopen: inputOnOpen, onmessage, onclose, onerror, openWhenHidden, fetch: inputFetch } = _a, rest = __rest(_a, [\"signal\", \"headers\", \"onopen\", \"onmessage\", \"onclose\", \"onerror\", \"openWhenHidden\", \"fetch\"]);\r\n return new Promise((resolve, reject) => {\r\n const headers = Object.assign({}, inputHeaders);\r\n if (!headers.accept) {\r\n headers.accept = EventStreamContentType;\r\n }\r\n let curRequestController;\r\n function onVisibilityChange() {\r\n curRequestController.abort();\r\n if (!document.hidden) {\r\n create();\r\n }\r\n }\r\n if (!openWhenHidden) {\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n }\r\n let retryInterval = DefaultRetryInterval;\r\n let retryTimer = 0;\r\n function dispose() {\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n window.clearTimeout(retryTimer);\r\n curRequestController.abort();\r\n }\r\n inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener('abort', () => {\r\n dispose();\r\n resolve();\r\n });\r\n const fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;\r\n const onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;\r\n async function create() {\r\n var _a;\r\n curRequestController = new AbortController();\r\n try {\r\n const response = await fetch(input, Object.assign(Object.assign({}, rest), { headers, signal: curRequestController.signal }));\r\n await onopen(response);\r\n await getBytes(response.body, getLines(getMessages(id => {\r\n if (id) {\r\n headers[LastEventId] = id;\r\n }\r\n else {\r\n delete headers[LastEventId];\r\n }\r\n }, retry => {\r\n retryInterval = retry;\r\n }, onmessage)));\r\n onclose === null || onclose === void 0 ? void 0 : onclose();\r\n dispose();\r\n resolve();\r\n }\r\n catch (err) {\r\n if (!curRequestController.signal.aborted) {\r\n try {\r\n const interval = (_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _a !== void 0 ? _a : retryInterval;\r\n window.clearTimeout(retryTimer);\r\n retryTimer = window.setTimeout(create, interval);\r\n }\r\n catch (innerErr) {\r\n dispose();\r\n reject(innerErr);\r\n }\r\n }\r\n }\r\n }\r\n create();\r\n });\r\n}\r\nfunction defaultOnOpen(response) {\r\n const contentType = response.headers.get('content-type');\r\n if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {\r\n throw new Error(`Expected content-type to be ${EventStreamContentType}, Actual: ${contentType}`);\r\n }\r\n}\r\n//# sourceMappingURL=fetch.js.map","export function Base64EncodeUrl(str) {\n return str.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nexport function Base64DecodeUrl(str) {\n str = (str + \"===\").slice(0, str.length + (str.length % 4));\n return str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n}\nexport function getTimestamp() {\n return Math.floor(Date.now() / 1000);\n}\nexport async function sha256(message) {\n // encode as UTF-8\n const msgBuffer = new TextEncoder().encode(message);\n // hash the message\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgBuffer);\n // convert ArrayBuffer to Array\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n // convert bytes to hex string\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return hashHex;\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import { Storage } from \"./client/store\";\nimport IndexedDBStorage from \"./client/indexedDB\";\nimport { sha256 } from \"js-sha256\";\nimport { Buffer } from \"buffer\";\nimport { v4 as uuid } from \"uuid\";\nimport { fetchEventSource, } from \"@microsoft/fetch-event-source\";\nimport { Base64EncodeUrl, getTimestamp } from \"./helpers\";\nimport jwtDecode from \"jwt-decode\";\nexport class NylasSessions {\n clientId;\n redirectUri;\n accessType = \"online\";\n domain = \"http://api.nylas.com\";\n versioned = false;\n Storage;\n hosted = false;\n multiAccount = false;\n loginId = \"\";\n constructor(config) {\n this.clientId = config.clientId;\n this.redirectUri = config.redirectUri;\n if (config.domain) {\n this.domain = config.domain;\n const versionedPart = this.domain.substring(this.domain.length - 3);\n if (versionedPart.includes(\"/v\")) {\n this.versioned = true;\n }\n }\n if (config.multiAccount) {\n this.multiAccount = config.multiAccount;\n }\n if (config.sw) {\n const storage = new IndexedDBStorage();\n this.Storage = new Storage(storage);\n }\n else {\n this.Storage = new Storage();\n }\n if (config.accessType) {\n this.accessType = config.accessType;\n }\n if (config.loginId) {\n this.loginId = config.loginId;\n }\n if (config.hosted) {\n this.hosted = config.hosted;\n }\n this.codeExchange(null);\n // check();\n // registerServiceWorker();\n }\n // Validates access token\n async validateAccessToken(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const { access_token } = grant;\n try {\n const response = await fetch(`${this.domain}/connect/tokeninfo?access_token=${access_token}`, {\n method: \"GET\",\n });\n const responseData = await response.json();\n if (!responseData.data) {\n return false;\n }\n return true;\n }\n catch (error) {\n return false;\n }\n }\n // Validates id token\n async validateIDToken(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const { id_token } = grant;\n try {\n const response = await fetch(`${this.domain}/connect/tokeninfo?id_token=${id_token}`, {\n method: \"GET\",\n });\n if (response.status !== 200) {\n return false;\n }\n const responseData = await response.json();\n if (!responseData.data) {\n return false;\n }\n return true;\n }\n catch (error) {\n return false;\n }\n }\n // Gets domain of UAS\n getDomain() {\n return this.domain;\n }\n // Gets auth link\n async auth(config) {\n if (this.hosted &&\n (this.domain === window.location.origin ||\n (this.versioned && this.domain.includes(window.location.origin)))) {\n await this.hostedSetCodeChallenge();\n }\n const url = await this.generateAuthURL(config);\n if (config.popup) {\n this.popUp(url);\n return;\n }\n return url;\n }\n // Generates auth URL\n async generateAuthURL(config) {\n const codeChallenge = await this.getCodeChallege();\n let url = `${this.domain}/connect/auth?client_id=${this.clientId}&redirect_uri=${this.redirectUri}&access_type=${this.accessType}&response_type=code`;\n if (codeChallenge) {\n url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&options=rotate_refresh_token`;\n }\n if (config.provider) {\n url += `&provider=${config.provider}`;\n }\n if (config.loginHint) {\n url += `&login_hint=${config.loginHint}`;\n if (config.includeGrantScopes) {\n url += `&include_grant_scopes=${config.includeGrantScopes}`;\n }\n }\n if (config.scope) {\n url += `&scope=${config.scope.join(\" \")}`;\n }\n if (config.prompt) {\n url += `&prompt=${config.prompt}`;\n }\n if (config.metadata) {\n url += `&metadata=${config.metadata}`;\n }\n if (config.state || this.loginId) {\n url += `&state=${this.loginId ? this.loginId : config.state}`;\n }\n return url;\n }\n // Generates auth URL\n async generateReauthURL(grant_id, scopes) {\n if (!grant_id) {\n throw new Error(\"Grant ID is required\");\n }\n const userToken = await this.Storage.getUserToken(grant_id);\n const codeChallenge = await this.getCodeChallege();\n let url = `${this.domain}/connect/auth?client_id=${this.clientId}&redirect_uri=${this.redirectUri}&access_type=${this.accessType}&response_type=code`;\n if (codeChallenge) {\n url += `&code_challenge=${codeChallenge}&code_challenge_method=S256&options=rotate_refresh_token`;\n }\n if (userToken?.provider) {\n url += `&provider=${userToken.provider}`;\n }\n if (userToken?.email) {\n url += `&login_hint=${userToken.email}`;\n }\n if (scopes) {\n url += `&scope=${scopes.join(\" \")}`;\n }\n return url;\n }\n // Generates UUID code challenge\n async generateCodeChallenge() {\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n return;\n }\n const codeChallenge = uuid();\n this.Storage.setPKCE(codeChallenge);\n return;\n }\n // Gets code challenge from URL query params\n async hostedSetCodeChallenge() {\n if (!this.hosted) {\n throw console.error(\"Method only used with hosted flag enabled\");\n }\n const params = new URLSearchParams(window.location.search);\n const codeChallenge = params.get(\"code_challenge\");\n if (!codeChallenge) {\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n return;\n }\n console.warn(\"Code challenge is recomended\");\n return;\n }\n this.Storage.setPKCE(codeChallenge);\n }\n // Gets code challenge from store\n async getCodeChallege() {\n if (this.hosted &&\n (this.domain === window.location.origin ||\n (this.versioned && this.domain.includes(window.location.origin)))) {\n const params = new URLSearchParams(window.location.search);\n const codeChallenge = params.get(\"code_challenge\");\n if (!codeChallenge) {\n console.warn(\"Code challenge is recomended\");\n return \"\";\n }\n return codeChallenge;\n }\n const code_verifier = await this.Storage.getPKCE();\n if (code_verifier) {\n const codeChallengeHashed = sha256(code_verifier);\n let codeChallengeEncrypted = Buffer.from(codeChallengeHashed).toString(\"base64\");\n codeChallengeEncrypted = Base64EncodeUrl(codeChallengeEncrypted);\n return codeChallengeEncrypted;\n }\n return \"\";\n }\n // checks if user is logged in\n async isLoggedIn() {\n // if hosted identity isLoggedIn always returns false\n if (this.hosted &&\n (this.domain === window.location.origin ||\n (this.versioned && this.domain.includes(window.location.origin)))) {\n return false;\n }\n const tokens = await this.Storage.getUserTokens();\n if (tokens && tokens.length > 0) {\n if (this.multiAccount) {\n await this.generateCodeChallenge();\n }\n return true;\n }\n await this.generateCodeChallenge();\n return false;\n }\n // Checks if user is multi account\n isMultiAccount() {\n return this.multiAccount;\n }\n // Logs user out\n async logout() {\n const profile = await this.getProfile();\n await this.Storage.clearSession();\n const payload = { detail: profile };\n window.dispatchEvent(new CustomEvent(\"onLogoutSuccess\", payload));\n }\n // Gets profile info from ID token\n async getProfile(grant_id = \"\") {\n let tok;\n if (grant_id) {\n tok = await this.Storage.getUserToken(grant_id);\n }\n else {\n tok = await this.Storage.getUserToken();\n }\n if (tok) {\n return tok;\n }\n return null;\n }\n // Gets profile info from ID tokens\n async getProfiles() {\n const tok = await this.Storage.getUserTokens();\n if (tok) {\n return tok;\n }\n return null;\n }\n // Remove a specific profile\n async removeProfile(id) {\n await this.Storage.removeUserToken(id);\n await this.Storage.removeGrant(id);\n return null;\n }\n // IMAP authentication\n async authIMAP(data) {\n const code_challenge = await this.getCodeChallege();\n const payload = {\n imap_username: data.username,\n imap_password: data.password,\n imap_host: data.hostIMAP,\n imap_port: data.portIMAP,\n type: data.type,\n smtp_host: data.hostSMTP,\n smtp_port: data.portSMTP,\n provider: data.provider,\n redirect_uri: this.redirectUri,\n state: data.state,\n public_application_id: this.clientId,\n access_type: this.accessType,\n };\n if (this.loginId) {\n payload.id = this.loginId;\n }\n if (code_challenge != \"\") {\n payload.code_challenge = code_challenge;\n payload.code_challenge_method = \"S256\";\n }\n const response = await fetch(`${this.domain}/connect/login/imap`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n return responseData;\n }\n // EWS authentication\n async authEWS(data) {\n const code_challenge = await this.getCodeChallege();\n const payload = {\n ...data,\n redirect_uri: this.redirectUri,\n public_application_id: this.clientId,\n access_type: this.accessType,\n };\n if (this.loginId) {\n payload.id = this.loginId;\n }\n if (code_challenge != \"\") {\n payload.code_challenge = code_challenge;\n payload.code_challenge_method = \"S256\";\n }\n const response = await fetch(`${this.domain}/connect/login/ews`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n return responseData;\n }\n // Detects email\n async detectEmail(email) {\n const response = await fetch(`${this.versioned ? this.domain : this.domain + \"/connect\"}/providers/detect?client_id=${this.clientId}&email=${email}`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n const responseData = await response.json();\n return responseData.data;\n }\n // Gets app info from UAS\n async applicationInfo() {\n const response = await fetch(`${this.versioned ? this.domain : this.domain + \"/connect\"}/applications?client_id=${this.clientId}`, {\n method: \"GET\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n const responseData = await response.json();\n return responseData.data;\n }\n // Gets providers form UAS\n async getAvailableProviders() {\n const response = await fetch(`${this.domain}/connect/providers/find?client_id=${this.clientId}`, {\n method: \"GET\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n });\n if (response) {\n const responseData = await response.json();\n const providers = responseData.data;\n return providers;\n }\n return null;\n }\n // EVENT HOOKS\n onLoginSuccess(callback) {\n window.addEventListener(\"onLoginSuccess\", (e) => callback(e));\n }\n onLogoutSuccess(callback) {\n window.addEventListener(\"onLogoutSuccess\", (e) => callback(e));\n }\n onLoginFail(callback) {\n window.addEventListener(\"onLoginFail\", (e) => callback(e));\n }\n onTokenRefreshSuccess(callback) {\n window.addEventListener(\"onTokenRefreshSuccess\", (e) => callback(e));\n }\n onTokenRefreshFail(callback) {\n window.addEventListener(\"onTokenRefreshFail\", (e) => callback(e));\n }\n onSessionExpired(callback) {\n window.addEventListener(\"onSessionExpired\", (e) => callback(e));\n }\n // Exchanges code for ID token and refresh and access tokens\n async codeExchange(search) {\n let params = new URLSearchParams(window.location.search);\n if (search) {\n params = new URLSearchParams(search);\n }\n const code = params.get(\"code\");\n const state = params.get(\"state\");\n const error = params.get(\"error\");\n const error_description = params.get(\"error_description\");\n const error_code = params.get(\"error_code\");\n if (error && error_description && error_code) {\n const payload = {\n detail: { error, error_description, error_code },\n };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n window.history.pushState({}, document.title, window.location.pathname);\n return false;\n }\n if (!code) {\n console.warn(\"No code found\");\n return false;\n }\n // If popup window stop internal code exchange\n if (window.opener && window.name === \"uas-popup\") {\n console.warn(\"Popup window detected\");\n return false;\n }\n // Get PKCE code_challenge from local storage\n const code_verifier = await this.Storage.getPKCE();\n if (!code_verifier) {\n console.warn(\"No code verifier found\");\n return false;\n }\n // Prepare request\n try {\n const payload = {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n code: code,\n grant_type: \"authorization_code\",\n code_verifier: code_verifier,\n };\n const response = await fetch(`${this.domain}/connect/token`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n // Parse response\n // Store ID token\n if (responseData) {\n if (responseData.error) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n return true;\n }\n const exchangeResponse = await this.handleCodeExchangeResponse(responseData);\n if (!exchangeResponse.valid) {\n const payload = { detail: exchangeResponse.data };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n return true;\n }\n else {\n if (state) {\n exchangeResponse.data.state = state;\n }\n const payload = { detail: exchangeResponse.data };\n window.dispatchEvent(new CustomEvent(\"onLoginSuccess\", payload));\n window.history.pushState({}, document.title, window.location.pathname);\n }\n }\n this.Storage.removePKCE();\n return true;\n // Remove PKCE code_challenge from local storage\n }\n catch (error) {\n const payload = { detail: error };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n window.history.pushState({}, document.title, window.location.pathname);\n return false;\n }\n }\n // Token Exchange for session maintenece\n async tokenExchange(grant_id = \"\") {\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grant) {\n return false;\n }\n const refresh_token = grant.refresh_token;\n try {\n const payload = {\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n refresh_token,\n grant_type: \"refresh_token\",\n };\n const response = await fetch(`${this.domain}/connect/token`, {\n method: \"POST\",\n headers: new Headers({ \"content-type\": \"application/json\" }),\n body: JSON.stringify(payload),\n });\n const responseData = await response.json();\n // Parse response\n // Store ID token\n if (responseData) {\n if (responseData.error) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return true;\n }\n const now = getTimestamp();\n responseData.expires_in = now + responseData.expires_in;\n this.Storage.setGrant(responseData, this.multiAccount);\n const isValidToken = await this.validateIDToken(grant_id);\n if (!isValidToken) {\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return true;\n }\n const payload = { detail: responseData };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshSuccess\", payload));\n return true;\n }\n // Remove PKCE code_challenge from local storage\n this.Storage.removePKCE();\n }\n catch (error) {\n const payload = { detail: error };\n window.dispatchEvent(new CustomEvent(\"onTokenRefreshFail\", payload));\n return false;\n }\n }\n // Handles the response of code exchange\n async handleCodeExchangeResponse(responseData) {\n const isValid = true;\n if (responseData.error) {\n return {\n data: responseData,\n valid: false,\n };\n }\n const now = getTimestamp();\n responseData.expires_in = now + responseData.expires_in;\n this.Storage.setGrant(responseData, this.multiAccount);\n const user = jwtDecode(responseData.id_token);\n user.status = \"authenticated\";\n this.Storage.setUserToken(user);\n const isValidToken = await this.validateIDToken(user.sub);\n if (!isValidToken) {\n return {\n data: responseData,\n valid: false,\n };\n }\n return {\n data: responseData,\n valid: isValid,\n };\n }\n // Regulates POPUP behaivior\n async popUp(url) {\n const width = 500;\n const height = 600;\n const left = window.screenX + (window.outerWidth - width) / 2;\n const top = window.screenY + (window.outerHeight - height) / 2.5;\n const title = `uas-popup`;\n const popupURL = url;\n const externalPopup = window.open(popupURL, title, `width=${width},height=${height},left=${left},top=${top}`);\n if (!externalPopup) {\n return;\n }\n const timer = setInterval(async () => {\n if (externalPopup.closed) {\n const payload = {\n detail: { error_description: \"OAuth provider window closed\" },\n };\n window.dispatchEvent(new CustomEvent(\"onLoginFail\", payload));\n timer && clearInterval(timer);\n return;\n }\n try {\n const currentUrl = externalPopup.location.href.split(\"?\");\n if (!currentUrl[0]) {\n return;\n }\n const search = externalPopup.location.search;\n externalPopup.history.pushState({}, document.title, window.location.pathname);\n if (currentUrl[0] === this.redirectUri && currentUrl.length > 1) {\n const success = await this.codeExchange(search);\n externalPopup.close();\n if (success) {\n location.reload();\n }\n timer && clearInterval(timer);\n return;\n }\n }\n catch (error) {\n return;\n }\n }, 1000);\n }\n // Returns access token\n async getAccessToken(grant_id = \"\") {\n const now = getTimestamp();\n const grantResponse = await this.Storage.getGrant(grant_id, this.multiAccount);\n if (!grantResponse) {\n return null;\n }\n const { access_token, expires_in } = grantResponse;\n const token = access_token;\n if (token) {\n if (expires_in && expires_in > getTimestamp()) {\n const timeLeft = expires_in - now;\n // If more then 30 secounds remain return access token\n if (timeLeft > 30) {\n return token;\n }\n }\n }\n await this.tokenExchange(grant_id);\n const grant = await this.Storage.getGrant(grant_id, this.multiAccount);\n return grant.access_token;\n }\n async sse(url, request) {\n const headers = request.headers || {};\n const grant_id = headers[\"Grant-ID\"];\n let token = \"\";\n if (this.multiAccount) {\n if (!grant_id) {\n this.logout();\n throw new Error(\"Grant ID is required for multi account calls\");\n }\n token = await this.getAccessToken(grant_id);\n }\n else {\n token = await this.getAccessToken();\n }\n delete headers[\"Grant-ID\"];\n headers[\"Authorization\"] = `Bearer ${token}`;\n if (!headers[\"content-type\"]) {\n headers[\"content-type\"] = \"application/json\";\n }\n return fetchEventSource(`${this.domain}/${url}`, {\n ...request,\n headers,\n });\n }\n // Used to call Nylas API endpoints\n async fetch(url, request, parseJSON = true, domain) {\n let token = \"\";\n let profileCount = 1;\n if (this.multiAccount) {\n if (!request.grant_id) {\n this.logout();\n throw new Error(\"Grant ID is required for multi account calls\");\n }\n const profiles = await this.getProfiles();\n profileCount = profiles ? profiles.length : 1;\n token = await this.getAccessToken(request.grant_id);\n }\n else {\n token = await this.getAccessToken();\n }\n if (!token) {\n throw new Error(\"Access token not found\");\n }\n let headers = request.headers;\n if (!Headers.prototype.isPrototypeOf(headers)) {\n headers = new Headers({\n Authorization: `Bearer ${token}`,\n \"content-type\": \"application/json\",\n });\n }\n else {\n headers.append(\"Authorization\", `Bearer ${token}`);\n if (!headers.has(\"content-type\")) {\n headers.append(\"content-type\", \"application/json\");\n }\n }\n try {\n if (request?.body) {\n request.body = JSON.stringify(request?.body);\n }\n const response = await fetch(`${domain || this.domain}/${url}`, {\n ...request,\n headers,\n });\n if (!parseJSON) {\n return response;\n }\n const responseData = await response?.json();\n const isAuthenticated = await this.isAuthenticatedResponse(response.status, responseData);\n if (!isAuthenticated) {\n if (profileCount > 1) {\n const user = await this.getProfile(request.grant_id);\n if (user) {\n user.status = \"unauthorized\";\n await this.Storage.setUserToken(user);\n const payload = {\n detail: { user },\n };\n window.dispatchEvent(new CustomEvent(\"onSessionExpired\", payload));\n }\n }\n else {\n const user = await this.Storage.getUserToken();\n const payload = {\n detail: { user },\n };\n window.dispatchEvent(new CustomEvent(\"onSessionExpired\", payload));\n }\n this.logout();\n return;\n }\n return responseData;\n }\n catch (e) {\n throw e;\n }\n }\n async fetchRequest(path, method, body, parseJSON = true, domain, request) {\n const isLoggedIn = await this.isLoggedIn();\n const url = new URL(path, domain ?? this.domain);\n const headers = new Headers();\n headers.append(\"Accept\", \"application/json\");\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"User-Agent\", \"nylas-identity\");\n if (isLoggedIn) {\n const accessToken = await this.getAccessToken();\n headers.append(\"Authorization\", `Bearer ${accessToken}`);\n }\n const response = await fetch(url.toString(), {\n method: method || \"GET\",\n headers,\n mode: \"cors\",\n referrer: location.origin,\n body: body ? JSON.stringify(body) : undefined,\n ...(request || {}),\n });\n // If we don't want to parse the response as JSON, return the raw response\n if (!parseJSON) {\n return response.body;\n }\n const json = await response.json();\n return json;\n }\n // Checks if the response is not 401\n async isAuthenticatedResponse(status, responseData) {\n if (status == 401 &&\n responseData?.error?.type == \"token.unauthorized_access\") {\n return false;\n }\n return true;\n }\n addAPIKey(grant_id, email, key) {\n this.Storage.setUserToken({\n aud: \"https://api-staging.us.nylas.com/\",\n exp: 2000000000,\n email_verified: true,\n iat: getTimestamp(),\n iss: \"\",\n email,\n provider: \"virtual-calendar\",\n status: \"authenticated\",\n name: email,\n sub: grant_id,\n });\n this.Storage.setGrant({\n grant_id,\n access_token: key,\n expires_in: 2000000000,\n }, this.multiAccount);\n }\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","import { h } from '@stencil/core';\n\nexport type LoginRequiredProps = {\n authenticationUrl: (provider?: string) => Promise<string>;\n};\n\nexport const LoginRequired = ({ authenticationUrl }: LoginRequiredProps) => (\n <div class={'login-required'}>\n <div class={'card'}>\n <p>Log into your account to use the Scheduler Editor.</p>\n\n <button\n class=\"google-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl('google');\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n <span class=\"icon\">\n <google-logo-icon width=\"15\" height=\"15\" />\n </span>\n Continue with Google\n </button>\n\n <button\n class=\"microsoft-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl('microsoft');\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n <span class=\"icon\">\n <microsoft-logo-icon width=\"15\" height=\"15\" />\n </span>\n Continue with Microsoft\n </button>\n\n <button\n class=\"other-provider-button\"\n onClick={async event => {\n event.preventDefault();\n const authUrl = await authenticationUrl();\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`);\n }\n }}\n >\n View all providers <chevron-icon width=\"17\" height=\"17\" />\n </button>\n\n <small class=\"disclaimer-text\">* You will be redirected to authenticate your account.</small>\n </div>\n </div>\n);\n","import { Fragment, h } from '@stencil/core';\nimport { Configuration } from '@nylas/core';\n\ntype RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];\n};\n\n/**\n * The props for the Express Flow component.\n */\nexport type ExpressFlowProps = {\n currentUser: any;\n calendars: any[];\n selectedConfiguration: RecursivePartial<Configuration>;\n};\n\n/**\n * The Express Flow component.\n */\nexport default function ExpressFlow({ selectedConfiguration, currentUser, calendars }: ExpressFlowProps) {\n const organizer = selectedConfiguration.participants?.find(p => p.is_organizer) ?? currentUser;\n return (\n <Fragment>\n <nylas-event-info>\n <div slot=\"inputs\">\n <nylas-event-title />\n <nylas-event-duration />\n <nylas-event-location />\n </div>\n </nylas-event-info>\n <nylas-booking-calendar-picker calendars={calendars} currentUser={currentUser} defaultBookingCalendar={organizer?.email} />\n </Fragment>\n );\n}\n","@import '../../../common/styles/variables.scss';\n@import '../../../common/mixins/buttons.scss';\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n @media #{$mobile} {\n width: auto;\n min-width: 325px;\n }\n background: var(--nylas-base-0);\n position: relative;\n box-shadow:\n 0px 0px 6px -2px rgba(0, 0, 0, 0.05),\n 0px 5px 15px -3px rgba(0, 0, 0, 0.1);\n @include default-css-variables;\n}\n\ndiv.scheduler-editor-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n color: var(--nylas-base-900);\n\n h1.scheduler-editor-title {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 858px;\n margin: 0;\n font-size: 18px;\n line-height: 24px;\n font-weight: 600;\n @media #{$mobile} {\n width: auto;\n min-width: calc(325px - 1rem);\n }\n }\n button {\n @include invisible-button;\n }\n}\n\nnylas-editor-tabs {\n width: auto;\n nylas-event-info,\n nylas-event-limits {\n div[slot='inputs'] {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n }\n}\n\n.card {\n display: flex;\n flex-direction: column;\n padding: 2rem;\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n border-radius: 5px;\n\n max-width: fit-content;\n\n align-self: center;\n}\n\n.login-required {\n height: 554px;\n @media #{$mobile} {\n height: auto;\n }\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 2rem 1rem;\n background-color: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n p {\n margin: 0 0 1rem;\n }\n\n .microsoft-button,\n .google-button {\n @include button;\n display: flex;\n margin-bottom: 1rem;\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n border-radius: 5px;\n justify-content: center;\n gap: 0.5rem;\n align-items: center;\n\n &:hover {\n background-color: var(--nylas-base-25);\n }\n }\n\n .other-provider-button {\n @include button;\n display: flex;\n border: 0;\n background-color: var(--nylas-base-0);\n height: 48px;\n margin-bottom: 1rem;\n font-size: 0.95rem;\n justify-content: center;\n gap: 0.25rem;\n align-items: center;\n\n svg {\n transform: rotate(180deg);\n }\n\n &:hover {\n background-color: var(--nylas-base-25);\n }\n }\n\n .disclaimer-text {\n font-size: 0.75rem;\n color: var(--nylas-base-600);\n align-self: center;\n }\n}\n\n.list-configurations {\n padding: 2rem;\n height: 554px;\n @media #{$mobile} {\n height: auto;\n }\n background: var(--nylas-base-25);\n border-radius: var(--nylas-border-radius-2x);\n nylas-list-configurations {\n height: inherit;\n display: flex;\n flex-direction: column;\n }\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport type { SchedulerEditorEventOverride } from '@/common/component-types';\nimport { AuthArgs, NylasIdentityRequestWrapper, User, type NylasApiRequest } from '@/common/nylas-api-request';\nimport { RegisteredComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { CreateNylasSchedulerConfigStore, NylasSchedulerConfigStoreState, NylasSchedulerConfigStoreType } from '@/stores/scheduler-config-store';\nimport { debug } from '@/utils/utils';\nimport { Config, NylasSessions } from '@nylas/identity';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { LoginRequired } from './LoginRequired';\nimport ExpressFlow from './ExpressFlow';\nimport { AdditionalParticipant } from '@nylas/core';\n\n/**\n * The `nylas-scheduler-editor` component is a form that allows users to configure the settings for the Nylas Scheduler.\n *\n * @slot login-required - This slot is used to display a message when the user is not logged in.\n */\n@Component({\n tag: 'nylas-scheduler-editor',\n styleUrl: 'nylas-scheduler-editor.scss',\n shadow: true,\n})\nexport class NylasSchedulerEditor {\n /**\n * Stores to be used by the provider.\n */\n private stores?: {\n schedulerConfig: NylasSchedulerConfigStoreType;\n };\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 Config Connector instance.\n * The brains of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConfigConnector?: NylasSchedulerConfigConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulerEditorElement;\n\n /***\n * The configuration id to use for the scheduler editor.\n * If provided, then the scheduler editor will try and fetch the configuration\n * with the provided id. If found, it will automatically load the editor\n * with the configuration settings for editing.\n */\n @Prop({ mutable: true }) configurationId?: string;\n\n /**\n * The Nylas Api Request instance.\n * Used to make requests to the Nylas API.\n */\n @Prop({ mutable: true }) nylasApiRequest?: NylasApiRequest;\n\n /**\n * The Nylas Sessions configuration.\n * Used to configure the Nylas Sessions instance.\n */\n @Prop() nylasSessionsConfig?: Config;\n\n /**\n * The default authentication arguments to use when authenticating a user.\n */\n @Prop() defaultAuthArgs?: AuthArgs[];\n\n /**\n * This provides a way to override the default event handlers.\n */\n @Prop() eventOverrides: SchedulerEditorEventOverride = {};\n\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use the placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The default scheduler config store state.\n * Used to set the initial state of the scheduler config store.\n * This state can be used to pass defaults to newly created configurations.\n */\n @Prop({ attribute: 'default-scheduler-config-store-state' }) readonly defaultSchedulerConfigState?: Partial<NylasSchedulerConfigStoreState>;\n\n /**\n * This is used to set the mode for the scheduler config.\n * The mode can be 'app' or 'composable'.\n * The default mode is 'app'.\n */\n @Prop({ attribute: 'mode' }) readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * This prop is used to populate the additional participants and\n * their availability in the scheduler editor.\n */\n @Prop({ attribute: 'additional-participants' }) additionalParticipants?: AdditionalParticipant[];\n\n /**\n * This optional prop is used to hide tabs in the editor. Available tabs are:\n * eventInfo, availability, participants, bookingOptions, bookingForm\n */\n @Prop({ attribute: 'hide-editor-tabs' }) hideEditorTabs?: string[] = [];\n\n /**\n * This prop will be used to populate the conference provider options in the editor.\n * The key is the provider name ('zoom') and the value is the grant id.\n * We currently support same provider ('google', 'microsoft') for all participants and 'zoom' for cross-provider conferencing.\n */\n @Prop({ attribute: 'conference-providers' }) conferenceProviders?: Record<string, string>;\n\n /**\n * This event is fired when the provider is initialized.\n * By default, this event handles determining if the user is logged in or not.\n * In addition, it fetches the provided configuration if a valid configuration id is provided.\n */\n @Event({ cancelable: true }) readonly init!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the the NylasAuth isAuthenticated state changes\n * to true.\n */\n @Event({ cancelable: true }) readonly loggedIn!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the the NylasAuth isAuthenticated state changes\n * to false.\n */\n @Event({ cancelable: true }) readonly loggedOut!: EventEmitter<HTMLNylasSchedulerEditorElement>;\n\n /**\n * This event is fired when the close button on scheduler config is clicked.\n */\n @Event({ cancelable: true }) readonly schedulerConfigCloseClicked!: EventEmitter<HTMLNylasSchedulerEditorElement>;\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 connectedCallback() {\n debug(`[nylas-scheduler-editor] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler-editor] componentWillLoad`);\n const filteredAdditionalParticipants = this.additionalParticipants?.filter(participant => {\n const filteredCalendars = participant.calendars?.length > 0 ? participant.calendars.filter(calendar => calendar.id && calendar.name) : [];\n if (participant.name && participant.email && filteredCalendars.length > 0) {\n return {\n name: participant.name,\n email: participant.email,\n calendars: filteredCalendars,\n };\n }\n });\n this.stores = {\n schedulerConfig: CreateNylasSchedulerConfigStore({\n ...this.defaultSchedulerConfigState,\n additionalParticipants: filteredAdditionalParticipants,\n conferenceProviders: this.conferenceProviders,\n hideEditorTabs: this.hideEditorTabs,\n }),\n };\n\n if (!this.nylasApiRequest && this.nylasSessionsConfig) {\n const nylasSession = new NylasSessions(this.nylasSessionsConfig);\n\n // We must check if the user is logged in before continuing\n // otherwise, a PCKE code will not be generated and the user\n // will not be able to log in.\n await nylasSession.isLoggedIn();\n\n // Watch for login events so that we can automatically update the state\n nylasSession.onLoginSuccess(async () => {\n const currentUser = await this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser();\n if (currentUser) {\n this.loggedIn.emit(this.host);\n this.loggedInHandler(currentUser);\n }\n });\n\n // Watch for logout events so that we can automatically update the state\n nylasSession.onLoginFail(async () => {\n this.stores?.schedulerConfig?.set('currentUser', null);\n this.loggedOut.emit(this.host);\n });\n\n this.nylasApiRequest = new NylasIdentityRequestWrapper(nylasSession);\n }\n\n if (this.nylasApiRequest && this.defaultAuthArgs) {\n this.nylasApiRequest.setDefaultAuthArgs(this.defaultAuthArgs);\n }\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n const nylasSchedulerConfigStore = this.baseProvider.getStore('schedulerConfig');\n this.nylasSchedulerConfigConnector = new NylasSchedulerConfigConnector({\n nylasApiRequest: this.nylasApiRequest,\n nylasSchedulerConfigStore: nylasSchedulerConfigStore,\n });\n\n const initEvent = this.init.emit(this.host);\n if (!initEvent.defaultPrevented) {\n const currentUser = await this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser();\n if (currentUser) {\n this.loggedIn.emit(this.host);\n await this.loggedInHandler(currentUser);\n } else {\n this.stores?.schedulerConfig?.set('currentUser', null);\n this.loggedOut.emit(this.host);\n }\n }\n\n // Watch for store changes\n this.stores?.schedulerConfig?.onChange('selectedConfiguration', async config => {\n if (config && config.id) {\n this.configurationId = config.id;\n }\n });\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConfigConnector);\n }\n\n async componentDidLoad() {\n debug(`[nylas-scheduler-editor] componentDidLoad`);\n this.baseProvider?.componentDidLoad();\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n /**\n * Watch for changes to the configuration id and automatically fetch the configuration\n * when the configuration id changes. If the configuration id is cleared, then the\n * configuration is cleared as well.\n * @param newConfigurationId The new configuration id\n */\n @Watch('configurationId')\n async configurationIdChanged(newConfigurationId: string) {\n if (newConfigurationId) {\n await this.nylasSchedulerConfigConnector?.schedulerConfig?.getConfigurationById(newConfigurationId);\n this.stores?.schedulerConfig?.set('action', 'edit');\n } else {\n // Clear the configuration\n this.stores?.schedulerConfig?.set('selectedConfiguration', {});\n this.stores?.schedulerConfig?.set('action', null);\n }\n }\n\n /**\n * This method is used to get the NylasSchedulerConfigStore instance.\n * You can use this instance to update or get the state of the store.\n * @returns Promise<NylasSchedulerConfigStoreType | undefined>\n */\n @Method()\n async store(): Promise<NylasSchedulerConfigStoreType | undefined> {\n return this.stores?.schedulerConfig;\n }\n\n /**\n * This method is used to get the NylasSchedulerConfigConnector instance.\n * You can use this instance to make requests to the Nylas API.\n * @returns Promise<NylasSchedulerConfigConnector | undefined>\n */\n @Method()\n async schedulerConnector(): Promise<NylasSchedulerConfigConnector | undefined> {\n return this.nylasSchedulerConfigConnector;\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 * Upon login, set the current user and fetch the configuration and calendars.\n * @param currentUser The current user that is logged in\n */\n private async loggedInHandler(currentUser: User) {\n this.stores?.schedulerConfig?.set('currentUser', currentUser);\n\n if (!this.nylasSchedulerConfigConnector) {\n return;\n }\n\n if (this.configurationId) {\n const data = await this.nylasSchedulerConfigConnector.schedulerConfig?.getConfigurationById(this.configurationId);\n if (data && data[0]?.id) {\n this.stores?.schedulerConfig?.set('action', 'edit');\n }\n }\n\n await this.nylasSchedulerConfigConnector.schedulerConfig?.getCalendars();\n }\n\n /**\n * This is a custom event handler that is used to update the state of the provider.\n */\n private handleSchedulerConfigCloseClicked = (_event: Event) => {\n const event = this.schedulerConfigCloseClicked.emit(this.host);\n if (!event.defaultPrevented) {\n localStorage.removeItem('grant');\n localStorage.removeItem('user');\n window.location.reload();\n }\n };\n\n /**\n * This method is used to get the authentication URL for a provider.\n * @param provider The provider to get the authentication URL for (e.g. google, microsoft, etc.)\n * @returns Promise<string> The authentication URL to redirect the user for the provider\n */\n private authenticationUrl = async (provider?: string) => {\n if (!this.nylasApiRequest) {\n console.error(`[nylas-scheduler-editor] Nylas API Request is not initialized.`);\n return '';\n }\n const url = await this.nylasApiRequest.authenticationUrl({ provider });\n\n return url || '';\n };\n\n render() {\n return (\n <Host>\n <div class=\"scheduler-editor-header\" part=\"nse__header\">\n <h1 class=\"scheduler-editor-title\" part=\"nse__title\">\n <calendar-icon width=\"18\" height=\"18\" />\n Scheduler editor\n </h1>\n <button class=\"scheduler-editor-close\" title=\"logout\" onClick={e => this.handleSchedulerConfigCloseClicked(e)} part=\"nse__close-button\">\n <close-icon width=\"18\" height=\"18\" />\n </button>\n </div>\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === null && (\n <div class=\"list-configurations\">\n <nylas-list-configurations></nylas-list-configurations>\n </div>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'create' && (\n // If the mode is 'app', then render the editor tabs in a composable mode with children for creating a new configuration (Express flow).\n <nylas-editor-tabs mode=\"composable\">\n <ExpressFlow\n currentUser={this.stores?.schedulerConfig?.state.currentUser}\n calendars={this.stores?.schedulerConfig?.state?.calendars}\n selectedConfiguration={this.stores?.schedulerConfig?.state?.selectedConfiguration}\n />\n </nylas-editor-tabs>\n )}\n {this.stores?.schedulerConfig?.state.currentUser && this.stores.schedulerConfig.state.action === 'edit' && (\n <nylas-editor-tabs mode={this.mode}>{this.mode === 'composable' && <slot />}</nylas-editor-tabs>\n )}\n {!this.stores?.schedulerConfig?.state.currentUser && (\n <slot name=\"login-required\">\n <LoginRequired authenticationUrl={this.authenticationUrl} />\n </slot>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as s}from"./p-68c2fadf.js";const o=".sc-play-icon-h{display:flex}";const e=o;const i=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as s}from"./p-68c2fadf.js";const o=".sc-play-icon-h{display:flex}";const e=o;const i=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"96c69fb4a0b8fcc181fc799ccb9642f3cb00f880",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"1221b02d45421140b1f9d57f918d604b85ac8ef5",d:"M21 12L3 21V3L21 12Z",stroke:"auto","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}))}};i.style=e;const c=".sc-stop-icon-h{display:flex}";const r=c;const n=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"ef82c084a7f6d5f4d2b09e64467be32881d3eb01",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"93eff58b608a6a3492aa2ae1a68f19622cf77257",d:"M4 4H20V20H4V4Z",stroke:"auto","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}))}};n.style=r;export{i as play_icon,n as stop_icon};
|
|
2
|
+
//# sourceMappingURL=p-47392968.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as r,h as t,F as s,H as n}from"./p-68c2fadf.js";import{R as o}from"./p-795b324a.js";import{a as l,f as i,t as a}from"./p-6c11737d.js";import"./p-02aa5f03.js";import"./p-cb65c223.js";const d=":host{display:block}.folders{display:flex;flex-direction:column;align-items:self-start}.folders .folder{border:1px solid var(--nylas-color-primary-100);padding:0.5rem 0.75rem;margin-bottom:0.5rem;justify-content:left;width:100%;min-width:200px;border-radius:var(--nylas-border-radius);background-color:var(--nylas-color-primary-50)}.folders .folder:last-child{margin-bottom:0}.folders .folder.selected{background-color:var(--nylas-color-primary-100)}.folders .folder .icon{margin-right:0.5rem;stroke:var(--nylas-color-primary-900);fill:none}hr{width:100%;margin:1rem 0;border:0;border-top:1px solid var(--nylas-color-primary-100)}";const c=d;var f=undefined&&undefined.__decorate||function(e,r,t,s){var n=arguments.length,o=n<3?r:s===null?s=Object.getOwnPropertyDescriptor(r,t):s,l;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(e,r,t,s);else for(var i=e.length-1;i>=0;i--)if(l=e[i])o=(n<3?l(o):n>3?l(r,t,o):l(r,t))||o;return n>3&&o&&Object.defineProperty(r,t,o),o};var u=undefined&&undefined.__metadata||function(e,r){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,r)};const p=class{constructor(t){e(this,t);this.folderSelected=r(this,"folderSelected",7);this.folderSelectedHandler=e=>{this.folderSelected?.emit(e)};this.folders=undefined;this.selectedFolder=undefined;this.defaultFolders=undefined;this.otherFolders=undefined}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){l(`[nylas-list-folders] Component will load`)}async componentDidLoad(){l(`[nylas-list-folders] Component did load`)}watchFolders(e){l(`[nylas-list-folders] watchFolders`,{newFolders:e});const r=["inbox","drafts","sent","starred","spam","archive","trash"];this.defaultFolders=r.filter((r=>e.find((e=>e.name?.toLowerCase()===r.toLowerCase())))).map((r=>e.find((e=>e.name?.toLowerCase()===r.toLowerCase())))).filter((e=>typeof e!=="undefined")).sort(((e,t)=>r.indexOf(e?.name??"")-r.indexOf(t?.name??"")));this.otherFolders=e.filter((e=>!r.find((r=>e.name?.toLowerCase()===r.toLowerCase())))).sort(((e,r)=>(e.name??"").localeCompare(r.name??"")))}formatFolderName(e){return a(e.name?.replace("CATEGORY_","")??"Unknown")}getFolderIcon(e){switch(e.name?.toLowerCase()){case"inbox":return t("inbox-icon",null);case"drafts":return t("drafts-icon",null);case"sent":return t("sent-icon",null);case"starred":return t("star-icon",null);case"spam":return t("spam-icon",null);case"archive":return t("archive-icon",null);case"trash":return t("trash-icon",null);default:return t("folder-icon",null)}}render(){return t(n,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as r,h as t,F as s,H as n}from"./p-68c2fadf.js";import{R as o}from"./p-795b324a.js";import{a as l,f as i,t as a}from"./p-6c11737d.js";import"./p-02aa5f03.js";import"./p-cb65c223.js";const d=":host{display:block}.folders{display:flex;flex-direction:column;align-items:self-start}.folders .folder{border:1px solid var(--nylas-color-primary-100);padding:0.5rem 0.75rem;margin-bottom:0.5rem;justify-content:left;width:100%;min-width:200px;border-radius:var(--nylas-border-radius);background-color:var(--nylas-color-primary-50)}.folders .folder:last-child{margin-bottom:0}.folders .folder.selected{background-color:var(--nylas-color-primary-100)}.folders .folder .icon{margin-right:0.5rem;stroke:var(--nylas-color-primary-900);fill:none}hr{width:100%;margin:1rem 0;border:0;border-top:1px solid var(--nylas-color-primary-100)}";const c=d;var f=undefined&&undefined.__decorate||function(e,r,t,s){var n=arguments.length,o=n<3?r:s===null?s=Object.getOwnPropertyDescriptor(r,t):s,l;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(e,r,t,s);else for(var i=e.length-1;i>=0;i--)if(l=e[i])o=(n<3?l(o):n>3?l(r,t,o):l(r,t))||o;return n>3&&o&&Object.defineProperty(r,t,o),o};var u=undefined&&undefined.__metadata||function(e,r){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,r)};const p=class{constructor(t){e(this,t);this.folderSelected=r(this,"folderSelected",7);this.folderSelectedHandler=e=>{this.folderSelected?.emit(e)};this.folders=undefined;this.selectedFolder=undefined;this.defaultFolders=undefined;this.otherFolders=undefined}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){l(`[nylas-list-folders] Component will load`)}async componentDidLoad(){l(`[nylas-list-folders] Component did load`)}watchFolders(e){l(`[nylas-list-folders] watchFolders`,{newFolders:e});const r=["inbox","drafts","sent","starred","spam","archive","trash"];this.defaultFolders=r.filter((r=>e.find((e=>e.name?.toLowerCase()===r.toLowerCase())))).map((r=>e.find((e=>e.name?.toLowerCase()===r.toLowerCase())))).filter((e=>typeof e!=="undefined")).sort(((e,t)=>r.indexOf(e?.name??"")-r.indexOf(t?.name??"")));this.otherFolders=e.filter((e=>!r.find((r=>e.name?.toLowerCase()===r.toLowerCase())))).sort(((e,r)=>(e.name??"").localeCompare(r.name??"")))}formatFolderName(e){return a(e.name?.replace("CATEGORY_","")??"Unknown")}getFolderIcon(e){switch(e.name?.toLowerCase()){case"inbox":return t("inbox-icon",null);case"drafts":return t("drafts-icon",null);case"sent":return t("sent-icon",null);case"starred":return t("star-icon",null);case"spam":return t("spam-icon",null);case"archive":return t("archive-icon",null);case"trash":return t("trash-icon",null);default:return t("folder-icon",null)}}render(){return t(n,{key:"f25094f0820d2abb2d1a70ecf73da3fe5015d7b1"},t("div",{key:"7cfb79a63dec4654e2f77640280b2718b8790f18",class:"folders"},this.defaultFolders?.map((e=>t("sp-button",{onClick:()=>this.folderSelectedHandler(e),class:{folder:true,selected:i(e.name??"inbox").toLowerCase()===this.selectedFolder?.toLowerCase()}},t("div",{slot:"icon",class:"icon"},this.getFolderIcon(e)),this.formatFolderName(e))))),this.otherFolders&&t(s,null,t("hr",null),t("div",{class:"folders"},this.otherFolders?.map((e=>t("sp-button",{onClick:()=>this.folderSelectedHandler(e),class:{folder:true,selected:i(e.name??"inbox").toLowerCase()===this.selectedFolder?.toLowerCase()}},t("div",{slot:"icon",class:"icon"},this.getFolderIcon(e)),this.formatFolderName(e)))))))}static get watchers(){return{folders:["watchFolders"]}}};f([o({name:"nylas-pagination",stateToProps:new Map([["mailbox.folders","folders"],["mailbox.selectedFolder","selectedFolder"]]),eventToProps:{folderSelected:async(e,r)=>{l(`[nylas-list-folders] folderSelected event`,{_event:e});await r.threads.getThreads({page_token:undefined,in:i(e.detail.id??"inbox")})}},fireRegisterEvent:true}),u("design:type",Function),u("design:paramtypes",[]),u("design:returntype",void 0)],p.prototype,"render",null);p.style=c;export{p as nylas_list_folders};
|
|
2
|
+
//# sourceMappingURL=p-4a594ebe.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{h as e,F as s,r as a,c as t,H as r,a as o}from"./p-68c2fadf.js";import{R as i}from"./p-795b324a.js";import{j as n,b as l,k as d,a as c,t as h}from"./p-6c11737d.js";import"./p-02aa5f03.js";import"./p-cb65c223.js";function m(e,s,a,t,r){if(!t){return}if(!a){return}if(a.children.length>0){return}c(`[nylas-view-thread] Rendering email`,{message:e,attachments:s,viewEmailElement:t});const o=t.cloneNode(true);o.message=e.data;o.parent=r;a.appendChild(o)}const p=({viewEmailElement:a,message:t,attachments:r,onMessageClick:o,onShowContactDataClick:i,parent:c})=>e(s,null,e("div",{key:t.id,class:"message"},e("div",{class:"sub-header","data-id":t.data.id,onClick:o},e("div",{class:"avatar"},t.data.from&&t.data.from[0]?.name&&t.data.from[0]?.name[0]?.toUpperCase()),e("div",{class:"from"},e("span",{class:"name"},t.data.from&&t.data.from[0]?.name)," ",e("span",{class:"email"},t.data.from&&t.data.from[0]?.email)),e("div",{class:"date"},new Date(t.data.date*1e3).toLocaleTimeString(undefined,{timeStyle:"short"})," ","(",n(new Date(t.data.date*1e3)),")"),e("sp-button-group",{class:"buttons"},e("nylas-summarize-message-button",{message:t.data})),t.collapse&&e("div",{class:"snippet"},t.data.snippet),!t.collapse&&t.data.to&&e("div",{class:"to"},e("span",null,"to")," ",l(t.data.to)," ",e("button",{type:"button",value:t.data.id,onClick:i,class:{expand:true,"expand--showContactData":t.showContactData}},e("chevron-icon",null)))),t.showContactData&&e("div",{class:"address-info"},e("div",{class:"label"},"From"),e("div",{class:"value"},d(t.data?.from?t?.data?.from[0]:{name:"",email:""})),t.data.to&&e(s,null,e("div",{class:"label"},"To"),e("div",{class:"value"},t.data.to.map((s=>e("div",null,d(s)))))),typeof t.data.cc!=="undefined"&&t.data.cc.length>0&&e(s,null,e("div",{class:"label"},"CC"),e("div",{class:"value"},t.data.cc.map((s=>e("div",null,d(s))))))),!t.collapse&&a&&e("div",{key:t.id,ref:e=>m(t,r,e,a,c)}),!t.collapse&&!a&&e("nylas-view-email",{key:t.id,message:t.data,parent:c})),e("hr",null));const u=':host{display:block;font-size:inherit}.avatar{z-index:1;border-radius:100%;background-color:var(--nylas-color-primary-200);height:40px;width:40px;align-items:center;display:flex;justify-content:center;border:1px solid var(--nylas-color-primary-200)}.view-thread{display:grid;grid-auto-flow:row;width:100%}.view-thread .header{display:grid;grid-gap:1rem;align-items:center;margin-bottom:1rem}.view-thread .header .subject{font-size:1.25rem;font-weight:600;line-height:1.5rem}.view-thread .header .folders{display:grid;grid-auto-flow:column;grid-auto-columns:min-content;overflow-x:auto;gap:1rem}.view-thread .header .folders .folder{padding:0 0.5rem;font-size:0.9rem;color:var(--nylas-color-primary-900);background-color:var(--nylas-color-primary-300)}.view-thread .messages{display:grid;gap:1rem}.view-thread .messages hr{margin:0;width:100%;border:1px solid var(--nylas-color-primary-200)}.view-thread .messages hr:last-of-type{display:none}.view-thread .messages .message{display:grid;grid-auto-flow:row;gap:1rem}.view-thread .messages .message:last-of-type .sub-header{cursor:default}.view-thread .messages .message .sub-header{display:grid;grid-template:"avatar from date buttons" "avatar to to buttons";grid-column-gap:1rem;grid-template-columns:auto 1fr auto auto;cursor:pointer}.view-thread .messages .message .sub-header>*{pointer-events:none}.view-thread .messages .message .sub-header .avatar{grid-area:avatar}.view-thread .messages .message .sub-header .from{grid-area:from}.view-thread .messages .message .sub-header .from span.email{display:none;color:var(--nylas-color-primary-400);font-weight:600}.view-thread .messages .message .sub-header .buttons{grid-area:buttons;align-self:center}.view-thread .messages .message .sub-header .buttons *{pointer-events:all}.view-thread .messages .message .sub-header .date{grid-area:date;align-self:center;color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .snippet{width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--nylas-color-primary-600)}.view-thread .messages .message .sub-header .to{grid-area:to;color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .to>span{color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .to button{border:0;background-color:transparent;cursor:pointer;pointer-events:all;padding:0;margin:0}.view-thread .messages .message .sub-header .to button>*{pointer-events:none}.view-thread .messages .message .sub-header .to button chevron-icon{display:inline-table;fill:var(--nylas-color-primary-400);width:15px;height:15px;vertical-align:middle}.view-thread .messages .message .sub-header .to button chevron-icon svg{width:15px;height:15px;transform:rotate(90deg)}.view-thread .messages .message .sub-header .to button.expand--showContactData chevron-icon svg{transform:rotate(270deg)}.view-thread .messages .message .address-info{display:grid;column-gap:1rem;row-gap:0.5rem;grid-template-columns:auto 1fr;grid-template-rows:1fr;padding:1rem 2rem;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-color-primary-200);align-items:flex-start;color:var(--nylas-color-primary-600)}.view-thread .messages .message .address-info .label{color:var(--nylas-color-primary-400);font-weight:600}.show-more{position:relative;display:flex;width:100%}.show-more .sr-only{display:none}.show-more button{position:relative;display:inline-flex;width:100%;padding:0;border:0;background-color:transparent;cursor:pointer;text-align:left;overflow:hidden}.show-more button span{border:1px solid var(--nylas-color-primary-400)}.show-more button:hover span{background-color:var(--nylas-color-primary-700)}.show-more button::after{border-top:1px solid rgba(100, 121, 143, 0.122);border-bottom:1px solid rgba(100, 121, 143, 0.122);content:"";height:4px;width:100%;position:absolute;top:50%}.loading{position:absolute;width:100%;height:100%;background-color:var(--loading__background-color);top:0;bottom:0;left:0;z-index:1;display:grid;justify-content:center;align-items:center;font-weight:600;overflow:hidden}.reply-buttons{display:grid;grid-auto-flow:column;grid-auto-columns:min-content;gap:1rem;margin-top:1rem}.reply-buttons sp-button{border-radius:var(--nylas-border-radius);background-color:var(--nylas-color-primary-400);color:var(--nylas-color-primary-900);fill:var(--nylas-color-primary-900)}.reply-buttons sp-button:hover{background-color:var(--nylas-color-primary-500)}.reply-buttons sp-button:disabled{background-color:var(--nylas-color-primary-200);color:var(--nylas-color-primary-600);cursor:not-allowed}.reply-buttons sp-button chevron-icon{display:inline-block}@media only screen and (min-width: 768px){.view-thread .messages .message .sub-header .from span.email{display:inline}}';const g=u;var v=undefined&&undefined.__decorate||function(e,s,a,t){var r=arguments.length,o=r<3?s:t===null?t=Object.getOwnPropertyDescriptor(s,a):t,i;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(e,s,a,t);else for(var n=e.length-1;n>=0;n--)if(i=e[n])o=(r<3?i(o):r>3?i(s,a,o):i(s,a))||o;return r>3&&o&&Object.defineProperty(s,a,o),o};var y=undefined&&undefined.__metadata||function(e,s){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,s)};const f=class{constructor(e){a(this,e);this.threadSelected=t(this,"threadSelected",7);this.showContactDataClicked=t(this,"showContactDataClicked",7);this.messageClicked=t(this,"messageClicked",7);this.nylasViewEmailElement=null;this.nylasComposerElement=null;this.onShowContactDataClick=e=>{e.stopPropagation();const s=e.target;const a=s.value;const t=this.internalMessages.find((e=>e.data.id===a));if(!t){c(`[nylas-view-thread] Could not find message ${a}`);return}const r=this.showContactDataClicked.emit(t.data);if(!r.defaultPrevented){t.showContactData=!t.showContactData;this.internalMessages=[...this.internalMessages]}c(`[nylas-view-thread] show contact data clicked ${a} ${t.showContactData?"collapsed":"expanded"}`)};this.onMessageClick=e=>{const s=e.target;const a=s.dataset.id;const t=this.internalMessages.find((e=>e.data.id===a));if(!t){c(`[nylas-view-thread] Could not find message ${a}`);return}const r=this.messageClicked.emit(t.data);if(!r.defaultPrevented){if(t.id!==this.internalMessages[this.internalMessages.length-1]?.id){t.collapse=!t.collapse;if(t.collapse){t.showContactData=false}}this.internalMessages=[...this.internalMessages]}c(`[nylas-view-thread] message clicked ${a} ${t.collapse?"collapsed":"expanded"}`)};this.onShowAllEmailsClick=()=>{this.showAllEmails=!this.showAllEmails};this.showComposerClick=()=>{this.showComposer=!this.showComposer};this.draft=undefined;this.thread=undefined;this.messages=[];this.attachments=[];this.state="loading";this.internalMessages=[];this.showAllEmails=false;this.showComposer=false}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){c(`[nylas-view-thread] Component will load`);this.updateInternalMessages(this.messages);const e=this.host.querySelector("template.nylas-view-email");if(!e){c(`[nylas-view-thread] Could not find template`);return}const s=document.importNode(e.content,true);this.nylasViewEmailElement=s.querySelector("nylas-view-email");const a=this.host.querySelector("template.nylas-composer");if(!a){c(`[nylas-view-thread] Could not find composer template`);return}const t=document.importNode(a.content,true);this.nylasComposerElement=t.querySelector("nylas-composer")}async componentDidLoad(){c(`[nylas-view-thread] Component did load`)}async threadChanged(e){c(`[nylas-view-thread] Thread changed`,{thread:e});this.internalMessages=[];const s=this.threadSelected.emit(e);if(!s.defaultPrevented){c(`[nylas-view-thread] Default event not prevented, initializing`)}}updateInternalMessages(e){c(`[nylas-view-thread] Updating internal messages`,{messages:e});const s=e.sort(((e,s)=>e.date>s.date?1:-1)).map(((s,a)=>({id:s.id,data:s,collapse:a===e.length-1?false:true,showContactData:false})));this.internalMessages=s}render(){const a=this.internalMessages.length>2?this.internalMessages[0]:null;const t=this.internalMessages.slice(this.internalMessages.length-2,this.internalMessages.length);const o=this.internalMessages.slice(1,this.internalMessages.length-2);const i=this.internalMessages[this.internalMessages.length-1];return e(r,{key:"8ade6488ceb0fcb6adf005680d576fda88f64496"},e("sp-theme",{key:"f00286f2912ce3323c18ac882542d20503ec40d4",scale:"medium",color:"dark"},e("div",{key:"ee0f3745e8eb99e0d6a44cabad0082e902eb7643",class:"view-thread"},e("div",{key:"e744694998ea21315679579c15deb8a7352ea562",class:"header"},e("div",{key:"62c5aaace6863625a35c1cf5f46d1b54f917a1ff",class:"subject"},this.thread?.subject),e("div",{key:"d293b211dcb48491d848ce563f46d2ff65552956",class:"folders"},this.thread?.folders?.map((s=>e("sp-tag",{size:"s"},h(s.replace("CATEGORY_","").replace("_"," "))))))),e("div",{key:"4a787a137076d8cbe4ef9b4680b7c4148a28f668",class:"messages"},a&&e(p,{message:a,attachments:this.attachments.filter((e=>e.messageId===a.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement}),o.length>0&&this.messages.length>1&&!this.showAllEmails&&t.length>0&&e(s,null,e("div",{class:"show-more"},e("button",{type:"button",onClick:this.onShowAllEmailsClick},e("span",{class:"avatar"},o.length)," ",e("span",{class:"sr-only"},"Show ",o.length," more emails"))),e("hr",null)),o.length>0&&this.showAllEmails&&this.messages.length>2&&o.map((s=>e(p,{message:s,attachments:this.attachments.filter((e=>e.messageId===a?.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement}))),t.length>0&&t.map((s=>e(p,{message:s,attachments:this.attachments.filter((e=>e.messageId===a?.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement})))),!(this.showComposer&&i)&&e("div",{class:"reply-buttons"},e("sp-button",{variant:"cta",type:"button",onClick:this.showComposerClick},e("span",{slot:"icon"},e("reply-icon",null)),e("span",null,"Reply")),e("sp-button",{variant:"cta",type:"button"},e("span",{slot:"icon"},e("reply-all-icon",null)),e("span",null,"Reply All")),e("sp-button",{variant:"cta",type:"button"},e("span",{slot:"icon"},e("forward-icon",null)),e("span",null,"Forward"))),this.showComposer&&i&&e("div",{class:"composer"},e("nylas-composer",{message:i.data,onClose:this.showComposerClick,onSend:e=>{c(`[nylas-view-thread] Send event`,{message:e.detail.message,replyBody:e.detail.replyBody})}})))))}get host(){return o(this)}static get watchers(){return{thread:["threadChanged"],messages:["updateInternalMessages"]}}};v([i({name:"nylas-view-thread",stateToProps:new Map([["mailbox.selectedThread","thread"],["mailbox.messages","messages"],["mailbox.state","state"]]),eventToProps:{threadSelected:async(e,s)=>{c(`[nylas-view-thread] Nylas init event. Fetching thread messages.`,{event:e});const a=e.detail;if(a&&a.id){await s.messages.getThreadMessages(a.id)}}},fireRegisterEvent:true}),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],f.prototype,"render",null);f.style=g;export{f as nylas_view_thread};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{h as e,F as s,r as a,c as t,H as r,a as o}from"./p-68c2fadf.js";import{R as i}from"./p-795b324a.js";import{j as n,b as l,k as d,a as c,t as h}from"./p-6c11737d.js";import"./p-02aa5f03.js";import"./p-cb65c223.js";function m(e,s,a,t,r){if(!t){return}if(!a){return}if(a.children.length>0){return}c(`[nylas-view-thread] Rendering email`,{message:e,attachments:s,viewEmailElement:t});const o=t.cloneNode(true);o.message=e.data;o.parent=r;a.appendChild(o)}const p=({viewEmailElement:a,message:t,attachments:r,onMessageClick:o,onShowContactDataClick:i,parent:c})=>e(s,null,e("div",{key:t.id,class:"message"},e("div",{class:"sub-header","data-id":t.data.id,onClick:o},e("div",{class:"avatar"},t.data.from&&t.data.from[0]?.name&&t.data.from[0]?.name[0]?.toUpperCase()),e("div",{class:"from"},e("span",{class:"name"},t.data.from&&t.data.from[0]?.name)," ",e("span",{class:"email"},t.data.from&&t.data.from[0]?.email)),e("div",{class:"date"},new Date(t.data.date*1e3).toLocaleTimeString(undefined,{timeStyle:"short"})," ","(",n(new Date(t.data.date*1e3)),")"),e("sp-button-group",{class:"buttons"},e("nylas-summarize-message-button",{message:t.data})),t.collapse&&e("div",{class:"snippet"},t.data.snippet),!t.collapse&&t.data.to&&e("div",{class:"to"},e("span",null,"to")," ",l(t.data.to)," ",e("button",{type:"button",value:t.data.id,onClick:i,class:{expand:true,"expand--showContactData":t.showContactData}},e("chevron-icon",null)))),t.showContactData&&e("div",{class:"address-info"},e("div",{class:"label"},"From"),e("div",{class:"value"},d(t.data?.from?t?.data?.from[0]:{name:"",email:""})),t.data.to&&e(s,null,e("div",{class:"label"},"To"),e("div",{class:"value"},t.data.to.map((s=>e("div",null,d(s)))))),typeof t.data.cc!=="undefined"&&t.data.cc.length>0&&e(s,null,e("div",{class:"label"},"CC"),e("div",{class:"value"},t.data.cc.map((s=>e("div",null,d(s))))))),!t.collapse&&a&&e("div",{key:t.id,ref:e=>m(t,r,e,a,c)}),!t.collapse&&!a&&e("nylas-view-email",{key:t.id,message:t.data,parent:c})),e("hr",null));const u=':host{display:block;font-size:inherit}.avatar{z-index:1;border-radius:100%;background-color:var(--nylas-color-primary-200);height:40px;width:40px;align-items:center;display:flex;justify-content:center;border:1px solid var(--nylas-color-primary-200)}.view-thread{display:grid;grid-auto-flow:row;width:100%}.view-thread .header{display:grid;grid-gap:1rem;align-items:center;margin-bottom:1rem}.view-thread .header .subject{font-size:1.25rem;font-weight:600;line-height:1.5rem}.view-thread .header .folders{display:grid;grid-auto-flow:column;grid-auto-columns:min-content;overflow-x:auto;gap:1rem}.view-thread .header .folders .folder{padding:0 0.5rem;font-size:0.9rem;color:var(--nylas-color-primary-900);background-color:var(--nylas-color-primary-300)}.view-thread .messages{display:grid;gap:1rem}.view-thread .messages hr{margin:0;width:100%;border:1px solid var(--nylas-color-primary-200)}.view-thread .messages hr:last-of-type{display:none}.view-thread .messages .message{display:grid;grid-auto-flow:row;gap:1rem}.view-thread .messages .message:last-of-type .sub-header{cursor:default}.view-thread .messages .message .sub-header{display:grid;grid-template:"avatar from date buttons" "avatar to to buttons";grid-column-gap:1rem;grid-template-columns:auto 1fr auto auto;cursor:pointer}.view-thread .messages .message .sub-header>*{pointer-events:none}.view-thread .messages .message .sub-header .avatar{grid-area:avatar}.view-thread .messages .message .sub-header .from{grid-area:from}.view-thread .messages .message .sub-header .from span.email{display:none;color:var(--nylas-color-primary-400);font-weight:600}.view-thread .messages .message .sub-header .buttons{grid-area:buttons;align-self:center}.view-thread .messages .message .sub-header .buttons *{pointer-events:all}.view-thread .messages .message .sub-header .date{grid-area:date;align-self:center;color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .snippet{width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--nylas-color-primary-600)}.view-thread .messages .message .sub-header .to{grid-area:to;color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .to>span{color:var(--nylas-color-primary-400)}.view-thread .messages .message .sub-header .to button{border:0;background-color:transparent;cursor:pointer;pointer-events:all;padding:0;margin:0}.view-thread .messages .message .sub-header .to button>*{pointer-events:none}.view-thread .messages .message .sub-header .to button chevron-icon{display:inline-table;fill:var(--nylas-color-primary-400);width:15px;height:15px;vertical-align:middle}.view-thread .messages .message .sub-header .to button chevron-icon svg{width:15px;height:15px;transform:rotate(90deg)}.view-thread .messages .message .sub-header .to button.expand--showContactData chevron-icon svg{transform:rotate(270deg)}.view-thread .messages .message .address-info{display:grid;column-gap:1rem;row-gap:0.5rem;grid-template-columns:auto 1fr;grid-template-rows:1fr;padding:1rem 2rem;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-color-primary-200);align-items:flex-start;color:var(--nylas-color-primary-600)}.view-thread .messages .message .address-info .label{color:var(--nylas-color-primary-400);font-weight:600}.show-more{position:relative;display:flex;width:100%}.show-more .sr-only{display:none}.show-more button{position:relative;display:inline-flex;width:100%;padding:0;border:0;background-color:transparent;cursor:pointer;text-align:left;overflow:hidden}.show-more button span{border:1px solid var(--nylas-color-primary-400)}.show-more button:hover span{background-color:var(--nylas-color-primary-700)}.show-more button::after{border-top:1px solid rgba(100, 121, 143, 0.122);border-bottom:1px solid rgba(100, 121, 143, 0.122);content:"";height:4px;width:100%;position:absolute;top:50%}.loading{position:absolute;width:100%;height:100%;background-color:var(--loading__background-color);top:0;bottom:0;left:0;z-index:1;display:grid;justify-content:center;align-items:center;font-weight:600;overflow:hidden}.reply-buttons{display:grid;grid-auto-flow:column;grid-auto-columns:min-content;gap:1rem;margin-top:1rem}.reply-buttons sp-button{border-radius:var(--nylas-border-radius);background-color:var(--nylas-color-primary-400);color:var(--nylas-color-primary-900);fill:var(--nylas-color-primary-900)}.reply-buttons sp-button:hover{background-color:var(--nylas-color-primary-500)}.reply-buttons sp-button:disabled{background-color:var(--nylas-color-primary-200);color:var(--nylas-color-primary-600);cursor:not-allowed}.reply-buttons sp-button chevron-icon{display:inline-block}@media only screen and (min-width: 768px){.view-thread .messages .message .sub-header .from span.email{display:inline}}';const g=u;var v=undefined&&undefined.__decorate||function(e,s,a,t){var r=arguments.length,o=r<3?s:t===null?t=Object.getOwnPropertyDescriptor(s,a):t,i;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")o=Reflect.decorate(e,s,a,t);else for(var n=e.length-1;n>=0;n--)if(i=e[n])o=(r<3?i(o):r>3?i(s,a,o):i(s,a))||o;return r>3&&o&&Object.defineProperty(s,a,o),o};var y=undefined&&undefined.__metadata||function(e,s){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,s)};const f=class{constructor(e){a(this,e);this.threadSelected=t(this,"threadSelected",7);this.showContactDataClicked=t(this,"showContactDataClicked",7);this.messageClicked=t(this,"messageClicked",7);this.nylasViewEmailElement=null;this.nylasComposerElement=null;this.onShowContactDataClick=e=>{e.stopPropagation();const s=e.target;const a=s.value;const t=this.internalMessages.find((e=>e.data.id===a));if(!t){c(`[nylas-view-thread] Could not find message ${a}`);return}const r=this.showContactDataClicked.emit(t.data);if(!r.defaultPrevented){t.showContactData=!t.showContactData;this.internalMessages=[...this.internalMessages]}c(`[nylas-view-thread] show contact data clicked ${a} ${t.showContactData?"collapsed":"expanded"}`)};this.onMessageClick=e=>{const s=e.target;const a=s.dataset.id;const t=this.internalMessages.find((e=>e.data.id===a));if(!t){c(`[nylas-view-thread] Could not find message ${a}`);return}const r=this.messageClicked.emit(t.data);if(!r.defaultPrevented){if(t.id!==this.internalMessages[this.internalMessages.length-1]?.id){t.collapse=!t.collapse;if(t.collapse){t.showContactData=false}}this.internalMessages=[...this.internalMessages]}c(`[nylas-view-thread] message clicked ${a} ${t.collapse?"collapsed":"expanded"}`)};this.onShowAllEmailsClick=()=>{this.showAllEmails=!this.showAllEmails};this.showComposerClick=()=>{this.showComposer=!this.showComposer};this.draft=undefined;this.thread=undefined;this.messages=[];this.attachments=[];this.state="loading";this.internalMessages=[];this.showAllEmails=false;this.showComposer=false}connectedCallback(){}disconnectedCallback(){}async componentWillLoad(){c(`[nylas-view-thread] Component will load`);this.updateInternalMessages(this.messages);const e=this.host.querySelector("template.nylas-view-email");if(!e){c(`[nylas-view-thread] Could not find template`);return}const s=document.importNode(e.content,true);this.nylasViewEmailElement=s.querySelector("nylas-view-email");const a=this.host.querySelector("template.nylas-composer");if(!a){c(`[nylas-view-thread] Could not find composer template`);return}const t=document.importNode(a.content,true);this.nylasComposerElement=t.querySelector("nylas-composer")}async componentDidLoad(){c(`[nylas-view-thread] Component did load`)}async threadChanged(e){c(`[nylas-view-thread] Thread changed`,{thread:e});this.internalMessages=[];const s=this.threadSelected.emit(e);if(!s.defaultPrevented){c(`[nylas-view-thread] Default event not prevented, initializing`)}}updateInternalMessages(e){c(`[nylas-view-thread] Updating internal messages`,{messages:e});const s=e.sort(((e,s)=>e.date>s.date?1:-1)).map(((s,a)=>({id:s.id,data:s,collapse:a===e.length-1?false:true,showContactData:false})));this.internalMessages=s}render(){const a=this.internalMessages.length>2?this.internalMessages[0]:null;const t=this.internalMessages.slice(this.internalMessages.length-2,this.internalMessages.length);const o=this.internalMessages.slice(1,this.internalMessages.length-2);const i=this.internalMessages[this.internalMessages.length-1];return e(r,{key:"8b4459b8f4dbcc01acb471b7afa12dab9d0f64a1"},e("sp-theme",{key:"61592e2541d6c6ee20fef2228e3a3f09deba9b12",scale:"medium",color:"dark"},e("div",{key:"f5fe70c029112613165817c878e92b92eb2a760a",class:"view-thread"},e("div",{key:"a86274fb7b882ac2088462882f53f8b286a42fd5",class:"header"},e("div",{key:"be69e266a322bed8de3c6667701706dd062191ea",class:"subject"},this.thread?.subject),e("div",{key:"46ffc81d709d2a54c55c681f43f56b5cfdc668af",class:"folders"},this.thread?.folders?.map((s=>e("sp-tag",{size:"s"},h(s.replace("CATEGORY_","").replace("_"," "))))))),e("div",{key:"688c3dc248ddb6cfeefb1244451e0ba1e76cec5f",class:"messages"},a&&e(p,{message:a,attachments:this.attachments.filter((e=>e.messageId===a.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement}),o.length>0&&this.messages.length>1&&!this.showAllEmails&&t.length>0&&e(s,null,e("div",{class:"show-more"},e("button",{type:"button",onClick:this.onShowAllEmailsClick},e("span",{class:"avatar"},o.length)," ",e("span",{class:"sr-only"},"Show ",o.length," more emails"))),e("hr",null)),o.length>0&&this.showAllEmails&&this.messages.length>2&&o.map((s=>e(p,{message:s,attachments:this.attachments.filter((e=>e.messageId===a?.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement}))),t.length>0&&t.map((s=>e(p,{message:s,attachments:this.attachments.filter((e=>e.messageId===a?.id)),onMessageClick:this.onMessageClick,onShowContactDataClick:this.onShowContactDataClick,parent:this.host,viewEmailElement:this.nylasViewEmailElement,composerElement:this.nylasComposerElement})))),!(this.showComposer&&i)&&e("div",{class:"reply-buttons"},e("sp-button",{variant:"cta",type:"button",onClick:this.showComposerClick},e("span",{slot:"icon"},e("reply-icon",null)),e("span",null,"Reply")),e("sp-button",{variant:"cta",type:"button"},e("span",{slot:"icon"},e("reply-all-icon",null)),e("span",null,"Reply All")),e("sp-button",{variant:"cta",type:"button"},e("span",{slot:"icon"},e("forward-icon",null)),e("span",null,"Forward"))),this.showComposer&&i&&e("div",{class:"composer"},e("nylas-composer",{message:i.data,onClose:this.showComposerClick,onSend:e=>{c(`[nylas-view-thread] Send event`,{message:e.detail.message,replyBody:e.detail.replyBody})}})))))}get host(){return o(this)}static get watchers(){return{thread:["threadChanged"],messages:["updateInternalMessages"]}}};v([i({name:"nylas-view-thread",stateToProps:new Map([["mailbox.selectedThread","thread"],["mailbox.messages","messages"],["mailbox.state","state"]]),eventToProps:{threadSelected:async(e,s)=>{c(`[nylas-view-thread] Nylas init event. Fetching thread messages.`,{event:e});const a=e.detail;if(a&&a.id){await s.messages.getThreadMessages(a.id)}}},fireRegisterEvent:true}),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],f.prototype,"render",null);f.style=g;export{f as nylas_view_thread};
|
|
2
|
+
//# sourceMappingURL=p-4b6995fe.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as c,h as e}from"./p-68c2fadf.js";const a=".sc-add-circle-icon-h{display:flex}";const d=a;const s=class{constructor(e){c(this,e);this.width="24";this.height="25"}render(){return e("svg",{key:"c771b64a88c07e3ec1c7d130c59db3e7e641aa7f",width:this.width,height:this.height,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"11ad5da72136b0629456992773efea6331bda035",d:"M12 2.5c5.523 0 10 4.477 10 10s-4.477 10-10 10-10-4.477-10-10 4.477-10 10-10ZM12 4a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17Zm0 3.5a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7.5Z",fill:"currentColor"}))}};s.style=d;const t=".sc-close-icon-h{display:flex}";const f=t;const l=class{constructor(e){c(this,e);this.width="16";this.height="16"}render(){return e("svg",{key:"1f4cafa2d1d0c1475d528cc453190601c12bc137",width:"21",height:"21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("g",{key:"a86d2097fd97fe367d841d153287c9c9060f1ee7","clip-path":"url(#a)"},e("path",{key:"dc64e4cdbdce4e446f45ebe29473728b2f8370d8",d:"M5.73 4.574a.75.75 0 1 0-1.061 1.06l4.419 4.42-4.42 4.42a.75.75 0 1 0 1.061 1.06l4.42-4.42 4.419 4.42a.75.75 0 0 0 1.06-1.06l-4.419-4.42 4.42-4.42a.75.75 0 1 0-1.061-1.06l-4.42 4.42-4.419-4.42Z",fill:"currentColor"})),e("defs",{key:"c75720df166d0f8270202d45c6c73b0d0cea7d53"},e("clipPath",{key:"d88ab478608f0f1e4acc6f9486303820b4070e74",id:"a"},e("path",{key:"5d59780cc04f782d03c73ff91c32441bbfaceec8",fill:"#fff",transform:"translate(.148 .054)",d:"M0 0h20v20H0z"}))))}};l.style=f;export{s as add_circle_icon,l as close_icon};
|
|
2
|
+
//# sourceMappingURL=p-4cdd4107.entry.js.map
|