@nylas/web-elements 0.0.0-canary-20250318134614 → 0.0.0-test-20250319204140

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 (34) hide show
  1. package/dist/cdn/input-color-picker/input-color-picker.es.js +699 -0
  2. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +4 -4
  3. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +3 -3
  4. package/dist/cjs/google-logo-icon_6.cjs.entry.js +4 -4
  5. package/dist/cjs/nylas-event-calendar_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nylas-provider.cjs.entry.js +1 -1
  7. package/dist/cjs/nylas-scheduling.cjs.entry.js +3 -3
  8. package/dist/cjs/{scheduler-store-599282e9.js → scheduler-store-c1fc5cf3.js} +2 -2
  9. package/dist/cjs/{scheduler-store-599282e9.js.map → scheduler-store-c1fc5cf3.js.map} +1 -1
  10. package/dist/collection/components/scheduler-editor/nylas-event-calendar/nylas-event-calendar.js +2 -2
  11. package/dist/collection/components/scheduler-editor/nylas-event-calendar/nylas-event-calendar.js.map +1 -1
  12. package/dist/components/nylas-editor-tabs-group2.js +2 -2
  13. package/dist/components/nylas-editor-tabs2.js +2 -2
  14. package/dist/components/nylas-event-calendar2.js.map +1 -1
  15. package/dist/components/nylas-scheduling.js +2 -2
  16. package/dist/components/scheduler-store.js +1 -1
  17. package/dist/esm/google-logo-icon_6.entry.js +4 -4
  18. package/dist/esm/nylas-event-calendar_3.entry.js.map +1 -1
  19. package/dist/esm/nylas-provider.entry.js +1 -1
  20. package/dist/esm/nylas-scheduling.entry.js +3 -3
  21. package/dist/esm/{scheduler-store-59b3f29b.js → scheduler-store-bbb4cf8d.js} +2 -2
  22. package/dist/esm/{scheduler-store-59b3f29b.js.map → scheduler-store-bbb4cf8d.js.map} +1 -1
  23. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  24. package/dist/nylas-web-elements/{p-a6fbfec1.entry.js → p-14569ed8.entry.js} +2 -2
  25. package/dist/nylas-web-elements/p-4e20f21a.entry.js.map +1 -1
  26. package/dist/nylas-web-elements/{p-ef506ab3.entry.js → p-91bc630c.entry.js} +2 -2
  27. package/dist/nylas-web-elements/{p-790c6070.js → p-f0c25e38.js} +2 -2
  28. package/dist/nylas-web-elements/{p-8841358d.entry.js → p-f7ea608d.entry.js} +2 -2
  29. package/dist/types/components/scheduler-editor/nylas-event-calendar/nylas-event-calendar.d.ts +1 -2
  30. package/package.json +2 -2
  31. /package/dist/nylas-web-elements/{p-a6fbfec1.entry.js.map → p-14569ed8.entry.js.map} +0 -0
  32. /package/dist/nylas-web-elements/{p-ef506ab3.entry.js.map → p-91bc630c.entry.js.map} +0 -0
  33. /package/dist/nylas-web-elements/{p-790c6070.js.map → p-f0c25e38.js.map} +0 -0
  34. /package/dist/nylas-web-elements/{p-8841358d.entry.js.map → p-f7ea608d.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"nylas-event-calendar.js","sourceRoot":"","sources":["../../../../src/components/scheduler-editor/nylas-event-calendar/nylas-event-calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\nimport { Calendar, CalendarOptions } from '@fullcalendar/core';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport { debug } from '@/utils/utils';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\nimport { Conference, EventDetails, GroupConfiguration, GroupEventAPIData, RecurrenceDeleteOption, RecurrenceUpdateOption } from '@nylas/core';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport { User } from '@/common/nylas-api-request';\nimport { Calendar as NylasCalendar } from '@nylas/core';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\ntype CalendarEventData = {\n title: string;\n start: string;\n end: string;\n calendar_id: string;\n id: string;\n};\n\nexport type CreateGroupEventFormState = {\n title: string;\n description: string;\n location: string;\n eventTimeslot: {\n when: {\n start_time: number;\n end_time: number;\n start_timezone: string;\n end_timezone: string;\n };\n recurrence: string[];\n };\n eventCapacity: number;\n conferencing?: Conference;\n participants: {\n name: string;\n email: string;\n is_organizer?: boolean;\n }[];\n};\n\nconst typeToViewMapping = {\n day: 'timeGridDay',\n week: 'timeGridWeek',\n month: 'dayGridMonth',\n};\n\nconst viewToTypeMapping = {\n timeGridDay: 'day',\n timeGridWeek: 'week',\n dayGridMonth: 'month',\n};\n\nconst editOptionChoices = [\n { label: 'Import', value: 'import' },\n { label: 'Edit', value: 'edit' },\n { label: 'Delete this event only', value: 'delete-this' },\n // { label: 'Delete this and all future occurrences', value: 'delete-future' },\n { label: 'Delete all events', value: 'delete-all' },\n];\n\nconst updateChoices: {\n label: string;\n value: RecurrenceUpdateOption;\n}[] = [\n { label: 'Update this event', value: 'this' },\n { label: 'Update all future occurrences', value: 'future' },\n { label: 'Update all events', value: 'all' },\n];\n\nconst deleteChoices: {\n label: string;\n value: RecurrenceDeleteOption;\n}[] = [\n { label: 'Delete this event', value: 'this' },\n { label: 'Delete this and all future occurrences', value: 'future' },\n { label: 'Delete all events', value: 'all' },\n];\n\n@Component({\n tag: 'nylas-event-calendar',\n styleUrl: 'nylas-event-calendar.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasEventCalendar {\n @Element() host!: HTMLNylasEventCalendarElement;\n private calendarEl!: HTMLElement;\n private formRef!: HTMLFormElement;\n /**\n * @standalone\n * The selected configuration\n */\n @Prop() selectedConfiguration?: GroupConfiguration;\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'page-name';\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The group events prop\n */\n @Prop() groupEvents?: GroupEventAPIData[];\n\n /**\n * The current user prop\n */\n @Prop() currentUser?: User;\n /**\n * The calendars prop\n */\n @Prop() calendars?: NylasCalendar[];\n /**\n * The master group events prop\n */\n @Prop() masterGroupEvents?: Record<string, EventDetails>;\n /**\n * The is loading prop\n */\n @Prop() isLoading?: boolean;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() selectedView: 'day' | 'week' | 'month' = 'week';\n @State() events: {\n title: string;\n start: string;\n end: string;\n calendar_id: string;\n id: string;\n }[] = [];\n\n @State() calendar!: Calendar;\n\n @State() selectedEvent: GroupEventAPIData | null = null;\n\n @State() selectedDateRangeString: string = '';\n\n @State() showEditEventDetails: boolean = false;\n\n @State() showCreateEventDetails: boolean = false;\n\n @State() editOptions: { label: string; value: string }[] = editOptionChoices;\n\n @State() showEditOptions: boolean = false;\n\n @State() updateOptions: { label: string; value: 'this' | 'future' | 'all' }[] = updateChoices;\n\n @State() showUpdateOptions: boolean = false;\n\n @State() deleteOptions: { label: string; value: string }[] = deleteChoices;\n\n @State() showDeleteOptions: boolean = false;\n\n @State() unsavedChanges: boolean = false;\n\n @State() showConfirmDiscardUnsavedChangesModal: boolean = false;\n\n @State() createNewGroupEventTimeslot: {\n when: {\n start_time: number;\n end_time: number;\n start_timezone: string;\n end_timezone: string;\n };\n recurrence: string[];\n } | null = null;\n @State() formError: string = '';\n\n @State() loadingOptions: {\n update: string;\n delete: string;\n create: string;\n } = {\n update: '',\n delete: '',\n create: '',\n };\n\n @State() showChooseParticipantsModal: boolean = false;\n\n @State() importParticipants: { label: string; value: string; disabled?: boolean }[] = [];\n\n @State() selectedImportParticipants: { email: string; status: string }[] = [];\n\n @Event() fetchMasterGroupEvent!: EventEmitter<string>;\n\n @Event() saveGroupEventChanges!: EventEmitter<{ data: GroupEventAPIData; action: 'this' | 'future' | 'all' }>;\n\n @Event() deleteGroupEvent!: EventEmitter<{ data: GroupEventAPIData; action: 'this' | 'future' | 'all' }>;\n\n @Event() groupEventSelected!: EventEmitter<GroupEventAPIData>;\n\n @Event() createGroupEvent!: EventEmitter<CreateGroupEventFormState>;\n\n @Event() calendarViewChanged!: EventEmitter<{ startTime: number; endTime: number }>;\n\n @Event() previosNextClicked!: EventEmitter<{ direction: 'prev' | 'next'; view: 'day' | 'week' | 'month'; currentViewRange: { startTime: number; endTime: number } }>;\n\n @Event() setCalendarViewDateRange!: EventEmitter<{ startTime: number; endTime: number }>;\n\n @Event() importGroupEvent!: EventEmitter<{\n event_id: string;\n calendar_id: string;\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-page-name', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('groupEvents')\n groupEventsChangedHandler(newValue: GroupEventAPIData[], oldValue: GroupEventAPIData[]) {\n if (newValue === oldValue) return;\n this.events = newValue\n .filter(event => event !== undefined)\n .map(eventData => {\n const event = eventData.event;\n if (event?.id) {\n const isGroupEvent = !!eventData.group_event_info && !!eventData.group_event_info?.event_id;\n const readOnly = event.read_only;\n const eventParticipants = event.participants || [];\n const groupEventParticipants = eventData.group_event_info?.participants || [];\n const noParticipants = eventParticipants.length <= 0 && groupEventParticipants.length <= 0;\n return {\n title: event.title,\n start: dayjs\n .unix(event.when.start_time) // Convert UNIX timestamp\n .tz(event.when.start_timezone) // Adjust to the event's timezone\n .format('YYYY-MM-DDTHH:mm:ss'),\n end: dayjs\n .unix(event.when.end_time) // Convert UNIX timestamp\n .tz(event.when.end_timezone) // Adjust to the event's timezone\n .format('YYYY-MM-DDTHH:mm:ss'),\n calendar_id: event.calendar_id,\n id: event.id,\n classNames: [isGroupEvent ? 'group-event' : 'regular-event', readOnly ? 'read-only' : '', noParticipants ? 'no-participants' : ''],\n editable: !readOnly,\n };\n }\n return undefined;\n }) as CalendarEventData[];\n\n this.calendar?.setOption('events', this.events);\n }\n\n // Lifecycle Methods\n connectedCallback() {\n debug('nylas-connected-calendars', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-connected-calendars', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-connected-calendars', 'componentWillLoad');\n }\n\n componentDidLoad() {\n this.selectedView = 'week';\n const calendarOptions: CalendarOptions = {\n plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin],\n headerToolbar: false,\n initialView: 'timeGridWeek',\n events: this.events,\n editable: true, // Allow drag-and-drop\n selectable: true,\n nowIndicator: true,\n scrollTime: new Date().getHours() + ':00:00', // Scroll to the current hour\n dayHeaderFormat: { weekday: 'short', month: undefined, day: '2-digit', formatMatcher: 'basic' }, // Customize header format\n dayHeaderContent: headerInfo => {\n if (headerInfo.view.type === 'dayGridMonth') {\n return {\n html: `<div class=\"custom-day-header\">\n <span class=\"day-name\">${dayjs(headerInfo.date).format('ddd')}</span>\n </div>`,\n };\n }\n return {\n html: `<div class=\"custom-day-header\">\n <span class=\"day-name\">${dayjs(headerInfo.date).format('ddd')}</span>\n <span class=\"day-number ${headerInfo.isToday ? 'today' : ''}\">${dayjs(headerInfo.date).format('D')}</span>\n </div>`,\n };\n },\n datesSet: info => {\n const startMonth = dayjs(info.start).format('MMMM').substring(0, 3); // Get the first 3 characters of the month\n const endMonth = dayjs(info.end).subtract(1, 'day').format('MMMM').substring(0, 3); // Subtract 1 day for the correct end month\n const startYear = dayjs(info.start).format('YYYY');\n const endYear = dayjs(info.end).subtract(1, 'day').format('YYYY');\n\n if (startMonth === endMonth && startYear === endYear) {\n // Same month and year\n this.selectedDateRangeString = `${startMonth} ${startYear}`;\n } else if (startYear === endYear) {\n // Different months but same year\n this.selectedDateRangeString = `${startMonth} - ${endMonth} ${startYear}`;\n } else {\n // Different months and different years\n this.selectedDateRangeString = `${startMonth} ${startYear} - ${endMonth} ${endYear}`;\n }\n },\n eventClick: info => {\n const event = this.groupEvents?.find(e => e.event.id === info.event._def.publicId);\n\n if (info.event.classNames.includes('read-only') || info.event.classNames.includes('no-participants')) {\n return;\n }\n\n this.showEditEventDetails = false;\n this.unsavedChanges = false;\n this.showEditOptions = true;\n this.selectedEvent = event || null;\n\n if (event && event.group_event_info) {\n const masterEventId = event.event.master_event_id;\n this.groupEventSelected.emit(event);\n this.editOptions = editOptionChoices.filter(option => option.value !== 'import');\n this.deleteOptions = [...deleteChoices];\n if (!masterEventId) {\n this.editOptions = this.editOptions.filter(option => option.value !== 'delete-all');\n this.deleteOptions = this.deleteOptions.filter(option => option.value !== 'all' && option.value !== 'future');\n }\n if (masterEventId && !this.masterGroupEvents?.[masterEventId]) {\n this.fetchMasterGroupEvent.emit(event.event.master_event_id);\n }\n } else {\n this.editOptions = editOptionChoices.filter(option => option.value === 'import');\n }\n },\n select: (info: any) => {\n this.createNewGroupEventTimeslot = {\n when: {\n start_time: new Date(info.start).getTime() / 1000,\n end_time: new Date(info.end).getTime() / 1000,\n start_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n end_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n recurrence: [],\n };\n this.showCreateEventDetails = true;\n },\n eventDurationEditable: true,\n height: '100%', // Let FullCalendar adjust dynamically\n contentHeight: 'auto', // Adjust content height based on events\n };\n\n this.calendar = new Calendar(this.calendarEl, calendarOptions);\n this.calendar.render();\n this.setCalendarViewDateRange.emit({\n startTime: new Date(this.calendar.getCurrentData().viewApi.activeStart).getTime() / 1000,\n endTime: new Date(this.calendar.getCurrentData().viewApi.activeEnd).getTime() / 1000,\n });\n }\n\n setView(view: 'day' | 'week' | 'month') {\n this.selectedView = view;\n this.calendar.changeView(typeToViewMapping[view]);\n const startTime = new Date(this.calendar.getCurrentData().viewApi.activeStart).getTime() / 1000;\n const endTime = new Date(this.calendar.getCurrentData().viewApi.activeEnd).getTime() / 1000;\n this.calendarViewChanged.emit({ startTime, endTime });\n }\n\n handleEditOptionSelected(e: Event, option: { label: string; value: string }) {\n e.preventDefault();\n e.stopPropagation();\n\n if (this.isLoading) return;\n if (option.value === 'edit') {\n this.showEditOptions = false;\n this.showEditEventDetails = true;\n } else if ((option.value === 'delete-this' || option.value === 'delete-all' || option.value === 'delete-future') && this.selectedEvent) {\n this.loadingOptions.delete = option.value;\n const action = option.value.split('-')[1] as RecurrenceDeleteOption;\n this.deleteGroupEvent.emit({ data: this.selectedEvent, action });\n } else if (option.value === 'import' && this.selectedEvent) {\n const participants = this.selectedEvent.event.participants || [];\n const organizer = this.selectedEvent.event.organizer;\n\n this.showEditOptions = false;\n this.showChooseParticipantsModal = true;\n this.importParticipants = participants.map(participant => ({\n label: participant?.email,\n value: participant?.email,\n disabled: participant?.email === organizer?.email,\n selected: participant?.email === organizer?.email,\n }));\n }\n }\n\n handleImportGroupEvent() {\n const masterEventId = this.selectedEvent?.event.master_event_id;\n const participantsList = this.selectedImportParticipants;\n const organizer = this.selectedEvent?.event.organizer;\n const groupEvent = {\n event_id: masterEventId ? masterEventId : this.selectedEvent?.event.id || '',\n calendar_id: this.selectedEvent?.event.calendar_id || '',\n capacity: 10,\n participants: participantsList.length > 0 ? participantsList : [{ ...organizer, is_organizer: true }],\n organizer: organizer,\n };\n this.showChooseParticipantsModal = false;\n if (!!groupEvent.event_id && !!groupEvent.calendar_id) {\n this.importGroupEvent.emit(groupEvent);\n }\n }\n\n handlePrevNextClick(direction: 'prev' | 'next') {\n const currentView = viewToTypeMapping[this.calendar.view.type];\n if (direction === 'prev') {\n this.calendar.prev();\n } else {\n this.calendar.next();\n }\n const startTime = new Date(this.calendar.getCurrentData().viewApi.activeStart).getTime() / 1000;\n const endTime = new Date(this.calendar.getCurrentData().viewApi.activeEnd).getTime() / 1000;\n this.previosNextClicked.emit({ direction, view: currentView, currentViewRange: { startTime, endTime } });\n }\n\n handleUpdateGroupEvent(e: Event, option: { label: string; value: 'this' | 'future' | 'all' }) {\n e.preventDefault();\n e.stopPropagation();\n if (this.isLoading) return;\n this.loadingOptions.update = option.value;\n if (this.selectedEvent && this.internals.checkValidity()) {\n this.saveGroupEventChanges.emit({ data: this.selectedEvent, action: option.value });\n }\n }\n\n handleDeleteGroupEvent(e: Event, option: { label: string; value: string }) {\n e.preventDefault();\n e.stopPropagation();\n if (this.isLoading) return;\n this.loadingOptions.delete = option.value;\n if (this.selectedEvent) {\n this.deleteGroupEvent.emit({ data: this.selectedEvent, action: option.value as 'this' | 'future' | 'all' });\n }\n }\n\n async handleCreateGroupEvent(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const formData = new FormData(this.formRef);\n const valid = this.formRef.checkValidity();\n if (!valid) {\n this.formError = 'Please fix the form errors.';\n return;\n }\n const formState = {} as {\n 'title': string;\n 'description': string;\n 'location': string;\n 'event-timeslot': string;\n 'event-capacity': string;\n 'conferencing': string;\n 'participants': string;\n };\n formData.forEach((value, key) => {\n formState[key] = value;\n });\n await this.createGroupEvent.emit({\n title: formState?.title,\n description: formState?.description,\n location: formState?.location,\n eventTimeslot: JSON.parse(formState?.['event-timeslot']),\n eventCapacity: parseInt(formState?.['event-capacity']),\n conferencing: formState?.conferencing ? JSON.parse(formState?.conferencing.toString()) : undefined,\n participants: formState?.participants ? JSON.parse(formState.participants) : [],\n });\n }\n\n @Watch('isLoading')\n isLoadingChangedHandler(newVal: boolean, _oldVal: boolean) {\n if (!newVal) {\n this.loadingOptions = {\n update: '',\n delete: '',\n create: '',\n };\n this.showCreateEventDetails = false;\n this.createNewGroupEventTimeslot = null;\n this.showEditOptions = false;\n this.showUpdateOptions = false;\n this.showDeleteOptions = false;\n this.showEditEventDetails = false;\n this.unsavedChanges = false;\n this.showConfirmDiscardUnsavedChangesModal = false;\n this.selectedEvent = null;\n this.selectedImportParticipants = [];\n this.importParticipants = [];\n this.showChooseParticipantsModal = false;\n }\n }\n\n @Listen('valueChanged')\n valueChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n const { value, name } = event.detail;\n const componentNames = ['title', 'description', 'location', 'event-timeslot', 'participants', 'event-capacity'];\n if ((this.showEditEventDetails || this.showCreateEventDetails) && componentNames.includes(name)) {\n this.unsavedChanges = true;\n this.formError = '';\n this.internals.setValidity({});\n }\n\n if (name === 'event-timeslot') {\n const { recurrence } = JSON.parse(value);\n const currentRrule = this.selectedEvent?.group_event_info?.rrule?.[0];\n const updatedRrule = recurrence[0];\n if (currentRrule !== updatedRrule) {\n this.updateOptions = updateChoices.filter(option => option.value !== 'this');\n return;\n }\n if (this.selectedEvent?.group_event_info) {\n this.selectedEvent.group_event_info.rrule = recurrence;\n }\n }\n }\n\n @Listen('timeWindowFormError')\n timeWindowFormErrorHandler(event: CustomEvent<{ key: string; message: string }>) {\n if (event.detail.key === 'start-time' || event.detail.key === 'end-time') {\n this.internals.setValidity({ customError: true }, 'Invalid time range');\n this.formError = 'Invalid time range';\n } else {\n this.internals.setValidity({});\n }\n }\n\n @Listen('saveGroupEventChangesError', { target: 'document' })\n saveGroupEventChangesErrorHandler(event: CustomEvent<{ error: string }>) {\n this.loadingOptions.update = '';\n if (event.detail.error) {\n this.formError = event.detail.error;\n }\n }\n\n @Listen('selectedOptionsChanged')\n selectedOptionsChangedHandler(event: CustomEvent<{ value: string[]; name: string }>) {\n const { value, name } = event.detail;\n if (name === 'participants') {\n this.selectedImportParticipants = this.selectedEvent?.event.participants?.filter(participant => value.includes(participant.email)) || [];\n }\n }\n\n @RegisterComponent<NylasEventCalendar, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-event-calendar',\n stateToProps: new Map([\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.groupEvents', 'groupEvents'],\n ['schedulerConfig.masterGroupEvents', 'masterGroupEvents'],\n ['schedulerConfig.currentUser', 'currentUser'],\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.isLoading', 'isLoading'],\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ]),\n eventToProps: {\n groupEventSelected: async (event: CustomEvent<GroupEventAPIData>, connector: NylasSchedulerConfigConnector) => {\n const { detail } = event;\n connector.schedulerConfigStore.state.selectedGroupEvent = detail;\n },\n calendarViewChanged: async (event: CustomEvent<{ startTime: number; endTime: number }>, connector: NylasSchedulerConfigConnector) => {\n const { detail } = event;\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: detail.startTime.toString(),\n end_time: detail.endTime.toString(),\n };\n const configId = connector.schedulerConfigStore.state.selectedConfiguration?.id;\n if (configId) {\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configId);\n if (!data && error && error.message) {\n // handle error\n return;\n }\n }\n },\n previosNextClicked: async (\n event: CustomEvent<{ direction: 'prev' | 'next'; view: 'day' | 'week' | 'month'; currentViewRange: { startTime: number; endTime: number } }>,\n connector: NylasSchedulerConfigConnector,\n ) => {\n const { detail } = event;\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: detail.currentViewRange.startTime.toString(),\n end_time: detail.currentViewRange.endTime.toString(),\n };\n const configId = connector.schedulerConfigStore.state.selectedConfiguration?.id;\n if (configId) {\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configId);\n if (!data && error && error.message) {\n // handle error\n return;\n }\n }\n },\n saveGroupEventChanges: async (event: CustomEvent<{ data: GroupEventAPIData; action: 'this' | 'future' | 'all' }>, _connector: NylasSchedulerConfigConnector) => {\n debug('nylas-event-calendar', 'saveGroupEventChanges', event.detail);\n },\n setCalendarViewDateRange: async (event: CustomEvent<{ startTime: number; endTime: number }>, connector: NylasSchedulerConfigConnector) => {\n debug('nylas-event-calendar', 'setCalendarViewDateRange', event.detail);\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: event.detail.startTime.toString(),\n end_time: event.detail.endTime.toString(),\n };\n },\n fetchMasterGroupEvent: async (event: CustomEvent<string>, connector: NylasSchedulerConfigConnector) => {\n debug('nylas-event-calendar', 'fetchMasterGroupEvent', event.detail);\n const [data, error] = await connector.schedulerConfig.getMasterEventById(event.detail);\n if (!data && error && error.message) {\n // handle error\n return;\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const calendarId = this.selectedConfiguration?.group_booking?.calendar_id;\n const currentCalendar = calendarId ? this.calendars?.find(c => c.id === calendarId) : null;\n\n return (\n <Host>\n <div class=\"nylas-event-calendar\">\n <div\n class={{\n 'calendar-container': true,\n 'show-event': this.showEditEventDetails || this.showCreateEventDetails,\n }}\n >\n <div class=\"calendar-header\">\n <div class=\"calendar-header__title\">\n <div class=\"calendar-header-prev-next\">\n <button onClick={() => this.handlePrevNextClick('prev')} class={{ 'chevron-left': true, 'button': true }}>\n {' '}\n <chevron-icon />\n </button>\n <button onClick={() => this.handlePrevNextClick('next')} class={{ 'chevron-right': true, 'button': true }}>\n {' '}\n <chevron-icon />\n </button>\n </div>\n <span>{this.selectedDateRangeString}</span>\n </div>\n <div class=\"calendar-header__current-calendar\">{currentCalendar?.name || currentCalendar?.id}'s calendar</div>\n <div class=\"calendar-header__view-options\">\n <button class={{ selected: this.calendar?.view.type === typeToViewMapping['day'] }} onClick={() => this.setView('day')}>\n Day\n </button>\n <button class={{ selected: this.calendar?.view.type === typeToViewMapping['week'] }} onClick={() => this.setView('week')}>\n Week\n </button>\n <button class={{ selected: this.calendar?.view.type === typeToViewMapping['month'] }} onClick={() => this.setView('month')}>\n Month\n </button>\n </div>\n </div>\n <div ref={el => (this.calendarEl = el as HTMLDivElement)}></div>\n </div>\n {this.showEditOptions && (\n <div class=\"edit-options action-options\" onClick={() => (this.showEditOptions = false)}>\n <div class=\"edit-options__card action-options__card\">\n <div class=\"edit-options__header action-options__header\">\n <h3>Actions</h3>\n <button-component\n tooltip=\"Close\"\n id=\"close-edit-options\"\n disabled={this.isLoading}\n variant={'invisible'}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showEditOptions = false;\n }}\n >\n <close-icon />\n </button-component>\n </div>\n <div class=\"edit-options__content action-options__content\">\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name}>\n {this.editOptions.map(option =>\n option.value.toString() ? (\n <li\n class={{ disabled: !!this.isLoading }}\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n onClick={e => this.handleEditOptionSelected(e, option)}\n role=\"option\"\n >\n {this.isLoading && this.loadingOptions.delete === option.value ? `Deleting...` : option.label}\n </li>\n ) : null,\n )}\n </ul>\n </div>\n </div>\n </div>\n )}\n {this.showConfirmDiscardUnsavedChangesModal && (\n <div class=\"discard-changes action-options\" onClick={() => (this.showUpdateOptions = false)}>\n <div class=\"discard-changes__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-discard-changes\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showConfirmDiscardUnsavedChangesModal = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"discard-changes__content action-options__content\">\n <h3 slot=\"card-title\" part=\"nfbf__title\">\n Discard unsaved changes?\n </h3>\n </div>\n <div class=\"discard-changes__footer action-options__footer\">\n <button-component variant={'basic'} onClick={_e => (this.showConfirmDiscardUnsavedChangesModal = false)} part=\"nfbf__button-outline nfbf__cancel-cta\">\n {`${i18next.t('deleteSchedulingPageCancelButton')}`}\n </button-component>\n <button-component\n variant={'destructive'}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showConfirmDiscardUnsavedChangesModal = false;\n this.unsavedChanges = false;\n this.showEditEventDetails = false;\n this.showCreateEventDetails = false;\n this.selectedEvent = null;\n this.createNewGroupEventTimeslot = null;\n }}\n part=\"nfbf__button-outline nfbf__reschedule-cta\"\n >\n Discard\n </button-component>\n </div>\n </div>\n </div>\n )}\n {this.showUpdateOptions && (\n <div class=\"update-options action-options\" onClick={() => (this.showUpdateOptions = false)}>\n <div class=\"update-options__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-update-options\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showUpdateOptions = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"update-options__content action-options__content\">\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name}>\n {this.updateOptions.map(option =>\n option.value.toString() ? (\n <li\n class={{ disabled: !!this.isLoading }}\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n role=\"option\"\n onClick={e => this.handleUpdateGroupEvent(e, option)}\n >\n {this.isLoading && this.loadingOptions.update === option.value ? `Updating...` : option.label}\n </li>\n ) : null,\n )}\n </ul>\n </div>\n </div>\n </div>\n )}\n {this.showDeleteOptions && (\n <div class=\"delete-options action-options\" onClick={() => (this.showDeleteOptions = false)}>\n <div class=\"delete-options__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-delete-options\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showDeleteOptions = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"delete-options__content action-options__content\">\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name}>\n {this.deleteOptions.map(option =>\n option.value.toString() ? (\n <li\n class={{ disabled: !!this.isLoading }}\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n role=\"option\"\n onClick={e => this.handleDeleteGroupEvent(e, option)}\n >\n {this.isLoading && this.loadingOptions.delete === option.value ? `Deleting...` : option.label}\n </li>\n ) : null,\n )}\n </ul>\n </div>\n </div>\n </div>\n )}\n {this.showChooseParticipantsModal && (\n <div class=\"choose-participants-modal action-options\">\n <div class=\"choose-participants-modal__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-choose-participants-modal\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showChooseParticipantsModal = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"choose-participants-modal__content action-options__content\">\n <multi-select-dropdown\n multipleOptionsSelectedLabel={i18next.t('multipleOptionsSelected')}\n name=\"participants\"\n label=\"Participants\"\n options={this.importParticipants}\n />\n <button-component variant={'basic'} onClick={() => this.handleImportGroupEvent()}>\n Import\n </button-component>\n </div>\n </div>\n </div>\n )}\n {this.showEditEventDetails && this.selectedEvent?.group_event_info && (\n <div class=\"event-details-container\">\n <div class=\"event-details-header\">\n <h3>Event Details</h3>\n <div class=\"event-details-header__actions\">\n <button-component\n tooltip=\"Close\"\n id=\"close\"\n disabled={this.isLoading}\n variant={'invisible'}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.unsavedChanges) {\n this.showConfirmDiscardUnsavedChangesModal = true;\n } else {\n this.showEditEventDetails = false;\n this.unsavedChanges = false;\n this.selectedEvent = null;\n }\n }}\n >\n <close-icon />\n </button-component>\n </div>\n </div>\n <div\n class={{\n 'event-details': true,\n 'edit-event-details': true,\n }}\n >\n <nylas-event-title name=\"title\" eventTitle={this.selectedEvent.event.title} exportparts=\"net, net__title, net__input_group, net__input_wrapper, net__input\" />\n <nylas-event-description\n name=\"description\"\n eventDescription={this.selectedEvent.event.description}\n exportparts=\"ned, ned__title, ned__input_group, ned__input_wrapper, ned__input\"\n />\n <nylas-event-location\n name=\"location\"\n eventLocation={this.selectedEvent.event.location}\n eventConferencing={this.selectedEvent.event.conferencing}\n exportparts=\"nel, nel__title, nel__input_group, nel__input_wrapper, nel__input, nel__conferencing\"\n />\n <nylas-event-timeslot\n name=\"event-timeslot\"\n initialValue={{\n when: this.selectedEvent.event.when,\n recurrence: this.selectedEvent?.group_event_info?.rrule ? this.selectedEvent.group_event_info.rrule : [],\n }}\n exportparts=\"nets, nets__title, nets__input_group, nets__input_wrapper, nets__input, nets__timezone, nets__recurrence\"\n />\n <nylas-event-capacity\n name=\"event-capacity\"\n capacity={this.selectedEvent?.group_event_info?.capacity}\n exportparts=\"nec, nec__title, nec__input_group, nec__input_wrapper, nec__input\"\n />\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={this.selectedEvent.group_event_info.participants}\n exportparts=\"nadtnlpart, nadtnlpart__title, nadtnlpart__subtitle, nadtnlpart__content, nadtnlpart__input_group, nadtnlpart__input_wrapper, nadtnlpart__input, nadtnlpart__remove-participant\"\n />\n </div>\n <div class=\"event-details-footer\">\n <div class=\"event-details-footer__error\">\n <p>{this.formError}</p>\n </div>\n <div class=\"event-details-footer__helper-text\">\n <p>{this.unsavedChanges && !this.isLoading ? 'Unsaved changes' : ''}</p>\n </div>\n <div class=\"event-details-footer__actions\">\n <button-component\n variant={'destructive'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.selectedEvent?.event?.master_event_id) {\n this.showUpdateOptions = true;\n } else {\n this.handleDeleteGroupEvent(e, { label: 'Delete this event', value: 'this' });\n }\n }}\n >\n Delete\n </button-component>\n <button-component\n variant={'basic'}\n disabled={this.isLoading || this.formError !== ''}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (!this.unsavedChanges) return;\n if (this.selectedEvent?.event?.master_event_id) {\n this.showUpdateOptions = true;\n } else {\n this.handleUpdateGroupEvent(e, { label: 'Update this event', value: 'this' });\n }\n }}\n >\n Save\n </button-component>\n </div>\n </div>\n </div>\n )}\n {this.showCreateEventDetails && this.createNewGroupEventTimeslot && (\n <div class=\"event-details-container\">\n <div class=\"event-details-header\">\n <h3>Event Details</h3>\n <div class=\"event-details-header__actions\">\n <button-component\n tooltip=\"Close\"\n id=\"close\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.unsavedChanges) {\n this.showConfirmDiscardUnsavedChangesModal = true;\n } else {\n this.showCreateEventDetails = false;\n this.createNewGroupEventTimeslot = null;\n this.selectedEvent = null;\n this.unsavedChanges = false;\n }\n }}\n >\n <close-icon />\n </button-component>\n </div>\n </div>\n <form ref={el => (this.formRef = el as HTMLFormElement)}>\n <div\n class={{\n 'event-details': true,\n }}\n >\n <nylas-event-info>\n <div slot=\"inputs\" class=\"event-details-form-inputs\">\n <nylas-event-title eventTitle={'New group event'} exportparts=\"net, net__title, net__input_group, net__input_wrapper, net__input\" />\n <nylas-event-description hideAutoPopulateButton={true} exportparts=\"ned, ned__title, ned__input_group, ned__input_wrapper, ned__input\" />\n <nylas-event-location\n userProvider={this.currentUser?.provider}\n exportparts=\"nel, nel__title, nel__input_group, nel__input_wrapper, nel__input, nel__conferencing\"\n />\n <nylas-event-timeslot\n name=\"event-timeslot\"\n initialValue={this.createNewGroupEventTimeslot}\n exportparts=\"nets, nets__title, nets__input_group, nets__input_wrapper, nets__input, nets__timezone, nets__recurrence\"\n />\n <nylas-event-capacity name=\"event-capacity\" exportparts=\"nec, nec__title, nec__input_group, nec__input_wrapper, nec__input\" />\n </div>\n </nylas-event-info>\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={[{ name: this.currentUser?.name || this.currentUser?.email, email: this.currentUser?.email || '', is_organizer: true }]}\n exportparts=\"nadtnlpart, nadtnlpart__title, nadtnlpart__subtitle, nadtnlpart__content, nadtnlpart__input_group, nadtnlpart__input_wrapper, nadtnlpart__input, nadtnlpart__remove-participant\"\n />\n </div>\n <div class=\"event-details-footer\">\n <div class=\"event-details-footer__error\">\n <p>{this.formError}</p>\n </div>\n <div class=\"event-details-footer__helper-text\">\n <p>{this.unsavedChanges && !this.isLoading ? 'Unsaved changes' : ''}</p>\n </div>\n <div class=\"event-details-footer__actions\">\n <button-component\n variant={'basic'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.unsavedChanges) {\n this.showConfirmDiscardUnsavedChangesModal = true;\n } else {\n this.showCreateEventDetails = false;\n this.createNewGroupEventTimeslot = null;\n this.selectedEvent = null;\n this.unsavedChanges = false;\n }\n }}\n >\n Cancel\n </button-component>\n <button-component\n variant={'primary'}\n disabled={this.isLoading}\n isLoading={this.isLoading}\n onClick={e => {\n this.handleCreateGroupEvent(e);\n }}\n >\n Create\n </button-component>\n </div>\n </div>\n </form>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"nylas-event-calendar.js","sourceRoot":"","sources":["../../../../src/components/scheduler-editor/nylas-event-calendar/nylas-event-calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\nimport { Calendar, CalendarOptions } from '@fullcalendar/core';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport { debug } from '@/utils/utils';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\nimport { Conference, EventDetails, GroupConfiguration, GroupEventAPIData, NylasCalendar, RecurrenceDeleteOption, RecurrenceUpdateOption } from '@nylas/core';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport { User } from '@/common/nylas-api-request';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\ntype CalendarEventData = {\n title: string;\n start: string;\n end: string;\n calendar_id: string;\n id: string;\n};\n\nexport type CreateGroupEventFormState = {\n title: string;\n description: string;\n location: string;\n eventTimeslot: {\n when: {\n start_time: number;\n end_time: number;\n start_timezone: string;\n end_timezone: string;\n };\n recurrence: string[];\n };\n eventCapacity: number;\n conferencing?: Conference;\n participants: {\n name: string;\n email: string;\n is_organizer?: boolean;\n }[];\n};\n\nconst typeToViewMapping = {\n day: 'timeGridDay',\n week: 'timeGridWeek',\n month: 'dayGridMonth',\n};\n\nconst viewToTypeMapping = {\n timeGridDay: 'day',\n timeGridWeek: 'week',\n dayGridMonth: 'month',\n};\n\nconst editOptionChoices = [\n { label: 'Import', value: 'import' },\n { label: 'Edit', value: 'edit' },\n { label: 'Delete this event only', value: 'delete-this' },\n // { label: 'Delete this and all future occurrences', value: 'delete-future' },\n { label: 'Delete all events', value: 'delete-all' },\n];\n\nconst updateChoices: {\n label: string;\n value: RecurrenceUpdateOption;\n}[] = [\n { label: 'Update this event', value: 'this' },\n { label: 'Update all future occurrences', value: 'future' },\n { label: 'Update all events', value: 'all' },\n];\n\nconst deleteChoices: {\n label: string;\n value: RecurrenceDeleteOption;\n}[] = [\n { label: 'Delete this event', value: 'this' },\n { label: 'Delete this and all future occurrences', value: 'future' },\n { label: 'Delete all events', value: 'all' },\n];\n\n@Component({\n tag: 'nylas-event-calendar',\n styleUrl: 'nylas-event-calendar.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasEventCalendar {\n @Element() host!: HTMLNylasEventCalendarElement;\n private calendarEl!: HTMLElement;\n private formRef!: HTMLFormElement;\n /**\n * @standalone\n * The selected configuration\n */\n @Prop() selectedConfiguration?: GroupConfiguration;\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'page-name';\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The group events prop\n */\n @Prop() groupEvents?: GroupEventAPIData[];\n\n /**\n * The current user prop\n */\n @Prop() currentUser?: User;\n /**\n * The calendars prop\n */\n @Prop() calendars?: NylasCalendar[];\n /**\n * The master group events prop\n */\n @Prop() masterGroupEvents?: Record<string, EventDetails>;\n /**\n * The is loading prop\n */\n @Prop() isLoading?: boolean;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() selectedView: 'day' | 'week' | 'month' = 'week';\n @State() events: {\n title: string;\n start: string;\n end: string;\n calendar_id: string;\n id: string;\n }[] = [];\n\n @State() calendar!: Calendar;\n\n @State() selectedEvent: GroupEventAPIData | null = null;\n\n @State() selectedDateRangeString: string = '';\n\n @State() showEditEventDetails: boolean = false;\n\n @State() showCreateEventDetails: boolean = false;\n\n @State() editOptions: { label: string; value: string }[] = editOptionChoices;\n\n @State() showEditOptions: boolean = false;\n\n @State() updateOptions: { label: string; value: 'this' | 'future' | 'all' }[] = updateChoices;\n\n @State() showUpdateOptions: boolean = false;\n\n @State() deleteOptions: { label: string; value: string }[] = deleteChoices;\n\n @State() showDeleteOptions: boolean = false;\n\n @State() unsavedChanges: boolean = false;\n\n @State() showConfirmDiscardUnsavedChangesModal: boolean = false;\n\n @State() createNewGroupEventTimeslot: {\n when: {\n start_time: number;\n end_time: number;\n start_timezone: string;\n end_timezone: string;\n };\n recurrence: string[];\n } | null = null;\n @State() formError: string = '';\n\n @State() loadingOptions: {\n update: string;\n delete: string;\n create: string;\n } = {\n update: '',\n delete: '',\n create: '',\n };\n\n @State() showChooseParticipantsModal: boolean = false;\n\n @State() importParticipants: { label: string; value: string; disabled?: boolean }[] = [];\n\n @State() selectedImportParticipants: { email: string; status: string }[] = [];\n\n @Event() fetchMasterGroupEvent!: EventEmitter<string>;\n\n @Event() saveGroupEventChanges!: EventEmitter<{ data: GroupEventAPIData; action: 'this' | 'future' | 'all' }>;\n\n @Event() deleteGroupEvent!: EventEmitter<{ data: GroupEventAPIData; action: 'this' | 'future' | 'all' }>;\n\n @Event() groupEventSelected!: EventEmitter<GroupEventAPIData>;\n\n @Event() createGroupEvent!: EventEmitter<CreateGroupEventFormState>;\n\n @Event() calendarViewChanged!: EventEmitter<{ startTime: number; endTime: number }>;\n\n @Event() previosNextClicked!: EventEmitter<{ direction: 'prev' | 'next'; view: 'day' | 'week' | 'month'; currentViewRange: { startTime: number; endTime: number } }>;\n\n @Event() setCalendarViewDateRange!: EventEmitter<{ startTime: number; endTime: number }>;\n\n @Event() importGroupEvent!: EventEmitter<{\n event_id: string;\n calendar_id: string;\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-page-name', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('groupEvents')\n groupEventsChangedHandler(newValue: GroupEventAPIData[], oldValue: GroupEventAPIData[]) {\n if (newValue === oldValue) return;\n this.events = newValue\n .filter(event => event !== undefined)\n .map(eventData => {\n const event = eventData.event;\n if (event?.id) {\n const isGroupEvent = !!eventData.group_event_info && !!eventData.group_event_info?.event_id;\n const readOnly = event.read_only;\n const eventParticipants = event.participants || [];\n const groupEventParticipants = eventData.group_event_info?.participants || [];\n const noParticipants = eventParticipants.length <= 0 && groupEventParticipants.length <= 0;\n return {\n title: event.title,\n start: dayjs\n .unix(event.when.start_time) // Convert UNIX timestamp\n .tz(event.when.start_timezone) // Adjust to the event's timezone\n .format('YYYY-MM-DDTHH:mm:ss'),\n end: dayjs\n .unix(event.when.end_time) // Convert UNIX timestamp\n .tz(event.when.end_timezone) // Adjust to the event's timezone\n .format('YYYY-MM-DDTHH:mm:ss'),\n calendar_id: event.calendar_id,\n id: event.id,\n classNames: [isGroupEvent ? 'group-event' : 'regular-event', readOnly ? 'read-only' : '', noParticipants ? 'no-participants' : ''],\n editable: !readOnly,\n };\n }\n return undefined;\n }) as CalendarEventData[];\n\n this.calendar?.setOption('events', this.events);\n }\n\n // Lifecycle Methods\n connectedCallback() {\n debug('nylas-connected-calendars', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-connected-calendars', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-connected-calendars', 'componentWillLoad');\n }\n\n componentDidLoad() {\n this.selectedView = 'week';\n const calendarOptions: CalendarOptions = {\n plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin],\n headerToolbar: false,\n initialView: 'timeGridWeek',\n events: this.events,\n editable: true, // Allow drag-and-drop\n selectable: true,\n nowIndicator: true,\n scrollTime: new Date().getHours() + ':00:00', // Scroll to the current hour\n dayHeaderFormat: { weekday: 'short', month: undefined, day: '2-digit', formatMatcher: 'basic' }, // Customize header format\n dayHeaderContent: headerInfo => {\n if (headerInfo.view.type === 'dayGridMonth') {\n return {\n html: `<div class=\"custom-day-header\">\n <span class=\"day-name\">${dayjs(headerInfo.date).format('ddd')}</span>\n </div>`,\n };\n }\n return {\n html: `<div class=\"custom-day-header\">\n <span class=\"day-name\">${dayjs(headerInfo.date).format('ddd')}</span>\n <span class=\"day-number ${headerInfo.isToday ? 'today' : ''}\">${dayjs(headerInfo.date).format('D')}</span>\n </div>`,\n };\n },\n datesSet: info => {\n const startMonth = dayjs(info.start).format('MMMM').substring(0, 3); // Get the first 3 characters of the month\n const endMonth = dayjs(info.end).subtract(1, 'day').format('MMMM').substring(0, 3); // Subtract 1 day for the correct end month\n const startYear = dayjs(info.start).format('YYYY');\n const endYear = dayjs(info.end).subtract(1, 'day').format('YYYY');\n\n if (startMonth === endMonth && startYear === endYear) {\n // Same month and year\n this.selectedDateRangeString = `${startMonth} ${startYear}`;\n } else if (startYear === endYear) {\n // Different months but same year\n this.selectedDateRangeString = `${startMonth} - ${endMonth} ${startYear}`;\n } else {\n // Different months and different years\n this.selectedDateRangeString = `${startMonth} ${startYear} - ${endMonth} ${endYear}`;\n }\n },\n eventClick: info => {\n const event = this.groupEvents?.find(e => e.event.id === info.event._def.publicId);\n\n if (info.event.classNames.includes('read-only') || info.event.classNames.includes('no-participants')) {\n return;\n }\n\n this.showEditEventDetails = false;\n this.unsavedChanges = false;\n this.showEditOptions = true;\n this.selectedEvent = event || null;\n\n if (event && event.group_event_info) {\n const masterEventId = event.event.master_event_id;\n this.groupEventSelected.emit(event);\n this.editOptions = editOptionChoices.filter(option => option.value !== 'import');\n this.deleteOptions = [...deleteChoices];\n if (!masterEventId) {\n this.editOptions = this.editOptions.filter(option => option.value !== 'delete-all');\n this.deleteOptions = this.deleteOptions.filter(option => option.value !== 'all' && option.value !== 'future');\n }\n if (masterEventId && !this.masterGroupEvents?.[masterEventId]) {\n this.fetchMasterGroupEvent.emit(event.event.master_event_id);\n }\n } else {\n this.editOptions = editOptionChoices.filter(option => option.value === 'import');\n }\n },\n select: (info: any) => {\n this.createNewGroupEventTimeslot = {\n when: {\n start_time: new Date(info.start).getTime() / 1000,\n end_time: new Date(info.end).getTime() / 1000,\n start_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n end_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n recurrence: [],\n };\n this.showCreateEventDetails = true;\n },\n eventDurationEditable: true,\n height: '100%', // Let FullCalendar adjust dynamically\n contentHeight: 'auto', // Adjust content height based on events\n };\n\n this.calendar = new Calendar(this.calendarEl, calendarOptions);\n this.calendar.render();\n this.setCalendarViewDateRange.emit({\n startTime: new Date(this.calendar.getCurrentData().viewApi.activeStart).getTime() / 1000,\n endTime: new Date(this.calendar.getCurrentData().viewApi.activeEnd).getTime() / 1000,\n });\n }\n\n setView(view: 'day' | 'week' | 'month') {\n this.selectedView = view;\n this.calendar.changeView(typeToViewMapping[view]);\n const startTime = new Date(this.calendar.getCurrentData().viewApi.activeStart).getTime() / 1000;\n const endTime = new Date(this.calendar.getCurrentData().viewApi.activeEnd).getTime() / 1000;\n this.calendarViewChanged.emit({ startTime, endTime });\n }\n\n handleEditOptionSelected(e: Event, option: { label: string; value: string }) {\n e.preventDefault();\n e.stopPropagation();\n\n if (this.isLoading) return;\n if (option.value === 'edit') {\n this.showEditOptions = false;\n this.showEditEventDetails = true;\n } else if ((option.value === 'delete-this' || option.value === 'delete-all' || option.value === 'delete-future') && this.selectedEvent) {\n this.loadingOptions.delete = option.value;\n const action = option.value.split('-')[1] as RecurrenceDeleteOption;\n this.deleteGroupEvent.emit({ data: this.selectedEvent, action });\n } else if (option.value === 'import' && this.selectedEvent) {\n const participants = this.selectedEvent.event.participants || [];\n const organizer = this.selectedEvent.event.organizer;\n\n this.showEditOptions = false;\n this.showChooseParticipantsModal = true;\n this.importParticipants = participants.map(participant => ({\n label: participant?.email,\n value: participant?.email,\n disabled: participant?.email === organizer?.email,\n selected: participant?.email === organizer?.email,\n }));\n }\n }\n\n handleImportGroupEvent() {\n const masterEventId = this.selectedEvent?.event.master_event_id;\n const participantsList = this.selectedImportParticipants;\n const organizer = this.selectedEvent?.event.organizer;\n const groupEvent = {\n event_id: masterEventId ? masterEventId : this.selectedEvent?.event.id || '',\n calendar_id: this.selectedEvent?.event.calendar_id || '',\n capacity: 10,\n participants: participantsList.length > 0 ? participantsList : [{ ...organizer, is_organizer: true }],\n organizer: organizer,\n };\n this.showChooseParticipantsModal = false;\n if (!!groupEvent.event_id && !!groupEvent.calendar_id) {\n this.importGroupEvent.emit(groupEvent);\n }\n }\n\n handlePrevNextClick(direction: 'prev' | 'next') {\n const currentView = viewToTypeMapping[this.calendar.view.type];\n if (direction === 'prev') {\n this.calendar.prev();\n } else {\n this.calendar.next();\n }\n const startTime = new Date(this.calendar.getCurrentData().viewApi.activeStart).getTime() / 1000;\n const endTime = new Date(this.calendar.getCurrentData().viewApi.activeEnd).getTime() / 1000;\n this.previosNextClicked.emit({ direction, view: currentView, currentViewRange: { startTime, endTime } });\n }\n\n handleUpdateGroupEvent(e: Event, option: { label: string; value: 'this' | 'future' | 'all' }) {\n e.preventDefault();\n e.stopPropagation();\n if (this.isLoading) return;\n this.loadingOptions.update = option.value;\n if (this.selectedEvent && this.internals.checkValidity()) {\n this.saveGroupEventChanges.emit({ data: this.selectedEvent, action: option.value });\n }\n }\n\n handleDeleteGroupEvent(e: Event, option: { label: string; value: string }) {\n e.preventDefault();\n e.stopPropagation();\n if (this.isLoading) return;\n this.loadingOptions.delete = option.value;\n if (this.selectedEvent) {\n this.deleteGroupEvent.emit({ data: this.selectedEvent, action: option.value as 'this' | 'future' | 'all' });\n }\n }\n\n async handleCreateGroupEvent(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const formData = new FormData(this.formRef);\n const valid = this.formRef.checkValidity();\n if (!valid) {\n this.formError = 'Please fix the form errors.';\n return;\n }\n const formState = {} as {\n 'title': string;\n 'description': string;\n 'location': string;\n 'event-timeslot': string;\n 'event-capacity': string;\n 'conferencing': string;\n 'participants': string;\n };\n formData.forEach((value, key) => {\n formState[key] = value;\n });\n await this.createGroupEvent.emit({\n title: formState?.title,\n description: formState?.description,\n location: formState?.location,\n eventTimeslot: JSON.parse(formState?.['event-timeslot']),\n eventCapacity: parseInt(formState?.['event-capacity']),\n conferencing: formState?.conferencing ? JSON.parse(formState?.conferencing.toString()) : undefined,\n participants: formState?.participants ? JSON.parse(formState.participants) : [],\n });\n }\n\n @Watch('isLoading')\n isLoadingChangedHandler(newVal: boolean, _oldVal: boolean) {\n if (!newVal) {\n this.loadingOptions = {\n update: '',\n delete: '',\n create: '',\n };\n this.showCreateEventDetails = false;\n this.createNewGroupEventTimeslot = null;\n this.showEditOptions = false;\n this.showUpdateOptions = false;\n this.showDeleteOptions = false;\n this.showEditEventDetails = false;\n this.unsavedChanges = false;\n this.showConfirmDiscardUnsavedChangesModal = false;\n this.selectedEvent = null;\n this.selectedImportParticipants = [];\n this.importParticipants = [];\n this.showChooseParticipantsModal = false;\n }\n }\n\n @Listen('valueChanged')\n valueChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n const { value, name } = event.detail;\n const componentNames = ['title', 'description', 'location', 'event-timeslot', 'participants', 'event-capacity'];\n if ((this.showEditEventDetails || this.showCreateEventDetails) && componentNames.includes(name)) {\n this.unsavedChanges = true;\n this.formError = '';\n this.internals.setValidity({});\n }\n\n if (name === 'event-timeslot') {\n const { recurrence } = JSON.parse(value);\n const currentRrule = this.selectedEvent?.group_event_info?.rrule?.[0];\n const updatedRrule = recurrence[0];\n if (currentRrule !== updatedRrule) {\n this.updateOptions = updateChoices.filter(option => option.value !== 'this');\n return;\n }\n if (this.selectedEvent?.group_event_info) {\n this.selectedEvent.group_event_info.rrule = recurrence;\n }\n }\n }\n\n @Listen('timeWindowFormError')\n timeWindowFormErrorHandler(event: CustomEvent<{ key: string; message: string }>) {\n if (event.detail.key === 'start-time' || event.detail.key === 'end-time') {\n this.internals.setValidity({ customError: true }, 'Invalid time range');\n this.formError = 'Invalid time range';\n } else {\n this.internals.setValidity({});\n }\n }\n\n @Listen('saveGroupEventChangesError', { target: 'document' })\n saveGroupEventChangesErrorHandler(event: CustomEvent<{ error: string }>) {\n this.loadingOptions.update = '';\n if (event.detail.error) {\n this.formError = event.detail.error;\n }\n }\n\n @Listen('selectedOptionsChanged')\n selectedOptionsChangedHandler(event: CustomEvent<{ value: string[]; name: string }>) {\n const { value, name } = event.detail;\n if (name === 'participants') {\n this.selectedImportParticipants = this.selectedEvent?.event.participants?.filter(participant => value.includes(participant.email)) || [];\n }\n }\n\n @RegisterComponent<NylasEventCalendar, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-event-calendar',\n stateToProps: new Map([\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.groupEvents', 'groupEvents'],\n ['schedulerConfig.masterGroupEvents', 'masterGroupEvents'],\n ['schedulerConfig.currentUser', 'currentUser'],\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.isLoading', 'isLoading'],\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ]),\n eventToProps: {\n groupEventSelected: async (event: CustomEvent<GroupEventAPIData>, connector: NylasSchedulerConfigConnector) => {\n const { detail } = event;\n connector.schedulerConfigStore.state.selectedGroupEvent = detail;\n },\n calendarViewChanged: async (event: CustomEvent<{ startTime: number; endTime: number }>, connector: NylasSchedulerConfigConnector) => {\n const { detail } = event;\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: detail.startTime.toString(),\n end_time: detail.endTime.toString(),\n };\n const configId = connector.schedulerConfigStore.state.selectedConfiguration?.id;\n if (configId) {\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configId);\n if (!data && error && error.message) {\n // handle error\n return;\n }\n }\n },\n previosNextClicked: async (\n event: CustomEvent<{ direction: 'prev' | 'next'; view: 'day' | 'week' | 'month'; currentViewRange: { startTime: number; endTime: number } }>,\n connector: NylasSchedulerConfigConnector,\n ) => {\n const { detail } = event;\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: detail.currentViewRange.startTime.toString(),\n end_time: detail.currentViewRange.endTime.toString(),\n };\n const configId = connector.schedulerConfigStore.state.selectedConfiguration?.id;\n if (configId) {\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configId);\n if (!data && error && error.message) {\n // handle error\n return;\n }\n }\n },\n saveGroupEventChanges: async (event: CustomEvent<{ data: GroupEventAPIData; action: 'this' | 'future' | 'all' }>, _connector: NylasSchedulerConfigConnector) => {\n debug('nylas-event-calendar', 'saveGroupEventChanges', event.detail);\n },\n setCalendarViewDateRange: async (event: CustomEvent<{ startTime: number; endTime: number }>, connector: NylasSchedulerConfigConnector) => {\n debug('nylas-event-calendar', 'setCalendarViewDateRange', event.detail);\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: event.detail.startTime.toString(),\n end_time: event.detail.endTime.toString(),\n };\n },\n fetchMasterGroupEvent: async (event: CustomEvent<string>, connector: NylasSchedulerConfigConnector) => {\n debug('nylas-event-calendar', 'fetchMasterGroupEvent', event.detail);\n const [data, error] = await connector.schedulerConfig.getMasterEventById(event.detail);\n if (!data && error && error.message) {\n // handle error\n return;\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const calendarId = this.selectedConfiguration?.group_booking?.calendar_id;\n const currentCalendar = calendarId ? this.calendars?.find(c => c.id === calendarId) : null;\n\n return (\n <Host>\n <div class=\"nylas-event-calendar\">\n <div\n class={{\n 'calendar-container': true,\n 'show-event': this.showEditEventDetails || this.showCreateEventDetails,\n }}\n >\n <div class=\"calendar-header\">\n <div class=\"calendar-header__title\">\n <div class=\"calendar-header-prev-next\">\n <button onClick={() => this.handlePrevNextClick('prev')} class={{ 'chevron-left': true, 'button': true }}>\n {' '}\n <chevron-icon />\n </button>\n <button onClick={() => this.handlePrevNextClick('next')} class={{ 'chevron-right': true, 'button': true }}>\n {' '}\n <chevron-icon />\n </button>\n </div>\n <span>{this.selectedDateRangeString}</span>\n </div>\n <div class=\"calendar-header__current-calendar\">{currentCalendar?.name || currentCalendar?.id}'s calendar</div>\n <div class=\"calendar-header__view-options\">\n <button class={{ selected: this.calendar?.view.type === typeToViewMapping['day'] }} onClick={() => this.setView('day')}>\n Day\n </button>\n <button class={{ selected: this.calendar?.view.type === typeToViewMapping['week'] }} onClick={() => this.setView('week')}>\n Week\n </button>\n <button class={{ selected: this.calendar?.view.type === typeToViewMapping['month'] }} onClick={() => this.setView('month')}>\n Month\n </button>\n </div>\n </div>\n <div ref={el => (this.calendarEl = el as HTMLDivElement)}></div>\n </div>\n {this.showEditOptions && (\n <div class=\"edit-options action-options\" onClick={() => (this.showEditOptions = false)}>\n <div class=\"edit-options__card action-options__card\">\n <div class=\"edit-options__header action-options__header\">\n <h3>Actions</h3>\n <button-component\n tooltip=\"Close\"\n id=\"close-edit-options\"\n disabled={this.isLoading}\n variant={'invisible'}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showEditOptions = false;\n }}\n >\n <close-icon />\n </button-component>\n </div>\n <div class=\"edit-options__content action-options__content\">\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name}>\n {this.editOptions.map(option =>\n option.value.toString() ? (\n <li\n class={{ disabled: !!this.isLoading }}\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n onClick={e => this.handleEditOptionSelected(e, option)}\n role=\"option\"\n >\n {this.isLoading && this.loadingOptions.delete === option.value ? `Deleting...` : option.label}\n </li>\n ) : null,\n )}\n </ul>\n </div>\n </div>\n </div>\n )}\n {this.showConfirmDiscardUnsavedChangesModal && (\n <div class=\"discard-changes action-options\" onClick={() => (this.showUpdateOptions = false)}>\n <div class=\"discard-changes__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-discard-changes\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showConfirmDiscardUnsavedChangesModal = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"discard-changes__content action-options__content\">\n <h3 slot=\"card-title\" part=\"nfbf__title\">\n Discard unsaved changes?\n </h3>\n </div>\n <div class=\"discard-changes__footer action-options__footer\">\n <button-component variant={'basic'} onClick={_e => (this.showConfirmDiscardUnsavedChangesModal = false)} part=\"nfbf__button-outline nfbf__cancel-cta\">\n {`${i18next.t('deleteSchedulingPageCancelButton')}`}\n </button-component>\n <button-component\n variant={'destructive'}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showConfirmDiscardUnsavedChangesModal = false;\n this.unsavedChanges = false;\n this.showEditEventDetails = false;\n this.showCreateEventDetails = false;\n this.selectedEvent = null;\n this.createNewGroupEventTimeslot = null;\n }}\n part=\"nfbf__button-outline nfbf__reschedule-cta\"\n >\n Discard\n </button-component>\n </div>\n </div>\n </div>\n )}\n {this.showUpdateOptions && (\n <div class=\"update-options action-options\" onClick={() => (this.showUpdateOptions = false)}>\n <div class=\"update-options__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-update-options\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showUpdateOptions = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"update-options__content action-options__content\">\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name}>\n {this.updateOptions.map(option =>\n option.value.toString() ? (\n <li\n class={{ disabled: !!this.isLoading }}\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n role=\"option\"\n onClick={e => this.handleUpdateGroupEvent(e, option)}\n >\n {this.isLoading && this.loadingOptions.update === option.value ? `Updating...` : option.label}\n </li>\n ) : null,\n )}\n </ul>\n </div>\n </div>\n </div>\n )}\n {this.showDeleteOptions && (\n <div class=\"delete-options action-options\" onClick={() => (this.showDeleteOptions = false)}>\n <div class=\"delete-options__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-delete-options\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showDeleteOptions = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"delete-options__content action-options__content\">\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name}>\n {this.deleteOptions.map(option =>\n option.value.toString() ? (\n <li\n class={{ disabled: !!this.isLoading }}\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n role=\"option\"\n onClick={e => this.handleDeleteGroupEvent(e, option)}\n >\n {this.isLoading && this.loadingOptions.delete === option.value ? `Deleting...` : option.label}\n </li>\n ) : null,\n )}\n </ul>\n </div>\n </div>\n </div>\n )}\n {this.showChooseParticipantsModal && (\n <div class=\"choose-participants-modal action-options\">\n <div class=\"choose-participants-modal__card action-options__card\">\n <button-component\n tooltip=\"Close\"\n id=\"close-choose-participants-modal\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.showChooseParticipantsModal = false;\n }}\n >\n <close-icon />\n </button-component>\n <div class=\"choose-participants-modal__content action-options__content\">\n <multi-select-dropdown\n multipleOptionsSelectedLabel={i18next.t('multipleOptionsSelected')}\n name=\"participants\"\n label=\"Participants\"\n options={this.importParticipants}\n />\n <button-component variant={'basic'} onClick={() => this.handleImportGroupEvent()}>\n Import\n </button-component>\n </div>\n </div>\n </div>\n )}\n {this.showEditEventDetails && this.selectedEvent?.group_event_info && (\n <div class=\"event-details-container\">\n <div class=\"event-details-header\">\n <h3>Event Details</h3>\n <div class=\"event-details-header__actions\">\n <button-component\n tooltip=\"Close\"\n id=\"close\"\n disabled={this.isLoading}\n variant={'invisible'}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.unsavedChanges) {\n this.showConfirmDiscardUnsavedChangesModal = true;\n } else {\n this.showEditEventDetails = false;\n this.unsavedChanges = false;\n this.selectedEvent = null;\n }\n }}\n >\n <close-icon />\n </button-component>\n </div>\n </div>\n <div\n class={{\n 'event-details': true,\n 'edit-event-details': true,\n }}\n >\n <nylas-event-title name=\"title\" eventTitle={this.selectedEvent.event.title} exportparts=\"net, net__title, net__input_group, net__input_wrapper, net__input\" />\n <nylas-event-description\n name=\"description\"\n eventDescription={this.selectedEvent.event.description}\n exportparts=\"ned, ned__title, ned__input_group, ned__input_wrapper, ned__input\"\n />\n <nylas-event-location\n name=\"location\"\n eventLocation={this.selectedEvent.event.location}\n eventConferencing={this.selectedEvent.event.conferencing}\n exportparts=\"nel, nel__title, nel__input_group, nel__input_wrapper, nel__input, nel__conferencing\"\n />\n <nylas-event-timeslot\n name=\"event-timeslot\"\n initialValue={{\n when: this.selectedEvent.event.when,\n recurrence: this.selectedEvent?.group_event_info?.rrule ? this.selectedEvent.group_event_info.rrule : [],\n }}\n exportparts=\"nets, nets__title, nets__input_group, nets__input_wrapper, nets__input, nets__timezone, nets__recurrence\"\n />\n <nylas-event-capacity\n name=\"event-capacity\"\n capacity={this.selectedEvent?.group_event_info?.capacity}\n exportparts=\"nec, nec__title, nec__input_group, nec__input_wrapper, nec__input\"\n />\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={this.selectedEvent.group_event_info.participants}\n exportparts=\"nadtnlpart, nadtnlpart__title, nadtnlpart__subtitle, nadtnlpart__content, nadtnlpart__input_group, nadtnlpart__input_wrapper, nadtnlpart__input, nadtnlpart__remove-participant\"\n />\n </div>\n <div class=\"event-details-footer\">\n <div class=\"event-details-footer__error\">\n <p>{this.formError}</p>\n </div>\n <div class=\"event-details-footer__helper-text\">\n <p>{this.unsavedChanges && !this.isLoading ? 'Unsaved changes' : ''}</p>\n </div>\n <div class=\"event-details-footer__actions\">\n <button-component\n variant={'destructive'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.selectedEvent?.event?.master_event_id) {\n this.showUpdateOptions = true;\n } else {\n this.handleDeleteGroupEvent(e, { label: 'Delete this event', value: 'this' });\n }\n }}\n >\n Delete\n </button-component>\n <button-component\n variant={'basic'}\n disabled={this.isLoading || this.formError !== ''}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (!this.unsavedChanges) return;\n if (this.selectedEvent?.event?.master_event_id) {\n this.showUpdateOptions = true;\n } else {\n this.handleUpdateGroupEvent(e, { label: 'Update this event', value: 'this' });\n }\n }}\n >\n Save\n </button-component>\n </div>\n </div>\n </div>\n )}\n {this.showCreateEventDetails && this.createNewGroupEventTimeslot && (\n <div class=\"event-details-container\">\n <div class=\"event-details-header\">\n <h3>Event Details</h3>\n <div class=\"event-details-header__actions\">\n <button-component\n tooltip=\"Close\"\n id=\"close\"\n variant={'invisible'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.unsavedChanges) {\n this.showConfirmDiscardUnsavedChangesModal = true;\n } else {\n this.showCreateEventDetails = false;\n this.createNewGroupEventTimeslot = null;\n this.selectedEvent = null;\n this.unsavedChanges = false;\n }\n }}\n >\n <close-icon />\n </button-component>\n </div>\n </div>\n <form ref={el => (this.formRef = el as HTMLFormElement)}>\n <div\n class={{\n 'event-details': true,\n }}\n >\n <nylas-event-info>\n <div slot=\"inputs\" class=\"event-details-form-inputs\">\n <nylas-event-title eventTitle={'New group event'} exportparts=\"net, net__title, net__input_group, net__input_wrapper, net__input\" />\n <nylas-event-description hideAutoPopulateButton={true} exportparts=\"ned, ned__title, ned__input_group, ned__input_wrapper, ned__input\" />\n <nylas-event-location\n userProvider={this.currentUser?.provider}\n exportparts=\"nel, nel__title, nel__input_group, nel__input_wrapper, nel__input, nel__conferencing\"\n />\n <nylas-event-timeslot\n name=\"event-timeslot\"\n initialValue={this.createNewGroupEventTimeslot}\n exportparts=\"nets, nets__title, nets__input_group, nets__input_wrapper, nets__input, nets__timezone, nets__recurrence\"\n />\n <nylas-event-capacity name=\"event-capacity\" exportparts=\"nec, nec__title, nec__input_group, nec__input_wrapper, nec__input\" />\n </div>\n </nylas-event-info>\n <nylas-additional-participants\n name=\"participants\"\n eventParticipants={[{ name: this.currentUser?.name || this.currentUser?.email, email: this.currentUser?.email || '', is_organizer: true }]}\n exportparts=\"nadtnlpart, nadtnlpart__title, nadtnlpart__subtitle, nadtnlpart__content, nadtnlpart__input_group, nadtnlpart__input_wrapper, nadtnlpart__input, nadtnlpart__remove-participant\"\n />\n </div>\n <div class=\"event-details-footer\">\n <div class=\"event-details-footer__error\">\n <p>{this.formError}</p>\n </div>\n <div class=\"event-details-footer__helper-text\">\n <p>{this.unsavedChanges && !this.isLoading ? 'Unsaved changes' : ''}</p>\n </div>\n <div class=\"event-details-footer__actions\">\n <button-component\n variant={'basic'}\n disabled={this.isLoading}\n onClick={e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.unsavedChanges) {\n this.showConfirmDiscardUnsavedChangesModal = true;\n } else {\n this.showCreateEventDetails = false;\n this.createNewGroupEventTimeslot = null;\n this.selectedEvent = null;\n this.unsavedChanges = false;\n }\n }}\n >\n Cancel\n </button-component>\n <button-component\n variant={'primary'}\n disabled={this.isLoading}\n isLoading={this.isLoading}\n onClick={e => {\n this.handleCreateGroupEvent(e);\n }}\n >\n Create\n </button-component>\n </div>\n </div>\n </form>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -340,7 +340,7 @@ const NylasEditorTabsGroup = proxyCustomElement(class NylasEditorTabsGroup exten
340
340
  if (this.enableUserFeedback && !isInitialized()) {
341
341
  init({
342
342
  dsn: 'https://9d5731f1c77ca84c9ed3fb9b3ccf7ee1@o74852.ingest.us.sentry.io/4507889638178816',
343
- release: "1.3.6",
343
+ release: "1.4.0",
344
344
  integrations: integrations => [
345
345
  ...integrations.filter(_integration => false),
346
346
  feedbackSyncIntegration({
@@ -393,7 +393,7 @@ const NylasEditorTabsGroup = proxyCustomElement(class NylasEditorTabsGroup exten
393
393
  captureContext: {
394
394
  tags: {
395
395
  'nylas-web-element': 'nylas-scheduler-editor',
396
- 'nylas-web-element-version': "1.3.6",
396
+ 'nylas-web-element-version': "1.4.0",
397
397
  },
398
398
  extra: {
399
399
  configId: this.selectedConfiguration?.id,
@@ -430,7 +430,7 @@ const NylasEditorTabs = proxyCustomElement(class NylasEditorTabs extends HTMLEle
430
430
  if (this.enableUserFeedback && !isInitialized()) {
431
431
  init({
432
432
  dsn: 'https://9d5731f1c77ca84c9ed3fb9b3ccf7ee1@o74852.ingest.us.sentry.io/4507889638178816',
433
- release: "1.3.6",
433
+ release: "1.4.0",
434
434
  integrations: integrations => [
435
435
  ...integrations.filter(_integration => false),
436
436
  feedbackSyncIntegration({
@@ -487,7 +487,7 @@ const NylasEditorTabs = proxyCustomElement(class NylasEditorTabs extends HTMLEle
487
487
  captureContext: {
488
488
  tags: {
489
489
  'nylas-web-element': 'nylas-scheduler-editor',
490
- 'nylas-web-element-version': "1.3.6",
490
+ 'nylas-web-element-version': "1.4.0",
491
491
  'nylas-config-id': this.selectedConfiguration?.id,
492
492
  'nylas-slug': this.selectedConfiguration?.slug,
493
493
  'host-url': window.location.href,