@nylas/web-elements 2.5.8 → 2.5.10

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.
Files changed (59) hide show
  1. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +1315 -1315
  2. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +1 -1
  3. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +8 -2
  4. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js.map +1 -1
  5. package/dist/cjs/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.cjs.js.map +1 -1
  6. package/dist/cjs/google-logo-icon_6.cjs.entry.js +8 -7
  7. package/dist/cjs/google-logo-icon_6.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  9. package/dist/cjs/nylas-scheduling.cjs.entry.js +1 -1
  10. package/dist/cjs/{version-COZSykqO.js → version-BcrxszP8.js} +3 -3
  11. package/dist/cjs/{version-COZSykqO.js.map → version-BcrxszP8.js.map} +1 -1
  12. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +8 -2
  13. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js.map +1 -1
  14. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +7 -6
  15. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  16. package/dist/collection/version.js +1 -1
  17. package/dist/collection/version.js.map +1 -1
  18. package/dist/components/nylas-confirmation-email.js +1 -1
  19. package/dist/components/nylas-editor-tabs-group.js +1 -1
  20. package/dist/components/nylas-editor-tabs.js +1 -1
  21. package/dist/components/nylas-scheduler-editor.js +4 -4
  22. package/dist/components/nylas-scheduling.js +1 -1
  23. package/dist/components/{p-Bkt_Yg_U.js → p-C-ErnYFi.js} +3 -3
  24. package/dist/components/{p-Bkt_Yg_U.js.map → p-C-ErnYFi.js.map} +1 -1
  25. package/dist/components/{p-Bx4lojq9.js → p-JpjuLIts.js} +4 -4
  26. package/dist/components/{p-Bx4lojq9.js.map → p-JpjuLIts.js.map} +1 -1
  27. package/dist/components/{p-Dm3gIdGZ.js → p-TOG3UyB_.js} +10 -4
  28. package/dist/components/p-TOG3UyB_.js.map +1 -0
  29. package/dist/components/{p-DC7TgSr7.js → p-s6s0oE_l.js} +11 -10
  30. package/dist/components/p-s6s0oE_l.js.map +1 -0
  31. package/dist/esm/calendar-agenda-fill-icon_39.entry.js +8 -2
  32. package/dist/esm/calendar-agenda-fill-icon_39.entry.js.map +1 -1
  33. package/dist/esm/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.js.map +1 -1
  34. package/dist/esm/google-logo-icon_6.entry.js +8 -7
  35. package/dist/esm/google-logo-icon_6.entry.js.map +1 -1
  36. package/dist/esm/nylas-scheduler-editor.entry.js +1 -1
  37. package/dist/esm/nylas-scheduling.entry.js +1 -1
  38. package/dist/esm/{version-CwWcFRQ4.js → version-BAjkr1GB.js} +3 -3
  39. package/dist/esm/{version-CwWcFRQ4.js.map → version-BAjkr1GB.js.map} +1 -1
  40. package/dist/nylas-web-elements/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.esm.js.map +1 -1
  41. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  42. package/dist/nylas-web-elements/{p-ebdd566e.entry.js → p-0bf7dbfe.entry.js} +2 -2
  43. package/dist/nylas-web-elements/{p-eb7101dd.entry.js → p-2242c1f5.entry.js} +3 -3
  44. package/dist/nylas-web-elements/p-241183a9.entry.js +8 -0
  45. package/dist/nylas-web-elements/p-241183a9.entry.js.map +1 -0
  46. package/dist/nylas-web-elements/p-992af523.entry.js +2 -0
  47. package/dist/nylas-web-elements/p-992af523.entry.js.map +1 -0
  48. package/dist/nylas-web-elements/{p-CwWcFRQ4.js → p-BAjkr1GB.js} +2 -2
  49. package/dist/nylas-web-elements/{p-CwWcFRQ4.js.map → p-BAjkr1GB.js.map} +1 -1
  50. package/dist/types/version.d.ts +1 -1
  51. package/package.json +1 -1
  52. package/dist/components/p-DC7TgSr7.js.map +0 -1
  53. package/dist/components/p-Dm3gIdGZ.js.map +0 -1
  54. package/dist/nylas-web-elements/p-942c1486.entry.js +0 -2
  55. package/dist/nylas-web-elements/p-942c1486.entry.js.map +0 -1
  56. package/dist/nylas-web-elements/p-cc4150a5.entry.js +0 -8
  57. package/dist/nylas-web-elements/p-cc4150a5.entry.js.map +0 -1
  58. /package/dist/nylas-web-elements/{p-ebdd566e.entry.js.map → p-0bf7dbfe.entry.js.map} +0 -0
  59. /package/dist/nylas-web-elements/{p-eb7101dd.entry.js.map → p-2242c1f5.entry.js.map} +0 -0
@@ -4,7 +4,7 @@ var index$1 = require('./index-9TuL48qE.js');
4
4
  var abstractProvider = require('./abstract-provider-EX4lu0u8.js');
5
5
  var nylasApiRequest = require('./nylas-api-request-8qsFHWUt.js');
6
6
  var utils = require('./utils-BDriE9YY.js');
7
- var version = require('./version-COZSykqO.js');
7
+ var version = require('./version-BcrxszP8.js');
8
8
  var index = require('./index-CwlXqyvH.js');
9
9
 
10
10
  utils.dayjs.extend(utils.utc);
@@ -3,7 +3,7 @@
3
3
  var index$1 = require('./index-9TuL48qE.js');
4
4
  var abstractProvider = require('./abstract-provider-EX4lu0u8.js');
5
5
  var utils = require('./utils-BDriE9YY.js');
6
- var version = require('./version-COZSykqO.js');
6
+ var version = require('./version-BcrxszP8.js');
7
7
  var index = require('./index-CwlXqyvH.js');
8
8
  var feedbackSync = require('./feedbackSync-Bcx7mZ9-.js');
9
9
 
@@ -30,11 +30,11 @@ var ComponentErrorType;
30
30
  ComponentErrorType["no_config_id"] = "no_config_id";
31
31
  })(ComponentErrorType || (ComponentErrorType = {}));
32
32
 
33
- const version = '2.5.8';
33
+ const version = '2.5.10';
34
34
 
35
35
  exports.o = o;
36
36
  exports.u = u;
37
37
  exports.version = version;
38
- //# sourceMappingURL=version-COZSykqO.js.map
38
+ //# sourceMappingURL=version-BcrxszP8.js.map
39
39
 
