@nylas/web-elements 2.2.3 → 2.2.4
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/nylas-scheduler-editor/nylas-scheduler-editor.es.js +6 -6
- package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +8 -4
- package/dist/cjs/{abstract-provider-DgXx6GdP.js → abstract-provider-zsdLocfY.js} +3 -3
- package/dist/cjs/{abstract-provider-DgXx6GdP.js.map → abstract-provider-zsdLocfY.js.map} +1 -1
- package/dist/cjs/calendar-agenda-fill-icon_37.cjs.entry.js +2 -2
- package/dist/cjs/checkbox-group_4.cjs.entry.js +3 -3
- package/dist/cjs/checkmark-icon_15.cjs.entry.js +2 -2
- package/dist/cjs/{customParseFormat-Bdpj2-4E.js → customParseFormat-C-iBDSmX.js} +3 -3
- package/dist/cjs/{customParseFormat-Bdpj2-4E.js.map → customParseFormat-C-iBDSmX.js.map} +1 -1
- package/dist/cjs/google-logo-icon_6.cjs.entry.js +6 -6
- 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/multi-select-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/{nylas-api-request-DJrUeZUS.js → nylas-api-request-NWvuBdgU.js} +3 -3
- package/dist/cjs/{nylas-api-request-DJrUeZUS.js.map → nylas-api-request-NWvuBdgU.js.map} +1 -1
- package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +2 -2
- package/dist/cjs/nylas-date-component_2.cjs.entry.js +2 -2
- 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 +5 -5
- package/dist/cjs/nylas-scheduling.cjs.entry.js +5 -5
- package/dist/cjs/{register-component-BUZgs2ll.js → register-component-CdldTaNr.js} +3 -3
- package/dist/cjs/{register-component-BUZgs2ll.js.map → register-component-CdldTaNr.js.map} +1 -1
- package/dist/cjs/textarea-component.cjs.entry.js +1 -1
- package/dist/cjs/{utils-CwHkARFg.js → utils-BaL-chu7.js} +10 -3
- package/dist/{esm/utils-DnxlJ1jl.js.map → cjs/utils-BaL-chu7.js.map} +1 -1
- package/dist/collection/utils/utils.js +8 -1
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.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-notification.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 +55 -55
- package/dist/components/nylas-scheduling-method.js +1 -1
- package/dist/components/nylas-scheduling.js +21 -21
- 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-CURQD4Ll.js → p--1ZpL3Z_.js} +8 -8
- package/dist/components/{p-CURQD4Ll.js.map → p--1ZpL3Z_.js.map} +1 -1
- package/dist/components/{p-DmZgeeQD.js → p--EFSc8kQ.js} +4 -4
- package/dist/components/{p-DmZgeeQD.js.map → p--EFSc8kQ.js.map} +1 -1
- package/dist/components/{p-dosNJKV2.js → p-B1vZbLyd.js} +4 -4
- package/dist/components/{p-dosNJKV2.js.map → p-B1vZbLyd.js.map} +1 -1
- package/dist/components/{p-DM4H8E4y.js → p-B3Mdq6rL.js} +4 -4
- package/dist/components/{p-DM4H8E4y.js.map → p-B3Mdq6rL.js.map} +1 -1
- package/dist/components/{p-DGxaBD9x.js → p-B7v1iPw1.js} +3 -3
- package/dist/components/{p-DGxaBD9x.js.map → p-B7v1iPw1.js.map} +1 -1
- package/dist/components/{p-DEy4gcRj.js → p-B86z20mN.js} +41 -41
- package/dist/components/{p-DEy4gcRj.js.map → p-B86z20mN.js.map} +1 -1
- package/dist/components/{p-CB2_BMlD.js → p-B9BW5SHF.js} +6 -6
- package/dist/components/{p-CB2_BMlD.js.map → p-B9BW5SHF.js.map} +1 -1
- package/dist/components/{p-BuZyzxqv.js → p-B9uipWU2.js} +4 -4
- package/dist/components/{p-BuZyzxqv.js.map → p-B9uipWU2.js.map} +1 -1
- package/dist/components/{p-DSO080eR.js → p-BDayBBhB.js} +5 -5
- package/dist/components/{p-DSO080eR.js.map → p-BDayBBhB.js.map} +1 -1
- package/dist/components/{p-BEAD1juA.js → p-BFNg3bKj.js} +5 -5
- package/dist/components/{p-BEAD1juA.js.map → p-BFNg3bKj.js.map} +1 -1
- package/dist/components/{p-CzJz0rnK.js → p-BI0Stv78.js} +17 -17
- package/dist/components/{p-CzJz0rnK.js.map → p-BI0Stv78.js.map} +1 -1
- package/dist/components/{p-D-2UWdRa.js → p-BKk2JkBe.js} +5 -5
- package/dist/components/{p-D-2UWdRa.js.map → p-BKk2JkBe.js.map} +1 -1
- package/dist/components/{p-C1-hLcxk.js → p-BQ1_MrWH.js} +3 -3
- package/dist/components/{p-C1-hLcxk.js.map → p-BQ1_MrWH.js.map} +1 -1
- package/dist/components/{p-D_R3qufs.js → p-BQIvfRRF.js} +3 -3
- package/dist/components/{p-D_R3qufs.js.map → p-BQIvfRRF.js.map} +1 -1
- package/dist/components/{p-mN6J_IWv.js → p-BV55-Kie.js} +5 -5
- package/dist/components/{p-mN6J_IWv.js.map → p-BV55-Kie.js.map} +1 -1
- package/dist/components/{p-CKuq2LL7.js → p-B_imcHCC.js} +5 -5
- package/dist/components/{p-CKuq2LL7.js.map → p-B_imcHCC.js.map} +1 -1
- package/dist/components/{p-CuHnb1-_.js → p-Bb0z-pD8.js} +5 -5
- package/dist/components/{p-CuHnb1-_.js.map → p-Bb0z-pD8.js.map} +1 -1
- package/dist/components/{p-5XVfomzJ.js → p-BdOvTsvK.js} +4 -4
- package/dist/components/{p-5XVfomzJ.js.map → p-BdOvTsvK.js.map} +1 -1
- package/dist/components/{p-DlaQufsy.js → p-Bm9KAv3a.js} +5 -5
- package/dist/components/{p-DlaQufsy.js.map → p-Bm9KAv3a.js.map} +1 -1
- package/dist/components/{p-DSSPyNIm.js → p-Br9o8ik9.js} +5 -5
- package/dist/components/{p-DSSPyNIm.js.map → p-Br9o8ik9.js.map} +1 -1
- package/dist/components/{p-Byz3JKQu.js → p-C5CEB4Wv.js} +4 -4
- package/dist/components/{p-Byz3JKQu.js.map → p-C5CEB4Wv.js.map} +1 -1
- package/dist/components/{p-C2yVHIMC.js → p-C8R_xU8K.js} +4 -4
- package/dist/components/{p-C2yVHIMC.js.map → p-C8R_xU8K.js.map} +1 -1
- package/dist/components/{p-BeD_Q4wQ.js → p-CEO6ZorI.js} +4 -4
- package/dist/components/{p-BeD_Q4wQ.js.map → p-CEO6ZorI.js.map} +1 -1
- package/dist/components/{p-BWZppI8r.js → p-CHDVqP3u.js} +5 -5
- package/dist/components/{p-BWZppI8r.js.map → p-CHDVqP3u.js.map} +1 -1
- package/dist/components/{p-2BdSZySU.js → p-CULO8bTo.js} +10 -3
- package/dist/components/{p-2BdSZySU.js.map → p-CULO8bTo.js.map} +1 -1
- package/dist/components/{p-Ci-3P4oO.js → p-Ce1kG2WA.js} +3 -3
- package/dist/components/{p-Ci-3P4oO.js.map → p-Ce1kG2WA.js.map} +1 -1
- package/dist/components/{p-DMDjzHug.js → p-ClSuoTwF.js} +7 -7
- package/dist/components/{p-DMDjzHug.js.map → p-ClSuoTwF.js.map} +1 -1
- package/dist/components/{p-B02Z2Glh.js → p-ClgCA2l0.js} +3 -3
- package/dist/components/{p-B02Z2Glh.js.map → p-ClgCA2l0.js.map} +1 -1
- package/dist/components/{p-CBysed0C.js → p-CrQflZZw.js} +8 -8
- package/dist/components/{p-CBysed0C.js.map → p-CrQflZZw.js.map} +1 -1
- package/dist/components/{p-Vc2ZLSUH.js → p-Cs-xmxxD.js} +4 -4
- package/dist/components/{p-Vc2ZLSUH.js.map → p-Cs-xmxxD.js.map} +1 -1
- package/dist/components/{p-CKsgq31s.js → p-Cs0aVgFp.js} +6 -6
- package/dist/components/{p-CKsgq31s.js.map → p-Cs0aVgFp.js.map} +1 -1
- package/dist/components/{p-DZGwcMTu.js → p-CtNJhj7s.js} +3 -3
- package/dist/components/{p-DZGwcMTu.js.map → p-CtNJhj7s.js.map} +1 -1
- package/dist/components/{p-DjlPLeVk.js → p-Cvb13C1p.js} +4 -4
- package/dist/components/{p-DjlPLeVk.js.map → p-Cvb13C1p.js.map} +1 -1
- package/dist/components/{p-C16rvsMT.js → p-Cw7ajY2U.js} +4 -4
- package/dist/components/{p-C16rvsMT.js.map → p-Cw7ajY2U.js.map} +1 -1
- package/dist/components/{p-Cu74bJsj.js → p-D-TAjvsg.js} +6 -6
- package/dist/components/{p-Cu74bJsj.js.map → p-D-TAjvsg.js.map} +1 -1
- package/dist/components/{p-CHs824QK.js → p-D4-3Jhnx.js} +5 -5
- package/dist/components/{p-CHs824QK.js.map → p-D4-3Jhnx.js.map} +1 -1
- package/dist/components/{p-NvfvY9LE.js → p-D50fisuR.js} +5 -5
- package/dist/components/{p-NvfvY9LE.js.map → p-D50fisuR.js.map} +1 -1
- package/dist/components/{p-CKg1LT6_.js → p-D5apK1Vq.js} +4 -4
- package/dist/components/{p-CKg1LT6_.js.map → p-D5apK1Vq.js.map} +1 -1
- package/dist/components/{p-Dfd5wo37.js → p-D6dFiHrw.js} +4 -4
- package/dist/components/{p-Dfd5wo37.js.map → p-D6dFiHrw.js.map} +1 -1
- package/dist/components/{p-C6SF5Gq_.js → p-DAJXx2tg.js} +7 -7
- package/dist/components/{p-C6SF5Gq_.js.map → p-DAJXx2tg.js.map} +1 -1
- package/dist/components/{p-MX2k8GbG.js → p-DBRBbTgP.js} +3 -3
- package/dist/components/{p-MX2k8GbG.js.map → p-DBRBbTgP.js.map} +1 -1
- package/dist/components/{p-jbmfeNc8.js → p-DCM7ntGT.js} +5 -5
- package/dist/components/{p-jbmfeNc8.js.map → p-DCM7ntGT.js.map} +1 -1
- package/dist/components/{p-CmY1th_s.js → p-DNkQVYN2.js} +8 -8
- package/dist/components/{p-CmY1th_s.js.map → p-DNkQVYN2.js.map} +1 -1
- package/dist/components/{p-CLQqLmc2.js → p-DOSWGUBW.js} +4 -4
- package/dist/components/{p-CLQqLmc2.js.map → p-DOSWGUBW.js.map} +1 -1
- package/dist/components/{p-C9ADvO-t.js → p-DTpqylfB.js} +5 -5
- package/dist/components/{p-C9ADvO-t.js.map → p-DTpqylfB.js.map} +1 -1
- package/dist/components/{p-DMpwL-p1.js → p-DUV1Jj8E.js} +4 -4
- package/dist/components/{p-DMpwL-p1.js.map → p-DUV1Jj8E.js.map} +1 -1
- package/dist/components/{p-Dq6X5eqK.js → p-DWA-qoxj.js} +5 -5
- package/dist/components/{p-Dq6X5eqK.js.map → p-DWA-qoxj.js.map} +1 -1
- package/dist/components/{p-CPMSwD22.js → p-Dh07gHmd.js} +4 -4
- package/dist/components/{p-CPMSwD22.js.map → p-Dh07gHmd.js.map} +1 -1
- package/dist/components/{p-CFOX1cL3.js → p-DjX1ll1V.js} +4 -4
- package/dist/components/{p-CFOX1cL3.js.map → p-DjX1ll1V.js.map} +1 -1
- package/dist/components/{p-BEmFBKxz.js → p-DnoDC0Rk.js} +4 -4
- package/dist/components/{p-BEmFBKxz.js.map → p-DnoDC0Rk.js.map} +1 -1
- package/dist/components/{p-x0Q884CI.js → p-Dnw0IV6v.js} +3 -3
- package/dist/components/{p-x0Q884CI.js.map → p-Dnw0IV6v.js.map} +1 -1
- package/dist/components/{p-vvfFiGWj.js → p-DpEIiPGz.js} +5 -5
- package/dist/components/{p-vvfFiGWj.js.map → p-DpEIiPGz.js.map} +1 -1
- package/dist/components/{p-BnY2Hut1.js → p-DpkYFbEV.js} +5 -5
- package/dist/components/{p-BnY2Hut1.js.map → p-DpkYFbEV.js.map} +1 -1
- package/dist/components/{p--4oNPYSm.js → p-DtDGPXZR.js} +3 -3
- package/dist/components/{p--4oNPYSm.js.map → p-DtDGPXZR.js.map} +1 -1
- package/dist/components/{p-xh3aXihe.js → p-FoOzqqac.js} +4 -4
- package/dist/components/{p-xh3aXihe.js.map → p-FoOzqqac.js.map} +1 -1
- package/dist/components/{p-Dv7dtg64.js → p-JCwXrScM.js} +4 -4
- package/dist/components/{p-Dv7dtg64.js.map → p-JCwXrScM.js.map} +1 -1
- package/dist/components/{p-1rV-8ZUh.js → p-SPJ9n09E.js} +4 -4
- package/dist/components/{p-1rV-8ZUh.js.map → p-SPJ9n09E.js.map} +1 -1
- package/dist/components/{p-BtGEJFmy.js → p-Y0BOy8RT.js} +5 -5
- package/dist/components/{p-BtGEJFmy.js.map → p-Y0BOy8RT.js.map} +1 -1
- package/dist/components/{p-Dtd_Ib72.js → p-ZAV15ivS.js} +4 -4
- package/dist/components/{p-Dtd_Ib72.js.map → p-ZAV15ivS.js.map} +1 -1
- package/dist/components/{p-Br3ELPNn.js → p-b2NfdiFD.js} +7 -7
- package/dist/components/{p-Br3ELPNn.js.map → p-b2NfdiFD.js.map} +1 -1
- package/dist/components/{p-DcoRpHVy.js → p-cT1Q8Q-G.js} +3 -3
- package/dist/components/{p-DcoRpHVy.js.map → p-cT1Q8Q-G.js.map} +1 -1
- package/dist/components/{p-BWEpzVzc.js → p-do98tB-v.js} +49 -49
- package/dist/components/{p-BWEpzVzc.js.map → p-do98tB-v.js.map} +1 -1
- package/dist/components/{p-BnOrZCZZ.js → p-eeUTE5dj.js} +5 -5
- package/dist/components/{p-BnOrZCZZ.js.map → p-eeUTE5dj.js.map} +1 -1
- package/dist/components/{p-D3Env71G.js → p-y65kyIKd.js} +5 -5
- package/dist/components/{p-D3Env71G.js.map → p-y65kyIKd.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-Q7IKOl7h.js → abstract-provider-BB9roR3Q.js} +3 -3
- package/dist/esm/{abstract-provider-Q7IKOl7h.js.map → abstract-provider-BB9roR3Q.js.map} +1 -1
- package/dist/esm/calendar-agenda-fill-icon_37.entry.js +2 -2
- package/dist/esm/checkbox-group_4.entry.js +3 -3
- package/dist/esm/checkmark-icon_15.entry.js +2 -2
- package/dist/esm/{customParseFormat-gHKplwOp.js → customParseFormat-CjpPVRFa.js} +3 -3
- package/dist/esm/{customParseFormat-gHKplwOp.js.map → customParseFormat-CjpPVRFa.js.map} +1 -1
- package/dist/esm/google-logo-icon_6.entry.js +6 -6
- 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/multi-select-dropdown.entry.js +1 -1
- package/dist/esm/{nylas-api-request-Coaaqm1X.js → nylas-api-request-CbAsnDfU.js} +3 -3
- package/dist/esm/{nylas-api-request-Coaaqm1X.js.map → nylas-api-request-CbAsnDfU.js.map} +1 -1
- package/dist/esm/nylas-booked-event-card_11.entry.js +2 -2
- package/dist/esm/nylas-date-component_2.entry.js +2 -2
- 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 +5 -5
- package/dist/esm/nylas-scheduling.entry.js +5 -5
- package/dist/esm/{register-component-Bxz7u8ui.js → register-component-ocgdvMkV.js} +3 -3
- package/dist/esm/{register-component-Bxz7u8ui.js.map → register-component-ocgdvMkV.js.map} +1 -1
- package/dist/esm/textarea-component.entry.js +1 -1
- package/dist/esm/{utils-DnxlJ1jl.js → utils-C_2w_vhw.js} +10 -3
- package/dist/{cjs/utils-CwHkARFg.js.map → esm/utils-C_2w_vhw.js.map} +1 -1
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/{p-83fab90d.entry.js → p-188523a9.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-dc3e8535.entry.js → p-219e3cc9.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3b6e4413.entry.js → p-2262d385.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-2b2206aa.entry.js → p-2a10c747.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-aa2b9589.entry.js → p-4d43c9b1.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-9efadc84.entry.js → p-4ee0ae59.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-74a6fce6.entry.js → p-5cb4f7d7.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-2173b61a.entry.js → p-639a80ee.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-84c9a2b6.entry.js → p-74891f9e.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-B905HoVp.js → p-C5h3pVnq.js} +2 -2
- package/dist/nylas-web-elements/{p-B905HoVp.js.map → p-C5h3pVnq.js.map} +1 -1
- package/dist/nylas-web-elements/{p-DnxlJ1jl.js → p-C_2w_vhw.js} +2 -2
- package/dist/nylas-web-elements/{p-DnxlJ1jl.js.map → p-C_2w_vhw.js.map} +1 -1
- package/dist/nylas-web-elements/{p-Bq0zsHur.js → p-D6lQUyrh.js} +2 -2
- package/dist/nylas-web-elements/{p-Bq0zsHur.js.map → p-D6lQUyrh.js.map} +1 -1
- package/dist/nylas-web-elements/{p-hL_mOqrh.js → p-Dygm6M6b.js} +2 -2
- package/dist/nylas-web-elements/{p-hL_mOqrh.js.map → p-Dygm6M6b.js.map} +1 -1
- package/dist/nylas-web-elements/{p-e2ad4b2e.entry.js → p-ad78b292.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-768e56a0.entry.js → p-d37b7367.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-4eb6d084.entry.js → p-e3bdf91a.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-f7fcae84.entry.js → p-e40b0d20.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-1b2c854d.entry.js → p-f31106cf.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-Cpf48kAH.js → p-mqq2iF4Q.js} +2 -2
- package/dist/nylas-web-elements/{p-Cpf48kAH.js.map → p-mqq2iF4Q.js.map} +1 -1
- package/package.json +1 -1
- /package/dist/nylas-web-elements/{p-83fab90d.entry.js.map → p-188523a9.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-dc3e8535.entry.js.map → p-219e3cc9.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3b6e4413.entry.js.map → p-2262d385.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2b2206aa.entry.js.map → p-2a10c747.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-aa2b9589.entry.js.map → p-4d43c9b1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9efadc84.entry.js.map → p-4ee0ae59.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-74a6fce6.entry.js.map → p-5cb4f7d7.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2173b61a.entry.js.map → p-639a80ee.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-84c9a2b6.entry.js.map → p-74891f9e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e2ad4b2e.entry.js.map → p-ad78b292.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-768e56a0.entry.js.map → p-d37b7367.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-4eb6d084.entry.js.map → p-e3bdf91a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-f7fcae84.entry.js.map → p-e40b0d20.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-1b2c854d.entry.js.map → p-f31106cf.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-vvfFiGWj.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","NotificationType","i18next"],"sources":["src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.scss?tag=nylas-list-configurations&encapsulation=shadow","src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: grid;\n grid-auto-flow: row;\n width: 100%;\n font-family: inherit;\n font-optical-sizing: auto;\n @include default-css-variables;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n align-items: unset;\n }\n\n h2 {\n margin: 0;\n font-size: 1.25rem;\n color: var(--nylas-base-900);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 16px;\n color: var(--nylas-base-700);\n }\n\n .actions {\n justify-self: end;\n\n @media #{$mobile} {\n width: 100%;\n }\n }\n}\n\n.configurations {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n background: var(--nylas-base-0);\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-y: hidden;\n\n .table-container {\n overflow-y: auto;\n flex: 1;\n\n @media #{$mobile} {\n min-height: 624px; // This is to ensure the dropdowns are not cut off\n }\n\n table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: inherit;\n height: max-content;\n\n &.no-configurations {\n height: 100%;\n }\n\n tr {\n color: var(--nylas-base-800);\n border-bottom: 1px solid var(--nylas-base-200);\n font-family: inherit;\n\n &.hide {\n display: none;\n }\n }\n\n th {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 20px;\n }\n\n tr.no-configurations {\n td {\n > div {\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n padding: var(--nylas-border-radius-3x);\n\n h3 {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-700);\n }\n\n p {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-600);\n }\n\n calendar-icon {\n margin-bottom: 1rem;\n color: var(--nylas-base-200);\n }\n }\n }\n }\n\n th,\n td {\n text-align: left;\n padding: 1rem;\n font-family: inherit;\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n text-align: right;\n button-component.edit-button {\n min-width: 98px;\n }\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n select-dropdown.last {\n &::part(sd_dropdown-content) {\n bottom: 54px;\n }\n }\n }\n\n .title {\n width: 100%;\n max-width: 300px;\n\n @media #{$mobile} {\n max-width: 96px;\n }\n\n div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.config-event-title {\n font-weight: 600;\n }\n\n &.config-event-description {\n font-size: 0.75rem;\n }\n }\n }\n }\n }\n\n .pagination {\n padding: 1rem;\n position: sticky;\n top: 100%;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n background: var(--nylas-base-0);\n width: calc(100% - 2rem);\n z-index: 2;\n\n td.arrows {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n button {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 3vh;\n width: 3vh;\n min-width: 3em;\n min-height: 3em;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-300);\n\n background-color: transparent;\n color: var(--nylas-base-800);\n cursor: pointer;\n\n &:hover:not(:disabled) {\n border: 1px solid var(--nylas-primary);\n }\n\n &:active {\n border: 1px solid var(--nylas-base-800);\n }\n\n &:disabled {\n border: 1px solid var(--nylas-base-100);\n background-color: transparent;\n color: var(--nylas-base-300);\n cursor: not-allowed;\n }\n\n &.right {\n transform: rotate(180deg);\n }\n }\n }\n}\n\n.error-container {\n margin-top: 1.5rem;\n\n .error {\n color: var(--nylas-error);\n padding: 0.5rem 0;\n margin: 1rem 0 0;\n }\n}\n\nbutton-component#copy {\n button {\n width: 108px;\n }\n}\n\nselect-dropdown {\n width: auto;\n color: inherit;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n display: block;\n height: 48px;\n padding: 0px 16px 8px;\n\n @media #{$mobile} {\n width: 92px;\n }\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n width: 120px;\n right: 0;\n}\n\nselect-dropdown::part(sd_dropdown-labelhtml) {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n color: var(--nylas-primary);\n }\n}\n\n.card-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n height: calc(100% + 4rem);\n width: -webkit-fill-available;\n width: -moz-available;\n width: fill-available;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n\n border-radius: var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n justify-content: start;\n height: 100%;\n }\n}\n\n.card-modal {\n background: var(--nylas-base-0);\n display: flex;\n flex-direction: column;\n font-family: var(--nylas-font-family);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-900);\n border-radius: var(--nylas-border-radius-3x);\n padding: 32px;\n width: 562px;\n\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n width: auto;\n border-radius: 0px;\n }\n}\n\n.description {\n &.title-desc {\n margin-bottom: 2rem;\n }\n\n p {\n margin: 0;\n font-size: 18px;\n color: var(--nylas-base-600);\n }\n}\n\n.footer {\n margin-top: 1rem;\n padding-top: 1rem;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n box-sizing: border-box;\n background-color: var(--nylas-base-25);\n width: 100%;\n border-radius: 0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x);\n}\n\n.close-button {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n\n button-component {\n button {\n padding: 0;\n height: auto;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\nbutton-component {\n --dot-color: var(--nylas-base-700);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, getCalendarRange, parsePreviewLink } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, GroupConfiguration, Notification, NotificationType, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, LANGUAGE_CODE } from '@/common/constants';\nimport { ErrorCategory } from '@/types/index';\n\n/**\n * The `nylas-list-configurations` component displays a list of scheduling pages.\n *\n * @part nlc__create-new-cta - The create new configuration CTA.\n */\n@Component({\n tag: 'nylas-list-configurations',\n styleUrl: 'nylas-list-configurations.scss',\n shadow: true,\n})\nexport class NylasListConfigurations {\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasListConfigurationsElement;\n\n /**\n * The list of configurations to display.\n */\n @Prop() configurations: (Configuration | GroupConfiguration)[] = [];\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use a placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The next cursor for list configurations, if any.\n */\n @Prop() listConfigurationsNextCursor?: string | null;\n\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * Event emitted when the component is initialized.\n */\n @Event() initListConfigurations!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n cursor?: string;\n }>;\n\n /**\n * Event emitted when the user clicks the create event button.\n */\n @Event() createButtonClick!: EventEmitter<HTMLNylasListConfigurationsElement>;\n\n /**\n * Event emitted when the user clicks the edit event button.\n */\n @Event() editButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * Event emitted when the user clicks the delete event button.\n */\n @Event() deleteButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * This event is fired when there is an error in the component.\n */\n @Event({ cancelable: false }) readonly nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n /**\n * Event emitted when the user dismisses the error notification.\n */\n @Event({ cancelable: false }) dismissNotification!: EventEmitter<{ id: string; host: HTMLNylasListConfigurationsElement }>;\n\n /**\n * The current state of the component.\n */\n @State() private state: 'loading' | 'loaded' | 'error' = 'loading';\n\n /**\n * The error message to display.\n */\n @State() error?: {\n message: string;\n type: NotificationType | undefined;\n category: ErrorCategory | undefined;\n title: string;\n } = {\n message: '',\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: '',\n };\n\n /**\n * Current cursor for list configurations\n */\n @State() currentCursor: string | null = null;\n\n /**\n * The list of previous cursors for list configurations\n */\n @State() previousCursors: string[] = [];\n\n /**\n * State to identiy if the next button should be disabled\n */\n @State() disableNextPageButton: boolean = false;\n\n /**\n * State to store the configuration id to delete and to show the delete confirmation modal\n */\n @State() deleteConfigurationId: string = '';\n\n /**\n * State to show Delete button loading state\n */\n @State() showDeleteButtonLoading: boolean = false;\n\n /**\n * State to show Edit button loading state\n */\n @State() editButtonLoadingId: string = '';\n\n @Watch('listConfigurationsNextCursor')\n listConfigurationsNextCursorChangedHandler(newVal: string | null, oldVal: string | null) {\n if (!newVal || newVal === oldVal) {\n if (newVal === null) {\n this.disableNextPageButton = true;\n }\n return;\n }\n this.disableNextPageButton = false;\n this.currentCursor = newVal;\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 connectedCallback() {\n debug('[nylas-list-configurations]', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('[nylas-list-configurations]', 'componentWillLoad');\n\n // If we have configurations, we will set the state to loaded.\n if (this.configurations && this.configurations.length > 0) {\n this.state = 'loaded';\n }\n }\n\n componentDidLoad() {\n debug('[nylas-list-configurations]', 'componentDidLoad');\n\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n disconnectedCallback() {\n debug('[nylas-list-configurations]', 'disconnectedCallback');\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 @Listen('nylasFormDropdownChanged')\n async handleNylasFormDropdownChanged(event: CustomEvent) {\n debug('[nylas-list-configurations]', 'handleNylasFormDropdownChanged', event.detail);\n const { value } = event.detail;\n const [action, index] = value.split('-');\n event.preventDefault();\n switch (action) {\n case 'delete':\n this.deleteConfigurationId = this.configurations[index]?.id;\n break;\n case 'preview':\n window.open(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]), '_blank');\n break;\n case 'copy':\n await navigator.clipboard.writeText(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]));\n break;\n default:\n break;\n }\n }\n\n @Method()\n async registerCallback() {\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n @Method()\n async getState() {\n return this.state;\n }\n\n @Method()\n async setState(state: 'loading' | 'loaded' | 'error') {\n this.state = state;\n }\n\n @Method()\n async setError(error: { message: string; type: NotificationType; category: ErrorCategory; title: string }) {\n this.error = {\n message: error.message,\n type: error.type,\n category: error.category,\n title: error.title || i18next.t('genericErrorTitle'),\n };\n if (this.error?.message) {\n this.showErrorNotification(this.error);\n }\n }\n\n @Method()\n async hideDeleteConfirmation() {\n this.deleteConfigurationId = '';\n this.showDeleteButtonLoading = false;\n }\n\n @Method()\n async hideEditButtonLoading() {\n this.editButtonLoadingId = '';\n }\n\n showErrorNotification(error: { message: string; type: NotificationType | undefined; category: ErrorCategory | undefined; title: string }) {\n this.nylasSchedulerError.emit({\n notification: {\n id: error.message.split(' ').join('-'),\n type: error.type || NotificationType.Error,\n title: error.title,\n category: error.category || ErrorCategory.Component,\n description: error.message,\n ttl: 'none',\n } as Notification,\n host: this.host,\n });\n }\n\n closeModal(e: Event) {\n e.preventDefault();\n this.deleteConfigurationId = '';\n }\n\n handleConfirmDeleteButtonClicked(e: Event) {\n e.preventDefault();\n this.showDeleteButtonLoading = true;\n const config = this.configurations.find(config => config.id === this.deleteConfigurationId);\n if (config && config?.id) {\n this.deleteButtonClick.emit({ host: this.host, configuration: config });\n }\n }\n\n private getDurationString(duration: number) {\n if (!duration) return '—';\n const hours = Math.floor(duration / 60);\n const minutes = duration % 60;\n return `${hours ? hours : ''} ${hours ? `${hours > 1 ? 'hours' : 'hour'}` : ''} ${minutes ? minutes : ''} ${minutes ? `${minutes > 1 ? 'mins' : 'min'}` : ''}`;\n }\n\n getActionLabelHTML(action: string) {\n const actionStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n };\n const dangerStyle = {\n color: 'var(--nylas-error)',\n };\n switch (action) {\n case 'preview':\n return (\n <span style={actionStyle}>\n <eye-icon width=\"16\" height=\"16\"></eye-icon>\n {i18next.t('nylasListConfigurations.previewButtonText')}\n </span>\n );\n case 'copy':\n return (\n <span style={actionStyle}>\n <copy-icon width=\"16\" height=\"16\" />\n {i18next.t('nylasListConfigurations.copyLinkButtonText')}\n </span>\n );\n case 'delete':\n return (\n <span style={{ ...actionStyle, ...dangerStyle }}>\n <delete-icon width=\"15\" height=\"17\"></delete-icon>\n {i18next.t('nylasListConfigurations.deleteButtonText')}\n </span>\n );\n default:\n return '';\n }\n }\n\n previousPageClickedHandler() {\n if (this.previousCursors.length === 0) return;\n\n this.currentCursor = this.previousCursors.pop() || null;\n const prevCursor = this.previousCursors[this.previousCursors.length - 1] || undefined;\n this.initListConfigurations.emit({\n host: this.host,\n cursor: prevCursor,\n });\n }\n\n nextPageClickedHandler() {\n if (!this.currentCursor) return;\n\n this.previousCursors = [...this.previousCursors, this.currentCursor];\n this.initListConfigurations.emit({\n host: this.host,\n cursor: this.currentCursor,\n });\n }\n\n @RegisterComponent<NylasListConfigurations, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-list-configurations',\n stateToProps: new Map([\n ['schedulerConfig.configurations', 'configurations'],\n ['schedulerConfig.listConfigurationsNextCursor', 'listConfigurationsNextCursor'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n localPropsToProp: new Map([['schedulerPreviewLink', 'schedulerPreviewLink']]),\n eventToProps: {\n initListConfigurations: async (event, connector) => {\n const { host, cursor } = event.detail;\n await host.setState('loading');\n const [data, error] = await connector.schedulerConfig.getConfigurations(cursor);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.getConfigsError'),\n });\n return;\n }\n await host.setState('loaded');\n // setCursor here\n },\n createButtonClick: async (_, connector) => {\n connector.schedulerConfigStore.resetSelectedConfiguration();\n const enabledEventTypes = Object.entries(connector.schedulerConfigStore.state.enableEventTypes || {}).filter(([_key, value]) => value);\n if (enabledEventTypes.length === 1) {\n connector.schedulerConfigStore.state.action = 'create';\n connector.schedulerConfigStore.state.selectedEventType = CONFIGURATION_EVENT_TYPE[enabledEventTypes[0][0]];\n } else {\n connector.schedulerConfigStore.state.action = 'create-select';\n }\n },\n deleteButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n const [data, error] = await connector.schedulerConfig.deleteConfiguration(configuration.id);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.deleteConfigError'),\n });\n }\n await host.hideDeleteConfirmation();\n },\n editButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n if (configuration.type === 'group') {\n const { startTime, endTime } = getCalendarRange(new Date().toISOString(), 'week');\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: startTime.toString(),\n end_time: endTime.toString(),\n };\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configuration.id, configuration);\n if (!data && error && error.message) {\n // handle error\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabsGroup.getGroupEventsError'),\n });\n host.hideEditButtonLoading();\n return;\n }\n }\n connector.schedulerConfigStore.state.action = 'edit';\n connector.schedulerConfigStore.state.selectedConfiguration = configuration;\n host.hideEditButtonLoading();\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-notification></nylas-notification>\n <div class=\"header\">\n <div class=\"description\">\n <h2>{i18next.t('allSchedulingPages')}</h2>\n <p>{i18next.t('createAndManageSchedulingPages')}</p>\n </div>\n {this.configurations && this.configurations.length > 0 && (\n <div class=\"actions\">\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n )}\n </div>\n <div class=\"configurations\">\n <div class=\"table-container\">\n <table\n class={{\n 'no-configurations': this.state !== 'loading' && (!this.configurations || this.configurations.length === 0),\n }}\n >\n <tr\n class={{\n hide: this.state === 'loading' || (this.configurations && this.configurations.length === 0),\n }}\n >\n <th>{i18next.t('pageTitle')}</th>\n <th>{i18next.t('durationTitle')}</th>\n <th></th>\n </tr>\n {this.state === 'loading' && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <h3>{i18next.t('loading')}...</h3>\n <p>{i18next.t('loadingPagesDescription')}</p>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' && (!this.configurations || this.configurations.length === 0) && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <calendar-icon width=\"48\" height=\"48\"></calendar-icon>\n <h3>{i18next.t('noSchedulingPages')}</h3>\n <p>{i18next.t('createFirstSchedulingPage')}</p>\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' &&\n this.configurations?.map((config, i) => {\n const lastTwo = (i === this.configurations.length - 1 || i === this.configurations.length - 2) && this.configurations.length > 3;\n const groupConfig = config as GroupConfiguration;\n const regularConfig = config as Configuration;\n return (\n <tr key={config?.id}>\n <td>\n <div class=\"title\">\n <div class=\"config-event-title\" title={regularConfig?.event_booking?.title}>\n {regularConfig?.event_booking?.title || groupConfig?.name}\n </div>\n <div class={'config-event-description'}>{regularConfig?.event_booking?.description}</div>\n </div>\n </td>\n <td>\n <div class=\"duration\">{this.getDurationString(regularConfig?.availability?.duration_minutes)}</div>\n </td>\n <td>\n <div class=\"actions\">\n <button-component\n class=\"edit-button\"\n variant={'basic'}\n key={`edit-${i}`}\n disabled={this.editButtonLoadingId === `edit-${i}`}\n isLoading={this.editButtonLoadingId === `edit-${i}`}\n clickHandler={event => {\n event.preventDefault();\n this.editButtonLoadingId = `edit-${i}`;\n this.editButtonClick.emit({ host: this.host, configuration: config });\n }}\n >\n {this.editButtonLoadingId === `edit-${i}` ? null : <edit-icon width=\"16\" height=\"16\"></edit-icon>}\n {i18next.t('editSchedulingPageButtonText')}\n </button-component>\n <select-dropdown\n class={{\n last: lastTwo,\n }}\n name=\"actions\"\n options={[\n { value: `preview-${i}`, label: 'Preview', labelHTML: this.getActionLabelHTML('preview') },\n { value: `copy-${i}`, label: 'Copy link', labelHTML: this.getActionLabelHTML('copy') },\n { value: `delete-${i}`, label: 'Delete', labelHTML: this.getActionLabelHTML('delete') },\n ]}\n defaultSelectedOption={{ value: '', label: '' }}\n dropdownButtonText=\"...\"\n withSearch={false}\n withChevron={false}\n themeConfig={this.themeConfig}\n exportparts=\"sd_dropdown: actions__dropdown, sd_dropdown-button: actions__dropdown-button, sd_dropdown-content: actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"\n ></select-dropdown>\n </div>\n </td>\n </tr>\n );\n })}\n </table>\n </div>\n <div class=\"pagination\">\n <button class=\"arrow left\" onClick={() => this.previousPageClickedHandler()} disabled={this.previousCursors.length <= 0}>\n <chevron-icon />\n </button>\n <button class=\"arrow right\" onClick={() => this.nextPageClickedHandler()} disabled={this.disableNextPageButton}>\n <chevron-icon />\n </button>\n </div>\n </div>\n {!!this.deleteConfigurationId && (\n <div class=\"card-wrapper\">\n <div class=\"card-modal\">\n <div class=\"close-button\">\n <button-component tooltip=\"Close\" id=\"close\" variant={'invisible'} onClick={e => this.closeModal(e)} part=\"nfbf__close-button\">\n <close-icon />\n </button-component>\n </div>\n <div class=\"header\">\n <h2 slot=\"card-title\" part=\"nfbf__title\">\n {i18next.t('deleteSchedulingPageTitle')}\n </h2>\n </div>\n <div class=\"description title-desc\">\n <p>{i18next.t('deleteSchedulingPageDescription')}</p>\n </div>\n <div\n class={{\n footer: true,\n }}\n >\n <button-component variant={'basic'} onClick={e => this.closeModal(e)} part=\"nfbf__button-outline nfbf__cancel-cta\">\n {`${i18next.t('deleteSchedulingPageCancelButton')}`}\n </button-component>\n <button-component\n variant={'destructive'}\n onClick={e => this.handleConfirmDeleteButtonClicked(e)}\n disabled={this.showDeleteButtonLoading}\n isLoading={this.showDeleteButtonLoading}\n part=\"nfbf__button-outline nfbf__reschedule-cta\"\n >\n {`${i18next.t('deleteSchedulingPageConfirmButton')}`}\n </button-component>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-DpEIiPGz.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","NotificationType","i18next"],"sources":["src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.scss?tag=nylas-list-configurations&encapsulation=shadow","src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: grid;\n grid-auto-flow: row;\n width: 100%;\n font-family: inherit;\n font-optical-sizing: auto;\n @include default-css-variables;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n align-items: unset;\n }\n\n h2 {\n margin: 0;\n font-size: 1.25rem;\n color: var(--nylas-base-900);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 16px;\n color: var(--nylas-base-700);\n }\n\n .actions {\n justify-self: end;\n\n @media #{$mobile} {\n width: 100%;\n }\n }\n}\n\n.configurations {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n background: var(--nylas-base-0);\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-y: hidden;\n\n .table-container {\n overflow-y: auto;\n flex: 1;\n\n @media #{$mobile} {\n min-height: 624px; // This is to ensure the dropdowns are not cut off\n }\n\n table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: inherit;\n height: max-content;\n\n &.no-configurations {\n height: 100%;\n }\n\n tr {\n color: var(--nylas-base-800);\n border-bottom: 1px solid var(--nylas-base-200);\n font-family: inherit;\n\n &.hide {\n display: none;\n }\n }\n\n th {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 20px;\n }\n\n tr.no-configurations {\n td {\n > div {\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n padding: var(--nylas-border-radius-3x);\n\n h3 {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-700);\n }\n\n p {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-600);\n }\n\n calendar-icon {\n margin-bottom: 1rem;\n color: var(--nylas-base-200);\n }\n }\n }\n }\n\n th,\n td {\n text-align: left;\n padding: 1rem;\n font-family: inherit;\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n text-align: right;\n button-component.edit-button {\n min-width: 98px;\n }\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n select-dropdown.last {\n &::part(sd_dropdown-content) {\n bottom: 54px;\n }\n }\n }\n\n .title {\n width: 100%;\n max-width: 300px;\n\n @media #{$mobile} {\n max-width: 96px;\n }\n\n div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.config-event-title {\n font-weight: 600;\n }\n\n &.config-event-description {\n font-size: 0.75rem;\n }\n }\n }\n }\n }\n\n .pagination {\n padding: 1rem;\n position: sticky;\n top: 100%;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n background: var(--nylas-base-0);\n width: calc(100% - 2rem);\n z-index: 2;\n\n td.arrows {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n button {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 3vh;\n width: 3vh;\n min-width: 3em;\n min-height: 3em;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-300);\n\n background-color: transparent;\n color: var(--nylas-base-800);\n cursor: pointer;\n\n &:hover:not(:disabled) {\n border: 1px solid var(--nylas-primary);\n }\n\n &:active {\n border: 1px solid var(--nylas-base-800);\n }\n\n &:disabled {\n border: 1px solid var(--nylas-base-100);\n background-color: transparent;\n color: var(--nylas-base-300);\n cursor: not-allowed;\n }\n\n &.right {\n transform: rotate(180deg);\n }\n }\n }\n}\n\n.error-container {\n margin-top: 1.5rem;\n\n .error {\n color: var(--nylas-error);\n padding: 0.5rem 0;\n margin: 1rem 0 0;\n }\n}\n\nbutton-component#copy {\n button {\n width: 108px;\n }\n}\n\nselect-dropdown {\n width: auto;\n color: inherit;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n display: block;\n height: 48px;\n padding: 0px 16px 8px;\n\n @media #{$mobile} {\n width: 92px;\n }\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n width: 120px;\n right: 0;\n}\n\nselect-dropdown::part(sd_dropdown-labelhtml) {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n color: var(--nylas-primary);\n }\n}\n\n.card-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n height: calc(100% + 4rem);\n width: -webkit-fill-available;\n width: -moz-available;\n width: fill-available;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n\n border-radius: var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n justify-content: start;\n height: 100%;\n }\n}\n\n.card-modal {\n background: var(--nylas-base-0);\n display: flex;\n flex-direction: column;\n font-family: var(--nylas-font-family);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-900);\n border-radius: var(--nylas-border-radius-3x);\n padding: 32px;\n width: 562px;\n\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n width: auto;\n border-radius: 0px;\n }\n}\n\n.description {\n &.title-desc {\n margin-bottom: 2rem;\n }\n\n p {\n margin: 0;\n font-size: 18px;\n color: var(--nylas-base-600);\n }\n}\n\n.footer {\n margin-top: 1rem;\n padding-top: 1rem;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n box-sizing: border-box;\n background-color: var(--nylas-base-25);\n width: 100%;\n border-radius: 0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x);\n}\n\n.close-button {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n\n button-component {\n button {\n padding: 0;\n height: auto;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\nbutton-component {\n --dot-color: var(--nylas-base-700);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, getCalendarRange, parsePreviewLink } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, GroupConfiguration, Notification, NotificationType, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, LANGUAGE_CODE } from '@/common/constants';\nimport { ErrorCategory } from '@/types/index';\n\n/**\n * The `nylas-list-configurations` component displays a list of scheduling pages.\n *\n * @part nlc__create-new-cta - The create new configuration CTA.\n */\n@Component({\n tag: 'nylas-list-configurations',\n styleUrl: 'nylas-list-configurations.scss',\n shadow: true,\n})\nexport class NylasListConfigurations {\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasListConfigurationsElement;\n\n /**\n * The list of configurations to display.\n */\n @Prop() configurations: (Configuration | GroupConfiguration)[] = [];\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use a placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The next cursor for list configurations, if any.\n */\n @Prop() listConfigurationsNextCursor?: string | null;\n\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * Event emitted when the component is initialized.\n */\n @Event() initListConfigurations!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n cursor?: string;\n }>;\n\n /**\n * Event emitted when the user clicks the create event button.\n */\n @Event() createButtonClick!: EventEmitter<HTMLNylasListConfigurationsElement>;\n\n /**\n * Event emitted when the user clicks the edit event button.\n */\n @Event() editButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * Event emitted when the user clicks the delete event button.\n */\n @Event() deleteButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * This event is fired when there is an error in the component.\n */\n @Event({ cancelable: false }) readonly nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n /**\n * Event emitted when the user dismisses the error notification.\n */\n @Event({ cancelable: false }) dismissNotification!: EventEmitter<{ id: string; host: HTMLNylasListConfigurationsElement }>;\n\n /**\n * The current state of the component.\n */\n @State() private state: 'loading' | 'loaded' | 'error' = 'loading';\n\n /**\n * The error message to display.\n */\n @State() error?: {\n message: string;\n type: NotificationType | undefined;\n category: ErrorCategory | undefined;\n title: string;\n } = {\n message: '',\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: '',\n };\n\n /**\n * Current cursor for list configurations\n */\n @State() currentCursor: string | null = null;\n\n /**\n * The list of previous cursors for list configurations\n */\n @State() previousCursors: string[] = [];\n\n /**\n * State to identiy if the next button should be disabled\n */\n @State() disableNextPageButton: boolean = false;\n\n /**\n * State to store the configuration id to delete and to show the delete confirmation modal\n */\n @State() deleteConfigurationId: string = '';\n\n /**\n * State to show Delete button loading state\n */\n @State() showDeleteButtonLoading: boolean = false;\n\n /**\n * State to show Edit button loading state\n */\n @State() editButtonLoadingId: string = '';\n\n @Watch('listConfigurationsNextCursor')\n listConfigurationsNextCursorChangedHandler(newVal: string | null, oldVal: string | null) {\n if (!newVal || newVal === oldVal) {\n if (newVal === null) {\n this.disableNextPageButton = true;\n }\n return;\n }\n this.disableNextPageButton = false;\n this.currentCursor = newVal;\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 connectedCallback() {\n debug('[nylas-list-configurations]', 'connectedCallback');\n }\n\n componentWillLoad() {\n debug('[nylas-list-configurations]', 'componentWillLoad');\n\n // If we have configurations, we will set the state to loaded.\n if (this.configurations && this.configurations.length > 0) {\n this.state = 'loaded';\n }\n }\n\n componentDidLoad() {\n debug('[nylas-list-configurations]', 'componentDidLoad');\n\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n disconnectedCallback() {\n debug('[nylas-list-configurations]', 'disconnectedCallback');\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 @Listen('nylasFormDropdownChanged')\n async handleNylasFormDropdownChanged(event: CustomEvent) {\n debug('[nylas-list-configurations]', 'handleNylasFormDropdownChanged', event.detail);\n const { value } = event.detail;\n const [action, index] = value.split('-');\n event.preventDefault();\n switch (action) {\n case 'delete':\n this.deleteConfigurationId = this.configurations[index]?.id;\n break;\n case 'preview':\n window.open(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]), '_blank');\n break;\n case 'copy':\n await navigator.clipboard.writeText(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]));\n break;\n default:\n break;\n }\n }\n\n @Method()\n async registerCallback() {\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n @Method()\n async getState() {\n return this.state;\n }\n\n @Method()\n async setState(state: 'loading' | 'loaded' | 'error') {\n this.state = state;\n }\n\n @Method()\n async setError(error: { message: string; type: NotificationType; category: ErrorCategory; title: string }) {\n this.error = {\n message: error.message,\n type: error.type,\n category: error.category,\n title: error.title || i18next.t('genericErrorTitle'),\n };\n if (this.error?.message) {\n this.showErrorNotification(this.error);\n }\n }\n\n @Method()\n async hideDeleteConfirmation() {\n this.deleteConfigurationId = '';\n this.showDeleteButtonLoading = false;\n }\n\n @Method()\n async hideEditButtonLoading() {\n this.editButtonLoadingId = '';\n }\n\n showErrorNotification(error: { message: string; type: NotificationType | undefined; category: ErrorCategory | undefined; title: string }) {\n this.nylasSchedulerError.emit({\n notification: {\n id: error.message.split(' ').join('-'),\n type: error.type || NotificationType.Error,\n title: error.title,\n category: error.category || ErrorCategory.Component,\n description: error.message,\n ttl: 'none',\n } as Notification,\n host: this.host,\n });\n }\n\n closeModal(e: Event) {\n e.preventDefault();\n this.deleteConfigurationId = '';\n }\n\n handleConfirmDeleteButtonClicked(e: Event) {\n e.preventDefault();\n this.showDeleteButtonLoading = true;\n const config = this.configurations.find(config => config.id === this.deleteConfigurationId);\n if (config && config?.id) {\n this.deleteButtonClick.emit({ host: this.host, configuration: config });\n }\n }\n\n private getDurationString(duration: number) {\n if (!duration) return '—';\n const hours = Math.floor(duration / 60);\n const minutes = duration % 60;\n return `${hours ? hours : ''} ${hours ? `${hours > 1 ? 'hours' : 'hour'}` : ''} ${minutes ? minutes : ''} ${minutes ? `${minutes > 1 ? 'mins' : 'min'}` : ''}`;\n }\n\n getActionLabelHTML(action: string) {\n const actionStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n };\n const dangerStyle = {\n color: 'var(--nylas-error)',\n };\n switch (action) {\n case 'preview':\n return (\n <span style={actionStyle}>\n <eye-icon width=\"16\" height=\"16\"></eye-icon>\n {i18next.t('nylasListConfigurations.previewButtonText')}\n </span>\n );\n case 'copy':\n return (\n <span style={actionStyle}>\n <copy-icon width=\"16\" height=\"16\" />\n {i18next.t('nylasListConfigurations.copyLinkButtonText')}\n </span>\n );\n case 'delete':\n return (\n <span style={{ ...actionStyle, ...dangerStyle }}>\n <delete-icon width=\"15\" height=\"17\"></delete-icon>\n {i18next.t('nylasListConfigurations.deleteButtonText')}\n </span>\n );\n default:\n return '';\n }\n }\n\n previousPageClickedHandler() {\n if (this.previousCursors.length === 0) return;\n\n this.currentCursor = this.previousCursors.pop() || null;\n const prevCursor = this.previousCursors[this.previousCursors.length - 1] || undefined;\n this.initListConfigurations.emit({\n host: this.host,\n cursor: prevCursor,\n });\n }\n\n nextPageClickedHandler() {\n if (!this.currentCursor) return;\n\n this.previousCursors = [...this.previousCursors, this.currentCursor];\n this.initListConfigurations.emit({\n host: this.host,\n cursor: this.currentCursor,\n });\n }\n\n @RegisterComponent<NylasListConfigurations, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-list-configurations',\n stateToProps: new Map([\n ['schedulerConfig.configurations', 'configurations'],\n ['schedulerConfig.listConfigurationsNextCursor', 'listConfigurationsNextCursor'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n localPropsToProp: new Map([['schedulerPreviewLink', 'schedulerPreviewLink']]),\n eventToProps: {\n initListConfigurations: async (event, connector) => {\n const { host, cursor } = event.detail;\n await host.setState('loading');\n const [data, error] = await connector.schedulerConfig.getConfigurations(cursor);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.getConfigsError'),\n });\n return;\n }\n await host.setState('loaded');\n // setCursor here\n },\n createButtonClick: async (_, connector) => {\n connector.schedulerConfigStore.resetSelectedConfiguration();\n const enabledEventTypes = Object.entries(connector.schedulerConfigStore.state.enableEventTypes || {}).filter(([_key, value]) => value);\n if (enabledEventTypes.length === 1) {\n connector.schedulerConfigStore.state.action = 'create';\n connector.schedulerConfigStore.state.selectedEventType = CONFIGURATION_EVENT_TYPE[enabledEventTypes[0][0]];\n } else {\n connector.schedulerConfigStore.state.action = 'create-select';\n }\n },\n deleteButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n const [data, error] = await connector.schedulerConfig.deleteConfiguration(configuration.id);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.deleteConfigError'),\n });\n }\n await host.hideDeleteConfirmation();\n },\n editButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n if (configuration.type === 'group') {\n const { startTime, endTime } = getCalendarRange(new Date().toISOString(), 'week');\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: startTime.toString(),\n end_time: endTime.toString(),\n };\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configuration.id, configuration);\n if (!data && error && error.message) {\n // handle error\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabsGroup.getGroupEventsError'),\n });\n host.hideEditButtonLoading();\n return;\n }\n }\n connector.schedulerConfigStore.state.action = 'edit';\n connector.schedulerConfigStore.state.selectedConfiguration = configuration;\n host.hideEditButtonLoading();\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-notification></nylas-notification>\n <div class=\"header\">\n <div class=\"description\">\n <h2>{i18next.t('allSchedulingPages')}</h2>\n <p>{i18next.t('createAndManageSchedulingPages')}</p>\n </div>\n {this.configurations && this.configurations.length > 0 && (\n <div class=\"actions\">\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n )}\n </div>\n <div class=\"configurations\">\n <div class=\"table-container\">\n <table\n class={{\n 'no-configurations': this.state !== 'loading' && (!this.configurations || this.configurations.length === 0),\n }}\n >\n <tr\n class={{\n hide: this.state === 'loading' || (this.configurations && this.configurations.length === 0),\n }}\n >\n <th>{i18next.t('pageTitle')}</th>\n <th>{i18next.t('durationTitle')}</th>\n <th></th>\n </tr>\n {this.state === 'loading' && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <h3>{i18next.t('loading')}...</h3>\n <p>{i18next.t('loadingPagesDescription')}</p>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' && (!this.configurations || this.configurations.length === 0) && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <calendar-icon width=\"48\" height=\"48\"></calendar-icon>\n <h3>{i18next.t('noSchedulingPages')}</h3>\n <p>{i18next.t('createFirstSchedulingPage')}</p>\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' &&\n this.configurations?.map((config, i) => {\n const lastTwo = (i === this.configurations.length - 1 || i === this.configurations.length - 2) && this.configurations.length > 3;\n const groupConfig = config as GroupConfiguration;\n const regularConfig = config as Configuration;\n return (\n <tr key={config?.id}>\n <td>\n <div class=\"title\">\n <div class=\"config-event-title\" title={regularConfig?.event_booking?.title}>\n {regularConfig?.event_booking?.title || groupConfig?.name}\n </div>\n <div class={'config-event-description'}>{regularConfig?.event_booking?.description}</div>\n </div>\n </td>\n <td>\n <div class=\"duration\">{this.getDurationString(regularConfig?.availability?.duration_minutes)}</div>\n </td>\n <td>\n <div class=\"actions\">\n <button-component\n class=\"edit-button\"\n variant={'basic'}\n key={`edit-${i}`}\n disabled={this.editButtonLoadingId === `edit-${i}`}\n isLoading={this.editButtonLoadingId === `edit-${i}`}\n clickHandler={event => {\n event.preventDefault();\n this.editButtonLoadingId = `edit-${i}`;\n this.editButtonClick.emit({ host: this.host, configuration: config });\n }}\n >\n {this.editButtonLoadingId === `edit-${i}` ? null : <edit-icon width=\"16\" height=\"16\"></edit-icon>}\n {i18next.t('editSchedulingPageButtonText')}\n </button-component>\n <select-dropdown\n class={{\n last: lastTwo,\n }}\n name=\"actions\"\n options={[\n { value: `preview-${i}`, label: 'Preview', labelHTML: this.getActionLabelHTML('preview') },\n { value: `copy-${i}`, label: 'Copy link', labelHTML: this.getActionLabelHTML('copy') },\n { value: `delete-${i}`, label: 'Delete', labelHTML: this.getActionLabelHTML('delete') },\n ]}\n defaultSelectedOption={{ value: '', label: '' }}\n dropdownButtonText=\"...\"\n withSearch={false}\n withChevron={false}\n themeConfig={this.themeConfig}\n exportparts=\"sd_dropdown: actions__dropdown, sd_dropdown-button: actions__dropdown-button, sd_dropdown-content: actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"\n ></select-dropdown>\n </div>\n </td>\n </tr>\n );\n })}\n </table>\n </div>\n <div class=\"pagination\">\n <button class=\"arrow left\" onClick={() => this.previousPageClickedHandler()} disabled={this.previousCursors.length <= 0}>\n <chevron-icon />\n </button>\n <button class=\"arrow right\" onClick={() => this.nextPageClickedHandler()} disabled={this.disableNextPageButton}>\n <chevron-icon />\n </button>\n </div>\n </div>\n {!!this.deleteConfigurationId && (\n <div class=\"card-wrapper\">\n <div class=\"card-modal\">\n <div class=\"close-button\">\n <button-component tooltip=\"Close\" id=\"close\" variant={'invisible'} onClick={e => this.closeModal(e)} part=\"nfbf__close-button\">\n <close-icon />\n </button-component>\n </div>\n <div class=\"header\">\n <h2 slot=\"card-title\" part=\"nfbf__title\">\n {i18next.t('deleteSchedulingPageTitle')}\n </h2>\n </div>\n <div class=\"description title-desc\">\n <p>{i18next.t('deleteSchedulingPageDescription')}</p>\n </div>\n <div\n class={{\n footer: true,\n }}\n >\n <button-component variant={'basic'} onClick={e => this.closeModal(e)} part=\"nfbf__button-outline nfbf__cancel-cta\">\n {`${i18next.t('deleteSchedulingPageCancelButton')}`}\n </button-component>\n <button-component\n variant={'destructive'}\n onClick={e => this.handleConfirmDeleteButtonClicked(e)}\n disabled={this.showDeleteButtonLoading}\n isLoading={this.showDeleteButtonLoading}\n part=\"nfbf__button-outline nfbf__reschedule-cta\"\n >\n {`${i18next.t('deleteSchedulingPageConfirmButton')}`}\n </button-component>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,9 +1,9 @@
|
|
|
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, b as instance } from './p-
|
|
2
|
+
import { R as RegisterComponent } from './p-DtDGPXZR.js';
|
|
3
|
+
import { a as debug, b as instance } from './p-CULO8bTo.js';
|
|
4
4
|
import { d as defineCustomElement$6 } from './p-PeEnpB8P.js';
|
|
5
5
|
import { d as defineCustomElement$5 } from './p-7S1M5IE9.js';
|
|
6
|
-
import { d as defineCustomElement$4 } from './p-
|
|
6
|
+
import { d as defineCustomElement$4 } from './p-B1vZbLyd.js';
|
|
7
7
|
import { d as defineCustomElement$3 } from './p-ClTk9Ttz.js';
|
|
8
8
|
import { d as defineCustomElement$2 } from './p-D7lRYhTx.js';
|
|
9
9
|
import { d as defineCustomElement$1 } from './p-C6fgjGAL.js';
|
|
@@ -273,6 +273,6 @@ function defineCustomElement() {
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
export { NylasParticipantBookingCalendars as N, defineCustomElement as d };
|
|
276
|
-
//# sourceMappingURL=p-
|
|
276
|
+
//# sourceMappingURL=p-DpkYFbEV.js.map
|
|
277
277
|
|
|
278
|
-
//# sourceMappingURL=p-
|
|
278
|
+
//# sourceMappingURL=p-DpkYFbEV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-BnY2Hut1.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.scss?tag=nylas-participant-booking-calendars&encapsulation=shadow","src/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.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-participant-booking-calendars {\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 color: var(--nylas-base-900);\n\n .header {\n padding: 1rem;\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 .participant-container {\n padding-top: 12px;\n border-top: 1px solid var(--nylas-base-200);\n background-color: var(--nylas-base-25);\n\n .participant-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 4px 16px 16px;\n\n p {\n margin: 0;\n }\n\n .participant-toggle {\n display: flex;\n gap: 24px;\n align-items: center;\n\n .chevron {\n display: flex;\n align-self: center;\n cursor: pointer;\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n\n &.open {\n transform: rotate(90deg);\n }\n\n &.closed {\n transform: rotate(270deg);\n }\n\n &.disabled {\n cursor: not-allowed;\n color: var(--nylas-base-300);\n\n &:hover {\n color: var(--nylas-base-300);\n }\n }\n }\n }\n }\n }\n }\n}\n\nnylas-booking-calendar-picker::part(nbcp) {\n margin: 0;\n border: none;\n border-top: 1px solid var(--nylas-base-200);\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } 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 { AdditionalParticipant, Calendar, Configuration, Participant, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-participant-booking-calendars` component is a form input for selecting calendars to check availability for participants.\n *\n * @part npbc - The participant booking calendars host.\n * @part npbc__header - The header.\n * @part npbc__content - The content.\n * @part npbc__participant-container - The participant container.\n * @part npbc__participant-title - The participant title.\n * @part npbc__participant-toggle-container - The participant toggle container.\n */\n@Component({\n tag: 'nylas-participant-booking-calendars',\n styleUrl: 'nylas-participant-booking-calendars.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasParticipantBookingCalendars {\n @Element() host!: HTMLNylasParticipantBookingCalendarsElement;\n private bookingCalendarsFormRef!: HTMLFormElement;\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The name of the participants custom availability.\n */\n @Prop() name: string = 'participant-booking-calendars';\n\n /**\n * @standalone\n * The participants selected in the add participants section.\n */\n @Prop() participants: Participant[] = this.selectedConfiguration?.participants || [];\n\n /**\n * @standalone\n * The calendars to choose from for the organizer / logged in user.\n */\n @Prop() calendars?: Calendar[];\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 * 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 * This event is fired when the participants custom availability changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The state to store the custom availability setting for participants.\n */\n @State() selectedCalendars: {\n [key: string]: {\n isOpen: boolean;\n name: string;\n calendar?: Calendar;\n };\n } = this.setParticipants(this.participants);\n\n /**\n * Participants calendar options.\n */\n @State() participantCalendars: {\n [key: string]: Calendar[];\n } = {};\n\n /**\n * The state to store the default selected calendars for each participant\n */\n @State() participantDefaultSelectedCalendar: {\n [key: string]: string;\n } = {};\n\n // Watchers\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-participant-booking-calendars', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('calendars')\n calendarsChangedHandler(newValue: Calendar[]) {\n debug('nylas-participant-booking-calendars', 'calendarsChangedHandler', newValue);\n this.participantCalendars = this.getParticipantCalendarOptions(this.participants, this.participantOptions);\n }\n\n @Watch('participants')\n participantsChangedHandler(newValue: Participant[]) {\n debug('nylas-participant-booking-calendars', 'participantsChangedHandler', newValue);\n this.selectedCalendars = this.setParticipants(newValue);\n this.participantCalendars = this.getParticipantCalendarOptions(newValue, this.participantOptions);\n }\n\n @Watch('participantOptions')\n participantOptionsChangedHandler(newValue: AdditionalParticipant[]) {\n debug('nylas-calendar-picker', 'participantOptionsChangedHandler', newValue);\n this.participantCalendars = this.getParticipantCalendarOptions(this.participants, newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-participant-booking-calendars', 'selectedConfigurationChangedHandler', newValue);\n const participants = newValue?.participants || this.participants;\n if (participants && participants.length > 0) {\n this.selectedCalendars = this.setParticipants(participants);\n this.participantCalendars = this.getParticipantCalendarOptions(participants, this.participantOptions);\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 @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 getParticipantCalendarOptions(addedParticipants: Participant[], availableParticipantOptions: AdditionalParticipant[] | undefined) {\n // Get the participants from the availableParticipantOptions prop that are in the addedParticipants prop\n const organizer = addedParticipants?.find(participant => participant.is_organizer);\n const participantCalendars = {};\n const showAdditionalParticipantBookingCalendars = this.selectedConfiguration?.availability?.availability_rules?.availability_method !== 'collective';\n if (availableParticipantOptions && showAdditionalParticipantBookingCalendars) {\n const participants = addedParticipants?.filter(participant => availableParticipantOptions.some(availableParticipant => availableParticipant.email === participant.email));\n const remainingParticipants = addedParticipants?.filter(\n participant => !availableParticipantOptions.some(availableParticipant => availableParticipant.email === participant.email),\n );\n\n // Get the calendar options for each participant with email as the key\n participants?.forEach(participant => {\n const participantOption = availableParticipantOptions?.find(participantOption => participantOption.email === participant.email);\n if (!participantOption) return;\n this.participantDefaultSelectedCalendar[participant.email] = participant.booking?.calendar_id ?? 'primary';\n const calendars = participantOption.calendars ?? [];\n participantCalendars[participant.email] = calendars;\n });\n // If it is round robin config, add the remaining participant calendars to the participantCalendars\n // (Round-robin does not have an organizer, and we filtered out the participants not passed in the participantOptions prop,\n // so we need to add the remaining participants calendars to the participantCalendars)\n remainingParticipants?.forEach(participant => {\n if (participant?.booking?.calendar_id) {\n participantCalendars[participant.email] = this.calendars ?? [{ id: 'primary', name: participant.email }];\n this.participantDefaultSelectedCalendar[participant.email] = participant?.booking?.calendar_id ?? 'primary';\n }\n });\n }\n // Add the organizer's calendars to the participantCalendars\n if (organizer) {\n participantCalendars[organizer.email] = this.calendars ?? [{ id: 'primary', name: organizer.email }];\n this.participantDefaultSelectedCalendar[organizer.email] = organizer?.booking?.calendar_id ?? 'primary';\n }\n return participantCalendars;\n }\n\n // Lifecycle Methods\n connectedCallback() {\n debug('nylas-participant-booking-calendars', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-participant-booking-calendars', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-participant-booking-calendars', 'componentWillLoad');\n }\n\n componentDidLoad() {\n debug('nylas-participant-booking-calendars', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedCalendars = this.setParticipants(this.selectedConfiguration?.participants);\n this.participantCalendars = this.getParticipantCalendarOptions(this.selectedConfiguration?.participants, this.participantOptions);\n } else {\n this.selectedCalendars = this.setParticipants(this.participants);\n this.participantCalendars = this.getParticipantCalendarOptions(this.participants, this.participantOptions);\n }\n }\n\n @Listen('valueChanged')\n handleValueChanged(event: CustomEvent) {\n debug('[nylas-editor-tabs]', 'handleValueChanged', event);\n const { name, value } = event.detail;\n if (!name.startsWith('participant-booking-')) {\n return;\n }\n // Validate the form\n if (!this.bookingCalendarsFormRef.checkValidity()) {\n this.internals.setValidity({ customError: true }, i18next.t('nylasParticipantBookingCalendars.selectAtLeastOneCalendar'));\n return;\n } else {\n this.internals.setValidity({});\n }\n\n const key = name.split('participant-booking-')[1];\n if (!this.selectedCalendars[key]) return;\n this.selectedCalendars[key]['calendar'] = value;\n this.selectedCalendars = { ...this.selectedCalendars };\n\n const participantsCalendars = {};\n Object.keys(this.selectedCalendars).forEach(key => {\n participantsCalendars[key] = this.selectedCalendars[key]?.calendar;\n });\n this.internals.setFormValue(JSON.stringify(participantsCalendars), this.name);\n this.valueChanged.emit({ value: JSON.stringify(participantsCalendars), name: this.name });\n }\n\n setParticipants(participants: Participant[]) {\n const selectedParticipants = {};\n participants?.forEach(participant => {\n if (participant?.booking?.calendar_id) {\n const isOpen = participant.is_organizer ? true : false;\n selectedParticipants[participant.email] = {\n isOpen: isOpen,\n calendar: participant.booking?.calendar_id || 'primary',\n name: participant.name || participant.email,\n };\n }\n });\n return selectedParticipants;\n }\n @RegisterComponent<NylasParticipantBookingCalendars, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-participant-booking-calendars',\n stateToProps: new Map([\n ['schedulerConfig.additionalParticipants', 'participantOptions'],\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class=\"nylas-participant-booking-calendars\" part=\"npbc\">\n <div class=\"header\" part=\"npbc__header\">\n <h3>{i18next.t('nylasParticipantBookingCalendars.headerTitle')}</h3>\n <p>{i18next.t('nylasParticipantBookingCalendars.headerSubTitle')}</p>\n </div>\n <div class=\"content\" part=\"npbc__content\">\n <form ref={el => (this.bookingCalendarsFormRef = el as HTMLFormElement)}>\n {this.participantCalendars &&\n Object.keys(this.participantCalendars).map((key, index) => {\n const participant = this.selectedCalendars[key];\n const participantCalendars = this.participantCalendars[key];\n\n if (!participant || !participant.name) return;\n return (\n <div class=\"participant-container\" part=\"npbc__participant-container\" key={`participant-conatiner-${index}`}>\n <div class=\"participant-title\" part=\"npbc__participant-title\">\n <p>{i18next.t('nylasParticipantBookingCalendars.participantBookingCalendarTitle', { participantName: participant.name })}</p>\n <div class=\"participant-toggle\" part=\"npbc__participant-toggle-container\">\n <span\n class={`chevron ${participant.isOpen ? 'open' : 'closed'}`}\n onClick={() => {\n this.selectedCalendars[key].isOpen = !participant.isOpen;\n this.selectedCalendars = { ...this.selectedCalendars };\n }}\n >\n <chevron-icon width=\"24\" height=\"24\" />\n </span>\n </div>\n </div>\n {participant.isOpen && (\n <nylas-booking-calendar-picker\n key={key}\n name={`participant-booking-${key}`}\n calendars={participantCalendars}\n hideHeader={true}\n defaultBookingCalendar={this.participantDefaultSelectedCalendar[key]}\n />\n )}\n </div>\n );\n })}\n </form>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-DpkYFbEV.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.scss?tag=nylas-participant-booking-calendars&encapsulation=shadow","src/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.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-participant-booking-calendars {\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 color: var(--nylas-base-900);\n\n .header {\n padding: 1rem;\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 .participant-container {\n padding-top: 12px;\n border-top: 1px solid var(--nylas-base-200);\n background-color: var(--nylas-base-25);\n\n .participant-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 4px 16px 16px;\n\n p {\n margin: 0;\n }\n\n .participant-toggle {\n display: flex;\n gap: 24px;\n align-items: center;\n\n .chevron {\n display: flex;\n align-self: center;\n cursor: pointer;\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n\n &.open {\n transform: rotate(90deg);\n }\n\n &.closed {\n transform: rotate(270deg);\n }\n\n &.disabled {\n cursor: not-allowed;\n color: var(--nylas-base-300);\n\n &:hover {\n color: var(--nylas-base-300);\n }\n }\n }\n }\n }\n }\n }\n}\n\nnylas-booking-calendar-picker::part(nbcp) {\n margin: 0;\n border: none;\n border-top: 1px solid var(--nylas-base-200);\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } 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 { AdditionalParticipant, Calendar, Configuration, Participant, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-participant-booking-calendars` component is a form input for selecting calendars to check availability for participants.\n *\n * @part npbc - The participant booking calendars host.\n * @part npbc__header - The header.\n * @part npbc__content - The content.\n * @part npbc__participant-container - The participant container.\n * @part npbc__participant-title - The participant title.\n * @part npbc__participant-toggle-container - The participant toggle container.\n */\n@Component({\n tag: 'nylas-participant-booking-calendars',\n styleUrl: 'nylas-participant-booking-calendars.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasParticipantBookingCalendars {\n @Element() host!: HTMLNylasParticipantBookingCalendarsElement;\n private bookingCalendarsFormRef!: HTMLFormElement;\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The name of the participants custom availability.\n */\n @Prop() name: string = 'participant-booking-calendars';\n\n /**\n * @standalone\n * The participants selected in the add participants section.\n */\n @Prop() participants: Participant[] = this.selectedConfiguration?.participants || [];\n\n /**\n * @standalone\n * The calendars to choose from for the organizer / logged in user.\n */\n @Prop() calendars?: Calendar[];\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 * 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 * This event is fired when the participants custom availability changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The state to store the custom availability setting for participants.\n */\n @State() selectedCalendars: {\n [key: string]: {\n isOpen: boolean;\n name: string;\n calendar?: Calendar;\n };\n } = this.setParticipants(this.participants);\n\n /**\n * Participants calendar options.\n */\n @State() participantCalendars: {\n [key: string]: Calendar[];\n } = {};\n\n /**\n * The state to store the default selected calendars for each participant\n */\n @State() participantDefaultSelectedCalendar: {\n [key: string]: string;\n } = {};\n\n // Watchers\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-participant-booking-calendars', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('calendars')\n calendarsChangedHandler(newValue: Calendar[]) {\n debug('nylas-participant-booking-calendars', 'calendarsChangedHandler', newValue);\n this.participantCalendars = this.getParticipantCalendarOptions(this.participants, this.participantOptions);\n }\n\n @Watch('participants')\n participantsChangedHandler(newValue: Participant[]) {\n debug('nylas-participant-booking-calendars', 'participantsChangedHandler', newValue);\n this.selectedCalendars = this.setParticipants(newValue);\n this.participantCalendars = this.getParticipantCalendarOptions(newValue, this.participantOptions);\n }\n\n @Watch('participantOptions')\n participantOptionsChangedHandler(newValue: AdditionalParticipant[]) {\n debug('nylas-calendar-picker', 'participantOptionsChangedHandler', newValue);\n this.participantCalendars = this.getParticipantCalendarOptions(this.participants, newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-participant-booking-calendars', 'selectedConfigurationChangedHandler', newValue);\n const participants = newValue?.participants || this.participants;\n if (participants && participants.length > 0) {\n this.selectedCalendars = this.setParticipants(participants);\n this.participantCalendars = this.getParticipantCalendarOptions(participants, this.participantOptions);\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 @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 getParticipantCalendarOptions(addedParticipants: Participant[], availableParticipantOptions: AdditionalParticipant[] | undefined) {\n // Get the participants from the availableParticipantOptions prop that are in the addedParticipants prop\n const organizer = addedParticipants?.find(participant => participant.is_organizer);\n const participantCalendars = {};\n const showAdditionalParticipantBookingCalendars = this.selectedConfiguration?.availability?.availability_rules?.availability_method !== 'collective';\n if (availableParticipantOptions && showAdditionalParticipantBookingCalendars) {\n const participants = addedParticipants?.filter(participant => availableParticipantOptions.some(availableParticipant => availableParticipant.email === participant.email));\n const remainingParticipants = addedParticipants?.filter(\n participant => !availableParticipantOptions.some(availableParticipant => availableParticipant.email === participant.email),\n );\n\n // Get the calendar options for each participant with email as the key\n participants?.forEach(participant => {\n const participantOption = availableParticipantOptions?.find(participantOption => participantOption.email === participant.email);\n if (!participantOption) return;\n this.participantDefaultSelectedCalendar[participant.email] = participant.booking?.calendar_id ?? 'primary';\n const calendars = participantOption.calendars ?? [];\n participantCalendars[participant.email] = calendars;\n });\n // If it is round robin config, add the remaining participant calendars to the participantCalendars\n // (Round-robin does not have an organizer, and we filtered out the participants not passed in the participantOptions prop,\n // so we need to add the remaining participants calendars to the participantCalendars)\n remainingParticipants?.forEach(participant => {\n if (participant?.booking?.calendar_id) {\n participantCalendars[participant.email] = this.calendars ?? [{ id: 'primary', name: participant.email }];\n this.participantDefaultSelectedCalendar[participant.email] = participant?.booking?.calendar_id ?? 'primary';\n }\n });\n }\n // Add the organizer's calendars to the participantCalendars\n if (organizer) {\n participantCalendars[organizer.email] = this.calendars ?? [{ id: 'primary', name: organizer.email }];\n this.participantDefaultSelectedCalendar[organizer.email] = organizer?.booking?.calendar_id ?? 'primary';\n }\n return participantCalendars;\n }\n\n // Lifecycle Methods\n connectedCallback() {\n debug('nylas-participant-booking-calendars', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-participant-booking-calendars', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-participant-booking-calendars', 'componentWillLoad');\n }\n\n componentDidLoad() {\n debug('nylas-participant-booking-calendars', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedCalendars = this.setParticipants(this.selectedConfiguration?.participants);\n this.participantCalendars = this.getParticipantCalendarOptions(this.selectedConfiguration?.participants, this.participantOptions);\n } else {\n this.selectedCalendars = this.setParticipants(this.participants);\n this.participantCalendars = this.getParticipantCalendarOptions(this.participants, this.participantOptions);\n }\n }\n\n @Listen('valueChanged')\n handleValueChanged(event: CustomEvent) {\n debug('[nylas-editor-tabs]', 'handleValueChanged', event);\n const { name, value } = event.detail;\n if (!name.startsWith('participant-booking-')) {\n return;\n }\n // Validate the form\n if (!this.bookingCalendarsFormRef.checkValidity()) {\n this.internals.setValidity({ customError: true }, i18next.t('nylasParticipantBookingCalendars.selectAtLeastOneCalendar'));\n return;\n } else {\n this.internals.setValidity({});\n }\n\n const key = name.split('participant-booking-')[1];\n if (!this.selectedCalendars[key]) return;\n this.selectedCalendars[key]['calendar'] = value;\n this.selectedCalendars = { ...this.selectedCalendars };\n\n const participantsCalendars = {};\n Object.keys(this.selectedCalendars).forEach(key => {\n participantsCalendars[key] = this.selectedCalendars[key]?.calendar;\n });\n this.internals.setFormValue(JSON.stringify(participantsCalendars), this.name);\n this.valueChanged.emit({ value: JSON.stringify(participantsCalendars), name: this.name });\n }\n\n setParticipants(participants: Participant[]) {\n const selectedParticipants = {};\n participants?.forEach(participant => {\n if (participant?.booking?.calendar_id) {\n const isOpen = participant.is_organizer ? true : false;\n selectedParticipants[participant.email] = {\n isOpen: isOpen,\n calendar: participant.booking?.calendar_id || 'primary',\n name: participant.name || participant.email,\n };\n }\n });\n return selectedParticipants;\n }\n @RegisterComponent<NylasParticipantBookingCalendars, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-participant-booking-calendars',\n stateToProps: new Map([\n ['schedulerConfig.additionalParticipants', 'participantOptions'],\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class=\"nylas-participant-booking-calendars\" part=\"npbc\">\n <div class=\"header\" part=\"npbc__header\">\n <h3>{i18next.t('nylasParticipantBookingCalendars.headerTitle')}</h3>\n <p>{i18next.t('nylasParticipantBookingCalendars.headerSubTitle')}</p>\n </div>\n <div class=\"content\" part=\"npbc__content\">\n <form ref={el => (this.bookingCalendarsFormRef = el as HTMLFormElement)}>\n {this.participantCalendars &&\n Object.keys(this.participantCalendars).map((key, index) => {\n const participant = this.selectedCalendars[key];\n const participantCalendars = this.participantCalendars[key];\n\n if (!participant || !participant.name) return;\n return (\n <div class=\"participant-container\" part=\"npbc__participant-container\" key={`participant-conatiner-${index}`}>\n <div class=\"participant-title\" part=\"npbc__participant-title\">\n <p>{i18next.t('nylasParticipantBookingCalendars.participantBookingCalendarTitle', { participantName: participant.name })}</p>\n <div class=\"participant-toggle\" part=\"npbc__participant-toggle-container\">\n <span\n class={`chevron ${participant.isOpen ? 'open' : 'closed'}`}\n onClick={() => {\n this.selectedCalendars[key].isOpen = !participant.isOpen;\n this.selectedCalendars = { ...this.selectedCalendars };\n }}\n >\n <chevron-icon width=\"24\" height=\"24\" />\n </span>\n </div>\n </div>\n {participant.isOpen && (\n <nylas-booking-calendar-picker\n key={key}\n name={`participant-booking-${key}`}\n calendars={participantCalendars}\n hideHeader={true}\n defaultBookingCalendar={this.participantDefaultSelectedCalendar[key]}\n />\n )}\n </div>\n );\n })}\n </form>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as debug, e as error } from './p-
|
|
1
|
+
import { a as debug, e as error } from './p-CULO8bTo.js';
|
|
2
2
|
import { j as getElement } from './p-Bht9ktsW.js';
|
|
3
3
|
|
|
4
4
|
function createComponentEvent(instance, registeredComponent, eventName = 'registerComponent') {
|
|
@@ -140,6 +140,6 @@ function RegisterComponent(config) {
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
export { RegisterComponent as R };
|
|
143
|
-
//# sourceMappingURL=p
|
|
143
|
+
//# sourceMappingURL=p-DtDGPXZR.js.map
|
|
144
144
|
|
|
145
|
-
//# sourceMappingURL=p
|
|
145
|
+
//# sourceMappingURL=p-DtDGPXZR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p--4oNPYSm.js","mappings":"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","names":[],"sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise<void>; registerCallback?(): Promise<void> };\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n localPropsToProp?: Map<string, keyof H>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean | ((host: H) => boolean);\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n registerCallback?: () => Promise<void>;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const originalComponentWillLoad = target.componentWillLoad;\n if (!originalComponentWillLoad) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalConnectCallback = target.connectedCallback;\n if (!originalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalDisconnectCallback = target.disconnectedCallback;\n if (!originalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = originalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, then we don't need to do anything\n if (host.dataset.nylasId) {\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = originalComponentWillLoad?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = originalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-DtDGPXZR.js","mappings":"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","names":[],"sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise<void>; registerCallback?(): Promise<void> };\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n localPropsToProp?: Map<string, keyof H>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean | ((host: H) => boolean);\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n registerCallback?: () => Promise<void>;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const originalComponentWillLoad = target.componentWillLoad;\n if (!originalComponentWillLoad) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalConnectCallback = target.connectedCallback;\n if (!originalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalDisconnectCallback = target.disconnectedCallback;\n if (!originalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = originalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, then we don't need to do anything\n if (host.dataset.nylasId) {\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = originalComponentWillLoad?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = originalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
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, b as instance } from './p-
|
|
2
|
+
import { R as RegisterComponent } from './p-DtDGPXZR.js';
|
|
3
|
+
import { a as debug, b as instance } from './p-CULO8bTo.js';
|
|
4
4
|
import { d as defineCustomElement$5 } from './p-PeEnpB8P.js';
|
|
5
5
|
import { d as defineCustomElement$4 } from './p-7S1M5IE9.js';
|
|
6
6
|
import { d as defineCustomElement$3 } from './p-ClTk9Ttz.js';
|
|
@@ -207,6 +207,6 @@ function defineCustomElement() {
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
export { NylasBookingConfirmationType as N, defineCustomElement as d };
|
|
210
|
-
//# sourceMappingURL=p-
|
|
210
|
+
//# sourceMappingURL=p-FoOzqqac.js.map
|
|
211
211
|
|
|
212
|
-
//# sourceMappingURL=p-
|
|
212
|
+
//# sourceMappingURL=p-FoOzqqac.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-xh3aXihe.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.scss?tag=nylas-booking-confirmation-type&encapsulation=shadow","src/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.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-booking-confirmation-type {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin-bottom: 1rem;\n\n .nylas-booking-confirmation-type__dropdown {\n span.label {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--nylas-base-800);\n\n tooltip-component {\n display: flex;\n }\n }\n\n select-dropdown::part(sd_dropdown) {\n width: 100%;\n }\n\n select-dropdown::part(sd_dropdown-button) {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1rem;\n }\n\n select-dropdown::part(sd_dropdown-content) {\n width: 100%;\n max-width: unset;\n }\n\n select-dropdown::part(sd_dropdown-button-selected-label) {\n max-width: calc(100% - 2rem);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } 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 { Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-booking-confirmation-type` component is a UI component that allows the user to choose a custom redirect URL after a booking is confirmed.\n * @part nbct - The custom booking flow container\n * @part nbct__header - The header of the custom booking flow\n * @part nbct__dropdown - The dropdown container\n * @part nbct__dropdown-button - The dropdown button\n * @part nbct__dropdown-content - The dropdown content\n */\n@Component({\n tag: 'nylas-booking-confirmation-type',\n styleUrl: 'nylas-booking-confirmation-type.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasBookingConfirmationType {\n @Element() host!: HTMLNylasBookingConfirmationTypeElement;\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n\n /**\n * @standalone\n * The name of the confirmation redirect link.\n */\n @Prop() name: string = 'confirmation-type';\n /**\n * @standalone\n * The booking type.\n */\n @Prop() bookingType: string = 'booking';\n /**\n * @standalone\n * Show or hide the confirmation type.\n * This prop is automatically determined based on the value of selectedConfiguration in the config,\n * making it unnecessary to set this prop manually.\n * If the configuration is a group configuration, the component will not be shown.\n */\n @Prop() showComponent: boolean = this.selectedConfiguration?.event_booking?.booking_type !== 'custom-confirmation' && this.selectedConfiguration?.type !== 'group';\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 * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The selected bookingType.\n */\n @State() selectedBookingType!: string;\n\n /**\n * The open/close state of the booking confirmation type dropdown.\n */\n @State() showDropdown!: boolean;\n /**\n * This event is fired when the selected bookingType changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\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-booking-confirmation-type', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-booking-confirmation-type', 'selectedConfigurationChangedHandler', newValue);\n if (newValue?.event_booking?.booking_type) {\n this.selectedBookingType = newValue?.event_booking?.booking_type;\n // If the configuration is a group configuration, the component will not be shown.\n this.showDropdown = newValue?.event_booking?.booking_type !== 'custom-confirmation' && !!newValue?.scheduler?.organizer_confirmation_url && newValue?.type !== 'group';\n this.isInternalsAvailable && this.internals.setFormValue(this.selectedBookingType.toString(), this.name);\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 @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-booking-confirmation-type', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-booking-confirmation-type', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-booking-confirmation-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-booking-confirmation-type', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.selectedBookingType = this.bookingType || 'booking';\n this.showDropdown = this.showComponent;\n }\n this.isInternalsAvailable && this.internals.setFormValue(this.selectedBookingType.toString(), this.name);\n }\n\n componentWillUpdate() {\n debug('nylas-booking-confirmation-type', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-booking-confirmation-type', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-booking-confirmation-type', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-booking-confirmation-type', 'componentDidRender');\n }\n\n get isInternalsAvailable() {\n return typeof this.internals.setFormValue === 'function' && typeof this.internals.setFormValue === 'function';\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 @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-booking-confirmation-type', 'nylasFormDropdownChangedHandler', event.detail);\n // Pass as handler so that if event.defaultPrevented by parent app, this will be skipped.\n const valueChanged = (event: CustomEvent<{ value: string; name: string }>) => {\n const { value } = event.detail;\n this.selectedBookingType = value;\n this.internals.setFormValue(value.toString(), this.name);\n };\n this.valueChanged.emit({ ...event.detail, valueChanged });\n }\n\n @RegisterComponent<NylasBookingConfirmationType, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-booking-confirmation-type',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string; name: string; valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChanged } = event.detail;\n // If a handler is passed, call it.\n if (valueChanged) {\n valueChanged(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const bookingOptions = [\n {\n label: i18next.t('nylasBookingConfirmationType.bookingOption', { context: 'booking' }),\n value: 'booking',\n },\n {\n label: i18next.t('nylasBookingConfirmationType.bookingOption', { context: 'organizerConfirmation' }),\n value: 'organizer-confirmation',\n },\n ];\n\n return (\n <Host>\n {this.showDropdown && (\n <div class=\"nylas-booking-confirmation-type\" part=\"nbct\">\n {bookingOptions.length > 0 && (\n <div class=\"nylas-booking-confirmation-type__dropdown\">\n <span class=\"label\">\n {i18next.t('nylasBookingConfirmationType.dropdownLabel')}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasBookingConfirmationType.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n {this.selectedBookingType && (\n <select-dropdown\n name=\"booking-type\"\n options={bookingOptions}\n withSearch={false}\n exportparts=\"sd_dropdown: nbct__dropdown, sd_dropdown-button: nbct__dropdown-button, sd_dropdown-content: nbct__dropdown-content\"\n defaultSelectedOption={bookingOptions.find(cal => cal.value == this.selectedBookingType)}\n themeConfig={this.themeConfig}\n />\n )}\n </div>\n )}\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-FoOzqqac.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.scss?tag=nylas-booking-confirmation-type&encapsulation=shadow","src/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.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-booking-confirmation-type {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin-bottom: 1rem;\n\n .nylas-booking-confirmation-type__dropdown {\n span.label {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--nylas-base-800);\n\n tooltip-component {\n display: flex;\n }\n }\n\n select-dropdown::part(sd_dropdown) {\n width: 100%;\n }\n\n select-dropdown::part(sd_dropdown-button) {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1rem;\n }\n\n select-dropdown::part(sd_dropdown-content) {\n width: 100%;\n max-width: unset;\n }\n\n select-dropdown::part(sd_dropdown-button-selected-label) {\n max-width: calc(100% - 2rem);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } 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 { Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-booking-confirmation-type` component is a UI component that allows the user to choose a custom redirect URL after a booking is confirmed.\n * @part nbct - The custom booking flow container\n * @part nbct__header - The header of the custom booking flow\n * @part nbct__dropdown - The dropdown container\n * @part nbct__dropdown-button - The dropdown button\n * @part nbct__dropdown-content - The dropdown content\n */\n@Component({\n tag: 'nylas-booking-confirmation-type',\n styleUrl: 'nylas-booking-confirmation-type.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasBookingConfirmationType {\n @Element() host!: HTMLNylasBookingConfirmationTypeElement;\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n\n /**\n * @standalone\n * The name of the confirmation redirect link.\n */\n @Prop() name: string = 'confirmation-type';\n /**\n * @standalone\n * The booking type.\n */\n @Prop() bookingType: string = 'booking';\n /**\n * @standalone\n * Show or hide the confirmation type.\n * This prop is automatically determined based on the value of selectedConfiguration in the config,\n * making it unnecessary to set this prop manually.\n * If the configuration is a group configuration, the component will not be shown.\n */\n @Prop() showComponent: boolean = this.selectedConfiguration?.event_booking?.booking_type !== 'custom-confirmation' && this.selectedConfiguration?.type !== 'group';\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 * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The selected bookingType.\n */\n @State() selectedBookingType!: string;\n\n /**\n * The open/close state of the booking confirmation type dropdown.\n */\n @State() showDropdown!: boolean;\n /**\n * This event is fired when the selected bookingType changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\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-booking-confirmation-type', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-booking-confirmation-type', 'selectedConfigurationChangedHandler', newValue);\n if (newValue?.event_booking?.booking_type) {\n this.selectedBookingType = newValue?.event_booking?.booking_type;\n // If the configuration is a group configuration, the component will not be shown.\n this.showDropdown = newValue?.event_booking?.booking_type !== 'custom-confirmation' && !!newValue?.scheduler?.organizer_confirmation_url && newValue?.type !== 'group';\n this.isInternalsAvailable && this.internals.setFormValue(this.selectedBookingType.toString(), this.name);\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 @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-booking-confirmation-type', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-booking-confirmation-type', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-booking-confirmation-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-booking-confirmation-type', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.selectedBookingType = this.bookingType || 'booking';\n this.showDropdown = this.showComponent;\n }\n this.isInternalsAvailable && this.internals.setFormValue(this.selectedBookingType.toString(), this.name);\n }\n\n componentWillUpdate() {\n debug('nylas-booking-confirmation-type', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-booking-confirmation-type', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-booking-confirmation-type', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-booking-confirmation-type', 'componentDidRender');\n }\n\n get isInternalsAvailable() {\n return typeof this.internals.setFormValue === 'function' && typeof this.internals.setFormValue === 'function';\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 @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-booking-confirmation-type', 'nylasFormDropdownChangedHandler', event.detail);\n // Pass as handler so that if event.defaultPrevented by parent app, this will be skipped.\n const valueChanged = (event: CustomEvent<{ value: string; name: string }>) => {\n const { value } = event.detail;\n this.selectedBookingType = value;\n this.internals.setFormValue(value.toString(), this.name);\n };\n this.valueChanged.emit({ ...event.detail, valueChanged });\n }\n\n @RegisterComponent<NylasBookingConfirmationType, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-booking-confirmation-type',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string; name: string; valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChanged } = event.detail;\n // If a handler is passed, call it.\n if (valueChanged) {\n valueChanged(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const bookingOptions = [\n {\n label: i18next.t('nylasBookingConfirmationType.bookingOption', { context: 'booking' }),\n value: 'booking',\n },\n {\n label: i18next.t('nylasBookingConfirmationType.bookingOption', { context: 'organizerConfirmation' }),\n value: 'organizer-confirmation',\n },\n ];\n\n return (\n <Host>\n {this.showDropdown && (\n <div class=\"nylas-booking-confirmation-type\" part=\"nbct\">\n {bookingOptions.length > 0 && (\n <div class=\"nylas-booking-confirmation-type__dropdown\">\n <span class=\"label\">\n {i18next.t('nylasBookingConfirmationType.dropdownLabel')}\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasBookingConfirmationType.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n {this.selectedBookingType && (\n <select-dropdown\n name=\"booking-type\"\n options={bookingOptions}\n withSearch={false}\n exportparts=\"sd_dropdown: nbct__dropdown, sd_dropdown-button: nbct__dropdown-button, sd_dropdown-content: nbct__dropdown-content\"\n defaultSelectedOption={bookingOptions.find(cal => cal.value == this.selectedBookingType)}\n themeConfig={this.themeConfig}\n />\n )}\n </div>\n )}\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
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 { j as dayjs, u as utc, w as timezone, x as addDaysToCurrentDate, b as instance, y as isSameMonth, a as debug, z as getLastDayOfMonth, A as getFirstDayOfMonth, B as isSameDay, C as convertMinutesToHoursAndMinutes, D as translateMonth } from './p-
|
|
2
|
+
import { R as RegisterComponent } from './p-DtDGPXZR.js';
|
|
3
|
+
import { j as dayjs, u as utc, w as timezone, x as addDaysToCurrentDate, b as instance, y as isSameMonth, a as debug, z as getLastDayOfMonth, A as getFirstDayOfMonth, B as isSameDay, C as convertMinutesToHoursAndMinutes, D as translateMonth } from './p-CULO8bTo.js';
|
|
4
4
|
import { d as defineCustomElement$3 } from './p-PeEnpB8P.js';
|
|
5
5
|
import { d as defineCustomElement$2 } from './p-zy6kOSTc.js';
|
|
6
6
|
import { d as defineCustomElement$1 } from './p-Bvymvdqm.js';
|
|
@@ -345,6 +345,6 @@ function defineCustomElement() {
|
|
|
345
345
|
}
|
|
346
346
|
|
|
347
347
|
export { NylasDatePicker as N, defineCustomElement as d };
|
|
348
|
-
//# sourceMappingURL=p-
|
|
348
|
+
//# sourceMappingURL=p-JCwXrScM.js.map
|
|
349
349
|
|
|
350
|
-
//# sourceMappingURL=p-
|
|
350
|
+
//# sourceMappingURL=p-JCwXrScM.js.map
|