@nylas/web-elements 2.5.4 → 2.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/input-color-picker/input-color-picker.es.js +3516 -3480
- package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +6334 -6297
- package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +7610 -7554
- package/dist/cjs/{abstract-provider-CH5yXWmY.js → abstract-provider-f3JKAnoC.js} +4 -4
- package/dist/cjs/abstract-provider-f3JKAnoC.js.map +1 -0
- package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +2 -2
- package/dist/cjs/checkbox-group_4.cjs.entry.js +3 -3
- package/dist/cjs/checkmark-icon_14.cjs.entry.js +2 -2
- package/dist/cjs/{customParseFormat-OQPjPVhj.js → customParseFormat-5f0XwO0N.js} +3 -3
- package/dist/cjs/{customParseFormat-OQPjPVhj.js.map → customParseFormat-5f0XwO0N.js.map} +1 -1
- package/dist/cjs/globe-icon_3.cjs.entry.js +2 -2
- package/dist/cjs/google-logo-icon_6.cjs.entry.js +3 -3
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/input-component.cjs.entry.js +1 -1
- package/dist/cjs/input-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/input-image-url_2.cjs.entry.js +2 -2
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/{nylas-api-request-Cva9mkSo.js → nylas-api-request-Cbo-19Nf.js} +3 -3
- package/dist/cjs/{nylas-api-request-Cva9mkSo.js.map → nylas-api-request-Cbo-19Nf.js.map} +1 -1
- package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +18 -13
- package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-form-card.cjs.entry.js +2 -2
- package/dist/cjs/nylas-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +4 -4
- package/dist/cjs/nylas-scheduling.cjs.entry.js +29 -15
- package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
- package/dist/cjs/{register-component-Cu3tKKKD.js → register-component-3z1jbXx-.js} +3 -3
- package/dist/cjs/{register-component-Cu3tKKKD.js.map → register-component-3z1jbXx-.js.map} +1 -1
- package/dist/cjs/textarea-component.cjs.entry.js +1 -1
- package/dist/cjs/{utils-DMqnHqF8.js → utils-C5qGWVDr.js} +68 -8
- package/dist/cjs/{utils-DMqnHqF8.js.map → utils-C5qGWVDr.js.map} +1 -1
- package/dist/cjs/{version-COw2dh2E.js → version-CJ5046pS.js} +3 -3
- package/dist/cjs/{version-COw2dh2E.js.map → version-CJ5046pS.js.map} +1 -1
- package/dist/collection/common/abstract-provider.js +1 -1
- package/dist/collection/common/abstract-provider.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +6 -2
- package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js +11 -10
- package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +29 -11
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +4 -3
- package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler.js +5 -3
- package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
- package/dist/collection/stores/scheduler-store.js +3 -2
- package/dist/collection/stores/scheduler-store.js.map +1 -1
- package/dist/collection/utils/utils.js +11 -6
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/collection/version.js +1 -1
- package/dist/collection/version.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/input-color-picker.js +1 -1
- package/dist/components/input-component.js +1 -1
- package/dist/components/input-image-url.js +1 -1
- package/dist/components/multi-select-dropdown.js +1 -1
- package/dist/components/nylas-additional-participants.js +1 -1
- package/dist/components/nylas-availability-picker.js +1 -1
- package/dist/components/nylas-booked-event-card.js +1 -1
- package/dist/components/nylas-booking-calendar-picker.js +1 -1
- package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
- package/dist/components/nylas-booking-confirmation-type.js +1 -1
- package/dist/components/nylas-booking-form-config.js +1 -1
- package/dist/components/nylas-booking-form.js +1 -1
- package/dist/components/nylas-buffer-time.js +1 -1
- package/dist/components/nylas-calendar-picker.js +1 -1
- package/dist/components/nylas-cancel-booking-form.js +1 -1
- package/dist/components/nylas-cancellation-policy.js +1 -1
- package/dist/components/nylas-cancelled-event-card.js +1 -1
- package/dist/components/nylas-confirmation-email.js +1 -1
- package/dist/components/nylas-confirmed-event-card.js +1 -1
- package/dist/components/nylas-connected-calendars.js +1 -1
- package/dist/components/nylas-custom-booking-flow.js +1 -1
- package/dist/components/nylas-custom-event-slug.js +1 -1
- package/dist/components/nylas-customize-booking-settings.js +1 -1
- package/dist/components/nylas-date-component.js +1 -1
- package/dist/components/nylas-date-picker.js +1 -1
- package/dist/components/nylas-disable-emails.js +1 -1
- package/dist/components/nylas-editor-tabs-group.js +1 -1
- package/dist/components/nylas-editor-tabs.js +1 -1
- package/dist/components/nylas-event-calendar.js +1 -1
- package/dist/components/nylas-event-capacity.js +1 -1
- package/dist/components/nylas-event-description.js +1 -1
- package/dist/components/nylas-event-duration.js +1 -1
- package/dist/components/nylas-event-info.js +1 -1
- package/dist/components/nylas-event-limits.js +1 -1
- package/dist/components/nylas-event-location.js +1 -1
- package/dist/components/nylas-event-timeslot.js +1 -1
- package/dist/components/nylas-event-title.js +1 -1
- package/dist/components/nylas-feedback-form.js +1 -1
- package/dist/components/nylas-form-card.js +1 -1
- package/dist/components/nylas-limit-future-bookings.js +1 -1
- package/dist/components/nylas-list-configurations.js +1 -1
- package/dist/components/nylas-locale-switch.js +1 -1
- package/dist/components/nylas-min-booking-notice.js +1 -1
- package/dist/components/nylas-min-cancellation-notice.js +1 -1
- package/dist/components/nylas-notetaker-config.js +1 -1
- package/dist/components/nylas-notification.js +1 -1
- package/dist/components/nylas-only-specific-time-availability.js +1 -1
- package/dist/components/nylas-organizer-confirmation-card.js +1 -1
- package/dist/components/nylas-page-name.js +1 -1
- package/dist/components/nylas-page-styling.js +1 -1
- package/dist/components/nylas-participant-booking-calendars.js +1 -1
- package/dist/components/nylas-participants-custom-availability.js +1 -1
- package/dist/components/nylas-reminder-emails.js +1 -1
- package/dist/components/nylas-reminder-time.js +1 -1
- package/dist/components/nylas-scheduler-editor.js +58 -58
- package/dist/components/nylas-scheduling-method.js +1 -1
- package/dist/components/nylas-scheduling.js +46 -32
- package/dist/components/nylas-scheduling.js.map +1 -1
- package/dist/components/nylas-select-event-type.js +1 -1
- package/dist/components/nylas-selected-event-card.js +1 -1
- package/dist/components/nylas-specific-time-availability-picker.js +1 -1
- package/dist/components/nylas-time-window-picker.js +1 -1
- package/dist/components/nylas-timeslot-interval.js +1 -1
- package/dist/components/nylas-timeslot-picker.js +1 -1
- package/dist/components/{p-DyFJlXYY.js → p-5ZYkWuBH.js} +5 -5
- package/dist/components/{p-DyFJlXYY.js.map → p-5ZYkWuBH.js.map} +1 -1
- package/dist/components/{p-D2Tc9Auy.js → p-6buYtCek.js} +5 -5
- package/dist/components/{p-D2Tc9Auy.js.map → p-6buYtCek.js.map} +1 -1
- package/dist/components/{p-aA5xBZ4y.js → p-8jVEXvkn.js} +6 -6
- package/dist/components/{p-aA5xBZ4y.js.map → p-8jVEXvkn.js.map} +1 -1
- package/dist/components/{p-Czz4qXvH.js → p-B0eXe4fu.js} +9 -9
- package/dist/components/{p-Czz4qXvH.js.map → p-B0eXe4fu.js.map} +1 -1
- package/dist/components/{p-BOo4c1sq.js → p-B54mNgSc.js} +6 -6
- package/dist/components/{p-BOo4c1sq.js.map → p-B54mNgSc.js.map} +1 -1
- package/dist/components/{p-0CHYtuce.js → p-BCdaMIEZ.js} +6 -6
- package/dist/components/{p-0CHYtuce.js.map → p-BCdaMIEZ.js.map} +1 -1
- package/dist/components/{p-DHDBkOA6.js → p-BIbAx1y2.js} +3 -3
- package/dist/components/{p-DHDBkOA6.js.map → p-BIbAx1y2.js.map} +1 -1
- package/dist/components/{p-D2Zt-T9i.js → p-BNfHz7A2.js} +6 -6
- package/dist/components/{p-D2Zt-T9i.js.map → p-BNfHz7A2.js.map} +1 -1
- package/dist/components/{p-CA-CDvvH.js → p-B_HtmTBC.js} +6 -6
- package/dist/components/{p-CA-CDvvH.js.map → p-B_HtmTBC.js.map} +1 -1
- package/dist/components/{p-CaPXccMa.js → p-Begx19Z9.js} +3 -3
- package/dist/components/{p-CaPXccMa.js.map → p-Begx19Z9.js.map} +1 -1
- package/dist/components/{p-DIYyA3tv.js → p-BhY18Huj.js} +5 -5
- package/dist/components/{p-DIYyA3tv.js.map → p-BhY18Huj.js.map} +1 -1
- package/dist/components/{p-CFk78OEk.js → p-BjxQTsOy.js} +56 -2
- package/dist/components/{p-CFk78OEk.js.map → p-BjxQTsOy.js.map} +1 -1
- package/dist/components/{p-DfJPUV12.js → p-BpDfyvY4.js} +3 -3
- package/dist/components/{p-DfJPUV12.js.map → p-BpDfyvY4.js.map} +1 -1
- package/dist/components/{p-B2qD9GvB.js → p-BqcSDTPa.js} +6 -6
- package/dist/components/{p-B2qD9GvB.js.map → p-BqcSDTPa.js.map} +1 -1
- package/dist/components/{p-DWH9lxNw.js → p-ByIpuB6X.js} +6 -6
- package/dist/components/{p-DWH9lxNw.js.map → p-ByIpuB6X.js.map} +1 -1
- package/dist/components/{p-DDnT7nCe.js → p-Bye3Di82.js} +3 -3
- package/dist/components/{p-DDnT7nCe.js.map → p-Bye3Di82.js.map} +1 -1
- package/dist/components/{p-CugpjY9p.js → p-Bzhy3cc5.js} +3 -3
- package/dist/components/{p-CugpjY9p.js.map → p-Bzhy3cc5.js.map} +1 -1
- package/dist/components/{p-S6AbMZpH.js → p-C1IR0LII.js} +8 -8
- package/dist/components/{p-S6AbMZpH.js.map → p-C1IR0LII.js.map} +1 -1
- package/dist/components/{p-Bd0cKEr-.js → p-C8K-8dJ0.js} +52 -52
- package/dist/components/{p-Bd0cKEr-.js.map → p-C8K-8dJ0.js.map} +1 -1
- package/dist/components/{p-sjyMT8di.js → p-CABFxRgm.js} +5 -5
- package/dist/components/{p-sjyMT8di.js.map → p-CABFxRgm.js.map} +1 -1
- package/dist/components/{p-BkEoeb5s.js → p-CHMf20sF.js} +5 -5
- package/dist/components/{p-BkEoeb5s.js.map → p-CHMf20sF.js.map} +1 -1
- package/dist/components/{p--MwFi8VI.js → p-CIiKlhjq.js} +5 -5
- package/dist/components/{p--MwFi8VI.js.map → p-CIiKlhjq.js.map} +1 -1
- package/dist/components/{p-B-fT9puv.js → p-CKPYi9FX.js} +4 -4
- package/dist/components/{p-B-fT9puv.js.map → p-CKPYi9FX.js.map} +1 -1
- package/dist/components/{p-D0h0sso6.js → p-CLMQXVmv.js} +5 -5
- package/dist/components/{p-D0h0sso6.js.map → p-CLMQXVmv.js.map} +1 -1
- package/dist/components/{p-BB1ko_uE.js → p-CMF0O-Fp.js} +7 -7
- package/dist/components/{p-BB1ko_uE.js.map → p-CMF0O-Fp.js.map} +1 -1
- package/dist/components/{p-CCA4ZVjd.js → p-CSqqWusO.js} +10 -7
- package/dist/components/p-CSqqWusO.js.map +1 -0
- package/dist/components/{p-OCI2J8gy.js → p-CTDkYArQ.js} +9 -9
- package/dist/components/{p-OCI2J8gy.js.map → p-CTDkYArQ.js.map} +1 -1
- package/dist/components/{p-Btoob5w4.js → p-CUL-OCAu.js} +6 -6
- package/dist/components/{p-Btoob5w4.js.map → p-CUL-OCAu.js.map} +1 -1
- package/dist/components/{p-CNep2hQ8.js → p-CXqwQnQF.js} +5 -5
- package/dist/components/{p-CNep2hQ8.js.map → p-CXqwQnQF.js.map} +1 -1
- package/dist/components/{p-BJFo54WS.js → p-CXxRydPc.js} +5 -5
- package/dist/components/{p-BJFo54WS.js.map → p-CXxRydPc.js.map} +1 -1
- package/dist/components/{p-D_ge-nYu.js → p-CYy1pa_3.js} +5 -5
- package/dist/components/{p-D_ge-nYu.js.map → p-CYy1pa_3.js.map} +1 -1
- package/dist/components/{p-2Mq6VEeK.js → p-ClGGIEMi.js} +6 -6
- package/dist/components/{p-2Mq6VEeK.js.map → p-ClGGIEMi.js.map} +1 -1
- package/dist/components/{p-DAnwHL85.js → p-CpMfG8zc.js} +18 -18
- package/dist/components/{p-DAnwHL85.js.map → p-CpMfG8zc.js.map} +1 -1
- package/dist/components/{p-y6oP8jW5.js → p-CrXOqjIw.js} +8 -7
- package/dist/components/p-CrXOqjIw.js.map +1 -0
- package/dist/components/{p-ejCgVZ9o.js → p-CsyEOZaq.js} +3 -3
- package/dist/components/{p-ejCgVZ9o.js.map → p-CsyEOZaq.js.map} +1 -1
- package/dist/components/{p-DjXPd1-l.js → p-D-3RU2oS.js} +5 -5
- package/dist/components/{p-DjXPd1-l.js.map → p-D-3RU2oS.js.map} +1 -1
- package/dist/components/{p-DxIVEThE.js → p-D19TzH-m.js} +6 -6
- package/dist/components/{p-DxIVEThE.js.map → p-D19TzH-m.js.map} +1 -1
- package/dist/components/{p-Cpuo7KDZ.js → p-D1laIpmv.js} +8 -8
- package/dist/components/{p-Cpuo7KDZ.js.map → p-D1laIpmv.js.map} +1 -1
- package/dist/components/{p-B1YSZBvC.js → p-D4C1TKzq.js} +5 -5
- package/dist/components/{p-B1YSZBvC.js.map → p-D4C1TKzq.js.map} +1 -1
- package/dist/components/{p-gDuYV0jU.js → p-D8Gq0LJd.js} +5 -5
- package/dist/components/{p-gDuYV0jU.js.map → p-D8Gq0LJd.js.map} +1 -1
- package/dist/components/{p-D8Qul6Vu.js → p-DBEvFYf0.js} +6 -6
- package/dist/components/{p-D8Qul6Vu.js.map → p-DBEvFYf0.js.map} +1 -1
- package/dist/components/{p-Dz6ZS9T7.js → p-DBwy7Snv.js} +4 -4
- package/dist/components/{p-Dz6ZS9T7.js.map → p-DBwy7Snv.js.map} +1 -1
- package/dist/components/{p-JjXUnTze.js → p-DDjhKQi2.js} +5 -5
- package/dist/components/{p-JjXUnTze.js.map → p-DDjhKQi2.js.map} +1 -1
- package/dist/components/{p-C6AxpIio.js → p-DFSt8wfH.js} +6 -6
- package/dist/components/{p-C6AxpIio.js.map → p-DFSt8wfH.js.map} +1 -1
- package/dist/components/{p-DEtEu7ce.js → p-DPBfMry4.js} +7 -7
- package/dist/components/{p-DEtEu7ce.js.map → p-DPBfMry4.js.map} +1 -1
- package/dist/components/{p-BJPokpdk.js → p-DR_UXNMx.js} +13 -12
- package/dist/components/p-DR_UXNMx.js.map +1 -0
- package/dist/components/{p-Dwqu7m_I.js → p-DRgnghCP.js} +5 -5
- package/dist/components/{p-Dwqu7m_I.js.map → p-DRgnghCP.js.map} +1 -1
- package/dist/components/{p-C7QOS5b4.js → p-D_ZAV9If.js} +7 -7
- package/dist/components/{p-C7QOS5b4.js.map → p-D_ZAV9If.js.map} +1 -1
- package/dist/components/{p-BUEZ6uxG.js → p-Dj4JDZ9W.js} +5 -5
- package/dist/components/{p-BUEZ6uxG.js.map → p-Dj4JDZ9W.js.map} +1 -1
- package/dist/components/{p-C_cuGb0d.js → p-DtHKroeT.js} +5 -5
- package/dist/components/{p-C_cuGb0d.js.map → p-DtHKroeT.js.map} +1 -1
- package/dist/components/{p-BmyZZVvG.js → p-DxYfbkxH.js} +4 -4
- package/dist/components/{p-BmyZZVvG.js.map → p-DxYfbkxH.js.map} +1 -1
- package/dist/components/{p-CoLVT2ul.js → p-Dxtgg1gN.js} +3 -3
- package/dist/components/{p-CoLVT2ul.js.map → p-Dxtgg1gN.js.map} +1 -1
- package/dist/components/{p-a6EsfrCF.js → p-DzkCpPXX.js} +9 -9
- package/dist/components/{p-a6EsfrCF.js.map → p-DzkCpPXX.js.map} +1 -1
- package/dist/components/{p-XoA6r1Sp.js → p-FYD-tPqw.js} +8 -8
- package/dist/components/{p-XoA6r1Sp.js.map → p-FYD-tPqw.js.map} +1 -1
- package/dist/components/{p-C0pHjJtj.js → p-NkqnymW3.js} +9 -9
- package/dist/components/{p-C0pHjJtj.js.map → p-NkqnymW3.js.map} +1 -1
- package/dist/components/{p-Du5g5VR_.js → p-SbxgHNeG.js} +6 -6
- package/dist/components/{p-Du5g5VR_.js.map → p-SbxgHNeG.js.map} +1 -1
- package/dist/components/{p-C7ZVu1Nd.js → p-SjPGcPOD.js} +6 -6
- package/dist/components/{p-C7ZVu1Nd.js.map → p-SjPGcPOD.js.map} +1 -1
- package/dist/components/{p-BvQ13Bty.js → p-U-EdxzfX.js} +4 -4
- package/dist/components/p-U-EdxzfX.js.map +1 -0
- package/dist/components/{p-DTmxwCTa.js → p-Uj5eg-r1.js} +42 -42
- package/dist/components/{p-DTmxwCTa.js.map → p-Uj5eg-r1.js.map} +1 -1
- package/dist/components/{p-elpxqGIV.js → p-cIIaCJPC.js} +3 -3
- package/dist/components/{p-elpxqGIV.js.map → p-cIIaCJPC.js.map} +1 -1
- package/dist/components/{p-BiyP1P0p.js → p-fOr8r1Zc.js} +6 -6
- package/dist/components/{p-BiyP1P0p.js.map → p-fOr8r1Zc.js.map} +1 -1
- package/dist/components/{p-DBECHub0.js → p-irdXl5Fp.js} +6 -6
- package/dist/components/{p-DBECHub0.js.map → p-irdXl5Fp.js.map} +1 -1
- package/dist/components/{p-CdMky78w.js → p-jHq8WTky.js} +3 -3
- package/dist/components/{p-CdMky78w.js.map → p-jHq8WTky.js.map} +1 -1
- package/dist/components/{p-CDVJMEhz.js → p-mElO3u2v.js} +5 -5
- package/dist/components/{p-CDVJMEhz.js.map → p-mElO3u2v.js.map} +1 -1
- package/dist/components/{p-Co55qdnC.js → p-nozjdB6e.js} +5 -5
- package/dist/components/{p-Co55qdnC.js.map → p-nozjdB6e.js.map} +1 -1
- package/dist/components/{p-MiuL2YAY.js → p-sKaBe5Hr.js} +6 -6
- package/dist/components/{p-MiuL2YAY.js.map → p-sKaBe5Hr.js.map} +1 -1
- package/dist/components/{p-BJXl7RY2.js → p-wJcvwuFy.js} +6 -6
- package/dist/components/{p-BJXl7RY2.js.map → p-wJcvwuFy.js.map} +1 -1
- package/dist/components/{p-DBE6FcDx.js → p-xxFdByBn.js} +15 -10
- package/dist/components/p-xxFdByBn.js.map +1 -0
- package/dist/components/{p-BPZfpfqz.js → p-zzOzXpMC.js} +7 -7
- package/dist/components/{p-BPZfpfqz.js.map → p-zzOzXpMC.js.map} +1 -1
- package/dist/components/textarea-component.js +1 -1
- package/dist/components/time-period-selector.js +1 -1
- package/dist/esm/{abstract-provider-KowNUOZM.js → abstract-provider-Dbnlk0Q8.js} +4 -4
- package/dist/esm/abstract-provider-Dbnlk0Q8.js.map +1 -0
- package/dist/esm/calendar-agenda-fill-icon_39.entry.js +2 -2
- package/dist/esm/checkbox-group_4.entry.js +3 -3
- package/dist/esm/checkmark-icon_14.entry.js +2 -2
- package/dist/esm/{customParseFormat-AHaK_YU_.js → customParseFormat-xZjyidlk.js} +3 -3
- package/dist/esm/{customParseFormat-AHaK_YU_.js.map → customParseFormat-xZjyidlk.js.map} +1 -1
- package/dist/esm/globe-icon_3.entry.js +2 -2
- package/dist/esm/google-logo-icon_6.entry.js +3 -3
- package/dist/esm/index.js +2 -2
- package/dist/esm/input-component.entry.js +1 -1
- package/dist/esm/input-dropdown_2.entry.js +1 -1
- package/dist/esm/input-image-url_2.entry.js +2 -2
- package/dist/esm/multi-select-dropdown.entry.js +1 -1
- package/dist/esm/{nylas-api-request-BUmT2J5X.js → nylas-api-request-tYrM5hQX.js} +3 -3
- package/dist/esm/{nylas-api-request-BUmT2J5X.js.map → nylas-api-request-tYrM5hQX.js.map} +1 -1
- package/dist/esm/nylas-booked-event-card_11.entry.js +18 -13
- package/dist/esm/nylas-booked-event-card_11.entry.js.map +1 -1
- package/dist/esm/nylas-form-card.entry.js +2 -2
- package/dist/esm/nylas-notification_2.entry.js +1 -1
- package/dist/esm/nylas-scheduler-editor.entry.js +4 -4
- package/dist/esm/nylas-scheduling.entry.js +29 -15
- package/dist/esm/nylas-scheduling.entry.js.map +1 -1
- package/dist/esm/{register-component-DVA2Alyc.js → register-component-3SZ7gAeK.js} +3 -3
- package/dist/esm/{register-component-DVA2Alyc.js.map → register-component-3SZ7gAeK.js.map} +1 -1
- package/dist/esm/textarea-component.entry.js +1 -1
- package/dist/esm/{utils-BW6igRcf.js → utils-DDKV6-nQ.js} +68 -9
- package/dist/esm/{utils-BW6igRcf.js.map → utils-DDKV6-nQ.js.map} +1 -1
- package/dist/esm/{version-DDixcvI0.js → version-Xc-4F4Ta.js} +3 -3
- package/dist/esm/{version-DDixcvI0.js.map → version-Xc-4F4Ta.js.map} +1 -1
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/{p-04000a4f.entry.js → p-2e34476b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-61828a18.entry.js → p-42432de0.entry.js} +2 -2
- package/dist/nylas-web-elements/p-469c232b.entry.js +2 -0
- package/dist/nylas-web-elements/p-469c232b.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-da0d3be5.entry.js → p-473a9f48.entry.js} +2 -2
- package/dist/nylas-web-elements/p-49510dd2.entry.js +2 -0
- package/dist/nylas-web-elements/p-49510dd2.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-e63c997e.entry.js → p-4c51d165.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-a5cc8de4.entry.js → p-6245bad4.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-937127a0.entry.js → p-7186d262.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-34fde935.entry.js → p-90569d2b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-54521b2b.entry.js → p-926c0f10.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-dlIPw-hO.js → p-CONX24aJ.js} +2 -2
- package/dist/nylas-web-elements/{p-dlIPw-hO.js.map → p-CONX24aJ.js.map} +1 -1
- package/dist/nylas-web-elements/{p-CRHgCWIn.js → p-CZUjPf2B.js} +2 -2
- package/dist/nylas-web-elements/{p-CRHgCWIn.js.map → p-CZUjPf2B.js.map} +1 -1
- package/dist/nylas-web-elements/p-CpfLRTv0.js +2 -0
- package/dist/nylas-web-elements/p-CpfLRTv0.js.map +1 -0
- package/dist/nylas-web-elements/{p-or8kjH6q.js → p-Cz68LNCB.js} +2 -2
- package/dist/nylas-web-elements/{p-or8kjH6q.js.map → p-Cz68LNCB.js.map} +1 -1
- package/dist/nylas-web-elements/p-DDKV6-nQ.js +8 -0
- package/dist/nylas-web-elements/{p-BW6igRcf.js.map → p-DDKV6-nQ.js.map} +1 -1
- package/dist/nylas-web-elements/{p-DDixcvI0.js → p-Xc-4F4Ta.js} +2 -2
- package/dist/nylas-web-elements/{p-DDixcvI0.js.map → p-Xc-4F4Ta.js.map} +1 -1
- package/dist/nylas-web-elements/p-b877c010.entry.js +2 -0
- package/dist/nylas-web-elements/{p-7fb5c45e.entry.js.map → p-b877c010.entry.js.map} +1 -1
- package/dist/nylas-web-elements/{p-5d8287eb.entry.js → p-b9a991fe.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-38051452.entry.js → p-bb4b9655.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-a6d5e357.entry.js → p-c71c04d0.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-400d16e6.entry.js → p-f74f3a8d.entry.js} +2 -2
- package/dist/types/components/scheduler/nylas-scheduling/nylas-scheduling.d.ts +3 -0
- package/dist/types/components.d.ts +2 -2
- package/dist/types/utils/utils.d.ts +2 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/abstract-provider-CH5yXWmY.js.map +0 -1
- package/dist/components/p-BJPokpdk.js.map +0 -1
- package/dist/components/p-BvQ13Bty.js.map +0 -1
- package/dist/components/p-CCA4ZVjd.js.map +0 -1
- package/dist/components/p-DBE6FcDx.js.map +0 -1
- package/dist/components/p-y6oP8jW5.js.map +0 -1
- package/dist/esm/abstract-provider-KowNUOZM.js.map +0 -1
- package/dist/nylas-web-elements/p--bAq8KLi.js +0 -2
- package/dist/nylas-web-elements/p--bAq8KLi.js.map +0 -1
- package/dist/nylas-web-elements/p-7fb5c45e.entry.js +0 -2
- package/dist/nylas-web-elements/p-BW6igRcf.js +0 -8
- package/dist/nylas-web-elements/p-a6579faa.entry.js +0 -2
- package/dist/nylas-web-elements/p-a6579faa.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-f5cf4c30.entry.js +0 -2
- package/dist/nylas-web-elements/p-f5cf4c30.entry.js.map +0 -1
- /package/dist/nylas-web-elements/{p-04000a4f.entry.js.map → p-2e34476b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-61828a18.entry.js.map → p-42432de0.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-da0d3be5.entry.js.map → p-473a9f48.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e63c997e.entry.js.map → p-4c51d165.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a5cc8de4.entry.js.map → p-6245bad4.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-937127a0.entry.js.map → p-7186d262.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-34fde935.entry.js.map → p-90569d2b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-54521b2b.entry.js.map → p-926c0f10.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-5d8287eb.entry.js.map → p-b9a991fe.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-38051452.entry.js.map → p-bb4b9655.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a6d5e357.entry.js.map → p-c71c04d0.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-400d16e6.entry.js.map → p-f74f3a8d.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-CDVJMEhz.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.scss?tag=nylas-selected-event-card&encapsulation=shadow","src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n @include default-css-variables;\n display: block;\n position: relative;\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-family: var(--nylas-font-family);\n}\n\n.event-card {\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: 4px;\n width: calc(100% - 3rem);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 3rem 1.5rem 1.5rem 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 3px 0px rgba(0, 0, 0, 0.1),\n 0px 1px 2px 0px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n margin-bottom: 2rem;\n }\n}\n\n.nylas-selected-event-card__date {\n font-size: min(max(16px, 3vw), 18px);\n font-weight: 600;\n}\n\n.nylas-selected-event-card__time {\n font-size: 16px;\n font-weight: 500;\n}\n\n.calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\ncalendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.event-timezone {\n display: flex;\n color: var(--nylas-base-600);\n margin-bottom: 8px;\n\n gap: 4px;\n align-items: center;\n\n @media #{$mobile} {\n margin-bottom: 16px;\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport type { NylasSchedulerConnector } from '../../..';\nimport type { ThemeConfig, Timeslot } from '@nylas/core';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { capitalizeFirstLetter, debug, formatBookedEventDate } from '@/utils/utils';\nimport { LANGUAGE_CODE, LANGUAGE_CODE_TO_LOCALE_MAP, TIMEZONE_MAP } from '@/common/constants';\nimport i18next from '@/utils/i18n';\n\n/**\n * The `nylas-selected-event-card` component is a UI component that displays the selected event card.\n *\n * @part nsec - The selected event card component.\n * @part nsec__card - The card component.\n * @part nsec__icon - The calendar icon.\n * @part nsec__date - The date selected.\n * @part nsec__time - The timeslot selected.\n * @part nsec__timezone - The timezone selected.\n */\n@Component({\n tag: 'nylas-selected-event-card',\n styleUrl: 'nylas-selected-event-card.scss',\n shadow: true,\n})\nexport class NylasSelectedEventCard {\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSelectedEventCardElement;\n\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: any;\n\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date;\n\n /**\n * The selected time.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n\n /**\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected language.\n */\n @Prop({ attribute: 'selected-language' }) readonly selectedLanguage?: LANGUAGE_CODE;\n /**\n * The 12-hour time format.\n */\n @Prop() hour12?: boolean;\n\n @State() startTime: string = '';\n @State() endTime: string = '';\n\n @Watch('themeConfig')\n themeConfigChanged(newThemeConfig: ThemeConfig) {\n this.applyThemeConfig(newThemeConfig);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n this.updateTimes();\n }\n\n @Watch('selectedTimeslot')\n selectedTimeslotChangedHandler() {\n this.updateTimes();\n }\n\n @Watch('selectedTimezone')\n selectedTimezoneChangedHandler() {\n this.updateTimes();\n }\n\n @Watch('hour12')\n hour12ChangedHandler() {\n this.updateTimes();\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-selected-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-selected-event-card] Component did load`);\n if (!this.selectedDate) {\n debug('[nylas-selected-event-card] \"selectedDate\" prop is not provided.');\n }\n if (!this.selectedTimeslot) {\n debug('[nylas-selected-event-card] \"selectedTimeslot\" prop is not provided.');\n }\n this.updateTimes();\n }\n\n private updateTimes() {\n if (!this.selectedTimeslot?.start_time || !this.selectedTimeslot?.end_time) {\n this.startTime = '';\n this.endTime = '';\n return;\n }\n\n const locale = LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en'];\n const timeFormat = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.selectedTimezone,\n hour12: this.hour12,\n });\n\n this.startTime = timeFormat.format(new Date(this.selectedTimeslot.start_time));\n this.endTime = timeFormat.format(new Date(this.selectedTimeslot.end_time));\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasSelectedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-selected-event-card',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.themeConfig', 'themeConfig'],\n ['scheduler.hour12', 'hour12'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nsec\">\n <div class=\"event-card\" part=\"nsec__card\">\n <div class=\"calendar-icon\" part=\"nsec__icon\">\n <calendar-icon />\n </div>\n <div class=\"nylas-selected-event-card__date\" part=\"nsec__date\">\n {this.selectedDate\n ? capitalizeFirstLetter(\n formatBookedEventDate(this.selectedTimeslot?.start_time as Date, this.selectedTimezone, LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en']),\n )\n : '-'}\n </div>\n <div class=\"nylas-selected-event-card__time\" part=\"nsec__time\">\n {this.startTime} - {this.endTime}\n </div>\n </div>\n <div class=\"event-timezone\" part=\"nsec__timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-mElO3u2v.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.scss?tag=nylas-selected-event-card&encapsulation=shadow","src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n @include default-css-variables;\n display: block;\n position: relative;\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-family: var(--nylas-font-family);\n}\n\n.event-card {\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: 4px;\n width: calc(100% - 3rem);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 3rem 1.5rem 1.5rem 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 3px 0px rgba(0, 0, 0, 0.1),\n 0px 1px 2px 0px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n margin-bottom: 2rem;\n }\n}\n\n.nylas-selected-event-card__date {\n font-size: min(max(16px, 3vw), 18px);\n font-weight: 600;\n}\n\n.nylas-selected-event-card__time {\n font-size: 16px;\n font-weight: 500;\n}\n\n.calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\ncalendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.event-timezone {\n display: flex;\n color: var(--nylas-base-600);\n margin-bottom: 8px;\n\n gap: 4px;\n align-items: center;\n\n @media #{$mobile} {\n margin-bottom: 16px;\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport type { NylasSchedulerConnector } from '../../..';\nimport type { ThemeConfig, Timeslot } from '@nylas/core';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { capitalizeFirstLetter, debug, formatBookedEventDate } from '@/utils/utils';\nimport { LANGUAGE_CODE, LANGUAGE_CODE_TO_LOCALE_MAP, TIMEZONE_MAP } from '@/common/constants';\nimport i18next from '@/utils/i18n';\n\n/**\n * The `nylas-selected-event-card` component is a UI component that displays the selected event card.\n *\n * @part nsec - The selected event card component.\n * @part nsec__card - The card component.\n * @part nsec__icon - The calendar icon.\n * @part nsec__date - The date selected.\n * @part nsec__time - The timeslot selected.\n * @part nsec__timezone - The timezone selected.\n */\n@Component({\n tag: 'nylas-selected-event-card',\n styleUrl: 'nylas-selected-event-card.scss',\n shadow: true,\n})\nexport class NylasSelectedEventCard {\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSelectedEventCardElement;\n\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: any;\n\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date;\n\n /**\n * The selected time.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n\n /**\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected language.\n */\n @Prop({ attribute: 'selected-language' }) readonly selectedLanguage?: LANGUAGE_CODE;\n /**\n * The 12-hour time format.\n */\n @Prop() hour12?: boolean;\n\n @State() startTime: string = '';\n @State() endTime: string = '';\n\n @Watch('themeConfig')\n themeConfigChanged(newThemeConfig: ThemeConfig) {\n this.applyThemeConfig(newThemeConfig);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n this.updateTimes();\n }\n\n @Watch('selectedTimeslot')\n selectedTimeslotChangedHandler() {\n this.updateTimes();\n }\n\n @Watch('selectedTimezone')\n selectedTimezoneChangedHandler() {\n this.updateTimes();\n }\n\n @Watch('hour12')\n hour12ChangedHandler() {\n this.updateTimes();\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-selected-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-selected-event-card] Component did load`);\n if (!this.selectedDate) {\n debug('[nylas-selected-event-card] \"selectedDate\" prop is not provided.');\n }\n if (!this.selectedTimeslot) {\n debug('[nylas-selected-event-card] \"selectedTimeslot\" prop is not provided.');\n }\n this.updateTimes();\n }\n\n private updateTimes() {\n if (!this.selectedTimeslot?.start_time || !this.selectedTimeslot?.end_time) {\n this.startTime = '';\n this.endTime = '';\n return;\n }\n\n const locale = LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en'];\n const timeFormat = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.selectedTimezone,\n hour12: this.hour12,\n });\n\n this.startTime = timeFormat.format(new Date(this.selectedTimeslot.start_time));\n this.endTime = timeFormat.format(new Date(this.selectedTimeslot.end_time));\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasSelectedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-selected-event-card',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.themeConfig', 'themeConfig'],\n ['scheduler.hour12', 'hour12'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nsec\">\n <div class=\"event-card\" part=\"nsec__card\">\n <div class=\"calendar-icon\" part=\"nsec__icon\">\n <calendar-icon />\n </div>\n <div class=\"nylas-selected-event-card__date\" part=\"nsec__date\">\n {this.selectedDate\n ? capitalizeFirstLetter(\n formatBookedEventDate(this.selectedTimeslot?.start_time as Date, this.selectedTimezone, LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en']),\n )\n : '-'}\n </div>\n <div class=\"nylas-selected-event-card__time\" part=\"nsec__time\">\n {this.startTime} - {this.endTime}\n </div>\n </div>\n <div class=\"event-timezone\" part=\"nsec__timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-Bht9ktsW.js';
|
|
2
|
-
import { R as RegisterComponent } from './p-
|
|
3
|
-
import { a as debug, N as CONFIGURATION_EVENT_TYPE } from './p-
|
|
4
|
-
import { i as instance } from './p-
|
|
2
|
+
import { R as RegisterComponent } from './p-jHq8WTky.js';
|
|
3
|
+
import { a as debug, N as CONFIGURATION_EVENT_TYPE } from './p-xxFdByBn.js';
|
|
4
|
+
import { i as instance } from './p-BjxQTsOy.js';
|
|
5
5
|
import { d as defineCustomElement$3 } from './p-BVH0Klhu.js';
|
|
6
6
|
import { d as defineCustomElement$2 } from './p-ao6VxuAL.js';
|
|
7
7
|
import { d as defineCustomElement$1 } from './p-C7ZpwRD0.js';
|
|
@@ -211,6 +211,6 @@ function defineCustomElement() {
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
export { NylasSelectEventType as N, defineCustomElement as d };
|
|
214
|
-
//# sourceMappingURL=p-
|
|
214
|
+
//# sourceMappingURL=p-nozjdB6e.js.map
|
|
215
215
|
|
|
216
|
-
//# sourceMappingURL=p-
|
|
216
|
+
//# sourceMappingURL=p-nozjdB6e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-Co55qdnC.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.scss?tag=nylas-select-event-type&encapsulation=shadow","src/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-select-event-type {\n height: inherit;\n overflow-y: auto;\n\n div.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n\n h2 {\n font-size: 18px;\n padding: 0 24px;\n line-height: 24px;\n margin: 0;\n font-weight: 600;\n color: var(--nylas-base-800);\n }\n\n button-component {\n button {\n @include invisible-button;\n }\n }\n }\n\n div.content {\n padding: 40px;\n\n h3 {\n margin: 0 0 32px 0;\n font-size: 18px;\n line-height: 24px;\n font-weight: 600;\n }\n\n div.event-type {\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n div.event-type-option {\n padding: 16px;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-3x);\n width: inherit;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n h4 {\n margin: 0;\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n color: var(--nylas-base-900);\n }\n\n p {\n margin: 0;\n font-size: 14px;\n line-height: 21px;\n font-weight: 400;\n color: var(--nylas-base-800);\n }\n }\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, LANGUAGE_CODE } from '@/common/constants';\nimport { AdditionalParticipant, EnableEventTypes, ThemeConfig } from '@nylas/core';\n\n/**\n * The `nylas-select-event-type` component is a UI component that allows users to select the event type for the scheduler configuration.\n */\n@Component({\n tag: 'nylas-select-event-type',\n styleUrl: 'nylas-select-event-type.scss',\n shadow: true,\n})\nexport class NylasSelectEventType {\n @Element() host!: HTMLNylasSelectEventTypeElement;\n\n /**\n * @standalone\n * The participant options passed in the additionalParticipants prop\n * from the nylas-scheduler-editor component.\n */\n @Prop() participantOptions?: AdditionalParticipant[];\n\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'select-event-type';\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The enable event types.\n */\n @Prop() enableEventTypes?: EnableEventTypes = {\n one_on_one: true,\n collective: true,\n max_fairness: true,\n max_availability: true,\n group: true,\n };\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * This event is fired when the return to all scheduling pages button is clicked.\n */\n @Event() returnToAllSchedulingPagesEvent!: EventEmitter<void>;\n\n /**\n * This event is fired when the event type is selected.\n */\n @Event() createEventTypeSelected!: EventEmitter<{ eventType: CONFIGURATION_EVENT_TYPE }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-select-event-type', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-select-event-type', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-select-event-type', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-select-event-type', 'componentDidLoad');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-select-event-type', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasSelectEventType, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-select-event-type',\n stateToProps: new Map([\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.additionalParticipants', 'participantOptions'],\n ['schedulerConfig.enableEventTypes', 'enableEventTypes'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n returnToAllSchedulingPagesEvent: async (_event: CustomEvent<void>, connector: NylasSchedulerConfigConnector) => {\n connector.schedulerConfigStore.state.action = null;\n connector.schedulerConfigStore.set('selectedEventType', undefined);\n },\n createEventTypeSelected: async (event: CustomEvent<{ eventType: CONFIGURATION_EVENT_TYPE }>, connector: NylasSchedulerConfigConnector) => {\n const { eventType } = event.detail;\n connector.schedulerConfigStore.state.action = 'create';\n connector.schedulerConfigStore.state.selectedEventType = eventType;\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n interface EventTypeOption {\n label: string;\n value: CONFIGURATION_EVENT_TYPE;\n description: string;\n }\n\n const eventTypeKey = {\n 'one-on-one': 'one_on_one',\n 'collective': 'collective',\n 'max-fairness': 'max_fairness',\n 'max-availability': 'max_availability',\n 'group': 'group',\n };\n\n const allEventTypes: EventTypeOption[] = [\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.oneOnOne.label'),\n value: CONFIGURATION_EVENT_TYPE.one_on_one,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.oneOnOne.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.collective.label'),\n value: CONFIGURATION_EVENT_TYPE.collective,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.collective.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.maxFairness.label'),\n value: CONFIGURATION_EVENT_TYPE.max_fairness,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.maxFairness.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.maxAvailability.label'),\n value: CONFIGURATION_EVENT_TYPE.max_availability,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.maxAvailability.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.group.label'),\n value: CONFIGURATION_EVENT_TYPE.group,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.group.desc'),\n },\n ];\n const conditionalEventTypes = [CONFIGURATION_EVENT_TYPE.collective, CONFIGURATION_EVENT_TYPE.max_availability, CONFIGURATION_EVENT_TYPE.max_fairness];\n const hasAdditionalParticipants =\n this.participantOptions &&\n this.participantOptions?.length > 0 &&\n !!this.participantOptions[0].email &&\n !!this.participantOptions[0].name &&\n !!this.participantOptions[0].calendars &&\n this.participantOptions[0].calendars.length > 0;\n\n const eventTypes = this.enableEventTypes\n ? allEventTypes.filter(eventType => {\n const key = eventType.value;\n const keyType = eventTypeKey[key];\n debug('key', key, this.enableEventTypes ? this.enableEventTypes[keyType] : 'no enableEventTypes');\n if (conditionalEventTypes.includes(key) && !hasAdditionalParticipants) {\n return false;\n }\n return this.enableEventTypes && this.enableEventTypes[keyType];\n })\n : allEventTypes;\n return (\n <Host>\n <div class=\"nylas-select-event-type\" part=\"nset\">\n <div class=\"header\" part=\"nset__header\">\n <h2>{i18next.t('nylasSelectEventType.createEventHeaderTitle')}</h2>\n <button-component\n variant=\"invisible\"\n part=\"nset__header__back-button\"\n onClick={_event => {\n this.returnToAllSchedulingPagesEvent.emit();\n }}\n >\n <chevron-icon width=\"16\" height=\"16\" />\n <span>{i18next.t('nylasSelectEventType.returnToAllSchedulingPages')}</span>\n </button-component>\n </div>\n <div class=\"content\" part=\"nset__content\">\n <h3>{i18next.t('nylasSelectEventType.eventTypeHeaderTitle')}</h3>\n <div class=\"event-type\" part=\"nset__content__event-type\">\n {eventTypes.length === 0 && <p>{i18next.t('nylasSelectEventType.noEventTypesEnabled')}</p>}\n {eventTypes.map(eventType => (\n <div\n class=\"event-type-option\"\n onClick={_event => {\n this.createEventTypeSelected.emit({ eventType: eventType.value });\n }}\n part={`nset__content__event-type-option-${eventType.value}`}\n >\n <h4>{eventType.label}</h4>\n <p>{eventType.description}</p>\n </div>\n ))}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-nozjdB6e.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.scss?tag=nylas-select-event-type&encapsulation=shadow","src/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-select-event-type {\n height: inherit;\n overflow-y: auto;\n\n div.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n\n h2 {\n font-size: 18px;\n padding: 0 24px;\n line-height: 24px;\n margin: 0;\n font-weight: 600;\n color: var(--nylas-base-800);\n }\n\n button-component {\n button {\n @include invisible-button;\n }\n }\n }\n\n div.content {\n padding: 40px;\n\n h3 {\n margin: 0 0 32px 0;\n font-size: 18px;\n line-height: 24px;\n font-weight: 600;\n }\n\n div.event-type {\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n div.event-type-option {\n padding: 16px;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-3x);\n width: inherit;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n h4 {\n margin: 0;\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n color: var(--nylas-base-900);\n }\n\n p {\n margin: 0;\n font-size: 14px;\n line-height: 21px;\n font-weight: 400;\n color: var(--nylas-base-800);\n }\n }\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, LANGUAGE_CODE } from '@/common/constants';\nimport { AdditionalParticipant, EnableEventTypes, ThemeConfig } from '@nylas/core';\n\n/**\n * The `nylas-select-event-type` component is a UI component that allows users to select the event type for the scheduler configuration.\n */\n@Component({\n tag: 'nylas-select-event-type',\n styleUrl: 'nylas-select-event-type.scss',\n shadow: true,\n})\nexport class NylasSelectEventType {\n @Element() host!: HTMLNylasSelectEventTypeElement;\n\n /**\n * @standalone\n * The participant options passed in the additionalParticipants prop\n * from the nylas-scheduler-editor component.\n */\n @Prop() participantOptions?: AdditionalParticipant[];\n\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'select-event-type';\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The enable event types.\n */\n @Prop() enableEventTypes?: EnableEventTypes = {\n one_on_one: true,\n collective: true,\n max_fairness: true,\n max_availability: true,\n group: true,\n };\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * This event is fired when the return to all scheduling pages button is clicked.\n */\n @Event() returnToAllSchedulingPagesEvent!: EventEmitter<void>;\n\n /**\n * This event is fired when the event type is selected.\n */\n @Event() createEventTypeSelected!: EventEmitter<{ eventType: CONFIGURATION_EVENT_TYPE }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-select-event-type', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-select-event-type', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-select-event-type', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-select-event-type', 'componentDidLoad');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-select-event-type', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasSelectEventType, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-select-event-type',\n stateToProps: new Map([\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.additionalParticipants', 'participantOptions'],\n ['schedulerConfig.enableEventTypes', 'enableEventTypes'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n returnToAllSchedulingPagesEvent: async (_event: CustomEvent<void>, connector: NylasSchedulerConfigConnector) => {\n connector.schedulerConfigStore.state.action = null;\n connector.schedulerConfigStore.set('selectedEventType', undefined);\n },\n createEventTypeSelected: async (event: CustomEvent<{ eventType: CONFIGURATION_EVENT_TYPE }>, connector: NylasSchedulerConfigConnector) => {\n const { eventType } = event.detail;\n connector.schedulerConfigStore.state.action = 'create';\n connector.schedulerConfigStore.state.selectedEventType = eventType;\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n interface EventTypeOption {\n label: string;\n value: CONFIGURATION_EVENT_TYPE;\n description: string;\n }\n\n const eventTypeKey = {\n 'one-on-one': 'one_on_one',\n 'collective': 'collective',\n 'max-fairness': 'max_fairness',\n 'max-availability': 'max_availability',\n 'group': 'group',\n };\n\n const allEventTypes: EventTypeOption[] = [\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.oneOnOne.label'),\n value: CONFIGURATION_EVENT_TYPE.one_on_one,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.oneOnOne.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.collective.label'),\n value: CONFIGURATION_EVENT_TYPE.collective,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.collective.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.maxFairness.label'),\n value: CONFIGURATION_EVENT_TYPE.max_fairness,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.maxFairness.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.maxAvailability.label'),\n value: CONFIGURATION_EVENT_TYPE.max_availability,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.maxAvailability.desc'),\n },\n {\n label: i18next.t('nylasSelectEventType.eventTypeOptions.group.label'),\n value: CONFIGURATION_EVENT_TYPE.group,\n description: i18next.t('nylasSelectEventType.eventTypeOptions.group.desc'),\n },\n ];\n const conditionalEventTypes = [CONFIGURATION_EVENT_TYPE.collective, CONFIGURATION_EVENT_TYPE.max_availability, CONFIGURATION_EVENT_TYPE.max_fairness];\n const hasAdditionalParticipants =\n this.participantOptions &&\n this.participantOptions?.length > 0 &&\n !!this.participantOptions[0].email &&\n !!this.participantOptions[0].name &&\n !!this.participantOptions[0].calendars &&\n this.participantOptions[0].calendars.length > 0;\n\n const eventTypes = this.enableEventTypes\n ? allEventTypes.filter(eventType => {\n const key = eventType.value;\n const keyType = eventTypeKey[key];\n debug('key', key, this.enableEventTypes ? this.enableEventTypes[keyType] : 'no enableEventTypes');\n if (conditionalEventTypes.includes(key) && !hasAdditionalParticipants) {\n return false;\n }\n return this.enableEventTypes && this.enableEventTypes[keyType];\n })\n : allEventTypes;\n return (\n <Host>\n <div class=\"nylas-select-event-type\" part=\"nset\">\n <div class=\"header\" part=\"nset__header\">\n <h2>{i18next.t('nylasSelectEventType.createEventHeaderTitle')}</h2>\n <button-component\n variant=\"invisible\"\n part=\"nset__header__back-button\"\n onClick={_event => {\n this.returnToAllSchedulingPagesEvent.emit();\n }}\n >\n <chevron-icon width=\"16\" height=\"16\" />\n <span>{i18next.t('nylasSelectEventType.returnToAllSchedulingPages')}</span>\n </button-component>\n </div>\n <div class=\"content\" part=\"nset__content\">\n <h3>{i18next.t('nylasSelectEventType.eventTypeHeaderTitle')}</h3>\n <div class=\"event-type\" part=\"nset__content__event-type\">\n {eventTypes.length === 0 && <p>{i18next.t('nylasSelectEventType.noEventTypesEnabled')}</p>}\n {eventTypes.map(eventType => (\n <div\n class=\"event-type-option\"\n onClick={_event => {\n this.createEventTypeSelected.emit({ eventType: eventType.value });\n }}\n part={`nset__content__event-type-option-${eventType.value}`}\n >\n <h4>{eventType.label}</h4>\n <p>{eventType.description}</p>\n </div>\n ))}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-Bht9ktsW.js';
|
|
2
|
-
import { R as RegisterComponent } from './p-
|
|
3
|
-
import { a as debug, D as DEFAULT_OPEN_HOURS, t as timeToMinutes, b as convertTo12HourFormat, m as minutesToTime, f as convertTo24HourFormat, T as TIMEZONE_MAP } from './p-
|
|
4
|
-
import { i as instance } from './p-
|
|
2
|
+
import { R as RegisterComponent } from './p-jHq8WTky.js';
|
|
3
|
+
import { a as debug, D as DEFAULT_OPEN_HOURS, t as timeToMinutes, b as convertTo12HourFormat, m as minutesToTime, f as convertTo24HourFormat, T as TIMEZONE_MAP } from './p-xxFdByBn.js';
|
|
4
|
+
import { i as instance } from './p-BjxQTsOy.js';
|
|
5
5
|
import { d as defineCustomElement$9 } from './p-Dl0Yur5r.js';
|
|
6
6
|
import { d as defineCustomElement$8 } from './p-ao6VxuAL.js';
|
|
7
7
|
import { d as defineCustomElement$7 } from './p-CzVZs3uZ.js';
|
|
8
8
|
import { d as defineCustomElement$6 } from './p-DS6Ijr4M.js';
|
|
9
9
|
import { d as defineCustomElement$5 } from './p-d3kelm3z.js';
|
|
10
|
-
import { d as defineCustomElement$4 } from './p-
|
|
10
|
+
import { d as defineCustomElement$4 } from './p-DxYfbkxH.js';
|
|
11
11
|
import { d as defineCustomElement$3 } from './p-DBHtQK2b.js';
|
|
12
12
|
import { d as defineCustomElement$2 } from './p-wphqTozF.js';
|
|
13
13
|
import { d as defineCustomElement$1 } from './p-DxDoo-4C.js';
|
|
@@ -562,6 +562,6 @@ function defineCustomElement() {
|
|
|
562
562
|
}
|
|
563
563
|
|
|
564
564
|
export { NylasAvailabilityPicker as N, defineCustomElement as d };
|
|
565
|
-
//# sourceMappingURL=p-
|
|
565
|
+
//# sourceMappingURL=p-sKaBe5Hr.js.map
|
|
566
566
|
|
|
567
|
-
//# sourceMappingURL=p-
|
|
567
|
+
//# sourceMappingURL=p-sKaBe5Hr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-MiuL2YAY.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.scss?tag=nylas-availability-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-availability-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n }\n\n .content {\n padding: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n color: var(--nylas-base-900);\n font-size: 16px;\n font-family: var(--nylas-font-family);\n background: var(--nylas-base-25);\n\n @media #{$small-mobile} {\n font-size: 15px;\n }\n\n .select-timezone {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n padding-bottom: 1rem;\n gap: 1rem;\n\n h4 {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n margin: 0;\n font-size: 16px;\n font-weight: 500;\n line-height: 20px;\n\n @media #{$small-mobile} {\n font-size: 15px;\n }\n }\n }\n\n .availability {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 0 0.5rem;\n margin: 1rem 0;\n\n @media #{$small-mobile} {\n gap: 0.5rem;\n padding: 0;\n }\n\n .availability-day {\n display: grid;\n grid-template-columns: minmax(auto, 65px) 1fr minmax(auto, 40px);\n\n gap: 1rem;\n align-items: baseline;\n\n @media #{$mobile} {\n grid-template-columns: 78px 1fr auto;\n }\n\n @media #{$small-mobile} {\n display: inline-grid;\n gap: 8px;\n grid-template-columns: 60px 1fr auto;\n }\n\n .day {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n\n @media #{$small-mobile} {\n gap: 0.25rem;\n }\n\n input[type='checkbox'] {\n transform: scale(1.3);\n }\n }\n\n .time-ranges {\n span.unavailable {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .time-range {\n display: flex;\n gap: 1.5rem;\n justify-content: space-between;\n align-items: baseline;\n\n @media #{$small-mobile} {\n justify-content: unset;\n gap: 0.5rem;\n }\n\n .pickers {\n display: flex;\n gap: 1rem;\n\n @media #{$small-mobile} {\n gap: 0.5rem;\n }\n\n span {\n margin-top: 0.75rem;\n }\n }\n\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n\n .error-message {\n width: 100%;\n padding: 4px 8px;\n background: var(--nylas-error-50);\n color: var(--nylas-error);\n font-size: 12px;\n border-radius: 4px;\n border: 1px solid var(--nylas-error-200);\n margin-top: 8px;\n }\n }\n\n button {\n border: none;\n background: transparent;\n height: 40px;\n cursor: pointer;\n color: var(--nylas-base-800);\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n }\n }\n }\n}\n\nselect-dropdown {\n width: auto;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n justify-content: initial;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { DEFAULT_OPEN_HOURS, TIMEZONE_MAP } from '@/common/constants';\nimport { Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\nexport type OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone: string;\n};\n\nexport type Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n /**\n * The element <nylas-availability-picker> itself.\n */\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n /**\n * @standalone\n * The name of the availability picker.\n */\n @Prop() name: string = 'availability';\n /**\n * @standalone\n * The selected configuration.\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The open hours to display.\n */\n @Prop() openHours?: OpenHours[];\n /**\n * @standalone\n * The default timezone or preset timezone.\n */\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * @standalone\n * Hide the header of the availability picker.\n */\n @Prop() hideHeader: boolean = false;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * This event is fired when the selected availability / open hours change.\n * The value is a stringified JSON object with the open hours and timezone.\n ```\n {\n openHours: OpenHours[],\n timezone: string\n }\n ```\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n /**\n * The selected timezone state.\n */\n @State() timezone: string = '';\n\n /**\n * The overlapping time ranges state. This is used to display an error message when there are overlapping time ranges.\n */\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * State for tracking time window validation errors (e.g., start time after end time)\n */\n @State() timeWindowErrors: { [key: string]: string } = {};\n\n /**\n * Flag to track if the component has loaded.\n */\n private hasLoaded: boolean = false;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-availability-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('defaultTimezone')\n defaultTimezoneChanged(newValue: string) {\n if (!this.hasLoaded) return;\n if (newValue && newValue !== this.timezone) {\n this.timezone = newValue;\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(updateValue), this.name);\n this.valueChanged.emit({\n value: JSON.stringify(updateValue),\n name: this.name,\n });\n }\n }\n\n @Watch('openHours')\n openHoursChanged(newValue: OpenHours[]) {\n // Only process if we have a non-empty array and timezone is already set\n // This prevents processing during initialization and handles null/undefined consistently\n if (newValue && newValue.length > 0 && this.timezone) {\n this.openHoursToSchedule(newValue);\n }\n }\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n const defaultOpenHours = newConfig?.availability?.availability_rules?.default_open_hours ?? DEFAULT_OPEN_HOURS;\n // If the name is `availability`, we are setting the default open hours. If the name is `participant-****`, we are setting the participant's custom availability.\n // Set the timezone accordingly.\n const defaultOpenHoursTimezone = newConfig?.event_booking?.timezone || this.defaultTimezone;\n this.timezone = this.name === 'availability' ? defaultOpenHoursTimezone : this.defaultTimezone;\n\n // Process openHours if available, otherwise fall back to defaultOpenHours\n // The openHours watcher will handle openHours changes separately to avoid redundant calls\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n } else if (defaultOpenHours) {\n this.openHoursToSchedule(defaultOpenHours);\n }\n }\n\n /**\n * Normalize time format to ensure consistent parsing across languages\n */\n private normalizeTimeFormat(timeStr: string): string {\n // Normalize Spanish AM/PM formats (a.m./p.m.) to English am/pm\n return timeStr.replace(/a\\.?m\\.?/gi, 'am').replace(/p\\.?m\\.?/gi, 'pm');\n }\n\n scheduleChanged(newValue: Schedule, valueChanged: boolean = true) {\n const overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n // Normalize time formats before checking overlaps\n const normalizedTimeRanges = dayTimeRanges.map(range => ({\n start: this.normalizeTimeFormat(range.start),\n end: this.normalizeTimeFormat(range.end),\n }));\n const overlaps = this.getOverlaps(normalizedTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n\n // Clean up timeWindowErrors for non-existent time ranges\n this.cleanupTimeWindowErrors(newValue);\n\n this.updateFormValidity();\n\n if (valueChanged) {\n this.valueChanged.emit({\n value: JSON.stringify({\n openHours: this.scheduleToOpenHours(newValue),\n timezone: this.timezone,\n }),\n name: this.name,\n });\n }\n }\n\n /**\n * Clean up timeWindowErrors for time ranges that no longer exist in the schedule\n */\n private cleanupTimeWindowErrors(schedule: Schedule) {\n const newTimeWindowErrors = { ...this.timeWindowErrors };\n let hasChanges = false;\n\n // Get all valid time range keys from current schedule\n const validKeys = new Set<string>();\n Object.keys(schedule).forEach(day => {\n const timeRanges = schedule[day];\n timeRanges.forEach((_, index) => {\n validKeys.add(`${day}:${index}_start`);\n validKeys.add(`${day}:${index}_end`);\n });\n });\n\n // Remove errors for keys that no longer exist\n Object.keys(newTimeWindowErrors).forEach(errorKey => {\n if (!validKeys.has(errorKey)) {\n delete newTimeWindowErrors[errorKey];\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.timeWindowErrors = newTimeWindowErrors;\n }\n }\n\n /**\n * Updates form validity based on both overlap errors and time window errors\n */\n updateFormValidity() {\n const hasOverlapErrors = Object.keys(this.overlapDays).length > 0;\n const hasTimeWindowErrors = Object.keys(this.timeWindowErrors).filter(key => this.timeWindowErrors[key]).length > 0;\n\n if (hasOverlapErrors) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(this.overlapDays)[0]) as HTMLInputElement;\n if (element) {\n debug('nylas-availability-picker', 'The time ranges are overlapping. Overlap: ', this.overlapDays);\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else if (hasTimeWindowErrors) {\n const firstErrorKey = Object.keys(this.timeWindowErrors).find(key => this.timeWindowErrors[key]);\n const element = this.host.shadowRoot?.getElementById(firstErrorKey!) as HTMLInputElement;\n const errorMessage = this.timeWindowErrors[firstErrorKey!];\n if (element) {\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, errorMessage, element);\n }\n } else {\n this.isInternalsAvailable && this.internals.setValidity({ customError: false });\n this.isInternalsAvailable &&\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n this.name,\n );\n }\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(updateValue), this.name);\n this.valueChanged.emit({\n value: JSON.stringify(updateValue),\n name: this.name,\n });\n }\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n\n if (this.selectedConfiguration) {\n this.configChangedHandler(this.selectedConfiguration);\n } else {\n this.timezone = this.defaultTimezone;\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n }\n }\n\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(updateValue), this.name);\n\n // Set initial form validity\n this.updateFormValidity();\n this.hasLoaded = true;\n }\n\n get isInternalsAvailable() {\n return typeof this.internals.setFormValue === 'function';\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n const timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n const overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }\n\n removeTimeRange(day, index) {\n // Clear any time window errors for the removed time range\n const startKey = `${day}:${index}_start`;\n const endKey = `${day}:${index}_end`;\n\n const newTimeWindowErrors = { ...this.timeWindowErrors };\n delete newTimeWindowErrors[startKey];\n delete newTimeWindowErrors[endKey];\n this.timeWindowErrors = newTimeWindowErrors;\n\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }\n\n @Listen('timeChange')\n setTime(event: CustomEvent<{ key: string; value: string }>) {\n const { key, value } = event.detail;\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n\n // Clear any existing time window error for this specific key\n if (this.timeWindowErrors[key]) {\n const newErrors = { ...this.timeWindowErrors };\n delete newErrors[key];\n this.timeWindowErrors = newErrors;\n }\n\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }\n\n @Listen('timeWindowFormError')\n setFormError(event: CustomEvent<{ key: string; message: string }>) {\n const { key, message } = event.detail;\n\n if (message) {\n // Set the error for this specific time input\n this.timeWindowErrors = {\n ...this.timeWindowErrors,\n [key]: message,\n };\n } else {\n // Clear the error for this specific time input\n const newErrors = { ...this.timeWindowErrors };\n delete newErrors[key];\n this.timeWindowErrors = newErrors;\n }\n\n // Update overall form validity\n this.updateFormValidity();\n }\n\n openHoursToSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n if (!openHour.days) return;\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = this.normalizeTimeFormat(convertTo12HourFormat(openHour.start));\n const end12hr = this.normalizeTimeFormat(convertTo12HourFormat(openHour.end));\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n\n this.schedule = newSchedule;\n this.scheduleChanged(this.schedule, false);\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n const openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n const entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n const selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n timezone: this.timezone,\n });\n });\n\n return selectedOpenHours;\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n const selectedTimezoneOption = timezoneOptions.find(i => i.value === this.timezone);\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\" part=\"nap\">\n {!this.hideHeader && (\n <div class=\"header\" part=\"nap__header\">\n <h3>{i18next.t('nylasAvailabilityPicker.headerTitle')}</h3>\n <p>\n {i18next.t('nylasAvailabilityPicker.headerSubTitle')}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasAvailabilityPicker.tooltip.desc')}</span>\n </tooltip-component>\n </p>\n </div>\n )}\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">{i18next.t('nylasAvailabilityPicker.selectTimezone')}</h4>\n {selectedTimezoneOption?.label && (\n <select-dropdown\n name=\"timezone\"\n searchPlaceholder={i18next.t('search')}\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={selectedTimezoneOption}\n themeConfig={this.themeConfig}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n )}\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n // Clear any time window errors for this day when toggling off\n const newTimeWindowErrors = { ...this.timeWindowErrors };\n Object.keys(newTimeWindowErrors).forEach(errorKey => {\n if (errorKey.startsWith(`${day}:`)) {\n delete newTimeWindowErrors[errorKey];\n }\n });\n this.timeWindowErrors = newTimeWindowErrors;\n\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {i18next.t(`nylasAvailabilityPicker.days.${day}`)}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">{i18next.t('nylasAvailabilityPicker.unavailable')}</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex) || !!this.timeWindowErrors[startKey]}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n language={this.selectedLanguage}\n themeConfig={this.themeConfig}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex) || !!this.timeWindowErrors[endKey]}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n language={this.selectedLanguage}\n themeConfig={this.themeConfig}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n {(this.overlapDays[day] || Object.keys(this.timeWindowErrors).find(key => key.startsWith(`${day}:`) && this.timeWindowErrors[key])) && (\n <div class=\"error-message\" part=\"nap__error-message\">\n {this.overlapDays[day] ? i18next.t('nylasAvailabilityPicker.errors.overlappingTimeRanges') : ''}\n {!this.overlapDays[day] && Object.keys(this.timeWindowErrors).find(key => key.startsWith(`${day}:`) && this.timeWindowErrors[key])\n ? this.timeWindowErrors[Object.keys(this.timeWindowErrors).find(key => key.startsWith(`${day}:`) && this.timeWindowErrors[key])!]\n : ''}\n </div>\n )}\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-sKaBe5Hr.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.scss?tag=nylas-availability-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-availability-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n }\n\n .content {\n padding: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n color: var(--nylas-base-900);\n font-size: 16px;\n font-family: var(--nylas-font-family);\n background: var(--nylas-base-25);\n\n @media #{$small-mobile} {\n font-size: 15px;\n }\n\n .select-timezone {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n padding-bottom: 1rem;\n gap: 1rem;\n\n h4 {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n margin: 0;\n font-size: 16px;\n font-weight: 500;\n line-height: 20px;\n\n @media #{$small-mobile} {\n font-size: 15px;\n }\n }\n }\n\n .availability {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 0 0.5rem;\n margin: 1rem 0;\n\n @media #{$small-mobile} {\n gap: 0.5rem;\n padding: 0;\n }\n\n .availability-day {\n display: grid;\n grid-template-columns: minmax(auto, 65px) 1fr minmax(auto, 40px);\n\n gap: 1rem;\n align-items: baseline;\n\n @media #{$mobile} {\n grid-template-columns: 78px 1fr auto;\n }\n\n @media #{$small-mobile} {\n display: inline-grid;\n gap: 8px;\n grid-template-columns: 60px 1fr auto;\n }\n\n .day {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n\n @media #{$small-mobile} {\n gap: 0.25rem;\n }\n\n input[type='checkbox'] {\n transform: scale(1.3);\n }\n }\n\n .time-ranges {\n span.unavailable {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .time-range {\n display: flex;\n gap: 1.5rem;\n justify-content: space-between;\n align-items: baseline;\n\n @media #{$small-mobile} {\n justify-content: unset;\n gap: 0.5rem;\n }\n\n .pickers {\n display: flex;\n gap: 1rem;\n\n @media #{$small-mobile} {\n gap: 0.5rem;\n }\n\n span {\n margin-top: 0.75rem;\n }\n }\n\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n\n .error-message {\n width: 100%;\n padding: 4px 8px;\n background: var(--nylas-error-50);\n color: var(--nylas-error);\n font-size: 12px;\n border-radius: 4px;\n border: 1px solid var(--nylas-error-200);\n margin-top: 8px;\n }\n }\n\n button {\n border: none;\n background: transparent;\n height: 40px;\n cursor: pointer;\n color: var(--nylas-base-800);\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n }\n }\n }\n}\n\nselect-dropdown {\n width: auto;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n justify-content: initial;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { DEFAULT_OPEN_HOURS, TIMEZONE_MAP } from '@/common/constants';\nimport { Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\nexport type OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone: string;\n};\n\nexport type Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n /**\n * The element <nylas-availability-picker> itself.\n */\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n /**\n * @standalone\n * The name of the availability picker.\n */\n @Prop() name: string = 'availability';\n /**\n * @standalone\n * The selected configuration.\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The open hours to display.\n */\n @Prop() openHours?: OpenHours[];\n /**\n * @standalone\n * The default timezone or preset timezone.\n */\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * @standalone\n * Hide the header of the availability picker.\n */\n @Prop() hideHeader: boolean = false;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * This event is fired when the selected availability / open hours change.\n * The value is a stringified JSON object with the open hours and timezone.\n ```\n {\n openHours: OpenHours[],\n timezone: string\n }\n ```\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n /**\n * The selected timezone state.\n */\n @State() timezone: string = '';\n\n /**\n * The overlapping time ranges state. This is used to display an error message when there are overlapping time ranges.\n */\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * State for tracking time window validation errors (e.g., start time after end time)\n */\n @State() timeWindowErrors: { [key: string]: string } = {};\n\n /**\n * Flag to track if the component has loaded.\n */\n private hasLoaded: boolean = false;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-availability-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('defaultTimezone')\n defaultTimezoneChanged(newValue: string) {\n if (!this.hasLoaded) return;\n if (newValue && newValue !== this.timezone) {\n this.timezone = newValue;\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(updateValue), this.name);\n this.valueChanged.emit({\n value: JSON.stringify(updateValue),\n name: this.name,\n });\n }\n }\n\n @Watch('openHours')\n openHoursChanged(newValue: OpenHours[]) {\n // Only process if we have a non-empty array and timezone is already set\n // This prevents processing during initialization and handles null/undefined consistently\n if (newValue && newValue.length > 0 && this.timezone) {\n this.openHoursToSchedule(newValue);\n }\n }\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n const defaultOpenHours = newConfig?.availability?.availability_rules?.default_open_hours ?? DEFAULT_OPEN_HOURS;\n // If the name is `availability`, we are setting the default open hours. If the name is `participant-****`, we are setting the participant's custom availability.\n // Set the timezone accordingly.\n const defaultOpenHoursTimezone = newConfig?.event_booking?.timezone || this.defaultTimezone;\n this.timezone = this.name === 'availability' ? defaultOpenHoursTimezone : this.defaultTimezone;\n\n // Process openHours if available, otherwise fall back to defaultOpenHours\n // The openHours watcher will handle openHours changes separately to avoid redundant calls\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n } else if (defaultOpenHours) {\n this.openHoursToSchedule(defaultOpenHours);\n }\n }\n\n /**\n * Normalize time format to ensure consistent parsing across languages\n */\n private normalizeTimeFormat(timeStr: string): string {\n // Normalize Spanish AM/PM formats (a.m./p.m.) to English am/pm\n return timeStr.replace(/a\\.?m\\.?/gi, 'am').replace(/p\\.?m\\.?/gi, 'pm');\n }\n\n scheduleChanged(newValue: Schedule, valueChanged: boolean = true) {\n const overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n // Normalize time formats before checking overlaps\n const normalizedTimeRanges = dayTimeRanges.map(range => ({\n start: this.normalizeTimeFormat(range.start),\n end: this.normalizeTimeFormat(range.end),\n }));\n const overlaps = this.getOverlaps(normalizedTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n\n // Clean up timeWindowErrors for non-existent time ranges\n this.cleanupTimeWindowErrors(newValue);\n\n this.updateFormValidity();\n\n if (valueChanged) {\n this.valueChanged.emit({\n value: JSON.stringify({\n openHours: this.scheduleToOpenHours(newValue),\n timezone: this.timezone,\n }),\n name: this.name,\n });\n }\n }\n\n /**\n * Clean up timeWindowErrors for time ranges that no longer exist in the schedule\n */\n private cleanupTimeWindowErrors(schedule: Schedule) {\n const newTimeWindowErrors = { ...this.timeWindowErrors };\n let hasChanges = false;\n\n // Get all valid time range keys from current schedule\n const validKeys = new Set<string>();\n Object.keys(schedule).forEach(day => {\n const timeRanges = schedule[day];\n timeRanges.forEach((_, index) => {\n validKeys.add(`${day}:${index}_start`);\n validKeys.add(`${day}:${index}_end`);\n });\n });\n\n // Remove errors for keys that no longer exist\n Object.keys(newTimeWindowErrors).forEach(errorKey => {\n if (!validKeys.has(errorKey)) {\n delete newTimeWindowErrors[errorKey];\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.timeWindowErrors = newTimeWindowErrors;\n }\n }\n\n /**\n * Updates form validity based on both overlap errors and time window errors\n */\n updateFormValidity() {\n const hasOverlapErrors = Object.keys(this.overlapDays).length > 0;\n const hasTimeWindowErrors = Object.keys(this.timeWindowErrors).filter(key => this.timeWindowErrors[key]).length > 0;\n\n if (hasOverlapErrors) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(this.overlapDays)[0]) as HTMLInputElement;\n if (element) {\n debug('nylas-availability-picker', 'The time ranges are overlapping. Overlap: ', this.overlapDays);\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else if (hasTimeWindowErrors) {\n const firstErrorKey = Object.keys(this.timeWindowErrors).find(key => this.timeWindowErrors[key]);\n const element = this.host.shadowRoot?.getElementById(firstErrorKey!) as HTMLInputElement;\n const errorMessage = this.timeWindowErrors[firstErrorKey!];\n if (element) {\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, errorMessage, element);\n }\n } else {\n this.isInternalsAvailable && this.internals.setValidity({ customError: false });\n this.isInternalsAvailable &&\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n this.name,\n );\n }\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(updateValue), this.name);\n this.valueChanged.emit({\n value: JSON.stringify(updateValue),\n name: this.name,\n });\n }\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n\n if (this.selectedConfiguration) {\n this.configChangedHandler(this.selectedConfiguration);\n } else {\n this.timezone = this.defaultTimezone;\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n }\n }\n\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(updateValue), this.name);\n\n // Set initial form validity\n this.updateFormValidity();\n this.hasLoaded = true;\n }\n\n get isInternalsAvailable() {\n return typeof this.internals.setFormValue === 'function';\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n const timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n const overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }\n\n removeTimeRange(day, index) {\n // Clear any time window errors for the removed time range\n const startKey = `${day}:${index}_start`;\n const endKey = `${day}:${index}_end`;\n\n const newTimeWindowErrors = { ...this.timeWindowErrors };\n delete newTimeWindowErrors[startKey];\n delete newTimeWindowErrors[endKey];\n this.timeWindowErrors = newTimeWindowErrors;\n\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }\n\n @Listen('timeChange')\n setTime(event: CustomEvent<{ key: string; value: string }>) {\n const { key, value } = event.detail;\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n\n // Clear any existing time window error for this specific key\n if (this.timeWindowErrors[key]) {\n const newErrors = { ...this.timeWindowErrors };\n delete newErrors[key];\n this.timeWindowErrors = newErrors;\n }\n\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }\n\n @Listen('timeWindowFormError')\n setFormError(event: CustomEvent<{ key: string; message: string }>) {\n const { key, message } = event.detail;\n\n if (message) {\n // Set the error for this specific time input\n this.timeWindowErrors = {\n ...this.timeWindowErrors,\n [key]: message,\n };\n } else {\n // Clear the error for this specific time input\n const newErrors = { ...this.timeWindowErrors };\n delete newErrors[key];\n this.timeWindowErrors = newErrors;\n }\n\n // Update overall form validity\n this.updateFormValidity();\n }\n\n openHoursToSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n if (!openHour.days) return;\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = this.normalizeTimeFormat(convertTo12HourFormat(openHour.start));\n const end12hr = this.normalizeTimeFormat(convertTo12HourFormat(openHour.end));\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n\n this.schedule = newSchedule;\n this.scheduleChanged(this.schedule, false);\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n const openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n const entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n const selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n timezone: this.timezone,\n });\n });\n\n return selectedOpenHours;\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n const selectedTimezoneOption = timezoneOptions.find(i => i.value === this.timezone);\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\" part=\"nap\">\n {!this.hideHeader && (\n <div class=\"header\" part=\"nap__header\">\n <h3>{i18next.t('nylasAvailabilityPicker.headerTitle')}</h3>\n <p>\n {i18next.t('nylasAvailabilityPicker.headerSubTitle')}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasAvailabilityPicker.tooltip.desc')}</span>\n </tooltip-component>\n </p>\n </div>\n )}\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">{i18next.t('nylasAvailabilityPicker.selectTimezone')}</h4>\n {selectedTimezoneOption?.label && (\n <select-dropdown\n name=\"timezone\"\n searchPlaceholder={i18next.t('search')}\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={selectedTimezoneOption}\n themeConfig={this.themeConfig}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n )}\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n // Clear any time window errors for this day when toggling off\n const newTimeWindowErrors = { ...this.timeWindowErrors };\n Object.keys(newTimeWindowErrors).forEach(errorKey => {\n if (errorKey.startsWith(`${day}:`)) {\n delete newTimeWindowErrors[errorKey];\n }\n });\n this.timeWindowErrors = newTimeWindowErrors;\n\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n this.scheduleChanged(this.schedule);\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {i18next.t(`nylasAvailabilityPicker.days.${day}`)}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">{i18next.t('nylasAvailabilityPicker.unavailable')}</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex) || !!this.timeWindowErrors[startKey]}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n language={this.selectedLanguage}\n themeConfig={this.themeConfig}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex) || !!this.timeWindowErrors[endKey]}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n language={this.selectedLanguage}\n themeConfig={this.themeConfig}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n {(this.overlapDays[day] || Object.keys(this.timeWindowErrors).find(key => key.startsWith(`${day}:`) && this.timeWindowErrors[key])) && (\n <div class=\"error-message\" part=\"nap__error-message\">\n {this.overlapDays[day] ? i18next.t('nylasAvailabilityPicker.errors.overlappingTimeRanges') : ''}\n {!this.overlapDays[day] && Object.keys(this.timeWindowErrors).find(key => key.startsWith(`${day}:`) && this.timeWindowErrors[key])\n ? this.timeWindowErrors[Object.keys(this.timeWindowErrors).find(key => key.startsWith(`${day}:`) && this.timeWindowErrors[key])!]\n : ''}\n </div>\n )}\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h, i as Host } from './p-Bht9ktsW.js';
|
|
2
|
-
import { R as RegisterComponent } from './p-
|
|
3
|
-
import { a as debug, c as checkForMissingSlots } from './p-
|
|
4
|
-
import { i as instance } from './p-
|
|
5
|
-
import { d as defineCustomElement$1 } from './p-
|
|
2
|
+
import { R as RegisterComponent } from './p-jHq8WTky.js';
|
|
3
|
+
import { a as debug, c as checkForMissingSlots } from './p-xxFdByBn.js';
|
|
4
|
+
import { i as instance } from './p-BjxQTsOy.js';
|
|
5
|
+
import { d as defineCustomElement$1 } from './p-DBwy7Snv.js';
|
|
6
6
|
|
|
7
7
|
const nylasEventInfoCss = ":host{display:block;margin:1rem;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.nylas-event-info__title{color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:600;line-height:20px;margin:0;text-align:left}.nylas-event-info__subtitle{color:var(--nylas-base-600);font-size:14px;font-style:normal;font-weight:400;line-height:20px;margin:0.25rem 0px 0px;text-align:left}.nylas-event-info__content{padding:1rem;display:flex;flex-direction:column;gap:1rem;background-color:var(--nylas-base-25)}.nylas-event-info__block{display:flex;justify-content:space-between;gap:0.5rem}";
|
|
8
8
|
|
|
@@ -114,6 +114,6 @@ function defineCustomElement() {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
export { NylasEventInfo as N, defineCustomElement as d };
|
|
117
|
-
//# sourceMappingURL=p-
|
|
117
|
+
//# sourceMappingURL=p-wJcvwuFy.js.map
|
|
118
118
|
|
|
119
|
-
//# sourceMappingURL=p-
|
|
119
|
+
//# sourceMappingURL=p-wJcvwuFy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-wJcvwuFy.js","mappings":";;;;;;AAAA,MAAM,iBAAiB,GAAG,wrFAAwrF;;;;;;;;;;;;;;;;MC+BrsF,cAAc,GAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;;;IAmBzB,8BAA8B,CAAC,MAAqB,EAAE,MAAqB,EAAA;QACzE,IAAI,MAAM,KAAK,MAAM;YAAE;AACvB,QAAAC,QAAO,CAAC,cAAc,CAAC,MAAM,CAAC;;IAIhC,yBAAyB,CAAC,MAAmB,EAAE,MAAmB,EAAA;QAChE,IAAI,MAAM,KAAK,MAAM;YAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAG/B,IAAA,gBAAgB,CAAC,WAAyB,EAAA;QACxC,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,KAAK,CAAC;;;;IAKhD,iBAAiB,GAAA;AACf,QAAA,KAAK,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;QAG9C,cAAc,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;;AAE3C,SAAC,CAAC;;IAGJ,iBAAiB,GAAA;AACf,QAAA,KAAK,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;;IAGhD,gBAAgB,GAAA;AACd,QAAA,KAAK,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;QAC7C,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;;IAG3C,oBAAoB,GAAA;AAClB,QAAA,KAAK,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;;IAYnD,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAiB,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAW,EAAC,0BAA0B,EAAA,EACrD,CAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAI,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAC,YAAY,IACtEA,QAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CACrC,EACL,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,2BAA2B,EAAA,EACnD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACvB,CACU,CACb;;;;;;;;;;;;;;;;AAXX,UAAA,CAAA;AATC,IAAA,iBAAiB,CAAoG;AACpH,QAAA,IAAI,EAAE,kBAAkB;QACxB,YAAY,EAAE,IAAI,GAAG,CAAC;YACpB,CAAC,kCAAkC,EAAE,kBAAkB,CAAC;YACxD,CAAC,6BAA6B,EAAE,aAAa,CAAC;SAC/C,CAAC;AACF,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;CAcD,EAAA,cAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-event-info/nylas-event-info.scss?tag=nylas-event-info&encapsulation=shadow","src/components/scheduler-editor/nylas-event-info/nylas-event-info.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n margin: 1rem;\n @include default-css-variables;\n}\n\n.nylas-event-info__title {\n color: var(--nylas-base-900);\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n /* 125% */\n margin: 0;\n text-align: left;\n}\n\n.nylas-event-info__subtitle {\n color: var(--nylas-base-600);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n /* 142.857% */\n margin: 0.25rem 0px 0px;\n text-align: left;\n}\n\n.nylas-event-info__content {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n background-color: var(--nylas-base-25);\n}\n\n.nylas-event-info__block {\n display: flex;\n justify-content: space-between;\n gap: 0.5rem;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { checkForMissingSlots, debug } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Host, Prop, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\nimport { ThemeConfig } from '@nylas/core';\n/**\n * The `nylas-event-info` component is an input form for event information such as title, description, duration, location.\n * This component is a container for the `nylas-event-title`, `nylas-event-description`, `nylas-event-duration`, and `nylas-event-location` components.\n *\n * ```html\n * <nylas-event-info>\n * <div slot=\"inputs\">\n * <nylas-event-title></nylas-event-title>\n * <nylas-event-description></nylas-event-description>\n * <nylas-event-duration></nylas-event-duration>\n * <nylas-lcation-component></nylas-event-location>\n * </div>\n * </nylas-event-info>\n * ```\n *\n * @slot inputs - The event information inputs. This includes the event title, description, duration, and location components.\n */\n@Component({\n tag: 'nylas-event-info',\n styleUrl: 'nylas-event-info.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasEventInfo {\n @Element() el!: HTMLElement;\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.el.style.setProperty(`${key}`, value);\n }\n }\n }\n\n connectedCallback() {\n debug('nylas-event-info', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.el.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n debug('nylas-event-info', 'componentWillLoad');\n }\n\n componentDidLoad() {\n debug('nylas-event-info', 'componentDidLoad');\n checkForMissingSlots(['inputs'], this.el);\n }\n\n disconnectedCallback() {\n debug('nylas-event-info', 'disconnectedCallback');\n }\n\n @RegisterComponent<NylasEventInfo, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-event-info',\n stateToProps: new Map([\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-form-card exportparts=\"nfc__header: nei__header\">\n <h1 slot=\"header-title\" class=\"nylas-event-info__title\" part=\"nei__title\">\n {i18next.t('nylasEventInfo.headerTitle')}\n </h1>\n <div slot=\"content\" class=\"nylas-event-info__content\">\n <slot name=\"inputs\"></slot>\n </div>\n </nylas-form-card>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as instance } from './p-
|
|
1
|
+
import { i as instance } from './p-BjxQTsOy.js';
|
|
2
2
|
|
|
3
3
|
var LANGUAGE_CODE;
|
|
4
4
|
(function (LANGUAGE_CODE) {
|
|
@@ -15581,14 +15581,15 @@ function mergeDeep(target, source) {
|
|
|
15581
15581
|
}
|
|
15582
15582
|
return source;
|
|
15583
15583
|
}
|
|
15584
|
-
function convertMinutesToHoursAndMinutes(minutes) {
|
|
15584
|
+
function convertMinutesToHoursAndMinutes(minutes, language) {
|
|
15585
|
+
const translate = language ? instance.getFixedT(language) : t;
|
|
15585
15586
|
if (minutes < 60) {
|
|
15586
|
-
return `${minutes} ${
|
|
15587
|
+
return `${minutes} ${translate('time.minutes')}`;
|
|
15587
15588
|
}
|
|
15588
15589
|
const hours = Math.floor(minutes / 60);
|
|
15589
15590
|
const remainingMinutes = minutes % 60;
|
|
15590
|
-
const hoursText =
|
|
15591
|
-
const minutesText = remainingMinutes ? `${remainingMinutes} ${
|
|
15591
|
+
const hoursText = translate(`time.${hours > 1 ? 'hours' : 'hour'}`);
|
|
15592
|
+
const minutesText = remainingMinutes ? `${remainingMinutes} ${translate(`time.${remainingMinutes > 1 ? 'minutes' : 'minute'}`)}` : '';
|
|
15592
15593
|
return `${hours} ${hoursText} ${minutesText}`;
|
|
15593
15594
|
}
|
|
15594
15595
|
function checkForMissingSlots(slots, host) {
|
|
@@ -15638,10 +15639,14 @@ function compactStringToUUIDs(compactString) {
|
|
|
15638
15639
|
const t = key => {
|
|
15639
15640
|
return instance.t(key);
|
|
15640
15641
|
};
|
|
15641
|
-
function
|
|
15642
|
-
const base =
|
|
15642
|
+
function normalizeSupportedLanguageCode(language) {
|
|
15643
|
+
const base = language?.split('-')[0]?.toLowerCase();
|
|
15643
15644
|
return base && Object.values(LANGUAGE_CODE).includes(base) ? base : null;
|
|
15644
15645
|
}
|
|
15646
|
+
function detectBrowserLanguageCode() {
|
|
15647
|
+
const languages = navigator.languages?.length ? navigator.languages : [navigator.language];
|
|
15648
|
+
return languages.map(normalizeSupportedLanguageCode).find(Boolean) || null;
|
|
15649
|
+
}
|
|
15645
15650
|
const capitalizeFirstLetter = (str) => {
|
|
15646
15651
|
if (typeof str !== 'string')
|
|
15647
15652
|
return '';
|
|
@@ -15778,7 +15783,7 @@ function getCalendarRange(currentDate, viewType) {
|
|
|
15778
15783
|
};
|
|
15779
15784
|
}
|
|
15780
15785
|
|
|
15781
|
-
export {
|
|
15782
|
-
//# sourceMappingURL=p-
|
|
15786
|
+
export { detectBrowserLanguageCode as $, isSameMonth as A, getLastDayOfMonth as B, getFirstDayOfMonth as C, DEFAULT_OPEN_HOURS as D, convertMinutesToHoursAndMinutes as E, FIELD_TYPES as F, translateMonth as G, isSameDay as H, LANGUAGE_MAP as I, mergeDeep as J, editorTabComponentNames as K, LANGUAGE_CODE as L, parsePreviewLink as M, CONFIGURATION_EVENT_TYPE as N, EVENT_TITLE_TOKENS as O, isNonPrintableKey as P, getBrowser as Q, PROVIDER_CONFERENCE_MAP as R, CONFERENCE_PROVIDER_MAP as S, TIMEZONE_MAP as T, TIME_PERIODS as U, editorGroupTabComponentNames as V, getAugmentedNamespace as W, generateRRule as X, getTimezoneOffset as Y, getCalendarRange as Z, normalizeSupportedLanguageCode as _, debug as a, isTestEnvironment as a0, uniqueID as a1, formatEventName as a2, compactStringToUUIDs as a3, isSameDayTimezone as a4, convertTo12HourFormat as b, checkForMissingSlots as c, dataResponse as d, error as e, convertTo24HourFormat as f, getDefaultExportFromCjs as g, dayjs as h, isValidImage as i, autocompleteTimeFormat as j, validateExactTimeFormat as k, capitalizeFirstLetter as l, minutesToTime as m, formatBookedEventDate as n, LANGUAGE_CODE_TO_LOCALE_MAP as o, isValidUrl as p, sanitizeHtml as q, roundToNearest15Minutes as r, sanitize as s, timeToMinutes as t, DEFAULT_FORM_FIELD_TYPES as u, validateTimeFormatInput as v, utc as w, timezone as x, normalizeDateInput as y, addDaysToCurrentDate as z };
|
|
15787
|
+
//# sourceMappingURL=p-xxFdByBn.js.map
|
|
15783
15788
|
|
|
15784
|
-
//# sourceMappingURL=p-
|
|
15789
|
+
//# sourceMappingURL=p-xxFdByBn.js.map
|