40
- //# sourceMappingURL=version-COZSykqO.js.map
40
+ //# sourceMappingURL=version-BcrxszP8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-COZSykqO.js","sources":["../nylas-js-core/dist/index.es.js","src/types/index.ts","src/version.ts"],"sourcesContent":["var t = Object.defineProperty;\nvar c = (r, n, s) => n in r ? t(r, n, { enumerable: !0, configurable: !0, writable: !0, value: s }) : r[n] = s;\nvar a = (r, n, s) => (c(r, typeof n != \"symbol\" ? n + \"\" : n, s), s);\nvar u = /* @__PURE__ */ ((r) => (r.Error = \"error\", r.Warning = \"warning\", r.Info = \"info\", r.Success = \"success\", r))(u || {});\nconst e = (r) => r !== null && typeof r == \"object\" && \"data\" in r, o = (r) => r !== null && typeof r == \"object\" && \"error\" in r;\nclass E extends Error {\n constructor(s) {\n super(s == null ? void 0 : s.message);\n a(this, \"apiError\");\n this.name = \"NylasAPIError\", this.stack = new Error().stack, this.apiError = s;\n }\n}\nexport {\n u as NotificationType,\n E as NylasAPIError,\n o as isNylasErrorResponse,\n e as isNylasSuccessResponse\n};\n","export interface NylasResponse<Data = any> {\n request_id: string;\n data?: Data;\n error?: {\n message: string;\n type: string;\n };\n}\n\n// Avaliability\nexport interface OpenHours {\n days: number[];\n exDates: string[];\n timezone: string;\n start: string;\n end: string;\n}\n\nexport interface SpecificTimeAvailability {\n date: string;\n start: string;\n end: string;\n}\n\nexport interface MeetingBuffer {\n before: number;\n after: number;\n}\n\n// Scheduling\nexport interface UpdateConfiguration extends Omit<Configuration, 'id'> {}\n\nexport interface ParticipantAvailability {\n calendar_ids: string[];\n open_hours?: OpenHours[];\n}\n\nexport type NylasSchedulerBookingParticipant = { name: string; email: string; nameReadOnly?: boolean; emailReadOnly?: boolean };\n\nexport type NylasSchedulerBookingData = {\n primaryParticipant: NylasSchedulerBookingParticipant;\n startTime?: Date;\n endTime?: Date;\n timezone?: string;\n language?: string;\n guests?: NylasSchedulerBookingParticipant[];\n additionalFields?: Record<\n string,\n {\n value: string;\n type?: string;\n readOnly?: boolean;\n }\n >;\n};\n\nexport type OpenHour = {\n days: number[]; // [1, 2, 3, 4, 5]\n start: string; // \"09:00\"\n end: string; // \"17:00\"\n timezone: string; // \"America/Los_Angeles\"\n};\n\nexport type Timeslot = {\n start_time: Date;\n end_time: Date;\n emails?: string[];\n capacity?: number;\n event_id?: string;\n master_id?: string;\n calendar_id?: string;\n};\n\nexport type ThemeConfig = Partial<{\n '--nylas-primary': string;\n '--nylas-info': string;\n '--nylas-success': string;\n '--nylas-warning': string;\n '--nylas-error': string;\n '--nylas-error-pressed': string;\n '--nylas-base-0': string;\n '--nylas-base-25': string;\n '--nylas-base-50': string;\n '--nylas-base-100': string;\n '--nylas-base-200': string;\n '--nylas-base-300': string;\n '--nylas-base-400': string;\n '--nylas-base-500': string;\n '--nylas-base-600': string;\n '--nylas-base-700': string;\n '--nylas-base-800': string;\n '--nylas-base-900': string;\n '--nylas-base-950': string;\n '--nylas-color-blue-50': string;\n '--nylas-color-blue-100': string;\n '--nylas-color-blue-300': string;\n '--nylas-color-blue-500': string;\n '--nylas-color-blue-700': string;\n '--nylas-color-blue-900': string;\n '--nylas-color-red-50': string;\n '--nylas-color-red-100': string;\n '--nylas-color-red-300': string;\n '--nylas-color-red-500': string;\n '--nylas-color-red-700': string;\n '--nylas-color-red-900': string;\n '--nylas-color-green-50': string;\n '--nylas-color-green-100': string;\n '--nylas-color-green-300': string;\n '--nylas-color-green-500': string;\n '--nylas-color-green-700': string;\n '--nylas-color-green-900': string;\n '--nylas-color-yellow-50': string;\n '--nylas-color-yellow-100': string;\n '--nylas-color-yellow-300': string;\n '--nylas-color-yellow-500': string;\n '--nylas-color-yellow-700': string;\n '--nylas-color-yellow-900': string;\n '--nylas-color-purple-50': string;\n '--nylas-color-purple-100': string;\n '--nylas-color-purple-300': string;\n '--nylas-color-purple-500': string;\n '--nylas-color-purple-700': string;\n '--nylas-color-purple-900': string;\n '--nylas-color-sky-50': string;\n '--nylas-color-sky-100': string;\n '--nylas-color-sky-300': string;\n '--nylas-color-sky-500': string;\n '--nylas-color-sky-700': string;\n '--nylas-color-sky-900': string;\n '--nylas-color-black': string;\n '--nylas-color-grey-900': string;\n '--nylas-color-grey-800': string;\n '--nylas-color-grey-700': string;\n '--nylas-color-grey-600': string;\n '--nylas-color-grey-500': string;\n '--nylas-color-grey-400': string;\n '--nylas-color-grey-300': string;\n '--nylas-color-grey-200': string;\n '--nylas-color-grey-100': string;\n '--nylas-color-grey-50': string;\n '--nylas-color-white': string;\n '--nylas-font-family': string;\n '--nylas-font-size': string;\n '--nylas-border-radius': string;\n '--nylas-border-radius-2x': string;\n '--nylas-border-radius-3x': string;\n}>;\n\nexport enum NotificationType {\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Success = 'success',\n}\n\nexport type Notification = {\n id: string;\n type: NotificationType;\n title: string;\n code?: number;\n category: string;\n description?: string;\n ttl?: number | 'none';\n};\n\nexport type BookingType = 'booking' | 'organizer-confirmation' | 'custom-confirmation';\n\nexport type AvailabilityMethod = 'max-fairness' | 'max-availability' | 'collective';\n\nexport type ConferenceProvider = 'GoogleMeetConferenceProvider' | 'MicrosoftTeamsConferenceProvider' | 'ZoomConferenceProvider' | 'OnlineMeetingProviderMicrosoftTeams';\n\nexport type ReminderMethod = 'email' | 'webhook';\n\nexport interface Rules {\n availability_method: AvailabilityMethod;\n buffer: MeetingBuffer;\n default_open_hours: OpenHours[];\n round_robin_group_id: string;\n}\n\nexport interface ConferenceDetail {\n meeting_code?: string; // zoom, GTM, microsoft teams\n password?: string; // zoom, webex\n url?: string; // zoom, webex, GTM, meet, microsoft teams\n pin?: string; // webex, meet\n phone?: string[]; // GTM, meet, microsoft teams\n}\n\nexport interface Conference {\n provider?: ConferenceProvider;\n details?: ConferenceDetail;\n autocreate?: { [key: string]: any };\n}\n\nexport interface ParticipantBooking {\n calendar_id: string;\n}\n\nexport interface Participant {\n email: string;\n name?: string;\n is_organizer?: boolean;\n availability?: ParticipantAvailability;\n booking?: ParticipantBooking;\n specific_time_availability?: SpecificTimeAvailability[];\n timezone?: string;\n}\n\nexport interface EventReminder {\n type: ReminderMethod;\n minutes_before_event: number;\n recipient?: string;\n email_subject?: string;\n}\n\nexport interface Availability {\n duration_minutes: number;\n interval_minutes?: number;\n round_to?: number;\n availability_rules?: Rules;\n}\n\nexport interface NotetakerActionItemsSettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerSummarySettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerMeetingSettings {\n action_items?: boolean;\n action_items_settings?: NotetakerActionItemsSettings;\n audio_recording?: boolean;\n summary?: boolean;\n summary_settings?: NotetakerSummarySettings;\n transcription?: boolean;\n video_recording?: boolean;\n}\n\nexport interface Notetaker {\n visible?: boolean; // default is false\n enabled?: boolean; // default is false\n name?: string;\n meeting_settings?: NotetakerMeetingSettings;\n}\n\nexport interface EventBooking {\n title: string;\n description?: string;\n location?: string;\n timezone?: string;\n booking_type: BookingType;\n conferencing?: Conference;\n hide_participants?: boolean;\n disable_emails?: boolean;\n reminders?: EventReminder[];\n notetaker?: Notetaker;\n}\n\nexport interface Appearance {\n color?: string;\n submit_button_label?: string;\n thank_you_message?: string;\n company_logo_url?: string;\n}\n\nexport interface Scheduler {\n available_days_in_future?: number;\n min_cancellation_notice: number;\n min_booking_notice?: number;\n rescheduling_url?: string;\n cancellation_url?: string;\n organizer_confirmation_url?: string;\n cancellation_policy?: string;\n hide_additional_guests?: boolean;\n hide_cancellation_options?: boolean;\n hide_rescheduling_options?: boolean;\n additional_fields?: Record<string, AdditionalFields>;\n email_template?: EmailTemplate;\n confirmation_redirect_url?: string;\n}\nexport interface AdditionalFields {\n type: string;\n required: boolean;\n order: number;\n options?: string[];\n label?: string;\n default?: string;\n}\n\nexport interface EmailTemplate {\n logo: string;\n booking_confirmed: BookingConfirmed;\n show_nylas_branding: boolean;\n organizer_locale: string;\n}\n\nexport interface BookingConfirmed {\n title: string;\n body: string;\n}\n\nexport interface Configuration {\n id: string;\n version: string;\n type?: string;\n requires_session_auth?: boolean;\n participants: Participant[];\n availability: Availability;\n event_booking: EventBooking;\n scheduler: Partial<Scheduler>;\n slug: string;\n appearance: Appearance;\n name: string;\n}\n\nexport interface GroupBooking {\n booking_type: BookingType; // Only 'booking' is supported\n disable_emails?: boolean;\n reminders?: EventReminder[];\n conferencing?: Conference;\n calendar_id: string;\n default_capacity: number;\n}\n\nexport interface GroupConfiguration {\n id: string;\n name: string;\n slug: string;\n requires_session_auth?: boolean;\n type: 'group';\n group_booking: GroupBooking;\n scheduler: Scheduler;\n appearance: Appearance;\n}\n\nexport interface Creator {\n name: string;\n email: string;\n}\nexport interface AdditionalParticipant {\n name: string;\n email: string;\n grant_id?: string;\n calendars: {\n id: string;\n name: string;\n object?: 'calendar';\n is_primary?: boolean;\n is_owned_by_user?: boolean;\n read_only?: boolean;\n timezone?: string;\n }[];\n}\n\n/**\n * Parameters for fetching participant info when loading an existing config for edit.\n * Used when the config has participants (emails) but full AdditionalParticipant\n * data (calendars, etc.) needs to be fetched from an external source.\n */\nexport interface ParticipantFetchParams {\n /** Emails of participants to fetch full info for */\n emails: string[];\n /** Optional grant ID to scope the fetch (e.g. for multi-account) */\n grantId?: string;\n}\n\n/**\n * Callback to fetch full participant info by emails.\n * Called when loading an existing config for edit.\n */\nexport type ParticipantFetch = (params: ParticipantFetchParams) => Promise<AdditionalParticipant[]>;\n\n/**\n * Callback to search participants by query (for autocomplete).\n */\nexport type ParticipantSearch = (query: string) => Promise<AdditionalParticipant[]>;\n\nexport interface GroupEvent {\n id?: string;\n title: string;\n busy: boolean;\n participants: NylasSchedulerBookingParticipant[];\n resources: {\n name: string;\n email: string;\n }[];\n description: string;\n when: {\n start_time: number;\n end_time: number;\n start_timezone?: string;\n end_timezone?: string;\n };\n location: string;\n recurrence: string[];\n capacity: number;\n}\n\nexport type RecurrenceUpdateOption = 'this' | 'future' | 'all';\nexport type RecurrenceDeleteOption = 'this' | 'future' | 'all';\n\nexport type Snapshot = {\n busy: boolean;\n calendar_id: string;\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: {\n email: string;\n status: string;\n }[];\n resources: any[];\n read_only: boolean;\n recurrence: string[];\n reminders: {\n use_default: boolean;\n overrides: any[];\n };\n title: string;\n description?: string;\n location?: string;\n conferencing?: Conference;\n visibility: string;\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n grant_id: string;\n id: string;\n object: string;\n status: string;\n when: {\n start_timezone: string;\n end_timezone: string;\n object: string;\n start_time: number; // Unix timestamp\n end_time: number; // Unix timestamp\n };\n created_at: number; // Unix timestamp\n updated_at: number; // Unix timestamp\n};\n\nexport interface GroupEventAPIData {\n event: EventDetails;\n group_event_info?: GroupEventInfo;\n}\n\nexport type EventDetails = {\n busy: boolean;\n calendar_id: string;\n conferencing: {\n provider: ConferenceProvider;\n details: {\n meeting_code: string;\n url: string;\n pin: string;\n phone: string[];\n };\n };\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: Array<{\n email: string;\n status: 'yes' | 'no' | 'noreply';\n comment?: string;\n }>;\n resources: string[];\n read_only: boolean;\n reminders: {\n use_default: boolean;\n overrides: Array<{\n method?: string;\n minutes?: number;\n }>;\n };\n title: string;\n description?: string;\n location?: string;\n visibility: 'default' | 'public' | 'private';\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n master_event_id: string;\n color_id: string;\n grant_id: string;\n id: string;\n object: 'event';\n status: 'confirmed' | 'tentative' | 'cancelled';\n when: {\n start_timezone: string;\n end_timezone: string;\n object: 'timespan';\n start_time: number;\n end_time: number;\n };\n created_at: number;\n updated_at: number;\n original_start_time: number;\n};\n\nexport type GroupEventInfo = {\n event_id: string;\n calendar_id: string;\n master_id: string;\n config_id: string;\n capacity: number;\n type: 'updated_event' | 'single_event' | 'master_event';\n booked: boolean;\n finished: boolean;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n snapshot: any | null;\n snapshot_expires_at: number;\n rrule: string[] | null;\n exceptions: {\n event_id: string;\n capacity: number;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n }[];\n};\n\nexport type ImportGroupEventDetails = {\n event_id: string;\n calendar_id: string;\n capacity: number;\n participants: Participant[];\n organizer: {\n name: string;\n email: string;\n };\n};\n\nexport type ImportGroupEventResponse = {\n imported_events: string[];\n import_failed: {\n event_id: string;\n reason: string;\n }[];\n};\n\nexport enum ErrorCategory {\n Component = 'component',\n Api = 'api',\n Auth = 'auth',\n}\n\nexport interface ErrorDetails {\n title: string;\n message: string;\n category: ErrorCategory;\n}\n\nexport enum ComponentErrorType {\n endtime_not_in_future = 'endtime_not_in_future',\n no_booking_info = 'no_booking_info',\n no_timeslot_selected = 'no_timeslot_selected',\n no_timezone_selected = 'no_timezone_selected',\n no_booking_id = 'no_booking_id',\n no_salt = 'no_salt',\n invalid_start_time = 'invalid_start_time',\n invalid_end_time = 'invalid_end_time',\n invalid_timezone = 'invalid_timezone',\n no_config_id = 'no_config_id',\n}\n\nexport interface KeyPoint {\n time: number;\n text: string;\n active?: boolean;\n}\n","export const version = '2.5.8';\n"],"names":["NotificationType","ErrorCategory"],"mappings":";;AAGG,IAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACzH,MAA+D,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,IAAI;;ACgJpHA;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALWA,wBAAgB,KAAhBA,wBAAgB,GAK3B,EAAA,CAAA,CAAA;AAwZWC;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAJWA,qBAAa,KAAbA,qBAAa,GAIxB,EAAA,CAAA,CAAA;AAQD,IAAY,kBAWX;AAXD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AAC/C,IAAA,kBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,kBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,kBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC/B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,GAW7B,EAAA,CAAA,CAAA;;ACxkBM,MAAM,OAAO,GAAG;;;;;;"}
1
+ {"version":3,"file":"version-BcrxszP8.js","sources":["../nylas-js-core/dist/index.es.js","src/types/index.ts","src/version.ts"],"sourcesContent":["var t = Object.defineProperty;\nvar c = (r, n, s) => n in r ? t(r, n, { enumerable: !0, configurable: !0, writable: !0, value: s }) : r[n] = s;\nvar a = (r, n, s) => (c(r, typeof n != \"symbol\" ? n + \"\" : n, s), s);\nvar u = /* @__PURE__ */ ((r) => (r.Error = \"error\", r.Warning = \"warning\", r.Info = \"info\", r.Success = \"success\", r))(u || {});\nconst e = (r) => r !== null && typeof r == \"object\" && \"data\" in r, o = (r) => r !== null && typeof r == \"object\" && \"error\" in r;\nclass E extends Error {\n constructor(s) {\n super(s == null ? void 0 : s.message);\n a(this, \"apiError\");\n this.name = \"NylasAPIError\", this.stack = new Error().stack, this.apiError = s;\n }\n}\nexport {\n u as NotificationType,\n E as NylasAPIError,\n o as isNylasErrorResponse,\n e as isNylasSuccessResponse\n};\n","export interface NylasResponse<Data = any> {\n request_id: string;\n data?: Data;\n error?: {\n message: string;\n type: string;\n };\n}\n\n// Avaliability\nexport interface OpenHours {\n days: number[];\n exDates: string[];\n timezone: string;\n start: string;\n end: string;\n}\n\nexport interface SpecificTimeAvailability {\n date: string;\n start: string;\n end: string;\n}\n\nexport interface MeetingBuffer {\n before: number;\n after: number;\n}\n\n// Scheduling\nexport interface UpdateConfiguration extends Omit<Configuration, 'id'> {}\n\nexport interface ParticipantAvailability {\n calendar_ids: string[];\n open_hours?: OpenHours[];\n}\n\nexport type NylasSchedulerBookingParticipant = { name: string; email: string; nameReadOnly?: boolean; emailReadOnly?: boolean };\n\nexport type NylasSchedulerBookingData = {\n primaryParticipant: NylasSchedulerBookingParticipant;\n startTime?: Date;\n endTime?: Date;\n timezone?: string;\n language?: string;\n guests?: NylasSchedulerBookingParticipant[];\n additionalFields?: Record<\n string,\n {\n value: string;\n type?: string;\n readOnly?: boolean;\n }\n >;\n};\n\nexport type OpenHour = {\n days: number[]; // [1, 2, 3, 4, 5]\n start: string; // \"09:00\"\n end: string; // \"17:00\"\n timezone: string; // \"America/Los_Angeles\"\n};\n\nexport type Timeslot = {\n start_time: Date;\n end_time: Date;\n emails?: string[];\n capacity?: number;\n event_id?: string;\n master_id?: string;\n calendar_id?: string;\n};\n\nexport type ThemeConfig = Partial<{\n '--nylas-primary': string;\n '--nylas-info': string;\n '--nylas-success': string;\n '--nylas-warning': string;\n '--nylas-error': string;\n '--nylas-error-pressed': string;\n '--nylas-base-0': string;\n '--nylas-base-25': string;\n '--nylas-base-50': string;\n '--nylas-base-100': string;\n '--nylas-base-200': string;\n '--nylas-base-300': string;\n '--nylas-base-400': string;\n '--nylas-base-500': string;\n '--nylas-base-600': string;\n '--nylas-base-700': string;\n '--nylas-base-800': string;\n '--nylas-base-900': string;\n '--nylas-base-950': string;\n '--nylas-color-blue-50': string;\n '--nylas-color-blue-100': string;\n '--nylas-color-blue-300': string;\n '--nylas-color-blue-500': string;\n '--nylas-color-blue-700': string;\n '--nylas-color-blue-900': string;\n '--nylas-color-red-50': string;\n '--nylas-color-red-100': string;\n '--nylas-color-red-300': string;\n '--nylas-color-red-500': string;\n '--nylas-color-red-700': string;\n '--nylas-color-red-900': string;\n '--nylas-color-green-50': string;\n '--nylas-color-green-100': string;\n '--nylas-color-green-300': string;\n '--nylas-color-green-500': string;\n '--nylas-color-green-700': string;\n '--nylas-color-green-900': string;\n '--nylas-color-yellow-50': string;\n '--nylas-color-yellow-100': string;\n '--nylas-color-yellow-300': string;\n '--nylas-color-yellow-500': string;\n '--nylas-color-yellow-700': string;\n '--nylas-color-yellow-900': string;\n '--nylas-color-purple-50': string;\n '--nylas-color-purple-100': string;\n '--nylas-color-purple-300': string;\n '--nylas-color-purple-500': string;\n '--nylas-color-purple-700': string;\n '--nylas-color-purple-900': string;\n '--nylas-color-sky-50': string;\n '--nylas-color-sky-100': string;\n '--nylas-color-sky-300': string;\n '--nylas-color-sky-500': string;\n '--nylas-color-sky-700': string;\n '--nylas-color-sky-900': string;\n '--nylas-color-black': string;\n '--nylas-color-grey-900': string;\n '--nylas-color-grey-800': string;\n '--nylas-color-grey-700': string;\n '--nylas-color-grey-600': string;\n '--nylas-color-grey-500': string;\n '--nylas-color-grey-400': string;\n '--nylas-color-grey-300': string;\n '--nylas-color-grey-200': string;\n '--nylas-color-grey-100': string;\n '--nylas-color-grey-50': string;\n '--nylas-color-white': string;\n '--nylas-font-family': string;\n '--nylas-font-size': string;\n '--nylas-border-radius': string;\n '--nylas-border-radius-2x': string;\n '--nylas-border-radius-3x': string;\n}>;\n\nexport enum NotificationType {\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Success = 'success',\n}\n\nexport type Notification = {\n id: string;\n type: NotificationType;\n title: string;\n code?: number;\n category: string;\n description?: string;\n ttl?: number | 'none';\n};\n\nexport type BookingType = 'booking' | 'organizer-confirmation' | 'custom-confirmation';\n\nexport type AvailabilityMethod = 'max-fairness' | 'max-availability' | 'collective';\n\nexport type ConferenceProvider = 'GoogleMeetConferenceProvider' | 'MicrosoftTeamsConferenceProvider' | 'ZoomConferenceProvider' | 'OnlineMeetingProviderMicrosoftTeams';\n\nexport type ReminderMethod = 'email' | 'webhook';\n\nexport interface Rules {\n availability_method: AvailabilityMethod;\n buffer: MeetingBuffer;\n default_open_hours: OpenHours[];\n round_robin_group_id: string;\n}\n\nexport interface ConferenceDetail {\n meeting_code?: string; // zoom, GTM, microsoft teams\n password?: string; // zoom, webex\n url?: string; // zoom, webex, GTM, meet, microsoft teams\n pin?: string; // webex, meet\n phone?: string[]; // GTM, meet, microsoft teams\n}\n\nexport interface Conference {\n provider?: ConferenceProvider;\n details?: ConferenceDetail;\n autocreate?: { [key: string]: any };\n}\n\nexport interface ParticipantBooking {\n calendar_id: string;\n}\n\nexport interface Participant {\n email: string;\n name?: string;\n is_organizer?: boolean;\n availability?: ParticipantAvailability;\n booking?: ParticipantBooking;\n specific_time_availability?: SpecificTimeAvailability[];\n timezone?: string;\n}\n\nexport interface EventReminder {\n type: ReminderMethod;\n minutes_before_event: number;\n recipient?: string;\n email_subject?: string;\n}\n\nexport interface Availability {\n duration_minutes: number;\n interval_minutes?: number;\n round_to?: number;\n availability_rules?: Rules;\n}\n\nexport interface NotetakerActionItemsSettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerSummarySettings {\n custom_instructions?: string;\n}\n\nexport interface NotetakerMeetingSettings {\n action_items?: boolean;\n action_items_settings?: NotetakerActionItemsSettings;\n audio_recording?: boolean;\n summary?: boolean;\n summary_settings?: NotetakerSummarySettings;\n transcription?: boolean;\n video_recording?: boolean;\n}\n\nexport interface Notetaker {\n visible?: boolean; // default is false\n enabled?: boolean; // default is false\n name?: string;\n meeting_settings?: NotetakerMeetingSettings;\n}\n\nexport interface EventBooking {\n title: string;\n description?: string;\n location?: string;\n timezone?: string;\n booking_type: BookingType;\n conferencing?: Conference;\n hide_participants?: boolean;\n disable_emails?: boolean;\n reminders?: EventReminder[];\n notetaker?: Notetaker;\n}\n\nexport interface Appearance {\n color?: string;\n submit_button_label?: string;\n thank_you_message?: string;\n company_logo_url?: string;\n}\n\nexport interface Scheduler {\n available_days_in_future?: number;\n min_cancellation_notice: number;\n min_booking_notice?: number;\n rescheduling_url?: string;\n cancellation_url?: string;\n organizer_confirmation_url?: string;\n cancellation_policy?: string;\n hide_additional_guests?: boolean;\n hide_cancellation_options?: boolean;\n hide_rescheduling_options?: boolean;\n additional_fields?: Record<string, AdditionalFields>;\n email_template?: EmailTemplate;\n confirmation_redirect_url?: string;\n}\nexport interface AdditionalFields {\n type: string;\n required: boolean;\n order: number;\n options?: string[];\n label?: string;\n default?: string;\n}\n\nexport interface EmailTemplate {\n logo: string;\n booking_confirmed: BookingConfirmed;\n show_nylas_branding: boolean;\n organizer_locale: string;\n}\n\nexport interface BookingConfirmed {\n title: string;\n body: string;\n}\n\nexport interface Configuration {\n id: string;\n version: string;\n type?: string;\n requires_session_auth?: boolean;\n participants: Participant[];\n availability: Availability;\n event_booking: EventBooking;\n scheduler: Partial<Scheduler>;\n slug: string;\n appearance: Appearance;\n name: string;\n}\n\nexport interface GroupBooking {\n booking_type: BookingType; // Only 'booking' is supported\n disable_emails?: boolean;\n reminders?: EventReminder[];\n conferencing?: Conference;\n calendar_id: string;\n default_capacity: number;\n}\n\nexport interface GroupConfiguration {\n id: string;\n name: string;\n slug: string;\n requires_session_auth?: boolean;\n type: 'group';\n group_booking: GroupBooking;\n scheduler: Scheduler;\n appearance: Appearance;\n}\n\nexport interface Creator {\n name: string;\n email: string;\n}\nexport interface AdditionalParticipant {\n name: string;\n email: string;\n grant_id?: string;\n calendars: {\n id: string;\n name: string;\n object?: 'calendar';\n is_primary?: boolean;\n is_owned_by_user?: boolean;\n read_only?: boolean;\n timezone?: string;\n }[];\n}\n\n/**\n * Parameters for fetching participant info when loading an existing config for edit.\n * Used when the config has participants (emails) but full AdditionalParticipant\n * data (calendars, etc.) needs to be fetched from an external source.\n */\nexport interface ParticipantFetchParams {\n /** Emails of participants to fetch full info for */\n emails: string[];\n /** Optional grant ID to scope the fetch (e.g. for multi-account) */\n grantId?: string;\n}\n\n/**\n * Callback to fetch full participant info by emails.\n * Called when loading an existing config for edit.\n */\nexport type ParticipantFetch = (params: ParticipantFetchParams) => Promise<AdditionalParticipant[]>;\n\n/**\n * Callback to search participants by query (for autocomplete).\n */\nexport type ParticipantSearch = (query: string) => Promise<AdditionalParticipant[]>;\n\nexport interface GroupEvent {\n id?: string;\n title: string;\n busy: boolean;\n participants: NylasSchedulerBookingParticipant[];\n resources: {\n name: string;\n email: string;\n }[];\n description: string;\n when: {\n start_time: number;\n end_time: number;\n start_timezone?: string;\n end_timezone?: string;\n };\n location: string;\n recurrence: string[];\n capacity: number;\n}\n\nexport type RecurrenceUpdateOption = 'this' | 'future' | 'all';\nexport type RecurrenceDeleteOption = 'this' | 'future' | 'all';\n\nexport type Snapshot = {\n busy: boolean;\n calendar_id: string;\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: {\n email: string;\n status: string;\n }[];\n resources: any[];\n read_only: boolean;\n recurrence: string[];\n reminders: {\n use_default: boolean;\n overrides: any[];\n };\n title: string;\n description?: string;\n location?: string;\n conferencing?: Conference;\n visibility: string;\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n grant_id: string;\n id: string;\n object: string;\n status: string;\n when: {\n start_timezone: string;\n end_timezone: string;\n object: string;\n start_time: number; // Unix timestamp\n end_time: number; // Unix timestamp\n };\n created_at: number; // Unix timestamp\n updated_at: number; // Unix timestamp\n};\n\nexport interface GroupEventAPIData {\n event: EventDetails;\n group_event_info?: GroupEventInfo;\n}\n\nexport type EventDetails = {\n busy: boolean;\n calendar_id: string;\n conferencing: {\n provider: ConferenceProvider;\n details: {\n meeting_code: string;\n url: string;\n pin: string;\n phone: string[];\n };\n };\n hide_participants: boolean;\n ical_uid: string;\n organizer: {\n name: string;\n email: string;\n };\n participants: Array<{\n email: string;\n status: 'yes' | 'no' | 'noreply';\n comment?: string;\n }>;\n resources: string[];\n read_only: boolean;\n reminders: {\n use_default: boolean;\n overrides: Array<{\n method?: string;\n minutes?: number;\n }>;\n };\n title: string;\n description?: string;\n location?: string;\n visibility: 'default' | 'public' | 'private';\n creator: {\n name: string;\n email: string;\n };\n html_link: string;\n master_event_id: string;\n color_id: string;\n grant_id: string;\n id: string;\n object: 'event';\n status: 'confirmed' | 'tentative' | 'cancelled';\n when: {\n start_timezone: string;\n end_timezone: string;\n object: 'timespan';\n start_time: number;\n end_time: number;\n };\n created_at: number;\n updated_at: number;\n original_start_time: number;\n};\n\nexport type GroupEventInfo = {\n event_id: string;\n calendar_id: string;\n master_id: string;\n config_id: string;\n capacity: number;\n type: 'updated_event' | 'single_event' | 'master_event';\n booked: boolean;\n finished: boolean;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n snapshot: any | null;\n snapshot_expires_at: number;\n rrule: string[] | null;\n exceptions: {\n event_id: string;\n capacity: number;\n participants: Array<{\n email: string;\n is_organizer: boolean;\n name: string;\n timezone: string;\n }>;\n }[];\n};\n\nexport type ImportGroupEventDetails = {\n event_id: string;\n calendar_id: string;\n capacity: number;\n participants: Participant[];\n organizer: {\n name: string;\n email: string;\n };\n};\n\nexport type ImportGroupEventResponse = {\n imported_events: string[];\n import_failed: {\n event_id: string;\n reason: string;\n }[];\n};\n\nexport enum ErrorCategory {\n Component = 'component',\n Api = 'api',\n Auth = 'auth',\n}\n\nexport interface ErrorDetails {\n title: string;\n message: string;\n category: ErrorCategory;\n}\n\nexport enum ComponentErrorType {\n endtime_not_in_future = 'endtime_not_in_future',\n no_booking_info = 'no_booking_info',\n no_timeslot_selected = 'no_timeslot_selected',\n no_timezone_selected = 'no_timezone_selected',\n no_booking_id = 'no_booking_id',\n no_salt = 'no_salt',\n invalid_start_time = 'invalid_start_time',\n invalid_end_time = 'invalid_end_time',\n invalid_timezone = 'invalid_timezone',\n no_config_id = 'no_config_id',\n}\n\nexport interface KeyPoint {\n time: number;\n text: string;\n active?: boolean;\n}\n","export const version = '2.5.10';\n"],"names":["NotificationType","ErrorCategory"],"mappings":";;AAGG,IAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACzH,MAA+D,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,IAAI;;ACgJpHA;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALWA,wBAAgB,KAAhBA,wBAAgB,GAK3B,EAAA,CAAA,CAAA;AAwZWC;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAJWA,qBAAa,KAAbA,qBAAa,GAIxB,EAAA,CAAA,CAAA;AAQD,IAAY,kBAWX;AAXD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AAC/C,IAAA,kBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,kBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,kBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC/B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,GAW7B,EAAA,CAAA,CAAA;;ACxkBM,MAAM,OAAO,GAAG;;;;;;"}
@@ -58,6 +58,9 @@ export class NylasConfirmationEmail {
58
58
  }
