@nylas/web-elements 1.1.0-canary.8 → 1.1.0-canary.9
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_22.cjs.entry.js → add-circle-icon_21.cjs.entry.js} +35 -156
- package/dist/cjs/add-circle-icon_21.cjs.entry.js.map +1 -0
- package/dist/cjs/forward-icon_6.cjs.entry.js +2 -2
- package/dist/cjs/google-logo-icon_4.cjs.entry.js +24 -16
- package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
- package/dist/cjs/index-7af03e3f.js +1 -158
- package/dist/cjs/index-c14ea8f5.js +1 -362
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/{index.es-4a7d8d3f.js → index.es-cc2d145f.js} +3 -3
- package/dist/cjs/index.es-cc2d145f.js.map +1 -0
- package/dist/cjs/{index.es-b2cce060.js → index.es-ec84e726.js} +3 -3
- package/dist/cjs/index.es-ec84e726.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{mailbox-store-ecceb918.js → mailbox-store-5ea7604e.js} +3 -3
- package/dist/cjs/{mailbox-store-a2f858b7.js.map → mailbox-store-5ea7604e.js.map} +1 -1
- package/dist/cjs/{mailbox-store-a2f858b7.js → mailbox-store-a02df2a7.js} +3 -3
- package/dist/cjs/{mailbox-store-ecceb918.js.map → mailbox-store-a02df2a7.js.map} +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/nylas-additional-participants.cjs.entry.js +2 -2
- package/dist/cjs/{nylas-api-request-c9e0e347.js → nylas-api-request-05f1e068.js} +2 -2
- package/dist/cjs/{nylas-api-request-c9e0e347.js.map → nylas-api-request-05f1e068.js.map} +1 -1
- package/dist/cjs/{nylas-api-request-28b4576a.js → nylas-api-request-de316f1a.js} +2 -2
- package/dist/cjs/{nylas-api-request-28b4576a.js.map → nylas-api-request-de316f1a.js.map} +1 -1
- package/dist/cjs/nylas-availability-picker.cjs.entry.js +4 -3
- package/dist/cjs/nylas-availability-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-booked-event-card.cjs.entry.js +21 -5
- package/dist/cjs/nylas-booked-event-card.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +54 -9
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js +2 -2
- package/dist/cjs/nylas-booking-form.cjs.entry.js +2 -2
- package/dist/cjs/nylas-buffer-time.cjs.entry.js +4 -4
- package/dist/cjs/nylas-buffer-time.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-calendar-picker.cjs.entry.js +2 -2
- package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +2 -2
- package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +22 -5
- package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-composer.cjs.entry.js +1 -1
- package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +2 -2
- package/dist/cjs/nylas-date-picker.cjs.entry.js +15 -3
- package/dist/cjs/nylas-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-editor-tabs.cjs.entry.js +18 -12
- package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-event-description.cjs.entry.js +2 -2
- package/dist/cjs/nylas-event-duration.cjs.entry.js +2 -2
- package/dist/cjs/nylas-event-info.cjs.entry.js +3 -3
- package/dist/cjs/nylas-event-info.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-event-limits.cjs.entry.js +3 -3
- package/dist/cjs/nylas-event-limits.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-event-title.cjs.entry.js +2 -2
- package/dist/cjs/nylas-form-card.cjs.entry.js +2 -2
- package/dist/cjs/nylas-if-state.cjs.entry.js +2 -2
- package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +3 -3
- package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-list-configurations.cjs.entry.js +8 -6
- package/dist/cjs/nylas-list-configurations.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-list-folders.cjs.entry.js +2 -2
- package/dist/cjs/nylas-list-threads.cjs.entry.js +2 -2
- package/dist/cjs/nylas-locale-switch.cjs.entry.js +2 -2
- package/dist/cjs/nylas-location-component.cjs.entry.js +3 -3
- package/dist/cjs/nylas-location-component.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-login.cjs.entry.js +2 -2
- package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js +2 -2
- package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +2 -2
- package/dist/cjs/nylas-mailbox.cjs.entry.js +3 -3
- package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +3 -3
- package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-notification.cjs.entry.js +1 -1
- package/dist/cjs/nylas-provider.cjs.entry.js +5 -5
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +8 -14
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +35 -12
- package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-selected-event-card.cjs.entry.js +2 -2
- package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +2 -2
- package/dist/cjs/nylas-threads-refresh.cjs.entry.js +2 -2
- package/dist/cjs/nylas-threads-search.cjs.entry.js +2 -2
- package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
- package/dist/cjs/nylas-timeslot-picker.cjs.entry.js +2 -2
- package/dist/cjs/nylas-view-email.cjs.entry.js +1 -1
- package/dist/cjs/nylas-view-thread.cjs.entry.js +2 -2
- package/dist/cjs/nylas-web-elements.cjs.js +1 -1
- package/dist/cjs/{register-component-98ab6f54.js → register-component-2c3ad1d1.js} +2 -2
- package/dist/cjs/{register-component-7ecacf90.js.map → register-component-2c3ad1d1.js.map} +1 -1
- package/dist/cjs/{register-component-7ecacf90.js → register-component-4f8ae42c.js} +2 -2
- package/dist/cjs/{register-component-98ab6f54.js.map → register-component-4f8ae42c.js.map} +1 -1
- package/dist/cjs/{scheduler-config-store-37690bf0.js → scheduler-config-store-918c20d5.js} +3 -4
- package/dist/cjs/scheduler-config-store-918c20d5.js.map +1 -0
- package/dist/cjs/{scheduler-config-store-529c8d7e.js → scheduler-config-store-a5b7c08b.js} +3 -4
- package/dist/cjs/scheduler-config-store-a5b7c08b.js.map +1 -0
- package/dist/cjs/{scheduler-store-22103c86.js → scheduler-store-33e204ef.js} +39 -7
- package/dist/cjs/scheduler-store-33e204ef.js.map +1 -0
- package/dist/cjs/{scheduler-store-fad9ed7a.js → scheduler-store-df23f511.js} +39 -7
- package/dist/cjs/scheduler-store-df23f511.js.map +1 -0
- package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
- package/dist/cjs/{utils-d8cfc3be.js → utils-85bd0909.js} +64 -2
- package/dist/cjs/utils-85bd0909.js.map +1 -0
- package/dist/cjs/{utils-9fc33c77.js → utils-e6d76818.js} +64 -2
- package/dist/cjs/utils-e6d76818.js.map +1 -0
- package/dist/collection/common/types.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +2 -1
- package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js +56 -3
- package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +75 -6
- package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +37 -3
- package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduling.js +41 -12
- package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduling.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +2 -1
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.css +23 -3
- package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.css +7 -0
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +39 -14
- 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 +1 -1
- 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-info/nylas-event-info.js.map +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-limit-future-bookings/nylas-limit-future-bookings.css +7 -1
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.css +20 -2
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +5 -3
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.css +5 -0
- package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.css +7 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.css +20 -0
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +6 -13
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler-config.js +0 -1
- package/dist/collection/connector/shared/api/scheduler-config.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler.js +37 -5
- package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
- package/dist/collection/stores/scheduler-config-store.js +2 -3
- package/dist/collection/stores/scheduler-config-store.js.map +1 -1
- package/dist/collection/stores/scheduler-store.js.map +1 -1
- package/dist/collection/utils/utils.js +60 -1
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.es.js +2 -2
- package/dist/components/index.es.js.map +1 -1
- package/dist/components/nylas-availability-picker2.js +2 -1
- package/dist/components/nylas-availability-picker2.js.map +1 -1
- package/dist/components/nylas-booked-event-card2.js +22 -5
- package/dist/components/nylas-booked-event-card2.js.map +1 -1
- package/dist/components/nylas-buffer-time2.js +2 -2
- package/dist/components/nylas-buffer-time2.js.map +1 -1
- package/dist/components/nylas-cancelled-event-card2.js +23 -4
- package/dist/components/nylas-cancelled-event-card2.js.map +1 -1
- package/dist/components/nylas-custom-booking-flow.js +170 -1
- package/dist/components/nylas-custom-booking-flow.js.map +1 -1
- package/dist/components/nylas-date-picker2.js +17 -3
- package/dist/components/nylas-date-picker2.js.map +1 -1
- package/dist/components/nylas-editor-tabs2.js +52 -51
- package/dist/components/nylas-editor-tabs2.js.map +1 -1
- package/dist/components/nylas-event-info2.js +1 -1
- package/dist/components/nylas-event-info2.js.map +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-title2.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 +7 -5
- 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-location-component2.js +1 -1
- package/dist/components/nylas-location-component2.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-scheduler-editor.js +46 -59
- package/dist/components/nylas-scheduler-editor.js.map +1 -1
- package/dist/components/nylas-scheduling.js +34 -11
- package/dist/components/nylas-scheduling.js.map +1 -1
- package/dist/components/nylas-summarize-message-button2.js +1 -1
- package/dist/components/nylas-timeslot-picker2.js +1 -1
- package/dist/components/nylas-view-email2.js +1 -1
- package/dist/components/nylas-view-thread.js +1 -1
- package/dist/components/scheduler-config-store.js +2 -3
- package/dist/components/scheduler-config-store.js.map +1 -1
- package/dist/components/scheduler-store.js +37 -5
- package/dist/components/scheduler-store.js.map +1 -1
- package/dist/components/utils.js +61 -2
- package/dist/components/utils.js.map +1 -1
- package/dist/esm/{add-circle-icon_22.entry.js → add-circle-icon_21.entry.js} +36 -156
- package/dist/esm/add-circle-icon_21.entry.js.map +1 -0
- package/dist/esm/forward-icon_6.entry.js +2 -2
- package/dist/esm/google-logo-icon_4.entry.js +24 -16
- package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
- package/dist/esm/index-7cb0dd3d.js +1 -158
- package/dist/esm/index-8362ce5c.js +1 -362
- package/dist/esm/{index.es-df564f87.js → index.es-be19d2df.js} +3 -3
- package/dist/esm/index.es-be19d2df.js.map +1 -0
- package/dist/{nylas-web-elements/index.es-e4f027a2.js → esm/index.es-eb477d56.js} +3 -3
- package/dist/esm/index.es-eb477d56.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{mailbox-store-69c5c5f6.js → mailbox-store-76540d24.js} +3 -3
- package/dist/{nylas-web-elements/mailbox-store-5075f820.js.map → esm/mailbox-store-76540d24.js.map} +1 -1
- package/dist/{nylas-web-elements/mailbox-store-5075f820.js → esm/mailbox-store-9f819402.js} +3 -3
- package/dist/esm/{mailbox-store-5075f820.js.map → mailbox-store-9f819402.js.map} +1 -1
- package/dist/esm/multi-select-dropdown.entry.js +1 -1
- package/dist/esm/nylas-additional-participants.entry.js +2 -2
- package/dist/esm/{nylas-api-request-b49b1da6.js → nylas-api-request-59738f8c.js} +2 -2
- package/dist/esm/{nylas-api-request-b49b1da6.js.map → nylas-api-request-59738f8c.js.map} +1 -1
- package/dist/{nylas-web-elements/nylas-api-request-6a19db25.js → esm/nylas-api-request-ff2869d7.js} +2 -2
- package/dist/esm/{nylas-api-request-6a19db25.js.map → nylas-api-request-ff2869d7.js.map} +1 -1
- package/dist/esm/nylas-availability-picker.entry.js +4 -3
- package/dist/esm/nylas-availability-picker.entry.js.map +1 -1
- package/dist/esm/nylas-booked-event-card.entry.js +21 -5
- package/dist/esm/nylas-booked-event-card.entry.js.map +1 -1
- package/dist/esm/nylas-booked-event-card_10.entry.js +54 -9
- package/dist/esm/nylas-booked-event-card_10.entry.js.map +1 -1
- package/dist/esm/nylas-booking-calendar-picker.entry.js +2 -2
- package/dist/esm/nylas-booking-form.entry.js +2 -2
- package/dist/esm/nylas-buffer-time.entry.js +4 -4
- package/dist/esm/nylas-buffer-time.entry.js.map +1 -1
- package/dist/esm/nylas-calendar-picker.entry.js +2 -2
- package/dist/esm/nylas-cancel-booking-form.entry.js +2 -2
- package/dist/esm/nylas-cancelled-event-card.entry.js +22 -5
- package/dist/esm/nylas-cancelled-event-card.entry.js.map +1 -1
- package/dist/esm/nylas-composer.entry.js +1 -1
- package/dist/esm/nylas-custom-booking-flow.entry.js +2 -2
- package/dist/esm/nylas-date-picker.entry.js +15 -3
- package/dist/esm/nylas-date-picker.entry.js.map +1 -1
- package/dist/esm/nylas-editor-tabs.entry.js +18 -12
- package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
- package/dist/esm/nylas-event-description.entry.js +2 -2
- package/dist/esm/nylas-event-duration.entry.js +2 -2
- package/dist/esm/nylas-event-info.entry.js +3 -3
- package/dist/esm/nylas-event-info.entry.js.map +1 -1
- package/dist/esm/nylas-event-limits.entry.js +3 -3
- package/dist/esm/nylas-event-limits.entry.js.map +1 -1
- package/dist/esm/nylas-event-title.entry.js +2 -2
- package/dist/esm/nylas-form-card.entry.js +2 -2
- package/dist/esm/nylas-if-state.entry.js +2 -2
- package/dist/esm/nylas-limit-future-bookings.entry.js +3 -3
- package/dist/esm/nylas-limit-future-bookings.entry.js.map +1 -1
- package/dist/esm/nylas-list-configurations.entry.js +8 -6
- package/dist/esm/nylas-list-configurations.entry.js.map +1 -1
- package/dist/esm/nylas-list-folders.entry.js +2 -2
- package/dist/esm/nylas-list-threads.entry.js +2 -2
- package/dist/esm/nylas-locale-switch.entry.js +2 -2
- package/dist/esm/nylas-location-component.entry.js +3 -3
- package/dist/esm/nylas-location-component.entry.js.map +1 -1
- package/dist/esm/nylas-login.entry.js +2 -2
- package/dist/esm/nylas-mailbox-pagination.entry.js +2 -2
- package/dist/esm/nylas-mailbox-toolbar-button.entry.js +2 -2
- package/dist/esm/nylas-mailbox.entry.js +3 -3
- package/dist/esm/nylas-min-cancellation-notice.entry.js +3 -3
- package/dist/esm/nylas-min-cancellation-notice.entry.js.map +1 -1
- package/dist/esm/nylas-notification.entry.js +1 -1
- package/dist/esm/nylas-provider.entry.js +5 -5
- package/dist/esm/nylas-scheduler-editor.entry.js +8 -14
- package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/esm/nylas-scheduling.entry.js +35 -12
- package/dist/esm/nylas-scheduling.entry.js.map +1 -1
- package/dist/esm/nylas-selected-event-card.entry.js +2 -2
- package/dist/esm/nylas-summarize-message-button.entry.js +2 -2
- package/dist/esm/nylas-threads-refresh.entry.js +2 -2
- package/dist/esm/nylas-threads-search.entry.js +2 -2
- package/dist/esm/nylas-time-window-picker.entry.js +1 -1
- package/dist/esm/nylas-timeslot-picker.entry.js +2 -2
- package/dist/esm/nylas-view-email.entry.js +1 -1
- package/dist/esm/nylas-view-thread.entry.js +2 -2
- package/dist/esm/nylas-web-elements.js +1 -1
- package/dist/{nylas-web-elements/register-component-ff6f5df4.js → esm/register-component-0462b27d.js} +2 -2
- package/dist/esm/{register-component-b9cfcbaf.js.map → register-component-0462b27d.js.map} +1 -1
- package/dist/esm/{register-component-b9cfcbaf.js → register-component-83e24412.js} +2 -2
- package/dist/esm/{register-component-ff6f5df4.js.map → register-component-83e24412.js.map} +1 -1
- package/dist/{nylas-web-elements/scheduler-config-store-8f2e658e.js → esm/scheduler-config-store-8ccc8dc7.js} +3 -4
- package/dist/esm/scheduler-config-store-8ccc8dc7.js.map +1 -0
- package/dist/esm/{scheduler-config-store-07d98279.js → scheduler-config-store-ec3b6190.js} +3 -4
- package/dist/esm/scheduler-config-store-ec3b6190.js.map +1 -0
- package/dist/esm/{scheduler-store-24fd0e91.js → scheduler-store-8ca9003d.js} +39 -7
- package/dist/esm/scheduler-store-8ca9003d.js.map +1 -0
- package/dist/esm/{scheduler-store-e62b2146.js → scheduler-store-e314bbe6.js} +39 -7
- package/dist/esm/scheduler-store-e314bbe6.js.map +1 -0
- package/dist/esm/time-period-selector.entry.js +1 -1
- package/dist/esm/{utils-3e18e0b2.js → utils-157014b4.js} +62 -3
- package/dist/esm/utils-157014b4.js.map +1 -0
- package/dist/esm/{utils-db11d29c.js → utils-e6b73120.js} +62 -3
- package/dist/esm/utils-e6b73120.js.map +1 -0
- package/dist/{esm/index.es-e4f027a2.js → nylas-web-elements/index.es-eb477d56.js} +3 -3
- package/dist/nylas-web-elements/index.es-eb477d56.js.map +1 -0
- package/dist/nylas-web-elements/index.esm.js +2 -2
- package/dist/{esm/mailbox-store-5075f820.js → nylas-web-elements/mailbox-store-9f819402.js} +3 -3
- package/dist/{esm/mailbox-store-69c5c5f6.js.map → nylas-web-elements/mailbox-store-9f819402.js.map} +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-additional-participants.entry.js +2 -2
- package/dist/{esm/nylas-api-request-6a19db25.js → nylas-web-elements/nylas-api-request-ff2869d7.js} +2 -2
- package/dist/nylas-web-elements/{nylas-api-request-6a19db25.js.map → nylas-api-request-ff2869d7.js.map} +1 -1
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js +4 -3
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +21 -5
- package/dist/nylas-web-elements/nylas-booked-event-card.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-booking-form.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-buffer-time.entry.js +4 -4
- package/dist/nylas-web-elements/nylas-buffer-time.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +22 -5
- package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-composer.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-date-picker.entry.js +15 -3
- package/dist/nylas-web-elements/nylas-date-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +18 -12
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-description.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-event-duration.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-event-info.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-event-info.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-event-limits.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-form-card.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-if-state.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-list-configurations.entry.js +8 -6
- package/dist/nylas-web-elements/nylas-list-configurations.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-list-folders.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-list-threads.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-locale-switch.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-location-component.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-location-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-login.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-mailbox-pagination.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-mailbox.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-notification.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-provider.entry.js +5 -5
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +8 -14
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.js +35 -12
- package/dist/nylas-web-elements/nylas-scheduling.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-threads-search.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-view-email.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-view-thread.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/{p-ad7cf473.js → p-01e86103.js} +2 -2
- package/dist/nylas-web-elements/p-01e86103.js.map +1 -0
- package/dist/nylas-web-elements/{p-a17f542c.entry.js → p-0d1caebd.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-a3b1a98c.js → p-0dabcb4d.js} +2 -2
- package/dist/nylas-web-elements/{p-22531c3d.entry.js → p-2b63efd8.entry.js} +2 -2
- package/dist/nylas-web-elements/p-30f17ef2.entry.js +2 -0
- package/dist/nylas-web-elements/p-30f17ef2.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-21c3dcad.entry.js → p-38675cc5.entry.js} +2 -2
- package/dist/nylas-web-elements/p-39aa2263.js +2 -0
- package/dist/nylas-web-elements/p-39aa2263.js.map +1 -0
- package/dist/nylas-web-elements/{p-980c32d9.entry.js → p-44a0f658.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-980c32d9.entry.js.map → p-44a0f658.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-828165d3.entry.js → p-47fa06de.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-7614e31e.entry.js → p-48b205a2.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-f3974e14.entry.js → p-551871cb.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-434fcde2.entry.js → p-61b25ea6.entry.js} +2 -2
- package/dist/nylas-web-elements/p-74492776.entry.js +2 -0
- package/dist/nylas-web-elements/p-74492776.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-7687925d.entry.js → p-75bc6ef8.entry.js} +2 -2
- package/dist/nylas-web-elements/p-76461af6.entry.js +2 -0
- package/dist/nylas-web-elements/p-76461af6.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-2d151de9.entry.js → p-78e7f732.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-f0f3f350.js → p-8b53becf.js} +2 -2
- package/dist/nylas-web-elements/{p-47b99cf5.js → p-8f88a748.js} +2 -2
- package/dist/nylas-web-elements/p-8ffc644d.entry.js +2 -0
- package/dist/nylas-web-elements/p-8ffc644d.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-f5d17746.entry.js → p-933c6d32.entry.js} +4 -4
- package/dist/nylas-web-elements/p-933c6d32.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-4154e97e.entry.js → p-a002b4cf.entry.js} +2 -2
- package/dist/nylas-web-elements/p-ab09a78d.js +2 -0
- package/dist/nylas-web-elements/p-ab09a78d.js.map +1 -0
- package/dist/nylas-web-elements/p-b1b3eb52.entry.js +2 -0
- package/dist/nylas-web-elements/p-b1b3eb52.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-f47163ac.entry.js → p-b302fbb1.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-5caa0f36.entry.js → p-b77c316c.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-d5375409.entry.js → p-d3065401.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-bb89e973.entry.js → p-da732fb1.entry.js} +2 -2
- package/dist/nylas-web-elements/p-ee91a2a0.js +2 -0
- package/dist/nylas-web-elements/p-ee91a2a0.js.map +1 -0
- package/dist/{esm/register-component-ff6f5df4.js → nylas-web-elements/register-component-0462b27d.js} +2 -2
- package/dist/nylas-web-elements/{register-component-ff6f5df4.js.map → register-component-0462b27d.js.map} +1 -1
- package/dist/{esm/scheduler-config-store-8f2e658e.js → nylas-web-elements/scheduler-config-store-8ccc8dc7.js} +3 -4
- package/dist/nylas-web-elements/scheduler-config-store-8ccc8dc7.js.map +1 -0
- package/dist/nylas-web-elements/{scheduler-store-e62b2146.js → scheduler-store-e314bbe6.js} +39 -7
- package/dist/nylas-web-elements/scheduler-store-e314bbe6.js.map +1 -0
- package/dist/nylas-web-elements/time-period-selector.entry.js +1 -1
- package/dist/nylas-web-elements/{utils-3e18e0b2.js → utils-157014b4.js} +62 -3
- package/dist/nylas-web-elements/utils-157014b4.js.map +1 -0
- package/dist/types/common/types.d.ts +10 -0
- package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +8 -1
- package/dist/types/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.d.ts +8 -2
- package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +3 -0
- package/dist/types/components/scheduler/nylas-scheduler/nylas-scheduling.d.ts +2 -0
- package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +1 -1
- package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +2 -1
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +1 -2
- package/dist/types/components.d.ts +87 -16
- package/dist/types/connector/shared/api/scheduler.d.ts +4 -1
- package/dist/types/stores/scheduler-config-store.d.ts +0 -1
- package/dist/types/stores/scheduler-store.d.ts +11 -0
- package/dist/types/utils/utils.d.ts +4 -0
- package/package.json +3 -3
- package/dist/cjs/add-circle-icon_22.cjs.entry.js.map +0 -1
- package/dist/cjs/index.es-4a7d8d3f.js.map +0 -1
- package/dist/cjs/index.es-b2cce060.js.map +0 -1
- package/dist/cjs/scheduler-config-store-37690bf0.js.map +0 -1
- package/dist/cjs/scheduler-config-store-529c8d7e.js.map +0 -1
- package/dist/cjs/scheduler-store-22103c86.js.map +0 -1
- package/dist/cjs/scheduler-store-fad9ed7a.js.map +0 -1
- package/dist/cjs/utils-9fc33c77.js.map +0 -1
- package/dist/cjs/utils-d8cfc3be.js.map +0 -1
- package/dist/components/nylas-custom-booking-flow2.js +0 -174
- package/dist/components/nylas-custom-booking-flow2.js.map +0 -1
- package/dist/esm/add-circle-icon_22.entry.js.map +0 -1
- package/dist/esm/index.es-df564f87.js.map +0 -1
- package/dist/esm/index.es-e4f027a2.js.map +0 -1
- package/dist/esm/scheduler-config-store-07d98279.js.map +0 -1
- package/dist/esm/scheduler-config-store-8f2e658e.js.map +0 -1
- package/dist/esm/scheduler-store-24fd0e91.js.map +0 -1
- package/dist/esm/scheduler-store-e62b2146.js.map +0 -1
- package/dist/esm/utils-3e18e0b2.js.map +0 -1
- package/dist/esm/utils-db11d29c.js.map +0 -1
- package/dist/nylas-web-elements/index.es-e4f027a2.js.map +0 -1
- package/dist/nylas-web-elements/p-074919b0.entry.js +0 -2
- package/dist/nylas-web-elements/p-074919b0.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-349f07e3.entry.js +0 -2
- package/dist/nylas-web-elements/p-349f07e3.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-4c12e1e9.js +0 -2
- package/dist/nylas-web-elements/p-4c12e1e9.js.map +0 -1
- package/dist/nylas-web-elements/p-ad7cf473.js.map +0 -1
- package/dist/nylas-web-elements/p-c529dced.entry.js +0 -2
- package/dist/nylas-web-elements/p-c529dced.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-da74ec1c.entry.js +0 -2
- package/dist/nylas-web-elements/p-da74ec1c.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-db15d382.js +0 -2
- package/dist/nylas-web-elements/p-db15d382.js.map +0 -1
- package/dist/nylas-web-elements/p-f0250b7d.js +0 -2
- package/dist/nylas-web-elements/p-f0250b7d.js.map +0 -1
- package/dist/nylas-web-elements/p-f5d17746.entry.js.map +0 -1
- package/dist/nylas-web-elements/scheduler-config-store-8f2e658e.js.map +0 -1
- package/dist/nylas-web-elements/scheduler-store-e62b2146.js.map +0 -1
- package/dist/nylas-web-elements/utils-3e18e0b2.js.map +0 -1
- /package/dist/nylas-web-elements/{p-a17f542c.entry.js.map → p-0d1caebd.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a3b1a98c.js.map → p-0dabcb4d.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-22531c3d.entry.js.map → p-2b63efd8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-21c3dcad.entry.js.map → p-38675cc5.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-828165d3.entry.js.map → p-47fa06de.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7614e31e.entry.js.map → p-48b205a2.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f3974e14.entry.js.map → p-551871cb.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-434fcde2.entry.js.map → p-61b25ea6.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7687925d.entry.js.map → p-75bc6ef8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2d151de9.entry.js.map → p-78e7f732.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f0f3f350.js.map → p-8b53becf.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-47b99cf5.js.map → p-8f88a748.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-4154e97e.entry.js.map → p-a002b4cf.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f47163ac.entry.js.map → p-b302fbb1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5caa0f36.entry.js.map → p-b77c316c.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d5375409.entry.js.map → p-d3065401.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-bb89e973.entry.js.map → p-da732fb1.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Message, NylasErrorResponse } from '@nylas/core';\nimport { EventEmitter } from '@stencil/core';\n\nexport type DataState = 'loading' | 'ready';\n\ntype StoresType = unknown;\ntype StoreInstances = {\n [K in keyof StoresType]: StoresType[K];\n};\ntype StoreStateKeys<T> = T extends { state: infer S } ? keyof S : never;\n\n/**\n * This type is used to create a union of all possible store state keys.\n * Example:\n * type CombinedStoreStateKeys = \"nylas.messages\" | \"nylasTheme.colour\"\n */\nexport type CombinedStoreStateKeys<SK extends keyof S, S = StoreInstances> = {\n [StoreKey in SK]: StoreStateKeys<S[StoreKey]> extends never | undefined ? never : `${StoreKey & string}.${StoreStateKeys<S[StoreKey]> & string}`;\n}[SK];\n\nexport type InternalMessage = {\n id: string;\n data: Message;\n collapse: boolean;\n showContactData: boolean;\n};\n\nexport type InternalAttachment = {\n blob: Blob;\n filename: string;\n contentType: string;\n size: number;\n messageId: string;\n};\n\nexport type MethodKeys<T> = {\n [K in keyof T]: T[K] extends Function ? K : never;\n}[keyof T];\n\n// TODO: Move this to @nylas/core\nexport type AvailabilityTimeslot = {\n emails: string[];\n start_time: number;\n end_time: number;\n};\n\nexport type AvailabilityResponse = {\n time_slots: AvailabilityTimeslot[];\n participants: {\n email: string;\n name: string;\n }[];\n duration: number;\n};\n\n// Extracts a mapped type with keys of T that are EventEmitters, and their corresponding types\nexport type ExtractEventEmitterKeys<T> = {\n [K in keyof T]: T[K] extends EventEmitter<any> ? K : never;\n}[keyof T];\n\n// Extracts the event type from an EventEmitter\nexport type EventEmitterEventType<T> = T extends EventEmitter<infer U> ? U : never;\n\n// Extracts a mapped type with keys of T that are EventEmitters, and their corresponding types\nexport type ExtractEventEmitterProperties<T> = {\n [K in keyof T]: T[K] extends EventEmitter<infer U> ? { key: K; eventType: U } : never;\n}[keyof T];\n\nexport type NylasEvent = {\n booking_id: string;\n organizer: {\n email: string;\n name: string;\n is_organizer?: boolean;\n };\n title: string;\n description: string;\n status: string;\n};\n\nexport type DataResponseError = Exclude<NylasErrorResponse['error'], undefined>;\nexport type DataResponseReturnType<T = any> = [T, null] | [null, DataResponseError];\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Message, NylasErrorResponse } from '@nylas/core';\nimport { EventEmitter } from '@stencil/core';\n\nexport type DataState = 'loading' | 'ready';\n\ntype StoresType = unknown;\ntype StoreInstances = {\n [K in keyof StoresType]: StoresType[K];\n};\ntype StoreStateKeys<T> = T extends { state: infer S } ? keyof S : never;\n\n/**\n * This type is used to create a union of all possible store state keys.\n * Example:\n * type CombinedStoreStateKeys = \"nylas.messages\" | \"nylasTheme.colour\"\n */\nexport type CombinedStoreStateKeys<SK extends keyof S, S = StoreInstances> = {\n [StoreKey in SK]: StoreStateKeys<S[StoreKey]> extends never | undefined ? never : `${StoreKey & string}.${StoreStateKeys<S[StoreKey]> & string}`;\n}[SK];\n\nexport type InternalMessage = {\n id: string;\n data: Message;\n collapse: boolean;\n showContactData: boolean;\n};\n\nexport type InternalAttachment = {\n blob: Blob;\n filename: string;\n contentType: string;\n size: number;\n messageId: string;\n};\n\nexport type MethodKeys<T> = {\n [K in keyof T]: T[K] extends Function ? K : never;\n}[keyof T];\n\n// TODO: Move this to @nylas/core\nexport type AvailabilityTimeslot = {\n emails: string[];\n start_time: number;\n end_time: number;\n};\n\nexport type AvailabilityResponse = {\n time_slots: AvailabilityTimeslot[];\n participants: {\n email: string;\n name: string;\n }[];\n duration: number;\n};\n\nexport type UISettingsResponse = {\n scheduler: {\n available_days_in_future: number;\n min_cancellation_notice: number;\n };\n organizer: {\n name: string;\n email: string;\n };\n};\n\n// Extracts a mapped type with keys of T that are EventEmitters, and their corresponding types\nexport type ExtractEventEmitterKeys<T> = {\n [K in keyof T]: T[K] extends EventEmitter<any> ? K : never;\n}[keyof T];\n\n// Extracts the event type from an EventEmitter\nexport type EventEmitterEventType<T> = T extends EventEmitter<infer U> ? U : never;\n\n// Extracts a mapped type with keys of T that are EventEmitters, and their corresponding types\nexport type ExtractEventEmitterProperties<T> = {\n [K in keyof T]: T[K] extends EventEmitter<infer U> ? { key: K; eventType: U } : never;\n}[keyof T];\n\nexport type NylasEvent = {\n booking_id: string;\n organizer: {\n email: string;\n name: string;\n is_organizer?: boolean;\n };\n title: string;\n description: string;\n status: string;\n};\n\nexport type DataResponseError = Exclude<NylasErrorResponse['error'], undefined>;\nexport type DataResponseReturnType<T = any> = [T, null] | [null, DataResponseError];\n"]}
|
package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js
CHANGED
|
@@ -14,12 +14,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
14
14
|
};
|
|
15
15
|
import { RegisterComponent } from "../../../common/register-component";
|
|
16
16
|
import { h, Host } from "@stencil/core";
|
|
17
|
-
import { debug } from "../../../utils/utils";
|
|
17
|
+
import { addMinutesToCurrentTime, debug } from "../../../utils/utils";
|
|
18
18
|
import { TIMEZONE_MAP } from "../../../common/constants";
|
|
19
19
|
export class NylasBookedEventCard {
|
|
20
20
|
constructor() {
|
|
21
21
|
this.handleCancelBookingButtonClicked = () => {
|
|
22
|
-
|
|
22
|
+
const today = new Date();
|
|
23
|
+
const minCancellationNotice = this.configSettings?.scheduler.min_cancellation_notice;
|
|
24
|
+
const dateTillCancellation = addMinutesToCurrentTime(today, minCancellationNotice);
|
|
25
|
+
if (today.getTime() < dateTillCancellation.getTime()) {
|
|
26
|
+
this.cancelBookedEventValidationError.emit({
|
|
27
|
+
error: {
|
|
28
|
+
title: 'Cancellation Error',
|
|
29
|
+
message: `You cannot cancel the booking within ${minCancellationNotice} minutes of the event.`,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.cancelBookingButtonClicked.emit({ bookingId: this.eventInfo.booking_id });
|
|
35
|
+
}
|
|
23
36
|
};
|
|
24
37
|
this.handleRescheduleButtonClicked = () => {
|
|
25
38
|
const errorHandler = (error) => {
|
|
@@ -46,6 +59,7 @@ export class NylasBookedEventCard {
|
|
|
46
59
|
this.bookingInfo = undefined;
|
|
47
60
|
this.selectedTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
48
61
|
this.selectedTimeslot = undefined;
|
|
62
|
+
this.configSettings = undefined;
|
|
49
63
|
}
|
|
50
64
|
connectedCallback() { }
|
|
51
65
|
disconnectedCallback() { }
|
|
@@ -56,7 +70,7 @@ export class NylasBookedEventCard {
|
|
|
56
70
|
debug(`[nylas-booked-event-card] Component did load`);
|
|
57
71
|
}
|
|
58
72
|
render() {
|
|
59
|
-
return (h(Host, { key: '
|
|
73
|
+
return (h(Host, { key: 'fd31424392865287d5a696d2ea4a0840974324c1', part: "nbec" }, h("sp-theme", { key: '5e4fab19061fd773200fc8856355d2efc6c7f767', theme: "spectrum", color: "dark", scale: "medium" }, h("div", { key: '5effb33fcc0492a2f968e5b29229a974fb1bf2a3', class: "booked-event-timezone" }, h("globe-icon", { key: '7be37ec8323f0c36112e4a8c5903c2078fe0ae0e' }), TIMEZONE_MAP[this.selectedTimezone]), h("div", { key: '594e1cffea71361c2a52f5ed3f480b7fc7a6c0f4', class: "event-card-wrapper", part: "nbec__card" }, h("div", { key: 'e2bcea8c2cd100f6291846d29524ee08a2c6d6ad', class: "calendar-icon" }, h("calendar-check-icon", { key: '412d634ebd082474581d8ceba417bcefb45d10eb' })), h("div", { key: '97f9f06776a64a9ceed5f8b7c84ed9d03983e083', class: "booked-event-header" }, h("h2", { key: '7453ad8f16ca9e477a5c6f7791dbf2aa89514394', slot: "card-title", part: "nbec__title" }, "Booking ", !!this.rescheduleBookingId ? 'rescheduled' : 'confirmed', "!"), h("div", { key: '5877c31296ad8821c822b8447a9adb495eea9756', part: "nbec__description" }, this.getOrganizer(this.eventInfo)?.name || this.getOrganizer(this.eventInfo)?.email, "\u00A0&\u00A0", this.bookingInfo?.primaryParticipant?.name || this.bookingInfo?.primaryParticipant?.email)), h("sp-divider", { key: '3845e25500160ac43e0c19af3c3c3c446caca39e' }), h("div", { key: '349d849d49be4e71264436c6add7039b889f8933', class: "booking-date-time" }, h("checkmark-circle-icon", { key: 'bccea293108ed90eece51494c79c8e5ae2db1411' }), h("h3", { key: 'ee98cd2b9c877a7e8342940892ff08be4ee647e0' }, "Booking date and time"), h("p", { key: '1efd072abb08a6606299911e594a07b2de396113' }, new Date(this.selectedTimeslot?.start_time).toLocaleDateString(undefined, { dateStyle: 'full' }), " ", h("br", { key: 'e014d22678d84c7541854985d945672efde047e9' }), new Date(this.selectedTimeslot?.start_time).toLocaleTimeString(undefined, { timeStyle: 'short' }), " -", ' ', new Date(this.selectedTimeslot?.end_time).toLocaleTimeString(undefined, { timeStyle: 'short' }))), h("div", { key: '0870d9969b572bf688c4c12de934066ed36f421a', class: "booking-participants" }), h("sp-divider", { key: '85674fadb92fc69826e738545a9f9bd1c478d522' }), h("div", { key: 'c60007a3d63af3cca707736386f7cbc1d2963626', class: "footer" }, h("sp-button", { key: 'f1295268e7f3341e37e7d66d460eabc28ad56482', variant: "secondary", treatment: "outline", class: "cancel", onClick: this.handleCancelBookingButtonClicked, part: "nbec__button-outline nbec__cancel-cta" }, "Cancel booking"), h("sp-button", { key: '276674ce1eb225cfb7ea95936e1cb05056b921cc', variant: "secondary", treatment: "outline", class: "reschedule", onClick: this.handleRescheduleButtonClicked, part: "nbec__button-outline nbec__reschedule-cta" }, "Reschedule"))))));
|
|
60
74
|
}
|
|
61
75
|
static get is() { return "nylas-booked-event-card"; }
|
|
62
76
|
static get encapsulation() { return "shadow"; }
|
|
@@ -171,6 +185,29 @@ export class NylasBookedEventCard {
|
|
|
171
185
|
"tags": [],
|
|
172
186
|
"text": "The selected timeslot."
|
|
173
187
|
}
|
|
188
|
+
},
|
|
189
|
+
"configSettings": {
|
|
190
|
+
"type": "any",
|
|
191
|
+
"mutable": false,
|
|
192
|
+
"complexType": {
|
|
193
|
+
"original": "ConfigSettings",
|
|
194
|
+
"resolved": "any",
|
|
195
|
+
"references": {
|
|
196
|
+
"ConfigSettings": {
|
|
197
|
+
"location": "import",
|
|
198
|
+
"path": "../../..",
|
|
199
|
+
"id": "src/index.ts::unknown"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"required": false,
|
|
204
|
+
"optional": true,
|
|
205
|
+
"docs": {
|
|
206
|
+
"tags": [],
|
|
207
|
+
"text": "The config settings for the scheduler."
|
|
208
|
+
},
|
|
209
|
+
"attribute": "config-settings",
|
|
210
|
+
"reflect": false
|
|
174
211
|
}
|
|
175
212
|
};
|
|
176
213
|
}
|
|
@@ -232,6 +269,21 @@ export class NylasBookedEventCard {
|
|
|
232
269
|
}
|
|
233
270
|
}
|
|
234
271
|
}
|
|
272
|
+
}, {
|
|
273
|
+
"method": "cancelBookedEventValidationError",
|
|
274
|
+
"name": "cancelBookedEventValidationError",
|
|
275
|
+
"bubbles": true,
|
|
276
|
+
"cancelable": true,
|
|
277
|
+
"composed": true,
|
|
278
|
+
"docs": {
|
|
279
|
+
"tags": [],
|
|
280
|
+
"text": "This event is fired when an error occurs while cancelling the booking."
|
|
281
|
+
},
|
|
282
|
+
"complexType": {
|
|
283
|
+
"original": "{\n error: {\n title: string;\n message: string;\n };\n }",
|
|
284
|
+
"resolved": "{ error: { title: string; message: string; }; }",
|
|
285
|
+
"references": {}
|
|
286
|
+
}
|
|
235
287
|
}];
|
|
236
288
|
}
|
|
237
289
|
}
|
|
@@ -243,6 +295,7 @@ __decorate([
|
|
|
243
295
|
['scheduler.rescheduleBookingId', 'rescheduleBookingId'],
|
|
244
296
|
['scheduler.selectedTimezone', 'selectedTimezone'],
|
|
245
297
|
['scheduler.selectedTimeslot', 'selectedTimeslot'],
|
|
298
|
+
['scheduler.configSettings', 'configSettings'],
|
|
246
299
|
]),
|
|
247
300
|
eventToProps: {
|
|
248
301
|
cancelBookingButtonClicked: async (event, nylasSchedulerConnector) => {
|
package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-booked-event-card.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { Component, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport { NylasSchedulerBookingData, NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { TIMEZONE_MAP } from '@/common/constants';\nimport { NylasEvent } from '@/common/types';\nimport { Event } from '@stencil/core';\nimport { NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\n\n/**\n * The `nylas-booked-event-card` component is a UI component that displays the booked event card.\n *\n * @part nbec - The booked event card host.\n * @part nbec__card - The booked event card.\n * @part nbec__title - The title of the booked event card.\n * @part nbec__description - The description of the booked event card.\n * @part nbec__button-outline - The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - The cancel button CTA.\n * @part nbec__reschedule-cta - The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-booked-event-card',\n styleUrl: 'nylas-booked-event-card.scss',\n shadow: true,\n})\nexport class NylasBookedEventCard {\n /**\n * The booked event.\n */\n @Prop() readonly eventInfo!: NylasEvent;\n\n /**\n * Booking flow type.\n */\n @Prop() readonly rescheduleBookingId?: string;\n\n /**\n * The booking info used to book / reschedule the event.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * The selected timezone.\n */\n @Prop() readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected timeslot.\n */\n @Prop() readonly selectedTimeslot!: Timeslot;\n\n /**\n * Cancel booking button clicked event.\n */\n @Event() readonly cancelBookingButtonClicked!: EventEmitter<{ bookingId: string }>;\n\n /**\n * Reschedule button clicked event.\n * */\n @Event() readonly rescheduleButtonClicked!: EventEmitter<{ bookingId: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>;\n\n /**\n * This event is fired when an error occurs while rescheduling the booking.\n */\n @Event() readonly rescheduleBookedEventError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-booked-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-booked-event-card] Component did load`);\n }\n\n private handleCancelBookingButtonClicked = () => {\n this.cancelBookingButtonClicked.emit({ bookingId: this.eventInfo.booking_id });\n };\n\n private handleRescheduleButtonClicked = () => {\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.rescheduleBookedEventError.emit(error);\n };\n this.rescheduleButtonClicked.emit({ bookingId: this.eventInfo.booking_id, errorHandler });\n };\n\n private getOrganizer = (eventInfo: NylasEvent) => {\n const organizer = eventInfo?.organizer;\n return organizer;\n };\n\n getPaticipantType = (type: string) => {\n switch (type) {\n case 'host':\n return 'Host';\n case 'you':\n return 'You';\n default:\n return '';\n }\n };\n\n @RegisterComponent<NylasBookedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-booked-event-card',\n stateToProps: new Map([\n ['scheduler.bookingInfo', 'bookingInfo'],\n ['scheduler.rescheduleBookingId', 'rescheduleBookingId'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ]),\n eventToProps: {\n cancelBookingButtonClicked: async (event: CustomEvent<{ bookingId: string }>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.setCancel(event.detail.bookingId);\n },\n rescheduleButtonClicked: async (\n event: CustomEvent<{ bookingId: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>,\n nylasSchedulerConnector: NylasSchedulerConnector,\n ) => {\n const result = await nylasSchedulerConnector.scheduler.setReschedule(event.detail.bookingId);\n const { errorHandler } = event.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nbec\">\n <sp-theme theme=\"spectrum\" color=\"dark\" scale=\"medium\">\n <div class=\"booked-event-timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n <div class=\"event-card-wrapper\" part=\"nbec__card\">\n <div class=\"calendar-icon\">\n <calendar-check-icon />\n </div>\n <div class=\"booked-event-header\">\n <h2 slot=\"card-title\" part=\"nbec__title\">\n Booking {!!this.rescheduleBookingId ? 'rescheduled' : 'confirmed'}!\n </h2>\n <div part=\"nbec__description\">\n {this.getOrganizer(this.eventInfo)?.name || this.getOrganizer(this.eventInfo)?.email} & \n {this.bookingInfo?.primaryParticipant?.name || this.bookingInfo?.primaryParticipant?.email}\n </div>\n </div>\n <sp-divider></sp-divider>\n <div class=\"booking-date-time\">\n <checkmark-circle-icon></checkmark-circle-icon>\n <h3>Booking date and time</h3>\n <p>\n {new Date(this.selectedTimeslot.start_time).toLocaleDateString(undefined, { dateStyle: 'full' })} <br />\n {new Date(this.selectedTimeslot.start_time).toLocaleTimeString(undefined, { timeStyle: 'short' })} -{' '}\n {new Date(this.selectedTimeslot.end_time).toLocaleTimeString(undefined, { timeStyle: 'short' })}\n </p>\n </div>\n <div class=\"booking-participants\">\n {/* <people-icon></people-icon>\n <h3>All participants</h3>\n {this.eventInfo?.participants && (\n <p>\n {this.eventInfo?.participants?.map((participant: NylasEvent['participants'][0]) => {\n return (\n <span class=\"block\">\n {participant.email} {this.getPaticipantType(participant.type) && `(${this.getPaticipantType(participant.type)})`}\n </span>\n );\n })}\n </p>\n )} */}\n </div>\n <sp-divider></sp-divider>\n <div class=\"footer\">\n <sp-button variant=\"secondary\" treatment=\"outline\" class=\"cancel\" onClick={this.handleCancelBookingButtonClicked} part=\"nbec__button-outline nbec__cancel-cta\">\n Cancel booking\n </sp-button>\n <sp-button variant=\"secondary\" treatment=\"outline\" class=\"reschedule\" onClick={this.handleRescheduleButtonClicked} part=\"nbec__button-outline nbec__reschedule-cta\">\n Reschedule\n </sp-button>\n </div>\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nylas-booked-event-card.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { Component, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport { ConfigSettings, NylasSchedulerBookingData, NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\nimport { addMinutesToCurrentTime, debug } from '@/utils/utils';\nimport { TIMEZONE_MAP } from '@/common/constants';\nimport { NylasEvent } from '@/common/types';\nimport { Event } from '@stencil/core';\nimport { NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\n\n/**\n * The `nylas-booked-event-card` component is a UI component that displays the booked event card.\n *\n * @part nbec - The booked event card host.\n * @part nbec__card - The booked event card.\n * @part nbec__title - The title of the booked event card.\n * @part nbec__description - The description of the booked event card.\n * @part nbec__button-outline - The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - The cancel button CTA.\n * @part nbec__reschedule-cta - The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-booked-event-card',\n styleUrl: 'nylas-booked-event-card.scss',\n shadow: true,\n})\nexport class NylasBookedEventCard {\n /**\n * The booked event.\n */\n @Prop() readonly eventInfo!: NylasEvent;\n\n /**\n * Booking flow type.\n */\n @Prop() readonly rescheduleBookingId?: string;\n\n /**\n * The booking info used to book / reschedule the event.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * The selected timezone.\n */\n @Prop() readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected timeslot.\n */\n @Prop() readonly selectedTimeslot!: Timeslot;\n\n /**\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * Cancel booking button clicked event.\n */\n @Event() readonly cancelBookingButtonClicked!: EventEmitter<{ bookingId: string }>;\n\n /**\n * Reschedule button clicked event.\n * */\n @Event() readonly rescheduleButtonClicked!: EventEmitter<{ bookingId: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>;\n\n /**\n * This event is fired when an error occurs while rescheduling the booking.\n */\n @Event() readonly rescheduleBookedEventError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n /**\n * This event is fired when an error occurs while cancelling the booking.\n */\n @Event() readonly cancelBookedEventValidationError!: EventEmitter<{\n error: {\n title: string;\n message: string;\n };\n }>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-booked-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-booked-event-card] Component did load`);\n }\n\n private handleCancelBookingButtonClicked = () => {\n const today = new Date();\n const minCancellationNotice = this.configSettings?.scheduler.min_cancellation_notice;\n const dateTillCancellation = addMinutesToCurrentTime(today, minCancellationNotice);\n if (today.getTime() < dateTillCancellation.getTime()) {\n this.cancelBookedEventValidationError.emit({\n error: {\n title: 'Cancellation Error',\n message: `You cannot cancel the booking within ${minCancellationNotice} minutes of the event.`,\n },\n });\n } else {\n this.cancelBookingButtonClicked.emit({ bookingId: this.eventInfo.booking_id });\n }\n };\n\n private handleRescheduleButtonClicked = () => {\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.rescheduleBookedEventError.emit(error);\n };\n this.rescheduleButtonClicked.emit({ bookingId: this.eventInfo.booking_id, errorHandler });\n };\n\n private getOrganizer = (eventInfo: NylasEvent) => {\n const organizer = eventInfo?.organizer;\n return organizer;\n };\n\n getPaticipantType = (type: string) => {\n switch (type) {\n case 'host':\n return 'Host';\n case 'you':\n return 'You';\n default:\n return '';\n }\n };\n\n @RegisterComponent<NylasBookedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-booked-event-card',\n stateToProps: new Map([\n ['scheduler.bookingInfo', 'bookingInfo'],\n ['scheduler.rescheduleBookingId', 'rescheduleBookingId'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.configSettings', 'configSettings'],\n ]),\n eventToProps: {\n cancelBookingButtonClicked: async (event: CustomEvent<{ bookingId: string }>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.setCancel(event.detail.bookingId);\n },\n rescheduleButtonClicked: async (\n event: CustomEvent<{ bookingId: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>,\n nylasSchedulerConnector: NylasSchedulerConnector,\n ) => {\n const result = await nylasSchedulerConnector.scheduler.setReschedule(event.detail.bookingId);\n const { errorHandler } = event.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nbec\">\n <sp-theme theme=\"spectrum\" color=\"dark\" scale=\"medium\">\n <div class=\"booked-event-timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n <div class=\"event-card-wrapper\" part=\"nbec__card\">\n <div class=\"calendar-icon\">\n <calendar-check-icon />\n </div>\n <div class=\"booked-event-header\">\n <h2 slot=\"card-title\" part=\"nbec__title\">\n Booking {!!this.rescheduleBookingId ? 'rescheduled' : 'confirmed'}!\n </h2>\n <div part=\"nbec__description\">\n {this.getOrganizer(this.eventInfo)?.name || this.getOrganizer(this.eventInfo)?.email} & \n {this.bookingInfo?.primaryParticipant?.name || this.bookingInfo?.primaryParticipant?.email}\n </div>\n </div>\n <sp-divider></sp-divider>\n <div class=\"booking-date-time\">\n <checkmark-circle-icon></checkmark-circle-icon>\n <h3>Booking date and time</h3>\n <p>\n {new Date(this.selectedTimeslot?.start_time).toLocaleDateString(undefined, { dateStyle: 'full' })} <br />\n {new Date(this.selectedTimeslot?.start_time).toLocaleTimeString(undefined, { timeStyle: 'short' })} -{' '}\n {new Date(this.selectedTimeslot?.end_time).toLocaleTimeString(undefined, { timeStyle: 'short' })}\n </p>\n </div>\n <div class=\"booking-participants\">\n {/* <people-icon></people-icon>\n <h3>All participants</h3>\n {this.eventInfo?.participants && (\n <p>\n {this.eventInfo?.participants?.map((participant: NylasEvent['participants'][0]) => {\n return (\n <span class=\"block\">\n {participant.email} {this.getPaticipantType(participant.type) && `(${this.getPaticipantType(participant.type)})`}\n </span>\n );\n })}\n </p>\n )} */}\n </div>\n <sp-divider></sp-divider>\n <div class=\"footer\">\n <sp-button variant=\"secondary\" treatment=\"outline\" class=\"cancel\" onClick={this.handleCancelBookingButtonClicked} part=\"nbec__button-outline nbec__cancel-cta\">\n Cancel booking\n </sp-button>\n <sp-button variant=\"secondary\" treatment=\"outline\" class=\"reschedule\" onClick={this.handleRescheduleButtonClicked} part=\"nbec__button-outline nbec__reschedule-cta\">\n Reschedule\n </sp-button>\n </div>\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -18,9 +18,16 @@ import { debug } from "../../../utils/utils";
|
|
|
18
18
|
export class NylasCancelledEventCard {
|
|
19
19
|
constructor() {
|
|
20
20
|
this.handleCloseClicked = () => {
|
|
21
|
-
this.
|
|
21
|
+
this.isClosing = true;
|
|
22
|
+
const errorHandler = (error) => {
|
|
23
|
+
this.cancelledEventCardError.emit(error);
|
|
24
|
+
this.isClosing = false;
|
|
25
|
+
};
|
|
26
|
+
this.closeCancelEventCardClicked.emit({ errorHandler });
|
|
22
27
|
};
|
|
23
28
|
this.cancelledEventInfo = undefined;
|
|
29
|
+
this.isClosing = false;
|
|
30
|
+
this.configSettings = undefined;
|
|
24
31
|
}
|
|
25
32
|
connectedCallback() {
|
|
26
33
|
debug(`[nylas-cancelled-event-card] Component connected`);
|
|
@@ -35,7 +42,7 @@ export class NylasCancelledEventCard {
|
|
|
35
42
|
debug(`[nylas-cancelled-event-card] Component disconnected`);
|
|
36
43
|
}
|
|
37
44
|
render() {
|
|
38
|
-
return (h(Host, { key: '
|
|
45
|
+
return (h(Host, { key: '105954b6497f7a8cf45faedb592896629e90c6d0', part: "ncec" }, h("sp-theme", { key: 'd248975c2139a611ab60c5c585d87e8701327a4b', theme: "spectrum", color: "dark", scale: "medium" }, h("div", { key: '090b767111679ca9968ac0b128c6685fed6e39db', class: "nylas-cancelled-event-card", part: "ncec__card" }, h("div", { key: 'ae1e57f0f2a39f5ad7f4b7b9ed493f3e93ccdeba', class: "nylas-cancelled-event-card__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: '06250b1c0f330957f0f691d0f7724c608dffa28b' })), h("h3", { key: '1826c12ca770476cfd206d9d1a3b80f0d890da56', class: "nylas-cancelled-event-card__title", part: "ncec__title" }, "Your booking has been cancelled successfully!"), h("div", { key: '93c4c7e4ed245372e736c61c30b23e9be11453ec', class: "nylas-cancelled-event-card__description", part: "ncec__description" }, "A cancellation email has been sent to ", this.configSettings?.organizer?.name || 'the participants', "."), h("div", { key: '21162d4c4e2ee6c2f95038b0e25e9ad0aed63742', class: "nylas-cancelled-event-card__cta" }, h("sp-button", { key: 'ab6cb1da324717c3b375c9280f307a2590224f27', variant: "secondary", treatment: "outline", disabled: this.isClosing, part: "ncec__button-outline", onClick: this.handleCloseClicked }, this.isClosing ? 'Closing...' : 'Close'))))));
|
|
39
46
|
}
|
|
40
47
|
static get is() { return "nylas-cancelled-event-card"; }
|
|
41
48
|
static get encapsulation() { return "shadow"; }
|
|
@@ -75,9 +82,35 @@ export class NylasCancelledEventCard {
|
|
|
75
82
|
"tags": [],
|
|
76
83
|
"text": "The participant's name who booked the event / is logged in."
|
|
77
84
|
}
|
|
85
|
+
},
|
|
86
|
+
"configSettings": {
|
|
87
|
+
"type": "unknown",
|
|
88
|
+
"mutable": false,
|
|
89
|
+
"complexType": {
|
|
90
|
+
"original": "ConfigSettings",
|
|
91
|
+
"resolved": "undefined | { scheduler: { available_days_in_future: number; min_cancellation_notice: number; }; organizer: { name: string; email: string; }; }",
|
|
92
|
+
"references": {
|
|
93
|
+
"ConfigSettings": {
|
|
94
|
+
"location": "import",
|
|
95
|
+
"path": "@/stores/scheduler-store",
|
|
96
|
+
"id": "src/stores/scheduler-store.ts::ConfigSettings"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"required": false,
|
|
101
|
+
"optional": true,
|
|
102
|
+
"docs": {
|
|
103
|
+
"tags": [],
|
|
104
|
+
"text": "The config settings for the scheduler."
|
|
105
|
+
}
|
|
78
106
|
}
|
|
79
107
|
};
|
|
80
108
|
}
|
|
109
|
+
static get states() {
|
|
110
|
+
return {
|
|
111
|
+
"isClosing": {}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
81
114
|
static get events() {
|
|
82
115
|
return [{
|
|
83
116
|
"method": "closeCancelEventCardClicked",
|
|
@@ -90,9 +123,36 @@ export class NylasCancelledEventCard {
|
|
|
90
123
|
"text": "This event is fired when the close button is clicked on the cancelled event card."
|
|
91
124
|
},
|
|
92
125
|
"complexType": {
|
|
93
|
-
"original": "void",
|
|
94
|
-
"resolved": "void",
|
|
95
|
-
"references": {
|
|
126
|
+
"original": "{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }",
|
|
127
|
+
"resolved": "{ errorHandler?: ((error: NylasSchedulerErrorResponse) => void) | undefined; }",
|
|
128
|
+
"references": {
|
|
129
|
+
"NylasSchedulerErrorResponse": {
|
|
130
|
+
"location": "import",
|
|
131
|
+
"path": "../../..",
|
|
132
|
+
"id": "src/index.ts::NylasSchedulerErrorResponse"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}, {
|
|
137
|
+
"method": "cancelledEventCardError",
|
|
138
|
+
"name": "cancelledEventCardError",
|
|
139
|
+
"bubbles": true,
|
|
140
|
+
"cancelable": true,
|
|
141
|
+
"composed": true,
|
|
142
|
+
"docs": {
|
|
143
|
+
"tags": [],
|
|
144
|
+
"text": "This event is fired when an error occurs."
|
|
145
|
+
},
|
|
146
|
+
"complexType": {
|
|
147
|
+
"original": "NylasSchedulerErrorResponse",
|
|
148
|
+
"resolved": "NylasSchedulerErrorResponse",
|
|
149
|
+
"references": {
|
|
150
|
+
"NylasSchedulerErrorResponse": {
|
|
151
|
+
"location": "import",
|
|
152
|
+
"path": "../../..",
|
|
153
|
+
"id": "src/index.ts::NylasSchedulerErrorResponse"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
96
156
|
}
|
|
97
157
|
}];
|
|
98
158
|
}
|
|
@@ -100,7 +160,16 @@ export class NylasCancelledEventCard {
|
|
|
100
160
|
__decorate([
|
|
101
161
|
RegisterComponent({
|
|
102
162
|
name: 'nylas-cancelled-event-card',
|
|
103
|
-
|
|
163
|
+
stateToProps: new Map([['scheduler.configSettings', 'configSettings']]),
|
|
164
|
+
eventToProps: {
|
|
165
|
+
closeCancelEventCardClicked: async (_, nylasschedulerconnector) => {
|
|
166
|
+
const result = await nylasschedulerconnector.scheduler.resetCancel();
|
|
167
|
+
const { errorHandler } = _.detail;
|
|
168
|
+
if (errorHandler && (!result || 'error' in result)) {
|
|
169
|
+
errorHandler(result);
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
},
|
|
104
173
|
fireRegisterEvent: true,
|
|
105
174
|
}),
|
|
106
175
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-cancelled-event-card.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"nylas-cancelled-event-card.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { NylasEvent, NylasSchedulerConnector, NylasSchedulerErrorResponse } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { ConfigSettings } from '@/stores/scheduler-store';\n\n/**\n * The `nylas-cancelled-event-card` component is a UI component that displays the cancelled event card.\n *\n * @part ncec - The cancelled event card host.\n * @part ncec__icon - The calendar icon.\n * @part ncec__title - The title of the cancelled event card.\n * @part ncec__description - The description of the cancelled event card.\n * @part ncec__button-outline - The close button CTA.\n * @part ncec__card - The cancelled event card.\n */\n@Component({\n tag: 'nylas-cancelled-event-card',\n styleUrl: 'nylas-cancelled-event-card.scss',\n shadow: true,\n})\nexport class NylasCancelledEventCard {\n /**\n * The participant's name who booked the event / is logged in.\n */\n @Prop() readonly cancelledEventInfo!: Partial<NylasEvent>;\n\n /**\n * Closing state of the cancelled event card button.\n */\n @State() isClosing: boolean = false;\n\n /**\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * This event is fired when the close button is clicked on the cancelled event card.\n */\n @Event() readonly closeCancelEventCardClicked!: EventEmitter<{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }>;\n\n /**\n * This event is fired when an error occurs.\n */\n @Event() readonly cancelledEventCardError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n connectedCallback() {\n debug(`[nylas-cancelled-event-card] Component connected`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-cancelled-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-cancelled-event-card] Component did load`);\n }\n\n disconnectedCallback() {\n debug(`[nylas-cancelled-event-card] Component disconnected`);\n }\n\n private handleCloseClicked = () => {\n this.isClosing = true;\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.cancelledEventCardError.emit(error);\n this.isClosing = false;\n };\n this.closeCancelEventCardClicked.emit({ errorHandler });\n };\n\n @RegisterComponent<NylasCancelledEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-cancelled-event-card',\n stateToProps: new Map([['scheduler.configSettings', 'configSettings']]),\n eventToProps: {\n closeCancelEventCardClicked: async (_: CustomEvent<{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }>, nylasschedulerconnector: NylasSchedulerConnector) => {\n const result = await nylasschedulerconnector.scheduler.resetCancel();\n\n const { errorHandler } = _.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ncec\">\n <sp-theme theme=\"spectrum\" color=\"dark\" scale=\"medium\">\n <div class=\"nylas-cancelled-event-card\" part=\"ncec__card\">\n <div class=\"nylas-cancelled-event-card__calendar-icon\" part=\"ncec__icon\">\n <calendar-cancel-icon />\n </div>\n <h3 class=\"nylas-cancelled-event-card__title\" part=\"ncec__title\">\n Your booking has been cancelled successfully!\n </h3>\n <div class=\"nylas-cancelled-event-card__description\" part=\"ncec__description\">\n A cancellation email has been sent to {this.configSettings?.organizer?.name || 'the participants'}.\n </div>\n <div class=\"nylas-cancelled-event-card__cta\">\n <sp-button variant=\"secondary\" treatment=\"outline\" disabled={this.isClosing} part=\"ncec__button-outline\" onClick={this.handleCloseClicked}>\n {this.isClosing ? 'Closing...' : 'Close'}\n </sp-button>\n </div>\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -13,16 +13,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
13
13
|
return Reflect.metadata(k, v);
|
|
14
14
|
};
|
|
15
15
|
import { RegisterComponent } from "../../../common/register-component";
|
|
16
|
-
import { getFirstDayOfMonth, getLastDayOfMonth, isSameDay, isSameMonth } from "../../../utils/utils";
|
|
16
|
+
import { addDaysToCurrentDate, getFirstDayOfMonth, getLastDayOfMonth, isSameDay, isSameMonth } from "../../../utils/utils";
|
|
17
17
|
import { Host, h } from "@stencil/core";
|
|
18
18
|
import { timeDay } from "d3-time";
|
|
19
19
|
export class NylasDatePicker {
|
|
20
20
|
constructor() {
|
|
21
21
|
this.selectableDates = undefined;
|
|
22
22
|
this.selectedDate = undefined;
|
|
23
|
+
this.configSettings = undefined;
|
|
23
24
|
this.isLoading = undefined;
|
|
24
25
|
this.month = this.selectedDate || new Date();
|
|
25
26
|
this.dates = this.getDates();
|
|
27
|
+
this.disableNextMonthButton = false;
|
|
26
28
|
}
|
|
27
29
|
connectedCallback() { }
|
|
28
30
|
disconnectedCallback() { }
|
|
@@ -37,6 +39,15 @@ export class NylasDatePicker {
|
|
|
37
39
|
}
|
|
38
40
|
changeMonth(change) {
|
|
39
41
|
this.month = new Date(this.month.getFullYear(), this.month.getMonth() + change, 1);
|
|
42
|
+
const nextMonth = new Date(this.month.getFullYear(), this.month.getMonth() + 1, 1);
|
|
43
|
+
const availableDaysInFuture = this.configSettings?.scheduler?.available_days_in_future;
|
|
44
|
+
const endDate = addDaysToCurrentDate(new Date(), availableDaysInFuture);
|
|
45
|
+
if (endDate.getTime() < nextMonth.getTime()) {
|
|
46
|
+
this.disableNextMonthButton = true;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.disableNextMonthButton = false;
|
|
50
|
+
}
|
|
40
51
|
this.dates = this.getDates();
|
|
41
52
|
this.monthChanged.emit(this.month);
|
|
42
53
|
this.selectDate();
|
|
@@ -48,7 +59,7 @@ export class NylasDatePicker {
|
|
|
48
59
|
return date && selectableDates?.find(d => isSameDay(d, date)) === undefined;
|
|
49
60
|
}
|
|
50
61
|
render() {
|
|
51
|
-
return (h(Host, { key: '
|
|
62
|
+
return (h(Host, { key: 'fd7de67053417b11844a66e5b978f7feb80efe18', part: "ndp" }, h("div", { key: 'a08943851e2239ad12121b90f35760d73a085441', class: "nylas-date-picker" }, h("div", { key: '832ad38012c55eb04ab2c5b0ceb50052ab3edd42', class: 'header flex-row' }, h("h2", { key: '2df451227e57dfee081c1d4435443e479cf8871c', part: 'ndp__month-header' }, h("strong", { key: '63421dca4b9bf36207ba05e9eff795c7c198287c' }, this.month.toLocaleDateString(undefined, { month: 'long' })), "\u00A0", this.month.toLocaleDateString(undefined, { year: 'numeric' })), h("div", { key: 'ca982a82d87baf5658674624c1153f14e77470aa', class: 'pagination' }, h("button", { key: 'd2a41582014f92c23784c71fe1df9834d77fd355', onClick: () => this.changeMonth(-1), class: { 'chevron-left': true, 'button': true }, disabled: !this.selectableDates?.length || this.month <= new Date(), part: "ndp__month-button" }, h("chevron-icon", { key: '4f319da7e440236edb9bfa711fb0b05cd046dc8e' })), h("button", { key: 'ff00426293e1857592ebae58557ea46e5db9858d', onClick: () => this.changeMonth(1), class: { 'chevron-right': true, 'button': true }, disabled: !this.selectableDates?.length || this.disableNextMonthButton, part: "ndp__month-button" }, h("chevron-icon", { key: '7075f5e8da61c9d91fb612771a3d7672f1521b6f' })))), h("div", { key: '3ad884077d163de5182731c03bf856c9e204f411', class: 'dates' }, ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'].map(day => {
|
|
52
63
|
return (h("div", { class: 'day', part: "ndp__day" }, day));
|
|
53
64
|
}), this.dates.map((date, i) => {
|
|
54
65
|
const isDisabled = this.isDisabled(date, this.selectableDates);
|
|
@@ -120,6 +131,27 @@ export class NylasDatePicker {
|
|
|
120
131
|
"text": "The selected date."
|
|
121
132
|
}
|
|
122
133
|
},
|
|
134
|
+
"configSettings": {
|
|
135
|
+
"type": "unknown",
|
|
136
|
+
"mutable": false,
|
|
137
|
+
"complexType": {
|
|
138
|
+
"original": "ConfigSettings",
|
|
139
|
+
"resolved": "undefined | { scheduler: { available_days_in_future: number; min_cancellation_notice: number; }; organizer: { name: string; email: string; }; }",
|
|
140
|
+
"references": {
|
|
141
|
+
"ConfigSettings": {
|
|
142
|
+
"location": "import",
|
|
143
|
+
"path": "@/stores/scheduler-store",
|
|
144
|
+
"id": "src/stores/scheduler-store.ts::ConfigSettings"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"required": false,
|
|
149
|
+
"optional": true,
|
|
150
|
+
"docs": {
|
|
151
|
+
"tags": [],
|
|
152
|
+
"text": "The config settings."
|
|
153
|
+
}
|
|
154
|
+
},
|
|
123
155
|
"isLoading": {
|
|
124
156
|
"type": "boolean",
|
|
125
157
|
"mutable": false,
|
|
@@ -142,7 +174,8 @@ export class NylasDatePicker {
|
|
|
142
174
|
static get states() {
|
|
143
175
|
return {
|
|
144
176
|
"month": {},
|
|
145
|
-
"dates": {}
|
|
177
|
+
"dates": {},
|
|
178
|
+
"disableNextMonthButton": {}
|
|
146
179
|
};
|
|
147
180
|
}
|
|
148
181
|
static get events() {
|
|
@@ -196,6 +229,7 @@ __decorate([
|
|
|
196
229
|
['scheduler.selectableDates', 'selectableDates'],
|
|
197
230
|
['scheduler.selectedDate', 'selectedDate'],
|
|
198
231
|
['scheduler.isLoading', 'isLoading'],
|
|
232
|
+
['scheduler.configSettings', 'configSettings'],
|
|
199
233
|
]),
|
|
200
234
|
eventToProps: {
|
|
201
235
|
dateSelected: async (event, nylasSchedulerConnector) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nylas-date-picker.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-date-picker/nylas-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { getFirstDayOfMonth, getLastDayOfMonth, isSameDay, isSameMonth } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { timeDay } from 'd3-time';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\n\n/**\n * The `nylas-date-picker` component is a UI component that allows users to select a date.\n *\n * @part ndp - The date picker host.\n * @part ndp__month-header - The month header.\n * @part ndp__month-button - The month button.\n * @part ndp__day - The day.\n * @part ndp__date - The date.\n * @part ndp__date--selected - The selected date.\n * @part ndp__date--current-day - The current day.\n * @part ndp__date--current-month - The dates in the current month.\n */\n@Component({\n tag: 'nylas-date-picker',\n styleUrl: 'nylas-date-picker.scss',\n shadow: true,\n})\nexport class NylasDatePicker {\n /**\n * The dates that are selectable.\n */\n @Prop() selectableDates?: Date[];\n\n /**\n * The selected date.\n */\n @Prop() selectedDate?: Date;\n\n /**\n * The loading state.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * The month to display.\n */\n @State() month: Date = this.selectedDate || new Date();\n\n /**\n * The dates to render.\n */\n @State() dates: Date[] = this.getDates();\n\n /**\n * This event is fired when a date is selected.\n */\n @Event() dateSelected!: EventEmitter<Date>;\n\n /**\n * This event is fired when the month is changed.\n */\n @Event() monthChanged!: EventEmitter<Date>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n /**\n * Get the dates to render, including the days from the previous and next months.\n * @returns The dates to render.\n */\n private getDates() {\n const lastDayOfMonth = getLastDayOfMonth(this.month);\n const firstDayOfMonth = getFirstDayOfMonth(this.month);\n\n return timeDay.range(timeDay.offset(firstDayOfMonth, -firstDayOfMonth.getDay()), timeDay.offset(lastDayOfMonth, 7 - lastDayOfMonth.getDay()));\n }\n\n /**\n * Select a date.\n * @param date The date to select.\n */\n private selectDate(date?: Date) {\n this.dateSelected.emit(date);\n }\n\n /**\n * Change the month.\n * @param change The change in months.\n */\n private changeMonth(change: number) {\n this.month = new Date(this.month.getFullYear(), this.month.getMonth() + change, 1);\n this.dates = this.getDates();\n this.monthChanged.emit(this.month);\n // unset selected date when changing month\n this.selectDate();\n }\n\n private isSelected(date: Date | undefined, selectedDate: Date | undefined, selectableDates: Date[] | undefined) {\n return date && selectedDate && isSameDay(date, selectedDate) && selectableDates && selectableDates?.length > 0;\n }\n\n private isDisabled(date: Date | undefined, selectableDates: Date[] | undefined) {\n return date && selectableDates?.find(d => isSameDay(d, date)) === undefined;\n }\n\n @RegisterComponent<NylasDatePicker, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-date-picker',\n stateToProps: new Map([\n ['scheduler.selectableDates', 'selectableDates'],\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.isLoading', 'isLoading'],\n ]),\n eventToProps: {\n dateSelected: async (event: CustomEvent<Date>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.selectDate(event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ndp\">\n <div class=\"nylas-date-picker\">\n <div class={'header flex-row'}>\n <h2 part={'ndp__month-header'}>\n <strong>{this.month.toLocaleDateString(undefined, { month: 'long' })}</strong>\n \n {this.month.toLocaleDateString(undefined, { year: 'numeric' })}\n </h2>\n <div class={'pagination'}>\n <button\n onClick={() => this.changeMonth(-1)}\n class={{ 'chevron-left': true, 'button': true }}\n disabled={!this.selectableDates?.length || this.month <= new Date()}\n part=\"ndp__month-button\"\n >\n <chevron-icon />\n </button>\n <button onClick={() => this.changeMonth(1)} class={{ 'chevron-right': true, 'button': true }} disabled={!this.selectableDates?.length} part=\"ndp__month-button\">\n <chevron-icon />\n </button>\n </div>\n </div>\n\n <div class={'dates'}>\n {['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'].map(day => {\n return (\n <div class={'day'} part=\"ndp__day\">\n {day}\n </div>\n );\n })}\n {this.dates.map((date, i) => {\n const isDisabled = this.isDisabled(date, this.selectableDates);\n\n if (this.isLoading) {\n return (\n <button\n disabled\n class={{\n 'date day-skeleton': true,\n 'current-month': isSameMonth(date, this.month),\n }}\n style={{ animationDelay: `${i * 20}ms` }}\n part={'ndp__date'}\n >\n {date.getDate()}\n </button>\n );\n }\n return (\n <button\n class={{\n 'date': true,\n 'selected': !!(this.selectedDate && isSameDay(date, this.selectedDate) && this.selectableDates && this.selectableDates?.length > 0),\n 'current-day': isSameDay(date, new Date()),\n 'current-month': isSameMonth(date, this.month),\n }}\n aria-lang={date.toLocaleDateString(undefined, { dateStyle: 'full' })}\n disabled={isDisabled}\n onClick={() => this.selectDate(date)}\n part={`ndp__date ${this.isSelected(date, this.selectedDate, this.selectableDates) ? 'ndp__date--selected' : ''} ${isSameDay(date, new Date()) ? 'ndp__date--current-day' : ''} ${isSameMonth(date, this.month) ? 'ndp__date--current-month' : ''}`}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nylas-date-picker.js","sourceRoot":"","sources":["../../../../src/components/scheduler/nylas-date-picker/nylas-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { addDaysToCurrentDate, getFirstDayOfMonth, getLastDayOfMonth, isSameDay, isSameMonth } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { timeDay } from 'd3-time';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\nimport { ConfigSettings } from '@/stores/scheduler-store';\n\n/**\n * The `nylas-date-picker` component is a UI component that allows users to select a date.\n *\n * @part ndp - The date picker host.\n * @part ndp__month-header - The month header.\n * @part ndp__month-button - The month button.\n * @part ndp__day - The day.\n * @part ndp__date - The date.\n * @part ndp__date--selected - The selected date.\n * @part ndp__date--current-day - The current day.\n * @part ndp__date--current-month - The dates in the current month.\n */\n@Component({\n tag: 'nylas-date-picker',\n styleUrl: 'nylas-date-picker.scss',\n shadow: true,\n})\nexport class NylasDatePicker {\n /**\n * The dates that are selectable.\n */\n @Prop() selectableDates?: Date[];\n\n /**\n * The selected date.\n */\n @Prop() selectedDate?: Date;\n\n /**\n * The config settings.\n */\n @Prop() configSettings?: ConfigSettings;\n\n /**\n * The loading state.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * The month to display.\n */\n @State() month: Date = this.selectedDate || new Date();\n\n /**\n * The dates to render.\n */\n @State() dates: Date[] = this.getDates();\n\n /**\n * The state to disable the next month button.\n */\n @State() disableNextMonthButton: boolean = false;\n\n /**\n * This event is fired when a date is selected.\n */\n @Event() dateSelected!: EventEmitter<Date>;\n\n /**\n * This event is fired when the month is changed.\n */\n @Event() monthChanged!: EventEmitter<Date>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n /**\n * Get the dates to render, including the days from the previous and next months.\n * @returns The dates to render.\n */\n private getDates() {\n const lastDayOfMonth = getLastDayOfMonth(this.month);\n const firstDayOfMonth = getFirstDayOfMonth(this.month);\n\n return timeDay.range(timeDay.offset(firstDayOfMonth, -firstDayOfMonth.getDay()), timeDay.offset(lastDayOfMonth, 7 - lastDayOfMonth.getDay()));\n }\n\n /**\n * Select a date.\n * @param date The date to select.\n */\n private selectDate(date?: Date) {\n this.dateSelected.emit(date);\n }\n\n /**\n * Change the month.\n * @param change The change in months.\n */\n private changeMonth(change: number) {\n this.month = new Date(this.month.getFullYear(), this.month.getMonth() + change, 1);\n const nextMonth = new Date(this.month.getFullYear(), this.month.getMonth() + 1, 1);\n const availableDaysInFuture = this.configSettings?.scheduler?.available_days_in_future;\n const endDate = addDaysToCurrentDate(new Date(), availableDaysInFuture);\n if (endDate.getTime() < nextMonth.getTime()) {\n this.disableNextMonthButton = true;\n } else {\n this.disableNextMonthButton = false;\n }\n this.dates = this.getDates();\n this.monthChanged.emit(this.month);\n // unset selected date when changing month\n this.selectDate();\n }\n\n private isSelected(date: Date | undefined, selectedDate: Date | undefined, selectableDates: Date[] | undefined) {\n return date && selectedDate && isSameDay(date, selectedDate) && selectableDates && selectableDates?.length > 0;\n }\n\n private isDisabled(date: Date | undefined, selectableDates: Date[] | undefined) {\n return date && selectableDates?.find(d => isSameDay(d, date)) === undefined;\n }\n\n @RegisterComponent<NylasDatePicker, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-date-picker',\n stateToProps: new Map([\n ['scheduler.selectableDates', 'selectableDates'],\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.configSettings', 'configSettings'],\n ]),\n eventToProps: {\n dateSelected: async (event: CustomEvent<Date>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.selectDate(event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ndp\">\n <div class=\"nylas-date-picker\">\n <div class={'header flex-row'}>\n <h2 part={'ndp__month-header'}>\n <strong>{this.month.toLocaleDateString(undefined, { month: 'long' })}</strong>\n \n {this.month.toLocaleDateString(undefined, { year: 'numeric' })}\n </h2>\n <div class={'pagination'}>\n <button\n onClick={() => this.changeMonth(-1)}\n class={{ 'chevron-left': true, 'button': true }}\n disabled={!this.selectableDates?.length || this.month <= new Date()}\n part=\"ndp__month-button\"\n >\n <chevron-icon />\n </button>\n <button\n onClick={() => this.changeMonth(1)}\n class={{ 'chevron-right': true, 'button': true }}\n disabled={!this.selectableDates?.length || this.disableNextMonthButton}\n part=\"ndp__month-button\"\n >\n <chevron-icon />\n </button>\n </div>\n </div>\n\n <div class={'dates'}>\n {['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'].map(day => {\n return (\n <div class={'day'} part=\"ndp__day\">\n {day}\n </div>\n );\n })}\n {this.dates.map((date, i) => {\n const isDisabled = this.isDisabled(date, this.selectableDates);\n\n if (this.isLoading) {\n return (\n <button\n disabled\n class={{\n 'date day-skeleton': true,\n 'current-month': isSameMonth(date, this.month),\n }}\n style={{ animationDelay: `${i * 20}ms` }}\n part={'ndp__date'}\n >\n {date.getDate()}\n </button>\n );\n }\n return (\n <button\n class={{\n 'date': true,\n 'selected': !!(this.selectedDate && isSameDay(date, this.selectedDate) && this.selectableDates && this.selectableDates?.length > 0),\n 'current-day': isSameDay(date, new Date()),\n 'current-month': isSameMonth(date, this.month),\n }}\n aria-lang={date.toLocaleDateString(undefined, { dateStyle: 'full' })}\n disabled={isDisabled}\n onClick={() => this.selectDate(date)}\n part={`ndp__date ${this.isSelected(date, this.selectedDate, this.selectableDates) ? 'ndp__date--selected' : ''} ${isSameDay(date, new Date()) ? 'ndp__date--current-day' : ''} ${isSameMonth(date, this.month) ? 'ndp__date--current-month' : ''}`}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|