59
59
  this.isConfirmationEmailOpen = this.isOpen;
60
60
  this.participantsState = this.participants;
61
+ if (typeof this.internals?.setFormValue === 'function') {
62
+ this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);
63
+ }
61
64
  }
62
65
  }
63
66
  elementNameChangedHandler(newValue) {
@@ -75,6 +78,9 @@ export class NylasConfirmationEmail {
75
78
  }
76
79
  this.isConfirmationEmailOpen = !newValue?.event_booking?.reminders?.length;
77
80
  this.participantsState = newValue?.participants || this.participants;
81
+ if (typeof this.internals?.setFormValue === 'function') {
82
+ this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);
83
+ }
78
84
  }
79
85
  nylasBrandingChangedHandler(newValue) {
80
86
  debug('nylas-confirmation-email', 'nylasBrandingChangedHandler', newValue);
@@ -158,9 +164,9 @@ export class NylasConfirmationEmail {
158
164
  render() {
159
165
  const organizer = this.participantsState.find(p => p.is_organizer);
160
166
  const organizerName = organizer?.name || organizer?.email;
161
- return (h(Host, { key: 'a631b4cf3ceb83676fa4b493eebe0655bc8f6a67' }, h("div", { key: '505a8e42b194300c79582ff7b781b3b658a5a91d', class: "nylas-confirmation-email", part: "nce" }, h("div", { key: '492639b0fc0f6dd78517138eeaba91b9a4c8b2b7', class: "header", part: "nce__header" }, h("div", { key: '5f3189bb7cf2041a0478a50b6bd7ffe7642eb16f' }, h("h3", { key: 'd0a73cbe1841af759184f1b57768b536364409b9' }, this.confirmationEmail?.booking_confirmed?.title || organizerName
167
+ return (h(Host, { key: '344808e8373d6a890feb576c2d4133fcfae3ba6f' }, h("div", { key: 'badfe491592142dd0e5c5b345f3c91770df3d86d', class: "nylas-confirmation-email", part: "nce" }, h("div", { key: '64d6dda525037fdd282d57611cebad8dde327c61', class: "header", part: "nce__header" }, h("div", { key: '8055a976a4cdcf74b03181a591f685f790611918' }, h("h3", { key: '4145e04b902254696d5e08594fe93c563c024dea' }, this.confirmationEmail?.booking_confirmed?.title || organizerName
162
168
  ? i18next.t('nylasConfirmationEmail.headerTitle_withOrganizer', { organizerName: organizerName })
163
- : i18next.t('nylasConfirmationEmail.headerTitle')), h("p", { key: 'f402a91cd2b82679331274617c9dfe68cc80e4da' }, i18next.t('nylasConfirmationEmail.headerSubTitle'))), this.isConfirmationEmailOpen ? (h("div", { class: "confirmation-email-toggle", part: "nce__confirmation-email-toggle--container" }, h("span", { class: `chevron ${this.isConfirmationEmailOpen ? 'open' : 'closed'} `, onClick: () => this.toggleConfirmationEmail() }, h("chevron-icon", { width: "24", height: "24" })))) : (h("button-component", { variant: 'basic', clickHandler: event => {
169
+ : i18next.t('nylasConfirmationEmail.headerTitle')), h("p", { key: '51e76e9ea405e8048c56b1a40ba749dbc2c29739' }, i18next.t('nylasConfirmationEmail.headerSubTitle'))), this.isConfirmationEmailOpen ? (h("div", { class: "confirmation-email-toggle", part: "nce__confirmation-email-toggle--container" }, h("span", { class: `chevron ${this.isConfirmationEmailOpen ? 'open' : 'closed'} `, onClick: () => this.toggleConfirmationEmail() }, h("chevron-icon", { width: "24", height: "24" })))) : (h("button-component", { variant: 'basic', clickHandler: event => {
164
170
  event.preventDefault();
165
171
  this.toggleConfirmationEmail();
166
172
  } }, h("edit-icon", { width: "16", height: "16" }), i18next.t('nylasConfirmationEmail.editButtonText')))), this.isConfirmationEmailOpen ? (h("div", { class: "nylas-confirmation-email__body", part: "nce__body" }, h("div", { class: "nylas-confirmation-email__section" }, this.nylasBranding && (h("div", { class: "nylas-confirmation-email__row" }, h("label", null, i18next.t('nylasConfirmationEmail.nylasBranding.label'), h("span", { class: "label-icon" }, h("tooltip-component", null, h("info-icon", { slot: "tooltip-icon" }), h("span", { slot: "tooltip-content" }, i18next.t('nylasConfirmationEmail.nylasBranding.tooltip.desc'))))), h("toggle-switch", { exportparts: "ts_label: nce__toggle-label, ts_input: nce_toggle-input, ts_slider: nce_toggle-slider", name: `confirmation-email-show-branding`, checked: this.confirmationEmail?.show_nylas_branding, themeConfig: this.themeConfig }))), h("div", { class: "nylas-confirmation-email__row" }, h("div", { class: "subsection" }, h("div", { class: "input-container" }, h("label", null, i18next.t('nylasConfirmationEmail.companyLogoUrl.label'), h("span", { class: "label-icon" }, h("tooltip-component", null, h("info-icon", { slot: "tooltip-icon" }), h("span", { slot: "tooltip-content" }, i18next.t('nylasConfirmationEmail.companyLogoUrl.tooltip.desc'))))), this.confirmationEmail && (h("input-image-url", { name: "confirmation-email-logo", exportparts: "iiu__logo-input-textfield: nce__input-image-url", errorMessage: this.invalidImageErrorMessage, imageUrl: this.confirmationEmail?.logo ?? '', themeConfig: this.themeConfig }))))), h("div", { class: "nylas-confirmation-email__row full-width-col" }, h("div", { class: "subsection" }, h("h3", null, i18next.t('nylasConfirmationEmail.emailMessage.header')), h("div", { class: "input-container" }, h("label", { htmlFor: "title" }, i18next.t('nylasConfirmationEmail.emailMessage.label'), h("span", { class: "label-icon" }, h("tooltip-component", null, h("info-icon", { slot: "tooltip-icon" }), h("span", { slot: "tooltip-content" }, i18next.t('nylasConfirmationEmail.emailMessage.tooltip.desc'))))), h("input-component", { name: "confirmation-email-title", maxLength: 60, placeholder: organizerName
@@ -1 +1 @@
1
- {"version":3,"file":"nylas-confirmation-email.js","sourceRoot":"","sources":["../../../../../src/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, sanitize } 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, EmailTemplate, Participant, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-confirmation-email` component is a UI component that allows users to set buffer time before and after an event.\n *\n * @part nce__tab-heading - The nylas-confirmation-email main tab heading\n * @part nce - The nylas-confirmation-email container\n * @part nce__header - The header of the event communication section\n * @part nce__body - The body of the event communication section\n * @part nce__confirmation-email-toggle--container - The confirmation email drawer toggle container\n * @part nce__input-image-url - The input image URL container\n * @part nce__summary - The confirmation card summary container\n */\n@Component({\n tag: 'nylas-confirmation-email',\n styleUrl: 'nylas-confirmation-email.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasConfirmationEmail {\n @Element() host!: HTMLNylasConfirmationEmailElement;\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The confirmation email template data to display\n */\n @Prop() confirmationEmailTemplate: EmailTemplate = {} as EmailTemplate;\n /**\n * @standalone\n * List of participants\n */\n @Prop() participants: Participant[] = [];\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'confirmation-email-template';\n /**\n * @standalone\n * The nylas branding\n */\n @Prop() nylasBranding: boolean = true;\n /**\n * Is the confirmation email card open\n */\n @Prop() isOpen: boolean = false;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * The confirmation email template state.\n */\n @State() confirmationEmail!: EmailTemplate;\n\n /**\n * The internal state to store the isOpen state.\n */\n @State() isConfirmationEmailOpen: boolean = this.isOpen;\n\n /**\n * The internal state to store the participants.\n */\n @State() participantsState: Participant[] = this.participants;\n\n /**\n * The error message to display when the image URL is invalid.\n */\n @State() invalidImageErrorMessage: string = i18next.t('nylasConfirmationEmail.error.invalidImageUrl');\n\n /**\n * This event is fired when the email reminders change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\n }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-confirmation-email', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-confirmation-email', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-confirmation-email', '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-confirmation-email', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.confirmationEmail = { ...this.confirmationEmailTemplate };\n if (typeof this.confirmationEmail?.show_nylas_branding === 'undefined' && this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: true };\n } else if (!this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: false };\n }\n this.isConfirmationEmailOpen = this.isOpen;\n this.participantsState = this.participants;\n }\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-confirmation-email', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-confirmation-email', 'selectedConfigurationChangedHandler', newValue);\n this.confirmationEmail = { ...(newValue?.scheduler?.email_template || this.confirmationEmailTemplate) };\n if (typeof this.confirmationEmail?.show_nylas_branding === 'undefined' && this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: true };\n } else if (!this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: false };\n }\n this.isConfirmationEmailOpen = !newValue?.event_booking?.reminders?.length;\n this.participantsState = newValue?.participants || this.participants;\n }\n\n @Watch('nylasBranding')\n nylasBrandingChangedHandler(newValue: boolean) {\n debug('nylas-confirmation-email', 'nylasBrandingChangedHandler', newValue);\n if (typeof this.confirmationEmail?.show_nylas_branding === 'undefined' && newValue) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: true };\n } else if (!newValue) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: false };\n }\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n this.invalidImageErrorMessage = i18next.t('nylasConfirmationEmail.error.invalidImageUrl');\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 @Listen('nylasFormInputChanged')\n async nylasFormInputChangeHandler(event: CustomEvent<{ value: string; name: string; type?: string }>) {\n const { name, value } = event.detail;\n const type = event.detail?.type;\n if (name === 'confirmation-email-title') {\n this.confirmationEmail = { ...this.confirmationEmail, booking_confirmed: { ...(this.confirmationEmail?.booking_confirmed || {}), title: value } };\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n } else if (name === 'confirmation-email-body' && type === 'multi_line_text') {\n this.handleEmailBodyChange(event);\n }\n }\n\n @Listen('valueChanged')\n valueChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-confirmation-email', 'valueChangedHandler', event.detail);\n const { value, name } = event.detail;\n\n if (name === 'confirmation-email-logo') {\n this.confirmationEmail = { ...this.confirmationEmail, logo: value };\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n if (typeof this.internals.setValidity === 'function' && typeof this.internals.setFormValue === 'function') {\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.internals.setValidity({});\n }\n }\n }\n\n @Listen('nylasFormInputImageUrlInvalid')\n async nylasFormInputImageUrlInvalidHandler(event: CustomEvent<{ value: string; name: string }>) {\n const { value, name } = event.detail;\n if (name === 'confirmation-email-logo' && typeof this.internals.setValidity === 'function') {\n this.internals.setValidity({ customError: true }, i18next.t('nylasConfirmationEmail.error.invalidImageUrl') || value);\n }\n }\n\n @Listen('nylasFormSwitchToggled')\n nyalsFormSwitchToggledHandler(event: CustomEvent<{ checked: boolean; name: string; label: boolean }>) {\n debug('nylas-confirmation-email', 'nyalsFormSwitchToggledHandler', event.detail);\n if (event.detail.name === 'confirmation-email-show-branding') {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: event.detail.checked };\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n }\n }\n\n updateConfirmationFormValue() {\n debug('nylas-confirmation-email', 'updateConfirmationFormValue');\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n }\n\n toggleConfirmationEmail() {\n this.isConfirmationEmailOpen = !this.isConfirmationEmailOpen;\n }\n\n handleEmailBodyChange(event) {\n const value = sanitize(event.detail.value);\n this.confirmationEmail = { ...this.confirmationEmail, booking_confirmed: { ...(this.confirmationEmail?.booking_confirmed || {}), body: value } };\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n }\n\n @RegisterComponent<NylasConfirmationEmail, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-confirmation-email',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.nylasBranding', 'nylasBranding'],\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 organizer = this.participantsState.find(p => p.is_organizer);\n const organizerName = organizer?.name || organizer?.email;\n\n return (\n <Host>\n <div class=\"nylas-confirmation-email\" part=\"nce\">\n <div class=\"header\" part=\"nce__header\">\n <div>\n <h3>\n {this.confirmationEmail?.booking_confirmed?.title || organizerName\n ? i18next.t('nylasConfirmationEmail.headerTitle_withOrganizer', { organizerName: organizerName })\n : i18next.t('nylasConfirmationEmail.headerTitle')}\n </h3>\n <p>{i18next.t('nylasConfirmationEmail.headerSubTitle')}</p>\n </div>\n {this.isConfirmationEmailOpen ? (\n <div class=\"confirmation-email-toggle\" part=\"nce__confirmation-email-toggle--container\">\n <span class={`chevron ${this.isConfirmationEmailOpen ? 'open' : 'closed'} `} onClick={() => this.toggleConfirmationEmail()}>\n <chevron-icon width=\"24\" height=\"24\" />\n </span>\n </div>\n ) : (\n <button-component\n variant={'basic'}\n clickHandler={event => {\n event.preventDefault();\n this.toggleConfirmationEmail();\n }}\n >\n <edit-icon width=\"16\" height=\"16\"></edit-icon>\n {i18next.t('nylasConfirmationEmail.editButtonText')}\n </button-component>\n )}\n </div>\n\n {this.isConfirmationEmailOpen ? (\n <div class=\"nylas-confirmation-email__body\" part=\"nce__body\">\n <div class=\"nylas-confirmation-email__section\">\n {this.nylasBranding && (\n <div class=\"nylas-confirmation-email__row\">\n <label>\n {i18next.t('nylasConfirmationEmail.nylasBranding.label')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasConfirmationEmail.nylasBranding.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n <toggle-switch\n exportparts=\"ts_label: nce__toggle-label, ts_input: nce_toggle-input, ts_slider: nce_toggle-slider\"\n name={`confirmation-email-show-branding`}\n checked={this.confirmationEmail?.show_nylas_branding}\n themeConfig={this.themeConfig}\n />\n </div>\n )}\n <div class=\"nylas-confirmation-email__row\">\n <div class=\"subsection\">\n <div class=\"input-container\">\n <label>\n {i18next.t('nylasConfirmationEmail.companyLogoUrl.label')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasConfirmationEmail.companyLogoUrl.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n\n {this.confirmationEmail && (\n <input-image-url\n name=\"confirmation-email-logo\"\n exportparts=\"iiu__logo-input-textfield: nce__input-image-url\"\n errorMessage={this.invalidImageErrorMessage}\n imageUrl={this.confirmationEmail?.logo ?? ''}\n themeConfig={this.themeConfig}\n />\n )}\n </div>\n </div>\n </div>\n <div class=\"nylas-confirmation-email__row full-width-col\">\n <div class=\"subsection\">\n <h3>{i18next.t('nylasConfirmationEmail.emailMessage.header')}</h3>\n <div class=\"input-container\">\n <label htmlFor=\"title\">\n {i18next.t('nylasConfirmationEmail.emailMessage.label')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasConfirmationEmail.emailMessage.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n <input-component\n name=\"confirmation-email-title\"\n maxLength={60}\n placeholder={\n organizerName\n ? i18next.t('nylasConfirmationEmail.headerTitle_withOrganizer', { organizerName: organizerName })\n : i18next.t('nylasConfirmationEmail.headerTitle')\n }\n themeConfig={this.themeConfig}\n defaultValue={this.confirmationEmail?.booking_confirmed?.title ?? ''}\n ></input-component>\n </div>\n <div class=\"input-container\">\n {/* <label htmlFor=\"title\">Email body</label> */}\n <textarea-component\n label={i18next.t('nylasConfirmationEmail.emailMessage.additionalInfoLabel')}\n name=\"confirmation-email-body\"\n id=\"confirmation-email-body\"\n placeholder={i18next.t('nylasConfirmationEmail.emailMessage.additionalInfoPlaceholder')}\n tooltip={i18next.t('nylasConfirmationEmail.emailMessage.additionalInfoTooltip')}\n maxLength={500}\n defaultValue={this.confirmationEmail?.booking_confirmed?.body ?? ''}\n themeConfig={this.themeConfig}\n ></textarea-component>\n\n {/* <textarea\n id=\"description\"\n part=\"nrt__textarea\"\n name=\"confirmation-email-body\"\n placeholder='Default body'\n value={this.confirmationEmail?.booking_confirmed?.body ?? ''}\n maxlength=\"500\"\n rows={2}\n onInput={e => this.handleEmailBodyChange(e)}\n ></textarea> */}\n </div>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <div class=\"nylas-confirmation-email__summary\" part=\"nce__summary\">\n <p>\n <span class=\"summary-icon\">\n <person-clipboard-icon></person-clipboard-icon>\n </span>\n {i18next.t('nylasConfirmationEmail.allHosts')}\n </p>\n <p>\n <span class=\"summary-icon\">\n <clock-icon></clock-icon>\n </span>\n {i18next.t('nylasConfirmationEmail.immediatelyUponBooking')}\n </p>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"nylas-confirmation-email.js","sourceRoot":"","sources":["../../../../../src/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, sanitize } 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, EmailTemplate, Participant, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-confirmation-email` component is a UI component that allows users to set buffer time before and after an event.\n *\n * @part nce__tab-heading - The nylas-confirmation-email main tab heading\n * @part nce - The nylas-confirmation-email container\n * @part nce__header - The header of the event communication section\n * @part nce__body - The body of the event communication section\n * @part nce__confirmation-email-toggle--container - The confirmation email drawer toggle container\n * @part nce__input-image-url - The input image URL container\n * @part nce__summary - The confirmation card summary container\n */\n@Component({\n tag: 'nylas-confirmation-email',\n styleUrl: 'nylas-confirmation-email.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasConfirmationEmail {\n @Element() host!: HTMLNylasConfirmationEmailElement;\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The confirmation email template data to display\n */\n @Prop() confirmationEmailTemplate: EmailTemplate = {} as EmailTemplate;\n /**\n * @standalone\n * List of participants\n */\n @Prop() participants: Participant[] = [];\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'confirmation-email-template';\n /**\n * @standalone\n * The nylas branding\n */\n @Prop() nylasBranding: boolean = true;\n /**\n * Is the confirmation email card open\n */\n @Prop() isOpen: boolean = false;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * The confirmation email template state.\n */\n @State() confirmationEmail!: EmailTemplate;\n\n /**\n * The internal state to store the isOpen state.\n */\n @State() isConfirmationEmailOpen: boolean = this.isOpen;\n\n /**\n * The internal state to store the participants.\n */\n @State() participantsState: Participant[] = this.participants;\n\n /**\n * The error message to display when the image URL is invalid.\n */\n @State() invalidImageErrorMessage: string = i18next.t('nylasConfirmationEmail.error.invalidImageUrl');\n\n /**\n * This event is fired when the email reminders change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\n }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-confirmation-email', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {\n debug('nylas-confirmation-email', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-confirmation-email', '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-confirmation-email', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.confirmationEmail = { ...this.confirmationEmailTemplate };\n if (typeof this.confirmationEmail?.show_nylas_branding === 'undefined' && this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: true };\n } else if (!this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: false };\n }\n this.isConfirmationEmailOpen = this.isOpen;\n this.participantsState = this.participants;\n // CUST-5437: also register the default form value on initial load when there is no\n // selectedConfiguration, so the form submits the correct value without user input.\n if (typeof this.internals?.setFormValue === 'function') {\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n }\n }\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-confirmation-email', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newValue: Configuration) {\n debug('nylas-confirmation-email', 'selectedConfigurationChangedHandler', newValue);\n this.confirmationEmail = { ...(newValue?.scheduler?.email_template || this.confirmationEmailTemplate) };\n if (typeof this.confirmationEmail?.show_nylas_branding === 'undefined' && this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: true };\n } else if (!this.nylasBranding) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: false };\n }\n this.isConfirmationEmailOpen = !newValue?.event_booking?.reminders?.length;\n this.participantsState = newValue?.participants || this.participants;\n // Register the loaded value with the form so it is included on submit. The form\n // value was previously only set on user input, so loading/reloading a configuration\n // (initial mount, tab switch, or a parent re-broadcast of selectedConfiguration)\n // left this element's form contribution empty and dropped the saved confirmation\n // email body on save. (CUST-5437)\n if (typeof this.internals?.setFormValue === 'function') {\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n }\n }\n\n @Watch('nylasBranding')\n nylasBrandingChangedHandler(newValue: boolean) {\n debug('nylas-confirmation-email', 'nylasBrandingChangedHandler', newValue);\n if (typeof this.confirmationEmail?.show_nylas_branding === 'undefined' && newValue) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: true };\n } else if (!newValue) {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: false };\n }\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n this.invalidImageErrorMessage = i18next.t('nylasConfirmationEmail.error.invalidImageUrl');\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 @Listen('nylasFormInputChanged')\n async nylasFormInputChangeHandler(event: CustomEvent<{ value: string; name: string; type?: string }>) {\n const { name, value } = event.detail;\n const type = event.detail?.type;\n if (name === 'confirmation-email-title') {\n this.confirmationEmail = { ...this.confirmationEmail, booking_confirmed: { ...(this.confirmationEmail?.booking_confirmed || {}), title: value } };\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n } else if (name === 'confirmation-email-body' && type === 'multi_line_text') {\n this.handleEmailBodyChange(event);\n }\n }\n\n @Listen('valueChanged')\n valueChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-confirmation-email', 'valueChangedHandler', event.detail);\n const { value, name } = event.detail;\n\n if (name === 'confirmation-email-logo') {\n this.confirmationEmail = { ...this.confirmationEmail, logo: value };\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n if (typeof this.internals.setValidity === 'function' && typeof this.internals.setFormValue === 'function') {\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.internals.setValidity({});\n }\n }\n }\n\n @Listen('nylasFormInputImageUrlInvalid')\n async nylasFormInputImageUrlInvalidHandler(event: CustomEvent<{ value: string; name: string }>) {\n const { value, name } = event.detail;\n if (name === 'confirmation-email-logo' && typeof this.internals.setValidity === 'function') {\n this.internals.setValidity({ customError: true }, i18next.t('nylasConfirmationEmail.error.invalidImageUrl') || value);\n }\n }\n\n @Listen('nylasFormSwitchToggled')\n nyalsFormSwitchToggledHandler(event: CustomEvent<{ checked: boolean; name: string; label: boolean }>) {\n debug('nylas-confirmation-email', 'nyalsFormSwitchToggledHandler', event.detail);\n if (event.detail.name === 'confirmation-email-show-branding') {\n this.confirmationEmail = { ...this.confirmationEmail, show_nylas_branding: event.detail.checked };\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n }\n }\n\n updateConfirmationFormValue() {\n debug('nylas-confirmation-email', 'updateConfirmationFormValue');\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n }\n\n toggleConfirmationEmail() {\n this.isConfirmationEmailOpen = !this.isConfirmationEmailOpen;\n }\n\n handleEmailBodyChange(event) {\n const value = sanitize(event.detail.value);\n this.confirmationEmail = { ...this.confirmationEmail, booking_confirmed: { ...(this.confirmationEmail?.booking_confirmed || {}), body: value } };\n this.internals.setFormValue(JSON.stringify(this.confirmationEmail), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.confirmationEmail), name: this.name });\n }\n\n @RegisterComponent<NylasConfirmationEmail, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-confirmation-email',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.nylasBranding', 'nylasBranding'],\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 organizer = this.participantsState.find(p => p.is_organizer);\n const organizerName = organizer?.name || organizer?.email;\n\n return (\n <Host>\n <div class=\"nylas-confirmation-email\" part=\"nce\">\n <div class=\"header\" part=\"nce__header\">\n <div>\n <h3>\n {this.confirmationEmail?.booking_confirmed?.title || organizerName\n ? i18next.t('nylasConfirmationEmail.headerTitle_withOrganizer', { organizerName: organizerName })\n : i18next.t('nylasConfirmationEmail.headerTitle')}\n </h3>\n <p>{i18next.t('nylasConfirmationEmail.headerSubTitle')}</p>\n </div>\n {this.isConfirmationEmailOpen ? (\n <div class=\"confirmation-email-toggle\" part=\"nce__confirmation-email-toggle--container\">\n <span class={`chevron ${this.isConfirmationEmailOpen ? 'open' : 'closed'} `} onClick={() => this.toggleConfirmationEmail()}>\n <chevron-icon width=\"24\" height=\"24\" />\n </span>\n </div>\n ) : (\n <button-component\n variant={'basic'}\n clickHandler={event => {\n event.preventDefault();\n this.toggleConfirmationEmail();\n }}\n >\n <edit-icon width=\"16\" height=\"16\"></edit-icon>\n {i18next.t('nylasConfirmationEmail.editButtonText')}\n </button-component>\n )}\n </div>\n\n {this.isConfirmationEmailOpen ? (\n <div class=\"nylas-confirmation-email__body\" part=\"nce__body\">\n <div class=\"nylas-confirmation-email__section\">\n {this.nylasBranding && (\n <div class=\"nylas-confirmation-email__row\">\n <label>\n {i18next.t('nylasConfirmationEmail.nylasBranding.label')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasConfirmationEmail.nylasBranding.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n <toggle-switch\n exportparts=\"ts_label: nce__toggle-label, ts_input: nce_toggle-input, ts_slider: nce_toggle-slider\"\n name={`confirmation-email-show-branding`}\n checked={this.confirmationEmail?.show_nylas_branding}\n themeConfig={this.themeConfig}\n />\n </div>\n )}\n <div class=\"nylas-confirmation-email__row\">\n <div class=\"subsection\">\n <div class=\"input-container\">\n <label>\n {i18next.t('nylasConfirmationEmail.companyLogoUrl.label')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasConfirmationEmail.companyLogoUrl.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n\n {this.confirmationEmail && (\n <input-image-url\n name=\"confirmation-email-logo\"\n exportparts=\"iiu__logo-input-textfield: nce__input-image-url\"\n errorMessage={this.invalidImageErrorMessage}\n imageUrl={this.confirmationEmail?.logo ?? ''}\n themeConfig={this.themeConfig}\n />\n )}\n </div>\n </div>\n </div>\n <div class=\"nylas-confirmation-email__row full-width-col\">\n <div class=\"subsection\">\n <h3>{i18next.t('nylasConfirmationEmail.emailMessage.header')}</h3>\n <div class=\"input-container\">\n <label htmlFor=\"title\">\n {i18next.t('nylasConfirmationEmail.emailMessage.label')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasConfirmationEmail.emailMessage.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n <input-component\n name=\"confirmation-email-title\"\n maxLength={60}\n placeholder={\n organizerName\n ? i18next.t('nylasConfirmationEmail.headerTitle_withOrganizer', { organizerName: organizerName })\n : i18next.t('nylasConfirmationEmail.headerTitle')\n }\n themeConfig={this.themeConfig}\n defaultValue={this.confirmationEmail?.booking_confirmed?.title ?? ''}\n ></input-component>\n </div>\n <div class=\"input-container\">\n {/* <label htmlFor=\"title\">Email body</label> */}\n <textarea-component\n label={i18next.t('nylasConfirmationEmail.emailMessage.additionalInfoLabel')}\n name=\"confirmation-email-body\"\n id=\"confirmation-email-body\"\n placeholder={i18next.t('nylasConfirmationEmail.emailMessage.additionalInfoPlaceholder')}\n tooltip={i18next.t('nylasConfirmationEmail.emailMessage.additionalInfoTooltip')}\n maxLength={500}\n defaultValue={this.confirmationEmail?.booking_confirmed?.body ?? ''}\n themeConfig={this.themeConfig}\n ></textarea-component>\n\n {/* <textarea\n id=\"description\"\n part=\"nrt__textarea\"\n name=\"confirmation-email-body\"\n placeholder='Default body'\n value={this.confirmationEmail?.booking_confirmed?.body ?? ''}\n maxlength=\"500\"\n rows={2}\n onInput={e => this.handleEmailBodyChange(e)}\n ></textarea> */}\n </div>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <div class=\"nylas-confirmation-email__summary\" part=\"nce__summary\">\n <p>\n <span class=\"summary-icon\">\n <person-clipboard-icon></person-clipboard-icon>\n </span>\n {i18next.t('nylasConfirmationEmail.allHosts')}\n </p>\n <p>\n <span class=\"summary-icon\">\n <clock-icon></clock-icon>\n </span>\n {i18next.t('nylasConfirmationEmail.immediatelyUponBooking')}\n </p>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -160,11 +160,12 @@ export class NylasEditorTabs {
160
160
  const partAvailabilityCalendars = participantCalendars?.[p.email] ?? p.availability?.calendar_ids ?? ['primary'];
161
161
  const isPartAvailabilityCalendarsPrimaryOnly = partAvailabilityCalendars.length === 1 && partAvailabilityCalendars[0] === 'primary';
162
162
  const partGrantId = p.grant_id || this.selectedConfiguration?.participants?.find(sp => sp.email === p.email)?.grant_id;
163
+ const partHasCustomOpenHours = Array.isArray(participantOpenHours?.[p.email]) && participantOpenHours[p.email].length > 0;
163
164
  return {
164
165
  ...p,
165
166
  ...(partGrantId ? { grant_id: partGrantId } : {}),
166
167
  timezone,
167
- availability: p.availability
168
+ availability: p.availability || partHasCustomOpenHours
168
169
  ? {
169
170
  calendar_ids: isPartAvailabilityCalendarsPrimaryOnly && typeof partBooking !== 'undefined' ? [partBooking?.calendar_id] : partAvailabilityCalendars,
170
171
  open_hours: participantOpenHours?.[p.email] ?? p.availability?.open_hours ?? [],
@@ -690,10 +691,10 @@ export class NylasEditorTabs {
690
691
  }
691
692
  render() {
692
693
  debug('[nylas-editor-tabs]', 'render', this.formState);
693
- return (h(Host, { key: '53e8f207370316a20260e8c9d5a62546efa70c22' }, h("nylas-notification", { key: '3dba6d5e4d6549d7c7afc84543a7de36b5e9565a' }), h("form", { key: 'b159d7794cdd2b4747df5b1eb971cc949599d56f', onSubmit: this.formSubmissionHandler, class: "scheduler-editor", ref: el => (this.formRef = el), noValidate: true }, this.mode === 'app' ? (h("div", { class: "form-contents", part: "editor__form-contents net__form-contents" }, h("div", { class: "tabs", part: "editor__tabs net__tabs" }, h("button", { name: Tab.EventInfo, class: { tab: true, active: this.activeTab == Tab.EventInfo, hide: this.hideTab(Tab.EventInfo) }, part: "editortab__event-info net__tab-event-info", onClick: e => this.setActiveTab(e, Tab.EventInfo) }, h("calendar-info-icon", { width: "16", height: "16" }), i18next.t('eventInfoTab')), h("button", { name: Tab.Availability, class: { tab: true, active: this.activeTab == Tab.Availability, hide: this.hideTab(Tab.Availability) }, part: "editortab__availability net__tab-availability", onClick: e => this.setActiveTab(e, Tab.Availability) }, h("calendar-patterns-icon", { width: "16", height: "16" }), i18next.t('availabilityTab')), h("button", { name: Tab.Participants, class: { tab: true, active: this.activeTab == Tab.Participants, hide: this.hideTab(Tab.Participants) }, part: "editortab__participants net__tab-participants", onClick: e => this.setActiveTab(e, Tab.Participants) }, h("people-icon", { width: "16", height: "16" }), i18next.t('participantsTab')), h("button", { name: Tab.BookingOptions, class: { tab: true, active: this.activeTab == Tab.BookingOptions, hide: this.hideTab(Tab.BookingOptions) }, part: "editortab__booking-options net__tab-booking-options", onClick: e => this.setActiveTab(e, Tab.BookingOptions) }, h("flow-icon", { width: "16", height: "16" }), i18next.t('bookingOptionsTab')), h("button", { name: Tab.BookingForm, class: { tab: true, active: this.activeTab == 'bookingForm', hide: this.hideTab(Tab.BookingForm) }, part: "editortab__booking-form net__tab-booking-form", onClick: e => this.setActiveTab(e, Tab.BookingForm) }, this.activeTab == Tab.BookingForm ? h("calendar-agenda-fill-icon", { width: "16", height: "16" }) : h("calendar-agenda-icon", { width: "16", height: "16" }), i18next.t('bookingFormTab')), h("button", { name: Tab.Communications, class: { tab: true, active: this.activeTab == 'communications', hide: this.hideTab(Tab.Communications) }, onClick: e => this.setActiveTab(e, Tab.Communications), part: "editortab__communications net__tab-communications" }, this.activeTab == Tab.Communications ? h("envelope-fill-icon", { width: "16", height: "16" }) : h("envelope-icon", { width: "16", height: "16" }), i18next.t('communicationsTab')), h("button", { name: Tab.PageStyles, class: { tab: true, active: this.activeTab == 'pageStyles', hide: this.hideTab(Tab.PageStyles) }, onClick: e => this.setActiveTab(e, Tab.PageStyles), part: "editortab__page-styles net__tab-page-styles" }, this.activeTab == Tab.PageStyles ? h("paintbrush-fill-icon", { width: "16", height: "16" }) : h("paintbrush-icon", { width: "16", height: "16" }), i18next.t('pageStylesTab'))), h("div", { class: {
694
+ return (h(Host, { key: 'bf708d7ec542c822eb749ffd4e8045ae9ae4d58e' }, h("nylas-notification", { key: 'da0ef8835e5a7c3c7a1e3eae096eea2ef7cdc744' }), h("form", { key: '7154f6f9f0e9bb735f1217864a985dc440347893', onSubmit: this.formSubmissionHandler, class: "scheduler-editor", ref: el => (this.formRef = el), noValidate: true }, this.mode === 'app' ? (h("div", { class: "form-contents", part: "editor__form-contents net__form-contents" }, h("div", { class: "tabs", part: "editor__tabs net__tabs" }, h("button", { name: Tab.EventInfo, class: { tab: true, active: this.activeTab == Tab.EventInfo, hide: this.hideTab(Tab.EventInfo) }, part: "editortab__event-info net__tab-event-info", onClick: e => this.setActiveTab(e, Tab.EventInfo) }, h("calendar-info-icon", { width: "16", height: "16" }), i18next.t('eventInfoTab')), h("button", { name: Tab.Availability, class: { tab: true, active: this.activeTab == Tab.Availability, hide: this.hideTab(Tab.Availability) }, part: "editortab__availability net__tab-availability", onClick: e => this.setActiveTab(e, Tab.Availability) }, h("calendar-patterns-icon", { width: "16", height: "16" }), i18next.t('availabilityTab')), h("button", { name: Tab.Participants, class: { tab: true, active: this.activeTab == Tab.Participants, hide: this.hideTab(Tab.Participants) }, part: "editortab__participants net__tab-participants", onClick: e => this.setActiveTab(e, Tab.Participants) }, h("people-icon", { width: "16", height: "16" }), i18next.t('participantsTab')), h("button", { name: Tab.BookingOptions, class: { tab: true, active: this.activeTab == Tab.BookingOptions, hide: this.hideTab(Tab.BookingOptions) }, part: "editortab__booking-options net__tab-booking-options", onClick: e => this.setActiveTab(e, Tab.BookingOptions) }, h("flow-icon", { width: "16", height: "16" }), i18next.t('bookingOptionsTab')), h("button", { name: Tab.BookingForm, class: { tab: true, active: this.activeTab == 'bookingForm', hide: this.hideTab(Tab.BookingForm) }, part: "editortab__booking-form net__tab-booking-form", onClick: e => this.setActiveTab(e, Tab.BookingForm) }, this.activeTab == Tab.BookingForm ? h("calendar-agenda-fill-icon", { width: "16", height: "16" }) : h("calendar-agenda-icon", { width: "16", height: "16" }), i18next.t('bookingFormTab')), h("button", { name: Tab.Communications, class: { tab: true, active: this.activeTab == 'communications', hide: this.hideTab(Tab.Communications) }, onClick: e => this.setActiveTab(e, Tab.Communications), part: "editortab__communications net__tab-communications" }, this.activeTab == Tab.Communications ? h("envelope-fill-icon", { width: "16", height: "16" }) : h("envelope-icon", { width: "16", height: "16" }), i18next.t('communicationsTab')), h("button", { name: Tab.PageStyles, class: { tab: true, active: this.activeTab == 'pageStyles', hide: this.hideTab(Tab.PageStyles) }, onClick: e => this.setActiveTab(e, Tab.PageStyles), part: "editortab__page-styles net__tab-page-styles" }, this.activeTab == Tab.PageStyles ? h("paintbrush-fill-icon", { width: "16", height: "16" }) : h("paintbrush-icon", { width: "16", height: "16" }), i18next.t('pageStylesTab'))), h("div", { class: {
694
695
  'tab-content': true,
695
696
  'fadeIn': this.loaded,
696
- }, part: "editor__tab-content net__tab-content" }, h(TabContents, { formState: this.formState, activeTab: this.activeTab, currentUser: this.currentUser, calendars: this.calendars, id: this.selectedConfiguration?.id ?? 'new', i18next: i18next, enableNotetaker: this.enableNotetaker, themeConfig: this.themeConfig })))) : (h("div", { class: "composable", key: this.selectedConfiguration?.id }, h("slot", null))), h("div", { key: '89c5898f878016e7f948d163abe29ca754009ecd', class: "footer", part: "editor__footer net__footer" }, h("div", { key: 'f03899ff4f65cc1d3ca1eccc741721e64b14f5b7', class: "preview", part: "editor__footer-preview net__footer-preview" }, this.enableUserFeedback && (h("button-component", { key: 'f16d904cb742a131095fa70c2348bec8c81e1f29', title: "Share your feedback", id: "report-issue", variant: 'basic', onClick: e => this.onFeedbackClick(e) }, h("feedback-icon", { key: '06e12b85432d63d275687a69dbd8c507d66408b6' })))), h("div", { key: 'd0f09f33a68578be3541cbd71f92f9f710701858', class: "buttons", part: "editor__footer-buttons net__footer-buttons" }, h("p", { key: '628ccfdddad773509ac6e73613c8e4879d627553', class: {
697
+ }, part: "editor__tab-content net__tab-content" }, h(TabContents, { formState: this.formState, activeTab: this.activeTab, currentUser: this.currentUser, calendars: this.calendars, id: this.selectedConfiguration?.id ?? 'new', i18next: i18next, enableNotetaker: this.enableNotetaker, themeConfig: this.themeConfig })))) : (h("div", { class: "composable", key: this.selectedConfiguration?.id }, h("slot", null))), h("div", { key: '9f8518398d98a211078b50c88f1c81315ed30328', class: "footer", part: "editor__footer net__footer" }, h("div", { key: 'cbf1648c8c98b4e48e43d21ba7d9031a329a4e10', class: "preview", part: "editor__footer-preview net__footer-preview" }, this.enableUserFeedback && (h("button-component", { key: 'a4f2c13221dade5425f1b59aa5274350a809ffc3', title: "Share your feedback", id: "report-issue", variant: 'basic', onClick: e => this.onFeedbackClick(e) }, h("feedback-icon", { key: 'f2f1fe27e3de4f09fe7eb00eede7f9abc90102c3' })))), h("div", { key: 'a740aaeccc0f929cfa67ef8c0c703513ec9138ec', class: "buttons", part: "editor__footer-buttons net__footer-buttons" }, h("p", { key: 'ded5a9bed46eb1063e0062080fbc2f1eb91510fa', class: {
697
698
  'unsaved-changes': this.hasUnsavedChanges && !this.changesSaved,
698
699
  'saved-changes': this.changesSaved,
699
700
  'error': this.error?.message !== '',
@@ -702,17 +703,17 @@ export class NylasEditorTabs {
702
703
  ? i18next.t('unsavedChangesLabel')
703
704
  : this.error?.message == '' && this.changesSaved
704
705
  ? `${i18next.t('changesSavedLabel')}!`
705
- : ''), this.schedulerPreviewLink !== '' && this.action === 'edit' && (h("button-component", { key: 'cf3a48e6fd19209a8a87e30a7ab5639d439dbbc9', title: "Preview", type: "button", disabled: this.isLoading, clickHandler: event => {
706
+ : ''), this.schedulerPreviewLink !== '' && this.action === 'edit' && (h("button-component", { key: '335dcff1c0fa0e2049cf21f36e33427a9f30a8c1', title: "Preview", type: "button", disabled: this.isLoading, clickHandler: event => {
706
707
  event.preventDefault();
707
708
  const previewEvent = this.previewButtonClicked.emit(this.host);
708
709
  if (!previewEvent.defaultPrevented) {
709
710
  window.open(parsePreviewLink(this.schedulerPreviewLink, this.selectedConfiguration), '_blank');
710
711
  }
711
- }, variant: 'basic' }, h("eye-icon", { key: '88a8aeafbefc9d21c5e2f10ebe43fd7308b7f2f0' }))), h("button-component", { key: '8377521f43f7050fd5b06fbee24e0c434d80bccc', type: "button", disabled: this.isLoading, clickHandler: event => {
712
+ }, variant: 'basic' }, h("eye-icon", { key: '2f8ef52ca16d73c357feb572c35d4f56f056a4d1' }))), h("button-component", { key: 'f56f62a0b795d5949cef307518b12ca9c7431cb5', type: "button", disabled: this.isLoading, clickHandler: event => {
712
713
  event.preventDefault();
713
714
  this.cancelButtonClick.emit();
714
715
  this.host.resetError();
715
- }, variant: 'basic', part: "editor__footer-cancel net__footer-cancel" }, i18next.t('cancelButton')), h("button-component", { key: '5f3393800e9a0499cc538fffdee07005aa15bdba', class: { 'save-changes': this.action === 'edit' }, type: "submit", disabled: this.isLoading, part: "editor__footer-cta, net__footer-cta" }, this.isLoading ? (h("span", null, i18next.t('savingButtonText'), h("loading-icon", null), ' ')) : this.action === 'create' ? (`${i18next.t('createButtonText')}`) : (`${i18next.t('saveChangesButtonText')}`))))), this.showFeedbackModal && h("nylas-feedback-form", { key: '4abad08be25f4ff177f564d54d701d53cce8bba3' })));
716
+ }, variant: 'basic', part: "editor__footer-cancel net__footer-cancel" }, i18next.t('cancelButton')), h("button-component", { key: 'c04d198a70b9214461d92c380089048febe6113a', class: { 'save-changes': this.action === 'edit' }, type: "submit", disabled: this.isLoading, part: "editor__footer-cta, net__footer-cta" }, this.isLoading ? (h("span", null, i18next.t('savingButtonText'), h("loading-icon", null), ' ')) : this.action === 'create' ? (`${i18next.t('createButtonText')}`) : (`${i18next.t('saveChangesButtonText')}`))))), this.showFeedbackModal && h("nylas-feedback-form", { key: '5c62eea9a45a9060762b43c7a328488653590979' })));
716
717
  }
717
718
  static get is() { return "nylas-editor-tabs"; }
718
719
  static get encapsulation() { return "scoped"; }